@animalabs/agent-framework 0.5.6 → 0.6.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 (177) hide show
  1. package/dist/src/agent.d.ts +20 -4
  2. package/dist/src/agent.d.ts.map +1 -1
  3. package/dist/src/agent.js +45 -14
  4. package/dist/src/agent.js.map +1 -1
  5. package/dist/src/framework.d.ts +220 -5
  6. package/dist/src/framework.d.ts.map +1 -1
  7. package/dist/src/framework.js +1489 -69
  8. package/dist/src/framework.js.map +1 -1
  9. package/dist/src/gate/event-gate.d.ts +71 -1
  10. package/dist/src/gate/event-gate.d.ts.map +1 -1
  11. package/dist/src/gate/event-gate.js +292 -9
  12. package/dist/src/gate/event-gate.js.map +1 -1
  13. package/dist/src/gate/gate-script-worker.d.ts +2 -0
  14. package/dist/src/gate/gate-script-worker.d.ts.map +1 -0
  15. package/dist/src/gate/gate-script-worker.js +69 -0
  16. package/dist/src/gate/gate-script-worker.js.map +1 -0
  17. package/dist/src/gate/gate-script.d.ts +44 -0
  18. package/dist/src/gate/gate-script.d.ts.map +1 -0
  19. package/dist/src/gate/gate-script.js +164 -0
  20. package/dist/src/gate/gate-script.js.map +1 -0
  21. package/dist/src/gate/types.d.ts +35 -3
  22. package/dist/src/gate/types.d.ts.map +1 -1
  23. package/dist/src/index.d.ts +2 -0
  24. package/dist/src/index.d.ts.map +1 -1
  25. package/dist/src/index.js +2 -0
  26. package/dist/src/index.js.map +1 -1
  27. package/dist/src/mcpl/channel-registry.d.ts +93 -1
  28. package/dist/src/mcpl/channel-registry.d.ts.map +1 -1
  29. package/dist/src/mcpl/channel-registry.js +260 -6
  30. package/dist/src/mcpl/channel-registry.js.map +1 -1
  31. package/dist/src/mcpl/checkpoint-manager.d.ts +7 -0
  32. package/dist/src/mcpl/checkpoint-manager.d.ts.map +1 -1
  33. package/dist/src/mcpl/checkpoint-manager.js +15 -0
  34. package/dist/src/mcpl/checkpoint-manager.js.map +1 -1
  35. package/dist/src/mcpl/conversation-router.d.ts +161 -0
  36. package/dist/src/mcpl/conversation-router.d.ts.map +1 -0
  37. package/dist/src/mcpl/conversation-router.js +179 -0
  38. package/dist/src/mcpl/conversation-router.js.map +1 -0
  39. package/dist/src/mcpl/feature-set-manager.d.ts.map +1 -1
  40. package/dist/src/mcpl/feature-set-manager.js +10 -1
  41. package/dist/src/mcpl/feature-set-manager.js.map +1 -1
  42. package/dist/src/mcpl/index.d.ts +2 -0
  43. package/dist/src/mcpl/index.d.ts.map +1 -1
  44. package/dist/src/mcpl/index.js +2 -0
  45. package/dist/src/mcpl/index.js.map +1 -1
  46. package/dist/src/mcpl/push-handler.d.ts.map +1 -1
  47. package/dist/src/mcpl/push-handler.js +1 -0
  48. package/dist/src/mcpl/push-handler.js.map +1 -1
  49. package/dist/src/mcpl/server-connection.d.ts +35 -30
  50. package/dist/src/mcpl/server-connection.d.ts.map +1 -1
  51. package/dist/src/mcpl/server-connection.js +149 -206
  52. package/dist/src/mcpl/server-connection.js.map +1 -1
  53. package/dist/src/mcpl/transport.d.ts +98 -0
  54. package/dist/src/mcpl/transport.d.ts.map +1 -0
  55. package/dist/src/mcpl/transport.js +281 -0
  56. package/dist/src/mcpl/transport.js.map +1 -0
  57. package/dist/src/mcpl/types.d.ts +42 -2
  58. package/dist/src/mcpl/types.d.ts.map +1 -1
  59. package/dist/src/mcpl/types.js.map +1 -1
  60. package/dist/src/module-registry.d.ts +5 -1
  61. package/dist/src/module-registry.d.ts.map +1 -1
  62. package/dist/src/module-registry.js +16 -2
  63. package/dist/src/module-registry.js.map +1 -1
  64. package/dist/src/modules/discord/index.d.ts +10 -0
  65. package/dist/src/modules/discord/index.d.ts.map +1 -1
  66. package/dist/src/modules/discord/index.js +83 -0
  67. package/dist/src/modules/discord/index.js.map +1 -1
  68. package/dist/src/prose-segments.d.ts +18 -0
  69. package/dist/src/prose-segments.d.ts.map +1 -0
  70. package/dist/src/prose-segments.js +39 -0
  71. package/dist/src/prose-segments.js.map +1 -0
  72. package/dist/src/runtime/liveness-watchdog-worker.d.ts +2 -0
  73. package/dist/src/runtime/liveness-watchdog-worker.d.ts.map +1 -0
  74. package/dist/src/runtime/liveness-watchdog-worker.js +57 -0
  75. package/dist/src/runtime/liveness-watchdog-worker.js.map +1 -0
  76. package/dist/src/runtime/liveness-watchdog.d.ts +36 -0
  77. package/dist/src/runtime/liveness-watchdog.d.ts.map +1 -0
  78. package/dist/src/runtime/liveness-watchdog.js +106 -0
  79. package/dist/src/runtime/liveness-watchdog.js.map +1 -0
  80. package/dist/src/tool-result-history.d.ts +17 -0
  81. package/dist/src/tool-result-history.d.ts.map +1 -0
  82. package/dist/src/tool-result-history.js +60 -0
  83. package/dist/src/tool-result-history.js.map +1 -0
  84. package/dist/src/types/agent.d.ts +21 -0
  85. package/dist/src/types/agent.d.ts.map +1 -1
  86. package/dist/src/types/framework.d.ts +22 -0
  87. package/dist/src/types/framework.d.ts.map +1 -1
  88. package/dist/src/types/module.d.ts +27 -0
  89. package/dist/src/types/module.d.ts.map +1 -1
  90. package/dist/src/types/trace.d.ts +28 -0
  91. package/dist/src/types/trace.d.ts.map +1 -1
  92. package/dist/test/channel-registry-routing.test.d.ts +2 -0
  93. package/dist/test/channel-registry-routing.test.d.ts.map +1 -0
  94. package/dist/test/channel-registry-routing.test.js +182 -0
  95. package/dist/test/channel-registry-routing.test.js.map +1 -0
  96. package/dist/test/checkpoint-attribution.test.d.ts +2 -0
  97. package/dist/test/checkpoint-attribution.test.d.ts.map +1 -0
  98. package/dist/test/checkpoint-attribution.test.js +40 -0
  99. package/dist/test/checkpoint-attribution.test.js.map +1 -0
  100. package/dist/test/conversation-router.test.d.ts +2 -0
  101. package/dist/test/conversation-router.test.d.ts.map +1 -0
  102. package/dist/test/conversation-router.test.js +160 -0
  103. package/dist/test/conversation-router.test.js.map +1 -0
  104. package/dist/test/conversation-routing.test.d.ts +7 -0
  105. package/dist/test/conversation-routing.test.d.ts.map +1 -0
  106. package/dist/test/conversation-routing.test.js +203 -0
  107. package/dist/test/conversation-routing.test.js.map +1 -0
  108. package/dist/test/event-gate-policy-mutation.test.d.ts +2 -0
  109. package/dist/test/event-gate-policy-mutation.test.d.ts.map +1 -0
  110. package/dist/test/event-gate-policy-mutation.test.js +137 -0
  111. package/dist/test/event-gate-policy-mutation.test.js.map +1 -0
  112. package/dist/test/event-gate-script.test.d.ts +2 -0
  113. package/dist/test/event-gate-script.test.d.ts.map +1 -0
  114. package/dist/test/event-gate-script.test.js +95 -0
  115. package/dist/test/event-gate-script.test.js.map +1 -0
  116. package/dist/test/event-gate-tags.test.d.ts +2 -0
  117. package/dist/test/event-gate-tags.test.d.ts.map +1 -0
  118. package/dist/test/event-gate-tags.test.js +76 -0
  119. package/dist/test/event-gate-tags.test.js.map +1 -0
  120. package/dist/test/framework.test.js +73 -1
  121. package/dist/test/framework.test.js.map +1 -1
  122. package/dist/test/helpers/mock-membrane.d.ts +41 -0
  123. package/dist/test/helpers/mock-membrane.d.ts.map +1 -0
  124. package/dist/test/helpers/mock-membrane.js +161 -0
  125. package/dist/test/helpers/mock-membrane.js.map +1 -0
  126. package/dist/test/inference-failure-observability.test.d.ts +2 -0
  127. package/dist/test/inference-failure-observability.test.d.ts.map +1 -0
  128. package/dist/test/inference-failure-observability.test.js +75 -0
  129. package/dist/test/inference-failure-observability.test.js.map +1 -0
  130. package/dist/test/liveness-watchdog.test.d.ts +2 -0
  131. package/dist/test/liveness-watchdog.test.d.ts.map +1 -0
  132. package/dist/test/liveness-watchdog.test.js +78 -0
  133. package/dist/test/liveness-watchdog.test.js.map +1 -0
  134. package/dist/test/mcpl-ws-transport.test.d.ts +2 -0
  135. package/dist/test/mcpl-ws-transport.test.d.ts.map +1 -0
  136. package/dist/test/mcpl-ws-transport.test.js +155 -0
  137. package/dist/test/mcpl-ws-transport.test.js.map +1 -0
  138. package/dist/test/prose-segments.test.d.ts +2 -0
  139. package/dist/test/prose-segments.test.d.ts.map +1 -0
  140. package/dist/test/prose-segments.test.js +52 -0
  141. package/dist/test/prose-segments.test.js.map +1 -0
  142. package/dist/test/tool-result-history.test.d.ts +7 -0
  143. package/dist/test/tool-result-history.test.d.ts.map +1 -0
  144. package/dist/test/tool-result-history.test.js +77 -0
  145. package/dist/test/tool-result-history.test.js.map +1 -0
  146. package/dist/test/trunk-channel-routing.test.d.ts +19 -0
  147. package/dist/test/trunk-channel-routing.test.d.ts.map +1 -0
  148. package/dist/test/trunk-channel-routing.test.js +175 -0
  149. package/dist/test/trunk-channel-routing.test.js.map +1 -0
  150. package/dist/tsconfig.tsbuildinfo +1 -1
  151. package/package.json +3 -3
  152. package/src/agent.ts +53 -18
  153. package/src/framework.ts +1685 -71
  154. package/src/gate/event-gate.ts +297 -9
  155. package/src/gate/gate-script-worker.ts +73 -0
  156. package/src/gate/gate-script.ts +180 -0
  157. package/src/gate/types.ts +36 -3
  158. package/src/index.ts +12 -0
  159. package/src/mcpl/channel-registry.ts +331 -6
  160. package/src/mcpl/checkpoint-manager.ts +16 -0
  161. package/src/mcpl/conversation-router.ts +284 -0
  162. package/src/mcpl/feature-set-manager.ts +14 -1
  163. package/src/mcpl/index.ts +12 -0
  164. package/src/mcpl/push-handler.ts +1 -0
  165. package/src/mcpl/server-connection.ts +157 -224
  166. package/src/mcpl/transport.ts +307 -0
  167. package/src/mcpl/types.ts +49 -2
  168. package/src/module-registry.ts +25 -2
  169. package/src/modules/discord/index.ts +93 -0
  170. package/src/prose-segments.ts +42 -0
  171. package/src/runtime/liveness-watchdog-worker.ts +66 -0
  172. package/src/runtime/liveness-watchdog.ts +122 -0
  173. package/src/tool-result-history.ts +57 -0
  174. package/src/types/agent.ts +21 -0
  175. package/src/types/framework.ts +24 -0
  176. package/src/types/module.ts +29 -0
  177. package/src/types/trace.ts +36 -0
