Skip to content

feat: discoverable entry points — entrypoint tags + routing descriptions on all four nodes#104

Merged
AbirAbbas merged 4 commits into
mainfrom
feat/entrypoint-descriptions
Jul 21, 2026
Merged

feat: discoverable entry points — entrypoint tags + routing descriptions on all four nodes#104
AbirAbbas merged 4 commits into
mainfrom
feat/entrypoint-descriptions

Conversation

@AbirAbbas

@AbirAbbas AbirAbbas commented Jul 21, 2026

Copy link
Copy Markdown
Collaborator

Summary

Companion to Agent-Field/agentfield#805 (node-declared reasoner descriptions + entry points in discovery). SWE-AF's callable surface becomes self-describing: build and implement_issue (all four nodes, Python + Go) register an entrypoint tag plus a routing description — when to pick the feature-level pipeline vs the issue-level sub-harness entry — so a main harness can discover them via af ls --entrypoints / GET /api/v1/discovery/capabilities instead of hardcoding node knowledge. The remaining orchestrators (plan, execute, resolve, resume_build) self-describe from their docstring first paragraphs, which the new SDK registers automatically; the Go nodes mirror those texts explicitly.

Verified live against a control plane built from the agentfield PR branch — both nodes re-registered and:

$ af ls -e --node swe-planner
swe-planner.build            [entrypoint] Feature-level build: plans a PRD → architecture → issue DAG…
swe-planner.implement_issue  [entrypoint] Issue-level build (sub-harness entry): implements ONE fully-scoped issue…

with identical output for swe-planner-go, and docstring-defaulted descriptions on all 29 other reasoners with zero per-reasoner changes.

Release gate — cleared

  • pyproject.toml/requirements.txt bump the floor to agentfield>=0.1.113 (deliberate cache-busting bump) — that version must exist on PyPI before CI's pip install -e .[dev] can pass.
  • Go SDK re-pinned to the v0.1.113 release commit (go.mod pseudo-version + AGENTFIELD_SDK_REF in go/Dockerfile and ci.yml bumped together), so the Go nodes transmit descriptions.

Test plan

  • Python: full suite at CI parity in a .env-free worktree against the new SDK — 1129 passed, 1 skipped + compileall clean
  • Go: gofmt/build/vet/go test -race ./... green against the agentfield PR branch via go.work (node parity tests included)
  • Live: af ls -e, discovery API, and catalog verified on a running stack (both nodes)
  • After agentfield release: floor verified against PyPI (0.1.113), Go SDK re-pinned to release commit 054a7d18 (go.mod + Dockerfile + ci.yml together), CI re-run green, marked ready

🤖 Generated with Claude Code

AbirAbbas and others added 3 commits July 21, 2026 11:24
…ssue (Python)

Both entry points now register with the control plane carrying an
'entrypoint' tag and a caller-facing description (when to pick build vs
implement_issue), so a harness can discover them via af ls --entrypoints or
the discovery API instead of hardcoding node knowledge. The remaining
orchestrators self-describe through their docstring first paragraphs
(agentfield >= 0.1.113 registers those automatically).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
build/implement_issue (and fast build) carry the same entrypoint tag and
routing description as Python; the other orchestrators get the Python
docstring summaries via an explicit map since Go has no docstrings.
Descriptions transmit once the SDK pin advances to agentfield >= 0.1.113
(WithDescription already exists at the current pin, so this compiles today).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…stration

Floor bump (not just a compatible range) so Docker layer caches re-resolve
and actually pull the SDK that transmits per-reasoner descriptions.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@AbirAbbas
AbirAbbas marked this pull request as ready for review July 21, 2026 15:33
…on transmission

go.mod pseudo-version + AGENTFIELD_SDK_REF in go/Dockerfile and ci.yml bumped
together to the v0.1.113 release commit, so the Go nodes' WithDescription
metadata actually reaches the control plane.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@AbirAbbas
AbirAbbas merged commit 5b919a2 into main Jul 21, 2026
2 checks passed
@AbirAbbas
AbirAbbas deleted the feat/entrypoint-descriptions branch July 21, 2026 16:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant