@bradygaster/squad-cli 0.9.6-insider.3 → 0.10.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 (122) hide show
  1. package/dist/cli/commands/copilot-bridge.d.ts.map +1 -1
  2. package/dist/cli/commands/copilot-bridge.js +5 -1
  3. package/dist/cli/commands/copilot-bridge.js.map +1 -1
  4. package/dist/cli/commands/doctor.d.ts +6 -0
  5. package/dist/cli/commands/doctor.d.ts.map +1 -1
  6. package/dist/cli/commands/doctor.js +92 -6
  7. package/dist/cli/commands/doctor.js.map +1 -1
  8. package/dist/cli/commands/install-hooks.d.ts.map +1 -1
  9. package/dist/cli/commands/install-hooks.js +50 -5
  10. package/dist/cli/commands/install-hooks.js.map +1 -1
  11. package/dist/cli/commands/loop.d.ts.map +1 -1
  12. package/dist/cli/commands/loop.js +7 -5
  13. package/dist/cli/commands/loop.js.map +1 -1
  14. package/dist/cli/commands/migrate-backend.d.ts +36 -5
  15. package/dist/cli/commands/migrate-backend.d.ts.map +1 -1
  16. package/dist/cli/commands/migrate-backend.js +250 -40
  17. package/dist/cli/commands/migrate-backend.js.map +1 -1
  18. package/dist/cli/commands/notes.d.ts +27 -0
  19. package/dist/cli/commands/notes.d.ts.map +1 -0
  20. package/dist/cli/commands/notes.js +222 -0
  21. package/dist/cli/commands/notes.js.map +1 -0
  22. package/dist/cli/commands/plugin.js +3 -3
  23. package/dist/cli/commands/plugin.js.map +1 -1
  24. package/dist/cli/commands/skill.d.ts +31 -0
  25. package/dist/cli/commands/skill.d.ts.map +1 -0
  26. package/dist/cli/commands/skill.js +497 -0
  27. package/dist/cli/commands/skill.js.map +1 -0
  28. package/dist/cli/commands/start.d.ts.map +1 -1
  29. package/dist/cli/commands/start.js +9 -1
  30. package/dist/cli/commands/start.js.map +1 -1
  31. package/dist/cli/commands/watch/agent-spawn.d.ts +62 -0
  32. package/dist/cli/commands/watch/agent-spawn.d.ts.map +1 -0
  33. package/dist/cli/commands/watch/agent-spawn.js +127 -0
  34. package/dist/cli/commands/watch/agent-spawn.js.map +1 -0
  35. package/dist/cli/commands/watch/capabilities/decision-hygiene.d.ts.map +1 -1
  36. package/dist/cli/commands/watch/capabilities/decision-hygiene.js +2 -1
  37. package/dist/cli/commands/watch/capabilities/decision-hygiene.js.map +1 -1
  38. package/dist/cli/commands/watch/capabilities/execute.d.ts.map +1 -1
  39. package/dist/cli/commands/watch/capabilities/execute.js +2 -1
  40. package/dist/cli/commands/watch/capabilities/execute.js.map +1 -1
  41. package/dist/cli/commands/watch/capabilities/index.d.ts.map +1 -1
  42. package/dist/cli/commands/watch/capabilities/index.js +2 -0
  43. package/dist/cli/commands/watch/capabilities/index.js.map +1 -1
  44. package/dist/cli/commands/watch/capabilities/monitor-email.d.ts.map +1 -1
  45. package/dist/cli/commands/watch/capabilities/monitor-email.js +2 -1
  46. package/dist/cli/commands/watch/capabilities/monitor-email.js.map +1 -1
  47. package/dist/cli/commands/watch/capabilities/monitor-teams.d.ts.map +1 -1
  48. package/dist/cli/commands/watch/capabilities/monitor-teams.js +2 -1
  49. package/dist/cli/commands/watch/capabilities/monitor-teams.js.map +1 -1
  50. package/dist/cli/commands/watch/capabilities/notes-promote.d.ts +11 -0
  51. package/dist/cli/commands/watch/capabilities/notes-promote.d.ts.map +1 -0
  52. package/dist/cli/commands/watch/capabilities/notes-promote.js +124 -0
  53. package/dist/cli/commands/watch/capabilities/notes-promote.js.map +1 -0
  54. package/dist/cli/commands/watch/capabilities/retro.d.ts.map +1 -1
  55. package/dist/cli/commands/watch/capabilities/retro.js +2 -1
  56. package/dist/cli/commands/watch/capabilities/retro.js.map +1 -1
  57. package/dist/cli/commands/watch/capabilities/wave-dispatch.d.ts.map +1 -1
  58. package/dist/cli/commands/watch/capabilities/wave-dispatch.js +2 -1
  59. package/dist/cli/commands/watch/capabilities/wave-dispatch.js.map +1 -1
  60. package/dist/cli/commands/watch/index.d.ts.map +1 -1
  61. package/dist/cli/commands/watch/index.js +7 -6
  62. package/dist/cli/commands/watch/index.js.map +1 -1
  63. package/dist/cli/core/command-help.d.ts +44 -0
  64. package/dist/cli/core/command-help.d.ts.map +1 -0
  65. package/dist/cli/core/command-help.js +401 -0
  66. package/dist/cli/core/command-help.js.map +1 -0
  67. package/dist/cli/core/copilot-invocation.d.ts +57 -0
  68. package/dist/cli/core/copilot-invocation.d.ts.map +1 -0
  69. package/dist/cli/core/copilot-invocation.js +84 -0
  70. package/dist/cli/core/copilot-invocation.js.map +1 -0
  71. package/dist/cli/core/effective-squad-dir.d.ts +33 -0
  72. package/dist/cli/core/effective-squad-dir.d.ts.map +1 -0
  73. package/dist/cli/core/effective-squad-dir.js +37 -0
  74. package/dist/cli/core/effective-squad-dir.js.map +1 -0
  75. package/dist/cli/core/init.d.ts.map +1 -1
  76. package/dist/cli/core/init.js +61 -0
  77. package/dist/cli/core/init.js.map +1 -1
  78. package/dist/cli/core/mcp-root.d.ts +60 -0
  79. package/dist/cli/core/mcp-root.d.ts.map +1 -0
  80. package/dist/cli/core/mcp-root.js +124 -0
  81. package/dist/cli/core/mcp-root.js.map +1 -0
  82. package/dist/cli/core/mcp-spec.d.ts +48 -0
  83. package/dist/cli/core/mcp-spec.d.ts.map +1 -0
  84. package/dist/cli/core/mcp-spec.js +61 -0
  85. package/dist/cli/core/mcp-spec.js.map +1 -0
  86. package/dist/cli/core/npm-registry.d.ts +25 -0
  87. package/dist/cli/core/npm-registry.d.ts.map +1 -0
  88. package/dist/cli/core/npm-registry.js +65 -0
  89. package/dist/cli/core/npm-registry.js.map +1 -0
  90. package/dist/cli/core/templates.d.ts.map +1 -1
  91. package/dist/cli/core/templates.js +23 -18
  92. package/dist/cli/core/templates.js.map +1 -1
  93. package/dist/cli/core/upgrade.d.ts +4 -0
  94. package/dist/cli/core/upgrade.d.ts.map +1 -1
  95. package/dist/cli/core/upgrade.js +67 -15
  96. package/dist/cli/core/upgrade.js.map +1 -1
  97. package/dist/cli/shell/coordinator.d.ts.map +1 -1
  98. package/dist/cli/shell/coordinator.js +9 -3
  99. package/dist/cli/shell/coordinator.js.map +1 -1
  100. package/dist/cli/shell/index.d.ts.map +1 -1
  101. package/dist/cli/shell/index.js +12 -6
  102. package/dist/cli/shell/index.js.map +1 -1
  103. package/dist/cli/shell/lifecycle.d.ts.map +1 -1
  104. package/dist/cli/shell/lifecycle.js +12 -7
  105. package/dist/cli/shell/lifecycle.js.map +1 -1
  106. package/dist/cli/shell/session-store.d.ts +4 -4
  107. package/dist/cli/shell/session-store.d.ts.map +1 -1
  108. package/dist/cli/shell/session-store.js +11 -11
  109. package/dist/cli/shell/session-store.js.map +1 -1
  110. package/dist/cli-entry.js +116 -46
  111. package/dist/cli-entry.js.map +1 -1
  112. package/package.json +2 -2
  113. package/scripts/patch-esm-imports.mjs +3 -1
  114. package/templates/after-agent-reference.md +2 -2
  115. package/templates/scribe-charter.md +1 -1
  116. package/templates/skills/fact-checking/SKILL.md +61 -0
  117. package/templates/spawn-reference.md +1 -2
  118. package/templates/squad.agent.md.template +16 -6
  119. package/templates/workflow-wiring-appendix-a-code-reviewer.md +131 -0
  120. package/templates/workflow-wiring-appendix-b-documenter.md +140 -0
  121. package/templates/workflow-wiring-guide.md +276 -0
  122. package/templates/workflows/squad-heartbeat.yml +167 -167
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Effective squad directory resolution — external state aware.
3
+ *
4
+ * Wraps detectSquadDir() to follow the config.json stateLocation marker
5
+ * when state has been externalized via `squad externalize`.
6
+ *
7
+ * @module cli/core/effective-squad-dir
8
+ */
9
+ import { detectSquadDir } from './detect-squad-dir.js';
10
+ import { loadDirConfig, resolveExternalStateDir } from '@bradygaster/squad-sdk';
11
+ /**
12
+ * Resolve the effective state directory from a local .squad/ path.
13
+ *
14
+ * If `.squad/config.json` has `stateLocation: 'external'` and a valid
15
+ * `projectKey`, returns the external state directory. Otherwise returns
16
+ * the original `squadDirPath` unchanged.
17
+ */
18
+ export function resolveStateDir(squadDirPath) {
19
+ const config = loadDirConfig(squadDirPath);
20
+ if (config?.stateLocation === 'external' && config.projectKey) {
21
+ return resolveExternalStateDir(config.projectKey, false);
22
+ }
23
+ return squadDirPath;
24
+ }
25
+ /**
26
+ * Detect the squad directory and resolve the effective state dir.
27
+ *
28
+ * Combines detectSquadDir() (zero-dependency bootstrap) with external
29
+ * state resolution from config.json. Use `stateDir` for reading state
30
+ * files (team.md, routing.md, agents/, plugins/, etc.) and `local.path`
31
+ * for non-state files that remain in the working tree.
32
+ */
33
+ export function effectiveSquadDir(dest) {
34
+ const local = detectSquadDir(dest);
35
+ return { local, stateDir: resolveStateDir(local.path) };
36
+ }
37
+ //# sourceMappingURL=effective-squad-dir.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"effective-squad-dir.js","sourceRoot":"","sources":["../../../src/cli/core/effective-squad-dir.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,cAAc,EAAqB,MAAM,uBAAuB,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEhF;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,YAAoB;IAClD,MAAM,MAAM,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC;IAC3C,IAAI,MAAM,EAAE,aAAa,KAAK,UAAU,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QAC9D,OAAO,uBAAuB,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAC3D,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AASD;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IACnC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;AAC1D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/core/init.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAiBH;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAc/D;AAED,gFAAgF;AAChF,wBAAgB,aAAa,IAAI,OAAO,CAMvC;AAMD,gFAAgF;AAChF,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,GAAE,MAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAU/E;AA8BD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kFAAkF;IAClF,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,kEAAkE;IAClE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iFAAiF;IACjF,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,8FAA8F;IAC9F,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,sFAAsF;IACtF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,yEAAyE;IACzE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,2GAA2G;IAC3G,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;GAEG;AACH,wBAAsB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgRvF"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/core/init.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAqBH;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAc/D;AAED,gFAAgF;AAChF,wBAAgB,aAAa,IAAI,OAAO,CAMvC;AAMD,gFAAgF;AAChF,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,GAAE,MAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAU/E;AA8BD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kFAAkF;IAClF,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,kEAAkE;IAClE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iFAAiF;IACjF,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,8FAA8F;IAC9F,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,sFAAsF;IACtF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,yEAAyE;IACzE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,2GAA2G;IAC3G,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;GAEG;AACH,wBAAsB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAyUvF"}
@@ -12,6 +12,10 @@ import { detectProjectType } from './project-type.js';
12
12
  import { getPackageVersion, stampVersion } from './version.js';
