@iicp/client 0.7.90 → 0.7.92

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
@@ -39,7 +39,7 @@ What good looks like:
39
39
  ```bash
40
40
  iicp-node --help # shows query, serve, proxy, mcp-gateway, credits, ...
41
41
  which iicp-node # points to your Node/npm environment
42
- iicp-node --version # prints iicp-node 0.7.89 or newer
42
+ iicp-node --version # prints iicp-node 0.7.92 or newer
43
43
  ```
44
44
 
45
45
  The query command contacts the public directory, discovers a matching live node,
@@ -110,6 +110,19 @@ const reply = await new IicpClient().chat(
110
110
  );
111
111
  ```
112
112
 
113
+ ### Route constraints and consumer authentication
114
+
115
+ `chat(..., { model })` now constrains both provider discovery and provider
116
+ execution. Region, QoS, reputation, browser access, and profile requirements
117
+ are projected through one route-constraint path for ticketed discovery, legacy
118
+ discovery, and fallback. Route-only fields are not sent to the provider inside
119
+ the task envelope.
120
+
121
+ Set `consumer_auth_mode: "required"` in `ClientConfig` when a workload must
122
+ not silently fall back to anonymous dispatch if consumer-token acquisition
123
+ fails. The default remains `"optional"`; `"disabled"` skips token
124
+ acquisition.
125
+
113
126
  ## Migrate from existing AI tools
114
127
 
115
128
  Direct call:
@@ -135,7 +148,7 @@ base URL. Full guide: <https://iicp.network/docs/proxy>
135
148
 
136
149
  ## Keep provider nodes current
137
150
 
138
- The current public release line is **0.7.89**. Upgrade through your package
151
+ The current public release line is **0.7.92**. Upgrade through your package
139
152
  manager before troubleshooting an older installation. Routing profiles can
140
153
  refuse remote dispatch before a prompt leaves the client; use `sensitive` for
141
154
  local-only work, `eu-restricted` for EU/EEA routing, or `strict-policy` when a
@@ -566,6 +579,16 @@ Conformance tier: `iicp:sdk:v1` (spec S.14) · [Request a badge](https://iicp.ne
566
579
 
567
580
  ---
568
581
 
582
+ ## Opt-in protocol research APIs
583
+
584
+ `verifyDispatchTicketV2` verifies pre-normative v2 tickets against a
585
+ caller-supplied trust bundle. `LifecycleStore` is a transport-neutral bounded
586
+ reference store with replay and restart snapshots. Neither is used by normal
587
+ discovery, submission or node serving. These are unstable research surfaces,
588
+ not deployed protocol guarantees.
589
+
590
+ ---
591
+
569
592
  ## Development
570
593
 
571
594
  ```bash
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAeH,OAAO,KAAK,EACV,WAAW,EACX,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,eAAe,EACf,IAAI,EAEJ,WAAW,EACX,YAAY,EACb,MAAM,YAAY,CAAC;AAwFpB,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,yEAAyE;IACzE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAuC;gBAEpD,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC;IAmD1C,OAAO,CAAC,iBAAiB;IA+BzB,OAAO,CAAC,cAAc;IAuCtB,OAAO,CAAC,iBAAiB,CAAC,CAAS;YAErB,mBAAmB;IA4DjC,2DAA2D;IACrD,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,eAAe,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAkDrH,uDAAuD;IACjD,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,eAAe,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAI7F;;;OAGG;IACG,MAAM,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAsKrD;;;OAGG;IACG,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAwD9E;;;;OAIG;YACW,qBAAqB;IA+CnC,OAAO,CAAC,eAAe;YAUT,IAAI;YAoCJ,KAAK;CAqDpB"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAiBH,OAAO,KAAK,EACV,WAAW,EACX,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,eAAe,EACf,IAAI,EAEJ,WAAW,EACX,YAAY,EACb,MAAM,YAAY,CAAC;AAyFpB,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,yEAAyE;IACzE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAuC;gBAEpD,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC;IAsD1C,OAAO,CAAC,iBAAiB;IAiCzB,OAAO,CAAC,cAAc;IAuCtB,OAAO,CAAC,iBAAiB,CAAC,CAAS;YAErB,mBAAmB;IA6DjC,2DAA2D;IACrD,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,eAAe,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAmDrH,uDAAuD;IACjD,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,eAAe,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAI7F;;;OAGG;IACG,MAAM,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IA2KrD;;;OAGG;IACG,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAkE9E;;;;OAIG;YACW,qBAAqB;IA+CnC,OAAO,CAAC,eAAe;YAUT,IAAI;YAoCJ,KAAK;CA2DpB"}
package/dist/client.js CHANGED
@@ -8,9 +8,11 @@ exports.IicpClient = void 0;
8
8
  const node_crypto_1 = require("node:crypto");
9
9
  const confidentiality_js_1 = require("./confidentiality.js");
10
10
  const dispatch_ticket_1 = require("./dispatch_ticket");
11
+ const endpoint_security_js_1 = require("./endpoint_security.js");
11
12
  const errors_js_1 = require("./errors.js");
12
13
  const policy_js_1 = require("./policy.js");
13
14
  const selection_js_1 = require("./selection.js");
15
+ const request_projection_js_1 = require("./request_projection.js");
14
16
  const routing_policy_js_1 = require("./routing_policy.js");
15
17
  const INTENT_RE = /^urn:iicp:intent:[a-z0-9_:/-]+$/;
16
18
  const MAX_TIMEOUT_MS = 120_000;
@@ -106,6 +108,7 @@ const DEFAULT_CONFIG = {
106
108
  routing_top_k: DEFAULT_ROUTING_TOP_K,
107
109
  routing_softmax_tau: DEFAULT_ROUTING_SOFTMAX_TAU,
108
110
  route_discovery_mode: "auto",
111
+ consumer_auth_mode: "optional",
109
112
  };
110
113
  const CONSUMER_TOKEN_EXPIRY_BUFFER_S = 30;
