@excitedjs/agent-runtime-claude-code 0.5.0-beta.168 → 0.5.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.
Files changed (94) hide show
  1. package/README.md +43 -1
  2. package/dist/args.d.ts +2 -0
  3. package/dist/args.d.ts.map +1 -1
  4. package/dist/args.js +5 -0
  5. package/dist/args.js.map +1 -1
  6. package/dist/index.d.ts +2 -1
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js.map +1 -1
  9. package/dist/provider.d.ts +5 -0
  10. package/dist/provider.d.ts.map +1 -1
  11. package/dist/provider.js +10 -4
  12. package/dist/provider.js.map +1 -1
  13. package/dist/rpc.d.ts +79 -6
  14. package/dist/rpc.d.ts.map +1 -1
  15. package/dist/rpc.js +329 -57
  16. package/dist/rpc.js.map +1 -1
  17. package/dist/runtime-deps.d.ts +30 -0
  18. package/dist/runtime-deps.d.ts.map +1 -0
  19. package/dist/runtime-deps.js +2 -0
  20. package/dist/runtime-deps.js.map +1 -0
  21. package/dist/runtime-session.d.ts +13 -0
  22. package/dist/runtime-session.d.ts.map +1 -0
  23. package/dist/runtime-session.js +41 -0
  24. package/dist/runtime-session.js.map +1 -0
  25. package/dist/runtime-submissions.d.ts +34 -0
  26. package/dist/runtime-submissions.d.ts.map +1 -0
  27. package/dist/runtime-submissions.js +200 -0
  28. package/dist/runtime-submissions.js.map +1 -0
  29. package/dist/runtime.d.ts +33 -131
  30. package/dist/runtime.d.ts.map +1 -1
  31. package/dist/runtime.js +286 -268
  32. package/dist/runtime.js.map +1 -1
  33. package/dist/skill-adapter.d.ts +11 -1
  34. package/dist/skill-adapter.d.ts.map +1 -1
  35. package/dist/skill-adapter.js +60 -7
  36. package/dist/skill-adapter.js.map +1 -1
  37. package/dist/skill-materializer.d.ts +6 -0
  38. package/dist/skill-materializer.d.ts.map +1 -0
  39. package/dist/skill-materializer.js +45 -0
  40. package/dist/skill-materializer.js.map +1 -0
  41. package/dist/source-reservation.d.ts +6 -0
  42. package/dist/source-reservation.d.ts.map +1 -0
  43. package/dist/source-reservation.js +48 -0
  44. package/dist/source-reservation.js.map +1 -0
  45. package/dist/stream.d.ts +3 -1
  46. package/dist/stream.d.ts.map +1 -1
  47. package/dist/stream.js +48 -1
  48. package/dist/stream.js.map +1 -1
  49. package/dist/supervisor.d.ts.map +1 -1
  50. package/dist/supervisor.js +68 -14
  51. package/dist/supervisor.js.map +1 -1
  52. package/dist/transcript/budget.d.ts +8 -0
  53. package/dist/transcript/budget.d.ts.map +1 -0
  54. package/dist/transcript/budget.js +9 -0
  55. package/dist/transcript/budget.js.map +1 -0
  56. package/dist/transcript/completion.d.ts +8 -0
  57. package/dist/transcript/completion.d.ts.map +1 -0
  58. package/dist/transcript/completion.js +57 -0
  59. package/dist/transcript/completion.js.map +1 -0
  60. package/dist/transcript/cursor.d.ts +25 -0
  61. package/dist/transcript/cursor.d.ts.map +1 -0
  62. package/dist/transcript/cursor.js +62 -0
  63. package/dist/transcript/cursor.js.map +1 -0
  64. package/dist/transcript/error.d.ts +9 -0
  65. package/dist/transcript/error.d.ts.map +1 -0
  66. package/dist/transcript/error.js +9 -0
  67. package/dist/transcript/error.js.map +1 -0
  68. package/dist/transcript/native-hash.d.ts +2 -0
  69. package/dist/transcript/native-hash.d.ts.map +1 -0
  70. package/dist/transcript/native-hash.js +79 -0
  71. package/dist/transcript/native-hash.js.map +1 -0
  72. package/dist/transcript/opened-file.d.ts +13 -0
  73. package/dist/transcript/opened-file.d.ts.map +1 -0
  74. package/dist/transcript/opened-file.js +110 -0
  75. package/dist/transcript/opened-file.js.map +1 -0
  76. package/dist/transcript/parallel-tools.d.ts +6 -0
  77. package/dist/transcript/parallel-tools.d.ts.map +1 -0
  78. package/dist/transcript/parallel-tools.js +123 -0
  79. package/dist/transcript/parallel-tools.js.map +1 -0
  80. package/dist/transcript/path.d.ts +25 -0
  81. package/dist/transcript/path.d.ts.map +1 -0
  82. package/dist/transcript/path.js +253 -0
  83. package/dist/transcript/path.js.map +1 -0
  84. package/dist/transcript/reader.d.ts +7 -0
  85. package/dist/transcript/reader.d.ts.map +1 -0
  86. package/dist/transcript/reader.js +476 -0
  87. package/dist/transcript/reader.js.map +1 -0
  88. package/dist/transcript/rewrites.d.ts +5 -0
  89. package/dist/transcript/rewrites.d.ts.map +1 -0
  90. package/dist/transcript/rewrites.js +65 -0
  91. package/dist/transcript/rewrites.js.map +1 -0
  92. package/dist/types.d.ts +33 -3
  93. package/dist/types.d.ts.map +1 -1
  94. package/package.json +4 -3
