@cotal-ai/connector-core 0.3.2 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,11 @@
1
+ # @cotal-ai/connector-core
2
+
3
+ The shared MCP-bridge runtime: the mesh agent, the `cotal_*` tool specs (including
4
+ `cotal_spawn` / `cotal_persona` / `cotal_despawn`), and the hook relay. The connector adapters
5
+ (Claude Code, OpenCode, Hermes) are thin clients over it.
6
+
7
+ **Tier:** `extensions/`. Peer-depends [`@cotal-ai/core`](../../packages/core); self-registers on
8
+ import.
9
+
10
+ See [docs/claude-code-integration.md](../../docs/claude-code-integration.md) for how a session
11
+ joins, and the [root AGENTS.md](../../AGENTS.md) for the tier rules.
package/dist/agent.d.ts CHANGED
@@ -56,6 +56,7 @@ export declare class MeshAgent extends EventEmitter {
56
56
  private _connected;
57
57
  private _status;
58
58
  private _attention;
59
+ private _contextId;
59
60
  /** Chat-stream frontier captured when this agent entered `focus` — recall surfaces ambient
60
61
  * published after it ("since you entered focus"). Undefined unless in focus. */
61
62
  private focusSince?;
@@ -63,10 +64,21 @@ export declare class MeshAgent extends EventEmitter {
63
64
  constructor(config: AgentConfig);
64
65
  get id(): string;
65
66
  get connected(): boolean;
67
+ /** Correlates outgoing messages to the host agent's current context/window. */
68
+ setContextId(contextId: string | undefined): void;
66
69
  /** Begin connecting (with background retry). Returns immediately. */
67
70
  start(retryMs?: number): void;
68
71
  private connectLoop;
69
72
  stop(): Promise<void>;
73
+ /** Manual reconnect: tear down the mesh connection and rebuild it in-process, WITHOUT
74
+ * stopping the agent (the recovery path, so it does NOT assert connected). Delegates to
75
+ * {@link CotalEndpoint.reconnect}, which is serialized with the self-heal supervisor and
76
+ * interruptible. Returns a one-line status for the caller to surface (e.g. the
77
+ * cotal_reconnect tool → TUI); on failure the endpoint keeps retrying in the background. */
78
+ reconnect(): Promise<{
79
+ ok: boolean;
80
+ message: string;
81
+ }>;
70
82
  private ingest;
71
83
  /** Normalize a wire message into an {@link InboxItem}. `kind` is the **authenticated** class
72
84
  * from {@link MessageMeta} (subject-derived), never the forgeable payload `to`/`toService`;
@@ -118,7 +130,9 @@ export declare class MeshAgent extends EventEmitter {
118
130
  * after connect) throws. See docs/architecture.md. */
119
131
  private assertKnownMentions;
120
132
  anycast(role: string, text: string): Promise<CotalMessage>;
121
- /** Resolve a peer by instance id (exact) or display name (case-insensitive, prefer present). */
133
+ /** Resolve a peer by instance id (exact) or display name. Deterministic and fail-loud: returns
134
+ * one peer, `undefined` if none match, or throws `AmbiguousPeerError` on a same-name collision —
135
+ * it never silently picks. See `resolvePeer` in @cotal-ai/core. */
122
136
  resolvePeer(target: string): Presence | undefined;
123
137
  dm(target: string, text: string): Promise<{
124
138
  msg: CotalMessage;
@@ -130,8 +144,13 @@ export declare class MeshAgent extends EventEmitter {
130
144
  spawn(name: string, role?: string): Promise<ControlReply>;
131
145
  /** Ask the manager to tear a teammate down (its `stop` op). Graceful by default —
132
146
  * the session is told to exit cleanly (so it leaves the mesh) before the
133
- * process/tab is closed; `graceful:false` is a hard, immediate kill. */
134
- despawn(name: string, opts?: {
147
+ * process/tab is closed; `graceful:false` is a hard, immediate kill.
148
+ *
149
+ * No `name` ⇒ self-despawn: rides the self-service control subject and the manager
150
+ * resolves the target as the managed agent whose id == this caller — so it can only
151
+ * ever stop itself, never a peer. A `name` ⇒ rides the privileged control subject
152
+ * (transport-gated to spawn-capable/admin); the manager refines own-child vs admin. */
153
+ despawn(name?: string, opts?: {
135
154
  graceful?: boolean;
136
155
  }): Promise<ControlReply>;
137
156
  /** Ask the manager to purge the space's retained chat backlog (its `purge` op). Cleanup only —
@@ -145,7 +164,6 @@ export declare class MeshAgent extends EventEmitter {
145
164
  definePersona(def: {
146
165
  name: string;
147
166
  prompt: string;
148
- role?: string;
149
167
  model?: string;
150
168
  }): Promise<ControlReply>;
151
169
  /** The full roster, including ourselves. */
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAIL,aAAa,EACb,KAAK,YAAY,EAGjB,KAAK,QAAQ,EACb,KAAK,cAAc,EACnB,KAAK,YAAY,EAClB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,2EAA2E;AAC3E,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,SAAS,GAAG,IAAI,GAAG,SAAS,CAAC;IACnC,mCAAmC;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wDAAwD;IACxD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,kGAAkG;IAClG,UAAU,EAAE,OAAO,CAAC;IACpB,+FAA+F;IAC/F,UAAU,EAAE,OAAO,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAWD;;;;;;;;;GASG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,CAAC;AAMrD;;;;;;;;;;;;;;GAcG;AACH,qBAAa,SAAU,SAAQ,YAAY;IACzC,QAAQ,CAAC,EAAE,EAAE,aAAa,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAE7B,OAAO,CAAC,KAAK,CAAiB;IAC9B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,UAAU,CAAyB;IAC3C;qFACiF;IACjF,OAAO,CAAC,UAAU,CAAC,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAS;gBAEb,MAAM,EAAE,WAAW;IAyB/B,IAAI,EAAE,IAAI,MAAM,CAEf;IAED,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,qEAAqE;IACrE,KAAK,CAAC,OAAO,SAAO,GAAG,IAAI;YAIb,WAAW;IAenB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAO3B,OAAO,CAAC,MAAM;IA6Bd;;;gDAG4C;IAC5C,OAAO,CAAC,WAAW;IAsBnB,oGAAoG;IACpG,UAAU,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,EAAE;IAOvC,6EAA6E;IAC7E,SAAS,IAAI,SAAS,EAAE;IAIxB,UAAU,IAAI,MAAM;IAIpB;;;0EAGsE;IACtE,oBAAoB,IAAI,MAAM;IAI9B;;;wFAGoF;IACpF,WAAW,IAAI,IAAI;IAMnB,6FAA6F;IAC7F,IAAI,SAAS,IAAI,aAAa,CAE7B;IAED;;;;;;qCAMiC;IAC3B,YAAY,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAUtD;;;;;;yCAMqC;IAC/B,aAAa,IAAI,OAAO,CAAC;QAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QAAC,eAAe,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAiB3E,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC;IAOtF;;;;;2DAKuD;IACvD,OAAO,CAAC,mBAAmB;IASrB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAKhE,gGAAgG;IAChG,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAY3C,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,GAAG,EAAE,YAAY,CAAC;QAAC,IAAI,EAAE,QAAQ,CAAA;KAAE,CAAC;IAUtF;;uEAEmE;IAC7D,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAK/D;;6EAEyE;IACnE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,YAAY,CAAC;IAQjF;uGACmG;IAC7F,YAAY,CAAC,IAAI,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,YAAY,CAAC;IAQ1E;;gGAE4F;IACtF,aAAa,CAAC,GAAG,EAAE;QACvB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GAAG,OAAO,CAAC,YAAY,CAAC;IAYzB,4CAA4C;IAC5C,MAAM,IAAI,QAAQ,EAAE;IAIpB,8CAA8C;IAC9C,IAAI,MAAM,IAAI,cAAc,CAE3B;IAEK,SAAS,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASzE;;;;qFAIiF;IACjF,eAAe,IAAI,MAAM,GAAG,SAAS;IAUrC;oFACgF;IAChF,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE;IAS9F,2EAA2E;IAC3E,cAAc,IAAI,MAAM,EAAE;IAI1B;;iEAE6D;IACvD,YAAY,IAAI,OAAO,CAC3B;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,EAAE,CAChG;IAWD,kFAAkF;IAC5E,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IAKpF,mEAAmE;IAC7D,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC;IAO/D,OAAO,CAAC,GAAG;IAIX,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,GAAG;CAGZ"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
package/dist/agent.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { EventEmitter } from "node:events";
2
- import { normalizeMentions, subjectMatches, isConcreteChannel, CotalEndpoint, } from "@cotal-ai/core";
2
+ import { normalizeMentions, subjectMatches, isConcreteChannel, resolvePeer as resolvePeerInRoster, CotalEndpoint, CONTROL_PRIVILEGED, CONTROL_SELF_SERVICE, } from "@cotal-ai/core";
3
3
  const MAX_INBOX = 200;
4
4
  function sleep(ms) {
5
5
  return new Promise((r) => setTimeout(r, ms));
@@ -26,6 +26,7 @@ export class MeshAgent extends EventEmitter {
26
26
  _connected = false;
27
27
  _status = "idle";
28
28
  _attention = "open"; // F3: fail-open default; reset to open on SessionStart
29
+ _contextId;
29
30
  /** Chat-stream frontier captured when this agent entered `focus` — recall surfaces ambient
30
31
  * published after it ("since you entered focus"). Undefined unless in focus. */
31
32
  focusSince;
@@ -41,7 +42,7 @@ export class MeshAgent extends EventEmitter {
41
42
  pass: config.pass,
42
43
  creds: config.creds,
43
44
  tls: config.tls,
44
- channels: config.channels,
45
+ channels: config.subscribe, // the endpoint's live filter = the active read set
45
46
  card: {
46
47
  id: config.id,
47
48
  name: config.name,
@@ -53,6 +54,10 @@ export class MeshAgent extends EventEmitter {
53
54
  });
54
55
  this.ep.on("message", (m, d, meta) => this.ingest(m, d, meta));
55
56
  this.ep.on("error", (e) => this.log(`endpoint error: ${e.message}`));
57
+ // The endpoint's (re)binds are the single source of truth for connectedness: this fires on
58
+ // initial start, manual reconnect, AND the background self-heal — so a recovery the endpoint
59
+ // did on its own can't leave us thinking we're offline (which would skip stop() → leak).
60
+ this.ep.on("connection", (e) => { this._connected = e.connected; });
56
61
  }
57
62
  get id() {
58
63
  return this.ep.card.id;
@@ -60,6 +65,11 @@ export class MeshAgent extends EventEmitter {
60
65
  get connected() {
61
66
  return this._connected;
62
67
  }
68
+ /** Correlates outgoing messages to the host agent's current context/window. */
69
+ setContextId(contextId) {
70
+ const clean = contextId?.trim();
71
+ this._contextId = clean ? clean : undefined;
72
+ }
63
73
  /** Begin connecting (with background retry). Returns immediately. */
64
74
  start(retryMs = 3000) {
65
75
  void this.connectLoop(retryMs);
@@ -68,8 +78,8 @@ export class MeshAgent extends EventEmitter {
68
78
  while (!this.stopping && !this._connected) {
69
79
  try {
70
80
  await this.ep.start();
71
- this._connected = true;
72
- this.log(`connected to ${this.config.servers} as ${this.who()} in space "${this.config.space}" on #${this.config.channels.join(", #")}`);
81
+ // _connected is set by the endpoint's "connection" event (fired inside start()), not here.
82
+ this.log(`connected to ${this.config.servers} as ${this.who()} in space "${this.config.space}" on #${this.config.subscribe.join(", #")}`);
73
83
  }
74
84
  catch (e) {
75
85
  this.log(`mesh unreachable (${e.message}); retrying in ${retryMs}ms`);
@@ -79,8 +89,31 @@ export class MeshAgent extends EventEmitter {
79
89
  }
80
90
  async stop() {
81
91
  this.stopping = true;
82
- if (this._connected)
83
- await this.ep.stop();
92
+ // Unconditional: a background self-heal can flip _connected without us, so a `_connected`
93
+ // guard could skip the stop and leak the live connection/heartbeat/supervisor. ep.stop() is
94
+ // idempotent (early-returns once stopped), so calling it when already-down is a noop.
95
+ await this.ep.stop();
96
+ }
97
+ /** Manual reconnect: tear down the mesh connection and rebuild it in-process, WITHOUT
98
+ * stopping the agent (the recovery path, so it does NOT assert connected). Delegates to
99
+ * {@link CotalEndpoint.reconnect}, which is serialized with the self-heal supervisor and
100
+ * interruptible. Returns a one-line status for the caller to surface (e.g. the
101
+ * cotal_reconnect tool → TUI); on failure the endpoint keeps retrying in the background. */
102
+ async reconnect() {
103
+ if (this.stopping) {
104
+ return {
105
+ ok: false,
106
+ message: "This session is shutting down, so its Cotal mesh connection cannot be reconnected. Start a new session instead.",
107
+ };
108
+ }
109
+ try {
110
+ await this.ep.reconnect();
111
+ // _connected is set by the endpoint's "connection" event on the successful rebind, not here.
112
+ return { ok: true, message: `Reconnected ✓ (${this.config.name}@${this.config.space})` };
113
+ }
114
+ catch (e) {
115
+ return { ok: false, message: `Reconnect failed: ${e.message}. Still retrying automatically — or run /reconnect to retry now.` };
116
+ }
84
117
  }
85
118
  // ---- inbox ---------------------------------------------------------------
86
119
  ingest(m, delivery, meta) {
@@ -219,7 +252,7 @@ export class MeshAgent extends EventEmitter {
219
252
  const clean = normalizeMentions(mentions);
220
253
  if (clean)
221
254
  this.assertKnownMentions(clean);
222
- return this.ep.multicast(text, { channel, mentions: clean });
255
+ return this.ep.multicast(text, { channel, mentions: clean, contextId: this._contextId });
223
256
  }
224
257
  /** Throw if any name isn't a peer we've observed. Validates against the FULL roster
225
258
  * (incl. self — your own name is a valid participant; resolvePeer's self-filter would
@@ -235,25 +268,20 @@ export class MeshAgent extends EventEmitter {
235
268
  }
236
269
  async anycast(role, text) {
237
270
  this.assertConnected();
238
- return this.ep.anycast(role, text);
271
+ return this.ep.anycast(role, text, { contextId: this._contextId });
239
272
  }
240
- /** Resolve a peer by instance id (exact) or display name (case-insensitive, prefer present). */
273
+ /** Resolve a peer by instance id (exact) or display name. Deterministic and fail-loud: returns
274
+ * one peer, `undefined` if none match, or throws `AmbiguousPeerError` on a same-name collision —
275
+ * it never silently picks. See `resolvePeer` in @cotal-ai/core. */
241
276
  resolvePeer(target) {
242
- const roster = this.ep.getRoster().filter((p) => p.card.id !== this.id);
243
- const byId = roster.find((p) => p.card.id === target);
244
- if (byId)
245
- return byId;
246
- const t = target.toLowerCase();
247
- const present = roster.filter((p) => p.status !== "offline");
248
- return (present.find((p) => p.card.name.toLowerCase() === t) ??
249
- roster.find((p) => p.card.name.toLowerCase() === t));
277
+ return resolvePeerInRoster(this.ep.getRoster(), target, { selfId: this.id });
250
278
  }
251
279
  async dm(target, text) {
252
280
  this.assertConnected();
253
281
  const peer = this.resolvePeer(target);
254
282
  if (!peer)
255
283
  throw new Error(`no peer "${target}" in space "${this.config.space}"`);
256
- const msg = await this.ep.unicast(peer.card.id, text);
284
+ const msg = await this.ep.unicast(peer.card.id, text, { contextId: this._contextId });
257
285
  return { msg, peer };
258
286
  }
259
287
  // ---- supervision ---------------------------------------------------------
@@ -262,23 +290,32 @@ export class MeshAgent extends EventEmitter {
262
290
  * runtime; from here it just joins the mesh as a lateral peer. */
263
291
  async spawn(name, role) {
264
292
  this.assertConnected();
265
- return this.ep.requestControl("manager", { op: "start", args: { name, role } });
293
+ return this.ep.requestControl(CONTROL_PRIVILEGED, { op: "start", args: { name, role } });
266
294
  }
267
295
  /** Ask the manager to tear a teammate down (its `stop` op). Graceful by default —
268
296
  * the session is told to exit cleanly (so it leaves the mesh) before the
269
- * process/tab is closed; `graceful:false` is a hard, immediate kill. */
297
+ * process/tab is closed; `graceful:false` is a hard, immediate kill.
298
+ *
299
+ * No `name` ⇒ self-despawn: rides the self-service control subject and the manager
300
+ * resolves the target as the managed agent whose id == this caller — so it can only
301
+ * ever stop itself, never a peer. A `name` ⇒ rides the privileged control subject
302
+ * (transport-gated to spawn-capable/admin); the manager refines own-child vs admin. */
270
303
  async despawn(name, opts) {
271
304
  this.assertConnected();
272
- return this.ep.requestControl("manager", {
305
+ const graceful = opts?.graceful ?? true;
306
+ if (!name) {
307
+ return this.ep.requestControl(CONTROL_SELF_SERVICE, { op: "stop", args: { graceful } });
308
+ }
309
+ return this.ep.requestControl(CONTROL_PRIVILEGED, {
273
310
  op: "stop",
274
- args: { name, graceful: opts?.graceful ?? true },
311
+ args: { name, graceful },
275
312
  });
276
313
  }
277
314
  /** Ask the manager to purge the space's retained chat backlog (its `purge` op). Cleanup only —
278
315
  * it doesn't touch live agents or the anycast work queue. `includeDms` also clears DM history. */
279
316
  async purgeHistory(opts) {
280
317
  this.assertConnected();
281
- return this.ep.requestControl("manager", {
318
+ return this.ep.requestControl(CONTROL_PRIVILEGED, {
282
319
  op: "purge",
283
320
  args: { includeDms: opts?.includeDms ?? false },
284
321
  });
@@ -288,9 +325,10 @@ export class MeshAgent extends EventEmitter {
288
325
  * half — so peers see the new persona; `spawn(name)` then launches an agent wearing it. */
289
326
  async definePersona(def) {
290
327
  this.assertConnected();
291
- const reply = await this.ep.requestControl("manager", {
328
+ const reply = await this.ep.requestControl(CONTROL_PRIVILEGED, {
292
329
  op: "definePersona",
293
- args: { name: def.name, role: def.role, model: def.model, persona: def.prompt },
330
+ // role is policy set at spawn, never via definePersona; the manager ignores it regardless.
331
+ args: { name: def.name, model: def.model, persona: def.prompt },
294
332
  });
295
333
  if (reply.ok)
296
334
  await this.send(`persona \`${def.name}\` is now available — spawn it to bring it online`);
package/dist/agent.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -21,11 +21,16 @@ export interface AgentConfig {
21
21
  description?: string;
22
22
  tags?: string[];
23
23
  servers: string;
24
- /** Channels this agent subscribes to (read). May include wildcard subtrees (`team.>`). */
25
- channels: string[];
26
- /** Channels this agent may post to (write). Falls back to `channels` when unset, matching
27
- * the agent-file convention and the minted publish ACL. */
28
- publish: string[];
24
+ /** The *active* read set — channels this agent actually subscribes to (read). May include
25
+ * wildcard subtrees (`team.>`). Maps to the endpoint's live filter. ⊆ {@link allowSubscribe}. */
26
+ subscribe: string[];
27
+ /** The read ACL — channels this agent *may* read (auth mode broker-enforced). Defaults to
28
+ * {@link subscribe}. Bounds runtime `cotal_join`. */
29
+ allowSubscribe: string[];
30
+ /** The post ACL — channels this agent may post to (auth mode → the minted publish ACL).
31
+ * **Default-deny** (empty): publishing must be declared. Informational only here; the broker
32
+ * enforces it under auth. */
33
+ allowPublish: string[];
29
34
  kind: EndpointKind;
30
35
  token?: string;
31
36
  user?: string;
@@ -51,8 +56,10 @@ export declare function hasIdentity(env?: NodeJS.ProcessEnv): boolean;
51
56
  export declare function configFromEnv(env?: NodeJS.ProcessEnv): AgentConfig;
52
57
  /** One sentence telling the agent its channel lanes — what it reads and where it may post —
53
58
  * so it knows its scope up front instead of discovering it from inbound tags and send errors.
54
- * Folded into each connector's MCP `instructions`. Publish outside the lane is rejected by the
55
- * broker (auth mode), so state it plainly. */
59
+ * Folded into each connector's MCP `instructions`. It must match the broker truth: under auth the
60
+ * post ACL is default-deny, so an undeclared agent genuinely cannot post (state it plainly rather
61
+ * than promise a lane the broker will reject). In open mode there is no cred, so posting is
62
+ * unrestricted regardless of the (display-only) post ACL. */
56
63
  export declare function laneLine(config: AgentConfig): string;
57
64
  /** Beta-feedback guidance folded into connector instructions. */
58
65
  export declare function feedbackLine(config: AgentConfig): string;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAEA,OAAO,EAA+D,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEhH,0EAA0E;AAC1E,eAAO,MAAM,YAAY,wCAAwC,CAAC;AAClE,2EAA2E;AAC3E,eAAO,MAAM,mBAAmB,iCAAiC,CAAC;AAElE;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd;iEAC6D;IAC7D,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,iFAAiF;IACjF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,0FAA0F;IAC1F,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB;gEAC4D;IAC5D,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,OAAO,CAAC;IACb;+EAC2E;IAC3E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mFAAmF;IACnF,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAUD;;;uBAGuB;AACvB,wBAAgB,WAAW,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAEzE;AAED;;;;;uEAKuE;AACvE,wBAAgB,aAAa,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,WAAW,CA+B/E;AAED;;;+CAG+C;AAC/C,wBAAgB,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAQpD;AAED,iEAAiE;AACjE,wBAAgB,YAAY,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAaxD"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmG,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEpJ,0EAA0E;AAC1E,eAAO,MAAM,YAAY,wCAAwC,CAAC;AAClE,2EAA2E;AAC3E,eAAO,MAAM,mBAAmB,iCAAiC,CAAC;AAElE;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd;iEAC6D;IAC7D,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,iFAAiF;IACjF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB;sGACkG;IAClG,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB;0DACsD;IACtD,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB;;kCAE8B;IAC9B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,OAAO,CAAC;IACb;+EAC2E;IAC3E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mFAAmF;IACnF,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAUD;;;uBAGuB;AACvB,wBAAgB,WAAW,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAEzE;AAED;;;;;uEAKuE;AACvE,wBAAgB,aAAa,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,WAAW,CA4C/E;AAED;;;;;8DAK8D;AAC9D,wBAAgB,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAWpD;AAED,iEAAiE;AACjE,wBAAgB,YAAY,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAaxD"}
package/dist/config.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { userInfo } from "node:os";
2
2
  import { readFileSync } from "node:fs";
3
- import { DEFAULT_SERVER, loadAgentFile, parseJoinLink } from "@cotal-ai/core";
3
+ import { DEFAULT_SERVER, assertValidChannel, channelInAllow, loadAgentFile, parseJoinLink } from "@cotal-ai/core";
4
4
  /** Keyed beta intake — used when a `COTAL_FEEDBACK_KEY` is configured. */
5
5
  export const FEEDBACK_URL = "https://broker.cotal.ai/v1/feedback";
6
6
  /** Public hosted intake — used without a key; requires a contact email. */
@@ -34,9 +34,20 @@ export function configFromEnv(env = process.env) {
34
34
  const name = env.COTAL_NAME?.trim() || def?.name || (link ? userInfo().username : undefined);
35
35
  if (!name)
36
36
  throw new Error("COTAL_NAME, COTAL_AGENT_FILE or COTAL_LINK is required — a Cotal session needs an explicit identity from its launcher");
37
- const channels = splitList(env.COTAL_CHANNELS);
38
- const resolvedChannels = channels.length ? channels : (def?.channels ?? link?.channels ?? ["general"]);
39
- const publish = splitList(env.COTAL_PUBLISH);
37
+ const subscribe = splitList(env.COTAL_SUBSCRIBE);
38
+ const resolvedSubscribe = subscribe.length ? subscribe : (def?.subscribe ?? link?.channels ?? ["general"]);
39
+ const allowSub = splitList(env.COTAL_ALLOW_SUBSCRIBE);
40
+ const resolvedAllowSub = allowSub.length ? allowSub : (def?.allowSubscribe ?? resolvedSubscribe);
41
+ // Fail loud on an inconsistent env override (the agent-file loader already checks the file): the
42
+ // active read set must be within the read ACL, or the agent would subscribe to what it can't read.
43
+ for (const ch of resolvedSubscribe)
44
+ if (!channelInAllow(resolvedAllowSub, ch))
45
+ throw new Error(`COTAL config: subscribe channel "${ch}" is not within allowSubscribe [${resolvedAllowSub.join(", ")}]`);
46
+ const allowPub = splitList(env.COTAL_ALLOW_PUBLISH);
47
+ const resolvedAllowPub = allowPub.length ? allowPub : (def?.allowPublish ?? []);
48
+ // Reject channel names the wire layer would rewrite (env overrides bypass the file loader's check).
49
+ for (const ch of [...resolvedSubscribe, ...resolvedAllowSub, ...resolvedAllowPub])
50
+ assertValidChannel(ch);
40
51
  const credsPath = env.COTAL_CREDS?.trim();
41
52
  return {
42
53
  space: env.COTAL_SPACE?.trim() || link?.space || "demo",
@@ -47,8 +58,11 @@ export function configFromEnv(env = process.env) {
47
58
  description: def?.description,
48
59
  tags: def?.tags,
49
60
  servers: env.COTAL_SERVERS?.trim() || link?.servers || DEFAULT_SERVER,
50
- channels: resolvedChannels,
51
- publish: publish.length ? publish : (def?.publish ?? resolvedChannels),
61
+ subscribe: resolvedSubscribe,
62
+ allowSubscribe: resolvedAllowSub,
63
+ // Post ACL is default-DENY: only what's explicitly declared (env > agent-file). The broker
64
+ // enforces it under auth; in open mode posting is unrestricted regardless (see laneLine).
65
+ allowPublish: resolvedAllowPub,
52
66
  kind: env.COTAL_KIND?.trim() || def?.kind || "agent",
53
67
  token: env.COTAL_TOKEN?.trim() || link?.token,
54
68
  user: link?.user,
@@ -60,12 +74,19 @@ export function configFromEnv(env = process.env) {
60
74
  }
61
75
  /** One sentence telling the agent its channel lanes — what it reads and where it may post —
62
76
  * so it knows its scope up front instead of discovering it from inbound tags and send errors.
63
- * Folded into each connector's MCP `instructions`. Publish outside the lane is rejected by the
64
- * broker (auth mode), so state it plainly. */
77
+ * Folded into each connector's MCP `instructions`. It must match the broker truth: under auth the
78
+ * post ACL is default-deny, so an undeclared agent genuinely cannot post (state it plainly rather
79
+ * than promise a lane the broker will reject). In open mode there is no cred, so posting is
80
+ * unrestricted regardless of the (display-only) post ACL. */
65
81
  export function laneLine(config) {
66
82
  const fmt = (cs) => cs.map((c) => `#${c}`).join(", ");
67
- const subs = config.channels;
68
- const pubs = config.publish.length ? config.publish : config.channels;
83
+ const subs = config.subscribe;
84
+ // Open mode (no creds) nothing is enforced; the agent reads and posts to its channels freely.
85
+ if (!config.creds)
86
+ return `You read and may post to ${fmt(subs)}. `;
87
+ const pubs = config.allowPublish;
88
+ if (!pubs.length)
89
+ return `You read ${fmt(subs)}; you may not post to any channel (no publish channels granted). `;
69
90
  const same = subs.length === pubs.length && subs.every((c) => pubs.includes(c));
70
91
  return same
71
92
  ? `You read and may post to ${fmt(subs)}. `
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAoC,MAAM,gBAAgB,CAAC;AAEhH,0EAA0E;AAC1E,MAAM,CAAC,MAAM,YAAY,GAAG,qCAAqC,CAAC;AAClE,2EAA2E;AAC3E,MAAM,CAAC,MAAM,mBAAmB,GAAG,8BAA8B,CAAC;AAqClE,SAAS,SAAS,CAAC,CAAqB;IACtC,IAAI,CAAC,CAAC;QAAE,OAAO,EAAE,CAAC;IAClB,OAAO,CAAC;SACL,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,OAAO,CAAC,CAAC;AACrB,CAAC;AAED;;;uBAGuB;AACvB,MAAM,UAAU,WAAW,CAAC,MAAyB,OAAO,CAAC,GAAG;IAC9D,OAAO,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC;AACnG,CAAC;AAED;;;;;uEAKuE;AACvE,MAAM,UAAU,aAAa,CAAC,MAAyB,OAAO,CAAC,GAAG;IAChE,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACvF,MAAM,GAAG,GAAyB,GAAG,CAAC,gBAAgB,EAAE,IAAI,EAAE;QAC5D,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;QAC5C,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC7F,IAAI,CAAC,IAAI;QACP,MAAM,IAAI,KAAK,CAAC,uHAAuH,CAAC,CAAC;IAC3I,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC/C,MAAM,gBAAgB,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,QAAQ,IAAI,IAAI,EAAE,QAAQ,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IACvG,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC7C,MAAM,SAAS,GAAG,GAAG,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;IAC1C,OAAO;QACL,KAAK,EAAE,GAAG,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,KAAK,IAAI,MAAM;QACvD,EAAE,EAAE,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,SAAS;QACrC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;QAC9D,IAAI;QACJ,IAAI,EAAE,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,SAAS;QACtD,WAAW,EAAE,GAAG,EAAE,WAAW;QAC7B,IAAI,EAAE,GAAG,EAAE,IAAI;QACf,OAAO,EAAE,GAAG,CAAC,aAAa,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,OAAO,IAAI,cAAc;QACrE,QAAQ,EAAE,gBAAgB;QAC1B,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,OAAO,IAAI,gBAAgB,CAAC;QACtE,IAAI,EAAG,GAAG,CAAC,UAAU,EAAE,IAAI,EAAmB,IAAI,GAAG,EAAE,IAAI,IAAI,OAAO;QACtE,KAAK,EAAE,GAAG,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,KAAK;QAC7C,IAAI,EAAE,IAAI,EAAE,IAAI;QAChB,IAAI,EAAE,IAAI,EAAE,IAAI;QAChB,GAAG,EAAE,GAAG,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,GAAG,IAAI,IAAI,EAAE,GAAG,IAAI,KAAK;QACxD,WAAW,EAAE,GAAG,CAAC,kBAAkB,EAAE,IAAI,EAAE,IAAI,SAAS;QACxD,WAAW,EAAE,GAAG,CAAC,kBAAkB,EAAE,IAAI,EAAE,IAAI,SAAS;KACzD,CAAC;AACJ,CAAC;AAED;;;+CAG+C;AAC/C,MAAM,UAAU,QAAQ,CAAC,MAAmB;IAC1C,MAAM,GAAG,GAAG,CAAC,EAAY,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChE,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC;IAC7B,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;IACtE,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAChF,OAAO,IAAI;QACT,CAAC,CAAC,4BAA4B,GAAG,CAAC,IAAI,CAAC,IAAI;QAC3C,CAAC,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,0BAA0B,GAAG,CAAC,IAAI,CAAC,2CAA2C,CAAC;AAC1G,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,YAAY,CAAC,MAAmB;IAC9C,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW;QAC7B,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,2FAA2F;YAC3F,sEAAsE,CAAC;IAC3E,OAAO,CACL,mEAAmE;QACnE,4FAA4F;QAC5F,8FAA8F;QAC9F,2FAA2F;QAC3F,qGAAqG;QACrG,IAAI,CACL,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export * from "./config.js";
2
2
  export * from "./agent.js";
3
3
  export * from "./runtime.js";
4
+ export * from "./launch.js";
4
5
  export * from "./tool-specs.js";
5
6
  export * from "./tools.js";
6
7
  export * from "./control.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -1,6 +1,7 @@
1
1
  export * from "./config.js";
2
2
  export * from "./agent.js";
3
3
  export * from "./runtime.js";
4
+ export * from "./launch.js";
4
5
  export * from "./tool-specs.js";
5
6
  export * from "./tools.js";
6
7
  export * from "./control.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * The spawned-agent env allow-list (P3) — the single chokepoint for what a child process sees.
3
+ *
4
+ * Connectors build the child's env as `{ ...launchEnv(...), <COTAL_* identity>, <connector vars> }`
5
+ * and the runtimes pass ONLY that (never `...process.env`). So the operator's *unrelated* env
6
+ * (AWS creds, GH tokens, other service keys sitting in their shell) stops bleeding into every
7
+ * spawned child. What a child sees is auditable from the spec, not "whatever the manager
8
+ * inherited."
9
+ *
10
+ * Scope this is HONEST about (P6): it closes ENV-VAR bleed. It does NOT close (i) model-key
11
+ * exfil for key-based providers — the agent holds the key in its own process to do inference, so
12
+ * a compromised agent exfils from its OWN env, spawn-gating the key only breaks the child's LLM
13
+ * function (the real fix is per-agent model auth, a separate roadmap item); nor (ii) filesystem
14
+ * secret access — HOME / XDG / platform config dirs are forwarded, so a child can still read
15
+ * ~/.aws / ~/.ssh / ~/.config off disk (needs a workspace sandbox, a separate control).
16
+ */
17
+ import type { McpServerSpec } from "@cotal-ai/core";
18
+ /** Model-provider API keys a key-based connector may forward to its child. claude needs none
19
+ * (macOS Keychain / OAuth token, not an env key) → strong isolation for free; opencode/hermes
20
+ * need the key for the provider behind the agent's model → forward just these, by NAME, only if
21
+ * present. This is the single chokepoint for model-key forwarding — the seam for spawner-
22
+ * conditional gating (per-agent model auth) later. Never `...process.env`. */
23
+ export declare const MODEL_PROVIDER_KEYS: readonly ["OPENCODE_API_KEY", "ANTHROPIC_API_KEY", "OPENAI_API_KEY", "OPENROUTER_API_KEY", "NOUS_API_KEY"];
24
+ /** Build the base env a spawned agent runs with: the OS allow-list plus any named keys the
25
+ * connector declares the agent needs — `providerKeys` (the model-provider key) and `mcpKeys`
26
+ * (the `${VAR}` secrets a shared MCP server references, see {@link mcpServerEnvKeys}). Every
27
+ * entry is copied from the manager's env BY NAME and only when present — never required, never
28
+ * spread wholesale, so the operator's unrelated secrets don't bleed into the child (P3). */
29
+ export declare function launchEnv(opts?: {
30
+ providerKeys?: readonly string[];
31
+ mcpKeys?: readonly string[];
32
+ }): Record<string, string>;
33
+ /** The environment-variable NAMES a set of shared MCP server specs reference via `${VAR}` /
34
+ * `${VAR:-default}` (in command/args/env/url/headers). The single source of which operator vars
35
+ * a shared server needs: forwarded BY NAME through {@link launchEnv} (`mcpKeys`), never
36
+ * `...process.env`, so secret keys keep living in the operator's env (and the `.mcp.json`-style
37
+ * config stays a `${VAR}` reference, not a plaintext secret). */
38
+ export declare function mcpServerEnvKeys(servers: Record<string, McpServerSpec>): string[];
39
+ //# sourceMappingURL=launch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"launch.d.ts","sourceRoot":"","sources":["../src/launch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAsCpD;;;;+EAI+E;AAC/E,eAAO,MAAM,mBAAmB,4GAMtB,CAAC;AAEX;;;;6FAI6F;AAC7F,wBAAgB,SAAS,CACvB,IAAI,GAAE;IAAE,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAAO,GAC3E,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAWxB;AAED;;;;kEAIkE;AAClE,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,MAAM,EAAE,CAcjF"}
package/dist/launch.js ADDED
@@ -0,0 +1,93 @@
1
+ /** OS env a coding-agent TUI genuinely needs to run — find its binary (PATH), render (TERM /
2
+ * COLORTERM), resolve home/config/data roots (HOME / XDG_*_HOME on Unix,
3
+ * USERPROFILE / APPDATA / LOCALAPPDATA on Windows), locale (LANG / LC_*), timezone (TZ), temp
4
+ * dirs, session/runtime dir (XDG_RUNTIME_DIR), and the shell it may invoke. NOT a model key,
5
+ * NOT an operator secret. A fixed, named allow-list. */
6
+ const OS_ENV_ALLOW = [
7
+ "PATH",
8
+ "HOME",
9
+ "USERPROFILE",
10
+ "HOMEDRIVE",
11
+ "HOMEPATH",
12
+ "USER",
13
+ "LOGNAME",
14
+ "SHELL",
15
+ "COMSPEC",
16
+ "PATHEXT",
17
+ "TERM",
18
+ "COLORTERM",
19
+ "COLORFGBG",
20
+ "LANG",
21
+ "LC_ALL",
22
+ "LC_CTYPE",
23
+ "LC_MESSAGES",
24
+ "TZ",
25
+ "TEMP",
26
+ "TMPDIR",
27
+ "TMP",
28
+ "XDG_CONFIG_HOME",
29
+ "XDG_DATA_HOME",
30
+ "XDG_STATE_HOME",
31
+ "XDG_CACHE_HOME",
32
+ "APPDATA",
33
+ "LOCALAPPDATA",
34
+ "XDG_RUNTIME_DIR",
35
+ ];
36
+ /** Model-provider API keys a key-based connector may forward to its child. claude needs none
37
+ * (macOS Keychain / OAuth token, not an env key) → strong isolation for free; opencode/hermes
38
+ * need the key for the provider behind the agent's model → forward just these, by NAME, only if
39
+ * present. This is the single chokepoint for model-key forwarding — the seam for spawner-
40
+ * conditional gating (per-agent model auth) later. Never `...process.env`. */
41
+ export const MODEL_PROVIDER_KEYS = [
42
+ "OPENCODE_API_KEY",
43
+ "ANTHROPIC_API_KEY",
44
+ "OPENAI_API_KEY",
45
+ "OPENROUTER_API_KEY",
46
+ "NOUS_API_KEY",
47
+ ];
48
+ /** Build the base env a spawned agent runs with: the OS allow-list plus any named keys the
49
+ * connector declares the agent needs — `providerKeys` (the model-provider key) and `mcpKeys`
50
+ * (the `${VAR}` secrets a shared MCP server references, see {@link mcpServerEnvKeys}). Every
51
+ * entry is copied from the manager's env BY NAME and only when present — never required, never
52
+ * spread wholesale, so the operator's unrelated secrets don't bleed into the child (P3). */
53
+ export function launchEnv(opts = {}) {
54
+ const env = {};
55
+ for (const k of OS_ENV_ALLOW) {
56
+ const v = process.env[k];
57
+ if (v !== undefined)
58
+ env[k] = v;
59
+ }
60
+ for (const k of [...(opts.providerKeys ?? []), ...(opts.mcpKeys ?? [])]) {
61
+ const v = process.env[k];
62
+ if (v !== undefined)
63
+ env[k] = v;
64
+ }
65
+ return env;
66
+ }
67
+ /** The environment-variable NAMES a set of shared MCP server specs reference via `${VAR}` /
68
+ * `${VAR:-default}` (in command/args/env/url/headers). The single source of which operator vars
69
+ * a shared server needs: forwarded BY NAME through {@link launchEnv} (`mcpKeys`), never
70
+ * `...process.env`, so secret keys keep living in the operator's env (and the `.mcp.json`-style
71
+ * config stays a `${VAR}` reference, not a plaintext secret). */
72
+ export function mcpServerEnvKeys(servers) {
73
+ const names = new Set();
74
+ const scan = (s) => {
75
+ if (!s)
76
+ return;
77
+ for (const m of s.matchAll(/\$\{([A-Za-z_][A-Za-z0-9_]*)(?::-[^}]*)?\}/g))
78
+ names.add(m[1]);
79
+ };
80
+ for (const spec of Object.values(servers)) {
81
+ scan(spec.command);
82
+ spec.args?.forEach(scan);
83
+ if (spec.env)
84
+ for (const v of Object.values(spec.env))
85
+ scan(v);
86
+ scan(spec.url);
87
+ if (spec.headers)
88
+ for (const v of Object.values(spec.headers))
89
+ scan(v);
90
+ }
91
+ return [...names];
92
+ }
93
+ //# sourceMappingURL=launch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"launch.js","sourceRoot":"","sources":["../src/launch.ts"],"names":[],"mappings":"AAkBA;;;;yDAIyD;AACzD,MAAM,YAAY,GAAG;IACnB,MAAM;IACN,MAAM;IACN,aAAa;IACb,WAAW;IACX,UAAU;IACV,MAAM;IACN,SAAS;IACT,OAAO;IACP,SAAS;IACT,SAAS;IACT,MAAM;IACN,WAAW;IACX,WAAW;IACX,MAAM;IACN,QAAQ;IACR,UAAU;IACV,aAAa;IACb,IAAI;IACJ,MAAM;IACN,QAAQ;IACR,KAAK;IACL,iBAAiB;IACjB,eAAe;IACf,gBAAgB;IAChB,gBAAgB;IAChB,SAAS;IACT,cAAc;IACd,iBAAiB;CACT,CAAC;AAEX;;;;+EAI+E;AAC/E,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,kBAAkB;IAClB,mBAAmB;IACnB,gBAAgB;IAChB,oBAAoB;IACpB,cAAc;CACN,CAAC;AAEX;;;;6FAI6F;AAC7F,MAAM,UAAU,SAAS,CACvB,OAA0E,EAAE;IAE5E,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,KAAK,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC;QAC7B,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACzB,IAAI,CAAC,KAAK,SAAS;YAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;QACxE,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACzB,IAAI,CAAC,KAAK,SAAS;YAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;kEAIkE;AAClE,MAAM,UAAU,gBAAgB,CAAC,OAAsC;IACrE,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,MAAM,IAAI,GAAG,CAAC,CAAqB,EAAQ,EAAE;QAC3C,IAAI,CAAC,CAAC;YAAE,OAAO;QACf,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,6CAA6C,CAAC;YAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7F,CAAC,CAAC;IACF,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1C,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnB,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QACzB,IAAI,IAAI,CAAC,GAAG;YAAE,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;gBAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QAC/D,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACf,IAAI,IAAI,CAAC,OAAO;YAAE,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;gBAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IACzE,CAAC;IACD,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;AACpB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"tool-specs.d.ts","sourceRoot":"","sources":["../src/tool-specs.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EAAqC,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAElF;yDACyD;AACzD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAKD,0DAA0D;AAC1D,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,yFAAyF;IACzF,MAAM,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC;IACvB,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC;CACzF;AAqBD,2DAA2D;AAC3D,wBAAgB,OAAO,CAAC,CAAC,EAAE,SAAS,GAAG,MAAM,CAE5C;AA2CD,+FAA+F;AAC/F,wBAAgB,WAAW,CAAC,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAQhE;AAED;+DAC+D;AAC/D,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,SAAc,GAAG,aAAa,EAAE,CAiZzF"}
1
+ {"version":3,"file":"tool-specs.d.ts","sourceRoot":"","sources":["../src/tool-specs.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EAAqC,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAElF;yDACyD;AACzD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAqBD,0DAA0D;AAC1D,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,yFAAyF;IACzF,MAAM,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC;IACvB,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC;CACzF;AAqBD,2DAA2D;AAC3D,wBAAgB,OAAO,CAAC,CAAC,EAAE,SAAS,GAAG,MAAM,CAE5C;AA2CD,+FAA+F;AAC/F,wBAAgB,WAAW,CAAC,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAQhE;AAED;+DAC+D;AAC/D,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,SAAc,GAAG,aAAa,EAAE,CAwZzF"}
@@ -9,10 +9,23 @@
9
9
  */
10
10
  import { execFileSync } from "node:child_process";
11
11
  import { z } from "zod";
12
- import { isConcreteChannel } from "@cotal-ai/core";
12
+ import { isConcreteChannel, channelInAllow, AmbiguousPeerError, isPermissionDenied } from "@cotal-ai/core";
13
13
  import { FEEDBACK_URL, PUBLIC_FEEDBACK_URL } from "./config.js";
14
14
  const ok = (text) => ({ text });
15
15
  const err = (text) => ({ text, isError: true });
16
+ /** Error for a failed privileged control request (spawn / despawn-other / definePersona). A
17
+ * *permission denial* — this session's creds can't publish to the manager control subject
18
+ * because its persona lacks `capabilities: [spawn]` — is a different failure with a different
19
+ * fix than an *absent/unreachable manager*. Report them apart instead of always blaming the
20
+ * manager (which sent the operator chasing a non-existent "manager down"). */
21
+ function controlFailure(action, e) {
22
+ const detail = e?.message ?? String(e);
23
+ if (isPermissionDenied(e)) {
24
+ return err(`${action}: this session isn't allowed to — its persona needs \`capabilities: [spawn]\` ` +
25
+ `(which grants the privileged manager control subject). Add it and respawn so its creds re-mint. [${detail}]`);
26
+ }
27
+ return err(`${action}: no manager reachable (${detail}). Is the manager running?`);
28
+ }
16
29
  function statusGlyph(s) {
17
30
  return s === "working" ? "●" : s === "waiting" ? "◐" : s === "idle" ? "○" : "·";
18
31
  }
@@ -101,12 +114,20 @@ export function cotalToolSpecs(config, source = "connector") {
101
114
  const roster = agent.roster();
102
115
  if (!roster.length)
103
116
  return ok(`No one is present in "${config.space}" yet.`);
117
+ // Names aren't unique. Where one repeats, append the instance id so a DM can target the
118
+ // exact peer (the id is the only authoritative address); keep unique rows clean.
119
+ const counts = new Map();
120
+ for (const p of roster) {
121
+ const n = p.card.name.toLowerCase();
122
+ counts.set(n, (counts.get(n) ?? 0) + 1);
123
+ }
104
124
  const lines = roster.map((p) => {
105
125
  const who = p.card.role ? `${p.card.name}/${p.card.role}` : p.card.name;
106
126
  const me = p.card.id === agent.id
107
127
  ? ` (you${agent.attention !== "open" ? `, ${agent.attention}` : ""})`
108
128
  : "";
109
- return `${statusGlyph(p.status)} ${who} ${p.status}${p.activity ? `: ${p.activity}` : ""}${me}`;
129
+ const id = (counts.get(p.card.name.toLowerCase()) ?? 0) > 1 ? ` — id: ${p.card.id}` : "";
130
+ return `${statusGlyph(p.status)} ${who} — ${p.status}${p.activity ? `: ${p.activity}` : ""}${me}${id}`;
110
131
  });
111
132
  return ok(`Present in "${config.space}" (${roster.length}):\n${lines.join("\n")}`);
112
133
  },
@@ -154,7 +175,7 @@ export function cotalToolSpecs(config, source = "connector") {
154
175
  channel: z
155
176
  .string()
156
177
  .optional()
157
- .describe(`Channel to send on (default: ${config.channels.find(isConcreteChannel) ?? "general"}). Concrete only — not a wildcard like team.>; reply on the channel you received a message on.`),
178
+ .describe(`Channel to send on (default: ${config.subscribe.find(isConcreteChannel) ?? "general"}). Concrete only — not a wildcard like team.>; reply on the channel you received a message on.`),
158
179
  mentions: z
159
180
  .array(z.string())
160
181
  .optional()
@@ -184,6 +205,13 @@ export function cotalToolSpecs(config, source = "connector") {
184
205
  return ok(`DM sent to ${peer.card.name}.`);
185
206
  }
186
207
  catch (e) {
208
+ if (e instanceof AmbiguousPeerError) {
209
+ const who = e.candidates
210
+ .map((c) => ` • ${c.name}${c.role ? `/${c.role}` : ""} (${c.status}) — id: ${c.id}`)
211
+ .join("\n");
212
+ return err(`"${e.target}" is ambiguous — ${e.candidates.length} peers share that name. ` +
213
+ `Re-send cotal_dm with the exact instance id as "to":\n${who}`);
214
+ }
187
215
  return err(`Couldn't DM: ${e.message}`);
188
216
  }
189
217
  },
@@ -276,11 +304,15 @@ export function cotalToolSpecs(config, source = "connector") {
276
304
  {
277
305
  name: "cotal_join",
278
306
  title: "Cotal: join a channel",
279
- description: "Subscribe to a channel mid-session. Returns its registry info; if the channel replays, recent history is delivered to your inbox marked as catch-up (it pre-dates your join — don't treat it as live). Idempotent.",
307
+ description: "Subscribe to a channel mid-session. Returns its registry info; if the channel replays, recent history is delivered to your inbox marked as catch-up (it pre-dates your join — don't treat it as live). Idempotent. Bounded by your read ACL: a channel outside it is refused.",
280
308
  schema: {
281
309
  channel: z.string().describe("The channel to join (e.g. incident)."),
282
310
  },
283
311
  async run(agent, _config, { channel }) {
312
+ // Bound by the read ACL before touching the mesh — a clear refusal beats a broker/manager
313
+ // rejection. (Auth mode also enforces this server-side; this is the friendly client gate.)
314
+ if (!channelInAllow(config.allowSubscribe, channel))
315
+ return err(`Can't join #${channel}: it's outside your read ACL (allowSubscribe: ${config.allowSubscribe.map((c) => `#${c}`).join(", ")}).`);
284
316
  try {
285
317
  const r = await agent.joinChannel(channel);
286
318
  if (!r.joined)
@@ -318,7 +350,7 @@ export function cotalToolSpecs(config, source = "connector") {
318
350
  title: "Cotal: spawn a new teammate",
319
351
  description: "Ask the manager to start a new peer endpoint in your space. It joins the mesh as a lateral peer (and, when the manager runs the cmux runtime, appears in its own tab). Use when the team needs another agent.",
320
352
  schema: {
321
- name: z.string().describe("Unique name for the new peer."),
353
+ name: z.string().describe("Name for the new peer; auto-numbered (e.g. reviewer-2) if taken."),
322
354
  role: z
323
355
  .string()
324
356
  .optional()
@@ -329,11 +361,17 @@ export function cotalToolSpecs(config, source = "connector") {
329
361
  const reply = await agent.spawn(name, role);
330
362
  if (!reply.ok)
331
363
  return err(`Couldn't spawn ${name}: ${reply.error ?? "manager refused"}`);
332
- const mode = reply.data?.mode;
333
- return ok(`Spawning ${role ? `${name}/${role}` : name}${mode ? ` (${mode})` : ""} it will appear in the roster shortly.`);
364
+ const d = reply.data;
365
+ const actual = d?.name ?? name; // the manager auto-numbers on a collision report what it spawned
366
+ const mode = d?.mode;
367
+ const who = role ? `${actual}/${role}` : actual;
368
+ // Make the rename unmissable: a colliding caller must see it asked for `name` but got
369
+ // `actual`, not silently address the wrong peer later (the tool result is the only channel).
370
+ const lead = actual !== name ? `"${name}" was taken — spawning ${who} instead` : `Spawning ${who}`;
371
+ return ok(`${lead}${mode ? ` (${mode})` : ""} — it will appear in the roster shortly.`);
334
372
  }
335
373
  catch (e) {
336
- return err(`Couldn't spawn ${name}: no manager reachable (${e.message}). Is the manager running?`);
374
+ return controlFailure(`Couldn't spawn ${name}`, e);
337
375
  }
338
376
  },
339
377
  },
@@ -401,9 +439,12 @@ export function cotalToolSpecs(config, source = "connector") {
401
439
  {
402
440
  name: "cotal_despawn",
403
441
  title: "Cotal: stop a teammate",
404
- description: "Ask the manager to tear a teammate down — it leaves the mesh and its process/tab is closed. Graceful by default (the session exits cleanly first); pass graceful:false for a hard, immediate kill. The inverse of cotal_spawn.",
442
+ description: "Ask the manager to tear a teammate down — it leaves the mesh and its process/tab is closed. Graceful by default (the session exits cleanly first); pass graceful:false for a hard, immediate kill. The inverse of cotal_spawn. Omit `name` to stop yourself (self-despawn): the manager resolves the target as your own managed entry, so it can only ever stop you, never a peer.",
405
443
  schema: {
406
- name: z.string().describe("Name of the peer to stop."),
444
+ name: z
445
+ .string()
446
+ .optional()
447
+ .describe("Name of the peer to stop. Omit to stop yourself (self-despawn)."),
407
448
  graceful: z
408
449
  .boolean()
409
450
  .optional()
@@ -412,66 +453,50 @@ export function cotalToolSpecs(config, source = "connector") {
412
453
  async run(agent, _config, { name, graceful }) {
413
454
  try {
414
455
  const reply = await agent.despawn(name, { graceful });
415
- if (!reply.ok)
416
- return err(`Couldn't despawn ${name}: ${reply.error ?? "manager refused"}`);
417
- return ok(`Stopping ${name}${graceful === false ? " (hard)" : ""} — it will leave the roster shortly.`);
456
+ if (!reply.ok) {
457
+ return err(`Couldn't despawn ${name ?? "self"}: ${reply.error ?? "manager refused"}`);
458
+ }
459
+ const who = name ?? "self";
460
+ return ok(`Stopping ${who}${graceful === false ? " (hard)" : ""} — it will leave the roster shortly.`);
418
461
  }
419
462
  catch (e) {
420
- return err(`Couldn't despawn ${name}: no manager reachable (${e.message}). Is the manager running?`);
421
- }
422
- },
423
- },
424
- {
425
- name: "cotal_purge",
426
- title: "Cotal: clear chat history",
427
- description: "Ask the manager to purge this space's retained chat backlog (channel history). Set includeDms to also clear direct-message history. Cleanup only — it does not affect live agents or the anycast work queue. Irreversible.",
428
- schema: {
429
- includeDms: z
430
- .boolean()
431
- .optional()
432
- .describe("Default false: channel history only. true = also purge DM history."),
433
- },
434
- async run(agent, _config, { includeDms }) {
435
- try {
436
- const reply = await agent.purgeHistory({ includeDms });
437
- if (!reply.ok)
438
- return err(`Couldn't purge history: ${reply.error ?? "manager refused"}`);
439
- const d = reply.data;
440
- const chat = d?.chat ?? 0;
441
- const dm = d?.dm;
442
- return ok(`Cleared ${chat} channel message${chat === 1 ? "" : "s"}` +
443
- `${dm === undefined ? "" : ` and ${dm} DM${dm === 1 ? "" : "s"}`} from "${_config.space}".`);
444
- }
445
- catch (e) {
446
- return err(`Couldn't purge history: no manager reachable (${e.message}). Is the manager running?`);
463
+ return controlFailure(`Couldn't despawn ${name ?? "self"}`, e);
447
464
  }
448
465
  },
449
466
  },
450
467
  {
451
468
  name: "cotal_persona",
452
469
  title: "Cotal: define a persona",
453
- description: "Define a new persona and save it as config (the manager writes .cotal/agents/<name>.md), then announce it on the mesh. Afterwards cotal_spawn(name) launches a real agent wearing this persona/model. Use to grow the team with a custom role you describe on the fly.",
470
+ description: "Define a new persona and save it as config (the manager writes .cotal/agents/<name>.md), then announce it on the mesh. Afterwards cotal_spawn(name) launches a real agent wearing this persona/model. Use to grow the team with a custom persona you describe on the fly; set its role at spawn (cotal_spawn takes a role).",
454
471
  schema: {
455
472
  name: z
456
473
  .string()
457
474
  .regex(/^[A-Za-z0-9_-]+$/, "letters, digits, _ or - only")
458
475
  .describe("Unique name for the persona (also the spawn name): letters, digits, _ or -."),
459
476
  prompt: z.string().max(10_000).describe("The persona — an appended system prompt describing who this agent is."),
460
- role: z.string().max(120).optional().describe("Optional role label (e.g. reviewer, scout)."),
461
477
  model: z.string().max(120).optional().describe("Optional model override (e.g. opus, sonnet)."),
462
478
  },
463
- async run(agent, _config, { name, prompt, role, model }) {
479
+ async run(agent, _config, { name, prompt, model }) {
464
480
  try {
465
- const reply = await agent.definePersona({ name, prompt, role, model });
481
+ const reply = await agent.definePersona({ name, prompt, model });
466
482
  if (!reply.ok)
467
483
  return err(`Couldn't define ${name}: ${reply.error ?? "manager refused"}`);
468
484
  return ok(`Persona \`${name}\` saved — spawn it with cotal_spawn(name="${name}") to bring it online.`);
469
485
  }
470
486
  catch (e) {
471
- return err(`Couldn't define ${name}: no manager reachable (${e.message}). Is the manager running?`);
487
+ return controlFailure(`Couldn't define ${name}`, e);
472
488
  }
473
489
  },
474
490
  },
491
+ {
492
+ name: "cotal_reconnect",
493
+ title: "Cotal: reconnect to the mesh",
494
+ description: "Tear down and rebuild this session's mesh connection in-process — the manual recovery path when the connection has wedged (the counterpart to Claude Code's /mcp reconnect, and a complement to the automatic self-heal). Zero-argument; local only — it does not ride the mesh link. Returns a one-line status (Reconnected ✓ / Reconnect failed — still retrying automatically, or this session is shutting down).",
495
+ async run(agent) {
496
+ const r = await agent.reconnect();
497
+ return r.ok ? ok(r.message) : err(r.message);
498
+ },
499
+ },
475
500
  ];
476
501
  }
477
502
  //# sourceMappingURL=tool-specs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tool-specs.js","sourceRoot":"","sources":["../src/tool-specs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-specs.js","sourceRoot":"","sources":["../src/tool-specs.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "@cotal-ai/connector-core",
3
- "version": "0.3.2",
3
+ "description": "Shared MCP-bridge runtime for Cotal connectors: the mesh agent, cotal_* tools, and hook relay.",
4
+ "version": "0.4.0",
4
5
  "license": "Apache-2.0",
5
6
  "repository": {
6
7
  "type": "git",
@@ -24,7 +25,7 @@
24
25
  "@cotal-ai/core": ">=0.1.0"
25
26
  },
26
27
  "devDependencies": {
27
- "@cotal-ai/core": "0.3.2"
28
+ "@cotal-ai/core": "0.4.0"
28
29
  },
29
30
  "files": [
30
31
  "dist"