@adonis-agora/agent 0.56.0 → 0.58.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 (100) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/providers/agent_provider.d.ts.map +1 -1
  3. package/dist/providers/agent_provider.js +27 -1
  4. package/dist/providers/agent_provider.js.map +1 -1
  5. package/dist/src/ag-ui/adapter.d.ts.map +1 -1
  6. package/dist/src/ag-ui/adapter.js +1 -2
  7. package/dist/src/ag-ui/adapter.js.map +1 -1
  8. package/dist/src/ag-ui/encoder.d.ts +7 -92
  9. package/dist/src/ag-ui/encoder.d.ts.map +1 -1
  10. package/dist/src/ag-ui/encoder.js +14 -498
  11. package/dist/src/ag-ui/encoder.js.map +1 -1
  12. package/dist/src/ag-ui/frames.d.ts +17 -0
  13. package/dist/src/ag-ui/frames.d.ts.map +1 -0
  14. package/dist/src/ag-ui/frames.js +69 -0
  15. package/dist/src/ag-ui/frames.js.map +1 -0
  16. package/dist/src/ag-ui/index.d.ts +9 -6
  17. package/dist/src/ag-ui/index.d.ts.map +1 -1
  18. package/dist/src/ag-ui/index.js +9 -6
  19. package/dist/src/ag-ui/index.js.map +1 -1
  20. package/dist/src/ag-ui/stream.d.ts +7 -23
  21. package/dist/src/ag-ui/stream.d.ts.map +1 -1
  22. package/dist/src/ag-ui/stream.js +9 -64
  23. package/dist/src/ag-ui/stream.js.map +1 -1
  24. package/dist/src/agent-deps-factory.d.ts +4 -2
  25. package/dist/src/agent-deps-factory.d.ts.map +1 -1
  26. package/dist/src/agent-deps-factory.js +17 -7
  27. package/dist/src/agent-deps-factory.js.map +1 -1
  28. package/dist/src/agent-loop.d.ts +22 -0
  29. package/dist/src/agent-loop.d.ts.map +1 -1
  30. package/dist/src/agent-loop.js +59 -4
  31. package/dist/src/agent-loop.js.map +1 -1
  32. package/dist/src/agent-service.d.ts +48 -1
  33. package/dist/src/agent-service.d.ts.map +1 -1
  34. package/dist/src/agent-service.js +78 -0
  35. package/dist/src/agent-service.js.map +1 -1
  36. package/dist/src/delegation.d.ts +72 -0
  37. package/dist/src/delegation.d.ts.map +1 -0
  38. package/dist/src/delegation.js +73 -0
  39. package/dist/src/delegation.js.map +1 -0
  40. package/dist/src/diagnostics.d.ts +2 -0
  41. package/dist/src/diagnostics.d.ts.map +1 -1
  42. package/dist/src/diagnostics.js.map +1 -1
  43. package/dist/src/durable/agent-run-workflow.d.ts +3 -0
  44. package/dist/src/durable/agent-run-workflow.d.ts.map +1 -1
  45. package/dist/src/durable/agent-run-workflow.js +89 -5
  46. package/dist/src/durable/agent-run-workflow.js.map +1 -1
  47. package/dist/src/durable/durable-agent-runner.d.ts.map +1 -1
  48. package/dist/src/durable/durable-agent-runner.js +30 -4
  49. package/dist/src/durable/durable-agent-runner.js.map +1 -1
  50. package/dist/src/index.d.ts +3 -2
  51. package/dist/src/index.d.ts.map +1 -1
  52. package/dist/src/index.js +3 -2
  53. package/dist/src/index.js.map +1 -1
  54. package/dist/src/media/media-attachment-staging.d.ts +9 -1
  55. package/dist/src/media/media-attachment-staging.d.ts.map +1 -1
  56. package/dist/src/media/media-attachment-staging.js +24 -0
  57. package/dist/src/media/media-attachment-staging.js.map +1 -1
  58. package/dist/src/runners/inline-agent-runner.d.ts +13 -0
  59. package/dist/src/runners/inline-agent-runner.d.ts.map +1 -1
  60. package/dist/src/runners/inline-agent-runner.js +130 -2
  61. package/dist/src/runners/inline-agent-runner.js.map +1 -1
  62. package/dist/src/spi/agent-store.d.ts +2 -0
  63. package/dist/src/spi/agent-store.d.ts.map +1 -1
  64. package/dist/src/spi/agent-store.js.map +1 -1
  65. package/dist/src/spi/attachment-staging.d.ts +48 -0
  66. package/dist/src/spi/attachment-staging.d.ts.map +1 -1
  67. package/dist/src/stores/lucid-schema.d.ts.map +1 -1
  68. package/dist/src/stores/lucid-schema.js +2 -0
  69. package/dist/src/stores/lucid-schema.js.map +1 -1
  70. package/dist/src/stores/lucid.d.ts +2 -1
  71. package/dist/src/stores/lucid.d.ts.map +1 -1
  72. package/dist/src/stores/lucid.js +15 -2
  73. package/dist/src/stores/lucid.js.map +1 -1
  74. package/dist/src/testing/in-memory-attachment-staging.d.ts +14 -2
  75. package/dist/src/testing/in-memory-attachment-staging.d.ts.map +1 -1
  76. package/dist/src/testing/in-memory-attachment-staging.js +25 -1
  77. package/dist/src/testing/in-memory-attachment-staging.js.map +1 -1
  78. package/dist/src/testing/in-memory-store.d.ts +4 -2
  79. package/dist/src/testing/in-memory-store.d.ts.map +1 -1
  80. package/dist/src/testing/in-memory-store.js +9 -3
  81. package/dist/src/testing/in-memory-store.js.map +1 -1
  82. package/dist/src/testing/index.d.ts +1 -1
  83. package/dist/src/testing/index.d.ts.map +1 -1
  84. package/dist/src/testing/index.js.map +1 -1
  85. package/dist/src/types.d.ts +41 -0
  86. package/dist/src/types.d.ts.map +1 -1
  87. package/package.json +4 -3
  88. package/skills/agent-personas-agents/SKILL.md +11 -1
  89. package/dist/src/ag-ui/input.d.ts +0 -72
  90. package/dist/src/ag-ui/input.d.ts.map +0 -1
  91. package/dist/src/ag-ui/input.js +0 -216
  92. package/dist/src/ag-ui/input.js.map +0 -1
  93. package/dist/src/ag-ui/interrupt-id.d.ts +0 -27
  94. package/dist/src/ag-ui/interrupt-id.d.ts.map +0 -1
  95. package/dist/src/ag-ui/interrupt-id.js +0 -42
  96. package/dist/src/ag-ui/interrupt-id.js.map +0 -1
  97. package/dist/src/ag-ui/types.d.ts +0 -202
  98. package/dist/src/ag-ui/types.d.ts.map +0 -1
  99. package/dist/src/ag-ui/types.js +0 -33
  100. package/dist/src/ag-ui/types.js.map +0 -1
