@nifrajs/a2a 4.0.2 → 5.1.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.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Nifra Authors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -67,9 +67,11 @@ A suspended task's status message carries the pending continuation in `metadata`
67
67
  }
68
68
  ```
69
69
 
70
+ The resuming peer is usually the agent that asked for the tool, so it does not approve its own call: the run asks `ports.approval` again and hands it the peer's `approval` as `callerDecision`. With no approval port the task stays `TASK_STATE_INPUT_REQUIRED`. Return `resumeApproval: "caller"` from `ports` only when the peer is the approver, such as a human operator's client.
71
+
70
72
  Cross-request registries (cancellation, subscription fan-out, push notifications) are deliberately out of scope for the stateless seam; those spec methods answer `UnsupportedOperationError` (-32004).
71
73
 
72
- A reply larger than `maxOutputBytes` answers the request with a JSON-RPC internal error (-32603, `output_limit`), the same error a stream sends when it runs out of budget. A request whose ports or store fail answers with -32603 `internal_error`, keeping the request's `id`.
74
+ A reply larger than `maxOutputBytes` answers the request with a JSON-RPC internal error (-32603, `output_limit`), the same error a stream sends when it runs out of budget. A stream that runs out also aborts the run's signal, as a client disconnect does, so the run stops calling the model. A request whose ports or store fail answers with -32603 `internal_error`, keeping the request's `id`.
73
75
 
74
76
  The seam performs no authentication or authorization - wrap it with your app's route guards and scope every port in `ports(c)` to the caller.
75
77
 
package/dist/index.d.ts CHANGED
@@ -14,7 +14,7 @@
14
14
  * - `SendStreamingMessage` responds `text/event-stream`; each SSE `data:` field is a complete
15
15
  * JSON-RPC response whose result is `{ statusUpdate }` per step-evidence item, then
16
16
  * `{ artifactUpdate }` for a produced output, then a final `{ statusUpdate }` with
17
- * `final: true`.
17
+ * `final: true`. A client that cancels the body (disconnects) aborts the run's signal.
18
18
  * - `GetTask` projects the stored turn state for a task id (requires `ports.state`).
19
19
  * - Every other spec method returns `UnsupportedOperationError` (-32004): the seam is stateless
20
20
  * per request, so cross-request cancellation and subscription registries belong to the caller.
@@ -22,7 +22,10 @@
22
22
  * `TASK_STATE_INPUT_REQUIRED` whose status message carries the pending continuation in
23
23
  * `metadata`. To resume, send the continuation back via `message.taskId` +
24
24
  * `message.metadata.resume` (`{ continuation, approval? }`); the runtime keeps state token-only,
25
- * so a suspended tool's input must be replayed in `continuation.input`.
25
+ * so a suspended tool's input must be replayed in `continuation.input`. The resuming peer is
26
+ * usually the agent that asked for the tool, so the approval port, not that peer, decides: the
27
+ * peer's `approval` reaches it as `callerDecision`. Return `resumeApproval: "caller"` from `ports`
28
+ * only when the peer is the approver (a human operator's client).
26
29
  * - Agent input is `message.metadata.input` when present, otherwise the first `text` part.
27
30
  * Structured output is returned as a `text` part carrying JSON.
28
31
  * - The seam performs no authentication or authorization. Wrap it with the app's own route guards,
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -14,7 +14,7 @@
14
14
  * - `SendStreamingMessage` responds `text/event-stream`; each SSE `data:` field is a complete
15
15
  * JSON-RPC response whose result is `{ statusUpdate }` per step-evidence item, then
16
16
  * `{ artifactUpdate }` for a produced output, then a final `{ statusUpdate }` with
17
- * `final: true`.
17
+ * `final: true`. A client that cancels the body (disconnects) aborts the run's signal.
18
18
  * - `GetTask` projects the stored turn state for a task id (requires `ports.state`).
19
19
  * - Every other spec method returns `UnsupportedOperationError` (-32004): the seam is stateless
20
20
  * per request, so cross-request cancellation and subscription registries belong to the caller.
@@ -22,7 +22,10 @@
22
22
  * `TASK_STATE_INPUT_REQUIRED` whose status message carries the pending continuation in
23
23
  * `metadata`. To resume, send the continuation back via `message.taskId` +
24
24
  * `message.metadata.resume` (`{ continuation, approval? }`); the runtime keeps state token-only,
25
- * so a suspended tool's input must be replayed in `continuation.input`.
25
+ * so a suspended tool's input must be replayed in `continuation.input`. The resuming peer is
26
+ * usually the agent that asked for the tool, so the approval port, not that peer, decides: the
27
+ * peer's `approval` reaches it as `callerDecision`. Return `resumeApproval: "caller"` from `ports`
28
+ * only when the peer is the approver (a human operator's client).
26
29
  * - Agent input is `message.metadata.input` when present, otherwise the first `text` part.
27
30
  * Structured output is returned as a `text` part carrying JSON.
28
31
  * - The seam performs no authentication or authorization. Wrap it with the app's own route guards,
@@ -104,11 +107,20 @@ async function dispatch(c, parsed, options, runOptions, maxOutputBytes) {
104
107
  if ("error" in turn)
105
108
  return rpcErrorResponse(id, turn.error.code, turn.error.message);
106
109
  const basePorts = await options.ports(c);
107
- const start = (telemetry) => {
110
+ const start = (telemetry, cancel) => {
108
111
  // Compose rather than replace: the SSE evidence stream must not displace a telemetry
109
- // port the caller injected through `ports`.
112
+ // port, or a signal, the caller injected through `ports`.
110
113
  const combined = combineAgentTelemetry(basePorts.telemetry, telemetry);
111
- const ports = combined === undefined ? basePorts : { ...basePorts, telemetry: combined };
114
+ const signal = cancel === undefined || basePorts.signal === undefined
115
+ ? (cancel ?? basePorts.signal)
116
+ : AbortSignal.any([basePorts.signal, cancel]);
117
+ const ports = {
118
+ ...basePorts,
119
+ // The resuming peer is the agent that asked for the tool, so it cannot approve its own call.
120
+ resumeApproval: basePorts.resumeApproval ?? "port",
121
+ ...(combined === undefined ? {} : { telemetry: combined }),
122
+ ...(signal === undefined ? {} : { signal }),
123
+ };
112
124
  if (turn.resume !== undefined) {
113
125
  return resumeAgent(options.agent, turn.turnId, { value: turn.input, resume: turn.resume }, ports, runOptions);
114
126
  }
@@ -190,7 +202,15 @@ class A2AOutputLimitError extends Error {
190
202
  }
191
203
  function streamingResponse(id, turnId, start, maxOutputBytes) {
192
204
  const stream = createAgentEvidenceStream();
205
+ // A client that disconnects cancels the body; the run is told through its signal.
206
+ const cancelled = new AbortController();
207
+ let clientGone = false;
193
208
  const body = new ReadableStream({
209
+ cancel() {
210
+ clientGone = true;
211
+ cancelled.abort();
212
+ stream.complete();
213
+ },
194
214
  async start(controller) {
195
215
  const encoder = new TextEncoder();
196
216
  let emittedBytes = 0;
@@ -201,7 +221,7 @@ function streamingResponse(id, turnId, start, maxOutputBytes) {
201
221
  emittedBytes += frame.byteLength;
202
222
  controller.enqueue(frame);
203
223
  };
204
- const run = start(stream);
224
+ const run = start(stream, cancelled.signal);
205
225
  // The evidence stream must terminate whether the run resolves or throws, or the `for await`
206
226
  // below would hang; the run result (or the error) is still reported in-band after it drains.
207
227
  run
@@ -242,6 +262,12 @@ function streamingResponse(id, turnId, start, maxOutputBytes) {
242
262
  }));
243
263
  }
244
264
  catch (error) {
265
+ // Nothing past the output budget reaches the client, so the run stops as on a disconnect
266
+ // rather than spending model calls nobody reads.
267
+ if (error instanceof A2AOutputLimitError) {
268
+ cancelled.abort();
269
+ stream.complete();
270
+ }
245
271
  try {
246
272
  send(rpcError(id, A2A_ERROR_CODES.internalError, error instanceof A2AOutputLimitError ? "output_limit" : "run_failed"));
247
273
  }
@@ -250,7 +276,9 @@ function streamingResponse(id, turnId, start, maxOutputBytes) {
250
276
  }
251
277
  }
252
278
  finally {
253
- controller.close();
279
+ // Already closed for us when the client cancelled the body.
280
+ if (!clientGone)
281
+ controller.close();
254
282
  }
255
283
  },
256
284
  });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,EAOL,qBAAqB,EACrB,gBAAgB,EAChB,WAAW,EACX,QAAQ,GACT,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAA;AACjE,OAAO,EACL,uBAAuB,EAGvB,cAAc,EACd,UAAU,GACX,MAAM,wBAAwB,CAAA;AAG/B,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,CAAA;AACzC,MAAM,CAAC,MAAM,0BAA0B,GAAG,8BAA8B,CAAA;AAExE,MAAM,YAAY,GAAG,MAAM,CAAA;AAC3B,MAAM,sBAAsB,GAAG,SAAS,CAAA;AACxC,MAAM,wBAAwB,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAA;AAChD,MAAM,gBAAgB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAA;AACzC,MAAM,aAAa,GAAgC,CAAC,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,CAAC,CAAA;AAC/F,MAAM,eAAe,GAAG,0BAA0B,CAAA;AAElD,2DAA2D;AAC3D,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,UAAU,EAAE,CAAC,KAAK;IAClB,cAAc,EAAE,CAAC,KAAK;IACtB,cAAc,EAAE,CAAC,KAAK;IACtB,aAAa,EAAE,CAAC,KAAK;IACrB,aAAa,EAAE,CAAC,KAAK;IACrB,YAAY,EAAE,CAAC,KAAK;IACpB,oBAAoB,EAAE,CAAC,KAAK;CACpB,CAAA;AA4EV,mGAAmG;AACnG,MAAM,UAAU,SAAS,CAGvB,KAAiD,EAAE,IAAiB;IACpE,OAAO;QACL,eAAe,EAAE,oBAAoB;QACrC,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI;QAC7B,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW;QAClD,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE;QACjC,iBAAiB,EAAE,CAAC,kBAAkB,EAAE,YAAY,CAAC;QACrD,kBAAkB,EAAE,CAAC,kBAAkB,EAAE,YAAY,CAAC;QACtD,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACjC,EAAE,EAAE,IAAI,CAAC,IAAI;YACb,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC;SACxB,CAAC,CAAC;KACJ,CAAA;AACH,CAAC;AAED,4FAA4F;AAC5F,MAAM,UAAU,QAAQ,CAGtB,GAAoB,EAAE,OAAmD;IACzE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,YAAY,CAAA;IACzC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,0BAA0B,CAAA;IAC/D,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,IAAI,sBAAsB,CAAA;IAC/D,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,wBAAwB,CAAA;IACzE,iBAAiB,CAAC,cAAc,CAAC,CAAA;IACjC,MAAM,KAAK,GAAG,OAAO,CAAC,cAAc,IAAI,QAAQ,CAAA;IAChD,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAA;IACvF,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;IAEnD,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAA;IAChD,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CACnB,cAAc,CACZ,CAAC,CAAC,GAAG,EACL,QAAQ,EACR,KAAK,EACL,CAAC,MAAM,EAAE,EAAE;QACT,6EAA6E;QAC7E,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAA;QAC/B,MAAM,EAAE,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAA;QAC1E,OAAO,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,cAAc,CAAC;aAC5D,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,iBAAiB,CAAC,QAAQ,EAAE,cAAc,EAAE,EAAE,CAAC,CAAC;aACnE,KAAK,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,EAAE,EAAE,eAAe,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC,CAAA;IACvF,CAAC,EACD,CAAC,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,EAChC,GAAG,EAAE,CAAC,gBAAgB,CAAC,IAAI,EAAE,eAAe,CAAC,UAAU,EAAE,aAAa,CAAC,CACxE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,IAAI,EAAE,eAAe,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC,CACvF,CAAA;AACH,CAAC;AAQD,KAAK,UAAU,QAAQ,CAIrB,CAAkB,EAClB,MAAe,EACf,OAAmD,EACnD,UAA0C,EAC1C,cAAsB;IAEtB,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAA;IAChC,MAAM,EAAE,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IAClE,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,OAAO,KAAK,KAAK,IAAI,EAAE,KAAK,SAAS;QACxE,OAAO,gBAAgB,CAAC,IAAI,EAAE,eAAe,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAA;IAClF,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;IAC7B,IAAI,OAAO,MAAM,KAAK,QAAQ;QAC5B,OAAO,gBAAgB,CAAC,EAAE,EAAE,eAAe,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAA;IAChF,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;IAE7C,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,aAAa,CAAC;QACnB,KAAK,sBAAsB,CAAC,CAAC,CAAC;YAC5B,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;YAChC,IAAI,OAAO,IAAI,IAAI;gBAAE,OAAO,gBAAgB,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YACrF,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YACxC,MAAM,KAAK,GAAa,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE;gBAC5C,qFAAqF;gBACrF,0DAA0D;gBAC1D,MAAM,QAAQ,GAAG,qBAAqB,CAAC,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;gBACtE,MAAM,MAAM,GACV,MAAM,KAAK,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,SAAS;oBACpD,CAAC,CAAC,CAAC,MAAM,IAAI,SAAS,CAAC,MAAM,CAAC;oBAC9B,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;gBACjD,MAAM,KAAK,GAAG;oBACZ,GAAG,SAAS;oBACZ,6FAA6F;oBAC7F,cAAc,EAAE,SAAS,CAAC,cAAc,IAAI,MAAM;oBAClD,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;oBAC1D,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;iBAC5C,CAAA;gBACD,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;oBAC9B,OAAO,WAAW,CAChB,OAAO,CAAC,KAAK,EACb,IAAI,CAAC,MAAM,EACX,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,EAC1C,KAAK,EACL,UAAU,CACX,CAAA;gBACH,CAAC;gBACD,OAAO,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE;oBAC3D,GAAG,UAAU;oBACb,KAAK,EAAE,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC;iBACrC,CAAC,CAAA;YACJ,CAAC,CAAA;YACD,IAAI,MAAM,KAAK,aAAa,EAAE,CAAC;gBAC7B,IAAI,CAAC;oBACH,OAAO,iBAAiB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,KAAK,EAAE,CAAC,EAAE,CAAC,CAAA;gBACjF,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,gBAAgB,CAAC,EAAE,EAAE,eAAe,CAAC,YAAY,EAAE,oBAAoB,CAAC,CAAA;gBACjF,CAAC;YACH,CAAC;YACD,OAAO,iBAAiB,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,cAAc,CAAC,CAAA;QAClE,CAAC;QACD,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;YACpE,IAAI,MAAM,KAAK,SAAS;gBACtB,OAAO,gBAAgB,CAAC,EAAE,EAAE,eAAe,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAA;YAC9E,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;gBACxB,OAAO,gBAAgB,CAAC,EAAE,EAAE,eAAe,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAA;YAC/E,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YACxC,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;YACjD,IAAI,KAAK,KAAK,SAAS;gBACrB,OAAO,gBAAgB,CAAC,EAAE,EAAE,eAAe,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAA;YAC7E,OAAO,iBAAiB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QAClE,CAAC;QACD,KAAK,WAAW,CAAC;QACjB,KAAK,YAAY,CAAC;QAClB,KAAK,iBAAiB,CAAC;QACvB,KAAK,kCAAkC,CAAC;QACxC,KAAK,+BAA+B,CAAC;QACrC,KAAK,iCAAiC,CAAC;QACvC,KAAK,kCAAkC,CAAC;QACxC,KAAK,sBAAsB;YACzB,OAAO,gBAAgB,CAAC,EAAE,EAAE,eAAe,CAAC,oBAAoB,EAAE,uBAAuB,CAAC,CAAA;QAC5F;YACE,OAAO,gBAAgB,CAAC,EAAE,EAAE,eAAe,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAA;IACnF,CAAC;AACH,CAAC;AAQD,SAAS,WAAW,CAClB,MAA+B;IAE/B,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IACxC,IAAI,OAAO,KAAK,SAAS;QACvB,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,eAAe,CAAC,aAAa,EAAE,OAAO,EAAE,gBAAgB,EAAE,EAAE,CAAA;IACtF,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAA;IACjD,MAAM,MAAM,GAAG,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAA;IAC9E,MAAM,MAAM,GAAG,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IAC3C,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;QAChD,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,eAAe,CAAC,aAAa,EAAE,OAAO,EAAE,iBAAiB,EAAE,EAAE,CAAA;IACvF,+FAA+F;IAC/F,mDAAmD;IACnD,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS;QAC9C,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,eAAe,CAAC,aAAa,EAAE,OAAO,EAAE,0BAA0B,EAAE,EAAE,CAAA;IAChG,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS;QAC9C,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,eAAe,CAAC,aAAa,EAAE,OAAO,EAAE,kBAAkB,EAAE,EAAE,CAAA;IACxF,OAAO;QACL,MAAM,EAAE,MAAM,IAAI,MAAM,CAAC,UAAU,EAAE;QACrC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC;QACvF,MAAM;KACP,CAAA;AACH,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AACjE,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAA;IAC3C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;QAC7B,IAAI,MAAM,KAAK,SAAS,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,MAAM,CAAC,IAAI,CAAA;IACjF,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,MAAM,mBAAoB,SAAQ,KAAK;CAAG;AAE1C,SAAS,iBAAiB,CACxB,EAAS,EACT,MAAc,EACd,KAAe,EACf,cAAsB;IAEtB,MAAM,MAAM,GAAG,yBAAyB,EAAE,CAAA;IAC1C,kFAAkF;IAClF,MAAM,SAAS,GAAG,IAAI,eAAe,EAAE,CAAA;IACvC,IAAI,UAAU,GAAG,KAAK,CAAA;IACtB,MAAM,IAAI,GAAG,IAAI,cAAc,CAAa;QAC1C,MAAM;YACJ,UAAU,GAAG,IAAI,CAAA;YACjB,SAAS,CAAC,KAAK,EAAE,CAAA;YACjB,MAAM,CAAC,QAAQ,EAAE,CAAA;QACnB,CAAC;QACD,KAAK,CAAC,KAAK,CAAC,UAAU;YACpB,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAA;YACjC,IAAI,YAAY,GAAG,CAAC,CAAA;YACpB,MAAM,IAAI,GAAG,CAAC,OAAgB,EAAQ,EAAE;gBACtC,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;gBACpE,IAAI,KAAK,CAAC,UAAU,GAAG,cAAc,IAAI,YAAY,GAAG,cAAc,GAAG,KAAK,CAAC,UAAU;oBACvF,MAAM,IAAI,mBAAmB,CAAC,2BAA2B,CAAC,CAAA;gBAC5D,YAAY,IAAI,KAAK,CAAC,UAAU,CAAA;gBAChC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;YAC3B,CAAC,CAAA;YACD,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,CAAA;YAC3C,4FAA4F;YAC5F,6FAA6F;YAC7F,GAAG;iBACA,IAAI,CACH,GAAG,EAAE,GAAE,CAAC,EACR,GAAG,EAAE,GAAE,CAAC,CACT;iBACA,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAA;YACnC,IAAI,CAAC;gBACH,IAAI,KAAK,EAAE,MAAM,QAAQ,IAAI,MAAM,EAAE,CAAC;oBACpC,IAAI,CACF,SAAS,CAAC,EAAE,EAAE;wBACZ,YAAY,EAAE;4BACZ,MAAM,EAAE,MAAM;4BACd,SAAS,EAAE,MAAM;4BACjB,MAAM,EAAE,EAAE,KAAK,EAAE,oBAA2C,EAAE;4BAC9D,KAAK,EAAE,KAAK;4BACZ,QAAQ,EAAE,EAAE,QAAQ,EAAE;yBACvB;qBACF,CAAC,CACH,CAAA;gBACH,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,GAAG,CAAA;gBACxB,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;oBAChE,IAAI,CACF,SAAS,CAAC,EAAE,EAAE;wBACZ,cAAc,EAAE;4BACd,MAAM,EAAE,MAAM;4BACd,SAAS,EAAE,MAAM;4BACjB,QAAQ,EAAE,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;4BAC/C,SAAS,EAAE,IAAI;yBAChB;qBACF,CAAC,CACH,CAAA;gBACH,CAAC;gBACD,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;gBACxC,IAAI,CACF,SAAS,CAAC,EAAE,EAAE;oBACZ,YAAY,EAAE;wBACZ,MAAM,EAAE,MAAM;wBACd,SAAS,EAAE,MAAM;wBACjB,MAAM,EAAE,IAAI,CAAC,MAAM;wBACnB,KAAK,EAAE,IAAI;wBACX,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;qBACpE;iBACF,CAAC,CACH,CAAA;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,yFAAyF;gBACzF,iDAAiD;gBACjD,IAAI,KAAK,YAAY,mBAAmB,EAAE,CAAC;oBACzC,SAAS,CAAC,KAAK,EAAE,CAAA;oBACjB,MAAM,CAAC,QAAQ,EAAE,CAAA;gBACnB,CAAC;gBACD,IAAI,CAAC;oBACH,IAAI,CACF,QAAQ,CACN,EAAE,EACF,eAAe,CAAC,aAAa,EAC7B,KAAK,YAAY,mBAAmB,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,YAAY,CACrE,CACF,CAAA;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,4EAA4E;gBAC9E,CAAC;YACH,CAAC;oBAAS,CAAC;gBACT,4DAA4D;gBAC5D,IAAI,CAAC,UAAU;oBAAE,UAAU,CAAC,KAAK,EAAE,CAAA;YACrC,CAAC;QACH,CAAC;KACF,CAAC,CAAA;IACF,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE;QACxB,MAAM,EAAE,GAAG;QACX,OAAO,EAAE;YACP,cAAc,EAAE,kCAAkC;YAClD,eAAe,EAAE,wBAAwB;YACzC,UAAU,EAAE,YAAY;SACzB;KACF,CAAC,CAAA;AACJ,CAAC;AAUD,4GAA4G;AAC5G,SAAS,WAAW,CAAC,MAAc,EAAE,MAA+B;IAClE,MAAM,IAAI,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,CAAA;IAC9C,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC/B,OAAO;gBACL,GAAG,IAAI;gBACP,MAAM,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE;gBACtC,QAAQ,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE;aAC7D,CAAA;QACH,CAAC;QACD,OAAO;YACL,GAAG,IAAI;YACP,MAAM,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE;YACzC,SAAS,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YAClD,QAAQ,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE;SACxC,CAAA;IACH,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,MAAM,KAAK,GACT,MAAM,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,2BAA2B,CAAA;QACrF,OAAO;YACL,GAAG,IAAI;YACP,MAAM,EAAE;gBACN,KAAK;gBACL,OAAO,EAAE;oBACP,SAAS,EAAE,GAAG,MAAM,UAAU;oBAC9B,MAAM,EAAE,MAAM;oBACd,IAAI,EAAE,YAAY;oBAClB,KAAK,EAAE,EAAE;oBACT,QAAQ,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,CAAC,OAAO,EAAE;iBAClE;aACF;YACD,QAAQ,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE;SACxC,CAAA;IACH,CAAC;IACD,kFAAkF;IAClF,OAAO;QACL,GAAG,IAAI;QACP,MAAM,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE;QACvC,QAAQ,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE;KACxC,CAAA;AACH,CAAC;AAED,gGAAgG;AAChG,SAAS,iBAAiB,CAAC,KAAqB;IAC9C,MAAM,SAAS,GACb,KAAK,CAAC,MAAM,KAAK,WAAW;QAC1B,CAAC,CAAC,sBAAsB;QACxB,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,WAAW;YAC5B,CAAC,CAAC,2BAA2B;YAC7B,CAAC,CAAC,oBAAoB,CAAA;IAC5B,OAAO;QACL,EAAE,EAAE,KAAK,CAAC,MAAM;QAChB,SAAS,EAAE,KAAK,CAAC,MAAM;QACvB,MAAM,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;QAC5B,QAAQ,EAAE;YACR,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;SACxE;KACF,CAAA;AACH,CAAC;AAED,SAAS,cAAc,CAAC,MAAc,EAAE,MAAe;IACrD,OAAO;QACL,UAAU,EAAE,GAAG,MAAM,SAAS;QAC9B,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,CAAC,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;KAC1F,CAAA;AACH,CAAC;AAED,SAAS,WAAW,CAAC,GAAY;IAC/B,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAA;IAC5B,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IAC1C,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;IAClD,IAAI,YAAY,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IAChD,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAA;IAC9B,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAwB,CAAC;QAC/E,OAAO,SAAS,CAAA;IAClB,IAAI,OAAO,YAAY,CAAC,QAAQ,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAA;IAC/D,IAAI,YAAY,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,YAAY,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAA;IAC9F,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IAC1C,OAAO;QACL,YAAY,EAAE;YACZ,IAAI,EAAE,IAAwB;YAC9B,GAAG,CAAC,YAAY,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,IAAc,EAAE,CAAC;YACjF,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9E,QAAQ,EAAE,YAAY,CAAC,QAAQ;SAChC;QACD,GAAG,CAAC,QAAQ,KAAK,SAAS,IAAI,OAAO,QAAQ,CAAC,OAAO,KAAK,SAAS;YACjE,CAAC,CAAC;gBACE,QAAQ,EAAE;oBACR,OAAO,EAAE,QAAQ,CAAC,OAAO;oBACzB,GAAG,CAAC,OAAO,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC5E;aACF;YACH,CAAC,CAAC,EAAE,CAAC;KACR,CAAA;AACH,CAAC;AAED,SAAS,SAAS,CAAC,EAAS,EAAE,MAAe;IAC3C,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,CAAA;AACvC,CAAC;AAED,SAAS,QAAQ,CAAC,EAAgB,EAAE,IAAY,EAAE,OAAe;IAC/D,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAA;AACzD,CAAC;AAED,SAAS,iBAAiB,CAAC,EAAS,EAAE,MAAe;IACnD,OAAO,YAAY,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAA;AACrD,CAAC;AAED,SAAS,gBAAgB,CAAC,EAAgB,EAAE,IAAY,EAAE,OAAe;IACvE,OAAO,YAAY,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAA;AAC3D,CAAC;AAED,SAAS,OAAO,CAAC,KAAc;IAC7B,IACE,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,CAAC,MAAM,GAAG,CAAC;QAChB,KAAK,CAAC,MAAM,IAAI,GAAG;QACnB,CAAC,oBAAoB,CAAC,KAAK,CAAC;QAE5B,OAAO,KAAK,CAAA;IACd,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAA;IACrE,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAa;IACzC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QAClD,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;QACpC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,IAAI,CAAA;IAChD,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAA;IACzF,OAAO,KAAgC,CAAA;AACzC,CAAC;AAED,uGAAuG;AACvG,SAAS,YAAY,CAAC,MAAc,EAAE,IAAa,EAAE,KAAoB;IACvE,IAAI,UAA8B,CAAA;IAClC,IAAI,OAA2B,CAAA;IAC/B,IAAI,CAAC;QACH,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;QACjC,IAAI,UAAU,KAAK,SAAS;YAAE,OAAO,GAAG,+BAA+B,CAAA;IACzE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,+BAA+B,CAAA;IAC3C,CAAC;IACD,oGAAoG;IACpG,IACE,UAAU,KAAK,SAAS;QACxB,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,UAAU,GAAG,gBAAgB;QAElE,OAAO,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,cAAc,CAAA;IACvE,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAA;YAC/C,MAAM,GAAG,GAAG,CAAA;QACd,CAAC;;YAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,CAAA;IAC7F,CAAC;IACD,OAAO,IAAI,QAAQ,CAAC,UAAU,EAAE;QAC9B,MAAM;QACN,OAAO,EAAE,EAAE,cAAc,EAAE,iCAAiC,EAAE;KAC/D,CAAC,CAAA;AACJ,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC9B,QAAkB,EAClB,cAAsB,EACtB,KAAmB;IAEnB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,kBAAkB,CAAC;QAAE,OAAO,QAAQ,CAAA;IAC1F,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAA;IAC1C,IAAI,KAAK,CAAC,UAAU,GAAG,cAAc;QACnC,OAAO,gBAAgB,CAAC,KAAK,EAAE,eAAe,CAAC,aAAa,EAAE,cAAc,CAAC,CAAA;IAC/E,OAAO,IAAI,QAAQ,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAA;AACpF,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAa;IACtC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,gBAAgB;QAC1E,MAAM,IAAI,UAAU,CAAC,+CAA+C,gBAAgB,EAAE,CAAC,CAAA;AAC3F,CAAC;AAED,SAAS,MAAM,CAAC,QAAmC;IACjD,OAAO,QAAQ,YAAY,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,uBAAuB,CAAC,CAAA;AAChG,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nifrajs/a2a",
3
- "version": "4.0.2",
3
+ "version": "5.1.0",
4
4
  "description": "Mount a nifra agent as an Agent2Agent (A2A) protocol server - the agent card on GET, the A2A 1.0 JSON-RPC binding on POST with SendMessage, streaming SendStreamingMessage over SSE, and GetTask projected from the runner's turn state. A protocol bridge over @nifrajs/agent; the model, state store, and approval transport stay injected per request.",
5
5
  "keywords": [
6
6
  "bun",
@@ -36,8 +36,8 @@
36
36
  "build": "tsc -p tsconfig.build.json && bun run ../../scripts/fix-dts.ts dist"
37
37
  },
38
38
  "peerDependencies": {
39
- "@nifrajs/agent": "^4.0.2",
40
- "@nifrajs/core": "^4.0.2"
39
+ "@nifrajs/agent": "^5.1.0",
40
+ "@nifrajs/core": "^5.1.0"
41
41
  },
42
42
  "peerDependenciesMeta": {
43
43
  "@nifrajs/core": {
package/src/index.ts CHANGED
@@ -14,7 +14,7 @@
14
14
  * - `SendStreamingMessage` responds `text/event-stream`; each SSE `data:` field is a complete
15
15
  * JSON-RPC response whose result is `{ statusUpdate }` per step-evidence item, then
16
16
  * `{ artifactUpdate }` for a produced output, then a final `{ statusUpdate }` with
17
- * `final: true`.
17
+ * `final: true`. A client that cancels the body (disconnects) aborts the run's signal.
18
18
  * - `GetTask` projects the stored turn state for a task id (requires `ports.state`).
19
19
  * - Every other spec method returns `UnsupportedOperationError` (-32004): the seam is stateless
20
20
  * per request, so cross-request cancellation and subscription registries belong to the caller.
@@ -22,7 +22,10 @@
22
22
  * `TASK_STATE_INPUT_REQUIRED` whose status message carries the pending continuation in
23
23
  * `metadata`. To resume, send the continuation back via `message.taskId` +
24
24
  * `message.metadata.resume` (`{ continuation, approval? }`); the runtime keeps state token-only,
25
- * so a suspended tool's input must be replayed in `continuation.input`.
25
+ * so a suspended tool's input must be replayed in `continuation.input`. The resuming peer is
26
+ * usually the agent that asked for the tool, so the approval port, not that peer, decides: the
27
+ * peer's `approval` reaches it as `callerDecision`. Return `resumeApproval: "caller"` from `ports`
28
+ * only when the peer is the approver (a human operator's client).
26
29
  * - Agent input is `message.metadata.input` when present, otherwise the first `text` part.
27
30
  * Structured output is returned as a `text` part carrying JSON.
28
31
  * - The seam performs no authentication or authorization. Wrap it with the app's own route guards,
@@ -204,7 +207,10 @@ export function mountA2A<
204
207
  }
205
208
 
206
209
  type RpcId = string | number
207
- type RunStart = (telemetry?: AgentPorts["telemetry"]) => Promise<AgentRunResult<unknown>>
210
+ type RunStart = (
211
+ telemetry?: AgentPorts["telemetry"],
212
+ cancel?: AbortSignal,
213
+ ) => Promise<AgentRunResult<unknown>>
208
214
 
209
215
  async function dispatch<
210
216
  InputSchema extends StandardSchemaV1,
@@ -231,11 +237,21 @@ async function dispatch<
231
237
  const turn = prepareTurn(params)
232
238
  if ("error" in turn) return rpcErrorResponse(id, turn.error.code, turn.error.message)
233
239
  const basePorts = await options.ports(c)
234
- const start: RunStart = (telemetry) => {
240
+ const start: RunStart = (telemetry, cancel) => {
235
241
  // Compose rather than replace: the SSE evidence stream must not displace a telemetry
236
- // port the caller injected through `ports`.
242
+ // port, or a signal, the caller injected through `ports`.
237
243
  const combined = combineAgentTelemetry(basePorts.telemetry, telemetry)
238
- const ports = combined === undefined ? basePorts : { ...basePorts, telemetry: combined }
244
+ const signal =
245
+ cancel === undefined || basePorts.signal === undefined
246
+ ? (cancel ?? basePorts.signal)
247
+ : AbortSignal.any([basePorts.signal, cancel])
248
+ const ports = {
249
+ ...basePorts,
250
+ // The resuming peer is the agent that asked for the tool, so it cannot approve its own call.
251
+ resumeApproval: basePorts.resumeApproval ?? "port",
252
+ ...(combined === undefined ? {} : { telemetry: combined }),
253
+ ...(signal === undefined ? {} : { signal }),
254
+ }
239
255
  if (turn.resume !== undefined) {
240
256
  return resumeAgent(
241
257
  options.agent,
@@ -337,7 +353,15 @@ function streamingResponse(
337
353
  maxOutputBytes: number,
338
354
  ): Response {
339
355
  const stream = createAgentEvidenceStream()
356
+ // A client that disconnects cancels the body; the run is told through its signal.
357
+ const cancelled = new AbortController()
358
+ let clientGone = false
340
359
  const body = new ReadableStream<Uint8Array>({
360
+ cancel() {
361
+ clientGone = true
362
+ cancelled.abort()
363
+ stream.complete()
364
+ },
341
365
  async start(controller) {
342
366
  const encoder = new TextEncoder()
343
367
  let emittedBytes = 0
@@ -348,7 +372,7 @@ function streamingResponse(
348
372
  emittedBytes += frame.byteLength
349
373
  controller.enqueue(frame)
350
374
  }
351
- const run = start(stream)
375
+ const run = start(stream, cancelled.signal)
352
376
  // The evidence stream must terminate whether the run resolves or throws, or the `for await`
353
377
  // below would hang; the run result (or the error) is still reported in-band after it drains.
354
378
  run
@@ -397,6 +421,12 @@ function streamingResponse(
397
421
  }),
398
422
  )
399
423
  } catch (error) {
424
+ // Nothing past the output budget reaches the client, so the run stops as on a disconnect
425
+ // rather than spending model calls nobody reads.
426
+ if (error instanceof A2AOutputLimitError) {
427
+ cancelled.abort()
428
+ stream.complete()
429
+ }
400
430
  try {
401
431
  send(
402
432
  rpcError(
@@ -409,7 +439,8 @@ function streamingResponse(
409
439
  // The output budget itself may be exhausted; the stream still closes below.
410
440
  }
411
441
  } finally {
412
- controller.close()
442
+ // Already closed for us when the client cancelled the body.
443
+ if (!clientGone) controller.close()
413
444
  }
414
445
  },
415
446
  })