@@ -0,0 +1,34 @@
1
+ import type { ClaudeCodeSession } from './supervisor.js';
2
+ import type { ClaudeProtocolEvent, TurnSubmitOptions } from './types.js';
3
+ import type { JsonValue, RuntimeActivitySink, RuntimeSubmission, RuntimeSubmissionSettlement } from '@excitedjs/dreamux-types';
4
+ export interface SubmissionDeferred {
5
+ submission: RuntimeSubmission;
6
+ settle: (settlement: RuntimeSubmissionSettlement) => boolean;
7
+ }
8
+ export interface ActiveTurn {
9
+ initialCommandUuid: string;
10
+ submissions: Map<string, SubmissionDeferred>;
11
+ started: string[];
12
+ completedCommands: Set<string>;
13
+ activitySequence: number;
14
+ tools: Map<string, {
15
+ name: string;
16
+ arguments: JsonValue | null;
17
+ }>;
18
+ session: ClaudeCodeSession | null;
19
+ sessionReady: Promise<ClaudeCodeSession>;
20
+ resolveSession: (session: ClaudeCodeSession) => void;
21
+ rejectSession: (error: Error) => void;
22
+ steerQueue: Promise<void>;
23
+ generation: number;
24
+ submitOptions?: TurnSubmitOptions;
25
+ }
26
+ export interface ProtocolEventContext {
27
+ threadId: string | null;
28
+ outputSchemaEnabled: boolean;
29
+ activitySink: RuntimeActivitySink;
30
+ log: (level: 'info' | 'warn' | 'error', message: string, error?: unknown) => void;
31
+ }
32
+ export declare function createRuntimeSubmission(): SubmissionDeferred;
33
+ export declare function handleProtocolEvent(active: ActiveTurn, event: ClaudeProtocolEvent, context: ProtocolEventContext): void;
34
+ //# sourceMappingURL=runtime-submissions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-submissions.d.ts","sourceRoot":"","sources":["../src/runtime-submissions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,mBAAmB,EAAe,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACtF,OAAO,KAAK,EACV,SAAS,EAET,mBAAmB,EAEnB,iBAAiB,EACjB,2BAA2B,EAC5B,MAAM,0BAA0B,CAAC;AAElC,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,iBAAiB,CAAC;IAC9B,MAAM,EAAE,CAAC,UAAU,EAAE,2BAA2B,KAAK,OAAO,CAAC;CAC9D;AAED,MAAM,WAAW,UAAU;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAC7C,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,iBAAiB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC/B,gBAAgB,EAAE,MAAM,CAAC;IACzB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;IAClE,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAClC,YAAY,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACzC,cAAc,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACrD,aAAa,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACtC,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,iBAAiB,CAAC;CACnC;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,YAAY,EAAE,mBAAmB,CAAC;IAClC,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CACnF;AAED,wBAAgB,uBAAuB,IAAI,kBAAkB,CAiB5D;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,mBAAmB,EAC1B,OAAO,EAAE,oBAAoB,GAC5B,IAAI,CAkBN"}
@@ -0,0 +1,200 @@
1
+ import { resultTextFromTurnOutcome } from './runtime-session.js';
2
+ export function createRuntimeSubmission() {
3
+ let resolve;
4
+ let settled = false;
5
+ const submission = Object.freeze({
6
+ settled: new Promise((value) => {
7
+ resolve = value;
8
+ }),
9
+ });
10
+ return {
11
+ submission,
12
+ settle(settlement) {
13
+ if (settled)
14
+ return false;
15
+ settled = true;
16
+ resolve(settlement);
17
+ return true;
18
+ },
19
+ };
20
+ }
21
+ export function handleProtocolEvent(active, event, context) {
22
+ if (event.kind === 'command_lifecycle') {
23
+ if (event.state === 'started' &&
24
+ active.submissions.has(event.commandUuid) &&
25
+ !active.completedCommands.has(event.commandUuid) &&
26
+ !active.started.includes(event.commandUuid)) {
27
+ active.started.push(event.commandUuid);
28
+ }
29
+ return;
30
+ }
31
+ if (event.kind === 'result') {
32
+ completeStartedGroup(active, event.outcome, context);
33
+ return;
34
+ }
35
+ const raw = recordValue(event.line.raw);
36
+ if (raw !== null)
37
+ emitStreamActivity(active, raw, context);
38
+ }
39
+ function completeStartedGroup(active, outcome, context) {
40
+ const commandUuids = active.started.splice(0);
41
+ if (commandUuids.length === 0 &&
42
+ (active.submissions.size > 1 || active.completedCommands.size > 0)) {
43
+ failUnattributedResult(active, context);
44
+ return;
45
+ }
46
+ for (const uuid of commandUuids)
47
+ active.completedCommands.add(uuid);
48
+ let representative = commandUuids
49
+ .map(uuid => active.submissions.get(uuid))
50
+ .find((deferred) => deferred !== undefined);
51
+ if (representative === undefined && active.submissions.size === 1) {
52
+ const only = active.submissions.entries().next().value;
53
+ if (only !== undefined) {
54
+ commandUuids.push(only[0]);
55
+ representative = only[1];
56
+ }
57
+ }
58
+ if (representative === undefined) {
59
+ failUnattributedResult(active, context);
60
+ return;
61
+ }
62
+ let completion;
63
+ if (outcome.isError) {
64
+ completion = Object.freeze({
65
+ status: 'failed',
66
+ displaySubmission: representative.submission,
67
+ error: new Error(outcome.errors.join('; ') || outcome.subtype || 'claude turn failed'),
68
+ });
69
+ }
70
+ else {
71
+ try {
72
+ completion = Object.freeze({
73
+ status: 'completed',
74
+ displaySubmission: representative.submission,
75
+ resultText: resultTextFromTurnOutcome(outcome, context.threadId, context.outputSchemaEnabled),
76
+ truncated: false,
77
+ });
78
+ }
79
+ catch (error) {
80
+ completion = Object.freeze({
81
+ status: 'failed',
82
+ displaySubmission: representative.submission,
83
+ error: asError(error),
84
+ });
85
+ }
86
+ }
87
+ for (const uuid of commandUuids) {
88
+ active.submissions.get(uuid)?.settle({ kind: 'completion', completion });
89
+ }
90
+ }
91
+ function failUnattributedResult(active, context) {
92
+ const error = new Error(active.completedCommands.size > 0
93
+ ? 'claude emitted a conflicting result without a new started command'
94
+ : 'claude result cannot be attributed without command started lifecycle');
95
+ context.log('error', error.message, error);
96
+ for (const deferred of active.submissions.values()) {
97
+ deferred.settle({ kind: 'failed', error });
98
+ }
99
+ }
100
+ function emitStreamActivity(active, raw, context) {
101
+ const representativeUuid = active.started[0] ?? (active.submissions.size === 1
102
+ ? active.submissions.keys().next().value
103
+ : undefined);
104
+ if (representativeUuid === undefined)
105
+ return;
106
+ const representative = active.submissions.get(representativeUuid);
107
+ if (representative === undefined)
108
+ return;
109
+ const message = recordValue(raw['message']) ?? raw;
110
+ const messageId = stringValue(message['id']) ?? `stream-${active.activitySequence++}`;
111
+ const content = Array.isArray(message['content']) ? message['content'] : [];
112
+ for (const [blockIndex, candidate] of content.entries()) {
113
+ const block = recordValue(candidate);
114
+ if (block === null)
115
+ continue;
116
+ const activity = activityForBlock(active, messageId, blockIndex, block);
117
+ if (activity === null)
118
+ continue;
119
+ try {
120
+ context.activitySink(Object.freeze({
121
+ submission: representative.submission,
122
+ activity: Object.freeze(activity),
123
+ occurredAt: Date.now(),
124
+ }));
125
+ }
126
+ catch (error) {
127
+ context.log('warn', 'claude activity projection failed', error);
128
+ }
129
+ }
130
+ }
131
+ function activityForBlock(active, messageId, blockIndex, block) {
132
+ if (block['type'] === 'text' && typeof block['text'] === 'string' && block['text'] !== '') {
133
+ return {
134
+ kind: 'assistant.message',
135
+ id: `${messageId}:text:${blockIndex}`,
136
+ text: block['text'],
137
+ truncated: false,
138
+ };
139
+ }
140
+ if (block['type'] === 'tool_use') {
141
+ const callId = stringValue(block['id']);
142
+ const name = stringValue(block['name']);
143
+ if (callId === null || callId === '' || name === null)
144
+ return null;
145
+ const args = toJsonValue(block['input']);
146
+ active.tools.set(callId, { name, arguments: args });
147
+ return {
148
+ kind: 'tool.call',
149
+ id: `${messageId}:${callId}:started`,
150
+ callId,
151
+ toolName: name,
152
+ status: 'started',
153
+ arguments: args,
154
+ result: null,
155
+ error: null,
156
+ };
157
+ }
158
+ if (block['type'] !== 'tool_result')
159
+ return null;
160
+ const callId = stringValue(block['tool_use_id']);
161
+ if (callId === null || callId === '')
162
+ return null;
163
+ const known = active.tools.get(callId);
164
+ const failed = block['is_error'] === true;
165
+ return {
166
+ kind: 'tool.call',
167
+ id: `${messageId}:${callId}:result`,
168
+ callId,
169
+ toolName: known?.name ?? 'tool',
170
+ status: failed ? 'failed' : 'completed',
171
+ arguments: known?.arguments ?? null,
172
+ result: toJsonValue(block['content']),
173
+ error: failed ? renderJsonValue(block['content']) : null,
174
+ };
175
+ }
176
+ function recordValue(value) {
177
+ return value !== null && typeof value === 'object' && !Array.isArray(value)
178
+ ? value
179
+ : null;
180
+ }
181
+ function stringValue(value) {
182
+ return typeof value === 'string' ? value : null;
183
+ }
184
+ function toJsonValue(value) {
185
+ if (value === undefined)
186
+ return null;
187
+ try {
188
+ return JSON.parse(JSON.stringify(value));
189
+ }
190
+ catch {
191
+ return String(value);
192
+ }
193
+ }
194
+ function renderJsonValue(value) {
195
+ return typeof value === 'string' ? value : JSON.stringify(value);
196
+ }
197
+ function asError(error) {
198
+ return error instanceof Error ? error : new Error(String(error));
199
+ }
200
+ //# sourceMappingURL=runtime-submissions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-submissions.js","sourceRoot":"","sources":["../src/runtime-submissions.ts"],"names":[],"mappings":"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"}
package/dist/runtime.d.ts CHANGED
@@ -1,119 +1,6 @@
1
- /**
2
- * `builtin:claude-code` AgentRuntime (issue #110 PR6, resident stream-json
3
- * transport since issue #120; extracted into `@excitedjs/agent-runtime-claude-code`
4
- * in issue #209).
5
- *
6
- * A real second agent runtime that proves the AgentRuntimeProvider abstraction
7
- * is not "Codex renamed". Like Codex it runs a **resident child process**
8
- * supervised for the runtime's lifetime — but it differs in every
9
- * runtime-specific dimension:
10
- *
11
- * - **Stream-json over stdio, not an app-server WebSocket.** The resident child
12
- * is `claude --print --input-format stream-json --output-format stream-json`
13
- * (see `./args.ts`); turns are NDJSON `user` lines on stdin and
14
- * `init`/`assistant`/`result` envelopes on stdout (see `./stream.ts`). There
15
- * is no `initialize` handshake — the child emits `init` lazily with the first
16
- * turn — so readiness is "child spawned", not "handshake completed".
17
- * - **MCP injection is an inline JSON config document** (`--mcp-config <json>`),
18
- * not Codex's `-c mcp_servers.*` TOML CLI flags.
19
- * - **Runtime-owned config** is `DispatcherClaudeCodeConfig` (bin / model /
20
- * permission_mode / remote_control / extra_args / extra_env), distinct from
21
- * the Codex config.
22
- * - **Completion delivery** is a plain user turn (no fake task-notification),
23
- * not the Codex inbox-then-trigger path.
24
- *
25
- * Process spawning goes through an injectable {@link ClaudeCodeSessionFactory}
26
- * seam (mirroring Codex's process-factory seam), so the lifecycle contract is
27
- * fully unit-testable with a fake session. A live `claude` binary is exercised
28
- * only by the opt-in live test.
29
- *
30
- * Failure contract (unchanged by #120): a turn failure (spawn error, child
31
- * exit, error `result`) is never swallowed. For inbound/restart turns it drives
32
- * the runtime to `degraded` with a persisted `last_error` (observable via
33
- * status/doctor). For `completionInput` it surfaces as a `failed`
34
- * result the caller can act on (PR8 delivery retry). `channelInput` still
35
- * returns after accept (submit != completion) so the channel can ack promptly.
36
- *
37
- * Restart: an unexpected child exit marks the runtime `degraded`; the next turn
38
- * re-spawns the resident child with `--resume <session_id>`, restoring the
39
- * conversation. There is no background backoff timer — re-spawn is lazy and
40
- * bound to the (serialized) turn queue, so it stays deterministic.
41
- *
42
- * Per-turn idle deadline: a turn whose still-alive child goes silent — never
43
- * emitting another stream line (a stall, or a wait on input the runtime cannot
44
- * satisfy) — would otherwise pend forever and wedge the serial queue, and behind
45
- * it TeamMate completion delivery, which awaits this runtime. `turn_timeout_ms`
46
- * is a *max-idle* window (issue #156): it is reset on every inbound stream line,
47
- * so a long but continuously-streaming turn (e.g. a deep audit running many
48
- * tool calls for far longer than the window) is never reaped, while a child that
49
- * emits nothing for the whole window still is — turning an infinite hang into a
50
- * normal degraded + `last_error` (inbound) or `failed` delivery result.
51
- *
52
- * Reference: the resident stream-json protocol model and process-supervision
53
- * shape are adapted from the Claudemux `next` implementation; the AgentRuntime /
54
- * Channel / DispatcherService boundaries (provider seam, runtime-owned MCP
55
- * injection, degraded/last_error status, TeamMate delivery result contract) are
56
- * Dreamux's own, per `.agents/decisions/agent-runtime-provider.md`.
57
- */
58
- import type { DispatcherClaudeCodeConfig } from './config.js';
59
- import { type ClaudeCodeSessionFactory } from './supervisor.js';
60
- import type { AgentRuntimeCapabilities, AgentRuntime, AgentRuntimeIdentity, AgentRuntimeLastResult, AgentRuntimeMcpServer, AgentRuntimePathContext, AgentRuntimeSkillSource, AgentRuntimeStateCallbacks, AgentRuntimeStatus, AgentRuntimeTextInput, AgentRuntimeTurnResult, DreamuxLogger, InboundTurnInput, TurnSettledSignal } from '@excitedjs/dreamux-types';
61
- /**
62
- * Everything the Claude Code runtime needs, assembled by the provider from the
63
- * neutral create context plus host-supplied hooks. The host contracts the
64
- * package must not reconstruct — the per-dispatcher path context, the durable
65
- * state sink, and the base process env (`PATH` seeded with the host package
66
- * bins) — arrive here; nothing references a Dreamux host module.
67
- */
68
- export interface ClaudeCodeRuntimeDeps {
69
- /** Provider-parsed Claude Code runtime config. */
70
- config: DispatcherClaudeCodeConfig;
71
- /** Working directory the resident `claude` child runs in. */
72
- cwd: string;
73
- /** Neutral state sink for status/thread transitions. */
74
- state: AgentRuntimeStateCallbacks;
75
- /** Neutral path context: the runtime derives its cache/log subpaths here. */
76
- paths: AgentRuntimePathContext;
77
- /** MCP server descriptors translated into the `--mcp-config` JSON document. */
78
- mcpServers: readonly AgentRuntimeMcpServer[];
79
- /** Resident-session factory (tests inject a fake). */
80
- sessionFactory: ClaudeCodeSessionFactory;
81
- /** Host-level bin resolver (default: identity on the config bin). */
82
- resolveBinPath: (bin: string) => string;
83
- /**
84
- * The host's neutral env-injection entries from the create context, merged
85
- * into the resident child env before this provider's own `extra_env`.
86
- * Empty/omitted means inject nothing (the common case).
87
- */
88
- injectEnv?: Record<string, string>;
89
- /**
90
- * Launcher-supplied ordered role/system-prompt content, applied as an APPEND
91
- * via `--append-system-prompt`. Omitted for launches that supply none.
92
- */
93
- systemPromptAppend?: readonly string[];
94
- /**
95
- * Role-gated skill sources core selected (issue #209 slice 6). The
96
- * add-dir-compatible ones become `--add-dir` flags on every (re)spawn.
97
- */
98
- skillSources?: readonly AgentRuntimeSkillSource[];
99
- /**
100
- * Neutral feature names the host asked this runtime to disable. Args mapping
101
- * is applied on every resident (re)spawn.
102
- */
103
- disableFeatures?: readonly string[];
104
- /**
105
- * Optional JSON Schema constraining every turn's final assistant message for
106
- * the resident session's lifetime. Passed straight through to
107
- * `claudeCodeResidentArgs` as the native `--json-schema` flag on every
108
- * (re)spawn. In-memory only — never persisted to identity, so a resumed
109
- * session that did not start with a schema does not silently gain one.
110
- */
111
- outputSchema?: Record<string, unknown>;
112
- /** Fired each time a delivered turn reaches a terminal state. */
113
- onTurnSettled?: (settled: TurnSettledSignal) => void;
114
- /** Structured logger; falls back to a minimal `console.error` sink. */
115
- logger?: DreamuxLogger;
116
- }
1
+ /** Resident Claude Code AgentRuntime using stream-json stdio. */
2
+ import type { ClaudeCodeRuntimeDeps } from './runtime-deps.js';
3
+ import type { AgentRuntimeCapabilities, AgentRuntime, AgentRuntimeIdentity, AgentRuntimeStatus, AgentRuntimeTextInput, InboundTurnInput, RuntimeAdmission } from '@excitedjs/dreamux-types';
117
4
  /**
118
5
  * The Claude Code agent runtime for one dispatcher. A single resident
119
6
  * stream-json child serves every turn. Turns run serially (one at a time) and
@@ -133,15 +20,24 @@ export declare class ClaudeCodeRuntime implements AgentRuntime {
133
20
  private readonly logger;
134
21
  private status;
135
22
  private threadId;
23
+ private transcriptLocator;
24
+ private resumeOnNextSpawn;
136
25
  private resumed;
137
26
  private stopped;
138
27
  private readonly seen;
28
+ private readonly seenOrder;
139
29
  private readonly seenTextInputIds;
30
+ private readonly seenTextInputIdOrder;
31
+ private readonly sourceIdDedupeWindow;
32
+ private readonly pendingChannelSources;
33
+ private readonly pendingTextSources;
34
+ private readonly pendingAdmissions;
140
35
  private queue;
141
- private readonly runtimeInstanceId;
142
- private turnCounter;
143
36
  private session;
144
- private lastResult;
37
+ private sessionStarting;
38
+ private startTask;
39
+ private stopTask;
40
+ private generation;
145
41
  private activeTurn;
146
42
  private queuedTurnCount;
147
43
  private idlePromise;
@@ -151,36 +47,42 @@ export declare class ClaudeCodeRuntime implements AgentRuntime {
151
47
  getCapabilities(): AgentRuntimeCapabilities;
152
48
  getCheckpoint(): {
153
49
  id: string;
50
+ transcript_locator?: string | null;
154
51
  } | null;
155
52
  wasCheckpointResumed(): boolean;
156
- getLast(): Promise<AgentRuntimeLastResult | null>;
157
53
  getContext(): Promise<null>;
158
54
  resume(): Promise<void>;
159
55
  start(): Promise<void>;
56
+ private startRuntime;
160
57
  stop(): Promise<void>;
161
- completionInput(input: AgentRuntimeTextInput): Promise<AgentRuntimeTurnResult>;
162
- channelInput(input: InboundTurnInput): Promise<AgentRuntimeTurnResult>;
58
+ private stopRuntime;
59
+ completionInput(input: AgentRuntimeTextInput): Promise<RuntimeAdmission>;
60
+ private completionInputImpl;
61
+ private acceptTextInput;
62
+ channelInput(input: InboundTurnInput): Promise<RuntimeAdmission>;
63
+ private channelInputImpl;
64
+ private acceptChannelInput;
65
+ private acceptInput;
66
+ private trackAdmission;
67
+ private drainAdmissions;
163
68
  waitIdle(): Promise<void>;
164
69
  private runActiveTurnOnQueue;
165
70
  private runActiveTurn;
166
71
  private steerActiveTurn;
167
72
  private markTurnSucceeded;
168
73
  private markTurnFailed;
74
+ private stopUnsettled;
169
75
  private recordQueuedTurnStart;
170
76
  private recordQueuedTurnEnd;
171
77
  private resolveIdleWaitersIfIdle;
172
- /**
173
- * Ensure a live resident session exists, spawning (or re-spawning after an
174
- * unexpected exit) as needed. Re-spawn resumes the persisted session id so the
175
- * conversation survives a crash.
176
- */
78
+ /** Ensure a live resident session exists, resuming after a child exit. */
177
79
  private ensureSession;