@@ -1,12 +1,15 @@
1
1
  /**
2
- * AG-UI 1.0 (https://docs.ag-ui.com/spec/1.0), producer side: the encoder that projects a run's
3
- * stream onto AG-UI events, and the pieces the `POST <path>/ag-ui` route is built from — for a host
4
- * that mounts its own route instead of the provider's.
2
+ * AG-UI 1.0 (https://docs.ag-ui.com/spec/1.0), producer side: the route adapter, and the pieces it is
3
+ * built from — for a host that mounts its own route instead of the provider's.
4
+ *
5
+ * The encoder, the input readers and the interrupt-id codec are `@dudousxd/nestjs-agent-core/ag-ui`
6
+ * (one implementation for both servers), re-exported here; `AgUiEncoder` and `agUiEvents` take this
7
+ * package's `StreamFrame`s. Install `@dudousxd/nestjs-agent-core` (an optional peer, 0.35 or later)
8
+ * to use this entry.
5
9
  */
10
+ export { AG_UI_CUSTOM, AG_UI_PROTOCOL_VERSION, type AgUiContentPart, type AgUiContext, type AgUiEvent, type AgUiInterrupt, type AgUiMessage, type AgUiMetadata, type AgUiPartSource, type AgUiResumeEntry, type AgUiRunInput, type AgUiRunOutcome, type AgUiSourceFrame, type AgUiTokenUsage, decodeInterruptId, encodeInterruptId, type ForwardedOptions, type InlineMedia, type InterruptAddress, parseRunInput, planResume, type ResumeDecision, type ResumePlan, readAnswersPayload, readApprovalPayload, readContext, readForwardedProps, readUserTurn, type UserTurn, } from '@dudousxd/nestjs-agent-core/ag-ui';
6
11
  export { type AgUiAdapterOptions, agUiAdapter } from './adapter.js';
