@jini-ai/daemon 0.2.1 → 0.3.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 (77) hide show
  1. package/README.md +92 -0
  2. package/dist/agent-executor.d.ts +714 -42
  3. package/dist/agent-executor.d.ts.map +1 -1
  4. package/dist/agent-executor.js +1416 -351
  5. package/dist/agent-executor.js.map +1 -1
  6. package/dist/continuation/index.d.ts +1 -0
  7. package/dist/continuation/index.d.ts.map +1 -1
  8. package/dist/continuation/index.js +1 -0
  9. package/dist/continuation/index.js.map +1 -1
  10. package/dist/continuation/run-scoped-context-store.d.ts +79 -0
  11. package/dist/continuation/run-scoped-context-store.d.ts.map +1 -0
  12. package/dist/continuation/run-scoped-context-store.js +56 -0
  13. package/dist/continuation/run-scoped-context-store.js.map +1 -0
  14. package/dist/continuation/run-start-handler.d.ts +39 -9
  15. package/dist/continuation/run-start-handler.d.ts.map +1 -1
  16. package/dist/continuation/run-start-handler.js +12 -2
  17. package/dist/continuation/run-start-handler.js.map +1 -1
  18. package/dist/delegated-tool-bridge.d.ts +8 -0
  19. package/dist/delegated-tool-bridge.d.ts.map +1 -1
  20. package/dist/delegated-tool-bridge.js +117 -1
  21. package/dist/delegated-tool-bridge.js.map +1 -1
  22. package/dist/event-log.d.ts +18 -105
  23. package/dist/event-log.d.ts.map +1 -1
  24. package/dist/event-log.js +0 -17
  25. package/dist/event-log.js.map +1 -1
  26. package/dist/frontend-capability-tools.d.ts +1 -1
  27. package/dist/frontend-capability-tools.js +1 -1
  28. package/dist/frontend-session-registry.d.ts.map +1 -1
  29. package/dist/frontend-session-registry.js +26 -10
  30. package/dist/frontend-session-registry.js.map +1 -1
  31. package/dist/image-prompt-delivery.d.ts +56 -0
  32. package/dist/image-prompt-delivery.d.ts.map +1 -0
  33. package/dist/image-prompt-delivery.js +104 -0
  34. package/dist/image-prompt-delivery.js.map +1 -0
  35. package/dist/index.d.ts +2 -1
  36. package/dist/index.d.ts.map +1 -1
  37. package/dist/index.js +2 -1
  38. package/dist/index.js.map +1 -1
  39. package/dist/remote-tool-bridge.d.ts +45 -0
  40. package/dist/remote-tool-bridge.d.ts.map +1 -0
  41. package/dist/remote-tool-bridge.js +23 -0
  42. package/dist/remote-tool-bridge.js.map +1 -0
  43. package/dist/routines/routine-store.js +1 -1
  44. package/dist/routines/schedule.d.ts +0 -8
  45. package/dist/routines/schedule.d.ts.map +1 -1
  46. package/dist/routines/schedule.js +71 -44
  47. package/dist/routines/schedule.js.map +1 -1
  48. package/dist/routines/scheduler.d.ts +43 -0
  49. package/dist/routines/scheduler.d.ts.map +1 -1
  50. package/dist/routines/scheduler.js +160 -120
  51. package/dist/routines/scheduler.js.map +1 -1
  52. package/dist/run/core/retry.d.ts.map +1 -1
  53. package/dist/run/core/retry.js +47 -35
  54. package/dist/run/core/retry.js.map +1 -1
  55. package/dist/run/diagnostics/diagnostics.d.ts.map +1 -1
  56. package/dist/run/diagnostics/diagnostics.js +149 -91
  57. package/dist/run/diagnostics/diagnostics.js.map +1 -1
  58. package/dist/run-lifecycle.d.ts +84 -4
  59. package/dist/run-lifecycle.d.ts.map +1 -1
  60. package/dist/run-lifecycle.js +378 -116
  61. package/dist/run-lifecycle.js.map +1 -1
  62. package/dist/terminal-session.d.ts +1 -1
  63. package/dist/terminal-session.d.ts.map +1 -1
  64. package/dist/terminal-session.js +1 -1
  65. package/dist/tool-executor.d.ts +26 -6
  66. package/dist/tool-executor.d.ts.map +1 -1
  67. package/dist/tool-executor.js +220 -55
  68. package/dist/tool-executor.js.map +1 -1
  69. package/dist/tool-result-media.d.ts +79 -0
  70. package/dist/tool-result-media.d.ts.map +1 -0
  71. package/dist/tool-result-media.js +80 -0
  72. package/dist/tool-result-media.js.map +1 -0
  73. package/dist/tool-result-surfaces.d.ts +78 -0
  74. package/dist/tool-result-surfaces.d.ts.map +1 -0
  75. package/dist/tool-result-surfaces.js +92 -0
  76. package/dist/tool-result-surfaces.js.map +1 -0
  77. package/package.json +18 -9