@@ -0,0 +1,98 @@
1
+ /**
2
+ * McplTransport — the byte-level seam under McplServerConnection.
3
+ *
4
+ * An MCPL connection is newline-delimited JSON-RPC over a duplex stream. The
5
+ * only things the connection needs from its underlying transport are: write a
6
+ * line, receive lines, surface diagnostics/errors, and know when it closed. By
7
+ * abstracting exactly that, the handshake, message routing, and every send path
8
+ * stay transport-agnostic and run IDENTICALLY over a spawned stdio child or a
9
+ * WebSocket — which is the whole point of network MCPL.
10
+ *
11
+ * Two implementations:
12
+ * - StdioTransport — spawns `config.command` and speaks over stdin/stdout;
13
+ * child stderr is surfaced as 'stderr' lines.
14
+ * - WebSocketTransport — dials `config.url` (ws:// or wss://) with the `ws`
15
+ * library, appending `?token=` when `config.token` is
16
+ * set; each WS text frame is one JSON-RPC line.
17
+ */
18
+ import { EventEmitter } from 'node:events';
19
+ import type { McplServerConfig } from './types.js';
20
+ /** Why/how a transport closed. `code`/`signal` are populated for stdio child
21
+ * exits; `reason` carries a WebSocket close reason or an error message. */
22
+ export interface TransportCloseInfo {
23
+ code?: number | null;
24
+ signal?: NodeJS.Signals | null;
25
+ reason?: string;
26
+ }
27
+ /**
28
+ * A line-oriented duplex transport to an MCPL server.
29
+ *
30
+ * Events:
31
+ * - `'line'` `(line: string)` one inbound NDJSON line (no newline)
32
+ * - `'stderr'` `(line: string)` diagnostic line (stdio child stderr; never WS)
33
+ * - `'error'` `(err: Error)` transport-level error
34
+ * - `'close'` `(info: TransportCloseInfo)` transport closed (once)
35
+ *
36
+ * Inbound `'line'`/`'stderr'` events are buffered until the first matching
37
+ * listener attaches (and re-buffered whenever there are none), so no message is
38
+ * lost across the handshake→routing handoff regardless of attach timing.
39
+ */
40
+ export declare abstract class McplTransport extends EventEmitter {
41
+ abstract readonly kind: 'stdio' | 'websocket';
42
+ private _closed;
43
+ private lineBuffer;
44
+ private stderrBuffer;
45
+ protected constructor();
46
+ get closed(): boolean;
47
+ /** Deliver an inbound line, buffering it if nobody is listening yet. */
48
+ protected pushLine(line: string): void;
49
+ /** Deliver a diagnostic line, buffering it if nobody is listening yet. */
50
+ protected pushStderr(line: string): void;
51
+ /** Emit 'close' exactly once. */
52
+ protected markClosed(info: TransportCloseInfo): void;
53
+ /** Write one JSON-RPC message as an NDJSON line. */
54
+ abstract writeLine(json: string): void;
55
+ /** Close the transport and release resources. Resolves once fully closed. */
56
+ abstract close(): Promise<void>;
57
+ }
58
+ export declare class StdioTransport extends McplTransport {
59
+ private readonly child;
60
+ private readonly rl;
61
+ readonly kind: "stdio";
62
+ private constructor();
63
+ /**
64
+ * Spawn `config.command` and return a ready stdio transport. Rejects if the
65
+ * command is missing (a config bug) or the process fails to spawn.
66
+ */
67
+ static spawn(config: McplServerConfig): StdioTransport;
68
+ writeLine(json: string): void;
69
+ close(): Promise<void>;
70
+ }
71
+ export declare class WebSocketTransport extends McplTransport {
72
+ private readonly ws;
73
+ readonly kind: "websocket";
74
+ private constructor();
75
+ /**
76
+ * Dial `config.url` and resolve once the socket is OPEN. Appends `?token=`
77
+ * when `config.token` is set. Rejects on connect error / timeout (and tears
78
+ * the socket down) so a failed dial never leaks an open handle.
79
+ */
80
+ static open(config: McplServerConfig): Promise<WebSocketTransport>;
81
+ writeLine(json: string): void;
82
+ close(): Promise<void>;
83
+ }
84
+ /**
85
+ * Build the dial URL: validate it's a ws(s):// URL and append the auth token as
86
+ * a `token` query param when provided (preserving any existing query).
87
+ */
88
+ export declare function buildWebSocketUrl(config: McplServerConfig): string;
89
+ /** True when the config selects the WebSocket transport (explicit `transport`,
90
+ * or a `url` with no `command`). */
91
+ export declare function isWebSocketTransport(config: McplServerConfig): boolean;
92
+ /**
93
+ * Open the transport selected by `config` (WebSocket when `transport` is
94
+ * 'websocket' or a bare `url` is given; stdio otherwise). The returned transport
95
+ * is connected at the byte level but has NOT performed the MCPL handshake.
96
+ */
97
+ export declare function openTransport(config: McplServerConfig): Promise<McplTransport>;
98
+ //# sourceMappingURL=transport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../src/mcpl/transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD;4EAC4E;AAC5E,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;GAYG;AACH,8BAAsB,aAAc,SAAQ,YAAY;IACtD,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,WAAW,CAAC;IAE9C,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,UAAU,CAAgB;IAClC,OAAO,CAAC,YAAY,CAAgB;IAEpC,SAAS;IAgBT,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,wEAAwE;IACxE,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKtC,0EAA0E;IAC1E,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKxC,iCAAiC;IACjC,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,kBAAkB,GAAG,IAAI;IAMpD,oDAAoD;IACpD,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAEtC,6EAA6E;IAC7E,QAAQ,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAChC;AAMD,qBAAa,cAAe,SAAQ,aAAa;IAI7C,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,EAAE;IAJrB,QAAQ,CAAC,IAAI,EAAG,OAAO,CAAU;IAEjC,OAAO;IAuBP;;;OAGG;IACH,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,gBAAgB,GAAG,cAAc;IActD,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKvB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAc7B;AASD,qBAAa,kBAAmB,SAAQ,aAAa;IAG/B,OAAO,CAAC,QAAQ,CAAC,EAAE;IAFvC,QAAQ,CAAC,IAAI,EAAG,WAAW,CAAU;IAErC,OAAO;IAmBP;;;;OAIG;IACH,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAiClE,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAMvB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAgB7B;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAmBlE;AAMD;qCACqC;AACrC,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAItE;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC,CAKpF"}
@@ -0,0 +1,281 @@
1
+ /**
2
+ * McplTransport — the byte-level seam under McplServerConnection.
3
+ *
4
+ * An MCPL connection is newline-delimited JSON-RPC over a duplex stream. The
5
+ * only things the connection needs from its underlying transport are: write a
6
+ * line, receive lines, surface diagnostics/errors, and know when it closed. By
7
+ * abstracting exactly that, the handshake, message routing, and every send path
8
+ * stay transport-agnostic and run IDENTICALLY over a spawned stdio child or a
9
+ * WebSocket — which is the whole point of network MCPL.
10
+ *
11
+ * Two implementations:
12
+ * - StdioTransport — spawns `config.command` and speaks over stdin/stdout;
13
+ * child stderr is surfaced as 'stderr' lines.
14
+ * - WebSocketTransport — dials `config.url` (ws:// or wss://) with the `ws`
15
+ * library, appending `?token=` when `config.token` is
16
+ * set; each WS text frame is one JSON-RPC line.
17
+ */
18
+ import { spawn } from 'node:child_process';
19
+ import { createInterface } from 'node:readline';
20
+ import { EventEmitter } from 'node:events';
21
+ import WebSocket from 'ws';
22
+ /**
23
+ * A line-oriented duplex transport to an MCPL server.
24
+ *
25
+ * Events:
26
+ * - `'line'` `(line: string)` one inbound NDJSON line (no newline)
27
+ * - `'stderr'` `(line: string)` diagnostic line (stdio child stderr; never WS)
28
+ * - `'error'` `(err: Error)` transport-level error
29
+ * - `'close'` `(info: TransportCloseInfo)` transport closed (once)
30
+ *
31
+ * Inbound `'line'`/`'stderr'` events are buffered until the first matching
32
+ * listener attaches (and re-buffered whenever there are none), so no message is
33
+ * lost across the handshake→routing handoff regardless of attach timing.
34
+ */
35
+ export class McplTransport extends EventEmitter {
36
+ _closed = false;
37
+ lineBuffer = [];
38
+ stderrBuffer = [];
39
+ constructor() {
40
+ super();
41
+ // Flush buffered inbound lines the moment a consumer subscribes.
42
+ this.on('newListener', (event) => {
43
+ if (event === 'line' && this.lineBuffer.length > 0) {
44
+ const pending = this.lineBuffer;
45
+ this.lineBuffer = [];
46
+ queueMicrotask(() => { for (const l of pending)
47
+ this.emit('line', l); });
48
+ }
49
+ else if (event === 'stderr' && this.stderrBuffer.length > 0) {
50
+ const pending = this.stderrBuffer;
51
+ this.stderrBuffer = [];
52
+ queueMicrotask(() => { for (const l of pending)
53
+ this.emit('stderr', l); });
54
+ }
55
+ });
56
+ }
57
+ get closed() {
58
+ return this._closed;
59
+ }
60
+ /** Deliver an inbound line, buffering it if nobody is listening yet. */
61
+ pushLine(line) {
62
+ if (this.listenerCount('line') > 0)
63
+ this.emit('line', line);
64
+ else
65
+ this.lineBuffer.push(line);
66
+ }
67
+ /** Deliver a diagnostic line, buffering it if nobody is listening yet. */
68
+ pushStderr(line) {
69
+ if (this.listenerCount('stderr') > 0)
70
+ this.emit('stderr', line);
71
+ else
72
+ this.stderrBuffer.push(line);
73
+ }
74
+ /** Emit 'close' exactly once. */
75
+ markClosed(info) {
76
+ if (this._closed)
77
+ return;
78
+ this._closed = true;
79
+ this.emit('close', info);
80
+ }
81
+ }
82
+ // ---------------------------------------------------------------------------
83
+ // stdio
84
+ // ---------------------------------------------------------------------------
85
+ export class StdioTransport extends McplTransport {
86
+ child;
87
+ rl;
88
+ kind = 'stdio';
89
+ constructor(child, rl) {
90
+ super();
91
+ this.child = child;
92
+ this.rl = rl;
93
+ this.rl.on('line', (line) => this.pushLine(line));
94
+ // Stitch stderr chunks into whole lines (a chunk can split a line).
95
+ let carry = '';
96
+ this.child.stderr?.on('data', (chunk) => {
97
+ const text = carry + chunk.toString('utf8');
98
+ const lines = text.split('\n');
99
+ carry = lines.pop() ?? '';
100
+ for (const l of lines)
101
+ if (l.length > 0)
102
+ this.pushStderr(l);
103
+ });
104
+ this.child.on('error', (err) => this.emit('error', err));
105
+ this.child.on('exit', (code, signal) => this.markClosed({ code, signal, reason: 'child process exited' }));
106
+ }
107
+ /**
108
+ * Spawn `config.command` and return a ready stdio transport. Rejects if the
109
+ * command is missing (a config bug) or the process fails to spawn.
110
+ */
111
+ static spawn(config) {
112
+ if (!config.command) {
113
+ throw new Error(`MCPL server "${config.id}": stdio transport requires "command" (none provided)`);
114
+ }
115
+ const child = spawn(config.command, config.args ?? [], {
116
+ stdio: ['pipe', 'pipe', 'pipe'],
117
+ env: { ...process.env, ...config.env },
118
+ });
119
+ const rl = createInterface({ input: child.stdout });
120
+ return new StdioTransport(child, rl);
121
+ }
122
+ writeLine(json) {
123
+ // stdin may be gone if the child died between the closed-check and here.
124
+ this.child.stdin?.write(json + '\n');
125
+ }
126
+ async close() {
127
+ this.markClosed({ reason: 'closed by host' });
128
+ this.rl.close();
129
+ if (this.child && !this.child.killed) {
130
+ this.child.kill();
131
+ }
132
+ await new Promise((resolve) => {
133
+ if (!this.child || this.child.exitCode !== null || this.child.killed) {
134
+ resolve();
135
+ }
136
+ else {
137
+ this.child.once('exit', () => resolve());
138
+ }
139
+ });
140
+ }
141
+ }
142
+ // ---------------------------------------------------------------------------
143
+ // WebSocket
144
+ // ---------------------------------------------------------------------------
145
+ /** Timeout for the WebSocket to reach OPEN before we give up (ms). */
146
+ const WS_OPEN_TIMEOUT_MS = 15_000;
147
+ export class WebSocketTransport extends McplTransport {
148
+ ws;
149
+ kind = 'websocket';
150
+ constructor(ws) {
151
+ super();
152
+ this.ws = ws;
153
+ this.ws.on('message', (data, isBinary) => {
154
+ // MCPL frames are UTF-8 JSON text. A frame MAY contain multiple
155
+ // newline-delimited messages or a trailing newline; split defensively.
156
+ const text = isBinary ? data.toString('utf8') : String(data);
157
+ for (const line of text.split('\n')) {
158
+ const trimmed = line.trim();
159
+ if (trimmed.length > 0)
160
+ this.pushLine(trimmed);
161
+ }
162
+ });
163
+ this.ws.on('error', (err) => this.emit('error', err));
164
+ this.ws.on('close', (code, reason) => this.markClosed({ code, reason: reason?.toString('utf8') || 'websocket closed' }));
165
+ }
166
+ /**
167
+ * Dial `config.url` and resolve once the socket is OPEN. Appends `?token=`
168
+ * when `config.token` is set. Rejects on connect error / timeout (and tears
169
+ * the socket down) so a failed dial never leaks an open handle.
170
+ */
171
+ static open(config) {
172
+ const url = buildWebSocketUrl(config);
173
+ const ws = new WebSocket(url);
174
+ return new Promise((resolve, reject) => {
175
+ let settled = false;
176
+ const timer = setTimeout(() => {
177
+ if (settled)
178
+ return;
179
+ settled = true;
180
+ ws.removeAllListeners();
181
+ try {
182
+ ws.terminate();
183
+ }
184
+ catch { /* already gone */ }
185
+ reject(new Error(`MCPL server "${config.id}" WebSocket connect timed out after ${WS_OPEN_TIMEOUT_MS}ms (${url})`));
186
+ }, WS_OPEN_TIMEOUT_MS);
187
+ ws.once('open', () => {
188
+ if (settled)
189
+ return;
190
+ settled = true;
191
+ clearTimeout(timer);
192
+ ws.removeAllListeners('error'); // the instance re-attaches its own handlers
193
+ resolve(new WebSocketTransport(ws));
194
+ });
195
+ ws.once('error', (err) => {
196
+ if (settled)
197
+ return;
198
+ settled = true;
199
+ clearTimeout(timer);
200
+ ws.removeAllListeners();
201
+ try {
202
+ ws.terminate();
203
+ }
204
+ catch { /* already gone */ }
205
+ reject(new Error(`MCPL server "${config.id}" WebSocket connect failed: ${err.message} (${url})`));
206
+ });
207
+ });
208
+ }
209
+ writeLine(json) {
210
+ if (this.ws.readyState === WebSocket.OPEN) {
211
+ this.ws.send(json);
212
+ }
213
+ }
214
+ async close() {
215
+ this.markClosed({ reason: 'closed by host' });
216
+ await new Promise((resolve) => {
217
+ if (this.ws.readyState === WebSocket.CLOSED) {
218
+ resolve();
219
+ return;
220
+ }
221
+ this.ws.once('close', () => resolve());
222
+ try {
223
+ this.ws.close();
224
+ }
225
+ catch {
226
+ try {
227
+ this.ws.terminate();
228
+ }
229
+ catch { /* already gone */ }
230
+ resolve();
231
+ }
232
+ });
233
+ }
234
+ }
235
+ /**
236
+ * Build the dial URL: validate it's a ws(s):// URL and append the auth token as
237
+ * a `token` query param when provided (preserving any existing query).
238
+ */
239
+ export function buildWebSocketUrl(config) {
240
+ if (!config.url) {
241
+ throw new Error(`MCPL server "${config.id}": websocket transport requires "url" (none provided)`);
242
+ }
243
+ let parsed;
244
+ try {
245
+ parsed = new URL(config.url);
246
+ }
247
+ catch {
248
+ throw new Error(`MCPL server "${config.id}": invalid WebSocket url "${config.url}"`);
249
+ }
250
+ if (parsed.protocol !== 'ws:' && parsed.protocol !== 'wss:') {
251
+ throw new Error(`MCPL server "${config.id}": websocket url must be ws:// or wss://, got "${parsed.protocol}"`);
252
+ }
253
+ if (config.token) {
254
+ parsed.searchParams.set('token', config.token);
255
+ }
256
+ return parsed.toString();
257
+ }
258
+ // ---------------------------------------------------------------------------
259
+ // Factory
260
+ // ---------------------------------------------------------------------------
261
+ /** True when the config selects the WebSocket transport (explicit `transport`,
262
+ * or a `url` with no `command`). */
263
+ export function isWebSocketTransport(config) {
264
+ if (config.transport === 'websocket')
265
+ return true;
266
+ if (config.transport === 'stdio')
267
+ return false;
268
+ return Boolean(config.url) && !config.command;
269
+ }
270
+ /**
271
+ * Open the transport selected by `config` (WebSocket when `transport` is
272
+ * 'websocket' or a bare `url` is given; stdio otherwise). The returned transport
273
+ * is connected at the byte level but has NOT performed the MCPL handshake.
274
+ */
275
+ export async function openTransport(config) {
276
+ if (isWebSocketTransport(config)) {
277
+ return WebSocketTransport.open(config);
278
+ }
279
+ return StdioTransport.spawn(config);
280
+ }
281
+ //# sourceMappingURL=transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/mcpl/transport.ts"],"names":[],"mappings":"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"}
@@ -126,12 +126,33 @@ export interface McplChannelCapabilities {
126
126
  export interface McplServerConfig {
127
127
  /** Unique server identifier */
128
128
  id: string;
129
- /** Command to spawn the server process (stdio transport) */
130
- command: string;
129
+ /**
130
+ * Command to spawn the server process (stdio transport). Mutually exclusive
131
+ * with `url`. Required for the stdio transport; omit it (and set `url`) for
132
+ * the WebSocket transport.
133
+ */
134
+ command?: string;
131
135
  /** Arguments for the command */
132
136
  args?: string[];
133
137
  /** Environment variables for the child process */
134
138
  env?: Record<string, string>;
139
+ /**
140
+ * WebSocket URL for the network transport (`ws://` or `wss://`). Mutually
141
+ * exclusive with `command`. When set (or `transport: 'websocket'`), the host
142
+ * dials this endpoint instead of spawning a process — newline-delimited
143
+ * JSON-RPC MCPL runs over the socket identically to stdio.
144
+ */
145
+ url?: string;
146
+ /**
147
+ * Transport selector. Defaults to `'websocket'` when a bare `url` is given
148
+ * (no `command`), `'stdio'` otherwise. Set explicitly to disambiguate.
149
+ */
150
+ transport?: 'stdio' | 'websocket';
151
+ /**
152
+ * Bearer token for WebSocket auth. Appended to `url` as a `token` query
153
+ * parameter (`?token=…`) on connect. Ignored by the stdio transport.
154
+ */
155
+ token?: string;
135
156
  /** Feature sets to enable on connect */
136
157
  enabledFeatureSets?: string[];
137
158
  /** Feature sets to explicitly disable on connect */
@@ -223,6 +244,15 @@ export interface FeatureSetDeclaration {
223
244
  rollback?: boolean;
224
245
  /** Whether host manages state persistence for this feature set (Section 8.1) */
225
246
  hostState?: boolean;
247
+ /** Optional, open-world tag ontology for this feature set's events
248
+ * (MCPL RFC-001 §5). A hint catalog — hosts tolerate undeclared tags. */
249
+ tagOntology?: {
250
+ coreTags?: string[];
251
+ tags?: Record<string, unknown>;
252
+ keyed?: Record<string, unknown>;
253
+ defaultTreatment?: unknown[];
254
+ open?: boolean;
255
+ };
226
256
  }
227
257
  /**
228
258
  * featureSets/update params (Host → Server, Notification).
@@ -297,6 +327,12 @@ export interface StateCheckpoint {
297
327
  checkpoint: string;
298
328
  /** Parent checkpoint (null for root) */
299
329
  parent: string | null;
330
+ /**
331
+ * Owning feature set, when the server tags it. Authoritative signal for
332
+ * attributing this checkpoint — lets the host record it to the right set
333
+ * instead of guessing when a server has more than one stateful feature set.
334
+ */
335
+ featureSet?: string;
300
336
  /**
301
337
  * Full state data (for host-managed state).
302
338
  * Mutually exclusive with `patch`.
@@ -352,6 +388,8 @@ export interface PushEventParams {
352
388
  timestamp: string;
353
389
  /** Provenance metadata (server-defined) */
354
390
  origin?: Record<string, unknown>;
391
+ /** Semantic classification the host may route on (MCPL RFC-001). */
392
+ tags?: string[];
355
393
  /** Event payload */
356
394
  payload: {
357
395
  /** Content for the model to interpret */
@@ -696,6 +734,8 @@ export interface ChannelIncomingMessage {
696
734
  content: McplContentBlock[];
697
735
  /** Platform-specific metadata */
698
736
  metadata?: Record<string, unknown>;
737
+ /** Semantic classification the host may route on (MCPL RFC-001). */
738
+ tags?: string[];
699
739
  }
700
740
  /**
701
741
  * channels/incoming params (Server → Host, Request).
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/mcpl/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,KAAK,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,KAAK,CAAC;IACf,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,YAAY,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAUD,MAAM,MAAM,gBAAgB,GACxB,eAAe,GACf,gBAAgB,GAChB,gBAAgB,GAChB,mBAAmB,CAAC;AAExB,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,OAAO,CAAC;IACd,iEAAiE;IACjE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kDAAkD;IAClD,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,OAAO,CAAC;IACd,iEAAiE;IACjE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kDAAkD;IAClD,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,UAAU,CAAC;IACjB,kDAAkD;IAClD,GAAG,EAAE,MAAM,CAAC;CACb;AAMD;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,0CAA0C;IAC1C,OAAO,EAAE,MAAM,CAAC;IAEhB,iCAAiC;IACjC,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,gCAAgC;IAChC,YAAY,CAAC,EAAE;QACb,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B,cAAc,CAAC,EAAE,OAAO,GAAG;YAAE,QAAQ,EAAE,OAAO,CAAA;SAAE,CAAC;KAClD,CAAC;IAEF,8CAA8C;IAC9C,gBAAgB,CAAC,EAAE;QACjB,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,CAAC;IAEF,0CAA0C;IAC1C,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,wDAAwD;IACxD,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IAEpD,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,uBAAuB,CAAC;CACpC;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE;QACb,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B,cAAc,CAAC,EAAE,OAAO,GAAG;YAAE,QAAQ,EAAE,OAAO,CAAA;SAAE,CAAC;KAClD,CAAC;IACF,gBAAgB,CAAC,EAAE;QACjB,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,CAAC;IACF,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,uBAAuB,CAAC;CACpC;AAED,yCAAyC;AACzC,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAMD;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,+BAA+B;IAC/B,EAAE,EAAE,MAAM,CAAC;IAEX,4DAA4D;IAC5D,OAAO,EAAE,MAAM,CAAC;IAEhB,gCAAgC;IAChC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAEhB,kDAAkD;IAClD,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE7B,wCAAwC;IACxC,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE9B,oDAAoD;IACpD,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE/B;;;;;;;;;OASG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAExB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IAEzB,2CAA2C;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAErC;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B;;;;;;;;;;;OAWG;IACH,sBAAsB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC;IAEzF;;;;;;;;;OASG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;;;;;;;;;;OAaG;IACH,mBAAmB,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,EAAE,CAAC;CACpD;AAMD,4DAA4D;AAC5D,MAAM,MAAM,aAAa,GACrB,YAAY,GACZ,8BAA8B,GAC9B,6BAA6B,GAC7B,kBAAkB,GAClB,OAAO,GACP,kBAAkB,GAClB,kBAAkB,CAAC;AAEvB;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,iCAAiC;IACjC,WAAW,EAAE,MAAM,CAAC;IAEpB,yCAAyC;IACzC,IAAI,EAAE,aAAa,EAAE,CAAC;IAEtB,8DAA8D;IAC9D,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,gFAAgF;IAChF,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACtC,6BAA6B;IAC7B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnB,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAEpB,2CAA2C;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;CACtC;AAED;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACvC,mCAAmC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IAE9C,gCAAgC;IAChC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAMD;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,qCAAqC;IACrC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IAErB,sCAAsC;IACtC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,iEAAiE;IACjE,KAAK,EAAE,MAAM,CAAC;IAEd,yDAAyD;IACzD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,uCAAuC;IACvC,UAAU,EAAE,MAAM,CAAC;IAEnB,gCAAgC;IAChC,KAAK,EAAE,UAAU,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,qCAAqC;IACrC,QAAQ,EAAE,OAAO,CAAC;IAElB,yDAAyD;IACzD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAElC,iCAAiC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAMD;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,4BAA4B;IAC5B,UAAU,EAAE,MAAM,CAAC;IAEnB,wCAAwC;IACxC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAEtB;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf;;;OAGG;IACH,KAAK,CAAC,EAAE,kBAAkB,EAAE,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,KAAK,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,8BAA8B;IAC9B,UAAU,EAAE,MAAM,CAAC;IAEnB,gCAAgC;IAChC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,yCAAyC;IACzC,UAAU,EAAE,MAAM,CAAC;IAEnB,iCAAiC;IACjC,OAAO,EAAE,OAAO,CAAC;IAEjB,qDAAqD;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAMD;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,4BAA4B;IAC5B,UAAU,EAAE,MAAM,CAAC;IAEnB,gDAAgD;IAChD,OAAO,EAAE,MAAM,CAAC;IAEhB,yCAAyC;IACzC,SAAS,EAAE,MAAM,CAAC;IAElB,2CAA2C;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEjC,oBAAoB;IACpB,OAAO,EAAE;QACP,yCAAyC;QACzC,OAAO,EAAE,gBAAgB,EAAE,CAAC;KAC7B,CAAC;CACH;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,qCAAqC;IACrC,QAAQ,EAAE,OAAO,CAAC;IAElB,yCAAyC;IACzC,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,iCAAiC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAMD;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,0DAA0D;IAC1D,EAAE,EAAE,MAAM,CAAC;IAEX,uCAAuC;IACvC,MAAM,EAAE,MAAM,CAAC;IAEf,oCAAoC;IACpC,aAAa,EAAE,MAAM,CAAC;IAEtB,qDAAqD;IACrD,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,2CAA2C;IAC3C,WAAW,EAAE,MAAM,CAAC;IAEpB,8BAA8B;IAC9B,cAAc,EAAE,MAAM,CAAC;IAEvB,4BAA4B;IAC5B,SAAS,EAAE,MAAM,CAAC;IAElB,iDAAiD;IACjD,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3B,6BAA6B;IAC7B,KAAK,EAAE,aAAa,CAAC;IAErB,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAED;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB;IACnC,+BAA+B;IAC/B,SAAS,EAAE,MAAM,CAAC;IAElB,sBAAsB;IACtB,QAAQ,EAAE,QAAQ,GAAG,YAAY,GAAG,WAAW,CAAC;IAEhD;;;OAGG;IACH,OAAO,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAC;IAErC,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,8CAA8C;IAC9C,UAAU,EAAE,MAAM,CAAC;IAEnB,kCAAkC;IAClC,iBAAiB,EAAE,oBAAoB,EAAE,CAAC;CAC3C;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,qDAAqD;IACrD,WAAW,EAAE,MAAM,CAAC;IAEpB,8BAA8B;IAC9B,cAAc,EAAE,MAAM,CAAC;IAEvB,4BAA4B;IAC5B,SAAS,EAAE,MAAM,CAAC;IAElB,0BAA0B;IAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3B,mCAAmC;IACnC,gBAAgB,EAAE,MAAM,CAAC;IAEzB,qBAAqB;IACrB,KAAK,EAAE,aAAa,CAAC;IAErB,kBAAkB;IAClB,KAAK,EAAE;QACL,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;CACH;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,8CAA8C;IAC9C,UAAU,EAAE,MAAM,CAAC;IAEnB,oEAAoE;IACpE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,yBAAyB;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAMD;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,MAAM,WAAW,0BAA0B;IACzC,4BAA4B;IAC5B,UAAU,EAAE,MAAM,CAAC;IAEnB,6CAA6C;IAC7C,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,uCAAuC;IACvC,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,6BAA6B;IAC7B,QAAQ,EAAE,WAAW,EAAE,CAAC;IAExB,6CAA6C;IAC7C,WAAW,CAAC,EAAE,wBAAwB,CAAC;CACxC;AAED;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACvC,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,2BAA2B;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;GAGG;AACH,MAAM,WAAW,0BAA0B;IACzC,wBAAwB;IACxB,OAAO,EAAE,MAAM,CAAC;IAEhB,wBAAwB;IACxB,KAAK,EAAE,MAAM,CAAC;IAEd,6BAA6B;IAC7B,YAAY,EAAE,UAAU,GAAG,YAAY,GAAG,eAAe,CAAC;IAE1D,kBAAkB;IAClB,KAAK,EAAE;QACL,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,2CAA2C;IAC3C,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAE3B,4BAA4B;IAC5B,KAAK,EAAE,MAAM,CAAC;IAEd,iBAAiB;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAaD;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,+DAA+D;IAC/D,EAAE,EAAE,MAAM,CAAC;IAEX,iEAAiE;IACjE,IAAI,EAAE,MAAM,CAAC;IAEb,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAC;IAEd,wBAAwB;IACxB,SAAS,EAAE,UAAU,GAAG,SAAS,GAAG,eAAe,CAAC;IAEpD,+EAA+E;IAC/E,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAElC,yBAAyB;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,4CAA4C;IAC5C,QAAQ,CAAC,EAAE;QACT,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IAEF,4CAA4C;IAC5C,eAAe,CAAC,EAAE;QAChB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IAEF,gDAAgD;IAChD,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,iBAAiB,EAAE,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,KAAK,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,iBAAiB,EAAE,CAAC;CAC/B;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,iBAAiB,EAAE,CAAC;CAC/B;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,iBAAiB,CAAC;CAC5B;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;;;GAIG;AACH,MAAM,WAAW,2BAA2B;IAC1C,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,MAAM,WAAW,8BAA8B;IAC7C,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,gBAAgB,EAAE,CAAC;CAC7B;AAED;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,gBAAgB,EAAE,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC,qCAAqC;IACrC,SAAS,EAAE,MAAM,CAAC;IAElB,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAC;IAElB,gDAAgD;IAChD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,qBAAqB;IACrB,MAAM,EAAE;QACN,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IAEF,2CAA2C;IAC3C,SAAS,EAAE,MAAM,CAAC;IAElB,sBAAsB;IACtB,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAE5B,iCAAiC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,sBAAsB,EAAE,CAAC;CACpC;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,4BAA4B,EAAE,CAAC;CACzC;AAED,4CAA4C;AAC5C,MAAM,WAAW,4BAA4B;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAMD;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC,+CAA+C;IAC/C,OAAO,EAAE,MAAM,CAAC;IAEhB,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEnC,yEAAyE;IACzE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEnC,yCAAyC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC;AAMD,oDAAoD;AACpD,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;CAoCb,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,OAAO,UAAU,CAAC,CAAC;AAM1E;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,oBAAoB,EAAE,CAAC;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iEAAiE;IACjE,KAAK,CAAC,EAAE,eAAe,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,UAAU,CAAC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/mcpl/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/mcpl/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAu6BH,+EAA+E;AAC/E,mDAAmD;AACnD,+EAA+E;AAE/E,oDAAoD;AACpD,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,8BAA8B;IAC9B,SAAS,EAAE,YAAY;IAEvB,gCAAgC;IAChC,eAAe,EAAE,yBAAyB;IAC1C,cAAc,EAAE,wBAAwB;IAExC,6DAA6D;IAC7D,gBAAgB,EAAE,mBAAmB;IACrC,cAAc,EAAE,iBAAiB;IAEjC,6BAA6B;IAC7B,SAAS,EAAE,YAAY;IAEvB,eAAe;IACf,iBAAiB,EAAE,oBAAoB;IACvC,kBAAkB,EAAE,qBAAqB;IAEzC,gCAAgC;IAChC,YAAY,EAAE,eAAe;IAE7B,mCAAmC;IACnC,aAAa,EAAE,gBAAgB;IAE/B,WAAW;IACX,gBAAgB,EAAE,mBAAmB;IACrC,eAAe,EAAE,kBAAkB;IACnC,YAAY,EAAE,eAAe;IAC7B,YAAY,EAAE,eAAe;IAC7B,aAAa,EAAE,gBAAgB;IAC/B,qBAAqB,EAAE,yBAAyB;IAChD,wBAAwB,EAAE,4BAA4B;IACtD,eAAe,EAAE,kBAAkB;IACnC,gBAAgB,EAAE,mBAAmB;IACrC,cAAc,EAAE,iBAAiB;CACzB,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/mcpl/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAs9BH,+EAA+E;AAC/E,mDAAmD;AACnD,+EAA+E;AAE/E,oDAAoD;AACpD,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,8BAA8B;IAC9B,SAAS,EAAE,YAAY;IAEvB,gCAAgC;IAChC,eAAe,EAAE,yBAAyB;IAC1C,cAAc,EAAE,wBAAwB;IAExC,6DAA6D;IAC7D,gBAAgB,EAAE,mBAAmB;IACrC,cAAc,EAAE,iBAAiB;IAEjC,6BAA6B;IAC7B,SAAS,EAAE,YAAY;IAEvB,eAAe;IACf,iBAAiB,EAAE,oBAAoB;IACvC,kBAAkB,EAAE,qBAAqB;IAEzC,gCAAgC;IAChC,YAAY,EAAE,eAAe;IAE7B,mCAAmC;IACnC,aAAa,EAAE,gBAAgB;IAE/B,WAAW;IACX,gBAAgB,EAAE,mBAAmB;IACrC,eAAe,EAAE,kBAAkB;IACnC,YAAY,EAAE,eAAe;IAC7B,YAAY,EAAE,eAAe;IAC7B,aAAa,EAAE,gBAAgB;IAC/B,qBAAqB,EAAE,yBAAyB;IAChD,wBAAwB,EAAE,4BAA4B;IACtD,eAAe,EAAE,kBAAkB;IACnC,gBAAgB,EAAE,mBAAmB;IACrC,cAAc,EAAE,iBAAiB;CACzB,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import type { JsStore } from '@animalabs/chronicle';
2
2
  import type { ContentBlock } from '@animalabs/membrane';
3
3
  import type { MessageId, MessageMetadata, MessageQuery, MessageQueryResult, StoredMessage, ContextInjection } from '@animalabs/context-manager';
4
- import type { Module, ProcessState, ProcessQueue, ToolDefinition, ToolCall, ToolResult, SpeechContext, SpeechHandlerOptions, ProcessEvent } from './types/index.js';
4
+ import type { Module, ProcessState, ProcessQueue, ToolDefinition, ToolCall, ToolResult, SpeechContext, SpeechHandlerOptions, ProcessEvent, TraceEventListener } from './types/index.js';
5
5
  import type { Agent } from './agent.js';
6
6
  /**
7
7
  * Registry for managing modules.
@@ -19,6 +19,8 @@ export declare class ModuleRegistry {
19
19
  private getMessageFn;
20
20
  private queryMessagesFn;
21
21
  private pushEventFn;
22
+ private onTraceFn;
23
+ private callToolFn;
22
24
  constructor(store: JsStore, queue: ProcessQueue, options: {
23
25
  getAgents: () => Agent[];
24
26
  addMessage: (participant: string, content: ContentBlock[], metadata?: MessageMetadata) => MessageId;
@@ -27,6 +29,8 @@ export declare class ModuleRegistry {
27
29
  getMessage: (id: MessageId) => StoredMessage | null;
28
30
  queryMessages: (filter: MessageQuery) => MessageQueryResult;
29
31
  pushEvent: (event: ProcessEvent) => void;
32
+ onTrace: (listener: TraceEventListener) => () => void;
33
+ callTool: (call: ToolCall) => Promise<ToolResult>;
30
34
  });
31
35
  /**
32
36
  * Register and start a module.
@@ -1 +1 @@
1
- {"version":3,"file":"module-registry.d.ts","sourceRoot":"","sources":["../../src/module-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"module-registry.d.ts","sourceRoot":"","sources":["../../src/module-registry.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,8 @@ export class ModuleRegistry {
15
15
  getMessageFn;
16
16
  queryMessagesFn;
17
17
  pushEventFn;
18
+ onTraceFn;
19
+ callToolFn;
18
20
  constructor(store, queue, options) {
19
21
  this.store = store;
20
22
  this.queue = queue;
@@ -25,6 +27,8 @@ export class ModuleRegistry {
25
27
  this.getMessageFn = options.getMessage;
26
28
  this.queryMessagesFn = options.queryMessages;
27
29
  this.pushEventFn = options.pushEvent;
30
+ this.onTraceFn = options.onTrace;
31
+ this.callToolFn = options.callTool;
28
32
  }
29
33
  /**
30
34
  * Register and start a module.
@@ -48,7 +52,7 @@ export class ModuleRegistry {
48
52
  const existingState = this.store.getStateJson(stateId);
49
53
  const isRestart = existingState !== null;
50
54
  // Create context
51
- const context = new ModuleContextImpl(module.name, this.store, stateId, this.queue, this, isRestart, this.getAgents, this.addMessageFn, this.editMessageFn, this.removeMessageFn, this.getMessageFn, this.queryMessagesFn, this.pushEventFn);
55
+ const context = new ModuleContextImpl(module.name, this.store, stateId, this.queue, this, isRestart, this.getAgents, this.addMessageFn, this.editMessageFn, this.removeMessageFn, this.getMessageFn, this.queryMessagesFn, this.pushEventFn, this.onTraceFn, this.callToolFn);
52
56
  this.modules.set(module.name, module);
53
57
  this.moduleContexts.set(module.name, context);
54
58
  // Start the module
@@ -254,9 +258,11 @@ class ModuleContextImpl {
254
258
  getMessageFn;
255
259
  queryMessagesFn;
256
260
  pushEventFn;
261
+ onTraceFn;
262
+ callToolFn;
257
263
  // External ID mapping stored in module state
258
264
  externalIdMap = new Map();
259
- constructor(moduleName, store, stateId, queue, registry, isRestart, getAgents, addMessage, editMessage, removeMessage, getMessage, queryMessages, pushEvent) {
265
+ constructor(moduleName, store, stateId, queue, registry, isRestart, getAgents, addMessage, editMessage, removeMessage, getMessage, queryMessages, pushEvent, onTrace, callTool) {
260
266
  this.moduleName = moduleName;
261
267
  this.store = store;
262
268
  this.stateId = stateId;
@@ -270,6 +276,8 @@ class ModuleContextImpl {
270
276
  this.getMessageFn = getMessage;
271
277
  this.queryMessagesFn = queryMessages;
272
278
  this.pushEventFn = pushEvent;
279
+ this.onTraceFn = onTrace;
280
+ this.callToolFn = callTool;
273
281
  // Load external ID map from state if exists
274
282
  const state = this.getState();
275
283
  if (state?.externalIdMap) {
@@ -291,6 +299,12 @@ class ModuleContextImpl {
291
299
  getModule(name) {
292
300
  return this.registry.getModule(name);
293
301
  }
302
+ onTrace(listener) {
303
+ return this.onTraceFn(listener);
304
+ }
305
+ callTool(call) {
306
+ return this.callToolFn(call);
307
+ }
294
308
  addMessage(participant, content, metadata) {
295
309
  const id = this.addMessageFn(participant, content, metadata);
296
310
  // Track external ID if provided