@excitedjs/agent-runtime-claude-code 0.5.0 → 0.6.0-alpha.g1fb172f6f8c3
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/dist/activity/budget.d.ts +8 -0
- package/dist/activity/budget.d.ts.map +1 -0
- package/dist/activity/budget.js +9 -0
- package/dist/activity/budget.js.map +1 -0
- package/dist/{transcript → activity}/cursor.d.ts +2 -2
- package/dist/activity/cursor.d.ts.map +1 -0
- package/dist/{transcript → activity}/cursor.js +11 -11
- package/dist/activity/cursor.js.map +1 -0
- package/dist/activity/error.d.ts +16 -0
- package/dist/activity/error.d.ts.map +1 -0
- package/dist/activity/error.js +22 -0
- package/dist/activity/error.js.map +1 -0
- package/dist/activity/native-hash.d.ts.map +1 -0
- package/dist/activity/native-hash.js.map +1 -0
- package/dist/{transcript → activity}/opened-file.d.ts +3 -3
- package/dist/activity/opened-file.d.ts.map +1 -0
- package/dist/{transcript → activity}/opened-file.js +16 -16
- package/dist/activity/opened-file.js.map +1 -0
- package/dist/activity/parallel-tools.d.ts +6 -0
- package/dist/activity/parallel-tools.d.ts.map +1 -0
- package/dist/activity/parallel-tools.js.map +1 -0
- package/dist/activity/path.d.ts +25 -0
- package/dist/activity/path.d.ts.map +1 -0
- package/dist/{transcript → activity}/path.js +32 -32
- package/dist/activity/path.js.map +1 -0
- package/dist/activity/reader.d.ts +16 -0
- package/dist/activity/reader.d.ts.map +1 -0
- package/dist/{transcript → activity}/reader.js +120 -161
- package/dist/activity/reader.js.map +1 -0
- package/dist/activity/rewrites.d.ts.map +1 -0
- package/dist/activity/rewrites.js.map +1 -0
- package/dist/admission-classify.d.ts +7 -0
- package/dist/admission-classify.d.ts.map +1 -0
- package/dist/admission-classify.js +17 -0
- package/dist/admission-classify.js.map +1 -0
- package/dist/diagnostic.d.ts +2 -2
- package/dist/diagnostic.d.ts.map +1 -1
- package/dist/index.d.ts +1 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/dist/mcp-config.d.ts +1 -0
- package/dist/mcp-config.d.ts.map +1 -1
- package/dist/mcp-config.js +5 -0
- package/dist/mcp-config.js.map +1 -1
- package/dist/provider.d.ts +26 -38
- package/dist/provider.d.ts.map +1 -1
- package/dist/provider.js +32 -61
- package/dist/provider.js.map +1 -1
- package/dist/rpc.d.ts +4 -5
- package/dist/rpc.d.ts.map +1 -1
- package/dist/rpc.js +11 -7
- package/dist/rpc.js.map +1 -1
- package/dist/runtime-deps.d.ts +7 -11
- package/dist/runtime-deps.d.ts.map +1 -1
- package/dist/runtime-session.d.ts +0 -9
- package/dist/runtime-session.d.ts.map +1 -1
- package/dist/runtime-session.js +0 -14
- package/dist/runtime-session.js.map +1 -1
- package/dist/runtime-submissions.d.ts +28 -4
- package/dist/runtime-submissions.d.ts.map +1 -1
- package/dist/runtime-submissions.js +116 -54
- package/dist/runtime-submissions.js.map +1 -1
- package/dist/runtime.d.ts +67 -33
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +204 -168
- package/dist/runtime.js.map +1 -1
- package/dist/stream.d.ts +8 -6
- package/dist/stream.d.ts.map +1 -1
- package/dist/stream.js +10 -8
- package/dist/stream.js.map +1 -1
- package/dist/tool-display.d.ts +22 -0
- package/dist/tool-display.d.ts.map +1 -0
- package/dist/tool-display.js +78 -0
- package/dist/tool-display.js.map +1 -0
- package/dist/types.d.ts +20 -3
- package/dist/types.d.ts.map +1 -1
- package/package.json +3 -3
- package/dist/source-reservation.d.ts +0 -6
- package/dist/source-reservation.d.ts.map +0 -1
- package/dist/source-reservation.js +0 -48
- package/dist/source-reservation.js.map +0 -1
- package/dist/transcript/budget.d.ts +0 -8
- package/dist/transcript/budget.d.ts.map +0 -1
- package/dist/transcript/budget.js +0 -9
- package/dist/transcript/budget.js.map +0 -1
- package/dist/transcript/completion.d.ts +0 -8
- package/dist/transcript/completion.d.ts.map +0 -1
- package/dist/transcript/completion.js +0 -57
- package/dist/transcript/completion.js.map +0 -1
- package/dist/transcript/cursor.d.ts.map +0 -1
- package/dist/transcript/cursor.js.map +0 -1
- package/dist/transcript/error.d.ts +0 -9
- package/dist/transcript/error.d.ts.map +0 -1
- package/dist/transcript/error.js +0 -9
- package/dist/transcript/error.js.map +0 -1
- package/dist/transcript/native-hash.d.ts.map +0 -1
- package/dist/transcript/native-hash.js.map +0 -1
- package/dist/transcript/opened-file.d.ts.map +0 -1
- package/dist/transcript/opened-file.js.map +0 -1
- package/dist/transcript/parallel-tools.d.ts +0 -6
- package/dist/transcript/parallel-tools.d.ts.map +0 -1
- package/dist/transcript/parallel-tools.js.map +0 -1
- package/dist/transcript/path.d.ts +0 -25
- package/dist/transcript/path.d.ts.map +0 -1
- package/dist/transcript/path.js.map +0 -1
- package/dist/transcript/reader.d.ts +0 -7
- package/dist/transcript/reader.d.ts.map +0 -1
- package/dist/transcript/reader.js.map +0 -1
- package/dist/transcript/rewrites.d.ts.map +0 -1
- package/dist/transcript/rewrites.js.map +0 -1
- /package/dist/{transcript → activity}/native-hash.d.ts +0 -0
- /package/dist/{transcript → activity}/native-hash.js +0 -0
- /package/dist/{transcript → activity}/parallel-tools.js +0 -0
- /package/dist/{transcript → activity}/rewrites.d.ts +0 -0
- /package/dist/{transcript → activity}/rewrites.js +0 -0
|
@@ -1,4 +1,28 @@
|
|
|
1
1
|
import { resultTextFromTurnOutcome } from './runtime-session.js';
|
|
2
|
+
import { toolDisplay } from './tool-display.js';
|
|
3
|
+
/**
|
|
4
|
+
* Report a native turn's end on the display line.
|
|
5
|
+
*
|
|
6
|
+
* `status` and `reason` are claude's own terminal fact and nothing else: a
|
|
7
|
+
* `result` completed or failed with its errors, a run that died, a teardown
|
|
8
|
+
* that interrupted. What the push-back line then makes of it (a result text it
|
|
9
|
+
* cannot extract, a command it cannot attribute, a submission already settled)
|
|
10
|
+
* is push-back's own outcome and never colours the card.
|
|
11
|
+
*
|
|
12
|
+
* The runtime keeps no display state: it does not know, and does not ask,
|
|
13
|
+
* whether a native turn is open before reporting an end. Whether the end is
|
|
14
|
+
* *shown* is not this layer's decision. A card belongs to no turn
|
|
15
|
+
* (`feishu-cot-conversation-cards` requirement, rule 1), and a native end
|
|
16
|
+
* "closes an existing open card but never opens a new one; when no card is
|
|
17
|
+
* open, Feishu ignores it" (rule 8). This layer pushes; the Channel decides.
|
|
18
|
+
*/
|
|
19
|
+
export function endNativeTurn(status, reason, sink) {
|
|
20
|
+
emitActivity({ kind: 'turn.ended', occurredAt: Date.now(), status, reason }, sink);
|
|
21
|
+
}
|
|
22
|
+
/** The sink is Core's and never throws (`AgentRuntimeActivitySink`). */
|
|
23
|
+
function emitActivity(activity, sink) {
|
|
24
|
+
sink(Object.freeze(activity));
|
|
25
|
+
}
|
|
2
26
|
export function createRuntimeSubmission() {
|
|
3
27
|
let resolve;
|
|
4
28
|
let settled = false;
|
|
@@ -20,8 +44,13 @@ export function createRuntimeSubmission() {
|
|
|
20
44
|
}
|
|
21
45
|
export function handleProtocolEvent(active, event, context) {
|
|
22
46
|
if (event.kind === 'command_lifecycle') {
|
|
23
|
-
|
|
24
|
-
|
|
47
|
+
// `started` is the one lifecycle state recorded here: it is the
|
|
48
|
+
// attribution input for the group the next `result` completes. The
|
|
49
|
+
// terminal states are drainage bookkeeping that arrives after that
|
|
50
|
+
// `result`.
|
|
51
|
+
if (event.state !== 'started')
|
|
52
|
+
return;
|
|
53
|
+
if (active.submissions.has(event.commandUuid) &&
|
|
25
54
|
!active.completedCommands.has(event.commandUuid) &&
|
|
26
55
|
!active.started.includes(event.commandUuid)) {
|
|
27
56
|
active.started.push(event.commandUuid);
|
|
@@ -29,12 +58,19 @@ export function handleProtocolEvent(active, event, context) {
|
|
|
29
58
|
return;
|
|
30
59
|
}
|
|
31
60
|
if (event.kind === 'result') {
|
|
61
|
+
// `result` is claude's native terminal, and the display line ends on it:
|
|
62
|
+
// the attribution, the completion and the settlements below are
|
|
63
|
+
// push-back's work on the same fact, and none of them may change the end,
|
|
64
|
+
// delay it, or withhold it.
|
|
65
|
+
endNativeTurn(event.outcome.isError ? 'failed' : 'completed', event.outcome.isError ? turnFailureMessage(event.outcome) : null, context.activitySink);
|
|
32
66
|
completeStartedGroup(active, event.outcome, context);
|
|
33
67
|
return;
|
|
34
68
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
69
|
+
emitStreamActivity(active, event.line, context);
|
|
70
|
+
}
|
|
71
|
+
/** claude's own words for why its turn failed. */
|
|
72
|
+
function turnFailureMessage(outcome) {
|
|
73
|
+
return outcome.errors.join('; ') || outcome.subtype || 'claude turn failed';
|
|
38
74
|
}
|
|
39
75
|
function completeStartedGroup(active, outcome, context) {
|
|
40
76
|
const commandUuids = active.started.splice(0);
|
|
@@ -63,15 +99,13 @@ function completeStartedGroup(active, outcome, context) {
|
|
|
63
99
|
if (outcome.isError) {
|
|
64
100
|
completion = Object.freeze({
|
|
65
101
|
status: 'failed',
|
|
66
|
-
|
|
67
|
-
error: new Error(outcome.errors.join('; ') || outcome.subtype || 'claude turn failed'),
|
|
102
|
+
error: new Error(turnFailureMessage(outcome)),
|
|
68
103
|
});
|
|
69
104
|
}
|
|
70
105
|
else {
|
|
71
106
|
try {
|
|
72
107
|
completion = Object.freeze({
|
|
73
108
|
status: 'completed',
|
|
74
|
-
displaySubmission: representative.submission,
|
|
75
109
|
resultText: resultTextFromTurnOutcome(outcome, context.threadId, context.outputSchemaEnabled),
|
|
76
110
|
truncated: false,
|
|
77
111
|
});
|
|
@@ -79,7 +113,6 @@ function completeStartedGroup(active, outcome, context) {
|
|
|
79
113
|
catch (error) {
|
|
80
114
|
completion = Object.freeze({
|
|
81
115
|
status: 'failed',
|
|
82
|
-
displaySubmission: representative.submission,
|
|
83
116
|
error: asError(error),
|
|
84
117
|
});
|
|
85
118
|
}
|
|
@@ -97,64 +130,73 @@ function failUnattributedResult(active, context) {
|
|
|
97
130
|
deferred.settle({ kind: 'failed', error });
|
|
98
131
|
}
|
|
99
132
|
}
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
133
|
+
/**
|
|
134
|
+
* Put what claude said and did on this agent's activity stream.
|
|
135
|
+
*
|
|
136
|
+
* No submission is looked up. A window folds any number of commands into one
|
|
137
|
+
* native turn, so naming one of them as the activity's owner was always a
|
|
138
|
+
* guess — and when the guess failed, which it did for anything claude emitted
|
|
139
|
+
* before a command's `started` lifecycle arrived, the fact was dropped
|
|
140
|
+
* entirely. The agent is the subject, and it is always known.
|
|
141
|
+
*
|
|
142
|
+
* The envelope decides what a block means, not the block's own type. An
|
|
143
|
+
* `assistant` envelope carries the model's words and its tool calls. A `user`
|
|
144
|
+
* envelope carries what those tools returned — and, as plain text blocks, the
|
|
145
|
+
* context the CLI injected into its own conversation: the body of a skill it
|
|
146
|
+
* just loaded, hook output, reminders. None of that text is the agent's, and
|
|
147
|
+
* none of it is the operator's (stdin is never echoed back), so it is not
|
|
148
|
+
* displayed at all. Operator ruling, 2026-09-03: 「所有的 user 消息都隐藏即可」.
|
|
149
|
+
*/
|
|
150
|
+
function emitStreamActivity(active, line, context) {
|
|
151
|
+
const message = recordValue(line.raw['message']) ?? line.raw;
|
|
110
152
|
const messageId = stringValue(message['id']) ?? `stream-${active.activitySequence++}`;
|
|
111
153
|
const content = Array.isArray(message['content']) ? message['content'] : [];
|
|
112
154
|
for (const [blockIndex, candidate] of content.entries()) {
|
|
113
155
|
const block = recordValue(candidate);
|
|
114
156
|
if (block === null)
|
|
115
157
|
continue;
|
|
116
|
-
const activity =
|
|
158
|
+
const activity = line.kind === 'assistant'
|
|
159
|
+
? assistantBlockActivity(active, messageId, blockIndex, block)
|
|
160
|
+
: toolResultActivity(active, messageId, block);
|
|
117
161
|
if (activity === null)
|
|
118
162
|
continue;
|
|
119
|
-
|
|
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
|
-
}
|
|
163
|
+
emitActivity(activity, context.activitySink);
|
|
129
164
|
}
|
|
130
165
|
}
|
|
131
|
-
|
|
166
|
+
/** What the model said, or a tool it called. */
|
|
167
|
+
function assistantBlockActivity(active, messageId, blockIndex, block) {
|
|
132
168
|
if (block['type'] === 'text' && typeof block['text'] === 'string' && block['text'] !== '') {
|
|
133
169
|
return {
|
|
134
170
|
kind: 'assistant.message',
|
|
171
|
+
occurredAt: Date.now(),
|
|
135
172
|
id: `${messageId}:text:${blockIndex}`,
|
|
136
173
|
text: block['text'],
|
|
137
174
|
truncated: false,
|
|
138
175
|
};
|
|
139
176
|
}
|
|
140
|
-
if (block['type']
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
177
|
+
if (block['type'] !== 'tool_use')
|
|
178
|
+
return null;
|
|
179
|
+
const callId = stringValue(block['id']);
|
|
180
|
+
const name = stringValue(block['name']);
|
|
181
|
+
if (callId === null || callId === '' || name === null)
|
|
182
|
+
return null;
|
|
183
|
+
const args = toJsonValue(block['input']);
|
|
184
|
+
active.tools.set(callId, { name, arguments: args });
|
|
185
|
+
return {
|
|
186
|
+
kind: 'tool.call',
|
|
187
|
+
occurredAt: Date.now(),
|
|
188
|
+
id: `${messageId}:${callId}:started`,
|
|
189
|
+
callId,
|
|
190
|
+
toolName: name,
|
|
191
|
+
...toolDisplay(name, args),
|
|
192
|
+
status: 'started',
|
|
193
|
+
arguments: args,
|
|
194
|
+
result: null,
|
|
195
|
+
error: null,
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
/** What a tool returned, correlated to the call the model made. */
|
|
199
|
+
function toolResultActivity(active, messageId, block) {
|
|
158
200
|
if (block['type'] !== 'tool_result')
|
|
159
201
|
return null;
|
|
160
202
|
const callId = stringValue(block['tool_use_id']);
|
|
@@ -162,17 +204,40 @@ function activityForBlock(active, messageId, blockIndex, block) {
|
|
|
162
204
|
return null;
|
|
163
205
|
const known = active.tools.get(callId);
|
|
164
206
|
const failed = block['is_error'] === true;
|
|
207
|
+
const result = normalizeTextBlocks(block['content']);
|
|
165
208
|
return {
|
|
166
209
|
kind: 'tool.call',
|
|
210
|
+
occurredAt: Date.now(),
|
|
167
211
|
id: `${messageId}:${callId}:result`,
|
|
168
212
|
callId,
|
|
169
213
|
toolName: known?.name ?? 'tool',
|
|
214
|
+
...toolDisplay(known?.name, known?.arguments ?? null),
|
|
170
215
|
status: failed ? 'failed' : 'completed',
|
|
171
216
|
arguments: known?.arguments ?? null,
|
|
172
|
-
result
|
|
173
|
-
error: failed ?
|
|
217
|
+
result,
|
|
218
|
+
error: failed ? displayError(result) : null,
|
|
174
219
|
};
|
|
175
220
|
}
|
|
221
|
+
function displayError(value) {
|
|
222
|
+
if (value === null)
|
|
223
|
+
return null;
|
|
224
|
+
return typeof value === 'string' ? value : JSON.stringify(value);
|
|
225
|
+
}
|
|
226
|
+
function normalizeTextBlocks(value) {
|
|
227
|
+
if (!Array.isArray(value))
|
|
228
|
+
return toJsonValue(value);
|
|
229
|
+
if (value.length === 0)
|
|
230
|
+
return null;
|
|
231
|
+
const texts = value.map((entry) => {
|
|
232
|
+
const record = recordValue(entry);
|
|
233
|
+
return record?.['type'] === 'text' && typeof record['text'] === 'string'
|
|
234
|
+
? record['text']
|
|
235
|
+
: null;
|
|
236
|
+
});
|
|
237
|
+
return texts.every((text) => text !== null)
|
|
238
|
+
? texts.join('\n')
|
|
239
|
+
: toJsonValue(value);
|
|
240
|
+
}
|
|
176
241
|
function recordValue(value) {
|
|
177
242
|
return value !== null && typeof value === 'object' && !Array.isArray(value)
|
|
178
243
|
? value
|
|
@@ -191,9 +256,6 @@ function toJsonValue(value) {
|
|
|
191
256
|
return String(value);
|
|
192
257
|
}
|
|
193
258
|
}
|
|
194
|
-
function renderJsonValue(value) {
|
|
195
|
-
return typeof value === 'string' ? value : JSON.stringify(value);
|
|
196
|
-
}
|
|
197
259
|
function asError(error) {
|
|
198
260
|
return error instanceof Error ? error : new Error(String(error));
|
|
199
261
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-submissions.js","sourceRoot":"","sources":["../src/runtime-submissions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;
|
|
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,15 +1,14 @@
|
|
|
1
1
|
/** Resident Claude Code AgentRuntime using stream-json stdio. */
|
|
2
2
|
import type { ClaudeCodeRuntimeDeps } from './runtime-deps.js';
|
|
3
|
-
import type {
|
|
3
|
+
import type { AgentRuntime, AgentRuntimeIdentity, AgentRuntimeStartOutcome, AgentRuntimeSubmissionInput, RuntimeAdmission } from '@excitedjs/dreamux-types';
|
|
4
4
|
/**
|
|
5
5
|
* The Claude Code agent runtime for one dispatcher. A single resident
|
|
6
6
|
* stream-json child serves every turn. Turns run serially (one at a time) and
|
|
7
|
-
* `
|
|
7
|
+
* `submit` returns after the message is accepted — not after the turn
|
|
8
8
|
* completes — matching the Codex runtime's submit-then-serialize contract.
|
|
9
9
|
*/
|
|
10
10
|
export declare class ClaudeCodeRuntime implements AgentRuntime {
|
|
11
11
|
private readonly deps;
|
|
12
|
-
readonly providerRef = "builtin:claude-code";
|
|
13
12
|
private readonly dispatcherId;
|
|
14
13
|
private readonly config;
|
|
15
14
|
private readonly bin;
|
|
@@ -20,17 +19,16 @@ export declare class ClaudeCodeRuntime implements AgentRuntime {
|
|
|
20
19
|
private readonly logger;
|
|
21
20
|
private status;
|
|
22
21
|
private threadId;
|
|
23
|
-
private transcriptLocator;
|
|
24
22
|
private resumeOnNextSpawn;
|
|
25
|
-
private resumed;
|
|
23
|
+
private readonly resumed;
|
|
24
|
+
/**
|
|
25
|
+
* The provider-local fatal path for authoritative state writes. Any failure
|
|
26
|
+
* to persist — a revoked lease or a plain write failure — fences input and
|
|
27
|
+
* tears the resident child down; the runtime never continues on a state
|
|
28
|
+
* record it could not update.
|
|
29
|
+
*/
|
|
30
|
+
private readonly fence;
|
|
26
31
|
private stopped;
|
|
27
|
-
private readonly seen;
|
|
28
|
-
private readonly seenOrder;
|
|
29
|
-
private readonly seenTextInputIds;
|
|
30
|
-
private readonly seenTextInputIdOrder;
|
|
31
|
-
private readonly sourceIdDedupeWindow;
|
|
32
|
-
private readonly pendingChannelSources;
|
|
33
|
-
private readonly pendingTextSources;
|
|
34
32
|
private readonly pendingAdmissions;
|
|
35
33
|
private queue;
|
|
36
34
|
private session;
|
|
@@ -40,49 +38,85 @@ export declare class ClaudeCodeRuntime implements AgentRuntime {
|
|
|
40
38
|
private generation;
|
|
41
39
|
private activeTurn;
|
|
42
40
|
private queuedTurnCount;
|
|
43
|
-
private idlePromise;
|
|
44
|
-
private idleResolve;
|
|
45
41
|
constructor(identity: AgentRuntimeIdentity, deps: ClaudeCodeRuntimeDeps);
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
wasCheckpointResumed(): boolean;
|
|
53
|
-
getContext(): Promise<null>;
|
|
54
|
-
resume(): Promise<void>;
|
|
55
|
-
start(): Promise<void>;
|
|
42
|
+
start(): Promise<AgentRuntimeStartOutcome>;
|
|
43
|
+
/**
|
|
44
|
+
* Recovery is continuous by contract: when a prior session exists the child is
|
|
45
|
+
* always spawned with `--resume`, and a failed resume propagates out of
|
|
46
|
+
* `start` rather than silently becoming a fresh session.
|
|
47
|
+
*/
|
|
56
48
|
private startRuntime;
|
|
49
|
+
private startOutcome;
|
|
57
50
|
stop(): Promise<void>;
|
|
51
|
+
/** Single-flight the stop task, releasing the slot so a failure can retry. */
|
|
52
|
+
private track;
|
|
53
|
+
/**
|
|
54
|
+
* Converge a stop that arrived after the fence already started the fatal
|
|
55
|
+
* teardown. A teardown that succeeded left the runtime stopped; one that
|
|
56
|
+
* failed retained the resident session, so this retries against that retained
|
|
57
|
+
* authority and rejects if the retry fails too.
|
|
58
|
+
*/
|
|
59
|
+
private stopAfterFatalTeardown;
|
|
58
60
|
private stopRuntime;
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
61
|
+
/**
|
|
62
|
+
* Admit one already-rendered submission. The runtime holds no source ledger:
|
|
63
|
+
* the text is the complete model-facing message, and deduplication is Core's,
|
|
64
|
+
* ahead of this call.
|
|
65
|
+
*/
|
|
66
|
+
submit(input: AgentRuntimeSubmissionInput): Promise<RuntimeAdmission>;
|
|
65
67
|
private acceptInput;
|
|
66
68
|
private trackAdmission;
|
|
67
69
|
private drainAdmissions;
|
|
68
|
-
waitIdle(): Promise<void>;
|
|
69
70
|
private runActiveTurnOnQueue;
|
|
70
71
|
private runActiveTurn;
|
|
71
72
|
private steerActiveTurn;
|
|
72
73
|
private markTurnSucceeded;
|
|
73
74
|
private markTurnFailed;
|
|
74
75
|
private stopUnsettled;
|
|
76
|
+
private endNativeTurn;
|
|
75
77
|
private recordQueuedTurnStart;
|
|
76
78
|
private recordQueuedTurnEnd;
|
|
77
|
-
private resolveIdleWaitersIfIdle;
|
|
78
79
|
/** Ensure a live resident session exists, resuming after a child exit. */
|
|
79
80
|
private ensureSession;
|
|
80
81
|
private createSession;
|
|
81
|
-
private resolveTranscriptPath;
|
|
82
82
|
/** React to an unexpected resident-child exit: degrade and drop the session. */
|
|
83
83
|
private onSessionExit;
|
|
84
84
|
private onProtocolEvent;
|
|
85
85
|
private assertGeneration;
|
|
86
|
+
/**
|
|
87
|
+
* The fence's native teardown. Deliberately not `stop()`: `stop()` publishes
|
|
88
|
+
* `stopping`/`stopped` through the very sink that just proved unusable, so it
|
|
89
|
+
* would only produce a second failure. This closes the resident child and
|
|
90
|
+
* settles in-flight work, and nothing else.
|
|
91
|
+
*
|
|
92
|
+
* It runs synchronously up to its first await, so `stopped` and the bumped
|
|
93
|
+
* generation fence input immediately — a submit arriving after the fatal
|
|
94
|
+
* write is already refused.
|
|
95
|
+
*/
|
|
96
|
+
private terminateForFence;
|
|
97
|
+
private publishStatus;
|
|
98
|
+
/**
|
|
99
|
+
* Persist a status the caller's own outcome does not depend on, but whose
|
|
100
|
+
* ordering does: `stop` must not resolve before its terminal write lands,
|
|
101
|
+
* because Core keeps this generation's lease valid exactly until stop
|
|
102
|
+
* settles and a detached write would race the revocation that follows.
|
|
103
|
+
*
|
|
104
|
+
* The error is not rethrown. The fence has already made it terminal, and
|
|
105
|
+
* these callers report something else — whether the child terminated, or the
|
|
106
|
+
* original start failure — which a state-write failure does not change.
|
|
107
|
+
*/
|
|
108
|
+
private settleStatus;
|
|
109
|
+
/**
|
|
110
|
+
* Record a status on the background paths (turn failure, child exit).
|
|
111
|
+
*
|
|
112
|
+
* Core's durable state is the authority; this field is only the runtime's own
|
|
113
|
+
* lifecycle guard, and it is updated first so the guard stays correct even as
|
|
114
|
+
* the fence closes. The write itself is detached: it
|
|
115
|
+
* must not surface as an unhandled rejection on the shared event loop (#85),
|
|
116
|
+
* and a failure is already terminal through the fence, so there is nothing
|
|
117
|
+
* left for this caller to do about it. The start path awaits `publishStatus`
|
|
118
|
+
* instead, because the ready state must be durable before `start` resolves.
|
|
119
|
+
*/
|
|
86
120
|
private setStatus;
|
|
87
121
|
private log;
|
|
88
122
|
}
|
package/dist/runtime.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,iEAAiE;
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,iEAAiE;AAgBjE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAU/D,OAAO,KAAK,EACV,YAAY,EACZ,oBAAoB,EACpB,wBAAwB,EAExB,2BAA2B,EAE3B,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;AAMlC;;;;;GAKG;AACH,qBAAa,iBAAkB,YAAW,YAAY;IAmClD,OAAO,CAAC,QAAQ,CAAC,IAAI;IAlCvB,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,CAAU;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAC,KAAK,CAGnB;IACH,OAAO,CAAC,OAAO,CAAS;IACxB,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,CAAkD;IACnE,OAAO,CAAC,QAAQ,CAA8B;IAC9C,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,eAAe,CAAK;gBAE1B,QAAQ,EAAE,oBAAoB,EACb,IAAI,EAAE,qBAAqB;IA4B9C,KAAK,IAAI,OAAO,CAAC,wBAAwB,CAAC;IAe1C;;;;OAIG;YACW,YAAY;IA6B1B,OAAO,CAAC,YAAY;IAMd,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAsB3B,8EAA8E;IAC9E,OAAO,CAAC,KAAK;IAQb;;;;;OAKG;YACW,sBAAsB;YA2BtB,WAAW;IAiBzB;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE,2BAA2B,GAAG,OAAO,CAAC,gBAAgB,CAAC;YAIvD,WAAW;IA8CzB,OAAO,CAAC,cAAc;YAUR,eAAe;IAM7B,OAAO,CAAC,oBAAoB;YAYd,aAAa;YAwBb,eAAe;IAyB7B,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,cAAc;IAuBtB,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,mBAAmB;IAI3B,0EAA0E;YAC5D,aAAa;YAab,aAAa;IA6E3B,gFAAgF;YAClE,aAAa;IAmB3B,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,gBAAgB;IAMxB;;;;;;;;;OASG;YACW,iBAAiB;YAsBjB,aAAa;IAY3B;;;;;;;;;OASG;YACW,YAAY;IAW1B;;;;;;;;;;OAUG;IACH,OAAO,CAAC,SAAS;IAYjB,OAAO,CAAC,GAAG;CAOZ"}
|