feat(agents): AgentDispatchPort domain interface #514
Labels
No labels
area:agents
area:dashboard
area:database
area:design
area:design-review
area:flows
area:infra
area:meta
area:security
area:sessions
area:webhook
area:workdir
security
type:bug
type:chore
type:meta
type:user-story
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
charles/claude-hooks#514
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
User story
As a flow-graph or webhook author, I want a single domain port to dispatch agent work, so that I can request an agent without knowing about Docker, the Claude SDK, or MCP server wiring.
Acceptance criteria
Port shape
apps/server/src/domain/ports/agent-dispatch-port.tsexportsAgentDispatchPortinterfacedispatch(req: AgentDispatchRequest): Promise<AgentDispatchHandle>steer(taskId: string, message: string): Promise<void>kill(taskId: string, reason?: string): Promise<void>status(taskId: string): Promise<AgentDispatchStatus | null>AgentDispatchRequestcarries:agentType,repo(forge+owner+name),issueOrPr,prompt,forgeToken?,resumeSessionKey?,metadataAgentDispatchHandlecarries:taskId,worker,containerId?,sessionKeySDKMessage,Options) in the port fileDockerExecArgs, container names) in the port fileTests
Out of scope
DefaultAgentDispatch) — separate issueReferences
[Meta] Hexagonal: AgentDispatchPort migrationdomain/ports/forge-port.tsis the analogue precedentdomain/agent/claude-port.tsshape we are wrapping