@kynetic-ai/spec 0.9.1 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -1
- package/dist/acp/client.d.ts +6 -1
- package/dist/acp/client.d.ts.map +1 -1
- package/dist/acp/client.js +7 -2
- package/dist/acp/client.js.map +1 -1
- package/dist/acp/framing.d.ts +12 -1
- package/dist/acp/framing.d.ts.map +1 -1
- package/dist/acp/framing.js +27 -4
- package/dist/acp/framing.js.map +1 -1
- package/dist/agent-runtime/dispatch.d.ts +261 -0
- package/dist/agent-runtime/dispatch.d.ts.map +1 -0
- package/dist/agent-runtime/dispatch.js +791 -0
- package/dist/agent-runtime/dispatch.js.map +1 -0
- package/dist/agent-runtime/index.d.ts +11 -0
- package/dist/agent-runtime/index.d.ts.map +1 -0
- package/dist/agent-runtime/index.js +11 -0
- package/dist/agent-runtime/index.js.map +1 -0
- package/dist/agent-runtime/invocation.d.ts +86 -0
- package/dist/agent-runtime/invocation.d.ts.map +1 -0
- package/dist/agent-runtime/invocation.js +442 -0
- package/dist/agent-runtime/invocation.js.map +1 -0
- package/dist/agent-runtime/prompts.d.ts +50 -0
- package/dist/agent-runtime/prompts.d.ts.map +1 -0
- package/dist/agent-runtime/prompts.js +108 -0
- package/dist/agent-runtime/prompts.js.map +1 -0
- package/dist/agents/spawner.d.ts.map +1 -1
- package/dist/agents/spawner.js +60 -4
- package/dist/agents/spawner.js.map +1 -1
- package/dist/cli/batch-exec.d.ts.map +1 -1
- package/dist/cli/batch-exec.js +140 -62
- package/dist/cli/batch-exec.js.map +1 -1
- package/dist/cli/batch-write-buffer.d.ts +141 -0
- package/dist/cli/batch-write-buffer.d.ts.map +1 -0
- package/dist/cli/batch-write-buffer.js +400 -0
- package/dist/cli/batch-write-buffer.js.map +1 -0
- package/dist/cli/commands/agent.d.ts +20 -0
- package/dist/cli/commands/agent.d.ts.map +1 -0
- package/dist/cli/commands/agent.js +831 -0
- package/dist/cli/commands/agent.js.map +1 -0
- package/dist/cli/commands/inbox.d.ts.map +1 -1
- package/dist/cli/commands/inbox.js +46 -22
- package/dist/cli/commands/inbox.js.map +1 -1
- package/dist/cli/commands/index.d.ts +1 -0
- package/dist/cli/commands/index.d.ts.map +1 -1
- package/dist/cli/commands/index.js +1 -0
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/commands/item.d.ts.map +1 -1
- package/dist/cli/commands/item.js +22 -16
- package/dist/cli/commands/item.js.map +1 -1
- package/dist/cli/commands/log.js +1 -1
- package/dist/cli/commands/log.js.map +1 -1
- package/dist/cli/commands/meta.d.ts.map +1 -1
- package/dist/cli/commands/meta.js +159 -6
- package/dist/cli/commands/meta.js.map +1 -1
- package/dist/cli/commands/module.d.ts.map +1 -1
- package/dist/cli/commands/module.js +2 -1
- package/dist/cli/commands/module.js.map +1 -1
- package/dist/cli/commands/plan-import.js +19 -3
- package/dist/cli/commands/plan-import.js.map +1 -1
- package/dist/cli/commands/plan.d.ts.map +1 -1
- package/dist/cli/commands/plan.js +87 -43
- package/dist/cli/commands/plan.js.map +1 -1
- package/dist/cli/commands/ralph.d.ts +5 -56
- package/dist/cli/commands/ralph.d.ts.map +1 -1
- package/dist/cli/commands/ralph.js +52 -1502
- package/dist/cli/commands/ralph.js.map +1 -1
- package/dist/cli/commands/search.d.ts.map +1 -1
- package/dist/cli/commands/search.js +22 -13
- package/dist/cli/commands/search.js.map +1 -1
- package/dist/cli/commands/serve.d.ts.map +1 -1
- package/dist/cli/commands/serve.js +70 -11
- package/dist/cli/commands/serve.js.map +1 -1
- package/dist/cli/commands/session/checkpoint.d.ts.map +1 -1
- package/dist/cli/commands/session/checkpoint.js +7 -2
- package/dist/cli/commands/session/checkpoint.js.map +1 -1
- package/dist/cli/commands/session/commands.d.ts.map +1 -1
- package/dist/cli/commands/session/commands.js +15 -0
- package/dist/cli/commands/session/commands.js.map +1 -1
- package/dist/cli/commands/session/context.d.ts.map +1 -1
- package/dist/cli/commands/session/context.js +10 -5
- package/dist/cli/commands/session/context.js.map +1 -1
- package/dist/cli/commands/session/log.d.ts +1 -0
- package/dist/cli/commands/session/log.d.ts.map +1 -1
- package/dist/cli/commands/session/log.js +124 -8
- package/dist/cli/commands/session/log.js.map +1 -1
- package/dist/cli/commands/session/stale-close.d.ts +17 -0
- package/dist/cli/commands/session/stale-close.d.ts.map +1 -0
- package/dist/cli/commands/session/stale-close.js +378 -0
- package/dist/cli/commands/session/stale-close.js.map +1 -0
- package/dist/cli/commands/setup.d.ts.map +1 -1
- package/dist/cli/commands/setup.js +95 -0
- package/dist/cli/commands/setup.js.map +1 -1
- package/dist/cli/commands/skill-crud.d.ts.map +1 -1
- package/dist/cli/commands/skill-crud.js +4 -3
- package/dist/cli/commands/skill-crud.js.map +1 -1
- package/dist/cli/commands/skill-diff.d.ts.map +1 -1
- package/dist/cli/commands/skill-diff.js +15 -0
- package/dist/cli/commands/skill-diff.js.map +1 -1
- package/dist/cli/commands/skill-install.d.ts.map +1 -1
- package/dist/cli/commands/skill-install.js +50 -18
- package/dist/cli/commands/skill-install.js.map +1 -1
- package/dist/cli/commands/task.d.ts.map +1 -1
- package/dist/cli/commands/task.js +536 -310
- package/dist/cli/commands/task.js.map +1 -1
- package/dist/cli/commands/tasks.js +1 -1
- package/dist/cli/commands/tasks.js.map +1 -1
- package/dist/cli/commands/triage.d.ts.map +1 -1
- package/dist/cli/commands/triage.js +37 -13
- package/dist/cli/commands/triage.js.map +1 -1
- package/dist/cli/commands/validate.d.ts.map +1 -1
- package/dist/cli/commands/validate.js +65 -25
- package/dist/cli/commands/validate.js.map +1 -1
- package/dist/cli/help/content.d.ts.map +1 -1
- package/dist/cli/help/content.js +5 -0
- package/dist/cli/help/content.js.map +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +2 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/output.d.ts.map +1 -1
- package/dist/cli/output.js +5 -1
- package/dist/cli/output.js.map +1 -1
- package/dist/daemon/project-context.ts +22 -0
- package/dist/daemon/routes/agent-dispatch.ts +272 -0
- package/dist/daemon/server.ts +55 -20
- package/dist/daemon/websocket/handler.ts +67 -6
- package/dist/daemon/websocket/lifecycle.ts +19 -0
- package/dist/daemon/websocket/pubsub.ts +74 -3
- package/dist/export/html.d.ts.map +1 -1
- package/dist/export/html.js +5 -2
- package/dist/export/html.js.map +1 -1
- package/dist/export/triage.d.ts +1 -1
- package/dist/export/triage.d.ts.map +1 -1
- package/dist/export/triage.js +5 -3
- package/dist/export/triage.js.map +1 -1
- package/dist/parser/alignment.d.ts.map +1 -1
- package/dist/parser/alignment.js +6 -3
- package/dist/parser/alignment.js.map +1 -1
- package/dist/parser/assess.js +1 -1
- package/dist/parser/assess.js.map +1 -1
- package/dist/parser/config.d.ts +6 -6
- package/dist/parser/meta.d.ts.map +1 -1
- package/dist/parser/meta.js +9 -8
- package/dist/parser/meta.js.map +1 -1
- package/dist/parser/plan-document.d.ts +12 -12
- package/dist/parser/plans.d.ts +7 -0
- package/dist/parser/plans.d.ts.map +1 -1
- package/dist/parser/plans.js +100 -15
- package/dist/parser/plans.js.map +1 -1
- package/dist/parser/refs.d.ts +5 -0
- package/dist/parser/refs.d.ts.map +1 -1
- package/dist/parser/refs.js +17 -12
- package/dist/parser/refs.js.map +1 -1
- package/dist/parser/shadow.d.ts +1 -1
- package/dist/parser/shadow.d.ts.map +1 -1
- package/dist/parser/shadow.js +71 -4
- package/dist/parser/shadow.js.map +1 -1
- package/dist/parser/skill-render.d.ts.map +1 -1
- package/dist/parser/skill-render.js +6 -3
- package/dist/parser/skill-render.js.map +1 -1
- package/dist/parser/validate.d.ts.map +1 -1
- package/dist/parser/validate.js +35 -76
- package/dist/parser/validate.js.map +1 -1
- package/dist/parser/yaml.d.ts +24 -5
- package/dist/parser/yaml.d.ts.map +1 -1
- package/dist/parser/yaml.js +224 -64
- package/dist/parser/yaml.js.map +1 -1
- package/dist/schema/meta.d.ts +442 -119
- package/dist/schema/meta.d.ts.map +1 -1
- package/dist/schema/meta.js +55 -0
- package/dist/schema/meta.js.map +1 -1
- package/dist/schema/plan.d.ts +22 -22
- package/dist/schema/spec.d.ts +39 -39
- package/dist/schema/task.d.ts +43 -32
- package/dist/schema/task.d.ts.map +1 -1
- package/dist/schema/task.js +5 -0
- package/dist/schema/task.js.map +1 -1
- package/dist/sessions/store.d.ts +112 -0
- package/dist/sessions/store.d.ts.map +1 -1
- package/dist/sessions/store.js +414 -22
- package/dist/sessions/store.js.map +1 -1
- package/dist/sessions/types.d.ts +75 -17
- package/dist/sessions/types.d.ts.map +1 -1
- package/dist/sessions/types.js +51 -1
- package/dist/sessions/types.js.map +1 -1
- package/dist/triage/actions.d.ts +1 -0
- package/dist/triage/actions.d.ts.map +1 -1
- package/dist/triage/actions.js +34 -7
- package/dist/triage/actions.js.map +1 -1
- package/dist/utils/commit.js +1 -1
- package/dist/utils/commit.js.map +1 -1
- package/dist/web-ui/_app/env.js +1 -0
- package/dist/web-ui/_app/immutable/assets/0.BxCxvrZR.css +1 -0
- package/dist/web-ui/_app/immutable/assets/select-trigger.CV-KWLNP.css +1 -0
- package/dist/web-ui/_app/immutable/chunks/B-CZR0q8.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/B1IR5Su5.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/BCkp8Hs8.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/B_Cvvtc4.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/BtFaGGII.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/Bu8JVsCH.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/C87u-CNA.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/CrFkBTYp.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/D1ArdqNb.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/D28BF5MJ.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/D6RtLpzL.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/D7FHSgx2.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/DBXrsxZQ.js +2 -0
- package/dist/web-ui/_app/immutable/chunks/Da_hHMuA.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/Do6LchSF.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/DoNPtcAw.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/DtUbXRZz.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/DyFPRlLl.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/DzAP8lRM.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/DzVXElzN.js +2 -0
- package/dist/web-ui/_app/immutable/chunks/aoPBFken.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/i-XnOIX0.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/laxtrUO3.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/q1nIWgqB.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/sTLbk5Nm.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/vwKgQu5P.js +5 -0
- package/dist/web-ui/_app/immutable/entry/app.BCwMcqnT.js +2 -0
- package/dist/web-ui/_app/immutable/entry/start.wKCQH-tt.js +1 -0
- package/dist/web-ui/_app/immutable/nodes/0.CjGVMG74.js +1 -0
- package/dist/web-ui/_app/immutable/nodes/1.B6_AIPan.js +1 -0
- package/dist/web-ui/_app/immutable/nodes/2.q4oCS7Ws.js +1 -0
- package/dist/web-ui/_app/immutable/nodes/3.rTKZf9o2.js +1 -0
- package/dist/web-ui/_app/immutable/nodes/4.DVIDRu1d.js +1 -0
- package/dist/web-ui/_app/immutable/nodes/5.8PtPXIOd.js +1 -0
- package/dist/web-ui/_app/immutable/nodes/6.ZZrTemy_.js +1 -0
- package/dist/web-ui/_app/immutable/nodes/7.IP-gxCxi.js +1 -0
- package/dist/web-ui/_app/version.json +1 -0
- package/dist/web-ui/index.html +36 -0
- package/dist/web-ui/robots.txt +3 -0
- package/package.json +3 -2
- package/plugin/.claude-plugin/marketplace.json +1 -1
- package/plugin/.claude-plugin/plugin.json +1 -1
- package/plugin/plugins/kspec/skills/task-work/SKILL.md +25 -2
- package/templates/agents-sections/06-ralph-loop.md +64 -11
- package/templates/skills/task-work/SKILL.md +25 -2
- package/dist/ralph/cli-renderer.d.ts +0 -27
- package/dist/ralph/cli-renderer.d.ts.map +0 -1
- package/dist/ralph/cli-renderer.js +0 -250
- package/dist/ralph/cli-renderer.js.map +0 -1
- package/dist/ralph/events.d.ts +0 -65
- package/dist/ralph/events.d.ts.map +0 -1
- package/dist/ralph/events.js +0 -600
- package/dist/ralph/events.js.map +0 -1
- package/dist/ralph/index.d.ts +0 -11
- package/dist/ralph/index.d.ts.map +0 -1
- package/dist/ralph/index.js +0 -16
- package/dist/ralph/index.js.map +0 -1
- package/dist/ralph/loop-errors.d.ts +0 -83
- package/dist/ralph/loop-errors.d.ts.map +0 -1
- package/dist/ralph/loop-errors.js +0 -150
- package/dist/ralph/loop-errors.js.map +0 -1
- package/dist/ralph/subagent.d.ts +0 -127
- package/dist/ralph/subagent.d.ts.map +0 -1
- package/dist/ralph/subagent.js +0 -268
- package/dist/ralph/subagent.js.map +0 -1
- package/dist/ralph/wrap-up.d.ts +0 -127
- package/dist/ralph/wrap-up.d.ts.map +0 -1
- package/dist/ralph/wrap-up.js +0 -271
- package/dist/ralph/wrap-up.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../../src/agent-runtime/dispatch.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Runtime module.
|
|
3
|
+
*
|
|
4
|
+
* Provides the core building blocks for per-invocation agent lifecycle:
|
|
5
|
+
* session creation, ACP agent spawn, prompt delivery, event logging,
|
|
6
|
+
* timeout handling, and structured completion tracking.
|
|
7
|
+
*/
|
|
8
|
+
export { runInvocation, InvocationTimeoutError, type InvocationOptions, type InvocationResult, } from "./invocation.js";
|
|
9
|
+
export { resolveSkills, buildPromptWithSkills, type ResolvedSkill, type BuildPromptOptions, } from "./prompts.js";
|
|
10
|
+
export { DispatchEngine, type DispatchEngineOptions, type TaskStateChange, type TaskStatus, } from "./dispatch.js";
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agent-runtime/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,aAAa,EACb,sBAAsB,EACtB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,GACtB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,aAAa,EACb,qBAAqB,EACrB,KAAK,aAAa,EAClB,KAAK,kBAAkB,GACxB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,cAAc,EACd,KAAK,qBAAqB,EAC1B,KAAK,eAAe,EACpB,KAAK,UAAU,GAChB,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Runtime module.
|
|
3
|
+
*
|
|
4
|
+
* Provides the core building blocks for per-invocation agent lifecycle:
|
|
5
|
+
* session creation, ACP agent spawn, prompt delivery, event logging,
|
|
6
|
+
* timeout handling, and structured completion tracking.
|
|
7
|
+
*/
|
|
8
|
+
export { runInvocation, InvocationTimeoutError, } from "./invocation.js";
|
|
9
|
+
export { resolveSkills, buildPromptWithSkills, } from "./prompts.js";
|
|
10
|
+
export { DispatchEngine, } from "./dispatch.js";
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agent-runtime/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,aAAa,EACb,sBAAsB,GAGvB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,aAAa,EACb,qBAAqB,GAGtB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,cAAc,GAIf,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Invocation Lifecycle
|
|
3
|
+
*
|
|
4
|
+
* Per-invocation session creation, ACP agent spawn, prompt delivery,
|
|
5
|
+
* event logging, timeout handling, and structured completion tracking.
|
|
6
|
+
*
|
|
7
|
+
* This is the core building block used by both the dispatch engine and
|
|
8
|
+
* CLI one-shot mode. Each invocation creates an isolated session with
|
|
9
|
+
* its own event log and metadata.
|
|
10
|
+
*
|
|
11
|
+
* AC: @agent-invocation-lifecycle ac-1 through ac-11
|
|
12
|
+
*/
|
|
13
|
+
import type { Agent } from "../schema/meta.js";
|
|
14
|
+
import type { SessionUpdate } from "../acp/index.js";
|
|
15
|
+
import type { SessionMetadata, SessionTrigger } from "../sessions/types.js";
|
|
16
|
+
export declare const DEFAULT_KSPEC_CLI_PATH: string;
|
|
17
|
+
/**
|
|
18
|
+
* Options for running a single agent invocation.
|
|
19
|
+
*/
|
|
20
|
+
export interface InvocationOptions {
|
|
21
|
+
/** The agent definition describing capabilities and configuration */
|
|
22
|
+
agent: Agent;
|
|
23
|
+
/** The spec directory (.kspec/) */
|
|
24
|
+
specDir: string;
|
|
25
|
+
/** Working directory for spawned agent */
|
|
26
|
+
cwd: string;
|
|
27
|
+
/** Task reference being worked on (e.g., "@01KJP277A"). Optional — omit for unbound invocations. */
|
|
28
|
+
taskRef?: string;
|
|
29
|
+
/** The prompt to send to the agent */
|
|
30
|
+
prompt: string;
|
|
31
|
+
/** Trigger source for this invocation */
|
|
32
|
+
trigger: SessionTrigger;
|
|
33
|
+
/** Timeout in minutes (overrides agent.budget.timeout_minutes if set) */
|
|
34
|
+
timeoutMinutes?: number;
|
|
35
|
+
/** Whether to use auto-approve (yolo) args for adapter */
|
|
36
|
+
autoApprove?: boolean;
|
|
37
|
+
/** Extra environment variables for the spawned agent */
|
|
38
|
+
env?: Record<string, string>;
|
|
39
|
+
/** Called for each streaming update from the agent */
|
|
40
|
+
onUpdate?: (update: SessionUpdate) => void;
|
|
41
|
+
/** Path to kspec CLI (defaults to resolved bin/kspec.cjs) */
|
|
42
|
+
kspecCliPath?: string;
|
|
43
|
+
/** Abort signal for graceful cancellation (AC-11) */
|
|
44
|
+
abortSignal?: AbortSignal;
|
|
45
|
+
/** Pre-assigned session ID (generated if not provided) */
|
|
46
|
+
sessionId?: string;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Result of a completed agent invocation.
|
|
50
|
+
*/
|
|
51
|
+
export interface InvocationResult {
|
|
52
|
+
/** Session that was created for this invocation */
|
|
53
|
+
session: SessionMetadata;
|
|
54
|
+
/** How the invocation ended */
|
|
55
|
+
outcome: "success" | "timed_out" | "failed";
|
|
56
|
+
/** Stop reason from ACP (e.g., "end_turn") if the invocation completed */
|
|
57
|
+
stopReason?: string;
|
|
58
|
+
/** Error message if the invocation failed */
|
|
59
|
+
error?: string;
|
|
60
|
+
/** Total duration in milliseconds */
|
|
61
|
+
durationMs: number;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Run a single agent invocation for a task.
|
|
65
|
+
*
|
|
66
|
+
* Creates a session, spawns the agent, injects KSPEC_SESSION_ID,
|
|
67
|
+
* sends the prompt, streams events, and closes the session on completion.
|
|
68
|
+
*
|
|
69
|
+
* AC: @agent-invocation-lifecycle ac-1 through ac-11
|
|
70
|
+
*/
|
|
71
|
+
export declare function runInvocation(options: InvocationOptions): Promise<InvocationResult>;
|
|
72
|
+
/**
|
|
73
|
+
* Thrown when an invocation exceeds its configured timeout.
|
|
74
|
+
*/
|
|
75
|
+
export declare class InvocationTimeoutError extends Error {
|
|
76
|
+
readonly timeoutMinutes: number;
|
|
77
|
+
constructor(timeoutMinutes: number);
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Thrown when an invocation is aborted via AbortSignal (graceful shutdown).
|
|
81
|
+
* AC: @agent-dispatch-engine ac-11
|
|
82
|
+
*/
|
|
83
|
+
export declare class InvocationAbortedError extends Error {
|
|
84
|
+
constructor();
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=invocation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invocation.d.ts","sourceRoot":"","sources":["../../src/agent-runtime/invocation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAK/C,OAAO,KAAK,EAA4B,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAQ/E,OAAO,KAAK,EAAqB,eAAe,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAI/F,eAAO,MAAM,sBAAsB,QAGlC,CAAC;AAIF;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,qEAAqE;IACrE,KAAK,EAAE,KAAK,CAAC;IACb,mCAAmC;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,0CAA0C;IAC1C,GAAG,EAAE,MAAM,CAAC;IACZ,oGAAoG;IACpG,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sCAAsC;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,yCAAyC;IACzC,OAAO,EAAE,cAAc,CAAC;IACxB,yEAAyE;IACzE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,0DAA0D;IAC1D,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,wDAAwD;IACxD,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,sDAAsD;IACtD,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,CAAC;IAC3C,6DAA6D;IAC7D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qDAAqD;IACrD,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,0DAA0D;IAC1D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,mDAAmD;IACnD,OAAO,EAAE,eAAe,CAAC;IACzB,+BAA+B;IAC/B,OAAO,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC5C,0EAA0E;IAC1E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6CAA6C;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,UAAU,EAAE,MAAM,CAAC;CACpB;AA0FD;;;;;;;GAOG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA4YzF;AAID;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,KAAK;aACnB,cAAc,EAAE,MAAM;gBAAtB,cAAc,EAAE,MAAM;CAInD;AAED;;;GAGG;AACH,qBAAa,sBAAuB,SAAQ,KAAK;;CAKhD"}
|
|
@@ -0,0 +1,442 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Invocation Lifecycle
|
|
3
|
+
*
|
|
4
|
+
* Per-invocation session creation, ACP agent spawn, prompt delivery,
|
|
5
|
+
* event logging, timeout handling, and structured completion tracking.
|
|
6
|
+
*
|
|
7
|
+
* This is the core building block used by both the dispatch engine and
|
|
8
|
+
* CLI one-shot mode. Each invocation creates an isolated session with
|
|
9
|
+
* its own event log and metadata.
|
|
10
|
+
*
|
|
11
|
+
* AC: @agent-invocation-lifecycle ac-1 through ac-11
|
|
12
|
+
*/
|
|
13
|
+
import * as path from "node:path";
|
|
14
|
+
import { spawnSync } from "node:child_process";
|
|
15
|
+
import { ulid } from "ulid";
|
|
16
|
+
import { buildPromptWithSkills } from "./prompts.js";
|
|
17
|
+
import { resolveAdapter } from "../agents/adapters.js";
|
|
18
|
+
import { spawnAndInitialize } from "../agents/spawner.js";
|
|
19
|
+
import { createSession, closeSession, appendEvent, injectEnvForAdapter, removeEnvForAdapter, } from "../sessions/store.js";
|
|
20
|
+
// ─── Constants ────────────────────────────────────────────────────────────────
|
|
21
|
+
export const DEFAULT_KSPEC_CLI_PATH = path.resolve(path.dirname(new URL(import.meta.url).pathname), "../../bin/kspec.cjs");
|
|
22
|
+
// ─── Helpers ──────────────────────────────────────────────────────────────────
|
|
23
|
+
/**
|
|
24
|
+
* Run a kspec CLI command synchronously.
|
|
25
|
+
*/
|
|
26
|
+
function runKspecCli(args, cwd, kspecCliPath) {
|
|
27
|
+
const result = spawnSync(process.execPath, [kspecCliPath, ...args], {
|
|
28
|
+
encoding: "utf-8",
|
|
29
|
+
stdio: "pipe",
|
|
30
|
+
cwd,
|
|
31
|
+
});
|
|
32
|
+
return {
|
|
33
|
+
stdout: result.stdout ?? "",
|
|
34
|
+
stderr: result.stderr ?? "",
|
|
35
|
+
status: result.status,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Add a note to a task via kspec CLI.
|
|
40
|
+
*/
|
|
41
|
+
function addTaskNote(taskRef, note, cwd, kspecCliPath) {
|
|
42
|
+
runKspecCli(["task", "note", taskRef, note], cwd, kspecCliPath);
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Block a task via kspec CLI.
|
|
46
|
+
*/
|
|
47
|
+
function blockTask(taskRef, reason, cwd, kspecCliPath) {
|
|
48
|
+
runKspecCli(["task", "block", taskRef, "--reason", reason], cwd, kspecCliPath);
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Get the consecutive failure count for a task from its notes.
|
|
52
|
+
* Looks for AGENT-FAIL notes added by previous invocations.
|
|
53
|
+
*/
|
|
54
|
+
function getConsecutiveFailureCount(taskRef, cwd, kspecCliPath) {
|
|
55
|
+
const result = runKspecCli(["task", "get", taskRef, "--json"], cwd, kspecCliPath);
|
|
56
|
+
if (result.status !== 0)
|
|
57
|
+
return 0;
|
|
58
|
+
try {
|
|
59
|
+
const task = JSON.parse(result.stdout);
|
|
60
|
+
const notes = task.notes ?? [];
|
|
61
|
+
// Count consecutive AGENT-FAIL notes from the end
|
|
62
|
+
let count = 0;
|
|
63
|
+
for (let i = notes.length - 1; i >= 0; i--) {
|
|
64
|
+
if (notes[i].content?.includes("[AGENT-FAIL]")) {
|
|
65
|
+
count++;
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
break;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return count;
|
|
72
|
+
}
|
|
73
|
+
catch {
|
|
74
|
+
return 0;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Dispose a spawned agent, terminating the process if running.
|
|
79
|
+
* AC: @agent-invocation-lifecycle ac-8
|
|
80
|
+
*/
|
|
81
|
+
function disposeAgent(agent) {
|
|
82
|
+
if (agent) {
|
|
83
|
+
try {
|
|
84
|
+
agent.kill("SIGTERM");
|
|
85
|
+
}
|
|
86
|
+
catch {
|
|
87
|
+
// Best-effort termination
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return null;
|
|
91
|
+
}
|
|
92
|
+
// ─── Core Invocation ──────────────────────────────────────────────────────────
|
|
93
|
+
/**
|
|
94
|
+
* Run a single agent invocation for a task.
|
|
95
|
+
*
|
|
96
|
+
* Creates a session, spawns the agent, injects KSPEC_SESSION_ID,
|
|
97
|
+
* sends the prompt, streams events, and closes the session on completion.
|
|
98
|
+
*
|
|
99
|
+
* AC: @agent-invocation-lifecycle ac-1 through ac-11
|
|
100
|
+
*/
|
|
101
|
+
export async function runInvocation(options) {
|
|
102
|
+
const { agent, specDir, cwd, taskRef, trigger, autoApprove = agent.auto_approve, env = {}, onUpdate, kspecCliPath = DEFAULT_KSPEC_CLI_PATH, abortSignal, } = options;
|
|
103
|
+
const startTime = Date.now();
|
|
104
|
+
const sessionId = options.sessionId ?? ulid();
|
|
105
|
+
// Resolve adapter
|
|
106
|
+
const adapterId = agent.adapter ?? "claude-agent-acp";
|
|
107
|
+
const adapter = resolveAdapter(adapterId);
|
|
108
|
+
// Build extra args for auto-approve
|
|
109
|
+
const extraArgs = autoApprove ? (adapter.autoApproveArgs ?? []) : [];
|
|
110
|
+
// Resolve timeout: option overrides agent budget
|
|
111
|
+
const timeoutMinutes = options.timeoutMinutes ??
|
|
112
|
+
agent.budget?.timeout_minutes ??
|
|
113
|
+
30;
|
|
114
|
+
const timeoutMs = timeoutMinutes * 60 * 1000;
|
|
115
|
+
// Keep ACP request timeout slightly above invocation timeout so the outer
|
|
116
|
+
// lifecycle controls timeout behavior (cancel + timeout note), not framing.
|
|
117
|
+
const promptRequestTimeoutMs = Math.max(1, Math.ceil(timeoutMs + 5_000));
|
|
118
|
+
// Resolve skill content for prompt
|
|
119
|
+
// AC: @agent-invocation-lifecycle ac-7
|
|
120
|
+
const fullPrompt = await buildPromptWithSkills({
|
|
121
|
+
basePrompt: options.prompt,
|
|
122
|
+
skillIds: agent.skills ?? [],
|
|
123
|
+
specDir,
|
|
124
|
+
adapterId,
|
|
125
|
+
});
|
|
126
|
+
// Capture the pre-existing KSPEC_SESSION_ID so we can restore it in finally.
|
|
127
|
+
// AC: @agent-invocation-lifecycle ac-8
|
|
128
|
+
const previousKspecSessionId = process.env.KSPEC_SESSION_ID;
|
|
129
|
+
const state = {
|
|
130
|
+
sessionId,
|
|
131
|
+
specDir,
|
|
132
|
+
taskRef,
|
|
133
|
+
adapterId,
|
|
134
|
+
previousEnvValue: undefined,
|
|
135
|
+
agent: null,
|
|
136
|
+
acpSessionId: null,
|
|
137
|
+
};
|
|
138
|
+
// Serialize all per-session event writes so seq assignment and append order
|
|
139
|
+
// are deterministic even when ACP update callbacks fire concurrently.
|
|
140
|
+
let eventWriteQueue = Promise.resolve();
|
|
141
|
+
let nextEventSeq;
|
|
142
|
+
const queueEventWrite = (write) => {
|
|
143
|
+
const run = eventWriteQueue.then(write, write);
|
|
144
|
+
eventWriteQueue = run.then(() => undefined, () => undefined);
|
|
145
|
+
return run;
|
|
146
|
+
};
|
|
147
|
+
const appendSessionEvent = async (input) => {
|
|
148
|
+
const event = await queueEventWrite(() => appendEvent(specDir, {
|
|
149
|
+
...input,
|
|
150
|
+
session_id: sessionId,
|
|
151
|
+
seq: nextEventSeq,
|
|
152
|
+
}));
|
|
153
|
+
nextEventSeq = event.seq + 1;
|
|
154
|
+
};
|
|
155
|
+
// ─── Create session ───────────────────────────────────────────────────────
|
|
156
|
+
// AC: @agent-invocation-lifecycle ac-1
|
|
157
|
+
const session = await createSession(specDir, {
|
|
158
|
+
id: sessionId,
|
|
159
|
+
agent_type: adapterId,
|
|
160
|
+
agent_id: agent.id,
|
|
161
|
+
trigger,
|
|
162
|
+
task_id: taskRef,
|
|
163
|
+
});
|
|
164
|
+
// ─── Log agent.dispatched event ───────────────────────────────────────────
|
|
165
|
+
await appendSessionEvent({
|
|
166
|
+
type: "agent.dispatched",
|
|
167
|
+
data: {
|
|
168
|
+
task_id: taskRef,
|
|
169
|
+
agent_id: agent.id,
|
|
170
|
+
adapter: adapterId,
|
|
171
|
+
trigger,
|
|
172
|
+
},
|
|
173
|
+
});
|
|
174
|
+
try {
|
|
175
|
+
// ─── Inject KSPEC_SESSION_ID ──────────────────────────────────────────
|
|
176
|
+
// AC: @agent-invocation-lifecycle ac-2
|
|
177
|
+
const injectionResult = await injectEnvForAdapter(adapterId, sessionId);
|
|
178
|
+
state.previousEnvValue = injectionResult?.previousValue;
|
|
179
|
+
process.env.KSPEC_SESSION_ID = sessionId;
|
|
180
|
+
// ─── Spawn agent ──────────────────────────────────────────────────────
|
|
181
|
+
state.agent = await spawnAndInitialize(adapter, {
|
|
182
|
+
cwd,
|
|
183
|
+
env: {
|
|
184
|
+
...env,
|
|
185
|
+
KSPEC_SESSION_ID: sessionId,
|
|
186
|
+
},
|
|
187
|
+
extraArgs,
|
|
188
|
+
clientOptions: {
|
|
189
|
+
methodTimeouts: {
|
|
190
|
+
"session/prompt": promptRequestTimeoutMs,
|
|
191
|
+
},
|
|
192
|
+
},
|
|
193
|
+
});
|
|
194
|
+
// ─── Create ACP session ───────────────────────────────────────────────
|
|
195
|
+
state.acpSessionId = await state.agent.client.newSession({
|
|
196
|
+
cwd,
|
|
197
|
+
mcpServers: [],
|
|
198
|
+
});
|
|
199
|
+
// ─── Log agent.started event ──────────────────────────────────────────
|
|
200
|
+
await appendSessionEvent({
|
|
201
|
+
type: "agent.started",
|
|
202
|
+
data: {
|
|
203
|
+
task_id: taskRef,
|
|
204
|
+
agent_id: agent.id,
|
|
205
|
+
acp_session_id: state.acpSessionId,
|
|
206
|
+
},
|
|
207
|
+
});
|
|
208
|
+
// ─── Register update handler ──────────────────────────────────────────
|
|
209
|
+
// AC: @agent-invocation-lifecycle ac-6
|
|
210
|
+
const updateHandler = async (acpSessionId, update) => {
|
|
211
|
+
if (acpSessionId !== state.acpSessionId)
|
|
212
|
+
return;
|
|
213
|
+
// Log event to JSONL (with blob externalization from store.ts)
|
|
214
|
+
await appendSessionEvent({
|
|
215
|
+
type: "session.update",
|
|
216
|
+
data: update,
|
|
217
|
+
});
|
|
218
|
+
onUpdate?.(update);
|
|
219
|
+
};
|
|
220
|
+
state.agent.client.on("update", updateHandler);
|
|
221
|
+
// ─── Register permission request handler ──────────────────────────────
|
|
222
|
+
// AC: @agent-invocation-lifecycle ac-11
|
|
223
|
+
const requestHandler = (id, method, params) => {
|
|
224
|
+
if (method === "session/request_permission") {
|
|
225
|
+
if (autoApprove) {
|
|
226
|
+
// Auto-approve: prefer allow_always, fall back to allow_once
|
|
227
|
+
const permParams = params;
|
|
228
|
+
const allowOption = permParams.options?.find((o) => o.kind === "allow_always") ??
|
|
229
|
+
permParams.options?.find((o) => o.kind === "allow_once");
|
|
230
|
+
if (allowOption) {
|
|
231
|
+
state.agent.client.respondPermission(id, {
|
|
232
|
+
outcome: { outcome: "selected", optionId: allowOption.optionId },
|
|
233
|
+
});
|
|
234
|
+
}
|
|
235
|
+
else {
|
|
236
|
+
state.agent.client.respondPermission(id, {
|
|
237
|
+
outcome: { outcome: "cancelled" },
|
|
238
|
+
});
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
else {
|
|
242
|
+
// Non-auto-approve: deny the request
|
|
243
|
+
state.agent.client.respondPermission(id, {
|
|
244
|
+
outcome: { outcome: "cancelled" },
|
|
245
|
+
});
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
// Other request types (ReadTextFile, WriteTextFile, etc.) are not handled here
|
|
249
|
+
};
|
|
250
|
+
state.agent.client.on("request", requestHandler);
|
|
251
|
+
// ─── Send prompt with timeout ─────────────────────────────────────────
|
|
252
|
+
// AC: @agent-invocation-lifecycle ac-3
|
|
253
|
+
let timeoutHandle;
|
|
254
|
+
const timeoutPromise = new Promise((_, reject) => {
|
|
255
|
+
timeoutHandle = setTimeout(() => {
|
|
256
|
+
reject(new InvocationTimeoutError(timeoutMinutes));
|
|
257
|
+
}, timeoutMs);
|
|
258
|
+
});
|
|
259
|
+
// AC: @agent-dispatch-engine ac-11 - Abort signal for graceful cancellation
|
|
260
|
+
const abortPromise = abortSignal
|
|
261
|
+
? new Promise((_, reject) => {
|
|
262
|
+
if (abortSignal.aborted) {
|
|
263
|
+
reject(new InvocationAbortedError());
|
|
264
|
+
}
|
|
265
|
+
else {
|
|
266
|
+
abortSignal.addEventListener("abort", () => reject(new InvocationAbortedError()), { once: true });
|
|
267
|
+
}
|
|
268
|
+
})
|
|
269
|
+
: null;
|
|
270
|
+
const promptPromise = state.agent.client.prompt({
|
|
271
|
+
sessionId: state.acpSessionId,
|
|
272
|
+
prompt: [{ type: "text", text: fullPrompt }],
|
|
273
|
+
});
|
|
274
|
+
let promptResult;
|
|
275
|
+
try {
|
|
276
|
+
const racers = [promptPromise, timeoutPromise];
|
|
277
|
+
if (abortPromise)
|
|
278
|
+
racers.push(abortPromise);
|
|
279
|
+
promptResult = await Promise.race(racers);
|
|
280
|
+
}
|
|
281
|
+
finally {
|
|
282
|
+
// Clear the timeout handle to prevent timer leaks whether prompt
|
|
283
|
+
// resolves normally or the timeout fires.
|
|
284
|
+
clearTimeout(timeoutHandle);
|
|
285
|
+
}
|
|
286
|
+
// ─── Log agent.completed event ────────────────────────────────────────
|
|
287
|
+
// AC: @agent-invocation-lifecycle ac-4
|
|
288
|
+
const durationMs = Date.now() - startTime;
|
|
289
|
+
await appendSessionEvent({
|
|
290
|
+
type: "agent.completed",
|
|
291
|
+
data: {
|
|
292
|
+
task_id: taskRef,
|
|
293
|
+
outcome: "success",
|
|
294
|
+
stop_reason: promptResult.stopReason,
|
|
295
|
+
duration_ms: durationMs,
|
|
296
|
+
},
|
|
297
|
+
});
|
|
298
|
+
// ─── Close session as completed ───────────────────────────────────────
|
|
299
|
+
const finalSession = await closeSession(specDir, sessionId, "completed", "Invocation completed normally");
|
|
300
|
+
// Add success note to reset consecutive failure streak (only when a task is bound)
|
|
301
|
+
// AC: @agent-invocation-lifecycle ac-9
|
|
302
|
+
if (taskRef) {
|
|
303
|
+
addTaskNote(taskRef, `[AGENT-SUCCESS] Invocation completed successfully`, cwd, kspecCliPath);
|
|
304
|
+
}
|
|
305
|
+
return {
|
|
306
|
+
session: finalSession ?? session,
|
|
307
|
+
outcome: "success",
|
|
308
|
+
stopReason: promptResult.stopReason,
|
|
309
|
+
durationMs,
|
|
310
|
+
};
|
|
311
|
+
}
|
|
312
|
+
catch (err) {
|
|
313
|
+
const durationMs = Date.now() - startTime;
|
|
314
|
+
if (err instanceof InvocationTimeoutError) {
|
|
315
|
+
// ─── Handle timeout ──────────────────────────────────────────────
|
|
316
|
+
// AC: @agent-invocation-lifecycle ac-3
|
|
317
|
+
try {
|
|
318
|
+
if (state.acpSessionId && state.agent) {
|
|
319
|
+
await state.agent.client.cancel(state.acpSessionId);
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
catch {
|
|
323
|
+
// Best-effort cancel
|
|
324
|
+
}
|
|
325
|
+
await appendSessionEvent({
|
|
326
|
+
type: "agent.timeout",
|
|
327
|
+
data: {
|
|
328
|
+
task_id: taskRef,
|
|
329
|
+
timeout_minutes: timeoutMinutes,
|
|
330
|
+
duration_ms: durationMs,
|
|
331
|
+
},
|
|
332
|
+
});
|
|
333
|
+
const finalSession = await closeSession(specDir, sessionId, "timed_out", `Timeout after ${timeoutMinutes} minutes`);
|
|
334
|
+
// Add timeout note to task (only when a task is bound)
|
|
335
|
+
if (taskRef) {
|
|
336
|
+
addTaskNote(taskRef, `[AGENT-TIMEOUT] Invocation timed out after ${timeoutMinutes} minutes`, cwd, kspecCliPath);
|
|
337
|
+
}
|
|
338
|
+
return {
|
|
339
|
+
session: finalSession ?? session,
|
|
340
|
+
outcome: "timed_out",
|
|
341
|
+
error: err.message,
|
|
342
|
+
durationMs,
|
|
343
|
+
};
|
|
344
|
+
}
|
|
345
|
+
if (err instanceof InvocationAbortedError) {
|
|
346
|
+
// ─── Handle graceful abort (shutdown signal) ──────────────────────
|
|
347
|
+
// AC: @agent-dispatch-engine ac-11
|
|
348
|
+
try {
|
|
349
|
+
if (state.acpSessionId && state.agent) {
|
|
350
|
+
await state.agent.client.cancel(state.acpSessionId);
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
catch {
|
|
354
|
+
// Best-effort cancel
|
|
355
|
+
}
|
|
356
|
+
const finalSession = await closeSession(specDir, sessionId, "failed", "Invocation aborted by shutdown");
|
|
357
|
+
return {
|
|
358
|
+
session: finalSession ?? session,
|
|
359
|
+
outcome: "failed",
|
|
360
|
+
error: err.message,
|
|
361
|
+
durationMs,
|
|
362
|
+
};
|
|
363
|
+
}
|
|
364
|
+
// ─── Handle failure ──────────────────────────────────────────────────
|
|
365
|
+
// AC: @agent-invocation-lifecycle ac-5
|
|
366
|
+
const errorMessage = err instanceof Error ? err.message : String(err);
|
|
367
|
+
await appendSessionEvent({
|
|
368
|
+
type: "agent.failed",
|
|
369
|
+
data: {
|
|
370
|
+
task_id: taskRef,
|
|
371
|
+
error: errorMessage,
|
|
372
|
+
duration_ms: durationMs,
|
|
373
|
+
},
|
|
374
|
+
});
|
|
375
|
+
const finalSession = await closeSession(specDir, sessionId, "failed", `Invocation failed: ${errorMessage}`);
|
|
376
|
+
// Add failure note to task and check retry threshold (only when a task is bound)
|
|
377
|
+
if (taskRef) {
|
|
378
|
+
addTaskNote(taskRef, `[AGENT-FAIL] Invocation failed: ${errorMessage}`, cwd, kspecCliPath);
|
|
379
|
+
// ─── Check retry threshold ────────────────────────────────────────────
|
|
380
|
+
// AC: @agent-invocation-lifecycle ac-9
|
|
381
|
+
const retryLimit = agent.budget?.max_tasks ?? 3;
|
|
382
|
+
const consecutiveFailures = getConsecutiveFailureCount(taskRef, cwd, kspecCliPath);
|
|
383
|
+
if (consecutiveFailures >= retryLimit) {
|
|
384
|
+
blockTask(taskRef, `Agent ${agent.id} failed ${consecutiveFailures} consecutive times: ${errorMessage}`, cwd, kspecCliPath);
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
return {
|
|
388
|
+
session: finalSession ?? session,
|
|
389
|
+
outcome: "failed",
|
|
390
|
+
error: errorMessage,
|
|
391
|
+
durationMs,
|
|
392
|
+
};
|
|
393
|
+
}
|
|
394
|
+
finally {
|
|
395
|
+
// ─── Cleanup ──────────────────────────────────────────────────────────
|
|
396
|
+
// AC: @agent-invocation-lifecycle ac-8
|
|
397
|
+
// End ACP session
|
|
398
|
+
if (state.acpSessionId && state.agent) {
|
|
399
|
+
try {
|
|
400
|
+
state.agent.client.endSession(state.acpSessionId);
|
|
401
|
+
}
|
|
402
|
+
catch {
|
|
403
|
+
// Best-effort
|
|
404
|
+
}
|
|
405
|
+
}
|
|
406
|
+
// Terminate agent process
|
|
407
|
+
state.agent = disposeAgent(state.agent);
|
|
408
|
+
// Restore env injection
|
|
409
|
+
await removeEnvForAdapter(adapterId, state.previousEnvValue);
|
|
410
|
+
// Restore process.env.KSPEC_SESSION_ID to its pre-invocation value.
|
|
411
|
+
// AC: @agent-invocation-lifecycle ac-8
|
|
412
|
+
if (previousKspecSessionId === undefined) {
|
|
413
|
+
delete process.env.KSPEC_SESSION_ID;
|
|
414
|
+
}
|
|
415
|
+
else {
|
|
416
|
+
process.env.KSPEC_SESSION_ID = previousKspecSessionId;
|
|
417
|
+
}
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
// ─── Error Types ──────────────────────────────────────────────────────────────
|
|
421
|
+
/**
|
|
422
|
+
* Thrown when an invocation exceeds its configured timeout.
|
|
423
|
+
*/
|
|
424
|
+
export class InvocationTimeoutError extends Error {
|
|
425
|
+
timeoutMinutes;
|
|
426
|
+
constructor(timeoutMinutes) {
|
|
427
|
+
super(`Agent invocation timed out after ${timeoutMinutes} minutes`);
|
|
428
|
+
this.timeoutMinutes = timeoutMinutes;
|
|
429
|
+
this.name = "InvocationTimeoutError";
|
|
430
|
+
}
|
|
431
|
+
}
|
|
432
|
+
/**
|
|
433
|
+
* Thrown when an invocation is aborted via AbortSignal (graceful shutdown).
|
|
434
|
+
* AC: @agent-dispatch-engine ac-11
|
|
435
|
+
*/
|
|
436
|
+
export class InvocationAbortedError extends Error {
|
|
437
|
+
constructor() {
|
|
438
|
+
super("Agent invocation aborted by shutdown signal");
|
|
439
|
+
this.name = "InvocationAbortedError";
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
//# sourceMappingURL=invocation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invocation.js","sourceRoot":"","sources":["../../src/agent-runtime/invocation.ts"],"names":[],"mappings":"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"}
|