@@ -100,6 +100,137 @@ export function collectStderrTailSummary(events = [], redact = identityRedactor)
100
100
  export function collectStdoutTailSummary(events = [], redact = identityRedactor) {
101
101
  return collectStreamTailSummary(events, 'stdout', readStdoutChunk, redact);
102
102
  }
103
+ /** The set of `rpc_close_reason` strings a `runtime_close` diagnostic may legitimately carry. */
104
+ const RECOGNIZED_CLOSE_REASONS = new Set([
105
+ 'exit_0',
106
+ 'exit_nonzero',
107
+ 'signal',
108
+ 'cancel_requested',
109
+ 'stream_error',
110
+ 'fatal_rpc_error',
111
+ 'empty_output',
112
+ 'unknown',
113
+ ]);
114
+ /** Coerces an event's `data` to a property bag so `data.type` probing never throws on a scalar/array payload. */
115
+ function eventDataRecord(data) {
116
+ return data && typeof data === 'object' ? data : {};
117
+ }
118
+ /**
119
+ * Reads the authoritative close reason a driver recorded on a `runtime_close` diagnostic event,
120
+ * or `null` when this event carries none (or carries an unrecognized value).
121
+ */
122
+ function readRecordedCloseReason(event, data) {
123
+ if (event.event !== 'diagnostic' || data.type !== 'runtime_close')
124
+ return null;
125
+ const reason = data.rpc_close_reason;
126
+ if (typeof reason !== 'string')
127
+ return null;
128
+ return RECOGNIZED_CLOSE_REASONS.has(reason) ? reason : null;
129
+ }
130
+ /** True when this event is a non-empty streamed text/thinking delta — i.e. output a user actually saw. */
131
+ function hasVisibleTextDelta(data) {
132
+ if (data.type !== 'text_delta' && data.type !== 'thinking_delta')
133
+ return false;
134
+ return typeof data.delta === 'string' && data.delta.length > 0;
135
+ }
136
+ /** Accumulates the raw stderr/stdout text carried by this event, if it is a stream chunk. */
137
+ function accumulateStreamChunk(observed, event) {
138
+ if (event.event === 'stderr') {
139
+ const chunk = readStderrChunk(event.data);
140
+ if (chunk)
141
+ observed.stderr += chunk;
142
+ return;
143
+ }
144
+ if (event.event === 'stdout') {
145
+ const chunk = readStdoutChunk(event.data);
146
+ if (chunk) {
147
+ observed.stdout += chunk;
148
+ observed.userVisibleOutputSeen = true;
149
+ }
150
+ }
151
+ }
152
+ /** Latches the observed-behavior flags (visible output, tool calls, artifacts, resume re-seed) for one event. */
153
+ function accumulateObservedFlags(observed, event, data) {
154
+ if (hasVisibleTextDelta(data))
155
+ observed.userVisibleOutputSeen = true;
156
+ if (data.type === 'tool_use')
157
+ observed.toolCallSeen = true;
158
+ if (data.type === 'artifact')
159
+ observed.artifactWriteSeen = true;
160
+ if (data.type === 'live_artifact' || event.event === 'live_artifact') {
161
+ observed.liveArtifactSeen = true;
162
+ }
163
+ if (event.event === 'diagnostic' && data.type === 'agent_resume_auto_reseed') {
164
+ observed.resumeAutoReseeded = true;
165
+ }
166
+ }
167
+ /** Folds one event into the accumulator. */
168
+ function accumulateEvent(observed, event) {
169
+ if (event.event === 'error')
170
+ observed.hasErrorEvent = true;
171
+ accumulateStreamChunk(observed, event);
172
+ const data = eventDataRecord(event.data);
173
+ accumulateObservedFlags(observed, event, data);
174
+ const closeReason = readRecordedCloseReason(event, data);
175
+ if (closeReason)
176
+ observed.recordedCloseReason = closeReason;
177
+ }
178
+ /**
179
+ * Single pass over a run's event list collecting every diagnostic signal the analytics payload
180
+ * needs. Seeded with the daemon-supplied artifact flags so an event stream that never mentions an
181
+ * artifact still reports what finalization already knew.
182
+ */
183
+ function scanRunEvents(events, seed) {
184
+ const observed = {
185
+ stderr: '',
186
+ stdout: '',
187
+ hasErrorEvent: false,
188
+ userVisibleOutputSeen: false,
189
+ toolCallSeen: false,
190
+ artifactWriteSeen: seed.artifactWriteSeen,
191
+ liveArtifactSeen: seed.liveArtifactSeen,
192
+ recordedCloseReason: null,
193
+ resumeAutoReseeded: false,
194
+ };
195
+ for (const event of events) {
196
+ accumulateEvent(observed, event);
197
+ }
198
+ return observed;
199
+ }
200
+ /** Picks the single most informative signal available about why the run ended, in priority order. */
201
+ function resolveDiagnosticSource(signals) {
202
+ if (signals.hasErrorEvent)
203
+ return 'error_event';
204
+ if (signals.stderrPresent)
205
+ return 'stderr';
206
+ if (signals.signal)
207
+ return 'signal';
208
+ if (typeof signals.exitCode === 'number')
209
+ return 'exit_code';
210
+ return 'unknown';
211
+ }
212
+ /**
213
+ * Resolves the mechanism that closed the run. A reason a driver explicitly recorded always wins;
214
+ * otherwise the daemon's own finalization flags are consulted in priority order, falling back to
215
+ * the raw process exit signal/code.
216
+ */
217
+ function resolveRpcCloseReason(recordedCloseReason, signals) {
218
+ if (recordedCloseReason)
219
+ return recordedCloseReason;
220
+ if (signals.cancelRequested === true)
221
+ return 'cancel_requested';
222
+ if (signals.fatalRpcErrorSeen === true)
223
+ return 'fatal_rpc_error';
224
+ if (signals.streamErrorSeen === true)
225
+ return 'stream_error';
226
+ if (signals.emptyOutputFailure === true)
227
+ return 'empty_output';
228
+ if (signals.signal)
229
+ return 'signal';
230
+ if (typeof signals.exitCode !== 'number')
231
+ return 'unknown';
232
+ return signals.exitCode === 0 ? 'exit_0' : 'exit_nonzero';
233
+ }
103
234
  /**
104
235
  * Produces the full `RunDiagnosticsAnalytics` payload for a completed run by scanning its event stream
105
236
  * and combining observed flags (tool calls, artifact writes, first token) with process-level signals.
@@ -107,105 +238,32 @@ export function collectStdoutTailSummary(events = [], redact = identityRedactor)
107
238
  * @returns A `RunDiagnosticsAnalytics` object ready to spread into the `run_finished` analytics event.
108
239
  */
