@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.
Files changed (116) hide show
  1. package/dist/activity/budget.d.ts +8 -0
  2. package/dist/activity/budget.d.ts.map +1 -0
  3. package/dist/activity/budget.js +9 -0
  4. package/dist/activity/budget.js.map +1 -0
  5. package/dist/{transcript → activity}/cursor.d.ts +2 -2
  6. package/dist/activity/cursor.d.ts.map +1 -0
  7. package/dist/{transcript → activity}/cursor.js +11 -11
  8. package/dist/activity/cursor.js.map +1 -0
  9. package/dist/activity/error.d.ts +16 -0
  10. package/dist/activity/error.d.ts.map +1 -0
  11. package/dist/activity/error.js +22 -0
  12. package/dist/activity/error.js.map +1 -0
  13. package/dist/activity/native-hash.d.ts.map +1 -0
  14. package/dist/activity/native-hash.js.map +1 -0
  15. package/dist/{transcript → activity}/opened-file.d.ts +3 -3
  16. package/dist/activity/opened-file.d.ts.map +1 -0
  17. package/dist/{transcript → activity}/opened-file.js +16 -16
  18. package/dist/activity/opened-file.js.map +1 -0
  19. package/dist/activity/parallel-tools.d.ts +6 -0
  20. package/dist/activity/parallel-tools.d.ts.map +1 -0
  21. package/dist/activity/parallel-tools.js.map +1 -0
  22. package/dist/activity/path.d.ts +25 -0
  23. package/dist/activity/path.d.ts.map +1 -0
  24. package/dist/{transcript → activity}/path.js +32 -32
  25. package/dist/activity/path.js.map +1 -0
  26. package/dist/activity/reader.d.ts +16 -0
  27. package/dist/activity/reader.d.ts.map +1 -0
  28. package/dist/{transcript → activity}/reader.js +120 -161
  29. package/dist/activity/reader.js.map +1 -0
  30. package/dist/activity/rewrites.d.ts.map +1 -0
  31. package/dist/activity/rewrites.js.map +1 -0
  32. package/dist/admission-classify.d.ts +7 -0
  33. package/dist/admission-classify.d.ts.map +1 -0
  34. package/dist/admission-classify.js +17 -0
  35. package/dist/admission-classify.js.map +1 -0
  36. package/dist/diagnostic.d.ts +2 -2
  37. package/dist/diagnostic.d.ts.map +1 -1
  38. package/dist/index.d.ts +1 -2
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +0 -1
  41. package/dist/index.js.map +1 -1
  42. package/dist/mcp-config.d.ts +1 -0
  43. package/dist/mcp-config.d.ts.map +1 -1
  44. package/dist/mcp-config.js +5 -0
  45. package/dist/mcp-config.js.map +1 -1
  46. package/dist/provider.d.ts +26 -38
  47. package/dist/provider.d.ts.map +1 -1
  48. package/dist/provider.js +32 -61
  49. package/dist/provider.js.map +1 -1
  50. package/dist/rpc.d.ts +4 -5
  51. package/dist/rpc.d.ts.map +1 -1
  52. package/dist/rpc.js +11 -7
  53. package/dist/rpc.js.map +1 -1
  54. package/dist/runtime-deps.d.ts +7 -11
  55. package/dist/runtime-deps.d.ts.map +1 -1
  56. package/dist/runtime-session.d.ts +0 -9
  57. package/dist/runtime-session.d.ts.map +1 -1
  58. package/dist/runtime-session.js +0 -14
  59. package/dist/runtime-session.js.map +1 -1
  60. package/dist/runtime-submissions.d.ts +28 -4
  61. package/dist/runtime-submissions.d.ts.map +1 -1
  62. package/dist/runtime-submissions.js +116 -54
  63. package/dist/runtime-submissions.js.map +1 -1
  64. package/dist/runtime.d.ts +67 -33
  65. package/dist/runtime.d.ts.map +1 -1
  66. package/dist/runtime.js +204 -168
  67. package/dist/runtime.js.map +1 -1
  68. package/dist/stream.d.ts +8 -6
  69. package/dist/stream.d.ts.map +1 -1
  70. package/dist/stream.js +10 -8
  71. package/dist/stream.js.map +1 -1
  72. package/dist/tool-display.d.ts +22 -0
  73. package/dist/tool-display.d.ts.map +1 -0
  74. package/dist/tool-display.js +78 -0
  75. package/dist/tool-display.js.map +1 -0
  76. package/dist/types.d.ts +20 -3
  77. package/dist/types.d.ts.map +1 -1
  78. package/package.json +3 -3
  79. package/dist/source-reservation.d.ts +0 -6
  80. package/dist/source-reservation.d.ts.map +0 -1
  81. package/dist/source-reservation.js +0 -48
  82. package/dist/source-reservation.js.map +0 -1
  83. package/dist/transcript/budget.d.ts +0 -8
  84. package/dist/transcript/budget.d.ts.map +0 -1
  85. package/dist/transcript/budget.js +0 -9
  86. package/dist/transcript/budget.js.map +0 -1
  87. package/dist/transcript/completion.d.ts +0 -8
  88. package/dist/transcript/completion.d.ts.map +0 -1
  89. package/dist/transcript/completion.js +0 -57
  90. package/dist/transcript/completion.js.map +0 -1
  91. package/dist/transcript/cursor.d.ts.map +0 -1
  92. package/dist/transcript/cursor.js.map +0 -1
  93. package/dist/transcript/error.d.ts +0 -9
  94. package/dist/transcript/error.d.ts.map +0 -1
  95. package/dist/transcript/error.js +0 -9
  96. package/dist/transcript/error.js.map +0 -1
  97. package/dist/transcript/native-hash.d.ts.map +0 -1
  98. package/dist/transcript/native-hash.js.map +0 -1
  99. package/dist/transcript/opened-file.d.ts.map +0 -1
  100. package/dist/transcript/opened-file.js.map +0 -1
  101. package/dist/transcript/parallel-tools.d.ts +0 -6
  102. package/dist/transcript/parallel-tools.d.ts.map +0 -1
  103. package/dist/transcript/parallel-tools.js.map +0 -1
  104. package/dist/transcript/path.d.ts +0 -25
  105. package/dist/transcript/path.d.ts.map +0 -1
  106. package/dist/transcript/path.js.map +0 -1
  107. package/dist/transcript/reader.d.ts +0 -7
  108. package/dist/transcript/reader.d.ts.map +0 -1
  109. package/dist/transcript/reader.js.map +0 -1
  110. package/dist/transcript/rewrites.d.ts.map +0 -1
  111. package/dist/transcript/rewrites.js.map +0 -1
  112. /package/dist/{transcript → activity}/native-hash.d.ts +0 -0
  113. /package/dist/{transcript → activity}/native-hash.js +0 -0
  114. /package/dist/{transcript → activity}/parallel-tools.js +0 -0
  115. /package/dist/{transcript → activity}/rewrites.d.ts +0 -0
  116. /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