13
13
  import { initSquad as sdkInitSquad, cleanupOrphanInitPrompt, ensurePersonalSquadDir, resolvePersonalSquadDir, clearResolveSquadCache } from '@bradygaster/squad-sdk';
14
14
  import { installGitHooks } from '../commands/install-hooks.js';
15
+ import { liftInitMutableStateOntoOrphan } from '../commands/migrate-backend.js';
16
+ import { resolveSquadStateMcpSpec } from './mcp-spec.js';
17
+ import { describeMcpSpec } from './upgrade.js';
18
+ import { ensureSquadStateMcpInRoot, tombstoneStaleSquadStateInProjectMcp } from './mcp-root.js';
15
19
  const storage = new FSStorageProvider();
16
20
  const CYAN = '\x1b[36m';
17
21
  /**
@@ -287,12 +291,66 @@ export async function runInit(dest, options = {}) {
287
291
  }
288
292
  // Install git hooks for automatic state sync on push/pull
289
293
  installGitHooks(dest, { force: false });
294
+ // INSIDER3-INIT-LEAK fix: the SDK already wrote decisions.md and
295
+ // agents/<n>/history.md into the working tree (it had no knowledge of
296
+ // the backend choice at the time). Lift those mutable files onto the
297
+ // squad-state orphan branch and remove the working-tree copies so the
298
+ // backend is the single source of truth post-init.
299
+ try {
300
+ const lifted = liftInitMutableStateOntoOrphan(dest);
301
+ if (lifted.length > 0) {
302
+ success(`migrated ${lifted.length} mutable state file(s) onto squad-state branch (removed from working tree)`);
303
+ }
304
+ }
305
+ catch (err) {
306
+ console.warn(`${YELLOW}⚠ Could not lift mutable state onto squad-state branch: ${err instanceof Error ? err.message : err}${RESET}`);
307
+ }
308
+ // GAP-2 fix: SDK init skips .copilot/mcp-config.json when it already
309
+ // exists (e.g. partially-squadified repo or pre-existing Copilot setup),
310
+ // leaving the bridge unwired. Force-insert/pin the squad_state entry so
311
+ // the MCP server is reachable regardless of pre-existing config.
312
+ // iter-8: write squad_state to repo-root `.mcp.json` (auto-loaded by
313
+ // Copilot CLI 5.3+ walking up from cwd to git root) and tombstone any
314
+ // stale project-level entry left by the SDK init writer in
315
+ // `.copilot/mcp-config.json`. No HOME modifications.
316
+ try {
317
+ const mcpSpec = await resolveSquadStateMcpSpec(getPackageVersion());
318
+ const rootResult = ensureSquadStateMcpInRoot(dest, getPackageVersion(), mcpSpec);
319
+ if (rootResult.written) {
320
+ success(`installed squad_state MCP server to .mcp.json (${describeMcpSpec(mcpSpec)}) — Copilot CLI will auto-load on next invocation`);
321
+ console.log(`${DIM} to remove later: edit ${rootResult.path} and delete squad_state${RESET}`);
322
+ }
323
+ const tomb = tombstoneStaleSquadStateInProjectMcp(dest);
324
+ if (tomb.removed) {
325
+ success(`removed stale squad_state from ${tomb.path} (now lives in .mcp.json)`);
326
+ }
327
+ }
328
+ catch (err) {
329
+ console.warn(`${YELLOW}⚠ Could not install squad_state MCP entry in .mcp.json: ${err instanceof Error ? err.message : err}${RESET}`);
330
+ }
290
331
  }
291
332
  }
292
333
  else {
293
334
  console.warn(`${YELLOW}⚠ Unknown state backend "${options.stateBackend}". Using default (local).${RESET}`);
294
335
  }
295
336
  }
337
+ // iter-8: unconditionally mirror repo-root `.mcp.json` write + tombstone
338
+ // for vanilla `squad init` (no --state-backend flag) so the squad_state
339
+ // MCP entry is reachable regardless of init path. No HOME modifications.
340
+ try {
341
+ const mcpSpec = await resolveSquadStateMcpSpec(version);
342
+ const rootResult = ensureSquadStateMcpInRoot(dest, version, mcpSpec);
343
+ if (rootResult.written) {
344
+ success(`installed squad_state MCP server to .mcp.json (${describeMcpSpec(mcpSpec)}) — Copilot CLI will auto-load on next invocation`);
345
+ }
346
+ const tomb = tombstoneStaleSquadStateInProjectMcp(dest);
347
+ if (tomb.removed) {
348
+ success(`removed stale squad_state from ${tomb.path} (now lives in .mcp.json)`);
349
+ }
350
+ }
351
+ catch {
352
+ // best-effort: .mcp.json write failure does not block init
353
+ }
296
354
  // Report .init-prompt storage
297
355
  if (options.prompt) {
298
356
  success(`.init-prompt stored — team will be cast when you run ${CYAN}${BOLD}copilot --agent squad${RESET}`);
@@ -319,6 +377,9 @@ export async function runInit(dest, options = {}) {
319
377
  console.log();
320
378
  console.log(`${GREEN}${BOLD}Squad initialized.${RESET} Run ${CYAN}${BOLD}copilot --agent squad${RESET} and tell it what you're building.`);
321
379
  console.log();
380
+ console.log(`${DIM}Tip: for non-interactive scripts that need squad_state tools, add to package.json:${RESET}`);
381
+ console.log(`${DIM} "squad:copilot": "copilot --additional-mcp-config @.mcp.json"${RESET}`);
382
+ console.log();
322
383
  // ── Personal squad bridge ───────────────────────────────────────────
323
384
  if (options.isGlobal) {
324
385
  // Global init: ensure personal-squad/ directory exists alongside .squad/
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/core/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/core/init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * iter-8: repo-root `.mcp.json` writer for the squad_state MCP entry.
3
+ *
4
+ * Background: iter-7 wrote `squad_state_<hash>` into the user's HOME
5
+ * `~/.copilot/mcp-config.json`. That polluted HOME with one entry per
6
+ * Squad project and required a stale-entry GC that we never built. It
7
+ * also touched a file outside the project, which is surprising for
8
+ * `squad init` / `squad upgrade`.
9
+ *
10
+ * iter-8 flips it back inside the project: we write `squad_state` to a
11
+ * repo-root `.mcp.json` under the plain (un-namespaced) `squad_state`
12
+ * key. Copilot CLI 5.3+ auto-loads `.mcp.json` walking up from cwd to
13
+ * the git root, so the entry is picked up by bare
14
+ * `copilot --yolo --autopilot --agent squad ...` invocations with no
15
+ * wrapper script and no HOME modifications.
16
+ *
17
+ * `tombstoneStaleSquadStateInProjectMcp` keeps removing any pre-existing
18
+ * `squad_state` entry from `.copilot/mcp-config.json` (left over by the
19
+ * SDK init writer in older Squad versions), so we have exactly one
20
+ * authoritative `squad_state` definition per project.
21
+ *
22
+ * Safety: we refuse to overwrite a malformed `.mcp.json` rather than
23
+ * silently clobber a user-edited file; other `mcpServers.*` entries are
24
+ * preserved byte-for-byte through the JSON round-trip.
25
+ *
26
+ * @module cli/core/mcp-root
27
+ */
28
+ import type { SquadStateMcpSpec } from './mcp-spec.js';
29
+ /** Resolve the repo-root `.mcp.json` path for a Squad project dest. */
30
+ export declare function getProjectMcpJsonPath(dest: string): string;
31
+ export interface EnsureRootResult {
32
+ written: boolean;
33
+ key: string;
34
+ path: string;
35
+ }
36
+ /**
37
+ * Insert/update the `squad_state` entry in the project's repo-root
38
+ * `.mcp.json`. Preserves all other entries unchanged.
39
+ *
40
+ * @param dest Squad project root (absolute or relative).
41
+ * @param _cliVersion Reserved for forensic metadata (unused — Copilot
42
+ * CLI does not currently surface extra fields).
43
+ * @param spec Pinned/insider command + args from
44
+ * `resolveSquadStateMcpSpec`.
45
+ */
46
+ export declare function ensureSquadStateMcpInRoot(dest: string, _cliVersion: string, spec: SquadStateMcpSpec): EnsureRootResult;
47
+ export interface TombstoneResult {
48
+ removed: boolean;
49
+ path: string;
50
+ }
51
+ /**
52
+ * Remove a stale top-level `squad_state` entry from the project
53
+ * `.copilot/mcp-config.json` left there by older Squad versions or the
54
+ * SDK init writer. Preserves all sibling entries.
55
+ *
56
+ * Best-effort: silently no-ops on a missing or unparseable file rather
57
+ * than risking a partial overwrite of user-managed MCP config.
58
+ */
59
+ export declare function tombstoneStaleSquadStateInProjectMcp(dest: string): TombstoneResult;
60
+ //# sourceMappingURL=mcp-root.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-root.d.ts","sourceRoot":"","sources":["../../../src/cli/core/mcp-root.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAIH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAIvD,uEAAuE;AACvE,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE1D;AAcD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,iBAAiB,GACtB,gBAAgB,CAsDlB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;GAOG;AACH,wBAAgB,oCAAoC,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAuBlF"}
@@ -0,0 +1,124 @@
1
+ /**
2
+ * iter-8: repo-root `.mcp.json` writer for the squad_state MCP entry.
3
+ *
4
+ * Background: iter-7 wrote `squad_state_<hash>` into the user's HOME
5
+ * `~/.copilot/mcp-config.json`. That polluted HOME with one entry per
6
+ * Squad project and required a stale-entry GC that we never built. It
7
+ * also touched a file outside the project, which is surprising for
8
+ * `squad init` / `squad upgrade`.
9
+ *
10
+ * iter-8 flips it back inside the project: we write `squad_state` to a
11
+ * repo-root `.mcp.json` under the plain (un-namespaced) `squad_state`
12
+ * key. Copilot CLI 5.3+ auto-loads `.mcp.json` walking up from cwd to
13
+ * the git root, so the entry is picked up by bare
14
+ * `copilot --yolo --autopilot --agent squad ...` invocations with no
15
+ * wrapper script and no HOME modifications.
16
+ *
17
+ * `tombstoneStaleSquadStateInProjectMcp` keeps removing any pre-existing
18
+ * `squad_state` entry from `.copilot/mcp-config.json` (left over by the
19
+ * SDK init writer in older Squad versions), so we have exactly one
20
+ * authoritative `squad_state` definition per project.
21
+ *
22
+ * Safety: we refuse to overwrite a malformed `.mcp.json` rather than
23
+ * silently clobber a user-edited file; other `mcpServers.*` entries are
24
+ * preserved byte-for-byte through the JSON round-trip.
25
+ *
26
+ * @module cli/core/mcp-root
27
+ */
28
+ import path from 'node:path';
29
+ import { FSStorageProvider } from '@bradygaster/squad-sdk';
30
+ const storage = new FSStorageProvider();
31
+ /** Resolve the repo-root `.mcp.json` path for a Squad project dest. */
32
+ export function getProjectMcpJsonPath(dest) {
33
+ return path.join(dest, '.mcp.json');
34
+ }
35
+ /**
36
+ * Insert/update the `squad_state` entry in the project's repo-root
37
+ * `.mcp.json`. Preserves all other entries unchanged.
38
+ *
39
+ * @param dest Squad project root (absolute or relative).
40
+ * @param _cliVersion Reserved for forensic metadata (unused — Copilot
41
+ * CLI does not currently surface extra fields).
42
+ * @param spec Pinned/insider command + args from
43
+ * `resolveSquadStateMcpSpec`.
44
+ */
45
+ export function ensureSquadStateMcpInRoot(dest, _cliVersion, spec) {
46
+ const key = 'squad_state';
47
+ const cfgPath = getProjectMcpJsonPath(dest);
48
+ let parsed;
49
+ if (storage.existsSync(cfgPath)) {
50
+ const raw = storage.readSync(cfgPath) ?? '{}';
51
+ try {
52
+ const obj = JSON.parse(raw);
53
+ if (!obj || typeof obj !== 'object' || Array.isArray(obj)) {
54
+ throw new Error(`${cfgPath}: root must be a JSON object`);
55
+ }
56
+ parsed = obj;
57
+ }
58
+ catch (err) {
59
+ throw new Error(`Refusing to overwrite malformed ${cfgPath}: ${err instanceof Error ? err.message : String(err)}`);
60
+ }
61
+ }
62
+ else {
63
+ parsed = {};
64
+ }
65
+ if (!parsed.mcpServers || typeof parsed.mcpServers !== 'object') {
66
+ parsed.mcpServers = {};
67
+ }
68
+ const existing = parsed.mcpServers[key];
69
+ const desired = {
70
+ command: spec.command,
71
+ args: [...spec.args],
72
+ env: {},
73
+ tools: ['*'],
74
+ };
75
+ if (existing &&
76
+ existing.command === desired.command &&
77
+ Array.isArray(existing.args) &&
78
+ existing.args.length === desired.args.length &&
79
+ existing.args.every((a, i) => a === desired.args[i]) &&
80
+ existing.env &&
81
+ typeof existing.env === 'object' &&
82
+ Object.keys(existing.env).length === 0 &&
83
+ Array.isArray(existing.tools) &&
84
+ existing.tools.length === 1 &&
85
+ existing.tools[0] === '*') {
86
+ return { written: false, key, path: cfgPath };
87
+ }
88
+ parsed.mcpServers[key] = desired;
89
+ storage.writeSync(cfgPath, JSON.stringify(parsed, null, 2) + '\n');
90
+ return { written: true, key, path: cfgPath };
91
+ }
92
+ /**
93
+ * Remove a stale top-level `squad_state` entry from the project
94
+ * `.copilot/mcp-config.json` left there by older Squad versions or the
95
+ * SDK init writer. Preserves all sibling entries.
96
+ *
97
+ * Best-effort: silently no-ops on a missing or unparseable file rather
98
+ * than risking a partial overwrite of user-managed MCP config.
99
+ */
100
+ export function tombstoneStaleSquadStateInProjectMcp(dest) {
101
+ const cfgPath = path.join(dest, '.copilot', 'mcp-config.json');
102
+ if (!storage.existsSync(cfgPath))
103
+ return { removed: false, path: cfgPath };
104
+ let parsed;
105
+ try {
106
+ parsed = JSON.parse(storage.readSync(cfgPath) ?? '{}');
107
+ }
108
+ catch {
109
+ return { removed: false, path: cfgPath };
110
+ }
111
+ if (!parsed || typeof parsed !== 'object')
112
+ return { removed: false, path: cfgPath };
113
+ const config = parsed;
114
+ if (!config.mcpServers || typeof config.mcpServers !== 'object') {
115
+ return { removed: false, path: cfgPath };
116
+ }
117
+ if (!('squad_state' in config.mcpServers)) {
118
+ return { removed: false, path: cfgPath };
119
+ }
120
+ delete config.mcpServers.squad_state;
121
+ storage.writeSync(cfgPath, JSON.stringify(config, null, 2) + '\n');
122
+ return { removed: true, path: cfgPath };
123
+ }
124
+ //# sourceMappingURL=mcp-root.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-root.js","sourceRoot":"","sources":["../../../src/cli/core/mcp-root.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAG3D,MAAM,OAAO,GAAG,IAAI,iBAAiB,EAAE,CAAC;AAExC,uEAAuE;AACvE,MAAM,UAAU,qBAAqB,CAAC,IAAY;IAChD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AACtC,CAAC;AAoBD;;;;;;;;;GASG;AACH,MAAM,UAAU,yBAAyB,CACvC,IAAY,EACZ,WAAmB,EACnB,IAAuB;IAEvB,MAAM,GAAG,GAAG,aAAa,CAAC;IAC1B,MAAM,OAAO,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;IAE5C,IAAI,MAAsB,CAAC;IAC3B,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAChC,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;QAC9C,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAY,CAAC;YACvC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC1D,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,8BAA8B,CAAC,CAAC;YAC5D,CAAC;YACD,MAAM,GAAG,GAAqB,CAAC;QACjC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CACb,mCAAmC,OAAO,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAClG,CAAC;QACJ,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,EAAE,CAAC;IACd,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;QAChE,MAAM,CAAC,UAAU,GAAG,EAAE,CAAC;IACzB,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACxC,MAAM,OAAO,GAAmB;QAC9B,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;QACpB,GAAG,EAAE,EAAE;QACP,KAAK,EAAE,CAAC,GAAG,CAAC;KACb,CAAC;IAEF,IACE,QAAQ;QACR,QAAQ,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO;QACpC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;QAC5B,QAAQ,CAAC,IAAI,CAAC,MAAM,KAAK,OAAO,CAAC,IAAK,CAAC,MAAM;QAC7C,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,IAAK,CAAC,CAAC,CAAC,CAAC;QACrD,QAAQ,CAAC,GAAG;QACZ,OAAO,QAAQ,CAAC,GAAG,KAAK,QAAQ;QAChC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC;QACtC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;QAC7B,QAAQ,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;QAC3B,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EACzB,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAChD,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;IAEjC,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACnE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AAC/C,CAAC;AAOD;;;;;;;GAOG;AACH,MAAM,UAAU,oCAAoC,CAAC,IAAY;IAC/D,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAC;IAC/D,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAE3E,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC;IACzD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAC3C,CAAC;IACD,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAEpF,MAAM,MAAM,GAAG,MAAwB,CAAC;IACxC,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;QAChE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAC3C,CAAC;IACD,IAAI,CAAC,CAAC,aAAa,IAAI,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1C,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAC3C,CAAC;IAED,OAAO,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC;IACrC,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACnE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AAC1C,CAAC"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Shared helper for resolving the `squad_state` MCP launch spec.
3
+ *
4
+ * Used by BOTH `squad init` and `squad upgrade` so the runtime-MCP fallback
5
+ * behavior stays symmetric.
6
+ *
7
+ * Resolution order (iter-7, simplified to 2 tiers):
8
+ * 1. If `cliVersion` IS published on npm → `npx -y <pkg>@<version> state-mcp`
9
+ * (clean cross-machine UX, the steady-state happy path).
10
+ * 2. Else → `npx -y <pkg>@insider state-mcp`. We do NOT probe the registry;
11
+ * the `@insider` dist-tag is kept fresh by the publish flow and tier-2
12
+ * is the de-facto fallback whenever a pinned preview version isn't yet
13
+ * published. If it really isn't reachable at runtime, `npx` will fail
14
+ * loudly — same observable behavior as pre-iter-5.
15
+ *
16
+ * Iter-6 had two additional tiers (a local-install path resolver and a hard
17
+ * error) that the smoke data showed never fired in practice: `@insider` is
18
+ * always current, so tier-2 always wins before tier-3 is reached. Deleted
19
+ * in iter-7 per the "verify you didn't add code that's no longer needed"
20
+ * mandate.
21
+ */
22
+ export interface SquadStateMcpSpec {
23
+ /** Executable to spawn (always `npx` after iter-7). */
24
+ command: string;
25
+ /** Argv for the executable. */
26
+ args: string[];
27
+ /** How the spec was resolved — useful for logging + tests. */
28
+ source: 'pinned' | 'insider';
29
+ }
30
+ export interface ResolveSquadStateMcpSpecOptions {
31
+ /**
32
+ * Override the published-version check. Tests inject this to avoid real
33
+ * network traffic.
34
+ */
35
+ publishedCheck?: (version: string) => Promise<boolean>;
36
+ }
37
+ /** Reset internal caches (test-only helper; retained for compat). */
38
+ export declare function _resetMcpSpecCache(): void;
39
+ /**
40
+ * Resolve the squad_state MCP launch spec given the running CLI version.
41
+ *
42
+ * Always returns a spec. If the pinned version is unpublished we fall back
43
+ * to `@insider`; if even that turns out to be unreachable at runtime, `npx`
44
+ * will fail visibly when Copilot launches the MCP server — same behavior
45
+ * as pre-iter-5.
46
+ */
47
+ export declare function resolveSquadStateMcpSpec(cliVersion: string, options?: ResolveSquadStateMcpSpecOptions): Promise<SquadStateMcpSpec>;
48
+ //# sourceMappingURL=mcp-spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-spec.d.ts","sourceRoot":"","sources":["../../../src/cli/core/mcp-spec.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,MAAM,WAAW,iBAAiB;IAChC,uDAAuD;IACvD,OAAO,EAAE,MAAM,CAAC;IAChB,+BAA+B;IAC/B,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,8DAA8D;IAC9D,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAC;CAC9B;AAID,MAAM,WAAW,+BAA+B;IAC9C;;;OAGG;IACH,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACxD;AAED,qEAAqE;AACrE,wBAAgB,kBAAkB,IAAI,IAAI,CAGzC;AAED;;;;;;;GAOG;AACH,wBAAsB,wBAAwB,CAC5C,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,+BAAoC,GAC5C,OAAO,CAAC,iBAAiB,CAAC,CAqB5B"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Shared helper for resolving the `squad_state` MCP launch spec.
3
+ *
4
+ * Used by BOTH `squad init` and `squad upgrade` so the runtime-MCP fallback
5
+ * behavior stays symmetric.
6
+ *
7
+ * Resolution order (iter-7, simplified to 2 tiers):
8
+ * 1. If `cliVersion` IS published on npm → `npx -y <pkg>@<version> state-mcp`
9
+ * (clean cross-machine UX, the steady-state happy path).
10
+ * 2. Else → `npx -y <pkg>@insider state-mcp`. We do NOT probe the registry;
11
+ * the `@insider` dist-tag is kept fresh by the publish flow and tier-2
12
+ * is the de-facto fallback whenever a pinned preview version isn't yet
13
+ * published. If it really isn't reachable at runtime, `npx` will fail
14
+ * loudly — same observable behavior as pre-iter-5.
15
+ *
16
+ * Iter-6 had two additional tiers (a local-install path resolver and a hard
17
+ * error) that the smoke data showed never fired in practice: `@insider` is
18
+ * always current, so tier-2 always wins before tier-3 is reached. Deleted
19
+ * in iter-7 per the "verify you didn't add code that's no longer needed"
20
+ * mandate.
21
+ */
22
+ const PACKAGE_NAME = '@bradygaster/squad-cli';
23
+ /** Reset internal caches (test-only helper; retained for compat). */
24
+ export function _resetMcpSpecCache() {
25
+ // no caches in the 2-tier resolver — kept as a no-op for backward compat
26
+ // with any test that still calls it.
27
+ }
28
+ /**
29
+ * Resolve the squad_state MCP launch spec given the running CLI version.
30
+ *
31
+ * Always returns a spec. If the pinned version is unpublished we fall back
32
+ * to `@insider`; if even that turns out to be unreachable at runtime, `npx`
33
+ * will fail visibly when Copilot launches the MCP server — same behavior
34
+ * as pre-iter-5.
35
+ */
36
+ export async function resolveSquadStateMcpSpec(cliVersion, options = {}) {
37
+ // 1. Try the pinned version on the public registry. Skip for placeholder
38
+ // versions ('', '0.0.0') — the registry will obviously not have them.
39
+ if (cliVersion && cliVersion !== '0.0.0') {
40
+ const probe = options.publishedCheck ?? defaultPublishedCheck;
41
+ const published = await probe(cliVersion);
42
+ if (published) {
43
+ return {
44
+ command: 'npx',
45
+ args: ['-y', `${PACKAGE_NAME}@${cliVersion}`, 'state-mcp'],
46
+ source: 'pinned',
47
+ };
48
+ }
49
+ }
50
+ // 2. Fall back to the @insider dist-tag — always returned, never probed.
51
+ return {
52
+ command: 'npx',
53
+ args: ['-y', `${PACKAGE_NAME}@insider`, 'state-mcp'],
54
+ source: 'insider',
55
+ };
56
+ }
57
+ async function defaultPublishedCheck(version) {
58
+ const { isSquadCliVersionPublished } = await import('./npm-registry.js');
59
+ return await isSquadCliVersionPublished(version);
60
+ }
61
+ //# sourceMappingURL=mcp-spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-spec.js","sourceRoot":"","sources":["../../../src/cli/core/mcp-spec.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAWH,MAAM,YAAY,GAAG,wBAAwB,CAAC;AAU9C,qEAAqE;AACrE,MAAM,UAAU,kBAAkB;IAChC,yEAAyE;IACzE,qCAAqC;AACvC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,UAAkB,EAClB,UAA2C,EAAE;IAE7C,yEAAyE;IACzE,yEAAyE;IACzE,IAAI,UAAU,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,OAAO,CAAC,cAAc,IAAI,qBAAqB,CAAC;QAC9D,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,CAAC;QAC1C,IAAI,SAAS,EAAE,CAAC;YACd,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,IAAI,EAAE,CAAC,IAAI,EAAE,GAAG,YAAY,IAAI,UAAU,EAAE,EAAE,WAAW,CAAC;gBAC1D,MAAM,EAAE,QAAQ;aACjB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,yEAAyE;IACzE,OAAO;QACL,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,CAAC,IAAI,EAAE,GAAG,YAAY,UAAU,EAAE,WAAW,CAAC;QACpD,MAAM,EAAE,SAAS;KAClB,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,qBAAqB,CAAC,OAAe;IAClD,MAAM,EAAE,0BAA0B,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;IACzE,OAAO,MAAM,0BAA0B,CAAC,OAAO,CAAC,CAAC;AACnD,CAAC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Lightweight helper to check whether a specific package version exists in the
3
+ * public npm registry. Used by `ensureSquadStateMcpPinned` to avoid pinning a
4
+ * `squad_state` MCP launch spec to a version that `npx` cannot resolve
5
+ * (which would cause an ETARGET at session start and leave the bridge unwired).
6
+ *
7
+ * The result is cached per-process to avoid repeated lookups across the
8
+ * multi-pass upgrade flow. Network failures and non-200 responses are
9
+ * conservatively treated as "version not published" so that we fall back to
10
+ * the locally-installed binary rather than pinning a bad spec.
11
+ *
12
+ * See `.squad/files/validation/MCP-LOADER-ROOT-CAUSE.md` (data-15 Option A).
13
+ */
14
+ /** Reset the cache (test-only helper). */
15
+ export declare function _resetNpmRegistryCache(): void;
16
+ /**
17
+ * Returns true if `@bradygaster/squad-cli@<version>` is reachable on the npm
18
+ * registry, false on any network failure / 404 / non-publishable response.
19
+ *
20
+ * Uses Node's built-in `https` so we don't pull in extra deps. Total budget
21
+ * is bounded by `timeoutMs` (default 2s) so a slow / offline registry can
22
+ * never block CLI startup.
23
+ */
24
+ export declare function isSquadCliVersionPublished(version: string, timeoutMs?: number): Promise<boolean>;
25
+ //# sourceMappingURL=npm-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"npm-registry.d.ts","sourceRoot":"","sources":["../../../src/cli/core/npm-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,0CAA0C;AAC1C,wBAAgB,sBAAsB,IAAI,IAAI,CAE7C;AAED;;;;;;;GAOG;AACH,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,MAAM,EACf,SAAS,SAAO,GACf,OAAO,CAAC,OAAO,CAAC,CAqClB"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Lightweight helper to check whether a specific package version exists in the
3
+ * public npm registry. Used by `ensureSquadStateMcpPinned` to avoid pinning a
4
+ * `squad_state` MCP launch spec to a version that `npx` cannot resolve
5
+ * (which would cause an ETARGET at session start and leave the bridge unwired).
6
+ *
7
+ * The result is cached per-process to avoid repeated lookups across the
8
+ * multi-pass upgrade flow. Network failures and non-200 responses are
9
+ * conservatively treated as "version not published" so that we fall back to
10
+ * the locally-installed binary rather than pinning a bad spec.
11
+ *
12
+ * See `.squad/files/validation/MCP-LOADER-ROOT-CAUSE.md` (data-15 Option A).
13
+ */
14
+ const cache = new Map();
15
+ /** Reset the cache (test-only helper). */
16
+ export function _resetNpmRegistryCache() {
17
+ cache.clear();
18
+ }
19
+ /**
20
+ * Returns true if `@bradygaster/squad-cli@<version>` is reachable on the npm
21
+ * registry, false on any network failure / 404 / non-publishable response.
22
+ *
23
+ * Uses Node's built-in `https` so we don't pull in extra deps. Total budget
24
+ * is bounded by `timeoutMs` (default 2s) so a slow / offline registry can
25
+ * never block CLI startup.
26
+ */
27
+ export async function isSquadCliVersionPublished(version, timeoutMs = 2000) {
28
+ if (!version || version === '0.0.0')
29
+ return false;
30
+ const cacheKey = version;
31
+ const cached = cache.get(cacheKey);
32
+ if (cached !== undefined)
33
+ return cached;
34
+ const url = `https://registry.npmjs.org/@bradygaster%2Fsquad-cli/${encodeURIComponent(version)}`;
35
+ const ok = await new Promise((resolve) => {
36
+ let settled = false;
37
+ const finish = (v) => {
38
+ if (settled)
39
+ return;
40
+ settled = true;
41
+ resolve(v);
42
+ };
43
+ const timer = setTimeout(() => finish(false), timeoutMs);
44
+ void import('node:https')
45
+ .then(({ request }) => {
46
+ const req = request(url, { method: 'GET' }, (res) => {
47
+ // Drain to free the socket.
48
+ res.resume();
49
+ finish(res.statusCode === 200);
50
+ });
51
+ req.on('error', () => finish(false));
52
+ req.on('timeout', () => {
53
+ req.destroy();
54
+ finish(false);
55
+ });
56
+ req.setTimeout(timeoutMs);
57
+ req.end();
58
+ })
59
+ .catch(() => finish(false))
60
+ .finally(() => clearTimeout(timer));
61
+ });
62
+ cache.set(cacheKey, ok);
63
+ return ok;
64
+ }
65
+ //# sourceMappingURL=npm-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"npm-registry.js","sourceRoot":"","sources":["../../../src/cli/core/npm-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,MAAM,KAAK,GAAG,IAAI,GAAG,EAAmB,CAAC;AAEzC,0CAA0C;AAC1C,MAAM,UAAU,sBAAsB;IACpC,KAAK,CAAC,KAAK,EAAE,CAAC;AAChB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,OAAe,EACf,SAAS,GAAG,IAAI;IAEhB,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IAClD,MAAM,QAAQ,GAAG,OAAO,CAAC;IACzB,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACnC,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IAExC,MAAM,GAAG,GAAG,uDAAuD,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;IACjG,MAAM,EAAE,GAAG,MAAM,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,EAAE;QAChD,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,MAAM,MAAM,GAAG,CAAC,CAAU,EAAE,EAAE;YAC5B,IAAI,OAAO;gBAAE,OAAO;YACpB,OAAO,GAAG,IAAI,CAAC;YACf,OAAO,CAAC,CAAC,CAAC,CAAC;QACb,CAAC,CAAC;QACF,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,CAAC;QAEzD,KAAK,MAAM,CAAC,YAAY,CAAC;aACtB,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;YACpB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE;gBAClD,4BAA4B;gBAC5B,GAAG,CAAC,MAAM,EAAE,CAAC;gBACb,MAAM,CAAC,GAAG,CAAC,UAAU,KAAK,GAAG,CAAC,CAAC;YACjC,CAAC,CAAC,CAAC;YACH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACrC,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;gBACrB,GAAG,CAAC,OAAO,EAAE,CAAC;gBACd,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;YACH,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YAC1B,GAAG,CAAC,GAAG,EAAE,CAAC;QACZ,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;aAC1B,OAAO,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACxB,OAAO,EAAE,CAAC;AACZ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../../src/cli/core/templates.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,+BAA+B;AAC/B,MAAM,WAAW,YAAY;IAC3B,yCAAyC;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,WAAW,EAAE,MAAM,CAAC;IACpB,yDAAyD;IACzD,kBAAkB,EAAE,OAAO,CAAC;IAC5B,8BAA8B;IAC9B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,EAAE,YAAY,EA4S3C,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAWxC"}
1
+ {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../../src/cli/core/templates.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,+BAA+B;AAC/B,MAAM,WAAW,YAAY;IAC3B,yCAAyC;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,WAAW,EAAE,MAAM,CAAC;IACpB,yDAAyD;IACzD,kBAAkB,EAAE,OAAO,CAAC;IAC5B,8BAA8B;IAC9B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,EAAE,YAAY,EAiT3C,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAWxC"}