109
240
  export function summarizeRunDiagnosticsForAnalytics(args) {
110
- const events = args.events ?? [];
111
- let stderr = '';
112
- let stdout = '';
113
- let userVisibleOutputSeen = false;
114
- let toolCallSeen = false;
115
- let artifactWriteSeen = args.artifactWriteSeen === true;
116
- let liveArtifactSeen = args.liveArtifactSeen === true;
117
- let recordedCloseReason = null;
118
- let resumeAutoReseeded = false;
119
- for (const event of events) {
120
- if (event.event === 'stderr') {
121
- const chunk = readStderrChunk(event.data);
122
- if (chunk)
123
- stderr += chunk;
124
- }
125
- if (event.event === 'stdout') {
126
- const chunk = readStdoutChunk(event.data);
127
- if (chunk) {
128
- stdout += chunk;
129
- userVisibleOutputSeen = true;
130
- }
131
- }
132
- const data = event.data && typeof event.data === 'object'
133
- ? event.data
134
- : {};
135
- if (data.type === 'text_delta' || data.type === 'thinking_delta') {
136
- const delta = typeof data.delta === 'string' ? data.delta : '';
137
- if (delta.length > 0)
138
- userVisibleOutputSeen = true;
139
- }
140
- if (data.type === 'tool_use')
141
- toolCallSeen = true;
142
- if (event.event === 'diagnostic' && data.type === 'agent_resume_auto_reseed') {
143
- resumeAutoReseeded = true;
144
- }
145
- if (data.type === 'artifact')
146
- artifactWriteSeen = true;
147
- if (data.type === 'live_artifact' || event.event === 'live_artifact') {
148
- liveArtifactSeen = true;
149
- }
150
- if (event.event === 'diagnostic' &&
151
- data.type === 'runtime_close' &&
152
- typeof data.rpc_close_reason === 'string') {
153
- const reason = data.rpc_close_reason;
154
- if (reason === 'exit_0' ||
155
- reason === 'exit_nonzero' ||
156
- reason === 'signal' ||
157
- reason === 'cancel_requested' ||
158
- reason === 'stream_error' ||
159
- reason === 'fatal_rpc_error' ||
160
- reason === 'empty_output' ||
161
- reason === 'unknown') {
162
- recordedCloseReason = reason;
163
- }
164
- }
165
- }
166
- const stderrLineCount = countLines(stderr);
167
- const stdoutLineCount = countLines(stdout);
168
- const hasErrorEvent = events.some((event) => event.event === 'error');
241
+ const observed = scanRunEvents(args.events ?? [], {
242
+ artifactWriteSeen: args.artifactWriteSeen === true,
243
+ liveArtifactSeen: args.liveArtifactSeen === true,
244
+ });
245
+ const stderrLineCount = countLines(observed.stderr);
246
+ const stdoutLineCount = countLines(observed.stdout);
169
247
  const stderrPresent = stderrLineCount > 0;
170
248
  const stdoutPresent = stdoutLineCount > 0;
171
- let diagnosticSource = 'unknown';
172
- if (hasErrorEvent)
173
- diagnosticSource = 'error_event';
174
- else if (stderrPresent)
175
- diagnosticSource = 'stderr';
176
- else if (args.signal)
177
- diagnosticSource = 'signal';
178
- else if (typeof args.exitCode === 'number')
179
- diagnosticSource = 'exit_code';
180
- let rpcCloseReason = 'unknown';
181
- if (recordedCloseReason)
182
- rpcCloseReason = recordedCloseReason;
183
- else if (args.cancelRequested === true)
184
- rpcCloseReason = 'cancel_requested';
185
- else if (args.fatalRpcErrorSeen === true)
186
- rpcCloseReason = 'fatal_rpc_error';
187
- else if (args.streamErrorSeen === true)
188
- rpcCloseReason = 'stream_error';
189
- else if (args.emptyOutputFailure === true)
190
- rpcCloseReason = 'empty_output';
191
- else if (args.signal)
192
- rpcCloseReason = 'signal';
193
- else if (typeof args.exitCode === 'number') {
194
- rpcCloseReason = args.exitCode === 0 ? 'exit_0' : 'exit_nonzero';
195
- }
196
249
  return {
197
- diagnostic_source: diagnosticSource,
250
+ diagnostic_source: resolveDiagnosticSource({
251
+ hasErrorEvent: observed.hasErrorEvent,
252
+ stderrPresent,
253
+ signal: args.signal,
254
+ exitCode: args.exitCode,
255
+ }),
198
256
  stderr_present: stderrPresent,
199
257
  stderr_line_count_bucket: stderrLineCountBucket(stderrLineCount),
200
258
  stdout_present: stdoutPresent,
201
259
  stdout_line_count_bucket: stderrLineCountBucket(stdoutLineCount),
202
- rpc_close_reason: rpcCloseReason,
260
+ rpc_close_reason: resolveRpcCloseReason(observed.recordedCloseReason, args),
203
261
  first_token_seen: args.firstTokenSeen === true,
204
- user_visible_output_seen: userVisibleOutputSeen,
205
- tool_call_seen: toolCallSeen,
206
- artifact_write_seen: artifactWriteSeen,
207
- live_artifact_seen: liveArtifactSeen,
208
- resume_auto_reseeded: resumeAutoReseeded,
262
+ user_visible_output_seen: observed.userVisibleOutputSeen,
263
+ tool_call_seen: observed.toolCallSeen,
264
+ artifact_write_seen: observed.artifactWriteSeen,
265
+ live_artifact_seen: observed.liveArtifactSeen,
266
+ resume_auto_reseeded: observed.resumeAutoReseeded,
209
267
  };
210
268
  }
