@cotal-ai/cli 0.36.0 → 0.38.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.
Files changed (98) hide show
  1. package/dist/commands/agents.js +1 -1
  2. package/dist/commands/agents.js.map +1 -1
  3. package/dist/commands/backup.d.ts.map +1 -1
  4. package/dist/commands/backup.js +4 -1
  5. package/dist/commands/backup.js.map +1 -1
  6. package/dist/commands/clean.d.ts +1 -1
  7. package/dist/commands/clean.d.ts.map +1 -1
  8. package/dist/commands/clean.js +8 -7
  9. package/dist/commands/clean.js.map +1 -1
  10. package/dist/commands/down.d.ts +10 -2
  11. package/dist/commands/down.d.ts.map +1 -1
  12. package/dist/commands/down.js +21 -10
  13. package/dist/commands/down.js.map +1 -1
  14. package/dist/commands/endpoints.d.ts +1 -1
  15. package/dist/commands/endpoints.d.ts.map +1 -1
  16. package/dist/commands/endpoints.js +1 -0
  17. package/dist/commands/endpoints.js.map +1 -1
  18. package/dist/commands/ext.d.ts.map +1 -1
  19. package/dist/commands/ext.js +3 -1
  20. package/dist/commands/ext.js.map +1 -1
  21. package/dist/commands/join.d.ts.map +1 -1
  22. package/dist/commands/join.js +5 -1
  23. package/dist/commands/join.js.map +1 -1
  24. package/dist/commands/setup.d.ts +34 -8
  25. package/dist/commands/setup.d.ts.map +1 -1
  26. package/dist/commands/setup.js +130 -267
  27. package/dist/commands/setup.js.map +1 -1
  28. package/dist/commands/spawn-manifest.js +5 -5
  29. package/dist/commands/spawn-manifest.js.map +1 -1
  30. package/dist/commands/spawn.d.ts +1 -1
  31. package/dist/commands/spawn.d.ts.map +1 -1
  32. package/dist/commands/spawn.js +8 -2
  33. package/dist/commands/spawn.js.map +1 -1
  34. package/dist/commands/status.d.ts.map +1 -1
  35. package/dist/commands/status.js +44 -18
  36. package/dist/commands/status.js.map +1 -1
  37. package/dist/commands/up.js +10 -10
  38. package/dist/commands/up.js.map +1 -1
  39. package/dist/console/ui/Detail.js +1 -1
  40. package/dist/console/ui/Detail.js.map +1 -1
  41. package/dist/console/ui/Roster.d.ts.map +1 -1
  42. package/dist/console/ui/Roster.js +9 -2
  43. package/dist/console/ui/Roster.js.map +1 -1
  44. package/dist/console/ui/StatusBar.d.ts.map +1 -1
  45. package/dist/console/ui/StatusBar.js +1 -1
  46. package/dist/console/ui/StatusBar.js.map +1 -1
  47. package/dist/index.d.ts.map +1 -1
  48. package/dist/index.js +8 -5
  49. package/dist/index.js.map +1 -1
  50. package/dist/lib/agent-skills.d.ts +4 -4
  51. package/dist/lib/agent-skills.js +4 -4
  52. package/dist/lib/control.d.ts.map +1 -1
  53. package/dist/lib/control.js +3 -2
  54. package/dist/lib/control.js.map +1 -1
  55. package/dist/lib/delivery-proc.d.ts +8 -7
  56. package/dist/lib/delivery-proc.d.ts.map +1 -1
  57. package/dist/lib/delivery-proc.js +51 -36
  58. package/dist/lib/delivery-proc.js.map +1 -1
  59. package/dist/lib/manager-proc.d.ts +16 -10
  60. package/dist/lib/manager-proc.d.ts.map +1 -1
  61. package/dist/lib/manager-proc.js +65 -36
  62. package/dist/lib/manager-proc.js.map +1 -1
  63. package/dist/lib/manifest/live.d.ts.map +1 -1
  64. package/dist/lib/manifest/live.js +3 -0
  65. package/dist/lib/manifest/live.js.map +1 -1
  66. package/dist/lib/status.d.ts +5 -2
  67. package/dist/lib/status.d.ts.map +1 -1
  68. package/dist/lib/status.js +8 -5
  69. package/dist/lib/status.js.map +1 -1
  70. package/dist/lib/transient.d.ts.map +1 -1
  71. package/dist/lib/transient.js +1 -0
  72. package/dist/lib/transient.js.map +1 -1
  73. package/dist/lib/version.d.ts +6 -0
  74. package/dist/lib/version.d.ts.map +1 -1
  75. package/dist/lib/version.js +14 -0
  76. package/dist/lib/version.js.map +1 -1
  77. package/dist/render.d.ts.map +1 -1
  78. package/dist/render.js +1 -0
  79. package/dist/render.js.map +1 -1
  80. package/dist/seed/authority.d.ts +5 -1
  81. package/dist/seed/authority.d.ts.map +1 -1
  82. package/dist/seed/authority.js +10 -3
  83. package/dist/seed/authority.js.map +1 -1
  84. package/dist/seed/paths.d.ts +6 -0
  85. package/dist/seed/paths.d.ts.map +1 -1
  86. package/dist/seed/paths.js +21 -15
  87. package/dist/seed/paths.js.map +1 -1
  88. package/dist/seed/reconcile.d.ts.map +1 -1
  89. package/dist/seed/reconcile.js +37 -5
  90. package/dist/seed/reconcile.js.map +1 -1
  91. package/dist/ui.js +1 -1
  92. package/dist/ui.js.map +1 -1
  93. package/dist/view/mesh-view.d.ts +4 -0
  94. package/dist/view/mesh-view.d.ts.map +1 -1
  95. package/dist/view/mesh-view.js +10 -0
  96. package/dist/view/mesh-view.js.map +1 -1
  97. package/package.json +5 -4
  98. package/cotal-skills/.claude-plugin/plugin.json +0 -6