178
- private materializeSkillAddDir;
80
+ private createSession;
81
+ private resolveTranscriptPath;
179
82
  /** React to an unexpected resident-child exit: degrade and drop the session. */
180
83
  private onSessionExit;
181
- private applyTurnOutcome;
182
- private nextTurnId;
183
- private buildProcessEnv;
84
+ private onProtocolEvent;
85
+ private assertGeneration;
184
86
  private setStatus;
185
87
  private log;
186
88
  }
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,iEAAiE;AAuBjE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAe/D,OAAO,KAAK,EACV,wBAAwB,EACxB,YAAY,EACZ,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,EAErB,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;AAMlC;;;;;GAKG;AACH,qBAAa,iBAAkB,YAAW,YAAY;IA4ClD,OAAO,CAAC,QAAQ,CAAC,IAAI;IA3CvB,QAAQ,CAAC,WAAW,yBAAoC;IAExD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6B;IACpD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IACvC,OAAO,CAAC,MAAM,CAAkC;IAChD,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,iBAAiB,CAAgB;IACzC,OAAO,CAAC,iBAAiB,CAAU;IACnC,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAqB;IAC1C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgB;IAC1C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAqB;IACtD,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAgB;IACrD,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAS;IAC9C,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAGlC;IACJ,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAG/B;IACJ,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAwC;IAC1E,OAAO,CAAC,KAAK,CAAoC;IACjD,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,eAAe,CAA2C;IAClE,OAAO,CAAC,SAAS,CAA8B;IAC/C,OAAO,CAAC,QAAQ,CAA8B;IAC9C,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,WAAW,CAA8B;IACjD,OAAO,CAAC,WAAW,CAA6B;gBAG9C,QAAQ,EAAE,oBAAoB,EACb,IAAI,EAAE,qBAAqB;IA+B9C,SAAS,IAAI,kBAAkB;IAI/B,eAAe,IAAI,wBAAwB;IAI3C,aAAa,IAAI;QACf,EAAE,EAAE,MAAM,CAAC;QACX,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACpC,GAAG,IAAI;IASR,oBAAoB,IAAI,OAAO;IAIzB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAI7B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAeR,YAAY;IAwBpB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YAgBb,WAAW;IAkBzB,eAAe,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,gBAAgB,CAAC;YAI1D,mBAAmB;YA+BnB,eAAe;IAM7B,YAAY,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;YAIlD,gBAAgB;YAuBhB,kBAAkB;YAIlB,WAAW;IAkDzB,OAAO,CAAC,cAAc;YAUR,eAAe;IAM7B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAYzB,OAAO,CAAC,oBAAoB;YAYd,aAAa;YAwBb,eAAe;YAyBf,iBAAiB;YASjB,cAAc;IAkB5B,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,mBAAmB;IAK3B,OAAO,CAAC,wBAAwB;IAQhC,0EAA0E;YAC5D,aAAa;YAab,aAAa;IAiF3B,OAAO,CAAC,qBAAqB;IAiB7B,gFAAgF;YAClE,aAAa;IAmB3B,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,gBAAgB;YAMV,SAAS;IAoBvB,OAAO,CAAC,GAAG;CAOZ"}