@cotal-ai/connector-claude-code 0.69.0 → 0.70.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -48,20 +48,18 @@
48
48
  * the predicate does select, on a session that contains the thing it selects. The three captures
49
49
  * here simply contain none. **Both numbers belong together; either alone misleads.**
50
50
  *
51
- * **THIS WAS A COVERAGE GAP, IT WAS RULED, AND THE RULING IS IMPLEMENTED BELOW.** It read: on
52
- * agent-driven sessions no run is ever opened and the connector emits nothing, because the mapping table
53
- * sent every non-`human` origin to *nothing*. The session it was derived from had a human typing 44 times alongside
54
- * its 3068 mesh messages; a spawned lane seat has **0 and 67**, so the open question was **what
55
- * opens a run when nobody types**.
56
- *
57
- * **THE RULING: run-opening and attribution are two predicates, and that row was one predicate
58
- * doing both jobs.** A run opens on
59
- * `origin.kind ∈ { human, channel }`, ENUMERATED and never inferred; `task-notification` is named as
60
- * known-and-not-a-turn; absent `origin` gets its own enumeration over `promptSource`. Attribution
61
- * rides as `cotal.turnSource` — **a field on the run, never a gate on it**. The privacy argument is
62
- * untouched: a `RUN_STARTED` attributed to a peer republishes no message body, so a peer-initiated
63
- * turn can be a turn without re-emitting the peer's content. See {@link ORIGIN_RULE} and
64
- * {@link ABSENT_ORIGIN_RULE}, which are where this now lives.
51
+ * **WHAT OPENS A RUN WHEN NOBODY TYPES.** A mapping that sends every non-`human` origin to
52
+ * *nothing* opens no run on an agent-driven session, and the connector emits nothing there. The
53
+ * session the mapping was derived from had a human typing 44 times alongside its 3068 mesh
54
+ * messages; a spawned lane seat has **0 and 67**.
55
+ *
56
+ * **THE RULE: run-opening and attribution are two predicates, not one doing both jobs.** A run
57
+ * opens on `origin.kind ∈ { human, channel }`, ENUMERATED and never inferred; `task-notification`
58
+ * is named as known-and-not-a-turn; absent `origin` gets its own enumeration over `promptSource`.
59
+ * Attribution rides as `cotal.turnSource` — **a field on the run, never a gate on it**. The privacy
60
+ * argument holds: a `RUN_STARTED` attributed to a peer republishes no message body, so a
61
+ * peer-initiated turn can be a turn without re-emitting the peer's content. See
62
+ * {@link ORIGIN_RULE} and {@link ABSENT_ORIGIN_RULE}, which are where this lives.
65
63
  *
66
64
  * On the 5938-record session the real mapper opens **67 runs** and emits **5217 events**, and
67
65
  * `diagnose()` returns `null`.
@@ -73,12 +71,12 @@
73
71
  * not emit nothing — it would emit a flood, each entry opening a run, which looks like the connector
74
72
  * working.
75
73
  *
76
- * **The rule is implemented exactly as RULED, and still not guessed at.** `promptSource` was
77
- * proposed as the selector and REJECTED: it is bounded by the partition it was inferred from, and
78
- * "sdk" also covers programmatic injection. It survives only inside {@link ABSENT_ORIGIN_RULE},
79
- * where there is no `origin.kind` to enumerate — a second table rather than a synthetic member,
80
- * because an enumeration over `origin.kind` cannot classify a record that has none. Every value
81
- * outside either table **fails loud** rather than being silently treated as not-a-turn.
74
+ * **The rule is not guessed at.** `promptSource` is not the selector: it is bounded by the
75
+ * partition it was inferred from, and "sdk" also covers programmatic injection. It is read only
76
+ * inside {@link ABSENT_ORIGIN_RULE}, where there is no `origin.kind` to enumerate — a second table
77
+ * rather than a synthetic member, because an enumeration over `origin.kind` cannot classify a
78
+ * record that has none. Every value outside either table **fails loud** rather than being silently
79
+ * treated as not-a-turn.
82
80
  *
83
81
  * **(C) `TOOL_CALL_RESULT.messageId` is unstated in §3.1's table** (the row names only
84
82
  * `toolCallId`) while the real schema REQUIRES it. It is keyed the same way every other message