7
12
  export { AgUiEncoder, type AgUiEncoderOptions } from './encoder.js';
8
- export { type ForwardedOptions, type InlineMedia, parseRunInput, planResume, type ResumeDecision, type ResumePlan, readAnswersPayload, readApprovalPayload, readContext, readForwardedProps, readUserTurn, type UserTurn, } from './input.js';
9
- export { decodeInterruptId, encodeInterruptId, type InterruptAddress } from './interrupt-id.js';
13
+ export { agUiFrames, toAgUiFrame } from './frames.js';
10
14
  export { type AgUiStreamOptions, agUiEvents, agUiSse } from './stream.js';
11
- export * from './types.js';
12
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ag-ui/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,kBAAkB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,KAAK,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,aAAa,EACb,UAAU,EACV,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,kBAAkB,EAClB,mBAAmB,EACnB,WAAW,EACX,kBAAkB,EAClB,YAAY,EACZ,KAAK,QAAQ,GACd,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAChG,OAAO,EAAE,KAAK,iBAAiB,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC1E,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ag-ui/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EACL,YAAY,EACZ,sBAAsB,EACtB,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,aAAa,EACb,UAAU,EACV,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,kBAAkB,EAClB,mBAAmB,EACnB,WAAW,EACX,kBAAkB,EAClB,YAAY,EACZ,KAAK,QAAQ,GACd,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,KAAK,kBAAkB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,KAAK,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,KAAK,iBAAiB,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC"}
@@ -1,12 +1,15 @@
1
1
  /**
2
- * AG-UI 1.0 (https://docs.ag-ui.com/spec/1.0), producer side: the encoder that projects a run's
3
- * stream onto AG-UI events, and the pieces the `POST <path>/ag-ui` route is built from — for a host
4
- * that mounts its own route instead of the provider's.
2
+ * AG-UI 1.0 (https://docs.ag-ui.com/spec/1.0), producer side: the route adapter, and the pieces it is
3
+ * built from — for a host that mounts its own route instead of the provider's.
4
+ *
5
+ * The encoder, the input readers and the interrupt-id codec are `@dudousxd/nestjs-agent-core/ag-ui`
6
+ * (one implementation for both servers), re-exported here; `AgUiEncoder` and `agUiEvents` take this
7
+ * package's `StreamFrame`s. Install `@dudousxd/nestjs-agent-core` (an optional peer, 0.35 or later)
8
+ * to use this entry.
5
9
  */
10
+ export { AG_UI_CUSTOM, AG_UI_PROTOCOL_VERSION, decodeInterruptId, encodeInterruptId, parseRunInput, planResume, readAnswersPayload, readApprovalPayload, readContext, readForwardedProps, readUserTurn, } from '@dudousxd/nestjs-agent-core/ag-ui';
6
11
  export { agUiAdapter } from './adapter.js';
7
12
  export { AgUiEncoder } from './encoder.js';
8
- export { parseRunInput, planResume, readAnswersPayload, readApprovalPayload, readContext, readForwardedProps, readUserTurn, } from './input.js';
9
- export { decodeInterruptId, encodeInterruptId } from './interrupt-id.js';
13
+ export { agUiFrames, toAgUiFrame } from './frames.js';
10
14
  export { agUiEvents, agUiSse } from './stream.js';
11
- export * from './types.js';
12
15
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ag-ui/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAA2B,WAAW,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,EAAE,WAAW,EAA2B,MAAM,cAAc,CAAC;AACpE,OAAO,EAGL,aAAa,EACb,UAAU,EAGV,kBAAkB,EAClB,mBAAmB,EACnB,WAAW,EACX,kBAAkB,EAClB,YAAY,GAEb,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAyB,MAAM,mBAAmB,CAAC;AAChG,OAAO,EAA0B,UAAU,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC1E,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ag-ui/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EACL,YAAY,EACZ,sBAAsB,EAatB,iBAAiB,EACjB,iBAAiB,EAIjB,aAAa,EACb,UAAU,EAGV,kBAAkB,EAClB,mBAAmB,EACnB,WAAW,EACX,kBAAkB,EAClB,YAAY,GAEb,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAA2B,WAAW,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,EAAE,WAAW,EAA2B,MAAM,cAAc,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAA0B,UAAU,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC"}
@@ -1,28 +1,12 @@
1
+ import { type AgUiEvent, type AgUiStreamOptions } from '@dudousxd/nestjs-agent-core/ag-ui';
1
2
  import type { StreamFrame } from '../spi/token-stream-sink.js';
