cotal-ai 0.78.1 → 0.81.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/package.json +16 -16
  2. package/seeded-connectors/claude/dist/agui-map.d.ts +15 -8
  3. package/seeded-connectors/claude/dist/agui-map.d.ts.map +1 -1
  4. package/seeded-connectors/claude/dist/agui-source.d.ts.map +1 -1
  5. package/seeded-connectors/claude/dist/carried.d.ts +1 -1
  6. package/seeded-connectors/claude/dist/carried.d.ts.map +1 -1
  7. package/seeded-connectors/claude/dist/extension.d.ts.map +1 -1
  8. package/seeded-connectors/claude/dist/hook.cjs +39 -30
  9. package/seeded-connectors/claude/dist/hooks.d.ts.map +1 -1
  10. package/seeded-connectors/claude/dist/index.js +18 -50
  11. package/seeded-connectors/claude/dist/mcp.cjs +866 -383
  12. package/seeded-connectors/claude/dist/trust.d.ts +5 -7
  13. package/seeded-connectors/claude/dist/trust.d.ts.map +1 -1
  14. package/seeded-connectors/claude/hooks/hooks.json +10 -0
  15. package/seeded-connectors/claude/package.json +1 -1
  16. package/seeded-connectors/codex/dist/extension.d.ts.map +1 -1
  17. package/seeded-connectors/codex/dist/host.d.ts.map +1 -1
  18. package/seeded-connectors/codex/dist/host.js +834 -370
  19. package/seeded-connectors/codex/dist/index.js +10 -3
  20. package/seeded-connectors/codex/package.json +1 -1
  21. package/seeded-connectors/hermes/dist/index.js +6 -3
  22. package/seeded-connectors/hermes/dist/launch.js +291 -247
  23. package/seeded-connectors/hermes/package.json +1 -1
  24. package/seeded-connectors/hermes/plugin/cotal/_sidecar/standalone.cjs +291 -247
  25. package/seeded-connectors/jcode/dist/agui-source.d.ts +1 -0
  26. package/seeded-connectors/jcode/dist/agui-source.d.ts.map +1 -1
  27. package/seeded-connectors/jcode/dist/host.d.ts.map +1 -1
  28. package/seeded-connectors/jcode/dist/host.js +857 -393
  29. package/seeded-connectors/jcode/dist/index.js +6 -3
  30. package/seeded-connectors/jcode/dist/mcp.js +59 -49
  31. package/seeded-connectors/jcode/package.json +1 -1
  32. package/seeded-connectors/opencode/dist/agui-map.d.ts +3 -0
  33. package/seeded-connectors/opencode/dist/agui-map.d.ts.map +1 -1
  34. package/seeded-connectors/opencode/dist/agui-source.d.ts +18 -0
  35. package/seeded-connectors/opencode/dist/agui-source.d.ts.map +1 -1
  36. package/seeded-connectors/opencode/dist/index.js +6 -3
  37. package/seeded-connectors/opencode/dist/opencode2-types.d.ts +6 -0
  38. package/seeded-connectors/opencode/dist/opencode2-types.d.ts.map +1 -1
  39. package/seeded-connectors/opencode/dist/plugin/index.js +871 -401
  40. package/seeded-connectors/opencode/dist/plugin.d.ts.map +1 -1
  41. package/seeded-connectors/opencode/dist/plugin2.d.ts.map +1 -1
  42. package/seeded-connectors/opencode/package.json +1 -1
  43. package/seeded-connectors/pi/dist/agui-source.d.ts +1 -0
  44. package/seeded-connectors/pi/dist/agui-source.d.ts.map +1 -1
  45. package/seeded-connectors/pi/dist/events.d.ts +4 -3
  46. package/seeded-connectors/pi/dist/events.d.ts.map +1 -1
  47. package/seeded-connectors/pi/dist/extension.d.ts.map +1 -1
  48. package/seeded-connectors/pi/dist/index.js +581 -174
  49. package/seeded-connectors/pi/dist/standalone.js +838 -385
  50. package/seeded-connectors/pi/package.json +1 -1
  51. package/seeded-connectors/web/dist/web/app.js +3 -2
  52. package/seeded-connectors/web/dist/web.d.ts.map +1 -1
  53. package/seeded-connectors/web/dist/web.js +2 -2
  54. package/seeded-connectors/web/dist/web.js.map +1 -1
  55. package/seeded-connectors/web/package.json +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cotal-ai",
3
- "version": "0.78.1",
3
+ "version": "0.81.1",
4
4
  "description": "Cotal — lateral agent coordination over NATS. Run `npx cotal-ai` for the CLI.",
5
5
  "license": "Apache-2.0",
6
6
  "keywords": [
@@ -33,24 +33,24 @@
33
33
  "node": ">=22"
34
34
  },
35
35
  "dependencies": {
36
- "@cotal-ai/auth": "0.78.1",
37
- "@cotal-ai/cli": "0.78.1",
38
- "@cotal-ai/connector-core": "0.78.1",
39
- "@cotal-ai/core": "0.78.1",
40
- "@cotal-ai/delivery": "0.78.1",
41
- "@cotal-ai/manager": "0.78.1",
42
- "@cotal-ai/runtime": "0.78.1",
43
- "@cotal-ai/workspace": "0.78.1"
36
+ "@cotal-ai/auth": "0.81.1",
37
+ "@cotal-ai/cli": "0.81.1",
38
+ "@cotal-ai/connector-core": "0.81.1",
39
+ "@cotal-ai/core": "0.81.1",
40
+ "@cotal-ai/delivery": "0.81.1",
41
+ "@cotal-ai/manager": "0.81.1",
42
+ "@cotal-ai/runtime": "0.81.1",
43
+ "@cotal-ai/workspace": "0.81.1"
44
44
  },