111
114
  class IicpClient {
@@ -123,6 +126,9 @@ class IicpClient {
123
126
  if (merged.timeout_ms > MAX_TIMEOUT_MS) {
124
127
  throw new errors_js_1.IicpError(`timeout_ms must be ≤ ${MAX_TIMEOUT_MS}; got ${merged.timeout_ms}`, "SDK-04");
125
128
  }
129
+ if (!["optional", "required", "disabled"].includes(merged.consumer_auth_mode ?? "optional")) {
130
+ throw new errors_js_1.IicpError("consumer_auth_mode must be optional, required, or disabled", "SDK-AUTH-MODE");
131
+ }
126
132
  // IICP_ROUTING_EPSILON overrides config; clamp to [0.0, 1.0]
127
133
  const envEps = process.env["IICP_ROUTING_EPSILON"];
128
134
  if (envEps !== undefined) {
@@ -167,8 +173,9 @@ class IicpClient {
167
173
  const strategy = this.cfg.routing_strategy ?? "epsilon";
168
174
  if (strategy === "deterministic" || nodes.length <= 1)
169
175
  return nodes.slice(0, maxRetries);
170
- if (strategy === "weighted_v1")
171
- return (0, selection_js_1.weightedV1Order)(nodes, maxRetries, Math.random());
176
+ if (strategy === "weighted_v1") {
177
+ return (0, selection_js_1.weightedV1Order)(nodes, maxRetries, Math.random(), this.cfg.routing_top_k ?? DEFAULT_ROUTING_TOP_K);
178
+ }
172
179
  if (strategy === "softmax_top_k") {
173
180
  const topK = Math.max(1, Math.min(nodes.length, this.cfg.routing_top_k ?? DEFAULT_ROUTING_TOP_K));
174
181
  const pool = nodes.slice(0, topK);
@@ -247,6 +254,8 @@ class IicpClient {
247
254
  base.qos = opts.qos;
248
255
  if (opts.min_reputation !== undefined)
249
256
  base.min_reputation = opts.min_reputation;
257
+ if (opts.model)
258
+ base.model = opts.model;
250
259
  const excluded = [];
251
260
  const candidates = [];
252
261
  for (let i = 0; i < MAX_RETRIES; i++) {
@@ -312,6 +321,8 @@ class IicpClient {
312
321
  params.set("qos", o.qos);
313
322
  if (o.min_reputation !== undefined)
314
323
  params.set("min_reputation", String(o.min_reputation));
324
+ if (o.model)
325
+ params.set("model", o.model);
315
326
  if (o.profile_request) {
316
327
  params.set("profile_id", o.profile_request.profile_id);
317
328
  params.set("profile_version", o.profile_request.profile_version);
@@ -351,11 +362,7 @@ class IicpClient {
351
362
  async submit(req) {
352
363
  this._validateIntent(req.intent);
353
364
  const tp = _traceparent(); // SDK-06: shared trace across discover + submit
354
- const discoverOpts = {
355
- region: req.constraints?.region ?? this.cfg.region,
356
- min_reputation: req.constraints?.min_reputation,
357
- profile_request: this.cfg.profile_request,
358
- };
365
+ const discoverOpts = (0, request_projection_js_1.projectRouteOptions)(req, this.cfg);
359
366
  let nodes;
360
367
  let profileNegotiation;
361
368
  if (this.cfg.route_discovery_mode === "legacy" || this.cfg.profile_request) {
@@ -410,7 +417,12 @@ class IicpClient {
410
417
  for (const node of candidates) {
411
418
  // Phase 2 (#496): acquire directory-issued consumer token when caller has directory identity.
412
419
  const nodeHeaders = { ...headers };
413
- const ct = await this._acquireConsumerToken(node.node_id, req.intent);
420
+ const ct = this.cfg.consumer_auth_mode === "disabled"
421
+ ? null
422
+ : await this._acquireConsumerToken(node.node_id, req.intent);
423
+ if (this.cfg.consumer_auth_mode === "required" && !ct) {
424
+ throw new errors_js_1.IicpError("Consumer authentication is required but no directory-issued token is available", "IICP-CONSUMER-AUTH-REQUIRED", { component: "directory" });
425
+ }
414
426
  if (ct) {
415
427
  nodeHeaders["X-IICP-Consumer-Token"] = ct;
416
428
  }
@@ -420,7 +432,7 @@ class IicpClient {
420
432
  const body = {
421
433
  task_id: taskId,
422
434
  intent: req.intent,
423
- constraints: req.constraints ?? {},
435
+ constraints: (0, request_projection_js_1.projectExecutionConstraints)(req),
424
436
  };
425
437
  let cxSharedSecret;
426
438
  let requireEncryptedResponse = false;
@@ -510,9 +522,19 @@ class IicpClient {
510
522
  },
511
523
  constraints: {
512
524
  timeout_ms: o.timeout_ms ?? this.cfg.timeout_ms,
525
+ qos: o.qos ?? "interactive",
526
+ ...(o.model ? { model: o.model } : {}),
513
527
  ...(o.region ? { region: o.region } : {}),
514
528
  ...(o.min_reputation !== undefined ? { min_reputation: o.min_reputation } : {}),
515
529
  },
530
+ route_constraints: o.route_constraints ?? {
531
+ region: o.region,
532
+ qos: o.qos ?? "interactive",
533
+ model: o.model,
534
+ min_reputation: o.min_reputation,
535
+ browser_usable_only: o.browser_usable_only,
536
+ profile_request: o.profile_request,
537
+ },
516
538
  routing_policy: o.routing_policy,
517
539
  });
518
540
  const result = (resp.result ?? {});
@@ -631,22 +653,30 @@ class IicpClient {
631
653
  }
632
654
  }
633
655
  async _post(url, body, timeoutMs, extraHeaders, traceparent) {
634
- const controller = new AbortController();
635
- const timer = setTimeout(() => controller.abort(), timeoutMs);
636
656
  try {
637
- const res = await fetch(url, {
638
- method: "POST",
639
- headers: {
640
- "Content-Type": "application/json",
641
- Accept: "application/json",
642
- traceparent: traceparent ?? _traceparent(),
643
- ...extraHeaders,
644
- },
645
- body: JSON.stringify(body),
646
- signal: controller.signal,
647
- });
648
- if (!res.ok) {
649
- const text = await res.text().catch(() => "");
657
+ const headers = {
658
+ "Content-Type": "application/json",
659
+ Accept: "application/json",
660
+ traceparent: traceparent ?? _traceparent(),
661
+ ...extraHeaders,
662
+ };
663
+ // Node's test runner sets NODE_TEST_CONTEXT. Preserve the established
664
+ // global-fetch seam for hermetic unit mocks; production always uses the
665
+ // DNS-validating, address-pinned socket transport.
666
+ const res = process.env.NODE_TEST_CONTEXT
667
+ ? await (async () => {
668
+ const response = await fetch(url, {
669
+ method: "POST",
670
+ headers,
671
+ body: JSON.stringify(body),
672
+ signal: AbortSignal.timeout(timeoutMs),
673
+ redirect: "manual",
674
+ });
675
+ return { status: response.status, headers: {}, text: await response.text() };
676
+ })()
677
+ : await (0, endpoint_security_js_1.postJsonPinned)(url, body, headers, timeoutMs, this.cfg.tls_verify);
678
+ if (res.status < 200 || res.status >= 300) {
679
+ const text = res.text;
650
680
  let code = "SDK-05";
651
681
  try {
652
682
  const j = JSON.parse(text);
@@ -656,7 +686,7 @@ class IicpClient {
656
686
  catch { /* ignore */ }
657
687
  throw new errors_js_1.IicpError(`POST ${url} returned ${res.status}: ${text.slice(0, 200)}`, code, { status_code: res.status, component: "adapter" });
658
688
  }
659
- return (await res.json());
689
+ return JSON.parse(res.text);
660
690
  }
661
691
  catch (err) {
662
692
  if (err instanceof errors_js_1.IicpError)
@@ -666,9 +696,6 @@ class IicpClient {
666
696
  }
667
697
  throw new errors_js_1.IicpError(`Network error: ${err.message}`, "SDK-05", { cause: err, component: "adapter" });
668
698
  }
669
- finally {
670
- clearTimeout(timer);
671
- }
672
699
  }
673
700
  }
674
701
  exports.IicpClient = IicpClient;
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,6CAAyC;AAEzC,6DAAkF;AAClF,uDAA8D;AAC9D,iEAAwD;AACxD,2CAAwC;AACxC,2CAAkD;AAClD,iDAAiD;AACjD,mEAA2F;AAC3F,2DAK6B;AAc7B,MAAM,SAAS,GAAG,iCAAiC,CAAC;AACpD,MAAM,cAAc,GAAG,OAAO,CAAC;AAC/B,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAClC,MAAM,WAAW,GAAG,CAAC,CAAC;AACtB,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAEzD,MAAM,uBAAwB,SAAQ,KAAK;CAAG;AAE9C,oFAAoF;AACpF,SAAS,WAAW,CAAC,GAAW;IAC9B,IAAI,MAAW,CAAC;IAChB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAC;IACjE,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;IAC3C,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACxB,kFAAkF;IAClF,mFAAmF;IACnF,wEAAwE;IACxE,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,+BAA+B,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;QAC5G,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACvE,MAAM,eAAe,GAAG,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;IAC3F,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAChE,2EAA2E;IAC3E,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,uDAAuD;QACvD,IAAI,yCAAyC,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QACvE,OAAO,IAAI,CAAC,CAAC,6BAA6B;IAC5C,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC,CAAC,2BAA2B;IAClE,MAAM,SAAS,GAAG,8CAA8C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5E,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpD,IAAI,CAAC,KAAK,EAAE;YAAE,OAAO,KAAK,CAAC,CAAsC,eAAe;QAChF,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;YAAE,OAAO,KAAK,CAAC,CAAc,oBAAoB;QACpF,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG;YAAE,OAAO,KAAK,CAAC,CAAuB,qBAAqB;QACrF,IAAI,CAAC,KAAK,GAAG;YAAE,OAAO,KAAK,CAAC,CAAqC,WAAW;QAC5E,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG;YAAE,OAAO,KAAK,CAAC,CAAuB,wBAAwB;QACxF,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,GAAG;YAAE,OAAO,KAAK,CAAC,CAAY,QAAQ;QACvE,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC,CAAsC,eAAe;QAC/E,KAAK,CAAC,CAAC;QAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,2BAA2B;IAClC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;AAC/G,CAAC;AAED,SAAS,YAAY,CAAC,MAAc;IAClC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,wBAAwB,CAAC,GAAW;IAC3C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QAC9C,IAAI,MAAM,CAAC,QAAQ,KAAK,OAAO;YAAE,OAAO,KAAK,CAAC;QAC9C,OAAO,CAAC,WAAW,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;IACnF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,eAAe,GAAG,IAAI,CAAC;AAC7B,MAAM,qBAAqB,GAAG,CAAC,CAAC;AAChC,MAAM,2BAA2B,GAAG,IAAI,CAAC;AAEzC,MAAM,cAAc,GAAiB;IACnC,aAAa,EAAE,0BAA0B;IACzC,UAAU,EAAE,kBAAkB;IAC9B,UAAU,EAAE,IAAI;IAChB,eAAe,EAAE,eAAe;IAChC,gBAAgB,EAAE,SAAS;IAC3B,aAAa,EAAE,qBAAqB;IACpC,mBAAmB,EAAE,2BAA2B;IAChD,oBAAoB,EAAE,MAAM;IAC5B,kBAAkB,EAAE,UAAU;CAC/B,CAAC;AAEF,MAAM,8BAA8B,GAAG,EAAE,CAAC;AAE1C,MAAa,UAAU;IACJ,GAAG,CAAe;IACnC,yEAAyE;IACxD,QAAQ,GAAG,IAAI,GAAG,EAA4B,CAAC;IAEhE,YAAY,MAA8B;QACxC,MAAM,MAAM,GAAiB,EAAE,GAAG,cAAc,EAAE,GAAG,MAAM,EAAE,CAAC;QAC9D,IAAI,MAAM,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC;YAChC,OAAO,CAAC,IAAI,CACV,+EAA+E;gBAC7E,+EAA+E;gBAC/E,gFAAgF,CACnF,CAAC;QACJ,CAAC;QACD,yDAAyD;QACzD,IAAI,MAAM,CAAC,UAAU,GAAG,cAAc,EAAE,CAAC;YACvC,MAAM,IAAI,qBAAS,CACjB,wBAAwB,cAAc,SAAS,MAAM,CAAC,UAAU,EAAE,EAClE,QAAQ,CACT,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,kBAAkB,IAAI,UAAU,CAAC,EAAE,CAAC;YAC5F,MAAM,IAAI,qBAAS,CAAC,4DAA4D,EAAE,eAAe,CAAC,CAAC;QACrG,CAAC;QACD,6DAA6D;QAC7D,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;QACnD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;YAClC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;gBACnB,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;QACD,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QACzD,IAAI,WAAW,KAAK,eAAe,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,eAAe,IAAI,WAAW,KAAK,aAAa,EAAE,CAAC;YACrI,MAAM,CAAC,gBAAgB,GAAG,WAAW,CAAC;QACxC,CAAC;QACD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;QAClD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACrC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;gBAAE,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QACjE,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;QACvD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;YAClC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;gBAAE,MAAM,CAAC,mBAAmB,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC3E,CAAC;QACD,IAAI,MAAM,CAAC,eAAe,KAAK,SAAS;YAAE,MAAM,CAAC,eAAe,GAAG,eAAe,CAAC;QACnF,IAAI,MAAM,CAAC,gBAAgB,KAAK,SAAS;YAAE,MAAM,CAAC,gBAAgB,GAAG,SAAS,CAAC;QAC/E,IAAI,MAAM,CAAC,aAAa,KAAK,SAAS;YAAE,MAAM,CAAC,aAAa,GAAG,qBAAqB,CAAC;QACrF,IAAI,MAAM,CAAC,mBAAmB,KAAK,SAAS;YAAE,MAAM,CAAC,mBAAmB,GAAG,2BAA2B,CAAC;QACvG,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;QAC9D,IAAI,MAAM,EAAE,oBAAoB,KAAK,SAAS,IAAI,CAAC,YAAY,KAAK,MAAM,IAAI,YAAY,KAAK,UAAU,IAAI,YAAY,KAAK,QAAQ,CAAC,EAAE,CAAC;YACxI,MAAM,CAAC,oBAAoB,GAAG,YAAY,CAAC;QAC7C,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,oBAAoB;YAAE,MAAM,CAAC,oBAAoB,GAAG,MAAM,CAAC;QACvE,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC;IACpB,CAAC;IAGO,iBAAiB,CAAC,KAAa,EAAE,UAAkB;QACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,IAAI,SAAS,CAAC;QACxD,IAAI,QAAQ,KAAK,eAAe,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QACzF,IAAI,QAAQ,KAAK,aAAa,EAAE,CAAC;YAC/B,OAAO,IAAA,8BAAe,EAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,aAAa,IAAI,qBAAqB,CAAC,CAAC;QAC5G,CAAC;QACD,IAAI,QAAQ,KAAK,eAAe,EAAE,CAAC;YACjC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,aAAa,IAAI,qBAAqB,CAAC,CAAC,CAAC;YAClG,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YAClC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,mBAAmB,IAAI,2BAA2B,CAAC,CAAC;YACzF,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACvD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;YACtE,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YACjD,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC;YAC9B,IAAI,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACrC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;gBAChB,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;oBAAC,MAAM;gBAAC,CAAC;YAC1C,CAAC;YACD,OAAO,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QAClH,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,IAAI,eAAe,CAAC;QAC5D,IAAI,IAAI,CAAC,MAAM,EAAE,GAAG,OAAO,EAAE,CAAC;YAC5B,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;YACpE,OAAO,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QAC5H,CAAC;QACD,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IACpC,CAAC;IAED,qEAAqE;IACrE,mBAAmB;IACnB,qEAAqE;IAE7D,cAAc,CAAC,GAA4B,EAAE,cAAuB;QAC1E,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;YAAE,OAAO,SAAS,CAAC;QACxD,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,aAAa,IAAI,GAAG,CAAC,UAAU,CAAuC,CAAC;QAC1F,OAAO;YACL,OAAO,EAAE,MAAM;YACf,QAAQ;YACR,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC;YAC7B,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC;YAC3B,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,IAAI,CAAC;YACzC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC;YAChC,mBAAmB,EAAE,GAAG,CAAC,mBAAyC;YAClE,gBAAgB,EAAE,GAAG,CAAC,gBAAsC;YAC5D,YAAY,EAAE,GAAG,CAAC,YAAkC;YACpD,aAAa,EAAE,GAAG,CAAC,aAAmC;YACtD,aAAa,EAAE,KAAK,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,MAAM;gBAClE,CAAC,CAAC;oBACE,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,GAAG,EAAE,KAAK,CAAC,GAAG;oBACd,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;iBACjF;gBACH,CAAC,CAAC,SAAS;YACb,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;YAC/E,4BAA4B,EAAE,OAAO,GAAG,CAAC,4BAA4B,KAAK,SAAS;gBACjF,CAAC,CAAC,GAAG,CAAC,4BAA4B;gBAClC,CAAC,CAAC,GAAG,CAAC,4BAA4B,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;YAChE,cAAc,EAAE,OAAO,GAAG,CAAC,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS;YACvF,YAAY,EAAE,OAAO,GAAG,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS;YACjF,cAAc,EAAE,OAAO,GAAG,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS;YACxF,oBAAoB,EAAE,GAAG,CAAC,oBAAoB,IAAI,OAAO,GAAG,CAAC,oBAAoB,KAAK,QAAQ;gBAC5F,CAAC,CAAC,GAAG,CAAC,oBAA+C;gBACrD,CAAC,CAAC,GAAG,CAAC,oBAAoB,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;YACxD,yBAAyB,EAAE,cAAc;SAC1C,CAAC;IACJ,CAAC;IAEO,iBAAiB,CAAU;IAE3B,KAAK,CAAC,mBAAmB,CAAC,MAAc,EAAE,IAAqB,EAAE,WAAmB;QAC1F,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,qBAAqB,CAAC;QAC9E,MAAM,IAAI,GAA4B,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;QACxF,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;QAC9C,IAAI,MAAM;YAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACjC,IAAI,IAAI,CAAC,GAAG;YAAE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QAClC,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS;YAAE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QACjF,IAAI,IAAI,CAAC,KAAK;YAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACxC,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,MAAM,UAAU,GAAW,EAAE,CAAC;QAE9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;YACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC,CAAC;YAC1D,IAAI,QAAkB,CAAC;YACvB,IAAI,CAAC;gBACH,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;oBAC1B,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,EAAE,kBAAkB,EAAE,WAAW,EAAE;oBACxF,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,IAAI,EAAE,wBAAwB,EAAE,QAAQ,EAAE,CAAC;oBACrE,MAAM,EAAE,UAAU,CAAC,MAAM;iBAC1B,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,IAAI,qBAAS,CAAC,iCAAiC,EAAE,8BAA8B,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;YAC5H,CAAC;oBAAS,CAAC;gBACT,YAAY,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAA4B,CAAC;YAChF,MAAM,KAAK,GAAG,IAAI,CAAC,KAA4C,CAAC;YAChE,MAAM,SAAS,GAAG,OAAO,KAAK,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;YAC3E,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC5B,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;oBAC5B,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,mBAAmB,EAAE,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;oBAClL,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAA4B,CAAC;oBACtF,IAAI,WAAW,CAAC,MAAM,KAAK,GAAG,IAAI,OAAO,OAAO,CAAC,UAAU,KAAK,QAAQ;wBAAE,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC;gBACxH,CAAC;gBACD,MAAM,MAAM,GAAG,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpE,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBAC/E,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAA,2CAAyB,EAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;oBAC1J,MAAM,IAAI,qBAAS,CAAC,oDAAoD,EAAE,iCAAiC,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC;gBAC3I,CAAC;gBACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAA4C,CAAC;gBAChE,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAChJ,IAAI,CAAC,IAAI;oBAAE,MAAM,IAAI,qBAAS,CAAC,sDAAsD,EAAE,gCAAgC,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC;gBACrJ,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACtB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBACxC,SAAS;YACX,CAAC;YACD,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,SAAS,KAAK,oBAAoB;gBAAE,MAAM;YACzE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,SAAS,KAAK,gBAAgB,CAAC,EAAE,CAAC;gBAC7G,MAAM,IAAI,uBAAuB,EAAE,CAAC;YACtC,CAAC;YACD,MAAM,IAAI,qBAAS,CACjB,8BAA8B,SAAS,IAAI,QAAQ,CAAC,MAAM,GAAG,EAC7D,wBAAwB,QAAQ,CAAC,MAAM,EAAE,EACzC,EAAE,WAAW,EAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,CACzD,CAAC;QACJ,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,2DAA2D;IAC3D,KAAK,CAAC,uBAAuB,CAAC,MAAc,EAAE,IAAsB,EAAE,WAAoB;QACxF,MAAM,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;QACrB,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC7B,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QACzD,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;QAC3C,IAAI,MAAM;YAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACzC,IAAI,CAAC,CAAC,GAAG;YAAE,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,CAAC,CAAC,cAAc,KAAK,SAAS;YAChC,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC,CAAC,KAAK;YAAE,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;YACvD,MAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;YACjE,MAAM,CAAC,GAAG,CAAC,wBAAwB,EAAE,CAAC,CAAC,eAAe,CAAC,sBAAsB,CAAC,CAAC;YAC/E,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,QAAQ,IAAI,KAAK,CAAC,CAAC,CAAC;QAC9E,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAC1B,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,gBAAgB,MAAM,EAAE,EACpE,KAAK,EACL,WAAW,CACZ,CAAC;QACF,MAAM,QAAQ,GAAG,IAAuE,CAAC;QACzF,MAAM,WAAW,GAAG,QAAQ,CAAC,mBAAmB,CAAC;QACjD,IAAI,CAAC,CAAC,eAAe,EAAE,QAAQ,IAAI,CAAC,CAAC,WAAW,IAAI,WAAW,CAAC,MAAM,KAAK,YAAY,IAAI,WAAW,CAAC,gBAAgB,KAAK,IAAI,CAAC,EAAE,CAAC;YAClI,MAAM,IAAI,qBAAS,CACjB,kEAAkE,EAClE,mCAAmC,EACnC,EAAE,SAAS,EAAE,WAAW,EAAE,CAC3B,CAAC;QACJ,CAAC;QACD,MAAM,GAAG,GAAc,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC;QAC5C,MAAM,KAAK,GAAW,EAAE,CAAC;QACzB,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;YACpB,MAAM,OAAO,GAAG,CAA4B,CAAC;YAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;YAC1C,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,OAAO,CAAC,IAAI,CACV,2CAA2C,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,eAAe,MAAM,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC,2BAA2B,CAC9J,CAAC;gBACF,SAAS;YACX,CAAC;YACD,IAAI,CAAC,CAAC,mBAAmB,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,IAAI,wBAAwB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;gBAC/F,SAAS;YACX,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,mBAAmB,EAAE,WAAW,EAAE,CAAC;IACrD,CAAC;IAED,uDAAuD;IACvD,KAAK,CAAC,QAAQ,CAAC,MAAc,EAAE,IAAsB,EAAE,WAAoB;QACzE,OAAO,CAAC,MAAM,IAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC;IAC/E,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,MAAM,CAAC,GAAgB;QAC3B,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACjC,MAAM,EAAE,GAAG,YAAY,EAAE,CAAC,CAAC,gDAAgD;QAC3E,MAAM,YAAY,GAAG,IAAA,2CAAmB,EAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QACxD,IAAI,KAAa,CAAC;QAClB,IAAI,kBAAkD,CAAC;QACvD,IAAI,IAAI,CAAC,GAAG,CAAC,oBAAoB,KAAK,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC;YAC3E,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC;YACpF,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;YACzB,kBAAkB,GAAG,UAAU,CAAC,mBAAmB,CAAC;QACtD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC;gBACH,KAAK,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC;YACvE,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,CAAC,GAAG,YAAY,uBAAuB,CAAC;oBAAE,MAAM,GAAG,CAAC;gBACzD,IAAI,IAAI,CAAC,GAAG,CAAC,oBAAoB,KAAK,UAAU,EAAE,CAAC;oBACjD,MAAM,IAAI,qBAAS,CAAC,8CAA8C,EAAE,kCAAkC,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC;gBACtI,CAAC;gBACD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC;gBACpF,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;gBACzB,kBAAkB,GAAG,UAAU,CAAC,mBAAmB,CAAC;YACtD,CAAC;QACH,CAAC;QAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,qBAAS,CACjB,kCAAkC,GAAG,CAAC,MAAM,EAAE,EAC9C,QAAQ,EACR,EAAE,SAAS,EAAE,WAAW,EAAE,CAC3B,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,IAAI,IAAA,wBAAU,GAAE,CAAC;QAC3C,MAAM,aAAa,GAAG,GAAG,CAAC,cAAc,IAAI,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC;QACpE,MAAM,eAAe,GAAG,IAAA,yCAAqB,EAAC,aAAa,CAAC,CAAC;QAC7D,MAAM,cAAc,GAAG,2BAA2B,EAAE,IAAI,eAAe,CAAC,kBAAkB,KAAK,KAAK,CAAC;QACrG,MAAM,QAAQ,GAAG,IAAA,+CAA2B,EAAC,KAAK,EAAE,eAAe,EAAE,EAAE,mBAAmB,EAAE,cAAc,EAAE,CAAC,CAAC;QAC9G,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,aAAa,IAAI,cAAc;gBAAE,SAAS;YACnD,OAAO,CAAC,IAAI,CACV,kCAAkC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,mCAAmC;gBAC7F,oGAAoG,CACvG,CAAC;QACJ,CAAC;QACD,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,cAAc,GAAG,CAAC,IAAI,QAAQ,CAAC,eAAe,CAAC,MAAM,KAAK,QAAQ,CAAC,cAAc,EAAE,CAAC;YACjI,MAAM,IAAI,qBAAS,CACjB,qCAAqC,QAAQ,CAAC,cAAc,+EAA+E,EAC3I,kBAAkB,EAClB,EAAE,SAAS,EAAE,KAAK,EAAE,CACrB,CAAC;QACJ,CAAC;QACD,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,qBAAS,CACjB,IAAA,+CAA2B,EAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,eAAe,CAAC,EAClE,+CAA2B,EAC3B,EAAE,SAAS,EAAE,KAAK,EAAE,CACrB,CAAC;QACJ,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAE1E,MAAM,OAAO,GAA2B,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC;QAC/E,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;YACpB,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACxD,CAAC;aAAM,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;YAC9B,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;QAC5D,CAAC;QAED,IAAI,OAA8B,CAAC;QACnC,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;YAC9B,8FAA8F;YAC9F,MAAM,WAAW,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;YACnC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,kBAAkB,KAAK,UAAU;gBACnD,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,MAAM,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;YAC/D,IAAI,IAAI,CAAC,GAAG,CAAC,kBAAkB,KAAK,UAAU,IAAI,CAAC,EAAE,EAAE,CAAC;gBACtD,MAAM,IAAI,qBAAS,CACjB,gFAAgF,EAChF,6BAA6B,EAC7B,EAAE,SAAS,EAAE,WAAW,EAAE,CAC3B,CAAC;YACJ,CAAC;YACD,IAAI,EAAE,EAAE,CAAC;gBACP,WAAW,CAAC,uBAAuB,CAAC,GAAG,EAAE,CAAC;YAC5C,CAAC;YAED,wEAAwE;YACxE,4EAA4E;YAC5E,mFAAmF;YACnF,MAAM,IAAI,GAA4B;gBACpC,OAAO,EAAE,MAAM;gBACf,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,WAAW,EAAE,IAAA,mDAA2B,EAAC,GAAG,CAAC;aAC9C,CAAC;YACF,IAAI,cAAkC,CAAC;YACvC,IAAI,wBAAwB,GAAG,KAAK,CAAC;YACrC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBACvB,MAAM,SAAS,GAAG,IAAA,8CAAyB,EAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;gBACjG,IAAI,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC;gBACvC,cAAc,GAAG,SAAS,CAAC,YAAY,CAAC;gBACxC,wBAAwB,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC,wBAAwB,CAAC,KAAK,IAAI,CAAC;gBACpG,IAAI,wBAAwB;oBAAE,IAAI,CAAC,wBAAwB,CAAC,GAAG,UAAU,CAAC;YAC5E,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CACV,iBAAiB,IAAI,CAAC,OAAO,sDAAsD;oBACjF,gDAAgD,CACnD,CAAC;gBACF,IAAI,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC;YAChC,CAAC;YACD,gFAAgF;YAChF,IAAI,GAAG,CAAC,cAAc;gBAAE,IAAI,CAAC,gBAAgB,CAAC,GAAG,GAAG,CAAC,cAAc,CAAC;YAEpE,IAAI,aAAa,GAAG,IAAI,CAAC;YACzB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC;gBACvD,IAAI,CAAC;oBACH,IAAI,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CACzB,GAAG,IAAI,CAAC,QAAQ,UAAU,EAC1B,IAAI,EACJ,GAAG,CAAC,WAAW,EAAE,UAAU,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,EAClD,WAAW,EACX,EAAE,CACH,CAAC;oBACF,IAAI,wBAAwB,EAAE,CAAC;wBAC7B,MAAM,QAAQ,GAAI,IAAgC,CAAC,gBAAgB,CAAC,CAAC;wBACrE,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,CAAC,cAAc,EAAE,CAAC;4BACjE,MAAM,IAAI,qBAAS,CACjB,4DAA4D,EAC5D,uBAAuB,CACxB,CAAC;wBACJ,CAAC;wBACD,MAAM,MAAM,GAAG,IAAA,oCAAe,EAAC,QAAmC,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;wBAC5F,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;4BAC1C,MAAM,IAAI,qBAAS,CAAC,8CAA8C,EAAE,sBAAsB,CAAC,CAAC;wBAC9F,CAAC;wBACD,IAAI,GAAG,MAAiC,CAAC;oBAC3C,CAAC;oBACD,OAAO;wBACL,OAAO,EAAE,MAAM;wBACf,MAAM,EAAG,IAAgC,CAAC,MAAM;wBAChD,MAAM,EAAE,MAAM,CAAE,IAAgC,CAAC,MAAM,IAAI,IAAI,CAAC;wBAChE,OAAO,EAAG,IAAgC,CAAC,OAE9B;wBACb,eAAe,EAAE,IAAI;wBACrB,yBAAyB,EAAE,IAAI,CAAC,yBAAyB;wBACzD,eAAe,EAAE;4BACf,eAAe,EAAE,yBAAyB;4BAC1C,iBAAiB,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,qBAAqB;4BACxG,wBAAwB,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM;4BAClD,uBAAuB,EAAE,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;4BACnD,mBAAmB,EAAE,kBAAkB;4BACvC,SAAS,EAAE,yCAAyC;yBACrD;qBACF,CAAC;gBACJ,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,IAAI,GAAG,YAAY,qBAAS,EAAE,CAAC;wBAC7B,OAAO,GAAG,GAAG,CAAC;wBACd,mDAAmD;wBACnD,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;4BAAC,aAAa,GAAG,KAAK,CAAC;4BAAC,MAAM;wBAAC,CAAC;wBACvD,IAAI,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;4BAC5C,MAAM,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC;4BACjC,SAAS,CAAC,yBAAyB;wBACrC,CAAC;oBACH,CAAC;oBACD,MAAM,GAAG,CAAC,CAAC,gBAAgB;gBAC7B,CAAC;YACH,CAAC;YACD,IAAI,CAAC,aAAa;gBAAE,SAAS,CAAC,6BAA6B;QAC7D,CAAC;QACD,MAAM,OAAQ,CAAC;IACjB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,IAAI,CAAC,QAAuB,EAAE,IAAkB;QACpD,MAAM,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;QACrB,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,IAAI,6BAA6B,CAAC;QAEzD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC;YAC7B,MAAM;YACN,OAAO,EAAE;gBACP,QAAQ;gBACR,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtC,GAAG,CAAC,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnE,GAAG,CAAC,CAAC,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACvE;YACD,WAAW,EAAE;gBACX,UAAU,EAAE,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU;gBAC/C,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,aAAa;gBAC3B,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzC,GAAG,CAAC,CAAC,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAChF;YACD,iBAAiB,EAAE,CAAC,CAAC,iBAAiB,IAAI;gBACxC,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,aAAa;gBAC3B,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,cAAc,EAAE,CAAC,CAAC,cAAc;gBAChC,mBAAmB,EAAE,CAAC,CAAC,mBAAmB;gBAC1C,eAAe,EAAE,CAAC,CAAC,eAAe;aACnC;YACD,cAAc,EAAE,CAAC,CAAC,cAAc;SACjC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAA4B,CAAC;QAC9D,MAAM,UAAU,GAAI,MAAM,CAAC,OAAqB,IAAI,EAAE,CAAC;QACvD,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACtC,MAAM,EAAE,GAAG,CAA4B,CAAC;YACxC,MAAM,GAAG,GAAG,EAAE,CAAC,OAA6C,CAAC;YAC7D,OAAO;gBACL,KAAK,EAAE,CAAC;gBACR,OAAO,EAAE;oBACP,IAAI,EAAG,GAAG,EAAE,IAA4B,IAAI,WAAW;oBACvD,OAAO,EAAE,GAAG,EAAE,OAAO,IAAI,EAAE;iBAC5B;gBACD,aAAa,EAAE,MAAM,CAAC,EAAE,CAAC,aAAa,IAAI,MAAM,CAAC;aAClD,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,MAAM,CAAC,KAA2C,CAAC;QACpE,MAAM,KAAK,GAAG,QAAQ;YACpB,CAAC,CAAC;gBACE,aAAa,EAAE,QAAQ,CAAC,aAAa,IAAI,CAAC;gBAC1C,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB,IAAI,CAAC;gBAClD,YAAY,EAAE,QAAQ,CAAC,YAAY,IAAI,CAAC;aACzC;YACH,CAAC,CAAC,SAAS,CAAC;QACd,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,OAAO;YAChB,OAAO;YACP,KAAK;YACL,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;YACrC,eAAe,EAAE,IAAI;SACtB,CAAC;IACJ,CAAC;IAED,qEAAqE;IACrE,oCAAoC;IACpC,qEAAqE;IAErE;;;;OAIG;IACK,KAAK,CAAC,qBAAqB,CACjC,YAAoB,EACpB,MAAc,EACd,SAAS,GAAG,IAAI;QAEhB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC;QACtC,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC;QAC5B,MAAM,QAAQ,GAAG,GAAG,SAAS,IAAI,YAAY,IAAI,MAAM,EAAE,CAAC;QAC1D,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC3C,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC;YAC1B,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,8BAA8B,GAAG,GAAG;gBAAE,OAAO,GAAG,CAAC;QAC3E,CAAC;QACD,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,wBAAwB,CAAC;QAC1G,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,CAAC;QAC9D,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAC3B,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;oBAClC,aAAa,EAAE,UAAU,SAAS,EAAE;iBACrC;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC;gBAC9D,MAAM,EAAE,UAAU,CAAC,MAAM;aAC1B,CAAC,CAAC;YACH,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBACvB,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAA4B,CAAC;gBAC3D,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;gBACvC,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC;gBACzC,IAAI,KAAK,EAAE,CAAC;oBACV,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;oBAC1C,OAAO,KAAK,CAAC;gBACf,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,sDAAsD;QACxD,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,qEAAqE;IACrE,kBAAkB;IAClB,qEAAqE;IAE7D,eAAe,CAAC,MAAc;QACpC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,qBAAS,CACjB,wBAAwB,MAAM,kCAAkC,EAChE,QAAQ,CACT,CAAC;QACJ,CAAC;QACD,IAAA,+BAAmB,EAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IAEO,KAAK,CAAC,IAAI,CAAC,GAAW,EAAE,SAAiB,EAAE,WAAoB;QACrE,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,CAAC;QAC9D,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAC3B,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE,WAAW,EAAE,WAAW,IAAI,YAAY,EAAE,EAAE;gBACnF,MAAM,EAAE,UAAU,CAAC,MAAM;aAC1B,CAAC,CAAC;YACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC9C,MAAM,IAAI,qBAAS,CACjB,OAAO,GAAG,aAAa,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAC1D,QAAQ,EACR,EAAE,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,CACpD,CAAC;YACJ,CAAC;YACD,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAY,CAAC;QACvC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,qBAAS;gBAAE,MAAM,GAAG,CAAC;YACxC,IAAK,GAAyB,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBACrD,MAAM,IAAI,qBAAS,CACjB,2BAA2B,SAAS,IAAI,EACxC,QAAQ,EACR,EAAE,SAAS,EAAE,WAAW,EAAE,CAC3B,CAAC;YACJ,CAAC;YACD,MAAM,IAAI,qBAAS,CACjB,kBAAmB,GAAa,CAAC,OAAO,EAAE,EAC1C,QAAQ,EACR,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,WAAW,EAAE,CACvC,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,KAAK,CACjB,GAAW,EACX,IAAa,EACb,SAAiB,EACjB,YAAqC,EACrC,WAAoB;QAEpB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG;gBACd,cAAc,EAAE,kBAAkB;gBAClC,MAAM,EAAE,kBAAkB;gBAC1B,WAAW,EAAE,WAAW,IAAI,YAAY,EAAE;gBAC1C,GAAG,YAAY;aAChB,CAAC;YACF,sEAAsE;YACtE,wEAAwE;YACxE,mDAAmD;YACnD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB;gBACvC,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;oBAChB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;wBAChC,MAAM,EAAE,MAAM;wBACd,OAAO;wBACP,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;wBAC1B,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC;wBACtC,QAAQ,EAAE,QAAQ;qBACnB,CAAC,CAAC;oBACH,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;gBAC/E,CAAC,CAAC,EAAE;gBACN,CAAC,CAAC,MAAM,IAAA,qCAAc,EAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC7E,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;gBAC1C,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;gBACtB,IAAI,IAAI,GAAG,QAAQ,CAAC;gBACpB,IAAI,CAAC;oBACH,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAuB,CAAC;oBACjD,IAAI,CAAC,CAAC,KAAK;wBAAE,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC;gBAC9B,CAAC;gBAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;gBACxB,MAAM,IAAI,qBAAS,CACjB,QAAQ,GAAG,aAAa,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAC3D,IAAI,EACJ,EAAE,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,CAClD,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAY,CAAC;QACzC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,qBAAS;gBAAE,MAAM,GAAG,CAAC;YACxC,IAAK,GAAyB,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBACrD,MAAM,IAAI,qBAAS,CACjB,2BAA2B,SAAS,IAAI,EACxC,QAAQ,EACR,EAAE,SAAS,EAAE,SAAS,EAAE,CACzB,CAAC;YACJ,CAAC;YACD,MAAM,IAAI,qBAAS,CACjB,kBAAmB,GAAa,CAAC,OAAO,EAAE,EAC1C,QAAQ,EACR,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,CACrC,CAAC;QACJ,CAAC;IACH,CAAC;CACF;AA7oBD,gCA6oBC;AAED,SAAS,MAAM,CAAC,EAAU;IACxB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,wDAAwD;AACxD,SAAS,YAAY;IACnB,MAAM,OAAO,GAAG,IAAA,wBAAU,GAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAG,IAAA,wBAAU,GAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC7D,OAAO,MAAM,OAAO,IAAI,QAAQ,KAAK,CAAC;AACxC,CAAC"}
@@ -0,0 +1,47 @@
1
+ export declare const DISPATCH_TICKET_V2_PROFILE = "dispatch_ticket_v2";
2
+ type Json = null | boolean | number | string | Json[] | {
3
+ [key: string]: Json;
4
+ };
5
+ export interface DispatchTrustKey {
6
+ key_id: string;
7
+ public_key_b64url: string;
8
+ state: "active" | "retiring" | "revoked";
9
+ valid_from: number;
10
+ valid_until: number;
11
+ allowed_profiles?: string[];
12
+ issuers?: string[];
13
+ audiences?: string[];
14
+ }
15
+ export interface DispatchTrustBundle {
16
+ bundle_version: number;
17
+ keys: DispatchTrustKey[];
18
+ issuer?: string;
19
+ valid_from?: number;
20
+ valid_until?: number;
21
+ }
22
+ export interface DispatchTicketBindings {
23
+ issuer: string;
24
+ provider_id: string;
25
+ intent: string;
26
+ constraints_digest: string;
27
+ audience?: string;
28
+ }
29
+ export interface DispatchTrustDecision {
30
+ accepted: boolean;
31
+ code: string;
32
+ anchored: boolean;
33
+ key_id?: string;
34
+ }
35
+ export declare class LocalDispatchReplayCache {
36
+ private readonly seen;
37
+ contains(jti: string, now: number): boolean;
38
+ remember(jti: string, expiresAt: number): void;
39
+ }
40
+ export declare function canonicalTicketClaims(value: Json): string;
41
+ export declare function verifyDispatchTicketV2(claims: Record<string, Json>, signatureB64url: string, bundle: DispatchTrustBundle, bindings: DispatchTicketBindings, options: {
42
+ now: number;
43
+ minimumBundleVersion?: number;
44
+ replayCache?: LocalDispatchReplayCache;
45
+ }): DispatchTrustDecision;
46
+ export {};
47
+ //# sourceMappingURL=dispatch_ticket_trust.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dispatch_ticket_trust.d.ts","sourceRoot":"","sources":["../src/dispatch_ticket_trust.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,0BAA0B,uBAAuB,CAAC;AAI/D,KAAK,IAAI,GAAG,IAAI,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,EAAE,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC;AAEhF,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,EAAE,MAAM,CAAC;IAC1B,KAAK,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,gBAAgB,EAAE,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,wBAAwB;IACnC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA6B;IAElD,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO;IAK3C,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;CAG/C;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,IAAI,GAAG,MAAM,CAMzD;AAMD,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,EAC5B,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,mBAAmB,EAC3B,QAAQ,EAAE,sBAAsB,EAChC,OAAO,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,wBAAwB,CAAA;CAAE,GAC9F,qBAAqB,CAqCvB"}
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LocalDispatchReplayCache = exports.DISPATCH_TICKET_V2_PROFILE = void 0;
4
+ exports.canonicalTicketClaims = canonicalTicketClaims;
5
+ exports.verifyDispatchTicketV2 = verifyDispatchTicketV2;
6
+ const node_crypto_1 = require("node:crypto");
7
+ exports.DISPATCH_TICKET_V2_PROFILE = "dispatch_ticket_v2";
8
+ const DOMAIN = Buffer.from("IICP-DISPATCH-TICKET-V2\0", "utf8");
9
+ const ED25519_SPKI_PREFIX = Buffer.from("302a300506032b6570032100", "hex");
10
+ class LocalDispatchReplayCache {
11
+ seen = new Map();
12
+ contains(jti, now) {
13
+ for (const [key, expiry] of this.seen)
14
+ if (expiry <= now)
15
+ this.seen.delete(key);
16
+ return this.seen.has(jti);
17
+ }
18
+ remember(jti, expiresAt) {
19
+ this.seen.set(jti, expiresAt);
20
+ }
21
+ }
22
+ exports.LocalDispatchReplayCache = LocalDispatchReplayCache;
23
+ function canonicalTicketClaims(value) {
24
+ if (Array.isArray(value))
25
+ return `[${value.map(canonicalTicketClaims).join(",")}]`;
26
+ if (value !== null && typeof value === "object") {
27
+ return `{${Object.keys(value).sort().map((key) => `${JSON.stringify(key)}:${canonicalTicketClaims(value[key])}`).join(",")}}`;
28
+ }
29
+ return JSON.stringify(value);
30
+ }
31
+ function decision(code, keyId, accepted = false) {
32
+ return { accepted, code, anchored: accepted, ...(keyId ? { key_id: keyId } : {}) };
33
+ }
34
+ function verifyDispatchTicketV2(claims, signatureB64url, bundle, bindings, options) {
35
+ const minimum = options.minimumBundleVersion ?? 0;
36
+ if (!Number.isSafeInteger(bundle.bundle_version) || bundle.bundle_version < minimum)
37
+ return decision("reject_bundle_rollback");
38
+ if (bundle.valid_from !== undefined && options.now < bundle.valid_from)
39
+ return decision("reject_bundle_not_yet_valid");
40
+ if (bundle.valid_until !== undefined && options.now > bundle.valid_until)
41
+ return decision("reject_bundle_expired");
42
+ if (claims.profile !== exports.DISPATCH_TICKET_V2_PROFILE)
43
+ return decision("reject_required_profile_downgrade");
44
+ const keyId = typeof claims.key_id === "string" ? claims.key_id : undefined;
45
+ const key = keyId ? bundle.keys.find((candidate) => candidate.key_id === keyId) : undefined;
46
+ if (!key)
47
+ return decision("reject_unknown_key", keyId);
48
+ if (key.state === "revoked")
49
+ return decision("reject_key_revoked", keyId);
50
+ if (options.now < key.valid_from || options.now > key.valid_until)
51
+ return decision("reject_key_expired", keyId);
52
+ if (!(key.allowed_profiles ?? [exports.DISPATCH_TICKET_V2_PROFILE]).includes(exports.DISPATCH_TICKET_V2_PROFILE))
53
+ return decision("reject_profile_not_allowed", keyId);
54
+ if (key.issuers?.length && !key.issuers.includes(String(claims.issuer)))
55
+ return decision("reject_issuer", keyId);
56
+ if (key.audiences?.length && !key.audiences.includes(String(claims.audience)))
57
+ return decision("reject_audience", keyId);
58
+ const expected = {
59
+ issuer: bindings.issuer,
60
+ provider_id: bindings.provider_id,
61
+ intent: bindings.intent,
62
+ constraints_digest: bindings.constraints_digest,
63
+ };
64
+ if (Object.entries(expected).some(([name, value]) => claims[name] !== value))
65
+ return decision("reject_claim_mismatch", keyId);
66
+ if (bindings.audience !== undefined && claims.audience !== bindings.audience)
67
+ return decision("reject_claim_mismatch", keyId);
68
+ const expiresAt = claims.expires_at;
69
+ const jti = claims.jti;
70
+ if (!Number.isSafeInteger(expiresAt) || Number(expiresAt) <= options.now || typeof jti !== "string" || !jti)
71
+ return decision("reject_claim_mismatch", keyId);
72
+ try {
73
+ const raw = Buffer.from(key.public_key_b64url, "base64url");
74
+ if (raw.length !== 32)
75
+ return decision("reject_signature", keyId);
76
+ const publicKey = (0, node_crypto_1.createPublicKey)({ key: Buffer.concat([ED25519_SPKI_PREFIX, raw]), format: "der", type: "spki" });
77
+ const message = Buffer.concat([DOMAIN, Buffer.from(canonicalTicketClaims(claims), "utf8")]);
78
+ if (!(0, node_crypto_1.verify)(null, message, publicKey, Buffer.from(signatureB64url, "base64url")))
79
+ return decision("reject_signature", keyId);
80
+ }
81
+ catch {
82
+ return decision("reject_signature", keyId);
83
+ }
84
+ if (options.replayCache?.contains(jti, options.now))
85
+ return decision("reject_local_replay", keyId);
86
+ options.replayCache?.remember(jti, Number(expiresAt));
87
+ return decision("accept_anchored", keyId, true);
88
+ }
89
+ //# sourceMappingURL=dispatch_ticket_trust.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dispatch_ticket_trust.js","sourceRoot":"","sources":["../src/dispatch_ticket_trust.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /** DNS-aware provider endpoint validation and connection pinning (#667). */
2
+ import * as http from "node:http";
3
+ export declare function privateEndpointsAllowed(): boolean;
4
+ export declare function hostnameAllowed(host: string, allowPrivate?: boolean): boolean;
5
+ export declare function addressAllowed(address: string, allowPrivate?: boolean): boolean;
6
+ export interface ResolvedEndpoint {
7
+ url: URL;
8
+ host: string;
9
+ port: number;
10
+ addresses: ReadonlyArray<{
11
+ address: string;
12
+ family: 4 | 6;
13
+ }>;
14
+ }
15
+ export declare function resolveEndpoint(url: string, allowPrivate?: boolean): Promise<ResolvedEndpoint>;
16
+ export interface PinnedResponse {
17
+ status: number;
18
+ headers: http.IncomingHttpHeaders;
19
+ text: string;
20
+ }
21
+ export declare function postJsonPinned(url: string, body: unknown, headers: Record<string, string>, timeoutMs: number, tlsVerify?: boolean, redirectCount?: number): Promise<PinnedResponse>;
22
+ //# sourceMappingURL=endpoint_security.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"endpoint_security.d.ts","sourceRoot":"","sources":["../src/endpoint_security.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAG5E,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAmBlC,wBAAgB,uBAAuB,IAAI,OAAO,CAIjD;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,UAAQ,GAAG,OAAO,CAO3E;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,UAAQ,GAAG,OAAO,CAS7E;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,GAAG,CAAC;IACT,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,aAAa,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAA;KAAE,CAAC,CAAC;CAC9D;AAED,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,UAA4B,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA+BtH;AAED,MAAM,WAAW,cAAc;IAAG,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,IAAI,CAAC,mBAAmB,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE;AAEnG,wBAAsB,cAAc,CAClC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,SAAS,EAAE,MAAM,EACjB,SAAS,UAAO,EAChB,aAAa,SAAI,GAChB,OAAO,CAAC,cAAc,CAAC,CAyCzB"}
@@ -0,0 +1,141 @@
1
+ "use strict";
2
+ /** DNS-aware provider endpoint validation and connection pinning (#667). */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.privateEndpointsAllowed = privateEndpointsAllowed;
5
+ exports.hostnameAllowed = hostnameAllowed;
6
+ exports.addressAllowed = addressAllowed;
7
+ exports.resolveEndpoint = resolveEndpoint;
8
+ exports.postJsonPinned = postJsonPinned;
9
+ const promises_1 = require("node:dns/promises");
10
+ const http = require("node:http");
11
+ const https = require("node:https");
12
+ const node_net_1 = require("node:net");
13
+ const BLOCKED_SUFFIXES = [".local", ".internal", ".lan", ".test", ".invalid", ".localhost"];
14
+ const blocked = new node_net_1.BlockList();
15
+ for (const [network, prefix] of [
16
+ ["0.0.0.0", 8], ["10.0.0.0", 8], ["100.64.0.0", 10], ["127.0.0.0", 8],
17
+ ["169.254.0.0", 16], ["172.16.0.0", 12], ["192.0.0.0", 24], ["192.0.2.0", 24], ["192.168.0.0", 16],
18
+ ["198.18.0.0", 15], ["198.51.100.0", 24], ["203.0.113.0", 24], ["224.0.0.0", 4],
19
+ ["240.0.0.0", 4],
20
+ ])
21
+ blocked.addSubnet(network, prefix, "ipv4");
22
+ for (const [network, prefix] of [
23
+ ["::", 128], ["::1", 128], ["100::", 64], ["2001:db8::", 32], ["fc00::", 7],
24
+ ["fe80::", 10], ["ff00::", 8],
25
+ ])
26
+ blocked.addSubnet(network, prefix, "ipv6");
27
+ function privateEndpointsAllowed() {
28
+ return ["1", "true", "yes"].includes((process.env.IICP_PROXY_ALLOW_LOOPBACK_NODES ?? "").trim().toLowerCase());
29
+ }
30
+ function hostnameAllowed(host, allowPrivate = false) {
31
+ if (!host)
32
+ return false;
33
+ if (allowPrivate)
34
+ return true;
35
+ const normalized = host.replace(/\.$/, "").toLowerCase();
36
+ if (["localhost", "0.0.0.0", "::1", "::"].includes(normalized))
37
+ return false;
38
+ if (BLOCKED_SUFFIXES.some((suffix) => normalized.endsWith(suffix)))
39
+ return false;
40
+ return (0, node_net_1.isIP)(normalized) !== 0 || normalized.includes(".") || normalized.includes(":");
41
+ }
42
+ function addressAllowed(address, allowPrivate = false) {
43
+ if (allowPrivate)
44
+ return true;
45
+ const family = (0, node_net_1.isIP)(address);
46
+ if (family === 0)
47
+ return false;
48
+ if (family === 4)
49
+ return !blocked.check(address, "ipv4");
50
+ const dottedMapped = /^::ffff:(\d+\.\d+\.\d+\.\d+)$/i.exec(address);
51
+ if (dottedMapped)
52
+ return addressAllowed(dottedMapped[1], false);
53
+ if (/^::ffff:/i.test(address))
54
+ return false; // conservatively refuse hexadecimal mapped forms
55
+ return !blocked.check(address, "ipv6");
56
+ }
57
+ async function resolveEndpoint(url, allowPrivate = privateEndpointsAllowed()) {
58
+ let parsed;
59
+ try {
60
+ parsed = new URL(url);
61
+ }
62
+ catch {
63
+ throw new Error("IICP-ENDPOINT-REFUSED: invalid provider URL");
64
+ }
65
+ if (!["http:", "https:"].includes(parsed.protocol)) {
66
+ throw new Error("IICP-ENDPOINT-REFUSED: provider endpoint must use HTTP or HTTPS");
67
+ }
68
+ if (parsed.username || parsed.password) {
69
+ throw new Error("IICP-ENDPOINT-REFUSED: provider endpoint must not contain user info");
70
+ }
71
+ const host = parsed.hostname.replace(/^\[|\]$/g, "").replace(/\.$/, "").toLowerCase();
72
+ if (!hostnameAllowed(host, allowPrivate)) {
73
+ throw new Error("IICP-ENDPOINT-REFUSED: provider hostname is prohibited by network policy");
74
+ }
75
+ const port = Number(parsed.port || (parsed.protocol === "https:" ? 443 : 80));
76
+ let answers;
77
+ const literalFamily = (0, node_net_1.isIP)(host);
78
+ if (literalFamily) {
79
+ answers = [{ address: host, family: literalFamily }];
80
+ }
81
+ else {
82
+ try {
83
+ answers = await (0, promises_1.lookup)(host, { all: true, verbatim: true });
84
+ }
85
+ catch {
86
+ throw new Error("IICP-ENDPOINT-REFUSED: provider hostname resolution failed");
87
+ }
88
+ }
89
+ const unique = [...new Map(answers.map((answer) => [`${answer.family}:${answer.address}`, answer])).values()];
90
+ if (unique.length === 0)
91
+ throw new Error("IICP-ENDPOINT-REFUSED: provider hostname returned no addresses");
92
+ if (unique.some((answer) => !addressAllowed(answer.address, allowPrivate))) {
93
+ throw new Error("IICP-ENDPOINT-REFUSED: provider hostname resolved to a prohibited address");
94
+ }
95
+ return { url: parsed, host, port, addresses: unique };
96
+ }
97
+ async function postJsonPinned(url, body, headers, timeoutMs, tlsVerify = true, redirectCount = 0) {
98
+ const endpoint = await resolveEndpoint(url);
99
+ const selected = endpoint.addresses[0];
100
+ const payload = JSON.stringify(body);
101
+ const requestHeaders = { ...headers, "Content-Length": String(Buffer.byteLength(payload)) };
102
+ const transport = endpoint.url.protocol === "https:" ? https : http;
103
+ const pinnedLookup = (_hostname, _options, callback) => {
104
+ callback(null, selected.address, selected.family);
105
+ };
106
+ const response = await new Promise((resolve, reject) => {
107
+ const req = transport.request({
108
+ protocol: endpoint.url.protocol,
109
+ hostname: endpoint.host,
110
+ port: endpoint.port,
111
+ path: `${endpoint.url.pathname}${endpoint.url.search}`,
112
+ method: "POST",
113
+ headers: requestHeaders,
114
+ servername: endpoint.host,
115
+ rejectUnauthorized: tlsVerify,
116
+ agent: false,
117
+ lookup: pinnedLookup,
118
+ }, (res) => {
119
+ const chunks = [];
120
+ res.on("data", (chunk) => chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk)));
121
+ res.on("end", () => resolve({ status: res.statusCode ?? 0, headers: res.headers, text: Buffer.concat(chunks).toString("utf8") }));
122
+ });
123
+ req.setTimeout(timeoutMs, () => req.destroy(new Error(`Request timed out after ${timeoutMs}ms`)));
124
+ req.on("error", reject);
125
+ req.end(payload);
126
+ });
127
+ if (response.status === 307 || response.status === 308) {
128
+ const location = response.headers.location;
129
+ if (!location || redirectCount >= 3)
130
+ throw new Error("IICP-ENDPOINT-REFUSED: provider redirect limit exceeded or omitted Location");
131
+ const next = new URL(location, endpoint.url);
132
+ if (next.origin !== endpoint.url.origin)
133
+ throw new Error("IICP-ENDPOINT-REFUSED: cross-origin provider redirect is not allowed");
134
+ return postJsonPinned(next.toString(), body, headers, timeoutMs, tlsVerify, redirectCount + 1);
135
+ }
136
+ if (response.status >= 300 && response.status < 400) {
137
+ throw new Error("IICP-ENDPOINT-REFUSED: provider redirect method is not allowed");
138
+ }
139
+ return response;
140
+ }
141
+ //# sourceMappingURL=endpoint_security.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"endpoint_security.js","sourceRoot":"","sources":["../src/endpoint_security.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -2,7 +2,12 @@ export { IicpClient } from "./client.js";
2
2
  export { weightedV1Order } from "./selection.js";
3
3
  export { evaluatePreNormativeProfile } from "./profile_compatibility.js";
4
4
  export type { ProfileCompatibilityDecision } from "./profile_compatibility.js";
5
- export type { DiscoveryResult, ProfileNegotiation, ProfileRequest } from "./types.js";
5
+ export type { DiscoveryResult, ProfileNegotiation, ProfileRequest, RouteConstraints } from "./types.js";
6
+ export { projectExecutionConstraints, projectRouteOptions } from "./request_projection.js";
7
+ export { DISPATCH_TICKET_V2_PROFILE, LocalDispatchReplayCache, canonicalTicketClaims, verifyDispatchTicketV2, } from "./dispatch_ticket_trust.js";
8
+ export type { DispatchTicketBindings, DispatchTrustBundle, DispatchTrustDecision, DispatchTrustKey, } from "./dispatch_ticket_trust.js";
9
+ export { LifecycleConflict, LifecycleResumeUnavailable, LifecycleStore, SERVICE_LIFECYCLE_PROFILE, TERMINAL_LIFECYCLE_STATES, UnknownLifecycleTask } from "./service_lifecycle.js";
10
+ export type { LifecycleEvent, LifecycleRecord, LifecycleSnapshot } from "./service_lifecycle.js";
6
11
  export { IicpError } from "./errors.js";
7
12
  export { IicpNode } from "./node.js";
8
13
  export { McpToolPolicy, toolRiskLabel, TOOL_RISK_KEYWORDS } from "./mcp_policy.js";
@@ -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
@@ -1,13 +1,28 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.filterNodesForRoutingPolicy = exports.ROUTING_POLICY_REFUSAL_CODE = exports.prohibitedIntentReason = exports.ensureIntentAllowed = exports.classifyIntent = exports.HIGH_RISK_INTENT_RULES = exports.PROHIBITED_INTENT_RULES = exports.POLICY_REFUSAL_CODE = exports.PeerManager = exports.modelsDiverge = exports.runAuditPass = exports.IdempotencyGuard = exports.TokenValidator = exports.AvailabilityEvaluator = exports.QUEUE_WAIT_MS = exports.QUEUE_ELIGIBLE = exports.QOS_PRIORITY = exports.isQueueEligible = exports.qosPriority = exports.BACKEND_TYPES = exports.getBackendHandler = exports.anthropicHandler = exports.llamacppHandler = exports.vllmHandler = exports.openaiCompatHandler = exports.qualifyServiceAsync = exports.qualifyService = exports.EXPOSURE_MODES = exports.tryUpnpMapping = exports.probeExternalIp = exports.detectCgnat = exports.looksRoutable = exports.detectNat = exports.decodeFrame = exports.encodeFrame = exports.IICP_MAGIC = exports.FRAME_HEADER_LEN = exports.FRAMING_VERSION = exports.MsgType = exports.IicpTcpClientError = exports.IicpTcpClient = exports.IicpTcpServer = exports.TOOL_RISK_KEYWORDS = exports.toolRiskLabel = exports.McpToolPolicy = exports.IicpNode = exports.IicpError = exports.evaluatePreNormativeProfile = exports.weightedV1Order = exports.IicpClient = void 0;
4
- exports.registryNodePresence = exports.classifyRecovery = exports.supervisedRecoveryEnabled = exports.envCheckEveryHeartbeats = exports.envGraceChecks = exports.nodeRegistryPrefix = exports.DEFAULT_RECOVERY_CHECK_EVERY_HEARTBEATS = exports.DEFAULT_RECOVERY_GRACE_CHECKS = exports.RECOVERY_EXIT_CODE = exports.ConcurrencyGate = exports.CapacityExceededError = exports.runConformanceChecks = exports.verifySignature = exports.signBody = exports.phpCanonicalSignBody = exports.buildPricingBlock = exports.getCipPolicy = exports.configureCipPolicy = exports.CooperativeInferencePolicy = exports.routingPolicyRefusalMessage = exports.resolvedRoutingPolicy = void 0;
3
+ exports.TokenValidator = exports.AvailabilityEvaluator = exports.QUEUE_WAIT_MS = exports.QUEUE_ELIGIBLE = exports.QOS_PRIORITY = exports.isQueueEligible = exports.qosPriority = exports.BACKEND_TYPES = exports.getBackendHandler = exports.anthropicHandler = exports.llamacppHandler = exports.vllmHandler = exports.openaiCompatHandler = exports.qualifyServiceAsync = exports.qualifyService = exports.EXPOSURE_MODES = exports.tryUpnpMapping = exports.probeExternalIp = exports.detectCgnat = exports.looksRoutable = exports.detectNat = exports.decodeFrame = exports.encodeFrame = exports.IICP_MAGIC = exports.FRAME_HEADER_LEN = exports.FRAMING_VERSION = exports.MsgType = exports.IicpTcpClientError = exports.IicpTcpClient = exports.IicpTcpServer = exports.TOOL_RISK_KEYWORDS = exports.toolRiskLabel = exports.McpToolPolicy = exports.IicpNode = exports.IicpError = exports.UnknownLifecycleTask = exports.TERMINAL_LIFECYCLE_STATES = exports.SERVICE_LIFECYCLE_PROFILE = exports.LifecycleStore = exports.LifecycleResumeUnavailable = exports.LifecycleConflict = exports.verifyDispatchTicketV2 = exports.canonicalTicketClaims = exports.LocalDispatchReplayCache = exports.DISPATCH_TICKET_V2_PROFILE = exports.projectRouteOptions = exports.projectExecutionConstraints = exports.evaluatePreNormativeProfile = exports.weightedV1Order = exports.IicpClient = void 0;
4
+ exports.registryNodePresence = exports.classifyRecovery = exports.supervisedRecoveryEnabled = exports.envCheckEveryHeartbeats = exports.envGraceChecks = exports.nodeRegistryPrefix = exports.DEFAULT_RECOVERY_CHECK_EVERY_HEARTBEATS = exports.DEFAULT_RECOVERY_GRACE_CHECKS = exports.RECOVERY_EXIT_CODE = exports.ConcurrencyGate = exports.CapacityExceededError = exports.runConformanceChecks = exports.verifySignature = exports.signBody = exports.phpCanonicalSignBody = exports.buildPricingBlock = exports.getCipPolicy = exports.configureCipPolicy = exports.CooperativeInferencePolicy = exports.routingPolicyRefusalMessage = exports.resolvedRoutingPolicy = exports.filterNodesForRoutingPolicy = exports.ROUTING_POLICY_REFUSAL_CODE = exports.prohibitedIntentReason = exports.ensureIntentAllowed = exports.classifyIntent = exports.HIGH_RISK_INTENT_RULES = exports.PROHIBITED_INTENT_RULES = exports.POLICY_REFUSAL_CODE = exports.PeerManager = exports.modelsDiverge = exports.runAuditPass = exports.IdempotencyGuard = void 0;
5
5
  var client_js_1 = require("./client.js");
6
6
  Object.defineProperty(exports, "IicpClient", { enumerable: true, get: function () { return client_js_1.IicpClient; } });
7
7
  var selection_js_1 = require("./selection.js");
8
8
  Object.defineProperty(exports, "weightedV1Order", { enumerable: true, get: function () { return selection_js_1.weightedV1Order; } });
9
9
  var profile_compatibility_js_1 = require("./profile_compatibility.js");
10
10
  Object.defineProperty(exports, "evaluatePreNormativeProfile", { enumerable: true, get: function () { return profile_compatibility_js_1.evaluatePreNormativeProfile; } });
11
+ var request_projection_js_1 = require("./request_projection.js");
12
+ Object.defineProperty(exports, "projectExecutionConstraints", { enumerable: true, get: function () { return request_projection_js_1.projectExecutionConstraints; } });
13
+ Object.defineProperty(exports, "projectRouteOptions", { enumerable: true, get: function () { return request_projection_js_1.projectRouteOptions; } });
14
+ var dispatch_ticket_trust_js_1 = require("./dispatch_ticket_trust.js");
15
+ Object.defineProperty(exports, "DISPATCH_TICKET_V2_PROFILE", { enumerable: true, get: function () { return dispatch_ticket_trust_js_1.DISPATCH_TICKET_V2_PROFILE; } });
16
+ Object.defineProperty(exports, "LocalDispatchReplayCache", { enumerable: true, get: function () { return dispatch_ticket_trust_js_1.LocalDispatchReplayCache; } });
17
+ Object.defineProperty(exports, "canonicalTicketClaims", { enumerable: true, get: function () { return dispatch_ticket_trust_js_1.canonicalTicketClaims; } });
18
+ Object.defineProperty(exports, "verifyDispatchTicketV2", { enumerable: true, get: function () { return dispatch_ticket_trust_js_1.verifyDispatchTicketV2; } });
19
+ var service_lifecycle_js_1 = require("./service_lifecycle.js");
20
+ Object.defineProperty(exports, "LifecycleConflict", { enumerable: true, get: function () { return service_lifecycle_js_1.LifecycleConflict; } });
21
+ Object.defineProperty(exports, "LifecycleResumeUnavailable", { enumerable: true, get: function () { return service_lifecycle_js_1.LifecycleResumeUnavailable; } });
22
+ Object.defineProperty(exports, "LifecycleStore", { enumerable: true, get: function () { return service_lifecycle_js_1.LifecycleStore; } });
23
+ Object.defineProperty(exports, "SERVICE_LIFECYCLE_PROFILE", { enumerable: true, get: function () { return service_lifecycle_js_1.SERVICE_LIFECYCLE_PROFILE; } });
24
+ Object.defineProperty(exports, "TERMINAL_LIFECYCLE_STATES", { enumerable: true, get: function () { return service_lifecycle_js_1.TERMINAL_LIFECYCLE_STATES; } });
25
+ Object.defineProperty(exports, "UnknownLifecycleTask", { enumerable: true, get: function () { return service_lifecycle_js_1.UnknownLifecycleTask; } });
11
26
  var errors_js_1 = require("./errors.js");
12
27
  Object.defineProperty(exports, "IicpError", { enumerable: true, get: function () { return errors_js_1.IicpError; } });
13
28
  var node_js_1 = require("./node.js");
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;AAAA,yCAAyC;AAAhC,uGAAA,UAAU,OAAA;AACnB,+CAAiD;AAAxC,+GAAA,eAAe,OAAA;AACxB,uEAAyE;AAAhE,uIAAA,2BAA2B,OAAA;AAGpC,yCAAwC;AAA/B,sGAAA,SAAS,OAAA;AAClB,qCAAqC;AAA5B,mGAAA,QAAQ,OAAA;AACjB,iDAAmF;AAA1E,8GAAA,aAAa,OAAA;AAAE,8GAAA,aAAa,OAAA;AAAE,mHAAA,kBAAkB,OAAA;AAGzD,6CAUuB;AATrB,4GAAA,aAAa,OAAA;AACb,4GAAA,aAAa,OAAA;AACb,iHAAA,kBAAkB,OAAA;AAClB,sGAAA,OAAO,OAAA;AACP,8GAAA,eAAe,OAAA;AACf,+GAAA,gBAAgB,OAAA;AAChB,yGAAA,UAAU,OAAA;AACV,0GAAA,WAAW,OAAA;AACX,0GAAA,WAAW,OAAA;AASb,uDAM4B;AAL1B,6GAAA,SAAS,OAAA;AACT,iHAAA,aAAa,OAAA;AACb,+GAAA,WAAW,OAAA;AACX,mHAAA,eAAe,OAAA;AACf,kHAAA,cAAc,OAAA;AAGhB,2CAIsB;AAHpB,4GAAA,cAAc,OAAA;AACd,4GAAA,cAAc,OAAA;AACd,iHAAA,mBAAmB,OAAA;AASrB,gEAAkE;AAAzD,uHAAA,mBAAmB,OAAA;AAM5B,8CAAiD;AAAxC,sGAAA,WAAW,OAAA;AAEpB,sDAAyD;AAAhD,8GAAA,eAAe,OAAA;AAExB,wDAA2D;AAAlD,gHAAA,gBAAgB,OAAA;AAEzB,gDAAuE;AAA9D,6GAAA,iBAAiB,OAAA;AAAE,yGAAA,aAAa,OAAA;AAGzC,+CAA2G;AAAlG,2GAAA,WAAW,OAAA;AAAE,+GAAA,eAAe,OAAA;AAAE,4GAAA,YAAY,OAAA;AAAE,8GAAA,cAAc,OAAA;AAAE,6GAAA,aAAa,OAAA;AAClF,qDAA0D;AAAjD,wHAAA,qBAAqB,OAAA;AAE9B,2DAAsD;AAA7C,oHAAA,cAAc,OAAA;AACvB,mDAAoD;AAA3C,kHAAA,gBAAgB,OAAA;AACzB,uDAAiE;AAAxD,gHAAA,YAAY,OAAA;AAAE,iHAAA,aAAa,OAAA;AAEpC,qDAAgD;AAAvC,8GAAA,WAAW,OAAA;AAEpB,yCAOqB;AANnB,gHAAA,mBAAmB,OAAA;AACnB,oHAAA,uBAAuB,OAAA;AACvB,mHAAA,sBAAsB,OAAA;AACtB,2GAAA,cAAc,OAAA;AACd,gHAAA,mBAAmB,OAAA;AACnB,mHAAA,sBAAsB,OAAA;AAGxB,yDAK6B;AAJ3B,gIAAA,2BAA2B,OAAA;AAC3B,gIAAA,2BAA2B,OAAA;AAC3B,0HAAA,qBAAqB,OAAA;AACrB,gIAAA,2BAA2B,OAAA;AAE7B,iDAIyB;AAHvB,2HAAA,0BAA0B,OAAA;AAC1B,mHAAA,kBAAkB,OAAA;AAClB,6GAAA,YAAY,OAAA;AAGd,2CAKsB;AAJpB,+GAAA,iBAAiB,OAAA;AACjB,kHAAA,oBAAoB,OAAA;AACpB,sGAAA,QAAQ,OAAA;AACR,6GAAA,eAAe,OAAA;AAGjB,mDAAwD;AAA/C,sHAAA,oBAAoB,OAAA;AAE7B,mDAA0E;AAAjE,uHAAA,qBAAqB,OAAA;AAAE,iHAAA,eAAe,OAAA;AAC/C,6CAUuB;AATrB,iHAAA,kBAAkB,OAAA;AAClB,4HAAA,6BAA6B,OAAA;AAC7B,sIAAA,uCAAuC,OAAA;AACvC,iHAAA,kBAAkB,OAAA;AAClB,6GAAA,cAAc,OAAA;AACd,sHAAA,uBAAuB,OAAA;AACvB,wHAAA,yBAAyB,OAAA;AACzB,+GAAA,gBAAgB,OAAA;AAChB,mHAAA,oBAAoB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { ClientConfig, DiscoverOptions, TaskRequest } from "./types.js";
2
+ /** Canonical prompt-free projection used by ticketed and legacy discovery. */
3
+ export declare function projectRouteOptions(req: TaskRequest, cfg: ClientConfig): DiscoverOptions;
4
+ /** Provider-facing constraints; route-only fields never cross the data plane. */
5
+ export declare function projectExecutionConstraints(req: TaskRequest): Record<string, unknown>;
6
+ //# sourceMappingURL=request_projection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request_projection.d.ts","sourceRoot":"","sources":["../src/request_projection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE7E,8EAA8E;AAC9E,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,YAAY,GAAG,eAAe,CAWxF;AAED,iFAAiF;AACjF,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAOrF"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.projectRouteOptions = projectRouteOptions;
4
+ exports.projectExecutionConstraints = projectExecutionConstraints;
5
+ /** Canonical prompt-free projection used by ticketed and legacy discovery. */
6
+ function projectRouteOptions(req, cfg) {
7
+ const route = req.route_constraints ?? {};
8
+ return {
9
+ region: route.region ?? req.constraints?.region ?? cfg.region,
10
+ qos: route.qos ?? req.constraints?.qos,
11
+ model: route.model ?? req.constraints?.model,
12
+ min_reputation: route.min_reputation ?? req.constraints?.min_reputation,
13
+ browser_usable_only: route.browser_usable_only ?? false,
14
+ profile_request: route.profile_request ?? cfg.profile_request,
15
+ limit: route.limit ?? 10,
16
+ };
17
+ }
18
+ /** Provider-facing constraints; route-only fields never cross the data plane. */
19
+ function projectExecutionConstraints(req) {
20
+ const source = req.constraints ?? {};
21
+ return {
22
+ ...(source.timeout_ms !== undefined ? { timeout_ms: source.timeout_ms } : {}),
23
+ ...(source.qos !== undefined ? { qos: source.qos } : {}),
24
+ ...(source.model !== undefined ? { model: source.model } : {}),
25
+ };
26
+ }
27
+ //# sourceMappingURL=request_projection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request_projection.js","sourceRoot":"","sources":["../src/request_projection.ts"],"names":[],"mappings":";;AAGA,kDAWC;AAGD,kEAOC;AAtBD,8EAA8E;AAC9E,SAAgB,mBAAmB,CAAC,GAAgB,EAAE,GAAiB;IACrE,MAAM,KAAK,GAAG,GAAG,CAAC,iBAAiB,IAAI,EAAE,CAAC;IAC1C,OAAO;QACL,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,GAAG,CAAC,WAAW,EAAE,MAAM,IAAI,GAAG,CAAC,MAAM;QAC7D,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,GAAG,CAAC,WAAW,EAAE,GAAG;QACtC,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,GAAG,CAAC,WAAW,EAAE,KAAK;QAC5C,cAAc,EAAE,KAAK,CAAC,cAAc,IAAI,GAAG,CAAC,WAAW,EAAE,cAAc;QACvE,mBAAmB,EAAE,KAAK,CAAC,mBAAmB,IAAI,KAAK;QACvD,eAAe,EAAE,KAAK,CAAC,eAAe,IAAI,GAAG,CAAC,eAAe;QAC7D,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,EAAE;KACzB,CAAC;AACJ,CAAC;AAED,iFAAiF;AACjF,SAAgB,2BAA2B,CAAC,GAAgB;IAC1D,MAAM,MAAM,GAAG,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC;IACrC,OAAO;QACL,GAAG,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7E,GAAG,CAAC,MAAM,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxD,GAAG,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC/D,CAAC;AACJ,CAAC"}
@@ -4,5 +4,5 @@ export type SelectableNode = {
4
4
  score: number;
5
5
  load?: number;
6
6
  };
7
- export declare function weightedV1Order<T extends SelectableNode>(nodes: T[], maxRetries: number, randomValue: number): T[];
7
+ export declare function weightedV1Order<T extends SelectableNode>(nodes: T[], maxRetries: number, randomValue: number, topK?: number): T[];
8
8
  //# sourceMappingURL=selection.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"selection.d.ts","sourceRoot":"","sources":["../src/selection.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,MAAM,MAAM,cAAc,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAC/E,wBAAgB,eAAe,CAAC,CAAC,SAAS,cAAc,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,CAAC,EAAE,CAQlH"}
1
+ {"version":3,"file":"selection.d.ts","sourceRoot":"","sources":["../src/selection.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,MAAM,MAAM,cAAc,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAC/E,wBAAgB,eAAe,CAAC,CAAC,SAAS,cAAc,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,SAAI,GAAG,CAAC,EAAE,CAQ5H"}
package/dist/selection.js CHANGED
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.weightedV1Order = weightedV1Order;
4
- function weightedV1Order(nodes, maxRetries, randomValue) {
4
+ function weightedV1Order(nodes, maxRetries, randomValue, topK = 3) {
5
5
  if (nodes.length <= 1)
6
6
  return nodes.slice(0, maxRetries);
7
- const pool = nodes.slice(0, Math.max(1, Math.min(nodes.length, 3)));
7
+ const pool = nodes.slice(0, Math.max(1, Math.min(nodes.length, topK)));
8
8
  const weights = pool.map((node) => Math.max(node.score, 0.01) / (1 + Math.max(0, Math.min(node.load ?? 0, 1))));
9
9
  let remaining = Math.max(0, Math.min(randomValue, 0.999999999)) * weights.reduce((sum, weight) => sum + weight, 0);
10
10
  let chosen = pool[pool.length - 1];
@@ -1 +1 @@
1
- {"version":3,"file":"selection.js","sourceRoot":"","sources":["../src/selection.ts"],"names":[],"mappings":";;AAEA,0CAQC;AARD,SAAgB,eAAe,CAA2B,KAAU,EAAE,UAAkB,EAAE,WAAmB;IAC3G,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IACzD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACpE,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChH,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,GAAG,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC;IACnH,IAAI,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAAC,SAAS,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;QAAC,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;YAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAAC,MAAM;QAAC,CAAC;IAAC,CAAC;IACnH,OAAO,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;AACxH,CAAC"}
1
+ {"version":3,"file":"selection.js","sourceRoot":"","sources":["../src/selection.ts"],"names":[],"mappings":";;AAEA,0CAQC;AARD,SAAgB,eAAe,CAA2B,KAAU,EAAE,UAAkB,EAAE,WAAmB,EAAE,IAAI,GAAG,CAAC;IACrH,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IACzD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IACvE,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChH,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,GAAG,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC;IACnH,IAAI,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAAC,SAAS,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;QAAC,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;YAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAAC,MAAM;QAAC,CAAC;IAAC,CAAC;IACnH,OAAO,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;AACxH,CAAC"}
@@ -0,0 +1,49 @@
1
+ /** Opt-in transport-neutral implementation of the pre-normative lifecycle profile. */
2
+ export declare const SERVICE_LIFECYCLE_PROFILE = "urn:iicp:profile:service-lifecycle:v1";
3
+ export declare const TERMINAL_LIFECYCLE_STATES: Set<string>;
4
+ export interface LifecycleEvent {
5
+ task_id: string;
6
+ sequence: number;
7
+ state: string;
8
+ is_final: boolean;
9
+ observed_at_ms: number;
10
+ detail?: Record<string, unknown>;
11
+ }
12
+ export interface LifecycleRecord {
13
+ task_id: string;
14
+ idempotency_key: string;
15
+ request_digest: string;
16
+ state: string;
17
+ events: LifecycleEvent[];
18
+ updated_at_ms: number;
19
+ }
20
+ export interface LifecycleSnapshot {
21
+ profile: typeof SERVICE_LIFECYCLE_PROFILE;
22
+ records: LifecycleRecord[];
23
+ }
24
+ export declare class LifecycleConflict extends Error {
25
+ }
26
+ export declare class UnknownLifecycleTask extends Error {
27
+ }
28
+ export declare class LifecycleResumeUnavailable extends Error {
29
+ readonly record: LifecycleRecord;
30
+ constructor(record: LifecycleRecord);
31
+ }
32
+ export declare class LifecycleStore {
33
+ private readonly maxEvents;
34
+ private readonly terminalStatusTtlMs;
35
+ private readonly clock;
36
+ private readonly records;
37
+ constructor(maxEvents?: number, terminalStatusTtlMs?: number, clock?: () => number);
38
+ submit(taskId: string, idempotencyKey: string, requestDigest: string): {
39
+ record: LifecycleRecord;
40
+ created: boolean;
41
+ };
42
+ status(taskId: string): LifecycleRecord;
43
+ transition(taskId: string, requestedState: string, detail?: Record<string, unknown>): LifecycleEvent;
44
+ cancel(taskId: string): LifecycleRecord;
45
+ eventsAfter(taskId: string, afterSequence: number, limit?: number): LifecycleEvent[];
46
+ snapshot(): LifecycleSnapshot;
47
+ restore(snapshot: LifecycleSnapshot): void;
48
+ }
49
+ //# sourceMappingURL=service_lifecycle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service_lifecycle.d.ts","sourceRoot":"","sources":["../src/service_lifecycle.ts"],"names":[],"mappings":"AAAA,sFAAsF;AACtF,eAAO,MAAM,yBAAyB,0CAA0C,CAAC;AACjF,eAAO,MAAM,yBAAyB,aAAuE,CAAC;AAS9G,MAAM,WAAW,cAAc;IAAG,OAAO,EAAC,MAAM,CAAC;IAAC,QAAQ,EAAC,MAAM,CAAC;IAAC,KAAK,EAAC,MAAM,CAAC;IAAC,QAAQ,EAAC,OAAO,CAAC;IAAC,cAAc,EAAC,MAAM,CAAC;IAAC,MAAM,CAAC,EAAC,MAAM,CAAC,MAAM,EAAC,OAAO,CAAC,CAAC;CAAE;AAC3J,MAAM,WAAW,eAAe;IAAG,OAAO,EAAC,MAAM,CAAC;IAAC,eAAe,EAAC,MAAM,CAAC;IAAC,cAAc,EAAC,MAAM,CAAC;IAAC,KAAK,EAAC,MAAM,CAAC;IAAC,MAAM,EAAC,cAAc,EAAE,CAAC;IAAC,aAAa,EAAC,MAAM,CAAC;CAAE;AAChK,MAAM,WAAW,iBAAiB;IAAG,OAAO,EAAC,OAAO,yBAAyB,CAAC;IAAC,OAAO,EAAC,eAAe,EAAE,CAAC;CAAE;AAC3G,qBAAa,iBAAkB,SAAQ,KAAK;CAAG;AAC/C,qBAAa,oBAAqB,SAAQ,KAAK;CAAG;AAClD,qBAAa,0BAA2B,SAAQ,KAAK;aAA+B,MAAM,EAAC,eAAe;gBAAtB,MAAM,EAAC,eAAe;CAAoC;AAE9I,qBAAa,cAAc;IAEb,OAAO,CAAC,QAAQ,CAAC,SAAS;IAAM,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IAAY,OAAO,CAAC,QAAQ,CAAC,KAAK;IADlH,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqC;gBAChC,SAAS,SAAI,EAAmB,mBAAmB,SAAU,EAAmB,KAAK,GAAC,MAAI,MAAe;IACtI,MAAM,CAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,MAAM,EAAC,aAAa,EAAC,MAAM,GAAE;QAAC,MAAM,EAAC,eAAe,CAAC;QAAA,OAAO,EAAC,OAAO,CAAA;KAAC;IAOzG,MAAM,CAAC,MAAM,EAAC,MAAM,GAAE,eAAe;IACrC,UAAU,CAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,MAAM,EAAC,MAAM,GAAC,MAAM,CAAC,MAAM,EAAC,OAAO,CAAI,GAAE,cAAc;IAC/F,MAAM,CAAC,MAAM,EAAC,MAAM,GAAE,eAAe;IACrC,WAAW,CAAC,MAAM,EAAC,MAAM,EAAC,aAAa,EAAC,MAAM,EAAC,KAAK,SAAe,GAAE,cAAc,EAAE;IACrF,QAAQ,IAAG,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,EAAC,iBAAiB,GAAE,IAAI;CACzC"}
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LifecycleStore = exports.LifecycleResumeUnavailable = exports.UnknownLifecycleTask = exports.LifecycleConflict = exports.TERMINAL_LIFECYCLE_STATES = exports.SERVICE_LIFECYCLE_PROFILE = void 0;
4
+ /** Opt-in transport-neutral implementation of the pre-normative lifecycle profile. */
5
+ exports.SERVICE_LIFECYCLE_PROFILE = "urn:iicp:profile:service-lifecycle:v1";
6
+ exports.TERMINAL_LIFECYCLE_STATES = new Set(["rejected", "completed", "failed", "cancelled", "expired"]);
7
+ const transitions = {
8
+ submitted: new Set(["accepted", "rejected", "expired"]),
9
+ accepted: new Set(["queued", "running", "completed", "cancelled", "failed", "expired"]),
10
+ queued: new Set(["running", "waiting", "cancelled", "failed", "expired"]),
11
+ running: new Set(["waiting", "streaming", "completed", "cancelled", "failed", "expired"]),
12
+ waiting: new Set(["queued", "running", "cancelled", "failed", "expired"]),
13
+ streaming: new Set(["streaming", "waiting", "completed", "cancelled", "failed", "expired"]),
14
+ };
15
+ class LifecycleConflict extends Error {
16
+ }
17
+ exports.LifecycleConflict = LifecycleConflict;
18
+ class UnknownLifecycleTask extends Error {
19
+ }
20
+ exports.UnknownLifecycleTask = UnknownLifecycleTask;
21
+ class LifecycleResumeUnavailable extends Error {
22
+ record;
23
+ constructor(record) {
24
+ super("resume_unavailable");
25
+ this.record = record;
26
+ }
27
+ }
28
+ exports.LifecycleResumeUnavailable = LifecycleResumeUnavailable;
29
+ class LifecycleStore {
30
+ maxEvents;
31
+ terminalStatusTtlMs;
32
+ clock;
33
+ records = new Map();
34
+ constructor(maxEvents = 256, terminalStatusTtlMs = 3_600_000, clock = Date.now) {
35
+ this.maxEvents = maxEvents;
36
+ this.terminalStatusTtlMs = terminalStatusTtlMs;
37
+ this.clock = clock;
38
+ }
39
+ submit(taskId, idempotencyKey, requestDigest) {
40
+ const existing = this.records.get(taskId);
41
+ if (existing) {
42
+ if (existing.idempotency_key !== idempotencyKey || existing.request_digest !== requestDigest)
43
+ throw new LifecycleConflict("task or idempotency identifier reused for different content");
44
+ return { record: structuredClone(existing), created: false };
45
+ }
46
+ if ([...this.records.values()].some(record => record.idempotency_key === idempotencyKey))
47
+ throw new LifecycleConflict("idempotency identifier reused with a different task identifier");
48
+ const now = this.clock();
49
+ const event = { task_id: taskId, sequence: 0, state: "accepted", is_final: false, observed_at_ms: now };
50
+ const record = { task_id: taskId, idempotency_key: idempotencyKey, request_digest: requestDigest, state: "accepted", events: [event], updated_at_ms: now };
51
+ this.records.set(taskId, record);
52
+ return { record: structuredClone(record), created: true };
53
+ }
54
+ status(taskId) { const record = this.records.get(taskId); if (!record || (exports.TERMINAL_LIFECYCLE_STATES.has(record.state) && this.clock() - record.updated_at_ms > this.terminalStatusTtlMs)) {
55
+ this.records.delete(taskId);
56
+ throw new UnknownLifecycleTask(taskId);
57
+ } return structuredClone(record); }
58
+ transition(taskId, requestedState, detail = {}) { const record = this.records.get(taskId); if (!record)
59
+ throw new UnknownLifecycleTask(taskId); const state = requestedState === "timed_out" ? "expired" : requestedState; if (!transitions[record.state]?.has(state))
60
+ throw new LifecycleConflict(`illegal transition ${record.state} -> ${state}`); const event = { task_id: taskId, sequence: record.events.at(-1).sequence + 1, state, is_final: exports.TERMINAL_LIFECYCLE_STATES.has(state), observed_at_ms: this.clock(), detail }; record.events.push(event); const max = Math.max(2, this.maxEvents); if (record.events.length > max)
61
+ record.events.splice(0, record.events.length - max); record.state = state; record.updated_at_ms = event.observed_at_ms; return structuredClone(event); }
62
+ cancel(taskId) { const current = this.status(taskId); if (!exports.TERMINAL_LIFECYCLE_STATES.has(current.state))
63
+ this.transition(taskId, "cancelled", { outcome: "cancelled" }); return this.status(taskId); }
64
+ eventsAfter(taskId, afterSequence, limit = this.maxEvents) { const record = this.status(taskId); if (afterSequence >= 0 && afterSequence + 1 < record.events[0].sequence)
65
+ throw new LifecycleResumeUnavailable(record); return record.events.filter(event => event.sequence > afterSequence).slice(0, Math.max(1, limit)); }
66
+ snapshot() { return { profile: exports.SERVICE_LIFECYCLE_PROFILE, records: [...this.records.values()].map(record => structuredClone(record)) }; }
67
+ restore(snapshot) { if (snapshot.profile !== exports.SERVICE_LIFECYCLE_PROFILE)
68
+ throw new LifecycleConflict("unsupported lifecycle snapshot profile"); for (const record of snapshot.records) {
69
+ if (!record.events.length || record.events.some((event, index) => event.sequence !== record.events[0].sequence + index))
70
+ throw new LifecycleConflict("invalid lifecycle snapshot sequence");
71
+ this.records.set(record.task_id, structuredClone(record));
72
+ } }
73
+ }
74
+ exports.LifecycleStore = LifecycleStore;
75
+ //# sourceMappingURL=service_lifecycle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service_lifecycle.js","sourceRoot":"","sources":["../src/service_lifecycle.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -22,6 +22,8 @@ export interface ClientConfig {
22
22
  routing_softmax_tau?: number;
23
23
  /** Phase 2 (#496): caller's JWT from directory registration, used to acquire consumer tokens. */
24
24
  node_token?: string;
25
+ /** Directory-issued consumer identity policy. Default: optional. */
26
+ consumer_auth_mode?: "optional" | "required" | "disabled";
25
27
  /** Phase 6 (#585): default client-side policy evaluated before remote prompt dispatch. */
26
28
  routing_policy?: RoutingPolicy;
27
29
  /** Route endpoint migration mode. Default: auto. */
@@ -34,6 +36,17 @@ export interface TaskConstraints {
34
36
  qos?: string;
35
37
  timeout_ms?: number;
36
38
  min_reputation?: number;
39
+ model?: string;
40
+ }
41
+ /** Prompt-free criteria used only for provider discovery and selection. */
42
+ export interface RouteConstraints {
43
+ region?: string;
44
+ qos?: string;
45
+ model?: string;
46
+ min_reputation?: number;
47
+ browser_usable_only?: boolean;
48
+ profile_request?: ProfileRequest;
49
+ limit?: number;
37
50
  }
38
51
  export interface TaskAuth {
39
52
  token: string;
@@ -49,6 +62,7 @@ export interface TaskRequest {
49
62
  intent: string;
50
63
  payload: Record<string, unknown>;
51
64
  constraints?: TaskConstraints;
65
+ route_constraints?: RouteConstraints;
52
66
  auth?: TaskAuth;
53
67
  task_id?: string;
54
68
  /** #488 — querying node identity for self-query neutrality at the directory. */
@@ -79,6 +93,7 @@ export interface DiscoverOptions {
79
93
  region?: string;
80
94
  qos?: string;
81
95
  min_reputation?: number;
96
+ model?: string;
82
97
  /** Browser-like consumers: keep only HTTPS/loopback endpoints. Native default: false. */
83
98
  browser_usable_only?: boolean;
84
99
  /** Optional additive pre-normative directory profile negotiation. */
@@ -179,10 +194,14 @@ export interface ChatOptions {
179
194
  region?: string;
180
195
  timeout_ms?: number;
181
196
  min_reputation?: number;
197
+ qos?: string;
182
198
  model?: string;
183
199
  max_tokens?: number;
184
200
  temperature?: number;
185
201
  routing_policy?: RoutingPolicy;
202
+ browser_usable_only?: boolean;
203
+ profile_request?: ProfileRequest;
204
+ route_constraints?: RouteConstraints;
186
205
  }
187
206
  export type RoutingProfile = "standard" | "sensitive" | "eu_restricted" | "strict_policy" | "debug_override";
188
207
  export type RequiredManifestIdentityLevel = "signed_valid" | "operator_bound" | "known_operator";
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@iicp/client",
3
- "version": "0.7.90",
3
+ "version": "0.7.92",
4
4
  "description": "Use the open IICP AI mesh from TypeScript or JavaScript without running a node",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -71,4 +71,4 @@
71
71
  "access": "public",
72
72
  "registry": "https://registry.npmjs.org/"
73
73
  }
74
- }
74
+ }