2
- import { type AgUiEncoderOptions } from './encoder.js';
3
- import type { AgUiEvent } from './types.js';
4
- export interface AgUiStreamOptions extends AgUiEncoderOptions {
5
- /**
6
- * How long the library stream may stay silent, while the run waits on a person AND has other work
7
- * announced, before the AG-UI run is reported interrupted. Default 750 ms.
8
- *
9
- * Only that mixed case needs a clock. A run whose every open tool call is waiting on someone is
10
- * reported at once; a run waiting on no one is never cut short.
11
- */
12
- quietMs?: number;
13
- /** Events to write right after `RUN_STARTED` (warnings about input that was dropped). */
14
- preamble?: AgUiEvent[];
15
- }
3
+ export { agUiSse } from '@dudousxd/nestjs-agent-core/ag-ui';
4
+ export type { AgUiStreamOptions };
16
5
  /**
17
- * One AG-UI run over a library run's stream.
18
- *
19
- * AG-UI has no mid-run channel from the consumer: a run that needs an approval or an answer does not
20
- * wait with the connection open — it ENDS, saying what it waits for, and a later run carries the
21
- * answers. The library run underneath does wait (parked, durably when the runner is durable). So this
22
- * stops reading when the run is waiting on someone and nothing else is moving, closes the AG-UI run
23
- * with the interrupt outcome, and leaves the library run parked for the resume to pick up.
6
+ * One AG-UI run over a library run's stream — the shared driver
7
+ * (`@dudousxd/nestjs-agent-core/ag-ui`) over this package's frames. It stops reading when the run is
8
+ * waiting on someone and nothing else is moving, closes the AG-UI run with the interrupt outcome,
9
+ * and leaves the library run parked for the resume to pick up.
24
10
  */
25
11
  export declare function agUiEvents(frames: AsyncIterable<StreamFrame>, options: AgUiStreamOptions): AsyncGenerator<AgUiEvent>;
26
- /** One AG-UI event as an SSE frame: a single `data:` line, LF-terminated, as the binding pins. */
27
- export declare function agUiSse(event: AgUiEvent): string;
28
12
  //# sourceMappingURL=stream.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../../src/ag-ui/stream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAe,KAAK,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,MAAM,WAAW,iBAAkB,SAAQ,kBAAkB;IAC3D;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yFAAyF;IACzF,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAC;CACxB;AAOD;;;;;;;;GAQG;AACH,wBAAuB,UAAU,CAC/B,MAAM,EAAE,aAAa,CAAC,WAAW,CAAC,EAClC,OAAO,EAAE,iBAAiB,GACzB,cAAc,CAAC,SAAS,CAAC,CAmC3B;AAkBD,kGAAkG;AAClG,wBAAgB,OAAO,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAEhD"}
1
+ {"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../../src/ag-ui/stream.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,SAAS,EACd,KAAK,iBAAiB,EAEvB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAG/D,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAC;AAC5D,YAAY,EAAE,iBAAiB,EAAE,CAAC;AAElC;;;;;GAKG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE,aAAa,CAAC,WAAW,CAAC,EAClC,OAAO,EAAE,iBAAiB,GACzB,cAAc,CAAC,SAAS,CAAC,CAE3B"}
@@ -1,68 +1,13 @@
1
- import { AgUiEncoder } from './encoder.js';
2
- const DEFAULT_QUIET_MS = 750;
3
- const GRACE_MS = 50;
1
+ import { agUiEvents as sharedAgUiEvents, } from '@dudousxd/nestjs-agent-core/ag-ui';
2
+ import { agUiFrames } from './frames.js';
3
+ export { agUiSse } from '@dudousxd/nestjs-agent-core/ag-ui';
4
4
  /**
5
- * One AG-UI run over a library run's stream.
6
- *
7
- * AG-UI has no mid-run channel from the consumer: a run that needs an approval or an answer does not
8
- * wait with the connection open — it ENDS, saying what it waits for, and a later run carries the
9
- * answers. The library run underneath does wait (parked, durably when the runner is durable). So this
10
- * stops reading when the run is waiting on someone and nothing else is moving, closes the AG-UI run
11
- * with the interrupt outcome, and leaves the library run parked for the resume to pick up.
5
+ * One AG-UI run over a library run's stream — the shared driver
6
+ * (`@dudousxd/nestjs-agent-core/ag-ui`) over this package's frames. It stops reading when the run is
7
+ * waiting on someone and nothing else is moving, closes the AG-UI run with the interrupt outcome,
8
+ * and leaves the library run parked for the resume to pick up.
12
9
  */