211
269
  //# sourceMappingURL=diagnostics.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../../../src/run/diagnostics/diagnostics.ts"],"names":[],"mappings":"AAAA,qIAAqI;AAWrI,MAAM,gBAAgB,GAAiB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC;AAmEtD,MAAM,qBAAqB,GAAG,EAAE,CAAC;AACjC,MAAM,qBAAqB,GAAG,CAAC,GAAG,IAAI,CAAC;AAEvC,SAAS,eAAe,CAAC,IAAa;IACpC,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC1C,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1E,MAAM,GAAG,GAAG,IAA+B,CAAC;IAC5C,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAC,KAAK,CAAC;IACpD,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAC,IAAI,CAAC;IAClD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,eAAe,CAAC,IAAa;IACpC,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC1C,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1E,MAAM,GAAG,GAAG,IAA+B,CAAC;IAC5C,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAC,KAAK,CAAC;IACpD,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAC,IAAI,CAAC;IAClD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,UAAU,CAAC,IAAY;IAC9B,IAAI,CAAC,IAAI;QAAE,OAAO,CAAC,CAAC;IACpB,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;AACtE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAa;IACjD,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,MAAM,CAAC;IAC9B,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7B,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,MAAM,CAAC;IAC/B,IAAI,KAAK,IAAI,GAAG;QAAE,OAAO,QAAQ,CAAC;IAClC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,YAAY,CAAC,KAAa,EAAE,QAAgB;IAInD,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC/C,IAAI,KAAK,IAAI,QAAQ;QAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IAC1D,IAAI,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC;IACvB,OAAO,GAAG,GAAG,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,QAAQ,EAAE,CAAC;QAC5E,GAAG,IAAI,CAAC,CAAC;IACX,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AACzD,CAAC;AAED,SAAS,wBAAwB,CAC/B,MAAgC,EAChC,SAAiB,EACjB,SAA2C,EAC3C,MAAoB;IAEpB,IAAI,UAAU,GAAG,EAAE,CAAC;IACpB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS;YAAE,SAAS;QACxC,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,KAAK;YAAE,UAAU,IAAI,KAAK,CAAC;IACjC,CAAC;IACD,MAAM,SAAS,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;IACzC,IAAI,SAAS,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IAErC,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,qBAAqB,CAAC,CAAC;IACtD,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;IACtD,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9C,MAAM,UAAU,GAAG,YAAY,CAAC,QAAQ,EAAE,qBAAqB,CAAC,CAAC;IAEjE,OAAO;QACL,IAAI,EAAE,UAAU,CAAC,KAAK;QACtB,SAAS;QACT,SAAS,EAAE,aAAa,IAAI,UAAU,CAAC,SAAS;KACjD,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CACtC,SAAmC,EAAE,EACrC,SAAuB,gBAAgB;IAEvC,OAAO,wBAAwB,CAAC,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC;AAC7E,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CACtC,SAAmC,EAAE,EACrC,SAAuB,gBAAgB;IAEvC,OAAO,wBAAwB,CAAC,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC;AAC7E,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mCAAmC,CAAC,IAWnD;IACC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;IACjC,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,qBAAqB,GAAG,KAAK,CAAC;IAClC,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,IAAI,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,KAAK,IAAI,CAAC;IACxD,IAAI,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,KAAK,IAAI,CAAC;IACtD,IAAI,mBAAmB,GAA0B,IAAI,CAAC;IACtD,IAAI,kBAAkB,GAAG,KAAK,CAAC;IAC/B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC1C,IAAI,KAAK;gBAAE,MAAM,IAAI,KAAK,CAAC;QAC7B,CAAC;QACD,IAAI,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC1C,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,IAAI,KAAK,CAAC;gBAChB,qBAAqB,GAAG,IAAI,CAAC;YAC/B,CAAC;QACH,CAAC;QACD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;YACvD,CAAC,CAAC,KAAK,CAAC,IAA+B;YACvC,CAAC,CAAC,EAAE,CAAC;QACP,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;YACjE,MAAM,KAAK,GAAG,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/D,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAAE,qBAAqB,GAAG,IAAI,CAAC;QACrD,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU;YAAE,YAAY,GAAG,IAAI,CAAC;QAClD,IAAI,KAAK,CAAC,KAAK,KAAK,YAAY,IAAI,IAAI,CAAC,IAAI,KAAK,0BAA0B,EAAE,CAAC;YAC7E,kBAAkB,GAAG,IAAI,CAAC;QAC5B,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU;YAAE,iBAAiB,GAAG,IAAI,CAAC;QACvD,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe,IAAI,KAAK,CAAC,KAAK,KAAK,eAAe,EAAE,CAAC;YACrE,gBAAgB,GAAG,IAAI,CAAC;QAC1B,CAAC;QACD,IACE,KAAK,CAAC,KAAK,KAAK,YAAY;YAC5B,IAAI,CAAC,IAAI,KAAK,eAAe;YAC7B,OAAO,IAAI,CAAC,gBAAgB,KAAK,QAAQ,EACzC,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC;YACrC,IACE,MAAM,KAAK,QAAQ;gBACnB,MAAM,KAAK,cAAc;gBACzB,MAAM,KAAK,QAAQ;gBACnB,MAAM,KAAK,kBAAkB;gBAC7B,MAAM,KAAK,cAAc;gBACzB,MAAM,KAAK,iBAAiB;gBAC5B,MAAM,KAAK,cAAc;gBACzB,MAAM,KAAK,SAAS,EACpB,CAAC;gBACD,mBAAmB,GAAG,MAAM,CAAC;YAC/B,CAAC;QACH,CAAC;IACH,CAAC;IACD,MAAM,eAAe,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IAC3C,MAAM,eAAe,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IAC3C,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC;IACtE,MAAM,aAAa,GAAG,eAAe,GAAG,CAAC,CAAC;IAC1C,MAAM,aAAa,GAAG,eAAe,GAAG,CAAC,CAAC;IAE1C,IAAI,gBAAgB,GAAwB,SAAS,CAAC;IACtD,IAAI,aAAa;QAAE,gBAAgB,GAAG,aAAa,CAAC;SAC/C,IAAI,aAAa;QAAE,gBAAgB,GAAG,QAAQ,CAAC;SAC/C,IAAI,IAAI,CAAC,MAAM;QAAE,gBAAgB,GAAG,QAAQ,CAAC;SAC7C,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ;QAAE,gBAAgB,GAAG,WAAW,CAAC;IAE3E,IAAI,cAAc,GAAmB,SAAS,CAAC;IAC/C,IAAI,mBAAmB;QAAE,cAAc,GAAG,mBAAmB,CAAC;SACzD,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI;QAAE,cAAc,GAAG,kBAAkB,CAAC;SACvE,IAAI,IAAI,CAAC,iBAAiB,KAAK,IAAI;QAAE,cAAc,GAAG,iBAAiB,CAAC;SACxE,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI;QAAE,cAAc,GAAG,cAAc,CAAC;SACnE,IAAI,IAAI,CAAC,kBAAkB,KAAK,IAAI;QAAE,cAAc,GAAG,cAAc,CAAC;SACtE,IAAI,IAAI,CAAC,MAAM;QAAE,cAAc,GAAG,QAAQ,CAAC;SAC3C,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC3C,cAAc,GAAG,IAAI,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC;IACnE,CAAC;IAED,OAAO;QACL,iBAAiB,EAAE,gBAAgB;QACnC,cAAc,EAAE,aAAa;QAC7B,wBAAwB,EAAE,qBAAqB,CAAC,eAAe,CAAC;QAChE,cAAc,EAAE,aAAa;QAC7B,wBAAwB,EAAE,qBAAqB,CAAC,eAAe,CAAC;QAChE,gBAAgB,EAAE,cAAc;QAChC,gBAAgB,EAAE,IAAI,CAAC,cAAc,KAAK,IAAI;QAC9C,wBAAwB,EAAE,qBAAqB;QAC/C,cAAc,EAAE,YAAY;QAC5B,mBAAmB,EAAE,iBAAiB;QACtC,kBAAkB,EAAE,gBAAgB;QACpC,oBAAoB,EAAE,kBAAkB;KACzC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../../../src/run/diagnostics/diagnostics.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import type { RunAgentPayload, RunCancelRequest, RunChunkPayload, RunErrorPayload, RunProtocolEvent, RunStatus } from '@jini-ai/protocol';