@@ -1,11 +1,11 @@
1
1
  import { spawnSync } from "node:child_process";
2
- import { cpSync, existsSync, mkdirSync, readdirSync, readFileSync, renameSync, rmSync, writeFileSync } from "node:fs";
3
- import { dirname, join, resolve } from "node:path";
2
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
3
+ import { dirname, join } from "node:path";
4
4
  import * as p from "@clack/prompts";
5
- import {} from "@cotal-ai/core";
5
+ import { registry } from "@cotal-ai/core";
6
6
  import { homeCotalDir, installedExtensionVersion, loadExtensionsManifest, manifestExtensionNames, provenance } from "@cotal-ai/workspace";
7
7
  import { materializeExtension } from "../ext-loader.js";
8
- import { agentSkillsHome, canonicalSkillNames, installAgentSkills } from "../lib/agent-skills.js";
8
+ import { agentSkillsHome, canonicalSkillNames, canonicalSkillsDir, installAgentSkills } from "../lib/agent-skills.js";
9
9
  import { cliVersion } from "../lib/version.js";
10
10
  import { brand, brandBold, dim, ok, note, splash } from "../lib/theme.js";
11
11
  import { runSteps } from "../lib/steps.js";
@@ -19,7 +19,6 @@ import { cotalOnPath, displayCmd, isNpx, selfArgv } from "../lib/self-exec.js";
19
19
  import { cotalPath } from "../lib/paths.js";
20
20
  const ONBOARD_VERSION = "2";
21
21
  const README_URL = "https://github.com/Cotal-AI/Cotal/blob/main/README.md";
22
- const CC_DOCS_URL = "https://github.com/Cotal-AI/Cotal/blob/main/docs/connect-claude.md";
23
22
  const NATS_RELEASES_URL = "https://github.com/nats-io/nats-server/releases";
24
23
  /** `cotal setup`'s grammar — configure-only knobs. The old `--auth`/`--open` flags configured the
25
24
  * MESH MODE at setup-launch time; setup no longer launches anything, so both are gone here —
@@ -29,6 +28,7 @@ export const setupFlags = [
29
28
  { name: "full", type: "boolean", description: "redo the full guided flow (implies --demo)" },
30
29
  { name: "demo", type: "boolean", description: "also seed the guided expert team (david, sven, me)" },
31
30
  { name: "yes", type: "boolean", short: "y", description: "non-interactive accept-all (agents/CI)" },
31
+ { name: "skills", type: "boolean", description: "reconcile Cotal skills through installed connector providers and ~/.agents/skills; no personas or onboard writes" },
32
32
  ];
33
33
  /**
34
34
  * `cotal setup`: guided setup — CONFIGURE-ONLY, state-independent. It checks prerequisites,
@@ -42,12 +42,25 @@ export const setupFlags = [
42
42
  */
43
43
  export async function setup(args) {
44
44
  const values = args.values;
45
+ if (values.skills) {
46
+ if (values.full || values.demo)
47
+ throw new Error("--skills cannot be combined with --full or --demo");
48
+ await runSkillsOnly();
49
+ return;
50
+ }
45
51
  const demo = Boolean(values.demo) || Boolean(values.full); // --full is the whole guided flow ⇒ team
46
52
  if (!isOnboarded() || values.full || values.yes)
47
53
  await runFirstRun(Boolean(values.yes), demo);
48
54
  else
49
55
  await runEnsure(demo);
50
56
  }
57
+ /** Skills-only write for the status card: let installed connectors reconcile their own harness,
58
+ * then reconcile `~/.agents/skills`. Does not seed personas, offer a global install, or write the
59
+ * onboarded stamp. */
60
+ async function runSkillsOnly() {
61
+ await reconcileConnectorSkills();
62
+ seedAgentSkills();
63
+ }
51
64
  /** The full, narrated first-run experience. `yes` = non-interactive accept-all; `demo` also seeds
52
65
  * the guided expert team. Configure-only: prerequisites are CHECKED (never started); the finale
53
66
  * tells the user what to run. */
@@ -83,25 +96,39 @@ async function runFirstRun(yes, demo) {
83
96
  ];
