Coding-agent nodes for workgraph
Dependencies
import {
"totto2727/workgraph-agent-cli"
}pub suberror CodingAgentContinuationError {
AgentMismatch(expected~ : CodingAgentId, actual~ : CodingAgentId)
} derive(Debug)fn CodingAgent::CodingAgent(id : CodingAgentId, open : async (CodingAgentOpenContext) -> Cli) -> CodingAgentpub struct CodingAgentContinuation {
// private fields
}pub struct CodingAgentNodeSpec[S, P] {
agent : CodingAgent
resource_key : ResourceKey
resource_scope : ResourceScope
open_context : (NodeContext, S) -> CodingAgentOpenContext raise
build_prompt : (NodeContext, S) -> Prompt raise
select_continuation : (NodeContext, S) -> CodingAgentContinuation? raise
decode_response : (S, FinalResponse, CodingAgentContinuation?) -> NodeOutput[P] raise
}fn[S, P] CodingAgentNodeSpec::CodingAgentNodeSpec(agent~ : CodingAgent, resource_key~ : ResourceKey, resource_scope~ : ResourceScope, open_context~ : (NodeContext, S) -> CodingAgentOpenContext raise, build_prompt~ : (NodeContext, S) -> Prompt raise, select_continuation~ : (NodeContext, S) -> CodingAgentContinuation? raise, decode_response~ : (S, FinalResponse, CodingAgentContinuation?) -> NodeOutput[P] raise) -> CodingAgentNodeSpec[S, P]pub struct CodingAgentOpenContext {
run_id : RunId
task_group : TaskGroup[Unit]
workspace : WorkspaceRef
approval : ApprovalPolicy
network : NetworkPolicy
environment : HashMap[String, String]
events : EventSink
}fn CodingAgentOpenContext::CodingAgentOpenContext(run_id~ : RunId, task_group~ : TaskGroup[Unit], workspace~ : WorkspaceRef, approval~ : ApprovalPolicy, network~ : NetworkPolicy, environment~ : HashMap[String, String], events~ : EventSink) -> CodingAgentOpenContextfn WorkspaceRef::WorkspaceRef(root : Path, additional_writable_roots : ReadOnlyArray[Path]) -> WorkspaceReffn[S, P] coding_agent_node(id : NodeId, metadata : NodeMetadata, spec : CodingAgentNodeSpec[S, P]) -> Node[S, P]Coding-agent nodes for workgraph
Dependencies