2
- import type { EventLog, EventLogReplayResult } from './event-log.js';
3
- import type { TerminalRunOutcome } from './close-status.js';
1
+ import type { RunAgentPayload, RunCancelRequest, RunChunkPayload, RunErrorPayload, RunProtocolEvent, RunStartPayload, RunStatus } from '@jini-ai/protocol';
2
+ import type { EventLog, EventLogEntry, EventLogReplayResult } from './event-log.js';
3
+ import type { InactivityWatchdog, TerminalRunOutcome } from './close-status.js';
4
4
  export interface StartRunInput {
5
5
  /** Opaque caller-supplied identity the run belongs to — never a project/conversation id (see module doc). */
6
6
  readonly contextRef: string;
@@ -96,10 +96,88 @@ export interface RunLifecycle {
96
96
  */
97
97
  stream(runId: string, onEvent: (event: RunProtocolEvent) => void, options?: StreamOptions): Promise<StreamSubscribeResult>;
98
98
  }
99
+ /**
100
+ * `start()`'s idempotency-replay lookup: the run id an existing `idempotencyKey` already maps to,
101
+ * or `undefined` when there is no key or no existing mapping (a fresh start proceeds normally).
102
+ * Pure.
103
+ */
104
+ export declare function resolveIdempotentReplayRunId(idempotencyIndex: ReadonlyMap<string, string>, idempotencyKey: string | undefined): string | undefined;
105
+ /** Registers `runId` under `idempotencyKey` in `idempotencyIndex` — a no-op when no key was supplied. */
106
+ export declare function registerIdempotencyKeyIfPresent(idempotencyIndex: Map<string, string>, idempotencyKey: string | undefined, runId: string): void;
107
+ /**
108
+ * Removes `idempotencyKey`'s mapping from `idempotencyIndex`, but only when it still points at
109
+ * `runId` — used to roll back a failed durable `'start'` append without clobbering a different
110
+ * run that may have since claimed the same key (defensive; `start()`'s own locking makes that
111
+ * race unreachable today, but the check costs nothing and documents the invariant).
112
+ */
113
+ export declare function clearIdempotencyIndexEntryIfMatching(idempotencyIndex: Map<string, string>, idempotencyKey: string | undefined, runId: string): void;
114
+ /**
115
+ * Default terminal-run retention window: how long a completed/failed/cancelled run's in-memory
116
+ * record stays readable via `get`/`list`/`stream`/`resume` before eviction. `runs.set()` never had
117
+ * a matching `runs.delete()` for a run that finishes normally — every terminal run's record was kept
118
+ * for the daemon process's entire lifetime, unbounded by run volume or uptime. Terminal runs are
119
+ * still read after they end (status polling, run-history listing, stream reconnects), so the fix
120
+ * cannot be "delete on completion" — this bounds *how long* a terminal record survives instead of
121
+ * deleting it immediately. 24h comfortably covers same-day polling/listing/reconnect without
122
+ * retaining every run a long-lived daemon ever processed.
123
+ */
124
+ export declare const DEFAULT_TERMINAL_RETENTION_MS: number;
125
+ /**
126
+ * Default hard cap on concurrently-retained terminal run records, independent of
127
+ * {@link DEFAULT_TERMINAL_RETENTION_MS} — the oldest terminal record is evicted once this is
128
+ * exceeded. A TTL alone does not bound memory when runs complete faster than they age out (a burst
129
+ * arriving within the retention window keeps growing); this cap gives a true worst-case bound
130
+ * regardless of arrival rate.
131
+ */
132
+ export declare const DEFAULT_MAX_TERMINAL_RUNS = 1000;
133
+ /**
134
+ * How long a just-terminal run should remain retained before its eviction timer fires: `retentionMs`
135
+ * minus however much of that window has already elapsed since `terminalAt`. Floored at `0` so a run
136
+ * that was already past its retention window when this is computed (relevant for `rehydrate()`,
137
+ * where a run may have gone terminal long before this process started) schedules an immediate
138
+ * eviction rather than a negative-delay timer. Pure.
139
+ */
140
+ export declare function computeRetentionDelayMs(terminalAt: number, retentionMs: number, now: number): number;
141
+ /** The durable `'start'` entry's payload — pure field mapping, split out of `start()` so its two optional-field spreads don't count toward that method's own complexity. */
142
+ export declare function buildStartPayload(runId: string, startInput: Pick<StartRunInput, 'contextRef' | 'agentId' | 'idempotencyKey'>): RunStartPayload;
143
+ /**
144
+ * Arms `record.watchdog` when `timeoutMs` is configured — a no-op otherwise. `record` is typed as a
145
+ * plain `{watchdog}` shape (not `Pick<RunRecord, 'watchdog'>`) purely so this function can be
146
+ * exported without naming the private `RunRecord` type in a public signature.
147
+ */
148
+ export declare function armWatchdogIfConfigured(record: {
149
+ watchdog: InactivityWatchdog | undefined;
150
+ }, timeoutMs: number | undefined, onTimeout: () => void): void;
151
+ /**
152
+ * `stream()`'s replay-delivery step: sends every already-durable entry to `onEvent`, returning the
153
+ * delivered eventIds so a caller can avoid re-delivering the same event from a different source
154
+ * (buffered live events observed during the replay, a terminal catch-up event). Pure aside from
155
+ * calling the injected `onEvent`.
156
+ */
157
+ export declare function deliverReplayedEvents(runId: string, entries: readonly EventLogEntry[], onEvent: (event: RunProtocolEvent) => void): Set<string>;
158
+ /**
159
+ * Delivers every event in `events` not already present in `deliveredEventIds`, marking each as
160
+ * delivered as it goes. Reused in `stream()` for both the buffered-live-event catch-up and the
161
+ * single terminal-event catch-up, so the "don't double-deliver" bookkeeping lives in one place.
162
+ */
163
+ export declare function deliverUndeliveredEvents(events: readonly RunProtocolEvent[], deliveredEventIds: Set<string>, onEvent: (event: RunProtocolEvent) => void): void;
164
+ /**
165
+ * Closes out a `stream()` subscription once replay and catch-up delivery are done: a terminal run's
166
+ * subscriber is removed immediately (no further event will ever come), a still-live run's stays
167
+ * registered behind the returned `unsubscribe`. `record` is typed as a plain `{subscribers}` shape
168
+ * for the same exportability reason as {@link armWatchdogIfConfigured}.
169
+ */
170
+ export declare function finishStreamSubscription(record: {
171
+ subscribers: Set<(event: RunProtocolEvent) => void>;
172
+ }, subscriber: (event: RunProtocolEvent) => void, terminal: boolean): StreamSubscribeResult;
99
173
  export interface CreateRunLifecycleInput {
100
174
  readonly eventLog: EventLog;
101
175
  /** Host-owned sink for asynchronous lifecycle failures that cannot be returned to a caller. Defaults to `console.error`. */
102
176
  readonly onInternalError?: (context: RunLifecycleInternalErrorContext) => void;
177
+ /** How long a terminal run's in-memory record is retained before eviction. See {@link DEFAULT_TERMINAL_RETENTION_MS}. Defaults to that constant. */
178
+ readonly terminalRetentionMs?: number;
179
+ /** Hard cap on concurrently-retained terminal run records. See {@link DEFAULT_MAX_TERMINAL_RUNS}. Defaults to that constant. */
180
+ readonly maxTerminalRuns?: number;
103
181
  }
104
182
  export interface RunLifecycleInternalErrorContext {
105
183
  readonly source: 'inactivity-timeout';
@@ -110,8 +188,10 @@ export interface RunLifecycleInternalErrorContext {
110
188
  * Creates the in-process `RunLifecycle` reference implementation.
111
189
  *
112
190
  * @param input.eventLog - The durable `EventLog` port this lifecycle appends to and replays from.
191
+ * @param input.terminalRetentionMs - See {@link CreateRunLifecycleInput.terminalRetentionMs}.
192
+ * @param input.maxTerminalRuns - See {@link CreateRunLifecycleInput.maxTerminalRuns}.
113
193
  * @returns A `RunLifecycle` backed by an in-memory run registry plus the injected `EventLog`.
114
- * @complexity Per-call complexities documented on each method; the registry itself is a `Map` keyed by `runId` (O(1) lookup).
194
+ * @complexity Per-call complexities documented on each method; the registry itself is a `Map` keyed by `runId` (O(1) lookup). Memory is bounded: non-terminal runs are O(n) in concurrently-live runs, and terminal runs are capped at `maxTerminalRuns` (each additionally bounded in retention time by `terminalRetentionMs`) rather than growing for the life of the process.
115
195
  * @overallScore 100/100
116
196
  */
117
197
  export declare function createRunLifecycle(input: CreateRunLifecycleInput): RunLifecycle;
@@ -1 +1 @@
1
- {"version":3,"file":"run-lifecycle.d.ts","sourceRoot":"","sources":["../src/run-lifecycle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-lifecycle.d.ts","sourceRoot":"","sources":["../src/run-lifecycle.ts"],"names":[],"mappings":"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"}