13
- export async function* agUiEvents(frames, options) {
14
- const encoder = new AgUiEncoder(options);
15
- const quietMs = options.quietMs ?? DEFAULT_QUIET_MS;
16
- yield* encoder.start();
17
- yield* options.preamble ?? [];
18
- const iterator = frames[Symbol.asyncIterator]();
19
- let upcoming;
20
- let ended = false;
21
- try {
22
- for (;;) {
23
- upcoming ??= iterator.next();
24
- // Frames buffered before this reader attached are replayed without a pause between them, so
25
- // "is it waiting?" is only asked of a stream that has caught up with what it already holds.
26
- const caughtUp = encoder.consumed >= (options.skip ?? 0);
27
- let next;
28
- if (caughtUp && encoder.waiting) {
29
- // Nothing else in flight: only a frame already on its way (a sink that reads in batches)
30
- // can still arrive, so a short grace is enough. Otherwise wait out the quiet window.
31
- next = await raceQuiet(upcoming, encoder.busy ? quietMs : Math.min(quietMs, GRACE_MS));
32
- }
33
- else {
34
- next = await upcoming;
35
- }
36
- if (next === 'quiet')
37
- break;
38
- upcoming = undefined;
39
- if (next.done === true) {
40
- ended = true;
41
- break;
42
- }
43
- yield* encoder.encode(next.value);
44
- }
45
- }
46
- finally {
47
- // Stop following the library stream; the run it carries is left exactly as it is.
48
- void iterator.return?.();
49
- }
50
- yield* encoder.finish(ended);
51
- }
52
- function raceQuiet(upcoming, ms) {
53
- return new Promise((resolve, reject) => {
54
- const timer = setTimeout(() => resolve('quiet'), ms);
55
- upcoming.then((result) => {
56
- clearTimeout(timer);
57
- resolve(result);
58
- }, (error) => {
59
- clearTimeout(timer);
60
- reject(error);
61
- });
62
- });
63
- }
64
- /** One AG-UI event as an SSE frame: a single `data:` line, LF-terminated, as the binding pins. */
65
- export function agUiSse(event) {
66
- return `data: ${JSON.stringify(event)}\n\n`;
10
+ export function agUiEvents(frames, options) {
11
+ return sharedAgUiEvents(agUiFrames(frames), options);
67
12
  }
68
13
  //# sourceMappingURL=stream.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stream.js","sourceRoot":"","sources":["../../../src/ag-ui/stream.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAA2B,MAAM,cAAc,CAAC;AAgBpE,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAC7B,MAAM,QAAQ,GAAG,EAAE,CAAC;AAIpB;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,UAAU,CAC/B,MAAkC,EAClC,OAA0B;IAE1B,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,gBAAgB,CAAC;IACpD,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACvB,KAAK,CAAC,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;IAC9B,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;IAChD,IAAI,QAA0D,CAAC;IAC/D,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,IAAI,CAAC;QACH,SAAS,CAAC;YACR,QAAQ,KAAK,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC7B,4FAA4F;YAC5F,4FAA4F;YAC5F,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;YACzD,IAAI,IAAU,CAAC;YACf,IAAI,QAAQ,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBAChC,yFAAyF;gBACzF,qFAAqF;gBACrF,IAAI,GAAG,MAAM,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;YACzF,CAAC;iBAAM,CAAC;gBACN,IAAI,GAAG,MAAM,QAAQ,CAAC;YACxB,CAAC;YACD,IAAI,IAAI,KAAK,OAAO;gBAAE,MAAM;YAC5B,QAAQ,GAAG,SAAS,CAAC;YACrB,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;gBACvB,KAAK,GAAG,IAAI,CAAC;gBACb,MAAM;YACR,CAAC;YACD,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;YAAS,CAAC;QACT,kFAAkF;QAClF,KAAK,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;IAC3B,CAAC;IACD,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,SAAS,CAAC,QAA8C,EAAE,EAAU;IAC3E,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC3C,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QACrD,QAAQ,CAAC,IAAI,CACX,CAAC,MAAM,EAAE,EAAE;YACT,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,OAAO,CAAC,MAAM,CAAC,CAAC;QAClB,CAAC,EACD,CAAC,KAAc,EAAE,EAAE;YACjB,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM,CAAC,KAAK,CAAC,CAAC;QAChB,CAAC,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,kGAAkG;AAClG,MAAM,UAAU,OAAO,CAAC,KAAgB;IACtC,OAAO,SAAS,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC;AAC9C,CAAC"}
1
+ {"version":3,"file":"stream.js","sourceRoot":"","sources":["../../../src/ag-ui/stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,UAAU,IAAI,gBAAgB,GAC/B,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAC;AAG5D;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CACxB,MAAkC,EAClC,OAA0B;IAE1B,OAAO,gBAAgB,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;AACvD,CAAC"}
@@ -15,8 +15,10 @@ import type { TokenStreamSink } from './spi/token-stream-sink.js';
15
15
  import type { ToolRegistry } from './tool-registry.js';
16
16
  import type { ToolTransientRetrySetting } from './tool-retry.js';
17
17
  import type { Actor, AgentDefinition, DelegateEdge } from './types.js';
18
- /** The synthesized `agent`-kind tool name an orchestrator uses to delegate to `target`. */
19
- export declare function delegateToolName(target: string): string;
18
+ /** The synthesized `agent`-kind tool name for an edge to `target`: `ask_<target>`, or `start_<target>` for a detached one. */
19
+ export declare function delegateToolName(target: string, options?: {
20
+ detached?: boolean;
21
+ }): string;
20
22
  /** Normalize a `delegatesTo` entry: a bare string is the edge with no authorization annotation. */
21
23
  export declare function normalizeDelegateEdge(edge: string | DelegateEdge): DelegateEdge;
22
24
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"agent-deps-factory.d.ts","sourceRoot":"","sources":["../../src/agent-deps-factory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-deps-factory.d.ts","sourceRoot":"","sources":["../../src/agent-deps-factory.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
- /** The synthesized `agent`-kind tool name an orchestrator uses to delegate to `target`. */
2
- export function delegateToolName(target) {
3
- return `ask_${target.replace(/[^a-zA-Z0-9]+/g, '_')}`;
1
+ /** The synthesized `agent`-kind tool name for an edge to `target`: `ask_<target>`, or `start_<target>` for a detached one. */
2
+ export function delegateToolName(target, options = {}) {
3
+ const slug = target.replace(/[^a-zA-Z0-9]+/g, '_');
4
+ return options.detached === true ? `start_${slug}` : `ask_${slug}`;
4
5
  }
5
6
  /**
6
7
  * The `{ task: string }` input a delegate (`agent`-kind) tool takes, as a zero-dependency Standard
@@ -75,8 +76,8 @@ export function registerDelegateTools(registry, agents) {
75
76
  let count = 0;
76
77
  for (const definition of agents.list()) {
77
78
  for (const edge of definition.delegatesTo ?? []) {
78
- const { agent: target, roles, ability } = normalizeDelegateEdge(edge);
79
- const name = delegateToolName(target);
79
+ const { agent: target, roles, ability, detached } = normalizeDelegateEdge(edge);
80
+ const name = delegateToolName(target, { detached: detached === true });
80
81
  if (registry.has(name))
81
82
  continue;
82
83
  const targetDefinition = agents.get(target);
@@ -88,7 +89,13 @@ export function registerDelegateTools(registry, agents) {
88
89
  name,
89
90
  kind: 'agent',
90
91
  targetAgent: target,
91
- description: `Delegate a task to the "${target}" agent and get its answer.${blurb}`,
92
+ // A detached edge's description is the model's only warning that this call hands back a
93
+ // receipt: a tool advertised as returning an answer, which then returns something else, is
94
+ // a model that reports an answer it was never given.
95
+ description: detached === true
96
+ ? `Start the "${target}" agent working on a task in the BACKGROUND. Returns immediately with a receipt, NOT an answer — the answer is delivered to this conversation as a separate message later. Use it for work the user does not need to sit and wait for.${blurb}`
97
+ : `Delegate a task to the "${target}" agent and get its answer.${blurb}`,
98
+ ...(detached === true ? { detached: true } : {}),
92
99
  inputSchema: delegateInputSchema,
93
100
  ...(roles !== undefined ? { roles } : {}),
94
101
  ...(ability !== undefined ? { ability } : {}),
@@ -121,7 +128,10 @@ export class AgentDepsFactory {
121
128
  if (definition === undefined) {
122
129
  return undefined;
123
130
  }
124
- const delegated = (definition.delegatesTo ?? []).map((edge) => delegateToolName(normalizeDelegateEdge(edge).agent));
131
+ const delegated = (definition.delegatesTo ?? []).map((edge) => {
132
+ const { agent, detached } = normalizeDelegateEdge(edge);
133
+ return delegateToolName(agent, { detached: detached === true });
134
+ });
125
135
  if (definition.tools === undefined && delegated.length === 0) {
126
136
  return undefined; // no restriction
127
137
  }
@@ -1 +1 @@
1
- {"version":3,"file":"agent-deps-factory.js","sourceRoot":"","sources":["../../src/agent-deps-factory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-deps-factory.js","sourceRoot":"","sources":["../../src/agent-deps-factory.ts"],"names":[],"mappings":"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"}
@@ -266,6 +266,28 @@ export interface AgentLoopHooks {
266
266
  runAgent?(agentName: string, task: string): Promise<{
267
267
  text: string;
268
268
  }>;
269
+ /**
270
+ * Start another named agent and return its run id WITHOUT waiting for it, so the calling turn can
271
+ * finish while the delegate is still working. The durable runner maps this to `ctx.startChild` (a
272
+ * `spawn:<id>` position, no suspend — unlike the `ctx.child` behind {@link runAgent}); the inline
273
+ * runner to a nested loop nobody awaits.
274
+ *
275
+ * `toolCallId` is the delegation's own call, which the started run carries as its delivery address
276
+ * (`AgentRunInput.deliverTo`): it posts its answer back into the calling thread against that row.
277
+ *
278
+ * Called from the loop BODY, never from inside a {@link step}: it takes a position of its own.
279
+ *
280
+ * Absent → a delegation the journal declares detached is AWAITED instead. The loop writes the same
281
+ * checkpoint names either way, so a runner that cannot detach still answers the user; only the
282
+ * runner's own positions differ, and a given runner always makes the same choice for the same call.
283
+ */
284
+ startAgent?(args: {
285
+ agentName: string;
286
+ task: string;
287
+ toolCallId: string;
288
+ }): Promise<{
289
+ runId: string;
290
+ }>;
269
291
  /**
270
292
  * Checkpoint wrapper. Inline = call fn directly; durable = ctx.step(name, fn).
271
293
  * EVERY side-effect and control-flow read goes through this so durable replay returns
@@ -1 +1 @@
1
- {"version":3,"file":"agent-loop.d.ts","sourceRoot":"","sources":["../../src/agent-loop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-loop.d.ts","sourceRoot":"","sources":["../../src/agent-loop.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { danglingToolCallIds, settleDanglingToolCalls } from './dangling-tool-calls.js';
2
+ import { detachedDelivered, detachedStarted, } from './delegation.js';
2
3
  import { publishAgentDelegated, publishAgentMessage, publishAgentRetrieved, publishAgentRunFinished, publishAgentRunStarted, publishAgentToolCall, publishAgentToolRetry, spannedAgent, } from './diagnostics.js';
3
4
  import { ASK_TOOL_NAME, askInputSchema, askToolDefinition, DEFAULT_INTAKE_PREAMBLE, isHumanDecision, normalizeElicitationReply, settleElicitation, } from './elicitation.js';
4
5
  import { buildMemoryBlock, offerMemories, REMEMBER_TOOL_NAME, rememberInputSchema, rememberToolDefinition, writeMemory, } from './memory.js';
@@ -200,7 +201,15 @@ async function resolveDelegation(deps, input, call, spec) {
200
201
  if (refusal !== null) {
201
202
  return { error: refusal };
202
203
  }
203
- return { targetAgent, task: extractTask(validation.value) };
204
+ // Settled HERE, inside the call's `persist:toolcall` checkpoint, so a replay reads the branch
205
+ // back instead of asking a registry that may have changed while the run was parked. Absent unless
206
+ // declared: a deployment with no detached edge writes the bytes this checkpoint always held, and
207
+ // a call journaled before the flag existed replays as the awaited delegation it was.
208
+ return {
209
+ targetAgent,
210
+ task: extractTask(validation.value),
211
+ ...(spec.detached === true ? { detached: true } : {}),
212
+ };
204
213
  }
205
214
  catch (error) {
206
215
  return { error: error instanceof Error ? error.message : String(error) };
@@ -871,14 +880,29 @@ async function delegateToolCall(turn, claimed) {
871
880
  return { id: call.id, name: call.name, output: null, error: delegation.error };
872
881
  }
873
882
  const { targetAgent, task } = delegation;
883
+ // The journal decides (see `resolveDelegation`); the runner only says whether it CAN detach.
884
+ const start = delegation.detached === true ? hooks.startAgent : undefined;
874
885
  publishAgentDelegated({
875
886
  runId: hooks.runId,
876
887
  toAgent: targetAgent,
877
888
  ...(input.agentName !== undefined ? { fromAgent: input.agentName } : {}),
889
+ ...(start !== undefined ? { detached: true } : {}),
878
890
  });
879
- const sub = hooks.runAgent
880
- ? await hooks.runAgent(targetAgent, task)
881
- : { text: `(no multi-agent support wired; cannot reach "${targetAgent}")` };
891
+ // Both branches write the same checkpoint, under the same name, at the same position — what differs
892
+ // is the RUNNER's own position before it (`spawn:` for a started child, `signal:child:` for an
893
+ // awaited one). Called from the loop body, never inside a step, so the start's position is the
894
+ // workflow's own and a replay asks for it in the same place.
895
+ let sub;
896
+ if (start !== undefined) {
897
+ const started = await start({ agentName: targetAgent, task, toolCallId: call.id });
898
+ sub = detachedStarted({ agent: targetAgent, runId: started.runId });
899
+ }
900
+ else if (hooks.runAgent) {
901
+ sub = await hooks.runAgent(targetAgent, task);
902
+ }
903
+ else {
904
+ sub = { text: `(no multi-agent support wired; cannot reach "${targetAgent}")` };
905
+ }
882
906
  await hooks.step(`persist:toolexec:${call.id}`, () => deps.store.updateToolCall({ toolCallId: call.id, status: 'executed', output: sub }));
883
907
  return { id: call.id, name: call.name, output: sub };
884
908
  }
@@ -2146,6 +2170,37 @@ export async function runAgentLoop(boundDeps, input, hooks) {
2146
2170
  await writer.write({ t: 'event', event: { kind: 'title', title } });
2147
2171
  });
2148
2172
  }
2173
+ const delivery = input.deliverTo;
2174
+ if (delivery !== undefined) {
2175
+ // A detached run's answer has nowhere to go but a message of its own: the turn that delegated it
2176
+ // ended without it, so there is no tool result left to fill and no live stream to write into.
2177
+ // Stamped with THIS run and agent, which is how a reader tells "the research agent finished" from
2178
+ // the assistant's next reply.
2179
+ //
2180
+ // The position exists only for a run carrying a delivery address, and only a detached
2181
+ // delegation's own child run carries one — so every other run's sequence is untouched, and no
2182
+ // run journaled before detached delegation existed can reach it.
2183
+ await hooks.step('deliver:detached', async () => {
2184
+ if ((await deps.store.getThread(delivery.threadId)) === null) {
2185
+ // The conversation was deleted while this ran. Delivering into it would resurrect nothing a
2186
+ // reader kept, and the tool-call row it would settle went with it.
2187
+ return;
2188
+ }
2189
+ const agent = input.agentName ?? 'default';
2190
+ await deps.store.appendMessage({
2191
+ threadId: delivery.threadId,
2192
+ role: 'assistant',
2193
+ content: lastText,
2194
+ agentName: agent,
2195
+ runId: hooks.runId,
2196
+ });
2197
+ await deps.store.updateToolCall({
2198
+ toolCallId: delivery.toolCallId,
2199
+ status: 'executed',
2200
+ output: detachedDelivered({ agent, runId: hooks.runId, text: lastText }),
2201
+ });
2202
+ });
2203
+ }
2149
2204
  // Settle the run `completed` with its rollup. Normal completion only — the loop never records a
2150
2205
  // failure (it doesn't catch its own crash; that's the runner's job). A checkpointed step so a
2151
2206
  // resumed durable replay settles the ONE row exactly once, and `recordRunEnd` is first-terminal so