@nifrajs/agent 3.5.0 → 4.0.2

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/README.md CHANGED
@@ -67,13 +67,23 @@ AG-UI `STATE_SNAPSHOT`/`STATE_DELTA` events.
67
67
  SSE streams are resumable: give `mountAgent` (or `@nifrajs/ag-ui`'s `mountAgUI`) an `evidenceLog`
68
68
  and `step` frames carry `id: <seq>`. A client that loses the connection re-POSTs the same `turnId`
69
69
  with a `Last-Event-ID` header and receives the missed evidence, rejoining a still-running turn live
70
- or replaying the stored terminal frame - the run is never re-executed.
70
+ or replaying the stored terminal frame - the run is never re-executed. A disconnected run keeps
71
+ going and records its real result for that reconnect. Without an `evidenceLog` nothing can rejoin a
72
+ dropped stream, so the disconnect aborts `ports.signal` and the turn suspends as `cancelled`.
71
73
  `createMemoryAgentEvidenceLog` (from `@nifrajs/agent/events`) is the single-process dev/test
72
74
  reference; a durable, multi-process log is an adapter implementing the same `AgentEvidenceLog`
73
75
  interface.
76
+ When more than one caller shares the route, also pass `evidenceOwner: (c) => <the caller's user or
77
+ tenant id>`: turns are recorded and replayed under that owner, so another caller's reconnect or
78
+ reused `turnId` finds none of them. Without it a turn id works as a bearer capability. The owner
79
+ function runs before any replay; throwing from it refuses the request.
74
80
 
75
81
  Execution policies can be required by a tool contract. `createLocalProcessAdapter` applies cwd and
76
- environment filtering, timeouts, and cancellation to child processes. The local adapter is NOT a
82
+ environment filtering, timeouts, and cancellation to child processes. On POSIX each run leads its
83
+ own process group: a timeout, a cancel, or the run's own end stops every process the command
84
+ started, background ones included, and runs still in flight end when the host exits. On Windows a
85
+ timeout or cancel ends the command's whole process tree (`taskkill /T /F`), but a background process
86
+ still running after the command exits normally is not tracked. The local adapter is NOT a
77
87
  security boundary. Without OS-level sandboxing it contains crashes and accidents, not hostile code.
78
88
 
79
89
  For the compact agent contract, see [`LLM.md`](./LLM.md). The full machine-readable corpus is
@@ -141,6 +141,8 @@ export declare class AgentDeployment {
141
141
  private handleRef;
142
142
  private report;
143
143
  private readonly evidence;
144
+ private queue;
145
+ private starting;
144
146
  constructor(adapter: AgentDeploymentAdapter, authority: DeploymentAuthority, signal?: AbortSignal, options?: DeploymentActivationOptions);
145
147
  private readonly authority;
146
148
  private readonly approved;
@@ -148,10 +150,22 @@ export declare class AgentDeployment {
148
150
  get evidenceRecords(): readonly DeploymentEvidence[];
149
151
  capabilityReport(): Promise<DeploymentCapabilityReport>;
150
152
  prepare(planInput: AgentDeploymentPlan | unknown): Promise<DeploymentPrepareResult>;
153
+ private prepareNow;
151
154
  start(): Promise<DeploymentStartResult>;
155
+ private startNow;
152
156
  inspect(): Promise<DeploymentInspection>;
157
+ private inspectNow;
158
+ /**
159
+ * Cancel the deployment. A start still in flight is asked to stop through its signal, and the
160
+ * cancel runs once it settles, against the workload it left running, if any.
161
+ */
153
162
  cancel(): Promise<DeploymentCancelResult>;
163
+ private cancelNow;
164
+ /** Dispose of the deployment; like {@link cancel}, it first asks a start in flight to stop. */
154
165
  dispose(): Promise<DeploymentDisposeResult>;
166
+ private disposeNow;
167
+ /** Lifecycle calls run one at a time, so each one sees the state the previous one left. */
168
+ private serial;
155
169
  private fail;
156
170
  }
157
171
  //# sourceMappingURL=deployment.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"deployment.d.ts","sourceRoot":"","sources":["../src/deployment.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deployment.d.ts","sourceRoot":"","sources":["../src/deployment.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,IAAI,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAA;AAChF,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,UAAU,GAAG,SAAS,GAAG,cAAc,CAAA;AAChF,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,CAAA;AAChE,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,OAAO,CAAA;AAChD,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,QAAQ,CAAA;AACjD,MAAM,MAAM,sBAAsB,GAAG,MAAM,GAAG,aAAa,GAAG,QAAQ,CAAA;AACtE,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,IAAI,CAAA;AAEhD,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAA;IACnC,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAA;IACnC,QAAQ,CAAC,UAAU,EAAE,oBAAoB,CAAA;IACzC,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAA;IACnC,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAA;IACnC,QAAQ,CAAC,SAAS,EAAE;QAClB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAA;QAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;KAC1B,CAAA;IACD,QAAQ,CAAC,YAAY,EAAE,sBAAsB,CAAA;IAC7C,QAAQ,CAAC,oBAAoB,EAAE,oBAAoB,CAAA;CACpD;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAA;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,YAAY,EAAE,sBAAsB,CAAA;IAC7C,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAA;CACxC;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAA;IAClC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,YAAY,EAAE,sBAAsB,CAAA;IAC7C,QAAQ,CAAC,oBAAoB,EAAE,oBAAoB,CAAA;CACpD;AAED,MAAM,WAAW,2BAA2B;IAC1C,4FAA4F;IAC5F,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAC5B;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;IAC9B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;IACnC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAC7B;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAA;IAClC,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CAAA;IACvC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;CAC7B;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAA;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAC7B;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CAAA;IACvC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;CAC7B;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAA;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;CAC7B;AAED,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,SAAS,GAAG,WAAW,GAAG,UAAU,CAAA;AAE/E,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAA;IAC/B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC5B;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;CAC7B;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAA;CAC5B;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;CAC7B;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAA;CAC3B;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,gBAAgB,IAAI,0BAA0B,GAAG,WAAW,CAAC,0BAA0B,CAAC,CAAA;IACxF,OAAO,CACL,OAAO,EAAE,wBAAwB,GAChC,uBAAuB,GAAG,WAAW,CAAC,uBAAuB,CAAC,CAAA;IACjE,KAAK,CAAC,OAAO,EAAE,sBAAsB,GAAG,qBAAqB,GAAG,WAAW,CAAC,qBAAqB,CAAC,CAAA;IAClG,OAAO,CACL,OAAO,EAAE,wBAAwB,GAChC,oBAAoB,GAAG,WAAW,CAAC,oBAAoB,CAAC,CAAA;IAC3D,MAAM,CACJ,OAAO,EAAE,uBAAuB,GAC/B,sBAAsB,GAAG,WAAW,CAAC,sBAAsB,CAAC,CAAA;IAC/D,OAAO,CACL,OAAO,EAAE,wBAAwB,GAChC,uBAAuB,GAAG,WAAW,CAAC,uBAAuB,CAAC,CAAA;CAClE;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,GAAG,WAAW,GAAG,WAAW,GAAG,UAAU,GAAG,QAAQ,CAAA;IACzF,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,KAAK,EAAE,eAAe,GAAG,KAAK,CAAA;IACvC,QAAQ,CAAC,IAAI,CAAC,EAAE,mBAAmB,CAAA;CACpC,CAAA;AAED,MAAM,MAAM,mBAAmB,GAC3B,sBAAsB,GACtB,mBAAmB,GACnB,iCAAiC,GACjC,oBAAoB,GACpB,cAAc,GACd,oBAAoB,GACpB,oBAAoB,GACpB,eAAe,GACf,WAAW,CAAA;AAEf,qBAAa,eAAgB,SAAQ,KAAK;IAC5B,QAAQ,CAAC,IAAI,EAAE,mBAAmB;gBAAzB,IAAI,EAAE,mBAAmB;CAI/C;AA+CD,8EAA8E;AAC9E,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,OAAO,GAAG,0BAA0B,CA8D1F;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,mBAAmB,CAgCvE;AA2ED,gFAAgF;AAChF,wBAAgB,kCAAkC,CAChD,MAAM,EAAE,mBAAmB,EAC3B,KAAK,EAAE,mBAAmB,GACzB,IAAI,CAYN;AAiCD,wBAAgB,yBAAyB,CAAC,KAAK,EAAE;IAC/C,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAA;IAClC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,YAAY,CAAC,EAAE,sBAAsB,CAAA;IAC9C,QAAQ,CAAC,oBAAoB,CAAC,EAAE,oBAAoB,CAAA;CACrD,GAAG,mBAAmB,CAOtB;AAED,iEAAiE;AACjE,qBAAa,eAAe;IAYxB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAExB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAbzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,KAAK,CAAiC;IAC9C,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,SAAS,CAAoB;IACrC,OAAO,CAAC,MAAM,CAAwC;IACtD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA2B;IACpD,OAAO,CAAC,KAAK,CAAsC;IACnD,OAAO,CAAC,QAAQ,CAA6B;gBAG1B,OAAO,EAAE,sBAAsB,EAChD,SAAS,EAAE,mBAAmB,EACb,MAAM,GAAE,WAA0C,EACnE,OAAO,GAAE,2BAAgC;IAO3C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqB;IAC/C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAElC,IAAI,cAAc,IAAI,KAAK,GAAG,eAAe,CAE5C;IAED,IAAI,eAAe,IAAI,SAAS,kBAAkB,EAAE,CAEnD;IAEK,gBAAgB,IAAI,OAAO,CAAC,0BAA0B,CAAC;IAW7D,OAAO,CAAC,SAAS,EAAE,mBAAmB,GAAG,OAAO,GAAG,OAAO,CAAC,uBAAuB,CAAC;YAIrE,UAAU;IA6BxB,KAAK,IAAI,OAAO,CAAC,qBAAqB,CAAC;YAIzB,QAAQ;IAgCtB,OAAO,IAAI,OAAO,CAAC,oBAAoB,CAAC;YAI1B,UAAU;IAuBxB;;;OAGG;IACH,MAAM,IAAI,OAAO,CAAC,sBAAsB,CAAC;YAK3B,SAAS;IAsBvB,+FAA+F;IAC/F,OAAO,IAAI,OAAO,CAAC,uBAAuB,CAAC;YAK7B,UAAU;IA0BxB,2FAA2F;IAC3F,OAAO,CAAC,MAAM;IAMd,OAAO,CAAC,IAAI;CASb"}
@@ -227,6 +227,8 @@ export class AgentDeployment {
227
227
  handleRef;
228
228
  report;
229
229
  evidence = [];
230
+ queue = Promise.resolve();
231
+ starting;
230
232
  constructor(adapter, authority, signal = new AbortController().signal, options = {}) {
231
233
  this.adapter = adapter;
232
234
  this.signal = signal;
@@ -255,15 +257,28 @@ export class AgentDeployment {
255
257
  throw asDeploymentError(error, "invalid_capabilities");
256
258
  }
257
259
  }
258
- async prepare(planInput) {
260
+ prepare(planInput) {
261
+ return this.serial(() => this.prepareNow(planInput));
262
+ }
263
+ async prepareNow(planInput) {
259
264
  if (this.state !== "new")
260
265
  return this.fail("invalid_transition");
261
- const plan = parseDeploymentPlan(planInput);
266
+ let plan;
267
+ try {
268
+ plan = parseDeploymentPlan(planInput);
269
+ }
270
+ catch (error) {
271
+ return this.fail(asDeploymentError(error, "invalid_plan").code);
272
+ }
262
273
  this.deploymentId = plan.deploymentId;
263
274
  if (this.signal.aborted)
264
275
  return this.fail("cancelled");
265
- const report = await this.capabilityReport();
266
- assertCapabilityPlan(report, plan, this.authority, this.approved);
276
+ try {
277
+ assertCapabilityPlan(await this.capabilityReport(), plan, this.authority, this.approved);
278
+ }
279
+ catch (error) {
280
+ return this.fail(asDeploymentError(error, "invalid_capabilities").code);
281
+ }
267
282
  try {
268
283
  const result = parsePrepare(await this.adapter.prepare({ plan, authority: this.authority, signal: this.signal }), plan.deploymentId);
269
284
  this.preparedRef = result.preparedRef;
@@ -275,19 +290,24 @@ export class AgentDeployment {
275
290
  return this.fail(asDeploymentError(error, "adapter_error").code);
276
291
  }
277
292
  }
278
- async start() {
293
+ start() {
294
+ return this.serial(() => this.startNow());
295
+ }
296
+ async startNow() {
279
297
  if (this.state !== "prepared" ||
280
298
  this.preparedRef === undefined ||
281
299
  this.deploymentId === undefined)
282
300
  return this.fail("invalid_transition");
283
301
  if (this.signal.aborted)
284
302
  return this.fail("cancelled");
303
+ const starting = new AbortController();
304
+ this.starting = starting;
285
305
  try {
286
306
  const result = parseStart(await this.adapter.start({
287
307
  deploymentId: this.deploymentId,
288
308
  preparedRef: this.preparedRef,
289
309
  authority: this.authority,
290
- signal: this.signal,
310
+ signal: AbortSignal.any([this.signal, starting.signal]),
291
311
  }), this.deploymentId);
292
312
  this.handleRef = result.handleRef;
293
313
  this.state = "running";
@@ -295,10 +315,18 @@ export class AgentDeployment {
295
315
  return result;
296
316
  }
297
317
  catch (error) {
318
+ if (starting.signal.aborted)
319
+ return this.fail("cancelled");
298
320
  return this.fail(asDeploymentError(error, "adapter_error").code);
299
321
  }
322
+ finally {
323
+ this.starting = undefined;
324
+ }
300
325
  }
301
- async inspect() {
326
+ inspect() {
327
+ return this.serial(() => this.inspectNow());
328
+ }
329
+ async inspectNow() {
302
330
  if (this.state === "new" || this.state === "disposed" || this.deploymentId === undefined)
303
331
  return this.fail("invalid_transition");
304
332
  try {
@@ -318,7 +346,15 @@ export class AgentDeployment {
318
346
  return this.fail(asDeploymentError(error, "adapter_error").code);
319
347
  }
320
348
  }
321
- async cancel() {
349
+ /**
350
+ * Cancel the deployment. A start still in flight is asked to stop through its signal, and the
351
+ * cancel runs once it settles, against the workload it left running, if any.
352
+ */
353
+ cancel() {
354
+ this.starting?.abort();
355
+ return this.serial(() => this.cancelNow());
356
+ }
357
+ async cancelNow() {
322
358
  if ((this.state !== "prepared" && this.state !== "running") || this.deploymentId === undefined)
323
359
  return this.fail("invalid_transition");
324
360
  try {
@@ -336,7 +372,12 @@ export class AgentDeployment {
336
372
  return this.fail(asDeploymentError(error, "adapter_error").code);
337
373
  }
338
374
  }
339
- async dispose() {
375
+ /** Dispose of the deployment; like {@link cancel}, it first asks a start in flight to stop. */
376
+ dispose() {
377
+ this.starting?.abort();
378
+ return this.serial(() => this.disposeNow());
379
+ }
380
+ async disposeNow() {
340
381
  if (this.state === "disposed")
341
382
  return { deploymentId: this.deploymentId ?? this.id, state: "disposed" };
342
383
  try {
@@ -358,6 +399,12 @@ export class AgentDeployment {
358
399
  return this.fail(asDeploymentError(error, "adapter_error").code);
359
400
  }
360
401
  }
402
+ /** Lifecycle calls run one at a time, so each one sees the state the previous one left. */
403
+ serial(operation) {
404
+ const run = this.queue.then(operation);
405
+ this.queue = run.catch(() => { });
406
+ return run;
407
+ }
361
408
  fail(code) {
362
409
  this.evidence.push({
363
410
  kind: "failed",
@@ -1 +1 @@
1
- {"version":3,"file":"deployment.js","sourceRoot":"","sources":["../src/deployment.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deployment.js","sourceRoot":"","sources":["../src/deployment.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,KAAK,GAAG,qCAAqC,CAAA;AACnD,MAAM,SAAS,GAAG,cAAc,CAAA;AAqJhC,MAAM,OAAO,eAAgB,SAAQ,KAAK;IACnB;IAArB,YAAqB,IAAyB;QAC5C,KAAK,CAAC,cAAc,IAAI,EAAE,CAAC,CAAA;QADR,SAAI,GAAJ,IAAI,CAAqB;QAE5C,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAA;IAC/B,CAAC;CACF;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;AAC7E,CAAC;AAED,SAAS,YAAY,CACnB,KAAc,EACd,MAAc,EACd,OAA4B,cAAc;IAE1C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,eAAe,CAAC,IAAI,CAAC,CAAA;IACpF,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,YAAY,CACnB,KAAc,EACd,MAAc,EACd,OAA4B,cAAc;IAE1C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,SAAS;QAC7F,MAAM,IAAI,eAAe,CAAC,IAAI,CAAC,CAAA;IACjC,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,SAAS,CAChB,KAA8B,EAC9B,IAAyB,EACzB,IAAyB;IAEzB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,MAAM,IAAI,eAAe,CAAC,IAAI,CAAC,CAAA;AAC3F,CAAC;AAED,MAAM,QAAQ,GAAwB,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAA;AAC7F,MAAM,QAAQ,GAAwB,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC,CAAA;AAC9F,MAAM,WAAW,GAAwB,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC,CAAA;AAC/E,MAAM,SAAS,GAAwB,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;AACjE,MAAM,OAAO,GAAwB,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAA;AAChE,MAAM,aAAa,GAAwB,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAA;AACrF,MAAM,UAAU,GAAwB,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAA;AAE/D,SAAS,MAAM,CAAmB,KAAc,EAAE,MAA2B;IAC3E,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;QACjD,MAAM,IAAI,eAAe,CAAC,sBAAsB,CAAC,CAAA;IACnD,OAAO,KAAU,CAAA;AACnB,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,+BAA+B,CAAC,KAAc;IAC5D,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,eAAe,CAAC,sBAAsB,CAAC,CAAA;IACvE,SAAS,CACP,KAAK,EACL,IAAI,GAAG,CAAC,CAAC,eAAe,EAAE,WAAW,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC,EACtE,sBAAsB,CACvB,CAAA;IACD,IAAI,KAAK,CAAC,aAAa,KAAK,CAAC;QAAE,MAAM,IAAI,eAAe,CAAC,sBAAsB,CAAC,CAAA;IAChF,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,SAAS,EAAE,WAAW,EAAE,sBAAsB,CAAC,CAAA;IACpF,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC;QAAE,MAAM,IAAI,eAAe,CAAC,sBAAsB,CAAC,CAAA;IACpF,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,CAAA;IACvC,SAAS,CACP,YAAY,EACZ,IAAI,GAAG,CAAC;QACN,SAAS;QACT,SAAS;QACT,YAAY;QACZ,SAAS;QACT,SAAS;QACT,WAAW;QACX,cAAc;QACd,sBAAsB;KACvB,CAAC,EACF,sBAAsB,CACvB,CAAA;IACD,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC;QAAE,MAAM,IAAI,eAAe,CAAC,sBAAsB,CAAC,CAAA;IACxF,SAAS,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,EAAE,sBAAsB,CAAC,CAAA;IACxF,MAAM,aAAa,GAAG,MAAM,CAC1B,YAAY,CAAC,SAAS,CAAC,IAAI,EAC3B,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAC5B,CAAA;IACD,MAAM,QAAQ,GAAG,YAAY,CAC3B,YAAY,CAAC,SAAS,CAAC,QAAQ,EAC/B,oBAAoB,EACpB,sBAAsB,CACvB,CAAA;IACD,IAAI,aAAa,KAAK,MAAM,IAAI,QAAQ,KAAK,CAAC;QAAE,MAAM,IAAI,eAAe,CAAC,sBAAsB,CAAC,CAAA;IACjG,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAA;IACrC,IACE,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;QAC3B,WAAW,CAAC,MAAM,GAAG,EAAE;QACvB,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEzE,MAAM,IAAI,eAAe,CAAC,sBAAsB,CAAC,CAAA;IACnD,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,aAAa,EAAE,CAAC;QAChB,SAAS;QACT,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC;YAC1B,OAAO,EAAE,MAAM,CAAoB,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC;YAClE,OAAO,EAAE,MAAM,CAAoB,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC;YAClE,UAAU,EAAE,MAAM,CAAuB,YAAY,CAAC,UAAU,EAAE,WAAW,CAAC;YAC9E,OAAO,EAAE,MAAM,CAAoB,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC;YACnE,OAAO,EAAE,MAAM,CAAoB,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC;YACjE,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC;YAC3D,YAAY,EAAE,MAAM,CAAyB,YAAY,CAAC,YAAY,EAAE,aAAa,CAAC;YACtF,oBAAoB,EAAE,MAAM,CAC1B,YAAY,CAAC,oBAAoB,EACjC,UAAU,CACX;SACF,CAAC;QACF,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC;KAC7C,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAc;IAChD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,eAAe,CAAC,cAAc,CAAC,CAAA;IAC/D,SAAS,CACP,KAAK,EACL,IAAI,GAAG,CAAC,CAAC,cAAc,EAAE,aAAa,EAAE,mBAAmB,EAAE,YAAY,CAAC,CAAC,EAC3E,cAAc,CACf,CAAA;IACD,MAAM,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,YAAY,EAAE,cAAc,CAAC,CAAA;IACrE,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS,IAAI,OAAO,KAAK,CAAC,WAAW,KAAK,SAAS;QAC3E,MAAM,IAAI,eAAe,CAAC,cAAc,CAAC,CAAA;IAC3C,MAAM,iBAAiB,GACrB,KAAK,CAAC,iBAAiB,KAAK,SAAS;QACnC,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,iBAAiB,EAAE,mBAAmB,EAAE,cAAc,CAAC,CAAA;IAChF,MAAM,aAAa,GAAG,KAAK,CAAC,UAAU,CAAA;IACtC,MAAM,UAAU,GACd,aAAa,KAAK,SAAS;QACzB,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,OAAO,aAAa,KAAK,QAAQ;YACjC,CAAC,CAAC,aAAa;YACf,CAAC,CAAC,IAAI,CAAA;IACZ,IACE,UAAU,KAAK,IAAI;QACnB,CAAC,UAAU,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,UAAU,IAAI,CAAC,CAAC,CAAC;QAEpF,MAAM,IAAI,eAAe,CAAC,cAAc,CAAC,CAAA;IAC3C,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,YAAY;QACZ,GAAG,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC;QAC9E,GAAG,CAAC,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,CAAC;QACjE,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC;KACpD,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;QACjD,MAAM,IAAI,eAAe,CAAC,oBAAoB,CAAC,CAAA;IACjD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc,EAAE,QAAyB;IACnE,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAA;AACpD,CAAC;AAED,SAAS,YAAY,CAAC,KAAc,EAAE,YAAoB;IACxD,IACE,CAAC,QAAQ,CAAC,KAAK,CAAC;QAChB,KAAK,CAAC,YAAY,KAAK,YAAY;QACnC,CAAC,kBAAkB,CAAC,KAAK,EAAE,UAAU,CAAC;QAEtC,MAAM,IAAI,eAAe,CAAC,oBAAoB,CAAC,CAAA;IACjD,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,YAAY;QACZ,KAAK,EAAE,UAAU;QACjB,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC;KACzC,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,KAAc,EAAE,YAAoB;IACtD,IACE,CAAC,QAAQ,CAAC,KAAK,CAAC;QAChB,KAAK,CAAC,YAAY,KAAK,YAAY;QACnC,CAAC,kBAAkB,CAAC,KAAK,EAAE,SAAS,CAAC;QAErC,MAAM,IAAI,eAAe,CAAC,oBAAoB,CAAC,CAAA;IACjD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;AAChG,CAAC;AAED,SAAS,eAAe,CAAC,KAAc,EAAE,YAAoB;IAC3D,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,YAAY,KAAK,YAAY,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ;QAC5F,MAAM,IAAI,eAAe,CAAC,oBAAoB,CAAC,CAAA;IACjD,IAAI,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC;QACzE,MAAM,IAAI,eAAe,CAAC,oBAAoB,CAAC,CAAA;IACjD,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;IACvF,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,YAAY;QACZ,KAAK,EAAE,KAAK,CAAC,KAAwB;QACrC,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC;KAClD,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,aAAa,CACpB,KAAc,EACd,YAAoB,EACpB,KAAY;IAEZ,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,YAAY,KAAK,YAAY,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC;QAC9F,MAAM,IAAI,eAAe,CAAC,oBAAoB,CAAC,CAAA;IACjD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAA;AAC/C,CAAC;AAED,SAAS,iBAAiB,CAAC,SAA8B;IACvD,MAAM,iBAAiB,GAAG,YAAY,CACpC,SAAS,CAAC,iBAAiB,EAC3B,6BAA6B,EAC7B,oBAAoB,CACrB,CAAA;IACD,IACE,SAAS,CAAC,UAAU,KAAK,SAAS;QAClC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,SAAS,CAAC,UAAU,IAAI,CAAC,CAAC;QAE1E,MAAM,IAAI,eAAe,CAAC,oBAAoB,CAAC,CAAA;IACjD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,oBAAoB,CAAC;QAC/F,MAAM,IAAI,eAAe,CAAC,oBAAoB,CAAC,CAAA;IACjD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,SAAS,EAAE,iBAAiB,EAAE,CAAC,CAAA;AAC3D,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,kCAAkC,CAChD,MAA2B,EAC3B,KAA0B;IAE1B,MAAM,CAAC,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAA;IACnC,MAAM,CAAC,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAA;IAClC,IAAI,CAAC,CAAC,iBAAiB,GAAG,CAAC,CAAC,iBAAiB;QAAE,MAAM,IAAI,eAAe,CAAC,oBAAoB,CAAC,CAAA;IAC9F,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS,IAAI,CAAC,CAAC,CAAC,UAAU,KAAK,SAAS,IAAI,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC;QAC3F,MAAM,IAAI,eAAe,CAAC,oBAAoB,CAAC,CAAA;IACjD,IAAI,CAAC,CAAC,YAAY,KAAK,MAAM,IAAI,CAAC,CAAC,YAAY,KAAK,MAAM;QACxD,MAAM,IAAI,eAAe,CAAC,oBAAoB,CAAC,CAAA;IACjD,IAAI,CAAC,CAAC,YAAY,KAAK,aAAa,IAAI,CAAC,CAAC,YAAY,KAAK,QAAQ;QACjE,MAAM,IAAI,eAAe,CAAC,oBAAoB,CAAC,CAAA;IACjD,IAAI,CAAC,CAAC,oBAAoB,KAAK,MAAM,IAAI,CAAC,CAAC,oBAAoB,KAAK,MAAM;QACxE,MAAM,IAAI,eAAe,CAAC,oBAAoB,CAAC,CAAA;AACnD,CAAC;AAED,SAAS,oBAAoB,CAC3B,MAAkC,EAClC,IAAyB,EACzB,SAA8B,EAC9B,QAAiB;IAEjB,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,CAAA;IACxC,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,YAAY,CAAC,oBAAoB,KAAK,IAAI;QACzE,MAAM,IAAI,eAAe,CAAC,iCAAiC,CAAC,CAAA;IAC9D,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,SAAS,CAAC,oBAAoB,KAAK,IAAI;QACtE,MAAM,IAAI,eAAe,CAAC,iCAAiC,CAAC,CAAA;IAC9D,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,CAAC,QAAQ;QACxC,MAAM,IAAI,eAAe,CAAC,iCAAiC,CAAC,CAAA;IAC9D,IACE,IAAI,CAAC,iBAAiB,KAAK,SAAS;QACpC,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,KAAK,QAAQ;YACvC,IAAI,CAAC,iBAAiB,GAAG,YAAY,CAAC,SAAS,CAAC,QAAQ,CAAC;QAE3D,MAAM,IAAI,eAAe,CAAC,mBAAmB,CAAC,CAAA;IAChD,IAAI,IAAI,CAAC,iBAAiB,KAAK,SAAS,IAAI,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC,iBAAiB;QAC9F,MAAM,IAAI,eAAe,CAAC,oBAAoB,CAAC,CAAA;IACjD,IAAI,SAAS,CAAC,YAAY,KAAK,MAAM,IAAI,YAAY,CAAC,YAAY,KAAK,MAAM;QAC3E,MAAM,IAAI,eAAe,CAAC,mBAAmB,CAAC,CAAA;IAChD,IACE,IAAI,CAAC,UAAU,KAAK,SAAS;QAC7B,SAAS,CAAC,UAAU,KAAK,SAAS;QAClC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,UAAU;QAEtC,MAAM,IAAI,eAAe,CAAC,oBAAoB,CAAC,CAAA;AACnD,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,KAKzC;IACC,OAAO,iBAAiB,CAAC;QACvB,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;QAC1C,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;QAC3E,YAAY,EAAE,KAAK,CAAC,YAAY,IAAI,aAAa;QACjD,oBAAoB,EAAE,KAAK,CAAC,oBAAoB,IAAI,MAAM;KAC3D,CAAC,CAAA;AACJ,CAAC;AAED,iEAAiE;AACjE,MAAM,OAAO,eAAe;IAYP;IAEA;IAbV,EAAE,CAAQ;IACX,YAAY,CAAoB;IAChC,KAAK,GAA4B,KAAK,CAAA;IACtC,WAAW,CAAoB;IAC/B,SAAS,CAAoB;IAC7B,MAAM,CAAwC;IACrC,QAAQ,GAAyB,EAAE,CAAA;IAC5C,KAAK,GAAqB,OAAO,CAAC,OAAO,EAAE,CAAA;IAC3C,QAAQ,CAA6B;IAE7C,YACmB,OAA+B,EAChD,SAA8B,EACb,SAAsB,IAAI,eAAe,EAAE,CAAC,MAAM,EACnE,UAAuC,EAAE;QAHxB,YAAO,GAAP,OAAO,CAAwB;QAE/B,WAAM,GAAN,MAAM,CAA4C;QAGnE,IAAI,CAAC,EAAE,GAAG,YAAY,CAAC,OAAO,CAAC,EAAE,EAAE,YAAY,CAAC,CAAA;QAChD,IAAI,CAAC,SAAS,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAA;QAC7C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAA;IAC3C,CAAC;IAEgB,SAAS,CAAqB;IAC9B,QAAQ,CAAS;IAElC,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAA;IAC1C,CAAC;IAED,KAAK,CAAC,gBAAgB;QACpB,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC,MAAM,CAAA;QACjD,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,GAAG,+BAA+B,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAA;YACpF,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,KAAK,IAAI,CAAC,EAAE;gBAAE,MAAM,IAAI,eAAe,CAAC,sBAAsB,CAAC,CAAA;YACxF,OAAO,IAAI,CAAC,MAAM,CAAA;QACpB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,CAAC,CAAA;QACxD,CAAC;IACH,CAAC;IAED,OAAO,CAAC,SAAwC;QAC9C,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAA;IACtD,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,SAAkB;QACzC,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK;YAAE,OAAO,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAA;QAChE,IAAI,IAAyB,CAAA;QAC7B,IAAI,CAAC;YACH,IAAI,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAA;QACvC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,IAAI,CAAC,CAAA;QACjE,CAAC;QACD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAA;QACrC,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QACtD,IAAI,CAAC;YACH,oBAAoB,CAAC,MAAM,IAAI,CAAC,gBAAgB,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC1F,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,CAAC,CAAC,IAAI,CAAC,CAAA;QACzE,CAAC;QACD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,YAAY,CACzB,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,EACpF,IAAI,CAAC,YAAY,CAClB,CAAA;YACD,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAA;YACrC,IAAI,CAAC,KAAK,GAAG,UAAU,CAAA;YACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAA;YAC5F,OAAO,MAAM,CAAA;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC,IAAI,CAAC,CAAA;QAClE,CAAC;IACH,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC3C,CAAC;IAEO,KAAK,CAAC,QAAQ;QACpB,IACE,IAAI,CAAC,KAAK,KAAK,UAAU;YACzB,IAAI,CAAC,WAAW,KAAK,SAAS;YAC9B,IAAI,CAAC,YAAY,KAAK,SAAS;YAE/B,OAAO,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAA;QACxC,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QACtD,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAA;QACtC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,UAAU,CACvB,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;gBACvB,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;aACxD,CAAC,EACF,IAAI,CAAC,YAAY,CAClB,CAAA;YACD,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAA;YACjC,IAAI,CAAC,KAAK,GAAG,SAAS,CAAA;YACtB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;YAC1F,OAAO,MAAM,CAAA;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,QAAQ,CAAC,MAAM,CAAC,OAAO;gBAAE,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;YAC1D,OAAO,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC,IAAI,CAAC,CAAA;QAClE,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAA;QAC3B,CAAC;IACH,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAA;IAC7C,CAAC;IAEO,KAAK,CAAC,UAAU;QACtB,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,KAAK,UAAU,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS;YACtF,OAAO,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAA;QACxC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,eAAe,CAC5B,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;gBACzB,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;gBACtE,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB,CAAC,EACF,IAAI,CAAC,YAAY,CAClB,CAAA;YACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACjB,IAAI,EAAE,WAAW;gBACjB,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,KAAK,EAAE,MAAM,CAAC,KAAK;aACpB,CAAC,CAAA;YACF,OAAO,MAAM,CAAA;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC,IAAI,CAAC,CAAA;QAClE,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,MAAM;QACJ,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAA;QACtB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAA;IAC5C,CAAC;IAEO,KAAK,CAAC,SAAS;QACrB,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,UAAU,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS;YAC5F,OAAO,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAA;QACxC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,aAAa,CAC1B,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;gBACxB,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,GAAG,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;gBAC5E,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;gBACtE,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB,CAAC,EACF,IAAI,CAAC,YAAY,EACjB,WAAW,CACZ,CAAA;YACD,IAAI,CAAC,KAAK,GAAG,WAAW,CAAA;YACxB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAA;YAC9F,OAAO,MAAM,CAAA;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC,IAAI,CAAC,CAAA;QAClE,CAAC;IACH,CAAC;IAED,+FAA+F;IAC/F,OAAO;QACL,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAA;QACtB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAA;IAC7C,CAAC;IAEO,KAAK,CAAC,UAAU;QACtB,IAAI,IAAI,CAAC,KAAK,KAAK,UAAU;YAC3B,OAAO,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAAA;QAC1E,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,aAAa,CAC1B,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;gBACzB,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,EAAE;gBAC1C,GAAG,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;gBAC5E,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;gBACtE,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB,CAAC,EACF,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,EAAE,EAC5B,UAAU,CACX,CAAA;YACD,IAAI,CAAC,KAAK,GAAG,UAAU,CAAA;YACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACjB,IAAI,EAAE,UAAU;gBAChB,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,EAAE;gBAC1C,KAAK,EAAE,UAAU;aAClB,CAAC,CAAA;YACF,OAAO,MAAM,CAAA;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC,IAAI,CAAC,CAAA;QAClE,CAAC;IACH,CAAC;IAED,2FAA2F;IACnF,MAAM,CAAI,SAA2B;QAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACtC,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QAChC,OAAO,GAAG,CAAA;IACZ,CAAC;IAEO,IAAI,CAAC,IAAyB;QACpC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YACjB,IAAI,EAAE,QAAQ;YACd,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,EAAE;YAC1C,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI;SACL,CAAC,CAAA;QACF,MAAM,IAAI,eAAe,CAAC,IAAI,CAAC,CAAA;IACjC,CAAC;CACF;AAED,SAAS,iBAAiB,CAAC,KAAc,EAAE,QAA6B;IACtE,OAAO,KAAK,YAAY,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,eAAe,CAAC,QAAQ,CAAC,CAAA;AACjF,CAAC"}
package/dist/events.d.ts CHANGED
@@ -50,8 +50,17 @@ export interface AgentEvidenceLog {
50
50
  /** The turn's evidence after `afterSeq`, or `undefined` for an unknown turn. */
51
51
  replay(turnId: string, afterSeq: number): AgentEvidenceReplay | undefined | Promise<AgentEvidenceReplay | undefined>;
52
52
  }
53
+ /**
54
+ * A view of `log` holding one owner's turns: every turn id is recorded and replayed under `owner`
55
+ * (the caller's user or tenant id), so another owner's reconnect or reused turn id finds none of
56
+ * them. The HTTP seams apply it per request through their `evidenceOwner` option.
57
+ */
58
+ export declare function scopeAgentEvidenceLog(log: AgentEvidenceLog, owner: string): AgentEvidenceLog;
53
59
  export interface MemoryAgentEvidenceLogOptions {
54
- /** Maximum retained turns; the oldest turn is evicted when a new one opens. Default 256. */
60
+ /**
61
+ * Maximum retained turns. Opening one more evicts the oldest finished turn, or the oldest turn when
62
+ * none has finished; an evicted running turn ends its rejoined replays with no result. Default 256.
63
+ */
55
64
  readonly maxTurns?: number;
56
65
  }
57
66
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAEvE,iDAAiD;AACjD,MAAM,WAAW,0BAA0B;IACzC,sFAAsF;IACtF,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAC/B;AAED;;;;;GAKG;AACH,MAAM,WAAW,mBACf,SAAQ,kBAAkB,EACxB,qBAAqB,CAAC,iBAAiB,CAAC;IAC1C,QAAQ,IAAI,IAAI,CAAA;IAChB;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAED,yFAAyF;AACzF,wBAAgB,yBAAyB,CACvC,OAAO,GAAE,0BAA+B,GACvC,mBAAmB,CAwDrB;AAMD,iFAAiF;AACjF,MAAM,WAAW,mBAAmB;IAClC,wFAAwF;IACxF,QAAQ,CAAC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,CAAA;IAC/C,2FAA2F;IAC3F,QAAQ,CAAC,IAAI,EAAE,mBAAmB,GAAG,SAAS,CAAA;IAC9C,4FAA4F;IAC5F,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;CAClC;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,kBAAkB,CAAA;IACxC,gGAAgG;IAChG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7D,gFAAgF;IAChF,MAAM,CACJ,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,mBAAmB,GAAG,SAAS,GAAG,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC,CAAA;CAC9E;AAED,MAAM,WAAW,6BAA6B;IAC5C,4FAA4F;IAC5F,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAC3B;AAUD;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,GAAE,6BAAkC,GAC1C,gBAAgB,CA+DlB"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAEvE,iDAAiD;AACjD,MAAM,WAAW,0BAA0B;IACzC,sFAAsF;IACtF,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAC/B;AAED;;;;;GAKG;AACH,MAAM,WAAW,mBACf,SAAQ,kBAAkB,EACxB,qBAAqB,CAAC,iBAAiB,CAAC;IAC1C,QAAQ,IAAI,IAAI,CAAA;IAChB;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAED,yFAAyF;AACzF,wBAAgB,yBAAyB,CACvC,OAAO,GAAE,0BAA+B,GACvC,mBAAmB,CAwDrB;AAMD,iFAAiF;AACjF,MAAM,WAAW,mBAAmB;IAClC,wFAAwF;IACxF,QAAQ,CAAC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,CAAA;IAC/C,2FAA2F;IAC3F,QAAQ,CAAC,IAAI,EAAE,mBAAmB,GAAG,SAAS,CAAA;IAC9C,4FAA4F;IAC5F,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;CAClC;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,kBAAkB,CAAA;IACxC,gGAAgG;IAChG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7D,gFAAgF;IAChF,MAAM,CACJ,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,mBAAmB,GAAG,SAAS,GAAG,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC,CAAA;CAC9E;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,GAAG,gBAAgB,CAU5F;AAED,MAAM,WAAW,6BAA6B;IAC5C;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAC3B;AAUD;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,GAAE,6BAAkC,GAC1C,gBAAgB,CA6ElB"}
package/dist/events.js CHANGED
@@ -58,6 +58,22 @@ export function createAgentEvidenceStream(options = {}) {
58
58
  };
59
59
  return stream;
60
60
  }
61
+ /**
62
+ * A view of `log` holding one owner's turns: every turn id is recorded and replayed under `owner`
63
+ * (the caller's user or tenant id), so another owner's reconnect or reused turn id finds none of
64
+ * them. The HTTP seams apply it per request through their `evidenceOwner` option.
65
+ */
66
+ export function scopeAgentEvidenceLog(log, owner) {
67
+ if (typeof owner !== "string" || owner === "")
68
+ throw new TypeError("agent evidence log: owner must be a non-empty string");
69
+ // Turn ids never contain "/", and the encoded owner never does either, so keys cannot collide.
70
+ const prefix = `${encodeURIComponent(owner)}/`;
71
+ return {
72
+ open: (turnId) => log.open(prefix + turnId),
73
+ finish: (turnId, result) => log.finish(prefix + turnId, result),
74
+ replay: (turnId, afterSeq) => log.replay(prefix + turnId, afterSeq),
75
+ };
76
+ }
61
77
  /**
62
78
  * In-memory {@link AgentEvidenceLog} reference for local development and tests. Single-process by
63
79
  * construction: replay only sees runs recorded by this instance. Retention is bounded by
@@ -74,16 +90,36 @@ export function createMemoryAgentEvidenceLog(options = {}) {
74
90
  record.resolveResult = resolve;
75
91
  });
76
92
  };
93
+ const settle = (turn, result) => {
94
+ turn.finished = true;
95
+ turn.resolveResult(result);
96
+ for (const subscriber of turn.subscribers)
97
+ subscriber.complete();
98
+ turn.subscribers.clear();
99
+ };
100
+ const evictOne = () => {
101
+ let victim;
102
+ for (const [id, turn] of turns) {
103
+ if (turn.finished) {
104
+ victim = id;
105
+ break;
106
+ }
107
+ }
108
+ victim ??= turns.keys().next().value;
109
+ if (victim === undefined)
110
+ return;
111
+ const turn = turns.get(victim);
112
+ turns.delete(victim);
113
+ // Its finish() can no longer find it by id, so a rejoined replay would wait forever.
114
+ if (turn !== undefined && !turn.finished)
115
+ settle(turn, undefined);
116
+ };
77
117
  return {
78
118
  open(turnId) {
79
119
  let turn = turns.get(turnId);
80
120
  if (turn === undefined) {
81
- while (turns.size >= maxTurns) {
82
- const oldest = turns.keys().next().value;
83
- if (oldest === undefined)
84
- break;
85
- turns.delete(oldest);
86
- }
121
+ while (turns.size >= maxTurns)
122
+ evictOne();
87
123
  turn = {
88
124
  evidence: [],
89
125
  finished: false,
@@ -112,11 +148,7 @@ export function createMemoryAgentEvidenceLog(options = {}) {
112
148
  const turn = turns.get(turnId);
113
149
  if (turn === undefined || turn.finished)
114
150
  return;
115
- turn.finished = true;
116
- turn.resolveResult(result);
117
- for (const subscriber of turn.subscribers)
118
- subscriber.complete();
119
- turn.subscribers.clear();
151
+ settle(turn, result);
120
152
  },
121
153
  replay(turnId, afterSeq) {
122
154
  const turn = turns.get(turnId);
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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"}
@@ -38,6 +38,16 @@ export interface LocalProcessAdapter extends ExecutionPolicyAdapter {
38
38
  * a security boundary. Without OS-level sandboxing it contains crashes and accidents, not hostile code.
39
39
  */
40
40
  export declare function createLocalProcessAdapter(options?: LocalProcessAdapterOptions): LocalProcessAdapter;
41
+ /**
42
+ * End a Windows process and its descendants. Windows has no process groups, and a console child
43
+ * cannot be asked to stop, so the tree is terminated outright.
44
+ */
45
+ export declare function windowsTreeKill(pid: number, run?: (command: string, args: readonly string[], options: {
46
+ stdio: "ignore";
47
+ windowsHide: boolean;
48
+ }) => {
49
+ on(event: "error", listener: () => void): unknown;
50
+ }): void;
41
51
  export type { ExecutionPolicy, ExecutionPolicyAdapter };
42
52
  export { defineExecutionPolicy };
43
53
  //# sourceMappingURL=execution-policy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"execution-policy.d.ts","sourceRoot":"","sources":["../src/execution-policy.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,qBAAqB,EACrB,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC5B,MAAM,gCAAgC,CAAA;AAEvC,8EAA8E;AAC9E,eAAO,MAAM,wBAAwB,kDAAkD,CAAA;AAIvF,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;IACrB,0FAA0F;IAC1F,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACzC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CACjC;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACjC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAA;IAC3D,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAA;IAChC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAC9B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAA;IACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAA;CACxC;AAED,qBAAa,uBAAwB,SAAQ,KAAK;IACpC,QAAQ,CAAC,IAAI,EAAE,oBAAoB,GAAG,iBAAiB,GAAG,WAAW;gBAA5D,IAAI,EAAE,oBAAoB,GAAG,iBAAiB,GAAG,WAAW;CAIlF;AAED,MAAM,WAAW,mBAAoB,SAAQ,sBAAsB;IACjE,GAAG,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAA;CAC/D;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,GAAE,0BAA+B,GACvC,mBAAmB,CAuErB;AAkHD,YAAY,EAAE,eAAe,EAAE,sBAAsB,EAAE,CAAA;AACvD,OAAO,EAAE,qBAAqB,EAAE,CAAA"}
1
+ {"version":3,"file":"execution-policy.d.ts","sourceRoot":"","sources":["../src/execution-policy.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,qBAAqB,EACrB,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC5B,MAAM,gCAAgC,CAAA;AAEvC,8EAA8E;AAC9E,eAAO,MAAM,wBAAwB,kDAAkD,CAAA;AAcvF,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;IACrB,0FAA0F;IAC1F,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACzC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CACjC;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACjC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAA;IAC3D,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAA;IAChC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAC9B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAA;IACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAA;CACxC;AAED,qBAAa,uBAAwB,SAAQ,KAAK;IACpC,QAAQ,CAAC,IAAI,EAAE,oBAAoB,GAAG,iBAAiB,GAAG,WAAW;gBAA5D,IAAI,EAAE,oBAAoB,GAAG,iBAAiB,GAAG,WAAW;CAIlF;AAED,MAAM,WAAW,mBAAoB,SAAQ,sBAAsB;IACjE,GAAG,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAA;CAC/D;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,GAAE,0BAA+B,GACvC,mBAAmB,CAuErB;AAqID;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,MAAM,EACX,GAAG,GAAE,CACH,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,OAAO,EAAE;IAAE,KAAK,EAAE,QAAQ,CAAC;IAAC,WAAW,EAAE,OAAO,CAAA;CAAE,KAC/C;IAAE,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,OAAO,CAAA;CAAU,GACjE,IAAI,CAON;AAiCD,YAAY,EAAE,eAAe,EAAE,sBAAsB,EAAE,CAAA;AACvD,OAAO,EAAE,qBAAqB,EAAE,CAAA"}
@@ -4,6 +4,16 @@ import { defineExecutionPolicy, } from "@nifrajs/core/execution-policy";
4
4
  /** This statement is intentionally repeated in the API and runtime result. */
5
5
  export const LOCAL_PROCESS_LIMITATION = "The local adapter is NOT a security boundary.";
6
6
  const SIGKILL_GRACE_MS = 2000;
7
+ /** How long the pipes may stay open after the escalation kill before the run stops reading them. */
8
+ const PIPE_RELEASE_MS = 200;
9
+ /** The longest delay setTimeout honors; past it the callback fires at once. */
10
+ const MAX_TIMER_MS = 2_147_483_647;
11
+ // On POSIX each run leads its own process group, so a timeout, a cancel, the run's own end, or the
12
+ // host's exit ends every process the command started, not only the direct child.
13
+ const WINDOWS = process.platform === "win32";
14
+ const PROCESS_GROUPS = !WINDOWS;
15
+ const liveGroups = new Set();
16
+ let exitHookInstalled = false;
7
17
  export class LocalProcessPolicyError extends Error {
8
18
  code;
9
19
  constructor(code) {
@@ -99,12 +109,24 @@ function spawnProcess(input) {
99
109
  env: input.env,
100
110
  shell: false,
101
111
  stdio: ["ignore", "pipe", "pipe"],
112
+ detached: PROCESS_GROUPS,
102
113
  });
103
114
  }
104
115
  catch {
105
116
  reject(new LocalProcessPolicyError("invalid_request"));
106
117
  return;
107
118
  }
119
+ const group = PROCESS_GROUPS ? child.pid : undefined;
120
+ if (group !== undefined)
121
+ trackGroup(group);
122
+ const signalAll = (signal) => {
123
+ if (group !== undefined && signalGroup(group, signal))
124
+ return;
125
+ if (WINDOWS && child.pid !== undefined && child.exitCode === null)
126
+ windowsTreeKill(child.pid);
127
+ else
128
+ child.kill(signal);
129
+ };
108
130
  const stdout = [];
109
131
  const stderr = [];
110
132
  let timedOut = false;
@@ -120,23 +142,39 @@ function spawnProcess(input) {
120
142
  outputUsed.value += selected.byteLength;
121
143
  };
122
144
  if (child.stdout === null || child.stderr === null) {
123
- child.kill();
145
+ signalAll("SIGKILL");
146
+ if (group !== undefined)
147
+ liveGroups.delete(group);
124
148
  reject(new LocalProcessPolicyError("invalid_request"));
125
149
  return;
126
150
  }
127
151
  child.stdout.on("data", (chunk) => append(stdout, chunk));
128
152
  child.stderr.on("data", (chunk) => append(stderr, chunk));
129
153
  let killTimer;
154
+ let releaseTimer;
130
155
  const terminate = () => {
131
- child.kill("SIGTERM");
132
- // A child that ignores SIGTERM would otherwise leave this promise pending forever,
156
+ signalAll("SIGTERM");
157
+ // A process that ignores SIGTERM would otherwise leave this promise pending forever,
133
158
  // making policy.timeMs advisory instead of a bound.
134
- killTimer ??= setTimeout(() => child.kill("SIGKILL"), SIGKILL_GRACE_MS);
159
+ killTimer ??= setTimeout(() => {
160
+ signalAll("SIGKILL");
161
+ // A process that left the group (setsid) can still hold the pipes open; stop waiting.
162
+ releaseTimer = setTimeout(() => settle(child.exitCode, child.signalCode), PIPE_RELEASE_MS);
163
+ }, SIGKILL_GRACE_MS);
135
164
  };
136
- const timer = setTimeout(() => {
137
- timedOut = true;
138
- terminate();
139
- }, input.policy.timeMs);
165
+ let timer;
166
+ const deadline = performance.now() + input.policy.timeMs;
167
+ const arm = () => {
168
+ const remaining = deadline - performance.now();
169
+ timer =
170
+ remaining > MAX_TIMER_MS
171
+ ? setTimeout(arm, MAX_TIMER_MS)
172
+ : setTimeout(() => {
173
+ timedOut = true;
174
+ terminate();
175
+ }, remaining);
176
+ };
177
+ arm();
140
178
  const cancel = () => {
141
179
  cancelled = true;
142
180
  terminate();
@@ -145,6 +183,10 @@ function spawnProcess(input) {
145
183
  clearTimeout(timer);
146
184
  if (killTimer !== undefined)
147
185
  clearTimeout(killTimer);
186
+ if (releaseTimer !== undefined)
187
+ clearTimeout(releaseTimer);
188
+ if (group !== undefined)
189
+ liveGroups.delete(group);
148
190
  input.signal?.removeEventListener("abort", cancel);
149
191
  };
150
192
  child.once("error", () => {
@@ -154,11 +196,16 @@ function spawnProcess(input) {
154
196
  cleanup();
155
197
  reject(new LocalProcessPolicyError("invalid_request"));
156
198
  });
157
- child.once("close", (exitCode, signal) => {
199
+ const settle = (exitCode, signal) => {
158
200
  if (settled)
159
201
  return;
160
202
  settled = true;
203
+ // A background process the command left behind ends with the run.
204
+ if (group !== undefined)
205
+ signalGroup(group, "SIGKILL");
161
206
  cleanup();
207
+ child.stdout?.destroy();
208
+ child.stderr?.destroy();
162
209
  resolve({
163
210
  ok: !timedOut && !cancelled && exitCode === 0,
164
211
  exitCode,
@@ -169,12 +216,44 @@ function spawnProcess(input) {
169
216
  cancelled,
170
217
  limitations: input.limitations,
171
218
  });
172
- });
219
+ };
220
+ child.once("close", settle);
173
221
  input.signal?.addEventListener("abort", cancel, { once: true });
174
222
  if (input.signal?.aborted === true)
175
223
  cancel(); // close the precheck/listener-registration race
176
224
  });
177
225
  }
226
+ /**
227
+ * End a Windows process and its descendants. Windows has no process groups, and a console child
228
+ * cannot be asked to stop, so the tree is terminated outright.
229
+ */
230
+ export function windowsTreeKill(pid, run = spawn) {
231
+ try {
232
+ run("taskkill", ["/pid", String(pid), "/T", "/F"], { stdio: "ignore", windowsHide: true }).on("error", () => { });
233
+ }
234
+ catch { }
235
+ }
236
+ /** Signal a run's whole process group; false when the group is already gone. */
237
+ function signalGroup(group, signal) {
238
+ try {
239
+ process.kill(-group, signal);
240
+ return true;
241
+ }
242
+ catch {
243
+ return false;
244
+ }
245
+ }
246
+ function trackGroup(group) {
247
+ liveGroups.add(group);
248
+ if (exitHookInstalled)
249
+ return;
250
+ exitHookInstalled = true;
251
+ // A detached group outlives the host unless something ends it; runs still in flight end with it.
252
+ process.on("exit", () => {
253
+ for (const live of liveGroups)
254
+ signalGroup(live, "SIGKILL");
255
+ });
256
+ }
178
257
  function concat(chunks) {
179
258
  const size = chunks.reduce((total, chunk) => total + chunk.byteLength, 0);
180
259
  const result = new Uint8Array(size);