Add confined coding tools and deterministic write/test-result experts #19

Open
nsaspy wants to merge 2 commits from feat/coding-expert-tools into main
Owner

AgentProlog main lacks the coding-tool package required for repository work. This adds host composition over the canonical Prolog-RLM tool, authority, and durable-effect boundaries.

Depends on https://github.com/lost-rob0t/prolog-rlm/pull/427. The current Nix runtime pin predates that API; advance it after upstream acceptance before enabling the package in the product.

Implemented:

  • Nine tools: project_read, project_search, project_write, project_patch, git_status, git_diff, git_show, process_run, run_tests.
  • Two deterministic leaf experts: write_expert produces an unexecuted preimage-bound patch; test_result_expert classifies supplied exit status.
  • coding_registry_create/5 composes the package without granting capabilities, changing authority, or opening an effect store.
  • Path/symlink checks, bounded UTF-8 reads, exact preimages, stale-approval rejection, atomic replacement, and POSIX permission preservation.
  • Fixed host process profiles with explicit environment, deadlines, output limits, process-group cleanup, and snapshot-bound durable replay.

Local validation on SWI-Prolog 9.0.4 with the paired upstream tree:

  • 15 real coding-tool integration tests passed.
  • 20 existing bridge tests passed.
  • git diff --check passed.
  • Published Git tree exactly matches the locally tested tree.

Guarantee boundaries: file search currently searches one supplied file. Namespace checks are not OS confinement against hostile concurrent directory replacement. Replacement does not preserve ACLs/ownership/xattrs/hard-link identity or promise fsync durability. Process profiles run host-approved executable code; cwd is not a sandbox. Reusing a snapshot replays the admitted result; the host must refresh registry/profile snapshot bindings after edits and cannot treat old receipts as fresh verification.

Remaining integration: accepted upstream pin, DSH wiring, recursive experts, source-KB refresh, and full Frozen-Spec Verify/repair loop. No Nix or live-provider validation was run. Keep draft; this is the tool foundation, not a completed OpenCode replacement.

Refs #1.

AgentProlog main lacks the coding-tool package required for repository work. This adds host composition over the canonical Prolog-RLM tool, authority, and durable-effect boundaries. Depends on https://github.com/lost-rob0t/prolog-rlm/pull/427. The current Nix runtime pin predates that API; advance it after upstream acceptance before enabling the package in the product. Implemented: - Nine tools: project_read, project_search, project_write, project_patch, git_status, git_diff, git_show, process_run, run_tests. - Two deterministic leaf experts: write_expert produces an unexecuted preimage-bound patch; test_result_expert classifies supplied exit status. - coding_registry_create/5 composes the package without granting capabilities, changing authority, or opening an effect store. - Path/symlink checks, bounded UTF-8 reads, exact preimages, stale-approval rejection, atomic replacement, and POSIX permission preservation. - Fixed host process profiles with explicit environment, deadlines, output limits, process-group cleanup, and snapshot-bound durable replay. Local validation on SWI-Prolog 9.0.4 with the paired upstream tree: - 15 real coding-tool integration tests passed. - 20 existing bridge tests passed. - git diff --check passed. - Published Git tree exactly matches the locally tested tree. Guarantee boundaries: file search currently searches one supplied file. Namespace checks are not OS confinement against hostile concurrent directory replacement. Replacement does not preserve ACLs/ownership/xattrs/hard-link identity or promise fsync durability. Process profiles run host-approved executable code; cwd is not a sandbox. Reusing a snapshot replays the admitted result; the host must refresh registry/profile snapshot bindings after edits and cannot treat old receipts as fresh verification. Remaining integration: accepted upstream pin, DSH wiring, recursive experts, source-KB refresh, and full Frozen-Spec Verify/repair loop. No Nix or live-provider validation was run. Keep draft; this is the tool foundation, not a completed OpenCode replacement. Refs #1.
feat: add confined coding tools and deterministic write experts
Some checks failed
CI / flake (pull_request) Failing after 3s
8463973eb9
feat: add language-aware inspection edits and compiler diagnostics
Some checks failed
CI / flake (pull_request) Failing after 3s
fa388cab0c
Some checks failed
CI / flake (pull_request) Failing after 3s
This pull request can be merged automatically.
This branch is out-of-date with the base branch
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin feat/coding-expert-tools:feat/coding-expert-tools
git switch feat/coding-expert-tools

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch main
git merge --no-ff feat/coding-expert-tools
git switch feat/coding-expert-tools
git rebase main
git switch main
git merge --ff-only feat/coding-expert-tools
git switch feat/coding-expert-tools
git rebase main
git switch main
git merge --no-ff feat/coding-expert-tools
git switch main
git merge --squash feat/coding-expert-tools
git switch main
git merge --ff-only feat/coding-expert-tools
git switch main
git merge feat/coding-expert-tools
git push origin main
Sign in to join this conversation.
No description provided.