@@ -1 +1 @@
1
- {"version":3,"file":"agui-map.d.ts","sourceRoot":"","sources":["../src/agui-map.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6FG;AACH,OAAO,EACL,KAAK,SAAS,EACd,KAAK,YAAY,EAalB,MAAM,0BAA0B,CAAC;AAElC;;;;;;;GAOG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3B;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,6FAA6F;IAC7F,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE;QACR,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,OAAO,CAAC,EAAE,MAAM,GAAG,WAAW,EAAE,CAAC;KAClC,CAAC;CACH;AAmHD,+EAA+E;AAC/E,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB;IACjB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,oBAAoB;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,gGAAgG;IAChG,QAAQ,EAAE,MAAM,CAAC;IACjB,+FAA+F;IAC/F,SAAS,EAAE,MAAM,MAAM,CAAC;IACxB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;OAIG;IACH,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AAED,0FAA0F;AAC1F,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,YAAY,CAAC,WAAW,CAAC,CAAC;IAC/B;;;;;;;OAOG;IACH,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,KAAK;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,SAAS,EAAE,CAAA;KAAE,GAAG,IAAI,CAAC;IACxG,yFAAyF;IACzF,OAAO,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IAC7B;;;;;;;;;;;;;;;OAeG;IACH,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC;;;;;;;;;;;OAWG;IACH,QAAQ,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;CAC/B;AAiBD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,mBAAmB,GAAG,YAAY,CAuP1E"}
1
+ {"version":3,"file":"agui-map.d.ts","sourceRoot":"","sources":["../src/agui-map.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2FG;AACH,OAAO,EACL,KAAK,SAAS,EACd,KAAK,YAAY,EAalB,MAAM,0BAA0B,CAAC;AAElC;;;;;;;GAOG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3B;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,6FAA6F;IAC7F,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE;QACR,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,OAAO,CAAC,EAAE,MAAM,GAAG,WAAW,EAAE,CAAC;KAClC,CAAC;CACH;AAmHD,+EAA+E;AAC/E,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB;IACjB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,oBAAoB;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,gGAAgG;IAChG,QAAQ,EAAE,MAAM,CAAC;IACjB,+FAA+F;IAC/F,SAAS,EAAE,MAAM,MAAM,CAAC;IACxB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;OAIG;IACH,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AAED,0FAA0F;AAC1F,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,YAAY,CAAC,WAAW,CAAC,CAAC;IAC/B;;;;;;;OAOG;IACH,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,KAAK;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,SAAS,EAAE,CAAA;KAAE,GAAG,IAAI,CAAC;IACxG,yFAAyF;IACzF,OAAO,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IAC7B;;;;;;;;;;;;;;;OAeG;IACH,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC;;;;;;;;;;;OAWG;IACH,QAAQ,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;CAC/B;AAiBD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,mBAAmB,GAAG,YAAY,CAuP1E"}
package/dist/hook.cjs CHANGED
@@ -23876,6 +23876,66 @@ function contractDigest(value) {
23876
23876
  // ../../packages/core/dist/safe-pattern.js
23877
23877
  var CHOICE_SAT = 1 << 20;
23878
23878
 
23879
+ // ../../packages/core/dist/endpoint-error.js
23880
+ var EP_ERROR_CODES = Object.freeze([
23881
+ "bad-request",
23882
+ "unsupported-version",
23883
+ "op-mismatch",
23884
+ "class-mismatch",
23885
+ "target-mismatch",
23886
+ "sender-mismatch",
23887
+ "unauthenticated",
23888
+ "permission-denied",
23889
+ "not-found",
23890
+ "already-exists",
23891
+ "conflict",
23892
+ "contract-mismatch",
23893
+ "contract-invalid",
23894
+ "failed-precondition",
23895
+ "deadline-exceeded",
23896
+ "cancelled",
23897
+ "expired",
23898
+ "unavailable",
23899
+ "unimplemented",
23900
+ "resource-exhausted",
23901
+ "internal"
23902
+ ]);
23903
+ var EpEnvelopeError = class extends Error {
23904
+ code;
23905
+ details;
23906
+ outcome;
23907
+ constructor(code, message, details, outcome) {
23908
+ super(message);
23909
+ this.code = code;
23910
+ this.details = details;
23911
+ this.outcome = outcome;
23912
+ this.name = "EpEnvelopeError";
23913
+ }
23914
+ toEpError() {
23915
+ return {
23916
+ code: this.code,
23917
+ message: this.message,
23918
+ ...this.details ? { details: this.details } : {},
23919
+ ...this.outcome ? { outcome: this.outcome } : {}
23920
+ };
23921
+ }
23922
+ };
23923
+
23924
+ // ../../packages/core/dist/contract-manifest.js
23925
+ var HEX64 = /^[0-9a-f]{64}$/;
23926
+ function contractRefToHex(ref) {
23927
+ const hex3 = ref.startsWith("sha256:") ? ref.slice("sha256:".length) : ref;
23928
+ if (!HEX64.test(hex3))
23929
+ throw new EpEnvelopeError("contract-invalid", `contract reference ${JSON.stringify(ref)} is not a sha256 digest; a garbled reference never resolves (SPEC 13.7)`);
23930
+ return hex3;
23931
+ }
23932
+ var sha256Ref = (hex3) => `sha256:${hex3}`;
23933
+ function buildContractClosureManifest(rootRef, memberRefs) {
23934
+ const root = sha256Ref(contractRefToHex(rootRef));
23935
+ const members = [...new Set(memberRefs.map((r) => sha256Ref(contractRefToHex(r))))].sort();
23936
+ return { v: 1, root, members };
23937
+ }
23938
+
23879
23939
  // ../../packages/core/dist/schema-profile.js
23880
23940
  var SCHEMA_PROFILE = Object.freeze({
23881
23941
  /** One schema document's canonical form, bytes. */
@@ -24005,9 +24065,13 @@ var AJV_PROFILE_OPTIONS = Object.freeze({
24005
24065
  // worth more than inlining's marginal speed.
24006
24066
  inlineRefs: false
24007
24067
  });
24068
+ function singleDocumentClosure(root) {
24069
+ const manifest = buildContractClosureManifest(contractDigest(root), []);
24070
+ return { manifest, closureDigest: contractDigest(manifest) };
24071
+ }
24008
24072
  var VOID_SCHEMA = Object.freeze({ type: "null" });
24009
24073
  var VOID_SCHEMA_ARTIFACT_DIGEST = contractDigest(VOID_SCHEMA);
24010
- var VOID_SCHEMA_DIGEST = contractDigest({ v: 1, root: VOID_SCHEMA_ARTIFACT_DIGEST, members: [] });
24074
+ var VOID_SCHEMA_DIGEST = singleDocumentClosure(VOID_SCHEMA).closureDigest;
24011
24075
  var SCHEMA_VALUED_KEYS = ["not", "if", "then", "else", "items", "contains", "additionalProperties", "propertyNames", "unevaluatedItems", "unevaluatedProperties", "contentSchema", "additionalItems"];
24012
24076
  var SCHEMA_VALUED_MAP_KEYS = ["properties", "patternProperties", "$defs", "definitions", "dependentSchemas", "dependencies"];
24013
24077
  var SCHEMA_VALUED_LIST_KEYS = ["allOf", "anyOf", "oneOf", "prefixItems"];
@@ -24053,51 +24117,6 @@ var SCALAR_KEYS = [
24053
24117
  ];
24054
24118
  var ADMITTED = /* @__PURE__ */ new Set([...SCHEMA_VALUED_KEYS, ...SCHEMA_VALUED_MAP_KEYS, ...SCHEMA_VALUED_LIST_KEYS, ...SCALAR_KEYS]);
24055
24119
 
24056
- // ../../packages/core/dist/endpoint-error.js
24057
- var EP_ERROR_CODES = Object.freeze([
24058
- "bad-request",
24059
- "unsupported-version",
24060
- "op-mismatch",
24061
- "class-mismatch",
24062
- "target-mismatch",
24063
- "sender-mismatch",
24064
- "unauthenticated",
24065
- "permission-denied",
24066
- "not-found",
24067
- "already-exists",
24068
- "conflict",
24069
- "contract-mismatch",
24070
- "contract-invalid",
24071
- "failed-precondition",
24072
- "deadline-exceeded",
24073
- "cancelled",
24074
- "expired",
24075
- "unavailable",
24076
- "unimplemented",
24077
- "resource-exhausted",
24078
- "internal"
24079
- ]);
24080
- var EpEnvelopeError = class extends Error {
24081
- code;
24082
- details;
24083
- outcome;
24084
- constructor(code, message, details, outcome) {
24085
- super(message);
24086
- this.code = code;
24087
- this.details = details;
24088
- this.outcome = outcome;
24089
- this.name = "EpEnvelopeError";
24090
- }
24091
- toEpError() {
24092
- return {
24093
- code: this.code,
24094
- message: this.message,
24095
- ...this.details ? { details: this.details } : {},
24096
- ...this.outcome ? { outcome: this.outcome } : {}
24097
- };
24098
- }
24099
- };
24100
-
24101
24120
  // ../../packages/core/dist/endpoint-envelope.js
24102
24121
  var EP_ERROR_SET = new Set(EP_ERROR_CODES);
24103
24122
  var LABEL = "[a-z0-9]([a-z0-9-]*[a-z0-9])?";
@@ -24497,144 +24516,6 @@ var GOVERNED_TRAIT_URNS = Object.freeze([TRAIT_GUARDED, TRAIT_PRICED]);
24497
24516
  // ../../packages/core/dist/evict.js
24498
24517
  var import_transport_node3 = __toESM(require_transport_node(), 1);
24499
24518
 
24500
- // ../../packages/core/dist/endpoint-service.js
24501
- var SOURCE_CHAIN_ID = "[A-Za-z0-9_-]{1,64}";
24502
- var SOURCE_CHAIN_ELEMENT = new RegExp(`^(root|handle\\.${SOURCE_CHAIN_ID}\\.${SOURCE_CHAIN_ID}|session\\.${SOURCE_CHAIN_ID})$`);
24503
-
24504
- // ../../packages/core/dist/endpoint-signing.js
24505
- var import_nkeys = __toESM(require_mod2(), 1);
24506
- var ANCHOR_ROLES = Object.freeze([
24507
- "handles",
24508
- "traits",
24509
- "receipts",
24510
- "resume",
24511
- "sessions",
24512
- "authz-slots",
24513
- "obligations",
24514
- "payments"
24515
- ]);
24516
-
24517
- // ../../packages/core/dist/endpoint-checkpoint.js
24518
- var import_jetstream3 = __toESM(require_mod4(), 1);
24519
- var import_transport_node4 = __toESM(require_transport_node(), 1);
24520
- var MAX_SCHEDULE_MS = Date.UTC(9999, 11, 31, 23, 59, 59, 999);
24521
-
24522
- // ../../packages/core/dist/endpoint-action.js
24523
- var import_jetstream5 = __toESM(require_mod4(), 1);
24524
- var import_transport_node6 = __toESM(require_transport_node(), 1);
24525
-
24526
- // ../../packages/core/dist/endpoint-receipt.js
24527
- var import_jetstream4 = __toESM(require_mod4(), 1);
24528
- var import_transport_node5 = __toESM(require_transport_node(), 1);
24529
-
24530
- // ../../packages/core/dist/endpoint-action.js
24531
- var BRANDED_CONTEXTS = /* @__PURE__ */ new WeakSet();
24532
- function assertCtx(ctx) {
24533
- if (!BRANDED_CONTEXTS.has(ctx))
24534
- throw new EpEnvelopeError("failed-precondition", `the action context was not constructed by actionContext(); a hand-assembled resource bundle never authorizes - the space bond is constructed, not asserted (SPEC 13.4)`);
24535
- }
24536
- var GUARD_CLEARANCES = /* @__PURE__ */ new WeakMap();
24537
- var clearanceMintClaimed = false;
24538
- function claimGuardClearanceMint() {
24539
- if (clearanceMintClaimed)
24540
- throw new EpEnvelopeError("permission-denied", "the guard-clearance mint is already claimed by THE gate; a guarded goal's edge into running opens only through it (SPEC 13.6)");
24541
- clearanceMintClaimed = true;
24542
- return (ctx, goalId) => {
24543
- assertCtx(ctx);
24544
- const clearance = Object.freeze({ goalId: assertIdToken(goalId, "goalId") });
24545
- GUARD_CLEARANCES.set(clearance, ctx);
24546
- return clearance;
24547
- };
24548
- }
24549
- var GOAL_STATES = Object.freeze(["accepted", "running", "waiting", "cancelling", "succeeded", "failed", "cancelled", "expired", "uncertain"]);
24550
- var GOAL_TERMINAL_STATES = Object.freeze(["succeeded", "failed", "cancelled", "expired", "uncertain"]);
24551
-
24552
- // ../../packages/core/dist/endpoint-guard.js
24553
- var mintGuardClearance = claimGuardClearanceMint();
24554
-
24555
- // ../../packages/core/dist/endpoint-traits.js
24556
- var TRAIT_SELECTORS = Object.freeze(["cluster", "command", "attribute", "event"]);
24557
-
24558
- // ../../packages/core/dist/endpoint-publish-denial.js
24559
- var import_transport_node7 = __toESM(require_transport_node(), 1);
24560
-
24561
- // ../../packages/core/dist/endpoint-invoke.js
24562
- var import_transport_node9 = __toESM(require_transport_node(), 1);
24563
- var import_jetstream7 = __toESM(require_mod4(), 1);
24564
-
24565
- // ../../packages/core/dist/endpoint-contract-store.js
24566
- var import_jetstream6 = __toESM(require_mod4(), 1);
24567
- var import_transport_node8 = __toESM(require_transport_node(), 1);
24568
- var CONTRACT_ARTIFACT_MAX_BYTES = 256 * 1024;
24569
- var CONTRACT_CLOSURE_MAX_BYTES = 1024 * 1024;
24570
-
24571
- // ../../packages/core/dist/endpoint-invoke.js
24572
- var dec5 = new TextDecoder();
24573
- var enc4 = new TextEncoder();
24574
-
24575
- // ../../packages/core/dist/endpoint-work.js
24576
- var import_jetstream8 = __toESM(require_mod4(), 1);
24577
- var import_transport_node10 = __toESM(require_transport_node(), 1);
24578
-
24579
- // ../../packages/core/dist/run-journal.js
24580
- var import_jetstream9 = __toESM(require_mod4(), 1);
24581
- var import_transport_node11 = __toESM(require_transport_node(), 1);
24582
-
24583
- // ../../packages/core/dist/endpoint-goaleff.js
24584
- var COMMON_FIELDS = ["v", "executor", "attemptId", "ts", "phase"];
24585
- var PHASE_FIELDS = {
24586
- claimed: COMMON_FIELDS,
24587
- launching: [...COMMON_FIELDS, "addr"],
24588
- launched: [...COMMON_FIELDS, "addr"],
24589
- settled: [...COMMON_FIELDS, "addr"]
24590
- // `addr` optional here, and ONLY here
24591
- };
24592
-
24593
- // ../../packages/core/dist/endpoint-epname.js
24594
- var BASE = ["v", "ts", "state", "claimant"];
24595
- var STATE_FIELDS = {
24596
- claimed: BASE,
24597
- launching: [...BASE, "lifecycleUid", "launchAttemptId", "executor"],
24598
- live: [...BASE, "lifecycleUid", "runtimeOwner"],
24599
- preserved: [...BASE, "lifecycleUid", "runtimeOwner"],
24600
- relaunching: [...BASE, "lifecycleUid", "launchAttemptId", "executor"],
24601
- draining: [...BASE, "lifecycleUid", "runtimeOwner", "enteredAt"],
24602
- released: BASE
24603
- };
24604
-
24605
- // ../../packages/core/dist/endpoint-serve-kv.js
24606
- var enc5 = new TextEncoder();
24607
- var dec6 = new TextDecoder();
24608
-
24609
- // ../../packages/core/dist/endpoint-handle.js
24610
- var HANDLE_MAX_LIVE_TTL_MS = 24 * 60 * 60 * 1e3;
24611
- var HANDLE_MAX_STURDY_TTL_MS = 30 * 24 * 60 * 60 * 1e3;
24612
- var HANDLE_MAX_BYTES = 64 * 1024;
24613
-
24614
- // ../../packages/core/dist/endpoint-session.js
24615
- var SESSION_GRANT_MAX_TTL_MS = 24 * 60 * 60 * 1e3;
24616
- var SESSION_GRANT_MAX_BYTES = 16 * 1024;
24617
- var SESSION_TERMINAL_STATES = Object.freeze(["closed", "expired", "superseded", "retired"]);
24618
- var TERMINAL_STATE_SNAP = new Set(SESSION_TERMINAL_STATES);
24619
-
24620
- // ../../packages/core/dist/session-terminal-frames.js
24621
- var MAX_B64_CHARS = 4 * 1024 * 1024;
24622
- var B64_ALPHABET = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
24623
- var B64_INV = (() => {
24624
- const m = new Int16Array(128).fill(-1);
24625
- for (let i = 0; i < B64_ALPHABET.length; i++)
24626
- m[B64_ALPHABET.charCodeAt(i)] = i;
24627
- return m;
24628
- })();
24629
-
24630
- // ../../packages/core/dist/endpoint-virtual.js
24631
- var import_jetstream10 = __toESM(require_mod4(), 1);
24632
- var td = new TextDecoder();
24633
-
24634
- // ../../packages/core/dist/signing-key-rotation.js
24635
- var RENEW_AT_FRACTION = 1 / 3;
24636
- var OVERLAP_MS = 10 * 60 * 1e3;
24637
-
24638
24519
  // ../../node_modules/.pnpm/@nats-io+jwt@0.0.10-5/node_modules/@nats-io/jwt/esm/jwt.js
24639
24520
  var Types;
24640
24521
  (function(Types2) {
@@ -26243,7 +26124,145 @@ var Algorithms;
26243
26124
  })(Algorithms || (Algorithms = {}));
26244
26125
 
26245
26126
  // ../../packages/core/dist/identity.js
26127
+ var import_nkeys = __toESM(require_mod2(), 1);
26128
+
26129
+ // ../../packages/core/dist/endpoint-service.js
26130
+ var SOURCE_CHAIN_ID = "[A-Za-z0-9_-]{1,64}";
26131
+ var SOURCE_CHAIN_ELEMENT = new RegExp(`^(root|handle\\.${SOURCE_CHAIN_ID}\\.${SOURCE_CHAIN_ID}|session\\.${SOURCE_CHAIN_ID})$`);
26132
+
26133
+ // ../../packages/core/dist/endpoint-signing.js
26246
26134
  var import_nkeys2 = __toESM(require_mod2(), 1);
26135
+ var ANCHOR_ROLES = Object.freeze([
26136
+ "handles",
26137
+ "traits",
26138
+ "receipts",
26139
+ "resume",
26140
+ "sessions",
26141
+ "authz-slots",
26142
+ "obligations",
26143
+ "payments"
26144
+ ]);
26145
+
26146
+ // ../../packages/core/dist/endpoint-checkpoint.js
26147
+ var import_jetstream3 = __toESM(require_mod4(), 1);
26148
+ var import_transport_node4 = __toESM(require_transport_node(), 1);
26149
+ var MAX_SCHEDULE_MS = Date.UTC(9999, 11, 31, 23, 59, 59, 999);
26150
+
26151
+ // ../../packages/core/dist/endpoint-action.js
26152
+ var import_jetstream5 = __toESM(require_mod4(), 1);
26153
+ var import_transport_node6 = __toESM(require_transport_node(), 1);
26154
+
26155
+ // ../../packages/core/dist/endpoint-receipt.js
26156
+ var import_jetstream4 = __toESM(require_mod4(), 1);
26157
+ var import_transport_node5 = __toESM(require_transport_node(), 1);
26158
+
26159
+ // ../../packages/core/dist/endpoint-action.js
26160
+ var BRANDED_CONTEXTS = /* @__PURE__ */ new WeakSet();
26161
+ function assertCtx(ctx) {
26162
+ if (!BRANDED_CONTEXTS.has(ctx))
26163
+ throw new EpEnvelopeError("failed-precondition", `the action context was not constructed by actionContext(); a hand-assembled resource bundle never authorizes - the space bond is constructed, not asserted (SPEC 13.4)`);
26164
+ }
26165
+ var GUARD_CLEARANCES = /* @__PURE__ */ new WeakMap();
26166
+ var clearanceMintClaimed = false;
26167
+ function claimGuardClearanceMint() {
26168
+ if (clearanceMintClaimed)
26169
+ throw new EpEnvelopeError("permission-denied", "the guard-clearance mint is already claimed by THE gate; a guarded goal's edge into running opens only through it (SPEC 13.6)");
26170
+ clearanceMintClaimed = true;
26171
+ return (ctx, goalId) => {
26172
+ assertCtx(ctx);
26173
+ const clearance = Object.freeze({ goalId: assertIdToken(goalId, "goalId") });
26174
+ GUARD_CLEARANCES.set(clearance, ctx);
26175
+ return clearance;
26176
+ };
26177
+ }
26178
+ var GOAL_STATES = Object.freeze(["accepted", "running", "waiting", "cancelling", "succeeded", "failed", "cancelled", "expired", "uncertain"]);
26179
+ var GOAL_TERMINAL_STATES = Object.freeze(["succeeded", "failed", "cancelled", "expired", "uncertain"]);
26180
+
26181
+ // ../../packages/core/dist/endpoint-guard.js
26182
+ var mintGuardClearance = claimGuardClearanceMint();
26183
+
26184
+ // ../../packages/core/dist/endpoint-traits.js
26185
+ var TRAIT_SELECTORS = Object.freeze(["cluster", "command", "attribute", "event"]);
26186
+
26187
+ // ../../packages/core/dist/endpoint-publish-denial.js
26188
+ var import_transport_node7 = __toESM(require_transport_node(), 1);
26189
+
26190
+ // ../../packages/core/dist/endpoint-invoke.js
26191
+ var import_transport_node9 = __toESM(require_transport_node(), 1);
26192
+ var import_jetstream7 = __toESM(require_mod4(), 1);
26193
+
26194
+ // ../../packages/core/dist/endpoint-contract-store.js
26195
+ var import_jetstream6 = __toESM(require_mod4(), 1);
26196
+ var import_transport_node8 = __toESM(require_transport_node(), 1);
26197
+ var CONTRACT_ARTIFACT_MAX_BYTES = 256 * 1024;
26198
+ var CONTRACT_CLOSURE_MAX_BYTES = 1024 * 1024;
26199
+
26200
+ // ../../packages/core/dist/endpoint-invoke.js
26201
+ var dec5 = new TextDecoder();
26202
+ var enc4 = new TextEncoder();
26203
+
26204
+ // ../../packages/core/dist/endpoint-work.js
26205
+ var import_jetstream8 = __toESM(require_mod4(), 1);
26206
+ var import_transport_node10 = __toESM(require_transport_node(), 1);
26207
+
26208
+ // ../../packages/core/dist/run-journal.js
26209
+ var import_jetstream9 = __toESM(require_mod4(), 1);
26210
+ var import_transport_node11 = __toESM(require_transport_node(), 1);
26211
+
26212
+ // ../../packages/core/dist/endpoint-goaleff.js
26213
+ var COMMON_FIELDS = ["v", "executor", "attemptId", "ts", "phase"];
26214
+ var PHASE_FIELDS = {
26215
+ claimed: COMMON_FIELDS,
26216
+ launching: [...COMMON_FIELDS, "addr"],
26217
+ launched: [...COMMON_FIELDS, "addr"],
26218
+ settled: [...COMMON_FIELDS, "addr"]
26219
+ // `addr` optional here, and ONLY here
26220
+ };
26221
+
26222
+ // ../../packages/core/dist/endpoint-epname.js
26223
+ var BASE = ["v", "ts", "state", "claimant"];
26224
+ var STATE_FIELDS = {
26225
+ claimed: BASE,
26226
+ launching: [...BASE, "lifecycleUid", "launchAttemptId", "executor"],
26227
+ live: [...BASE, "lifecycleUid", "runtimeOwner"],
26228
+ preserved: [...BASE, "lifecycleUid", "runtimeOwner"],
26229
+ relaunching: [...BASE, "lifecycleUid", "launchAttemptId", "executor"],
26230
+ draining: [...BASE, "lifecycleUid", "runtimeOwner", "enteredAt"],
26231
+ released: BASE
26232
+ };
26233
+
26234
+ // ../../packages/core/dist/endpoint-serve-kv.js
26235
+ var enc5 = new TextEncoder();
26236
+ var dec6 = new TextDecoder();
26237
+
26238
+ // ../../packages/core/dist/endpoint-handle.js
26239
+ var HANDLE_MAX_LIVE_TTL_MS = 24 * 60 * 60 * 1e3;
26240
+ var HANDLE_MAX_STURDY_TTL_MS = 30 * 24 * 60 * 60 * 1e3;
26241
+ var HANDLE_MAX_BYTES = 64 * 1024;
26242
+
26243
+ // ../../packages/core/dist/endpoint-session.js
26244
+ var SESSION_GRANT_MAX_TTL_MS = 24 * 60 * 60 * 1e3;
26245
+ var SESSION_GRANT_MAX_BYTES = 16 * 1024;
26246
+ var SESSION_TERMINAL_STATES = Object.freeze(["closed", "expired", "superseded", "retired"]);
26247
+ var TERMINAL_STATE_SNAP = new Set(SESSION_TERMINAL_STATES);
26248
+
26249
+ // ../../packages/core/dist/session-terminal-frames.js
26250
+ var MAX_B64_CHARS = 4 * 1024 * 1024;
26251
+ var B64_ALPHABET = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
26252
+ var B64_INV = (() => {
26253
+ const m = new Int16Array(128).fill(-1);
26254
+ for (let i = 0; i < B64_ALPHABET.length; i++)
26255
+ m[B64_ALPHABET.charCodeAt(i)] = i;
26256
+ return m;
26257
+ })();
26258
+
26259
+ // ../../packages/core/dist/endpoint-virtual.js
26260
+ var import_jetstream10 = __toESM(require_mod4(), 1);
26261
+ var td = new TextDecoder();
26262
+
26263
+ // ../../packages/core/dist/signing-key-rotation.js
26264
+ var RENEW_AT_FRACTION = 1 / 3;
26265
+ var OVERLAP_MS = 10 * 60 * 1e3;
26247
26266
 
26248
26267
  // ../../packages/core/dist/streams.js
26249
26268
  var import_jetstream15 = __toESM(require_mod4(), 1);
@@ -26329,9 +26348,9 @@ var CREDENTIAL_LIFETIMES = {
26329
26348
  "manager-caller": { class: "mixed", note: "short-lived user-auth view bound to the bearer expiry and one manager instance" },
26330
26349
  observer: { class: "static-operator-managed", note: "out-of-band dashboard/audit credential from cotal mint" },
26331
26350
  admin: { class: "static-operator-managed", note: "out-of-band elevated dashboard/audit credential from cotal mint" },
26332
- supervisor: { class: "standing-renewable", defaultTtlSeconds: STANDING_RENEWABLE_TTL_SEC, renewalOwner: "manager", note: "manager's always-on endpoint; the manager holds the DATA seed and self-remints via the endpoint creds source (D5 slice 5 class 1)" },
26333
- delivery: { class: "standing-renewable", defaultTtlSeconds: STANDING_RENEWABLE_TTL_SEC, renewalOwner: "manager", note: "server-side Plane-3 daemon; seed-less - the manager re-signs .cotal/delivery.creds for the SAME nkey, requests delivery-admin reloadCreds for explicit adoption, and the endpoint source re-read is only a backstop (D5 slice 5 class 2)" },
26334
- "membership-rw": { class: "standing-renewable", defaultTtlSeconds: STANDING_RENEWABLE_TTL_SEC, renewalOwner: "manager", note: "membership feed writer; seed-less - the manager re-signs the membership-rw.creds store key for the SAME nkey, the feed adopts it on a 75% preflight-proven renewal timer (its active self-heal), and delivery-admin reloadCreds is the explicit adoption on top (D5 slice 5 class 2)" },
26351
+ supervisor: { class: "standing-renewable", defaultTtlSeconds: STANDING_RENEWABLE_TTL_SEC, renewalOwner: "manager", note: "manager's always-on endpoint; the manager holds the DATA seed and self-remints via the endpoint creds source" },
26352
+ delivery: { class: "standing-renewable", defaultTtlSeconds: STANDING_RENEWABLE_TTL_SEC, renewalOwner: "manager", note: "server-side Plane-3 daemon; seed-less - the manager re-signs .cotal/delivery.creds for the SAME nkey, requests delivery-admin reloadCreds for explicit adoption, and the endpoint source re-read is only a backstop" },
26353
+ "membership-rw": { class: "standing-renewable", defaultTtlSeconds: STANDING_RENEWABLE_TTL_SEC, renewalOwner: "manager", note: "membership feed writer; seed-less - the manager re-signs the membership-rw.creds store key for the SAME nkey, the feed adopts it on a 75% preflight-proven renewal timer (its active self-heal), and delivery-admin reloadCreds is the explicit adoption on top" },
26335
26354
  provisioner: { class: "one-shot", defaultTtlSeconds: FIVE_MINUTES, note: "setup/spawn provisioning window only" },
26336
26355
  deprovisioner: { class: "one-shot", defaultTtlSeconds: FIVE_MINUTES, note: "target-pinned teardown window only" },
26337
26356
  "retirement-requester": { class: "one-shot", defaultTtlSeconds: FIVE_MINUTES, note: "one despawn's retirement request window; request+reply only" },
@@ -26349,10 +26368,10 @@ var CREDENTIAL_LIFETIMES = {
26349
26368
  "control-caller-admin": { class: "one-shot", defaultTtlSeconds: FIVE_MINUTES, note: "stop/attach admin control call" },
26350
26369
  deployer: { class: "one-shot", note: "manifest deploy spans planning/launch/ledger; needs near-expiry guard or remint before default exp" },
26351
26370
  "endpoint-serve": { class: "standing-renewable", defaultTtlSeconds: STANDING_RENEWABLE_TTL_SEC, renewalOwner: "manager", note: "per-instance endpoint serve credential (SPEC 13.9); the managing authority re-mints on renewal and on takeover (new epoch), and the 13.1 barrier revokes the superseded one" },
26352
- "goal-writer": { class: "standing-renewable", defaultTtlSeconds: STANDING_RENEWABLE_TTL_SEC, renewalOwner: "manager", note: "self-mediated goal-writer for spawn-as-action (P2 item 2); the manager re-mints for the SAME nkey on renewal, disjoint from the serve credential (Q2)" },
26353
- "session-caller": { class: "one-shot", defaultTtlSeconds: 24 * 60 * 60, note: "per-session console/CLI caller cred (P2 item 6): rails-only for ONE \xA713.6 session; TTL-BOUND to the session (the face mints with expiresAt = the session exp; the 24h default is the SESSION_GRANT_MAX_TTL ceiling, never a standing lifetime); NEVER renewed - a new session mints a new cred" },
26354
- "session-serving": { class: "one-shot", defaultTtlSeconds: 24 * 60 * 60, note: "per-session SERVING cred (P2 item 6): rails-only for ONE \xA713.6 session, the mirror of session-caller with the directions swapped; minted at redemption and TTL-BOUND to the session (the 24h default is the SESSION_GRANT_MAX_TTL ceiling, never a standing lifetime); NEVER renewed - a new session mints a new cred, and the session's terminal revokes this one by name" },
26355
- "session-ledger": { class: "standing-renewable", defaultTtlSeconds: STANDING_RENEWABLE_TTL_SEC, renewalOwner: "manager", note: "manager's session LEDGER (P2 item 6): the dedicated sessions-bucket `session.<id>` rows and NOTHING else - no session rail of any shape. Standing because SPEC 13.6 makes it the durable revocation authority that must survive the serving endpoint; the manager re-mints for the SAME nkey on the half-TTL loop (the goal-writer precedent)" },
26371
+ "goal-writer": { class: "standing-renewable", defaultTtlSeconds: STANDING_RENEWABLE_TTL_SEC, renewalOwner: "manager", note: "self-mediated goal-writer for spawn-as-action; the manager re-mints for the SAME nkey on renewal, disjoint from the serve credential" },
26372
+ "session-caller": { class: "one-shot", defaultTtlSeconds: 24 * 60 * 60, note: "per-session console/CLI caller cred: rails-only for ONE \xA713.6 session; TTL-BOUND to the session (the face mints with expiresAt = the session exp; the 24h default is the SESSION_GRANT_MAX_TTL ceiling, never a standing lifetime); NEVER renewed - a new session mints a new cred" },
26373
+ "session-serving": { class: "one-shot", defaultTtlSeconds: 24 * 60 * 60, note: "per-session SERVING cred: rails-only for ONE \xA713.6 session, the mirror of session-caller with the directions swapped; minted at redemption and TTL-BOUND to the session (the 24h default is the SESSION_GRANT_MAX_TTL ceiling, never a standing lifetime); NEVER renewed - a new session mints a new cred, and the session's terminal revokes this one by name" },
26374
+ "session-ledger": { class: "standing-renewable", defaultTtlSeconds: STANDING_RENEWABLE_TTL_SEC, renewalOwner: "manager", note: "manager's session LEDGER: the dedicated sessions-bucket `session.<id>` rows and NOTHING else - no session rail of any shape. Standing because SPEC 13.6 makes it the durable revocation authority that must survive the serving endpoint; the manager re-mints for the SAME nkey on the half-TTL loop (the goal-writer precedent)" },
26356
26375
  "run-driver": { class: "standing-renewable", defaultTtlSeconds: STANDING_RENEWABLE_TTL_SEC, renewalOwner: "manager", note: "one workflow run's driver, per takeover attempt (SPEC 14.6): the hosting manager mints it when it takes the run over and re-mints for the SAME nkey on renewal; a new takeover mints a new one" },
26357
26376
  "run-mediator": { class: "standing-renewable", defaultTtlSeconds: STANDING_RENEWABLE_TTL_SEC, renewalOwner: "manager", note: "trusted workflow host operations, bound to one run and attempt; kept on the hosting process's connection" },
26358
26377
  "run-operator": { class: "one-shot", defaultTtlSeconds: 60, note: "one served run-status / run-ps / run-answer call (SPEC 14.3): the hosting manager mints it per call on its own connection, never the serve rails; 60s bounds a copied cred to a minute" },
@@ -26360,10 +26379,10 @@ var CREDENTIAL_LIFETIMES = {
26360
26379
  "run-admitter": { class: "one-shot", defaultTtlSeconds: 60, note: "one hosted run's admission record create, or its revocation marker (SPEC 14.8); 60s bounds a copied cred to a minute" },
26361
26380
  "transfer-writer": { class: "one-shot", defaultTtlSeconds: FIVE_MINUTES, note: "one carried resume per CLI call: one object's chunk and meta subjects in one instance's transfer bucket" },
26362
26381
  "transfer-reader": { class: "one-shot", defaultTtlSeconds: FIVE_MINUTES, note: "one transcript-receive or sweep over the minting instance's own transfer bucket" },
26363
- "endpoint-evictor": { class: "one-shot", defaultTtlSeconds: 60, note: "one re-registration's verify-evict window (P2 item 3): a scoped delivery-admin caller that kicks+verifies the SUPERSEDED serve family before the epoch advances; 60s bounds a copied cred to a minute" },
26382
+ "endpoint-evictor": { class: "one-shot", defaultTtlSeconds: 60, note: "one re-registration's verify-evict window: a scoped delivery-admin caller that kicks+verifies the SUPERSEDED serve family before the epoch advances; 60s bounds a copied cred to a minute" },
26364
26383
  "remote-manager": { class: "standing-renewable", defaultTtlSeconds: STANDING_RENEWABLE_TTL_SEC, renewalOwner: "auth-service", note: "the scoped remote manager lifecycle: own lease/presence plus same-owner agent provisioning; issued only by the typed supervise protocol, never by cotal mint or a raw view/profile string" },
26365
26384
  "membership-observer": { class: "rotation-renewed", defaultTtlSeconds: ROTATION_RENEWED_TTL_SEC, renewalOwner: "system-account rotation", note: "$SYS-account CONNZ observer; NOT online-renewable ($SYS seed dies at `up`) - bounded exp, renewed only by rotateSystemAccount + broker restart; doctor warns near expiry" },
26366
- "connection-evictor": { class: "rotation-renewed", defaultTtlSeconds: ROTATION_RENEWED_TTL_SEC, renewalOwner: "system-account rotation", note: "$SYS-account KICK-only live-eviction cred (D5 slice 4); same rotation-renewed posture as the observer" }
26385
+ "connection-evictor": { class: "rotation-renewed", defaultTtlSeconds: ROTATION_RENEWED_TTL_SEC, renewalOwner: "system-account rotation", note: "$SYS-account KICK-only live-eviction cred; same rotation-renewed posture as the observer" }
26367
26386
  };
26368
26387
  for (const p of Object.values(CREDENTIAL_LIFETIMES))
26369
26388
  Object.freeze(p);
package/dist/index.js CHANGED
@@ -21,7 +21,10 @@ import {
21
21
  import { DEFAULT_SERVER, DEV_OWNER, LAUNCH_MATERIAL_ENV, discardLaunchMaterial, assertLifecycleToken, assertValidChannel, channelInAllow, credsClaims, eventChannel, idFromCreds, isConcreteChannel, loadAgentFile, parseJoinLink, readLaunchMaterial, resolveReadAcl } from "@cotal-ai/core";
22
22
 
23
23
  // ../connector-core/dist/agent.js
24
- import { normalizeMentions, RUN_LAUNCH_DEADLINE_MS, subjectMatches, isConcreteChannel as isConcreteChannel2, assertValidChannel as assertValidChannel2, channelInAllow as channelInAllow2, resolvePeer as resolvePeerInRoster, CotalEndpoint, BASELINE_LIFECYCLE_ENDPOINT as BASELINE_LIFECYCLE_ENDPOINT2, BIND_SPLIT_REISSUES, assertLifecycleToken as assertLifecycleToken3, EpEnvelopeError, isPublishPermissionDenied, unansweredRequest, renderLifecycleBlocked, bearerCommandFailure, partsToText, routeToken } from "@cotal-ai/core";
24
+ import { normalizeMentions, RUN_LAUNCH_DEADLINE_MS, subjectMatches, isConcreteChannel as isConcreteChannel2, assertValidChannel as assertValidChannel2, channelInAllow as channelInAllow2, resolvePeer as resolvePeerInRoster, peerLabel as peerLabel2, CotalEndpoint, BASELINE_LIFECYCLE_ENDPOINT as BASELINE_LIFECYCLE_ENDPOINT2, BIND_SPLIT_REISSUES, assertLifecycleToken as assertLifecycleToken3, EpEnvelopeError, isPublishPermissionDenied, unansweredRequest, renderLifecycleBlocked, controlReplyFrom, bearerCommandFailure, partsToText, routeToken } from "@cotal-ai/core";
25
+
26
+ // ../connector-core/dist/framing.js
27
+ import { peerLabel } from "@cotal-ai/core";
25
28
 
26
29
  // ../connector-core/dist/manager-call.js
27
30
  import { BASELINE_LIFECYCLE_ENDPOINT, assertLifecycleToken as assertLifecycleToken2, dialerFor, invokeCommand, isPermissionDenied, issuedUserCaller, replyRefusedBeforeEffect, resolveService, standaloneConnectOpts } from "@cotal-ai/core";
@@ -14877,7 +14880,10 @@ function date4(params) {
14877
14880
  config(en_default());
14878
14881
 
14879
14882
  // ../connector-core/dist/tool-specs.js
14880
- import { isConcreteChannel as isConcreteChannel3, channelInAllow as channelInAllow3, AmbiguousPeerError, assertLifecycleToken as assertLifecycleToken4, isPermissionDenied as isPermissionDenied2, renderLifecycleBlocked as renderLifecycleBlocked2, LANG_PROBLEM_DETAIL_KIND, formatAge, presenceAges } from "@cotal-ai/core";
14883
+ import { isConcreteChannel as isConcreteChannel3, channelInAllow as channelInAllow3, AmbiguousPeerError, peerLabel as peerLabel4, assertLifecycleToken as assertLifecycleToken4, isPermissionDenied as isPermissionDenied2, renderLifecycleBlocked as renderLifecycleBlocked2, LANG_PROBLEM_DETAIL_KIND, formatAge, presenceAges } from "@cotal-ai/core";
14884
+
14885
+ // ../connector-core/dist/orientation.js
14886
+ import { peerLabel as peerLabel3 } from "@cotal-ai/core";
14881
14887
 
14882
14888
  // ../connector-core/dist/docs.js
14883
14889
  var STOP = new Set("a an and are as at be by do for from has how in is it of on or that the this to use using was what when where which who with you your".split(" "));