feat(agents): add remaining 15 adapters (droid, amp, agy, crush, aider, goose, auggie, continue, devin, cline, kiro, kilocode, vibe, pi, autohand)#150
Conversation
Registers the droid harness, stacked on the agent platform. Includes its own activity deriver. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Registers the amp harness, stacked on the agent platform. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Registers the agy harness, stacked on the agent platform. Includes its own activity deriver. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…, kiro, kilocode, vibe, pi, autohand adapters Cherry-pick batch landing the remaining 12 yyovil adapter directories per Discussion #148 recipe, on top of #145 (grok/cursor/qwen/copilot/kimi) and the droid/amp/agy commits earlier on this branch. Each adapter is a self-contained package under backend/internal/adapters/agent/<name>/; registry.Constructors(), activitydispatch.Derivers (for adapters with activity.go), and wiring_test.go are unified to register all 23 shipped adapters in one place. No new migration: 0007_allow_implemented_harnesses already widens the sessions.harness CHECK to cover every adapter.
Greptile SummaryThis PR lands the remaining 15 agent adapters (droid, amp, agy, crush, aider, goose, auggie, continue, devin, cline, kiro, kilocode, vibe, pi, autohand), completing the full set of 23 shipped adapters registered in
Confidence Score: 5/5All 15 adapters follow the codebase's established patterns, build cleanly, and pass the full test suite including race detection. The changes are purely additive — new adapter packages wired into the registry and dispatch map with no modifications to existing adapters or shared infrastructure. Each adapter is self-contained and tested. The two new findings are documentation gaps and a code-duplication nit with no effect on runtime behavior. No files require special attention; the noted issues in agy/agy.go and kilocode/hooks.go are quality-of-life items only. Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
R[registry.Constructors] --> A1[droid] & A2[amp] & A3[agy] & A4[crush] & A5[aider] & A6[goose] & A7[auggie] & A8[continueagent] & A9[devin] & A10[cline] & A11[kiro] & A12[kilocode] & A13[vibe] & A14[pi] & A15[autohand]
subgraph TierA[Tier A - Native Hooks]
A1 --> H1[.factory/hooks.json]
A3 --> H3[agy hooks]
A6 --> H6[.agents/plugins/hooks.json]
A10 --> H10[.clinerules/hooks/]
A11 --> H11[.kiro/hooks/]
A12 --> H12[.kilocode/plugins/ao-activity.ts]
A15 --> H15[autohand hook config]
end
subgraph TierB[Tier B - Claude Compat]
A8 --> CC[claudecode.Plugin.GetAgentHooks]
A9 --> CC
end
subgraph TierC[Tier C - No Hooks]
A2 & A4 & A5 & A7 & A13 & A14 --> NOOP[no-op]
end
D[activitydispatch.Derivers] --> |droid,agy,goose,cline,kiro,kilocode,autohand| DA[DeriveActivityState]
CC --> |ao hooks claude-code evt| DA2[claudecode deriver]
Reviews (2): Last reviewed commit: "fix(agents/kilocode): return error from ..." | Re-trigger Greptile |
…nfig Previously the marshal error was discarded and the function returned a prefix carrying an empty KILO_CONFIG_CONTENT. An unrecoverable marshal failure for the typed map should never happen in practice, but if it ever did, Kilo would silently launch with default permissions regardless of the requested mode. Surface it as "no prefix" so the caller's mode choice can't be misrepresented.
Summary
Lands the remaining 15 yyovil agent adapters onto main via the cherry-pick recipe from Discussion #148, following #119 (platform) and #145 (grok/cursor/qwen/copilot/kimi).
Adapters added in this PR (registered in
registry.Constructors()andactivitydispatch.Deriverswhere applicable):After merge,
registry.Constructors()will hold the full set of 23 shipped adapters and all 24 entries in migration0007_allow_implemented_harnesses.sqlare wired.Approach
Per Discussion #148:
Commits cherry-picked from
origin/agents/02-droid…origin/agents/20-autohand:The first 3 adapters (droid/amp/agy) preserve yyovil's per-adapter commits; the remaining 12 are squashed into one batch commit because each commit's edits to
registry.go/activitydispatch/dispatch.go/wiring_test.goconflicted with the previous adapter's additions to the same regions, and resolving each conflict individually was strictly mechanical (keep both sides). The adapter directories themselves are unchanged from yyovil's commits.Test plan
cd backend && go build ./...— clean.cd backend && go test -race ./...— 1081 passed in 61 packages.🤖 Generated with Claude Code