45
45
  "devDependencies": {
46
- "@cotal-ai/connector-claude-code": "0.78.1",
47
- "@cotal-ai/connector-codex": "0.78.1",
48
- "@cotal-ai/connector-hermes": "0.78.1",
49
- "@cotal-ai/connector-jcode": "0.78.1",
50
- "@cotal-ai/connector-opencode": "0.78.1",
51
- "@cotal-ai/pi": "0.78.1",
46
+ "@cotal-ai/connector-claude-code": "0.81.1",
47
+ "@cotal-ai/connector-codex": "0.81.1",
48
+ "@cotal-ai/connector-hermes": "0.81.1",
49
+ "@cotal-ai/connector-jcode": "0.81.1",
50
+ "@cotal-ai/connector-opencode": "0.81.1",
51
+ "@cotal-ai/pi": "0.81.1",
52
52
  "@cotal-ai/smoke-kit": "0.0.0",
53
- "@cotal-ai/web": "0.78.1",
53
+ "@cotal-ai/web": "0.81.1",
54
54
  "@nats-io/jetstream": "^3.4.0",
55
55
  "@nats-io/transport-node": "^3.4.0",
56
56
  "typescript": "^5.9.3"
@@ -44,12 +44,12 @@
44
44
  * messages; a spawned lane seat has **0 and 67**.
45
45
  *
46
46
  * **THE RULE: run-opening and attribution are two predicates, not one doing both jobs.** A run
47
- * opens on `origin.kind ∈ { human, channel }`, ENUMERATED and never inferred; `task-notification`
48
- * is named as known-and-not-a-turn; absent `origin` gets its own enumeration over `promptSource`.
49
- * Attribution rides as `cotal.turnSource` — **a field on the run, never a gate on it**. The privacy
50
- * argument holds: a `RUN_STARTED` attributed to a peer republishes no message body, so a
51
- * peer-initiated turn can be a turn without re-emitting the peer's content. See
52
- * {@link ORIGIN_RULE} and {@link ABSENT_ORIGIN_RULE}, which are where this lives.
47
+ * opens only on an `origin.kind` that {@link ORIGIN_RULE} ENUMERATES as a turn, never on an
48
+ * inferred one; the same table names the kinds that are known and not a turn, and absent `origin`
49
+ * gets its own enumeration over `promptSource` in {@link ABSENT_ORIGIN_RULE}. Attribution rides as
50
+ * `cotal.turnSource` — **a field on the run, never a gate on it**. The privacy argument holds: a
51
+ * `RUN_STARTED` attributed to a peer republishes no message body, so a peer-initiated turn can be a
52
+ * turn without re-emitting the peer's content. The values live only in those two tables.
53
53
  *
54
54
  * On the 5938-record session the real mapper opens **67 runs** and emits **5217 events**.
55
55
  *
@@ -99,8 +99,8 @@ export interface ClaudeEntry {
99
99
  };
100
100
  /**
101
101
  * Present on every submitted prompt and absent on tool results. **Not the run-opening gate** —
102
- * it is `"system"` on task-notifications and caveats too. Read ONLY where `origin` is absent, and
103
- * only for the value `"sdk"`. See `ABSENT_ORIGIN_RULE`.
102
+ * it is `"system"` on task-notifications and caveats too. Read ONLY where `origin` is absent,
103
+ * against the values `ABSENT_ORIGIN_RULE` enumerates.
104
104
  */
105
105
  promptSource?: string;
106
106
  /** The harness's own compaction record. A string-content `user` entry that is not a turn. */
@@ -137,6 +137,13 @@ export interface ClaudeMapperOptions {
137
137
  threadId: string;
138
138
  /** Mints a `runId`. Connector-minted by §3.1, so every `RUN_STARTED` carries `runIdSource`. */
139
139
  mintRunId: () => string;
140
+ /**
141
+ * The run the write-ahead log has open when this mapper is built, so a mapper built for a
142
+ * re-established plane attributes the next assistant records to it. Without it the mapper
143
+ * opens with no run, drops every assistant record until the next prompt, and that prompt's
144
+ * `RUN_STARTED` is refused by brackets that still hold the earlier run open.
145
+ */
146
+ resumeRunId?: string;
140
147
  /**
141
148
  * Emit `REASONING_*` for `thinking` blocks. **Off by default (§7 Q1).** The `signature` is never
142
149
  * emitted at any setting (§3.5) and is not read by this module at all.
@@ -1 +1 @@
1
- {"version":3,"file":"agui-map.d.ts","sourceRoot":"","sources":["../src/agui-map.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgFG;AACH,OAAO,EAEL,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,uGAAuG;AACvG,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,YAAY,CAAC,WAAW,CAAC,CAAC;IAC/B;;;;;;;;;;;;;;;OAeG;IACH,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACxC;AAiBD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,mBAAmB,GAAG,YAAY,CAyM1E"}
1
+ {"version":3,"file":"agui-map.d.ts","sourceRoot":"","sources":["../src/agui-map.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgFG;AACH,OAAO,EAEL,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;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;OAIG;IACH,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AAED,uGAAuG;AACvG,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,YAAY,CAAC,WAAW,CAAC,CAAC;IAC/B;;;;;;;;;;;;;;;OAeG;IACH,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACxC;AAiBD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,mBAAmB,GAAG,YAAY,CA2M1E"}
@@ -1 +1 @@
1
- {"version":3,"file":"agui-source.d.ts","sourceRoot":"","sources":["../src/agui-source.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAqC,KAAK,aAAa,EAAE,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAClH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAUjD,MAAM,WAAW,0BAA0B;IACzC;uCACmC;IACnC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAID,wBAAsB,8BAA8B,CAAC,CAAC,EACpD,IAAI,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAClC,IAAI,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,GAC9D,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAiCxB;AA2BD,8FAA8F;AAC9F,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,OAAO,EACtB,IAAI,GAAE,0BAA+B,GACpC,aAAa,CAAC,WAAW,CAAC,CAiB5B;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,iCAAiC,CACrD,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,OAAO,EACtB,IAAI,GAAE,0BAA+B,GACpC,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAKrC"}
1
+ {"version":3,"file":"agui-source.d.ts","sourceRoot":"","sources":["../src/agui-source.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAqC,KAAK,aAAa,EAAE,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAClH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAUjD,MAAM,WAAW,0BAA0B;IACzC;uCACmC;IACnC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAID,wBAAsB,8BAA8B,CAAC,CAAC,EACpD,IAAI,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAClC,IAAI,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,GAC9D,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAiCxB;AA+BD,8FAA8F;AAC9F,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,OAAO,EACtB,IAAI,GAAE,0BAA+B,GACpC,aAAa,CAAC,WAAW,CAAC,CAiB5B;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,iCAAiC,CACrD,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,OAAO,EACtB,IAAI,GAAE,0BAA+B,GACpC,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAKrC"}
@@ -8,7 +8,7 @@ export declare function refuseCarriedLaunch(binary: string, seatEnv: Record<stri
8
8
  /** Where a carried seat writes its fork record: the manager's {@link LaunchSpec.resumeRecordPath}. */
9
9
  export declare function carriedForkRecord(home: string): string;
10
10
  /** Fill the seat's home: the carried transcript where `--resume` finds it, and the first-run state a
11
- * fresh home would otherwise prompt for, trusting only the launch directory already checked. */
11
+ * fresh home would otherwise prompt for, trusting the authorized launch directory. */
12
12
  export declare function placeCarried(home: string, transcript: string, resume: string | undefined, cwd: string): Record<string, string>;
13
13
  /**
14
14
  * Write a carried seat's fork record once Claude has forked: the digest of the transcript its
@@ -1 +1 @@
1
- {"version":3,"file":"carried.d.ts","sourceRoot":"","sources":["../src/carried.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAiD9D,eAAO,MAAM,sBAAsB,EAAE,uBAqBpC,CAAC;AAUF;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAWzF;AAED,sGAAsG;AACtG,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED;iGACiG;AACjG,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAQ9H;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAY3F"}
1
+ {"version":3,"file":"carried.d.ts","sourceRoot":"","sources":["../src/carried.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAiD9D,eAAO,MAAM,sBAAsB,EAAE,uBAqBpC,CAAC;AAUF;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAWzF;AAED,sGAAsG;AACtG,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED;uFACuF;AACvF,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAQ9H;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAY3F"}
@@ -1 +1 @@
1
- {"version":3,"file":"extension.d.ts","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":"AAEA,OAAO,EAAgD,KAAK,SAAS,EAAoC,MAAM,gBAAgB,CAAC;AAQhI;;;;;;;;;4FAS4F;AAC5F,eAAO,MAAM,oBAAoB,8/DA4EvB,CAAC;AAgDX;;;;;GAKG;AACH,eAAO,MAAM,eAAe,EAAE,SAyM7B,CAAC"}
1
+ {"version":3,"file":"extension.d.ts","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":"AAEA,OAAO,EAAgD,KAAK,SAAS,EAAoC,MAAM,gBAAgB,CAAC;AAQhI;;;;;;;;;4FAS4F;AAC5F,eAAO,MAAM,oBAAoB,8/DA4EvB,CAAC;AAgDX;;;;;GAKG;AACH,eAAO,MAAM,eAAe,EAAE,SA4M7B,CAAC"}
@@ -24153,6 +24153,8 @@ var AJV_PROFILE_OPTIONS = Object.freeze({
24153
24153
  // a caller starts reading `errors.length`, or a verdict diverges between the settings — this
24154
24154
  // pin must be re-measured before it stays.
24155
24155
  allErrors: true,
24156
+ // JSON members are own properties. Host prototype names never satisfy required/properties.
24157
+ ownProperties: true,
24156
24158
  validateFormats: false,
24157
24159
  loadSchema: void 0,
24158
24160
  // PINNED, never inherited from Ajv's default: the safe-pattern analyzer models `/u`
@@ -24622,18 +24624,6 @@ var MANAGER_ADMIN_SNAP = Object.freeze([...MANAGER_ADMIN_COMMANDS]);
24622
24624
  // ../../packages/core/dist/lifecycle-state.js
24623
24625
  var dec3 = new TextDecoder();
24624
24626
 
24625
- // ../../packages/core/dist/lifecycle-saga.js
24626
- var enc3 = new TextEncoder();
24627
- var dec4 = new TextDecoder();
24628
-
24629
- // ../../packages/core/dist/endpoint-cluster.js
24630
- var TRAIT_GUARDED = "ai.cotal.guarded";
24631
- var TRAIT_PRICED = "ai.cotal.priced";
24632
- var GOVERNED_TRAIT_URNS = Object.freeze([TRAIT_GUARDED, TRAIT_PRICED]);
24633
-
24634
- // ../../packages/core/dist/evict.js
24635
- var import_transport_node3 = __toESM(require_transport_node(), 1);
24636
-
24637
24627
  // ../../node_modules/.pnpm/@nats-io+jwt@0.0.10-5/node_modules/@nats-io/jwt/esm/jwt.js
24638
24628
  var Types;
24639
24629
  (function(Types2) {
@@ -26244,6 +26234,25 @@ var Algorithms;
26244
26234
  // ../../packages/core/dist/identity.js
26245
26235
  var import_nkeys = __toESM(require_mod2(), 1);
26246
26236
 
26237
+ // ../../packages/core/dist/remote-manager-authority.js
26238
+ var REMOTE_MANAGER_AUTHORITY_OPERATIONS = Object.freeze(["prepare", "activate", "renew", "session", "retire", "renewStandingBundle", "renewRunDriver", "transferReader"]);
26239
+ var MANAGED_AGENT_RUNTIME_STATES = Object.freeze(["reserved", "creating", "bound", "create-unknown", "closing", "closed"]);
26240
+ var MANAGED_AGENT_RUNTIME_READINESS = Object.freeze(["ready", "bound-not-ready", "none"]);
26241
+ var MANAGED_AGENT_RETIREMENT_PHASES = Object.freeze(["intent", "released", "retired", "deprovisioned", "terminal"]);
26242
+ var REMOTE_MANAGER_IDENTITY_NAMES = Object.freeze(["supervisor", "executor", "serve", "goalWriter", "sessionLedger"]);
26243
+
26244
+ // ../../packages/core/dist/lifecycle-saga.js
26245
+ var enc3 = new TextEncoder();
26246
+ var dec4 = new TextDecoder();
26247
+
26248
+ // ../../packages/core/dist/endpoint-cluster.js
26249
+ var TRAIT_GUARDED = "ai.cotal.guarded";
26250
+ var TRAIT_PRICED = "ai.cotal.priced";
26251
+ var GOVERNED_TRAIT_URNS = Object.freeze([TRAIT_GUARDED, TRAIT_PRICED]);
26252
+
26253
+ // ../../packages/core/dist/evict.js
26254
+ var import_transport_node3 = __toESM(require_transport_node(), 1);
26255
+
26247
26256
  // ../../packages/core/dist/endpoint-service.js
26248
26257
  var SOURCE_CHAIN_ID = "[A-Za-z0-9_-]{1,64}";
26249
26258
  var SOURCE_CHAIN_ELEMENT = new RegExp(`^(root|handle\\.${SOURCE_CHAIN_ID}\\.${SOURCE_CHAIN_ID}|session\\.${SOURCE_CHAIN_ID})$`);
@@ -26324,9 +26333,12 @@ var import_jetstream8 = __toESM(require_mod4(), 1);
26324
26333
  var import_transport_node10 = __toESM(require_transport_node(), 1);
26325
26334
 
26326
26335
  // ../../packages/core/dist/run-journal.js
26327
- var import_jetstream9 = __toESM(require_mod4(), 1);
26336
+ var import_jetstream10 = __toESM(require_mod4(), 1);
26328
26337
  var import_transport_node11 = __toESM(require_transport_node(), 1);
26329
26338
 
26339
+ // ../../packages/core/dist/jetstream-missing.js
26340
+ var import_jetstream9 = __toESM(require_mod4(), 1);
26341
+
26330
26342
  // ../../packages/core/dist/endpoint-goaleff.js
26331
26343
  var COMMON_FIELDS = ["v", "executor", "attemptId", "ts", "phase"];
26332
26344
  var PHASE_FIELDS = {
@@ -26375,7 +26387,7 @@ var B64_INV = (() => {
26375
26387
  })();
26376
26388
 
26377
26389
  // ../../packages/core/dist/endpoint-virtual.js
26378
- var import_jetstream10 = __toESM(require_mod4(), 1);
26390
+ var import_jetstream11 = __toESM(require_mod4(), 1);
26379
26391
  var td = new TextDecoder();
26380
26392
 
26381
26393
  // ../../packages/core/dist/signing-key-rotation.js
@@ -26383,7 +26395,7 @@ var RENEW_AT_FRACTION = 1 / 3;
26383
26395
  var OVERLAP_MS = 10 * 60 * 1e3;
26384
26396
 
26385
26397
  // ../../packages/core/dist/streams.js
26386
- var import_jetstream15 = __toESM(require_mod4(), 1);
26398
+ var import_jetstream16 = __toESM(require_mod4(), 1);
26387
26399
  var import_transport_node16 = __toESM(require_transport_node(), 1);
26388
26400
  var import_kv7 = __toESM(require_mod6(), 1);
26389
26401
  var import_obj = __toESM(require_mod7(), 1);
@@ -26396,7 +26408,7 @@ var import_kv6 = __toESM(require_mod6(), 1);
26396
26408
 
26397
26409
  // ../../packages/core/dist/kv-scan.js
26398
26410
  var import_internal2 = __toESM(require_internal_mod3(), 1);
26399
- var import_jetstream13 = __toESM(require_mod4(), 1);
26411
+ var import_jetstream14 = __toESM(require_mod4(), 1);
26400
26412
 
26401
26413
  // ../../packages/core/dist/endpoint.js
26402
26414
  var import_transport_node14 = __toESM(require_transport_node(), 1);
@@ -26406,8 +26418,8 @@ var import_nats_core = __toESM(require_mod3(), 1);
26406
26418
  var LIVENESS_PLANES = Object.freeze(["manager", "delivery"]);
26407
26419
 
26408
26420
  // ../../packages/core/dist/endpoint.js
26409
- var import_jetstream11 = __toESM(require_mod4(), 1);
26410
26421
  var import_jetstream12 = __toESM(require_mod4(), 1);
26422
+ var import_jetstream13 = __toESM(require_mod4(), 1);
26411
26423
  var import_kv5 = __toESM(require_mod6(), 1);
26412
26424
  var import_internal = __toESM(require_internal_mod3(), 1);
26413
26425
 
@@ -26423,14 +26435,14 @@ var import_kv4 = __toESM(require_mod6(), 1);
26423
26435
  var import_transport_node13 = __toESM(require_transport_node(), 1);
26424
26436
 
26425
26437
  // ../../packages/core/dist/backup-config.js
26426
- var import_jetstream14 = __toESM(require_mod4(), 1);
26438
+ var import_jetstream15 = __toESM(require_mod4(), 1);
26427
26439
  var import_transport_node15 = __toESM(require_transport_node(), 1);
26428
26440
  var DEFAULT_DUPLICATE_WINDOW = (0, import_transport_node15.nanos)(2 * 60 * 1e3);
26429
26441
  var BACKUP_PLANE3_DEDUP_WINDOW_MS = 2 * 60 * 60 * 1e3;
26430
26442
  var PLANE3_DUPLICATE_WINDOW = (0, import_transport_node15.nanos)(BACKUP_PLANE3_DEDUP_WINDOW_MS);
26431
26443
 
26432
26444
  // ../../packages/core/dist/streams.js
26433
- var PRESENCE_STORAGE = import_jetstream15.StorageType.Memory;
26445
+ var PRESENCE_STORAGE = import_jetstream16.StorageType.Memory;
26434
26446
  var MANAGER_LEASE_TTL_MS = 1e4;
26435
26447
  var MANAGER_LEASE_RENEW_MS = MANAGER_LEASE_TTL_MS / 4;
26436
26448
  var MEMBERSHIP_MAX_BYTES = 64 * 1024 * 1024;
@@ -26444,13 +26456,13 @@ var PLACEMENT_COMMANDS = Object.freeze(["describe", "resolve-cwd", "spawn"]);
26444
26456
 
26445
26457
  // ../../packages/core/dist/transfer.js
26446
26458
  var import_nats_core2 = __toESM(require_mod3(), 1);
26447
- var import_jetstream16 = __toESM(require_mod4(), 1);
26459
+ var import_jetstream17 = __toESM(require_mod4(), 1);
26448
26460
  var import_obj2 = __toESM(require_mod7(), 1);
26449
26461
  var TRANSFER_CHUNK_MAX = 128 * 1024;
26450
26462
  var HEADER_ROOM = 4 * 1024;
26451
26463
 
26452
26464
  // ../../packages/core/dist/backup.js
26453
- var import_jetstream17 = __toESM(require_mod4(), 1);
26465
+ var import_jetstream18 = __toESM(require_mod4(), 1);
26454
26466
  var import_transport_node17 = __toESM(require_transport_node(), 1);
26455
26467
  var DEFAULT_TRANSFER_TIMEOUT_MS = 5 * 60 * 1e3;
26456
26468
 
@@ -26499,6 +26511,10 @@ var CREDENTIAL_LIFETIMES = {
26499
26511
  "transfer-reader": { class: "one-shot", defaultTtlSeconds: FIVE_MINUTES, note: "one transcript-receive or sweep over the minting instance's own transfer bucket" },
26500
26512
  "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" },
26501
26513
  "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" },
26514
+ "environment-bootstrap": { class: "one-shot", defaultTtlSeconds: FIVE_MINUTES, note: "one admitted environment's bootstrap caller; explicit expiry capped by admission and five minutes" },
26515
+ "environment-manager-supervisor": { class: "standing-renewable", renewalOwner: "environment-authority", note: "own lease/presence/liveness; explicit expiry capped by admission, no auth-store access" },
26516
+ "environment-manager-executor": { class: "standing-renewable", renewalOwner: "environment-authority", note: "own admitted authority instance RPC; explicit expiry capped by admission, no direct store access" },
26517
+ "environment-manager-goal-writer": { class: "standing-renewable", renewalOwner: "environment-authority", note: "manager goal rows without the auth-read belt; explicit expiry capped by admission" },
26502
26518
  "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" },
26503
26519
  "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" }
26504
26520
  };
@@ -26531,7 +26547,7 @@ var import_yaml = __toESM(require_dist(), 1);
26531
26547
 
26532
26548
  // ../../packages/core/dist/spaces.js
26533
26549
  var import_transport_node19 = __toESM(require_transport_node(), 1);
26534
- var import_jetstream18 = __toESM(require_mod4(), 1);
26550
+ var import_jetstream19 = __toESM(require_mod4(), 1);
26535
26551
  var import_kv9 = __toESM(require_mod6(), 1);
26536
26552
 
26537
26553
  // ../../packages/core/dist/loopback.js
@@ -26616,13 +26632,6 @@ var Registry = class {
26616
26632
  };
26617
26633
  var registry2 = new Registry();
26618
26634
 
26619
- // ../../packages/core/dist/remote-manager-authority.js
26620
- var REMOTE_MANAGER_AUTHORITY_OPERATIONS = Object.freeze(["prepare", "activate", "renew", "session", "retire", "renewStandingBundle", "renewRunDriver", "transferReader"]);
26621
- var MANAGED_AGENT_RUNTIME_STATES = Object.freeze(["reserved", "creating", "bound", "create-unknown", "closing", "closed"]);
26622
- var MANAGED_AGENT_RUNTIME_READINESS = Object.freeze(["ready", "bound-not-ready", "none"]);
26623
- var MANAGED_AGENT_RETIREMENT_PHASES = Object.freeze(["intent", "released", "retired", "deprovisioned", "terminal"]);
26624
- var REMOTE_MANAGER_IDENTITY_NAMES = Object.freeze(["supervisor", "executor", "serve", "goalWriter", "sessionLedger"]);
26625
-
26626
26635
  // ../../packages/core/dist/agui-kind.js
26627
26636
  var AGUI_EVENT_TYPE = Object.freeze({
26628
26637
  RUN_STARTED: "RUN_STARTED",
@@ -26646,7 +26655,7 @@ var RUN_ACTIVATION_WAIT_MS = 15e3;
26646
26655
  var RUN_LAUNCH_DEADLINE_MS = RUN_ACTIVATION_WAIT_MS + 1e4;
26647
26656
 
26648
26657
  // ../../packages/core/dist/issuer-session.js
26649
- var import_jetstream19 = __toESM(require_mod4(), 1);
26658
+ var import_jetstream20 = __toESM(require_mod4(), 1);
26650
26659
  var import_kv10 = __toESM(require_mod6(), 1);
26651
26660
 
26652
26661
  // ../connector-core/dist/control.js
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAcA,OAAO,EAML,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,UAAU,EAChB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AA+EjD,MAAM,WAAW,gBAAgB;IAC/B,+FAA+F;IAC/F,MAAM,CAAC,EAAE,MAAM,iBAAiB,CAAC,WAAW,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IACnE,iFAAiF;IACjF,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,SAAS,EAAE,KAAK,IAAI,CAAC;CAClD;AAOD;;+DAE+D;AAC/D,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,UAAU,CAAC;IACnB,iDAAiD;IACjD,OAAO,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;CACtD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,GAAE,gBAAqB,GAAG,WAAW,CA4S3E;AAED,wEAAwE;AACxE,MAAM,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAE5H,MAAM,WAAW,UAAU;IACzB,+EAA+E;IAC/E,gBAAgB,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IACxC;+FAC2F;IAC3F,QAAQ,CAAC,KAAK,EAAE,SAAS,SAAS,EAAE,GAAG,IAAI,CAAC;IAC5C,sCAAsC;IACtC,IAAI,IAAI,IAAI,CAAC;CACd;AAKD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,GAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAe,GAAG,UAAU,CAsH3H"}
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAcA,OAAO,EAML,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,UAAU,EAChB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AA+EjD,MAAM,WAAW,gBAAgB;IAC/B,+FAA+F;IAC/F,MAAM,CAAC,EAAE,MAAM,iBAAiB,CAAC,WAAW,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IACnE,iFAAiF;IACjF,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,SAAS,EAAE,KAAK,IAAI,CAAC;CAClD;AAOD;;+DAE+D;AAC/D,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,UAAU,CAAC;IACnB,iDAAiD;IACjD,OAAO,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;CACtD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,GAAE,gBAAqB,GAAG,WAAW,CAoU3E;AAED,wEAAwE;AACxE,MAAM,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAE5H,MAAM,WAAW,UAAU;IACzB,+EAA+E;IAC/E,gBAAgB,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IACxC;+FAC2F;IAC3F,QAAQ,CAAC,KAAK,EAAE,SAAS,SAAS,EAAE,GAAG,IAAI,CAAC;IAC5C,sCAAsC;IACtC,IAAI,IAAI,IAAI,CAAC;CACd;AAKD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,GAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAe,GAAG,UAAU,CAsH3H"}
@@ -24,7 +24,7 @@ import { DEFAULT_SERVER, DEV_OWNER, LAUNCH_MATERIAL_ENV as LAUNCH_MATERIAL_ENV2,
24
24
  import { LAUNCH_MATERIAL_ENV, readLaunchMaterial } from "@cotal-ai/core/launch-material";
25
25
 
26
26
  // ../connector-core/dist/agent.js
27
- import { normalizeMentions, RUN_LAUNCH_DEADLINE_MS, subjectMatches, isConcreteChannel as isConcreteChannel2, assertValidChannel as assertValidChannel2, channelInAllow as channelInAllow2, resolvePeer as resolvePeerInRoster, peerLabel as peerLabel2, CotalEndpoint, acquireLocalConsumer, BASELINE_LIFECYCLE_ENDPOINT as BASELINE_LIFECYCLE_ENDPOINT2, BIND_SPLIT_REISSUES, assertLifecycleToken as assertLifecycleToken2, EpEnvelopeError as EpEnvelopeError2, isPublishPermissionDenied, unansweredRequest, renderLifecycleBlocked, controlReplyFrom, runAgentBearer, partsToText, assertValidRole } from "@cotal-ai/core";
27
+ import { normalizeMentions, RUN_LAUNCH_DEADLINE_MS, subjectMatches, isConcreteChannel as isConcreteChannel2, assertValidChannel as assertValidChannel2, channelInAllow as channelInAllow2, resolvePeer as resolvePeerInRoster, peerLabel as peerLabel2, CotalEndpoint, acquireLocalConsumer, BASELINE_LIFECYCLE_ENDPOINT as BASELINE_LIFECYCLE_ENDPOINT2, BIND_SPLIT_REISSUES, assertLifecycleToken as assertLifecycleToken2, EpEnvelopeError as EpEnvelopeError2, isPublishPermissionDenied, unansweredRequest, controlReplyFrom, controlReplyFromThrown, runAgentBearer, partsToText, assertValidRole } from "@cotal-ai/core";
28
28
 
29
29
  // ../connector-core/dist/framing.js
30
30
  import { peerLabel } from "@cotal-ai/core";
@@ -32,6 +32,10 @@ import { peerLabel } from "@cotal-ai/core";
32
32
  // ../connector-core/dist/manager-call.js
33
33
  import { BASELINE_LIFECYCLE_ENDPOINT, EpEnvelopeError, dialerFor, goalFollowRefusal, invokeCommand, isPermissionDenied, issuedUserCaller, managerCallerBinding, replyRefusedBeforeEffect, resolveService, standaloneConnectOpts } from "@cotal-ai/core";
34
34
 
35
+ // ../connector-core/dist/agent.js
36
+ var MAX_INBOX = 200;
37
+ var MAX_IN_FLIGHT = MAX_INBOX * 2;
38
+
35
39
  // ../connector-core/dist/runtime.js
36
40
  import { tmpdir } from "node:os";
37
41
  import { join } from "node:path";
@@ -223,7 +227,6 @@ var EGRESS_FORBIDDEN_TYPES = /* @__PURE__ */ new Set([
223
227
  AGUI_EVENT_TYPE2.TOOL_CALL_ARGS,
224
228
  AGUI_EVENT_TYPE2.TOOL_CALL_RESULT
225
229
  ]);
226
- var KNOWN_AGUI_EVENT_TYPES = new Set(Object.values(AGUI_EVENT_TYPE2));
227
230
  var KNOWN_EVENT_KEYS_BY_TYPE = /* @__PURE__ */ new Map([
228
231
  [AGUI_EVENT_TYPE2.RUN_STARTED, /* @__PURE__ */ new Set(["type", "timestamp", "rawEvent", "threadId", "runId", "parentRunId", "input", "cotal"])],
229
232
  [AGUI_EVENT_TYPE2.RUN_FINISHED, /* @__PURE__ */ new Set(["type", "timestamp", "rawEvent", "threadId", "runId", "result", "outcome", "cotal"])],
@@ -14891,7 +14894,7 @@ function date4(params) {
14891
14894
  config(en_default());
14892
14895
 
14893
14896
  // ../connector-core/dist/tool-specs.js
14894
- import { isConcreteChannel as isConcreteChannel3, channelInAllow as channelInAllow3, AmbiguousPeerError, peerLabel as peerLabel4, assertLifecycleToken as assertLifecycleToken3, isPermissionDenied as isPermissionDenied2, renderLifecycleBlocked as renderLifecycleBlocked2, EpEnvelopeError as EpEnvelopeError3, LANG_PROBLEM_DETAIL_KIND, formatAge, presenceAges } from "@cotal-ai/core";
14897
+ import { isConcreteChannel as isConcreteChannel3, channelInAllow as channelInAllow3, AmbiguousPeerError, peerLabel as peerLabel4, assertLifecycleToken as assertLifecycleToken3, isPermissionDenied as isPermissionDenied2, renderLifecycleBlocked, EpEnvelopeError as EpEnvelopeError3, LANG_PROBLEM_DETAIL_KIND, formatAge, presenceAges } from "@cotal-ai/core";
14895
14898
 
14896
14899
  // ../connector-core/dist/orientation.js
14897
14900
  import { peerLabel as peerLabel3 } from "@cotal-ai/core";
@@ -15117,8 +15120,8 @@ var claudeSetupProvider = {
15117
15120
  run(prompt) {
15118
15121
  const sessionArgs = assistSession ? ["--resume", assistSession] : ["--session-id", assistSession = randomUUID()];
15119
15122
  const child = spawn("claude", [prompt, "--permission-mode", "auto", ...sessionArgs], { stdio: "inherit" });
15120
- return new Promise((resolve3, reject) => {
15121
- child.on("exit", () => resolve3());
15123
+ return new Promise((resolve2, reject) => {
15124
+ child.on("exit", () => resolve2());
15122
15125
  child.on("error", reject);
15123
15126
  });
15124
15127
  }
@@ -15135,7 +15138,7 @@ var claudeSetupProvider = {
15135
15138
  registry3.register(claudeSetupProvider);
15136
15139
 
15137
15140
  // src/extension.ts
15138
- import { resolve as resolve2 } from "node:path";
15141
+ import { resolve } from "node:path";
15139
15142
  import { fileURLToPath as fileURLToPath2 } from "node:url";
15140
15143
  import { loadAgentFile as loadAgentFile2, registry as registry4, writeLaunchArtifact } from "@cotal-ai/core";
15141
15144
 
@@ -15231,46 +15234,10 @@ function placeCarried(home, transcript, resume, cwd) {
15231
15234
  }
15232
15235
 
15233
15236
  // src/trust.ts
15234
- import { existsSync as existsSync2, readFileSync as readFileSync3, realpathSync, statSync } from "node:fs";
15235
- import { homedir as homedir3 } from "node:os";
15236
- import { basename, dirname as dirname2, join as join4, resolve } from "node:path";
15237
- function stateFile(env) {
15238
- return env.CLAUDE_CONFIG_DIR ? join4(env.CLAUDE_CONFIG_DIR, ".claude.json") : join4(env.HOME || homedir3(), ".claude.json");
15239
- }
15240
- function repoRoot(dir) {
15241
- for (; ; dir = dirname2(dir)) {
15242
- if (existsSync2(join4(dir, ".git"))) return dir;
15243
- if (dirname2(dir) === dir) return void 0;
15244
- }
15245
- }
15246
- function trustKey(root) {
15247
- const dotGit = join4(root, ".git");
15248
- const link = statSync(dotGit).isFile() && /^gitdir:(.*)/.exec(readFileSync3(dotGit, "utf8").trim());
15249
- if (!link) return root;
15250
- const gitDir = resolve(root, link[1].trim());
15251
- const pointer = (name) => existsSync2(join4(gitDir, name)) ? resolve(gitDir, readFileSync3(join4(gitDir, name), "utf8").trim()) : void 0;
15252
- const common = pointer("commondir"), back = pointer("gitdir");
15253
- if (common === void 0 || back === void 0 || dirname2(gitDir) !== join4(common, "worktrees")) return root;
15254
- if (!existsSync2(back) || realpathSync(back) !== join4(realpathSync(root), ".git")) return root;
15255
- return basename(common) === ".git" ? dirname2(common) : common;
15256
- }
15257
- function refuseUntrustedCwd(cwd) {
15258
- let projects;
15259
- try {
15260
- projects = JSON.parse(readFileSync3(stateFile(process.env), "utf8")).projects;
15261
- } catch (e) {
15262
- if (e.code !== "ENOENT") throw e;
15263
- }
15264
- const trusted = (dir) => projects?.[dir]?.hasTrustDialogAccepted === true;
15265
- const root = repoRoot(cwd);
15266
- if (root !== void 0 && trusted(trustKey(root))) return;
15267
- for (let dir = cwd; !trusted(dir); dir = dirname2(dir)) {
15268
- if (dir === root || dirname2(dir) === dir)
15269
- throw new Error(
15270
- `claude connector: the manager's Claude home does not trust ${cwd}, and a supervised seat cannot answer Claude's workspace-trust dialog; open \`claude\` in that directory on the manager host once and trust it, then launch again`
15271
- );
15272
- }
15273
- }
15237
+ var CLAUDE_WORKSPACE_TRUST_REPLIES = Object.freeze([
15238
+ Object.freeze({ prompt: "\u276F No, exit\nYes, I trust this folder", key: "Down" }),
15239
+ Object.freeze({ prompt: "No, exit\n\u276F Yes, I trust this folder", key: "Enter" })
15240
+ ]);
15274
15241
 
15275
15242
  // src/extension.ts
15276
15243
  var MCP_SERVER_NAME = "cotal";
@@ -15353,7 +15320,7 @@ var CLAUDE_PROVIDER_KEYS = [
15353
15320
  ];
15354
15321
  var CHANNEL_REF = `server:${MCP_SERVER_NAME}`;
15355
15322
  var PLUGIN_ROOT = fileURLToPath2(new URL("..", import.meta.url));
15356
- var MCP_CJS = resolve2(PLUGIN_ROOT, "dist", "mcp.cjs");
15323
+ var MCP_CJS = resolve(PLUGIN_ROOT, "dist", "mcp.cjs");
15357
15324
  function assertServableModel(model) {
15358
15325
  if (!model.includes("/") || model.startsWith("arn:")) return;
15359
15326
  throw new Error(
@@ -15408,8 +15375,6 @@ var claudeConnector = {
15408
15375
  }
15409
15376
  const binary = opts.resolvedBinaries?.claude ?? "claude";
15410
15377
  if (opts.carried) refuseCarriedLaunch(binary, env);
15411
- if (opts.cwd) refuseUntrustedCwd(opts.cwd);
15412
- if (opts.carried && opts.carried.cwd !== opts.cwd) refuseUntrustedCwd(opts.carried.cwd);
15413
15378
  if (opts.role) env.COTAL_ROLE = opts.role;
15414
15379
  if (opts.id) env.COTAL_ID = opts.id;
15415
15380
  if (opts.lifecycleUid) env.COTAL_LIFECYCLE_UID = opts.lifecycleUid;
@@ -15421,7 +15386,7 @@ var claudeConnector = {
15421
15386
  const args = prompt ? [prompt, "--dangerously-load-development-channels", CHANNEL_REF, "--plugin-dir", PLUGIN_ROOT] : ["--dangerously-load-development-channels", CHANNEL_REF, "--plugin-dir", PLUGIN_ROOT];
15422
15387
  args.push("--allowedTools", "WebFetch(domain:github.com),WebFetch(domain:raw.githubusercontent.com)");
15423
15388
  const mcpServers = { ...shared, [MCP_SERVER_NAME]: { command: "node", args: [MCP_CJS] } };
15424
- const agentFile = opts.configPath ? resolve2(opts.configPath) : void 0;
15389
+ const agentFile = opts.configPath ? resolve(opts.configPath) : void 0;
15425
15390
  const def = agentFile ? loadAgentFile2(agentFile) : void 0;
15426
15391
  if (opts.model) assertServableModel(opts.model);
15427
15392
  const passthrough = connectorLaunchOptions("claude", opts.launchOptions).map(([k, v]) => [k, String(v)]);
@@ -15443,6 +15408,8 @@ var claudeConnector = {
15443
15408
  }
15444
15409
  if (opts.resume) args.push("--resume", opts.resume, "--fork-session");
15445
15410
  if (opts.carried) Object.assign(env, placeCarried(opts.carried.home, opts.carried.transcript, opts.resume, opts.carried.cwd));
15411
+ if (!passthrough.some(([k]) => k === "permission-mode" || k === "dangerously-skip-permissions"))
15412
+ args.push("--permission-mode", "bypassPermissions");
15446
15413
  for (const [k, val] of passthrough) {
15447
15414
  if (val === "") args.push(`--${k}`);
15448
15415
  else args.push(`--${k}`, val);
@@ -15455,6 +15422,7 @@ var claudeConnector = {
15455
15422
  // "Enter to confirm" footer, which the workspace-trust dialog also renders with a different
15456
15423
  // default action. The runtime presses Enter once when this connector-owned text appears.
15457
15424
  confirm: "WARNING: Loading development channels",
15425
+ ...opts.cwd ? { confirmBefore: CLAUDE_WORKSPACE_TRUST_REPLIES } : {},
15458
15426
  control,
15459
15427
  ...opts.carried ? { resumeRecordPath: carriedForkRecord(opts.carried.home) } : {},
15460
15428
  ...artifacts.length > 0 ? { artifacts } : {}