- if (event.state === 'started' &&
24
- active.submissions.has(event.commandUuid) &&
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
- const raw = recordValue(event.line.raw);
36
- if (raw !== null)
37
- emitStreamActivity(active, raw, context);
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
- displaySubmission: representative.submission,
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
- 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;
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 = activityForBlock(active, messageId, blockIndex, block);
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
- 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
- }
163
+ emitActivity(activity, context.activitySink);
129
164
  }
130
165
  }
131
- function activityForBlock(active, messageId, blockIndex, block) {
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'] === '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
- }
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: toJsonValue(block['content']),
173
- error: failed ? renderJsonValue(block['content']) : null,
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":"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"}
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 { AgentRuntimeCapabilities, AgentRuntime, AgentRuntimeIdentity, AgentRuntimeStatus, AgentRuntimeTextInput, InboundTurnInput, RuntimeAdmission } from '@excitedjs/dreamux-types';
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
- * `channelInput` returns after the message is accepted — not after the turn
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
- getStatus(): AgentRuntimeStatus;
47
- getCapabilities(): AgentRuntimeCapabilities;
48
- getCheckpoint(): {
49
- id: string;
50
- transcript_locator?: string | null;
51
- } | null;
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
- completionInput(input: AgentRuntimeTextInput): Promise<RuntimeAdmission>;
60
- private completionInputImpl;
61
- private acceptTextInput;
62
- channelInput(input: InboundTurnInput): Promise<RuntimeAdmission>;
63
- private channelInputImpl;
64
- private acceptChannelInput;
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
  }
@@ -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;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"}