84
97
  if (!(await runSteps(core, log, { yes })))
85
98
  return abort();
86
- // Connectors: which agents should be able to join. Only Claude needs an install
87
- // (its wake channel binds to an installed plugin); OpenCode auto-wires at spawn.
88
- const found = { claude: onPath("claude"), opencode: onPath("opencode") };
89
- const selected = await pickConnectors(found, yes);
90
- if (selected.has("claude")) {
91
- if (!found.claude)
92
- p.log.warn(`claude isn't on PATH. Install it (https://claude.com/claude-code), then re-run ${displayCmd()} setup.`);
93
- else if (!(await runSteps([claudePluginStep()], log, { yes })))
94
- return abort();
95
- }
96
- // The Cotal skills plugin is independent of the mesh connector: install it for ANY Claude Code user
97
- // (its own user-scope plugin), since Claude Code does not read the cross-vendor `.agents/skills` dir.
98
- if (found.claude && !(await runSteps([skillsPluginStep()], log, { yes })))
99
- return abort();
100
- for (const name of ["opencode"]) {
101
- if (selected.has(name) && found[name]) {
102
- p.log.success(`${name} ready (auto-wired when you spawn it)`);
103
- log.line(`connector ${name}: ready (no install)`);
99
+ // Connectors: which agents should be able to join. MEMBERSHIP is the live registry plus the
100
+ // installed extension manifest every connector that declares itself is a choice — and each
101
+ // candidate's hints come from that connector's own declarations (`requires`, `setup`,
102
+ // `pluginRoot`). No connector name is privileged here: the install itself is whatever the
103
+ // connector's own setup provider declares.
104
+ const candidates = setupConnectorCandidates(await setupConnectorSurface());
105
+ const selected = await pickConnectors(candidates, yes);
106
+ for (const candidate of candidates) {
107
+ if (!selected.has(candidate.value))
108
+ continue;
109
+ if (candidate.missing.length) {
110
+ p.log.warn(`${candidate.value} needs ${candidate.missing.join(", ")} on PATH. Install it, then re-run ${displayCmd()} setup.`);
111
+ continue;
112
+ }
113
+ const step = await connectorSetupStep(candidate.connector, "connector");
114
+ if (step) {
115
+ if (!(await runSteps([step], log, { yes })))
116
+ return abort();
104
117
  }
118
+ else {
119
+ p.log.success(`${candidate.value} ready (auto-wired when you spawn it)`);
120
+ log.line(`connector ${candidate.value}: ready (no install)`);
121
+ }
122
+ }
123
+ // A connector's skills action is independent of the mesh connector selection: it runs for every
124
+ // connector whose harness is present, so someone using that harness gets Cotal's authored skills
125
+ // even without joining the mesh through it (Claude Code, for one, does not read `.agents/skills`).
126
+ for (const candidate of candidates) {
127
+ if (candidate.missing.length)
128
+ continue;
129
+ const step = await connectorSetupStep(candidate.connector, "skills");
130
+ if (step && !(await runSteps([step], log, { yes })))
131
+ return abort();
105
132
  }
106
133
  // Your agent: the generic `default` persona a bare `cotal spawn` launches — one agent, yours to
107
134
  // shape. This is the whole first-run default; the guided expert team is opt-in right below.
@@ -195,69 +222,57 @@ function runningVersion() {
195
222
  return null;
196
223
  }
197
224
  }
198
- /** Pick which agent connectors to set up. Detected ones are pre-checked (= the "all"
199
- * default). Non-interactive / --yes selects all detected without prompting. */
200
- async function pickConnectors(found, yes) {
201
- const all = ["claude", "opencode"].filter((n) => found[n]);
225
+ /** Every connector on the setup surface becomes a choice. Its OWN declarations drive the hints —
226
+ * `requires` for readiness, `setup` for whether it runs connector-owned setup at all, `pluginRoot`
227
+ * for how that reads — and connector names never gate membership. Exported for the genericity smoke. */
228
+ export function setupConnectorCandidates(connectors, pathProbe = onPath) {
229
+ return [...connectors]
230
+ .sort((a, b) => a.name.localeCompare(b.name))
231
+ .map((connector) => {
232
+ const missing = (connector.requires ?? []).filter((bin) => !pathProbe(bin));
233
+ return {
234
+ connector,
235
+ value: connector.name,
236
+ label: connector.name,
237
+ missing,
238
+ hint: missing.length
239
+ ? `${missing.join(", ")} not on PATH`
240
+ : connector.setup
241
+ ? connector.pluginRoot
242
+ ? "installs a plugin"
243
+ : "runs its own setup"
244
+ : "ready at spawn",
245
+ };
246
+ });
247
+ }
248
+ /** Materialize every connector advertised by the registry or installed manifest. Exported so the
249
+ * fail-loud smoke reaches the same discovery boundary as guided setup. */
250
+ export async function setupConnectorSurface() {
251
+ const names = new Set(registry.all("connector").map((connector) => connector.name));
252
+ for (const name of manifestExtensionNames("connector"))
253
+ names.add(name);
254
+ return Promise.all([...names].sort().map((name) => materializeExtension({ kind: "connector", name })));
255
+ }
256
+ async function pickConnectors(candidates, yes) {
257
+ const all = candidates.filter((candidate) => candidate.missing.length === 0).map((candidate) => candidate.value);
202
258
  if (yes || !process.stdin.isTTY)
203
259
  return new Set(all);
204
- const labels = { claude: "Claude Code", opencode: "OpenCode" };
205
260
  // Common case: show what was detected and offer a visible Continue button (clack's multiselect
206
261
  // has no native one). Only "Customize" (or nothing detected) drops into the toggle list.
207
262
  if (all.length) {
208
- note(all.map((n) => labels[n]).join(", "), "Agents found");
263
+ note(all.join(", "), "Agents found");
209
264
  const go = abortIfCancel(await p.confirm({ message: "Set these up?", active: "Continue", inactive: "Customize", initialValue: true }));
210
265
  if (go)
211
266
  return new Set(all);
212
267
  }
213
268
  const picked = abortIfCancel(await p.multiselect({
214
269
  message: "Pick the agents to set up (space toggles, enter continues)",
215
- options: ["claude", "opencode"].map((n) => ({
216
- value: n,
217
- label: labels[n],
218
- hint: !found[n] ? "not on PATH" : n === "claude" ? "installs a plugin" : "ready at spawn",
219
- })),
270
+ options: [...candidates],
220
271
  initialValues: all,
221
272
  required: false,
222
273
  }));
223
274
  return new Set(picked);
224
275
  }
225
- /** The Claude Code plugin install, as a step (spinner + failure handling + handoff). Exported for the
226
- * setup-failloud smoke (removed-connector skip vs broken-connector throw). */
227
- export function claudePluginStep() {
228
- return {
229
- name: "claude-plugin",
230
- title: "Install the Claude Code plugin",
231
- explain: "Lets a Claude Code session join the web and wake on peer messages.",
232
- context: [join(homeCotalDir(), "claude-plugin"), CC_DOCS_URL],
233
- async run() {
234
- // The claude connector is a seeded/`ext add`ed plugin now, not a static import. Only a GENUINE
235
- // removal (absent from the manifest) skips the plugin; a present-but-broken connector (version
236
- // skew, incompatible core, missing entry, import throw) must fail loud through runSteps with the
237
- // real repair diagnostic, never be misreported as a deliberate removal.
238
- if (!manifestExtensionNames("connector").includes("claude"))
239
- return "claude connector not installed - skipping the plugin (re-add it: cotal ext add @cotal-ai/connector-claude-code)";
240
- const claude = await materializeExtension({ kind: "connector", name: "claude" });
241
- installConnectorPlugin(claude);
242
- return "cotal@cotal-mesh (local scope)";
243
- },
244
- };
245
- }
246
- /** The Claude Code skills-plugin install, as a step. Independent of the mesh connector: it runs whenever
247
- * Claude is on PATH, so a Claude user gets Cotal's authored skills (team-topology today) even with no
248
- * connector, and a repeat `cotal setup` updates them. Installed at user scope (machine-wide). */
249
- export function skillsPluginStep() {
250
- return {
251
- name: "claude-skills-plugin",
252
- title: "Add Cotal's skills to Claude Code",
253
- explain: "Installs Cotal's authored skills (team-topology) as a Claude Code plugin, updatable and removable on their own.",
254
- context: [join(homeCotalDir(), "claude-plugin"), CC_DOCS_URL],
255
- async run() {
256
- installSkillsPlugin();
257
- return "cotal-skills@cotal-mesh (user scope)";
258
- },
259
- };
260
- }
261
276
  /** The compact repeat-run: a one-glance status card, plus re-seeding the default persona if it's
262
277
  * missing (announced). Nothing is launched — the card tells you what's down and how to start it.
263
278
  * `--demo` here adds the guided team to an already-configured machine (no need to re-narrate). */
@@ -265,7 +280,7 @@ async function runEnsure(demo) {
265
280
  seedDefaultAgent(); // ensure `cotal spawn` (no name) always has a default to launch
266
281
  if (demo)
267
282
  seedDemoTeam(); // `cotal setup --demo` on a configured machine: add the team, then card
268
- ensureSkillsPlugin(); // fail-loud: close the upgrade gap so an onboarded machine re-running setup gets/refreshes (not silently stale) the Claude skills plugin
283
+ await reconcileConnectorSkills();
269
284
  seedAgentSkills(); // reconcile the cross-vendor `.agents/skills` drop so an upgrade + re-run isn't stale
270
285
  // A repeat `npx cotal-ai setup` on an onboarded machine that still lacks a durable `cotal` must
271
286
  // ALSO get the global-install offer — the first-run stamp is written once, so without this any
@@ -276,16 +291,50 @@ async function runEnsure(demo) {
276
291
  await offerGlobalInstall(false);
277
292
  await readyCard(process.cwd());
278
293
  }
279
- /** Install/refresh the Claude skills plugin on a repeat `cotal setup`. FAIL-LOUD: a registry, install,
280
- * update, or version-verification failure aborts `cotal setup` with a nonzero exit rather than leaving
281
- * Claude silently on a stale or missing skill. This is the customer clean-update-path invariant (no
282
- * silent fallback), and it closes the gap where an onboarded machine never re-entered the first-run
283
- * plugin step. Skipped only when Claude isn't on PATH. */
284
- function ensureSkillsPlugin() {
285
- if (!onPath("claude"))
286
- return;
287
- installSkillsPlugin();
288
- provenance.wrote("claude skills plugin", claudeMarketDir());
294
+ /** Resolve a connector's declared setup provider from the CONNECTOR the surface produced, never
295
+ * from a name this file knows. A connector that declares none simply owns no setup; a DECLARED
296
+ * provider that is missing or broken fails loud, because the base CLI never substitutes a built-in
297
+ * harness implementation. Exported for the fail-loud smoke. */
298
+ export async function connectorSetupProvider(connector) {
299
+ if (!connector.setup)
300
+ return null;
301
+ return materializeExtension(connector.setup);
302
+ }
303
+ /** One connector-owned setup action as a narrated step, or null when this connector declares no
304
+ * provider, no such action, or its provider's executables are absent — none of which is a failure
305
+ * of guided setup (the cross-vendor skills drop still reconciles). Exported for the fail-loud
306
+ * smoke, which drives this exact seam. */
307
+ export async function connectorSetupStep(connector, action) {
308
+ const provider = await connectorSetupProvider(connector);
309
+ const setup = provider?.[action];
310
+ if (!provider || !setup || !setupProviderAvailable(provider))
311
+ return null;
312
+ const input = action === "skills" ? connectorSkillsInput() : undefined;
313
+ return {
314
+ name: setup.name,
315
+ title: setup.title,
316
+ explain: setup.explain,
317
+ context: [...(setup.context ?? [])],
318
+ async run() { return setup.run(input); },
319
+ };
320
+ }
321
+ /** The generic Cotal inputs every connector-owned skills installer receives. Nothing in it names a
322
+ * harness: the provider decides how its own harness consumes the cross-vendor skills. */
323
+ function connectorSkillsInput() {
324
+ return { skillsDir: canonicalSkillsDir(), version: cliVersion(), stateDir: homeCotalDir() };
325
+ }
326
+ async function reconcileConnectorSkills() {
327
+ for (const connector of await setupConnectorSurface()) {
328
+ const provider = await connectorSetupProvider(connector);
329
+ if (!provider?.skills || !setupProviderAvailable(provider))
330
+ continue;
331
+ await provider.skills.run(connectorSkillsInput());
332
+ }
333
+ }
334
+ /** Pure availability rule for connector-owned setup actions. No executable means no harness write;
335
+ * the caller still continues to the cross-vendor Agent Skills reconcile. */
336
+ export function setupProviderAvailable(provider) {
337
+ return !(provider.requires?.some((command) => !onPath(command)) ?? false);
289
338
  }
290
339
  /** True when an installed extension contributes the `web` command (the dashboard moved out to
291
340
  * `@cotal-ai/web` in stage 4) — decides whether the ready-card says "start it" or "install it". */
@@ -327,192 +376,6 @@ async function readyCard(cwd) {
327
376
  `more: ${dim(`${cmd} web · ${cmd} down · ${cmd} feedback "<msg>" · ${cmd} --help`)}`,
328
377
  ].join("\n"), brandBold("cotal · status"));
329
378
  }
330
- /** The shared marketplace dir for the Cotal Claude Code plugins (materialized under ~/.cotal so it
331
- * survives npx cache eviction). The marketplace name must stay `cotal-mesh` (the connector's channel
332
- * ref `plugin:cotal@cotal-mesh` depends on it). Two plugins live here, installed by independent steps:
333
- * `cotal` (the mesh connector, shipped by @cotal-ai/connector-claude-code, `--scope local`) and
334
- * `cotal-skills` (Cotal-authored skills shipped in THIS CLI package, `--scope user`). They install,
335
- * update, and uninstall on their own. */
336
- function claudeMarketDir() {
337
- return join(homeCotalDir(), "claude-plugin");
338
- }
339
- /** The exact set of plugins Cotal materializes into the shared marketplace. The marketplace manifest is
340
- * built from THIS list (not an arbitrary `readdir`), so a crash remnant like `cotal.old.<pid>` or a
341
- * third-party dir can never be published as a bogus marketplace entry. */
342
- const COTAL_PLUGINS = ["cotal", "cotal-skills"];
343
- /** Materialize one plugin into the shared marketplace by REPLACING its dir, never merging into a stale
344
- * one: a leftover `hooks/`, `.mcp.json`, or `agents/` in an old plugin dir would be auto-discovered by
345
- * Claude and turn an otherwise data-only plugin into a code surface. Only the allowlisted assets are
346
- * copied into a sibling staging dir; an optional release `version` is stamped into plugin.json (its
347
- * manifest version is Claude's cache key, so a new release must present a new version to update a
348
- * deployed install); then the live dir is moved aside and staging renamed in.
349
- *
350
- * The swap keeps a live source at all times: on a FAILED `staging -> dest` rename the moved-aside `old`
351
- * is restored to `dest` before cleanup, and `old` is deleted only once the new dir is safely in place. A
352
- * process crash mid-swap leaves `<name>.old.<pid>`/`<name>.staging.<pid>`; on the next run a leftover
353
- * `old` is restored to `dest` if the live dir was lost, then remnants are swept, and none are ever
354
- * published (the marketplace is built from an explicit plugin list, not a readdir). */
355
- function materializePluginDir(name, root, assets, version) {
356
- const marketDir = claudeMarketDir();
357
- mkdirSync(marketDir, { recursive: true });
358
- const dest = join(marketDir, name);
359
- const staging = `${dest}.staging.${process.pid}`;
360
- const old = `${dest}.old.${process.pid}`;
361
- // Recover, THEN sweep, orphan swap dirs left by a crashed prior run. If `dest` is absent but a crash
362
- // left a moved-aside `<name>.old.*` (a previously-live, complete copy), restore it first so we never
363
- // delete the only recoverable source before the rebuild proves out. Staging dirs may be half-copied,
364
- // so they are only swept, never promoted.
365
- const orphans = readdirSync(marketDir, { withFileTypes: true })
366
- .filter((e) => e.isDirectory() && (e.name.startsWith(`${name}.old.`) || e.name.startsWith(`${name}.staging.`)))
367
- .map((e) => e.name);
368
- if (!existsSync(dest)) {
369
- const recoverable = orphans.find((n) => n.startsWith(`${name}.old.`));
370
- if (recoverable)
371
- renameSync(join(marketDir, recoverable), dest);
372
- }
373
- for (const n of orphans)
374
- rmSync(join(marketDir, n), { recursive: true, force: true }); // the recovered one (if any) is already renamed away
375
- let movedAside = false; // dest -> old happened
376
- let swapped = false; // staging -> dest happened
377
- try {
378
- for (const f of assets)
379
- cpSync(join(root, f), join(staging, f), { recursive: true, dereference: true });
380
- if (version) {
381
- const pj = join(staging, ".claude-plugin", "plugin.json");
382
- const manifest = JSON.parse(readFileSync(pj, "utf8"));
383
- manifest.version = version;
384
- writeFileSync(pj, JSON.stringify(manifest, null, 2) + "\n");
385
- }
386
- if (existsSync(dest)) {
387
- renameSync(dest, old); // move the live dir aside (recoverable) rather than delete-then-rebuild
388
- movedAside = true;
389
- }
390
- renameSync(staging, dest);
391
- swapped = true;
392
- }
393
- finally {
394
- // If the swap failed after moving the live dir aside, put it back so the marketplace keeps a source.
395
- if (movedAside && !swapped && !existsSync(dest)) {
396
- try {
397
- renameSync(old, dest);
398
- }
399
- catch {
400
- /* best effort: `old` remains on disk for manual recovery */
401
- }
402
- }
403
- rmSync(staging, { recursive: true, force: true });
404
- if (swapped || !movedAside)
405
- rmSync(old, { recursive: true, force: true }); // drop the saved copy only once the new dir is in place (or none was saved)
406
- }
407
- }
408
- /** Rewrite marketplace.json to list EXACTLY the Cotal plugins currently materialized, so the connector
409
- * and skills plugins (installed in either order, by independent steps) always coexist, and a removed one
410
- * drops out. Built from the explicit `COTAL_PLUGINS` list (not a `readdir`), so a crash remnant or a
411
- * foreign directory can never be published as a marketplace entry. */
412
- function writeMarketplaceManifest() {
413
- const marketDir = claudeMarketDir();
414
- const plugins = COTAL_PLUGINS.filter((name) => existsSync(join(marketDir, name, ".claude-plugin", "plugin.json")))
415
- .map((name) => ({ name, source: `./${name}` }))
416
- .sort((a, b) => a.name.localeCompare(b.name));
417
- mkdirSync(join(marketDir, ".claude-plugin"), { recursive: true });
418
- writeFileSync(join(marketDir, ".claude-plugin", "marketplace.json"), JSON.stringify({ name: "cotal-mesh", description: "Cotal for Claude Code: the mesh connector plus Cotal-authored skills.", owner: { name: "Cotal" }, plugins }, null, 2));
419
- provenance.wrote("plugin marketplace", marketDir);
420
- }
421
- /** Register (or refresh) the materialized marketplace with Claude. */
422
- function registerMarketplace() {
423
- const add = claude("plugin", "marketplace", "add", claudeMarketDir());
424
- if (add.status !== 0) {
425
- const update = claude("plugin", "marketplace", "update", "cotal-mesh");
426
- if (update.status !== 0)
427
- throw new Error(`couldn't register the plugin marketplace:\n${add.output}\n${update.output}`);
428
- }
429
- }
430
- /** Install a plugin at `scope`, or UPDATE it if already installed. A bare re-`install` is a no-op that
431
- * keeps the cached (possibly older) version; pairing a release-stamped manifest version with an explicit
432
- * `plugin update` is what actually refreshes a deployed install. Then verify it truly loaded, at
433
- * `expectedVersion` when one is given (so a cache that didn't update is caught, not passed). */
434
- function installOrUpdatePlugin(name, scope, expectedVersion) {
435
- registerMarketplace();
436
- const install = claude("plugin", "install", `${name}@cotal-mesh`, "--scope", scope);
437
- // Trigger the update on what `plugin install` SAYS, not on its exit status: when the plugin is
438
- // already installed it reports that and exits ZERO. Gating the update on a non-zero status meant
439
- // it never ran on an upgrade, so the cache kept the old version and verifyPluginLoaded below
440
- // threw "the update did not take" at every customer who upgraded.
441
- const already = /already installed/i.test(install.output);
442
- if (install.status !== 0 && !already)
443
- throw new Error(`plugin install failed (${name}):\n${install.output}`);
444
- if (already) {
445
- const update = claude("plugin", "update", `${name}@cotal-mesh`, "--scope", scope);
446
- if (update.status !== 0)
447
- throw new Error(`plugin update failed (${name}):\n${update.output}`);
448
- }
449
- verifyPluginLoaded(name, scope, expectedVersion);
450
- }
451
- /** Verify a plugin actually loaded at the intended scope via `claude plugin list --json` (exact id,
452
- * scope, enabled, load errors, and version when pinned). The human-output substring check this replaces
453
- * accepted a failed-to-load entry (its name still prints) and let `cotal-skills` satisfy a check for
454
- * `cotal`. For local scope the entry must be THIS project's (there is one `cotal@cotal-mesh` per
455
- * project, some from other projects with load errors), matched by `projectPath`. */
456
- function verifyPluginLoaded(name, scope, expectedVersion) {
457
- const r = claude("plugin", "list", "--json");
458
- if (r.status !== 0)
459
- throw new Error(`\`claude plugin list --json\` failed:\n${r.output}`);
460
- let entries;
461
- try {
462
- const parsed = JSON.parse(r.output);
463
- entries = Array.isArray(parsed) ? parsed : [];
464
- }
465
- catch {
466
- throw new Error(`could not parse \`claude plugin list --json\`:\n${r.output}`);
467
- }
468
- const id = `${name}@cotal-mesh`;
469
- const here = resolve(process.cwd());
470
- const match = entries.find((e) => e.id === id && e.scope === scope && (scope !== "local" || (typeof e.projectPath === "string" && resolve(e.projectPath) === here)));
471
- const where = scope === "local" ? `${scope}, project ${here}` : scope;
472
- if (!match)
473
- throw new Error(`plugin ${id} (scope ${where}) is not present in \`claude plugin list --json\` after install`);
474
- if (match.enabled === false)
475
- throw new Error(`plugin ${id} installed but disabled`);
476
- const errs = (match.errors ?? match.error);
477
- if (Array.isArray(errs) ? errs.length > 0 : Boolean(errs))
478
- throw new Error(`plugin ${id} loaded with errors: ${JSON.stringify(errs)}`);
479
- if (expectedVersion && match.version !== expectedVersion)
480
- throw new Error(`plugin ${id} is at version ${String(match.version)}, expected ${expectedVersion} (the update did not take)`);
481
- }
482
- /** Install the connector plugin (`cotal`, `--scope local`; its lifecycle hooks bind to a locally-installed
483
- * plugin). Called from claudePluginStep when the claude connector is present in the manifest. */
484
- function installConnectorPlugin(claudeConnector) {
485
- const { pluginRoot } = claudeConnector;
486
- if (!pluginRoot)
487
- throw new Error('the "claude" connector ships no plugin assets');
488
- for (const f of ["dist/mcp.cjs", "dist/hook.cjs", ".claude-plugin/plugin.json", ".mcp.json", "hooks/hooks.json"]) {
489
- if (!existsSync(join(pluginRoot, f)))
490
- throw new Error(`plugin asset missing: ${join(pluginRoot, f)} (in a dev clone, build it with: pnpm --filter @cotal-ai/connector-claude-code bundle)`);
491
- }
492
- materializePluginDir("cotal", pluginRoot, [".claude-plugin", ".mcp.json", "hooks", "dist/mcp.cjs", "dist/hook.cjs"]);
493
- writeMarketplaceManifest();
494
- installOrUpdatePlugin("cotal", "local");
495
- }
496
- /** Install/update the skills plugin (`cotal-skills`, `--scope user` so it is machine-wide, and independent
497
- * of the mesh connector: it carries no code and no core dependency, so it can never be core-skewed). Its
498
- * manifest version is stamped from the running CLI release, so an upgrade actually replaces the cached
499
- * skill in Claude. The canonical `SKILL.md` files are shared with the `.agents/skills` drop and the
500
- * website index (see lib/agent-skills.ts). Runs whenever Claude is on PATH, on first run AND on a repeat
501
- * `cotal setup`. */
502
- function installSkillsPlugin() {
503
- const root = join(import.meta.dirname, "..", "..", "cotal-skills");
504
- if (!existsSync(join(root, ".claude-plugin", "plugin.json")))
505
- throw new Error(`cotal-skills plugin manifest missing at ${join(root, ".claude-plugin")}. Corrupt cotal-ai install.`);
506
- canonicalSkillNames(); // fail loud on a missing/corrupt skills bundle before we touch Claude
507
- const version = cliVersion();
508
- materializePluginDir("cotal-skills", root, [".claude-plugin", "skills"], version);
509
- writeMarketplaceManifest();
510
- installOrUpdatePlugin("cotal-skills", "user", version);
511
- }
512
- function claude(...args) {
513
- const r = spawnSync("claude", args, { encoding: "utf8" });
514
- return { status: r.status, output: `${r.stdout ?? ""}${r.stderr ?? ""}`.trim() };
515
- }
516
379
  /** Reconcile Cotal's authored skills into the cross-vendor `~/.agents/skills` directory that Codex,
517
380
  * Cursor, OpenCode, Gemini CLI, and Windsurf/Devin all read. Unlike the Claude Code plugin, these
518
381
  * harnesses have no remote install/update path, so `cotal setup` reconciles the files (install/refresh,
@@ -1 +1 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"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"}
@@ -21,7 +21,7 @@ import { findMesh } from "@cotal-ai/workspace";
21
21
  import { c } from "../ui.js";
22
22
  import { cotalRoot } from "../lib/paths.js";
23
23
  import { connectOrExit, userViewAuthOrExit } from "../lib/connect.js";
24
- import { assertManagerRecordReplaceable, startManagerDetached } from "../lib/manager-proc.js";
24
+ import { assertManagerRecordReplaceable, managerLogDisplayPath, startManagerDetached } from "../lib/manager-proc.js";
25
25
  import { loadManifest } from "../lib/manifest/index.js";
26
26
  import { buildLaunchSpec, channelsSeed, genRunId, preflightConnectors, writeLaunchSpec } from "../lib/manifest/apply.js";
27
27
  import { buildLedger, buildLedgerAgentRow, hashManifestSource, listLedgers, writeLedger } from "../lib/manifest/ledger.js";
@@ -196,7 +196,7 @@ export async function spawnManifest(file, flags) {
196
196
  // Nobody owns the space — stand up a manager (it acquires the lease on boot). The lease says
197
197
  // nobody is ANSWERING; it does not say the recorded pid is dead, so the pidfile is checked
198
198
  // before we overwrite it. This path used to skip that entirely.
199
- assertManagerRecordReplaceable();
199
+ assertManagerRecordReplaceable(undefined, undefined, space);
200
200
  startManagerDetached({ space, server: connection.server, runtime, attachHost });
201
201
  }
202
202
  else if (!launchReady) {
@@ -204,10 +204,10 @@ export async function spawnManifest(file, flags) {
204
204
  // blocks a replacement's acquire until the bucket TTL expires; wait it out, then stand one up.
205
205
  console.log(c.dim(` ~ a manager lease for "${space}" is present but unanswered (holder pid ${launchHeld.pid}); waiting up to ${Math.ceil(MANAGER_LEASE_TTL_MS / 1000)}s for it to expire…`));
206
206
  if (!(await waitLeaseGone(ep, MANAGER_LEASE_TTL_MS + 5_000))) {
207
- console.error(c.red(`✗ a manager lease for "${space}" is still held by an unresponsive holder (pid ${launchHeld.pid}) after its TTL - stop it or check .cotal/manager.log`));
207
+ console.error(c.red(`✗ a manager lease for "${space}" is still held by an unresponsive holder (pid ${launchHeld.pid}) after its TTL - stop it or check ${managerLogDisplayPath(space)}`));
208
208
  process.exit(1);
209
209
  }
210
- assertManagerRecordReplaceable(); // an expired lease still says nothing about the recorded pid
210
+ assertManagerRecordReplaceable(undefined, undefined, space); // an expired lease still says nothing about the recorded pid
211
211
  startManagerDetached({ space, server: connection.server, runtime, attachHost });
212
212
  }
213
213
  // else: a live manager already answered — reuse it. All paths converge here: confirm a manager is
@@ -215,7 +215,7 @@ export async function spawnManifest(file, flags) {
215
215
  // `held` snapshot, which can turn over during the probe / a concurrent start — TOCTOU). Fail LOUD if
216
216
  // a foreign-checkout or wrong-runtime manager won the space before we launch into it.
217
217
  if (!(await waitManagerReady(ep))) {
218
- console.error(c.red("✗ manager did not become ready for control - see .cotal/manager.log"));
218
+ console.error(c.red(`✗ manager did not become ready for control - see ${managerLogDisplayPath(space)}`));
219
219
  process.exit(1);
220
220
  }
221
221
  const live = await ep.readManagerLease();