@bradygaster/squad-cli 0.9.6-insider.2 → 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.
- package/dist/cli/commands/copilot-bridge.d.ts.map +1 -1
- package/dist/cli/commands/copilot-bridge.js +5 -1
- package/dist/cli/commands/copilot-bridge.js.map +1 -1
- package/dist/cli/commands/doctor.d.ts +6 -0
- package/dist/cli/commands/doctor.d.ts.map +1 -1
- package/dist/cli/commands/doctor.js +120 -5
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/export.d.ts +7 -3
- package/dist/cli/commands/export.d.ts.map +1 -1
- package/dist/cli/commands/export.js +68 -16
- package/dist/cli/commands/export.js.map +1 -1
- package/dist/cli/commands/import.d.ts +7 -3
- package/dist/cli/commands/import.d.ts.map +1 -1
- package/dist/cli/commands/import.js +140 -42
- package/dist/cli/commands/import.js.map +1 -1
- package/dist/cli/commands/install-hooks.d.ts.map +1 -1
- package/dist/cli/commands/install-hooks.js +50 -5
- package/dist/cli/commands/install-hooks.js.map +1 -1
- package/dist/cli/commands/link.d.ts.map +1 -1
- package/dist/cli/commands/link.js +7 -1
- package/dist/cli/commands/link.js.map +1 -1
- package/dist/cli/commands/loop.d.ts.map +1 -1
- package/dist/cli/commands/loop.js +7 -5
- package/dist/cli/commands/loop.js.map +1 -1
- package/dist/cli/commands/memory.d.ts +2 -0
- package/dist/cli/commands/memory.d.ts.map +1 -0
- package/dist/cli/commands/memory.js +304 -0
- package/dist/cli/commands/memory.js.map +1 -0
- package/dist/cli/commands/migrate-backend.d.ts +36 -5
- package/dist/cli/commands/migrate-backend.d.ts.map +1 -1
- package/dist/cli/commands/migrate-backend.js +250 -40
- package/dist/cli/commands/migrate-backend.js.map +1 -1
- package/dist/cli/commands/notes.d.ts +27 -0
- package/dist/cli/commands/notes.d.ts.map +1 -0
- package/dist/cli/commands/notes.js +222 -0
- package/dist/cli/commands/notes.js.map +1 -0
- package/dist/cli/commands/plugin.d.ts.map +1 -1
- package/dist/cli/commands/plugin.js +423 -8
- package/dist/cli/commands/plugin.js.map +1 -1
- package/dist/cli/commands/skill.d.ts +31 -0
- package/dist/cli/commands/skill.d.ts.map +1 -0
- package/dist/cli/commands/skill.js +497 -0
- package/dist/cli/commands/skill.js.map +1 -0
- package/dist/cli/commands/start.d.ts.map +1 -1
- package/dist/cli/commands/start.js +9 -1
- package/dist/cli/commands/start.js.map +1 -1
- package/dist/cli/commands/state-mcp.d.ts +25 -0
- package/dist/cli/commands/state-mcp.d.ts.map +1 -0
- package/dist/cli/commands/state-mcp.js +168 -0
- package/dist/cli/commands/state-mcp.js.map +1 -0
- package/dist/cli/commands/watch/agent-spawn.d.ts +62 -0
- package/dist/cli/commands/watch/agent-spawn.d.ts.map +1 -0
- package/dist/cli/commands/watch/agent-spawn.js +127 -0
- package/dist/cli/commands/watch/agent-spawn.js.map +1 -0
- package/dist/cli/commands/watch/capabilities/board.d.ts.map +1 -1
- package/dist/cli/commands/watch/capabilities/board.js +2 -1
- package/dist/cli/commands/watch/capabilities/board.js.map +1 -1
- package/dist/cli/commands/watch/capabilities/decision-hygiene.d.ts.map +1 -1
- package/dist/cli/commands/watch/capabilities/decision-hygiene.js +3 -2
- package/dist/cli/commands/watch/capabilities/decision-hygiene.js.map +1 -1
- package/dist/cli/commands/watch/capabilities/execute.d.ts.map +1 -1
- package/dist/cli/commands/watch/capabilities/execute.js +14 -2
- package/dist/cli/commands/watch/capabilities/execute.js.map +1 -1
- package/dist/cli/commands/watch/capabilities/index.d.ts.map +1 -1
- package/dist/cli/commands/watch/capabilities/index.js +2 -0
- package/dist/cli/commands/watch/capabilities/index.js.map +1 -1
- package/dist/cli/commands/watch/capabilities/monitor-email.d.ts +1 -1
- package/dist/cli/commands/watch/capabilities/monitor-email.d.ts.map +1 -1
- package/dist/cli/commands/watch/capabilities/monitor-email.js +21 -4
- package/dist/cli/commands/watch/capabilities/monitor-email.js.map +1 -1
- package/dist/cli/commands/watch/capabilities/monitor-teams.d.ts +1 -1
- package/dist/cli/commands/watch/capabilities/monitor-teams.d.ts.map +1 -1
- package/dist/cli/commands/watch/capabilities/monitor-teams.js +21 -5
- package/dist/cli/commands/watch/capabilities/monitor-teams.js.map +1 -1
- package/dist/cli/commands/watch/capabilities/notes-promote.d.ts +11 -0
- package/dist/cli/commands/watch/capabilities/notes-promote.d.ts.map +1 -0
- package/dist/cli/commands/watch/capabilities/notes-promote.js +124 -0
- package/dist/cli/commands/watch/capabilities/notes-promote.js.map +1 -0
- package/dist/cli/commands/watch/capabilities/retro.d.ts.map +1 -1
- package/dist/cli/commands/watch/capabilities/retro.js +3 -2
- package/dist/cli/commands/watch/capabilities/retro.js.map +1 -1
- package/dist/cli/commands/watch/capabilities/wave-dispatch.d.ts.map +1 -1
- package/dist/cli/commands/watch/capabilities/wave-dispatch.js +2 -1
- package/dist/cli/commands/watch/capabilities/wave-dispatch.js.map +1 -1
- package/dist/cli/commands/watch/index.d.ts.map +1 -1
- package/dist/cli/commands/watch/index.js +16 -12
- package/dist/cli/commands/watch/index.js.map +1 -1
- package/dist/cli/core/cast.d.ts.map +1 -1
- package/dist/cli/core/cast.js +132 -1
- package/dist/cli/core/cast.js.map +1 -1
- package/dist/cli/core/command-help.d.ts +44 -0
- package/dist/cli/core/command-help.d.ts.map +1 -0
- package/dist/cli/core/command-help.js +401 -0
- package/dist/cli/core/command-help.js.map +1 -0
- package/dist/cli/core/copilot-invocation.d.ts +57 -0
- package/dist/cli/core/copilot-invocation.d.ts.map +1 -0
- package/dist/cli/core/copilot-invocation.js +84 -0
- package/dist/cli/core/copilot-invocation.js.map +1 -0
- package/dist/cli/core/effective-squad-dir.d.ts +33 -0
- package/dist/cli/core/effective-squad-dir.d.ts.map +1 -0
- package/dist/cli/core/effective-squad-dir.js +37 -0
- package/dist/cli/core/effective-squad-dir.js.map +1 -0
- package/dist/cli/core/init.d.ts +2 -0
- package/dist/cli/core/init.d.ts.map +1 -1
- package/dist/cli/core/init.js +74 -1
- package/dist/cli/core/init.js.map +1 -1
- package/dist/cli/core/mcp-root.d.ts +60 -0
- package/dist/cli/core/mcp-root.d.ts.map +1 -0
- package/dist/cli/core/mcp-root.js +124 -0
- package/dist/cli/core/mcp-root.js.map +1 -0
- package/dist/cli/core/mcp-spec.d.ts +48 -0
- package/dist/cli/core/mcp-spec.d.ts.map +1 -0
- package/dist/cli/core/mcp-spec.js +61 -0
- package/dist/cli/core/mcp-spec.js.map +1 -0
- package/dist/cli/core/npm-registry.d.ts +25 -0
- package/dist/cli/core/npm-registry.d.ts.map +1 -0
- package/dist/cli/core/npm-registry.js +65 -0
- package/dist/cli/core/npm-registry.js.map +1 -0
- package/dist/cli/core/templates.d.ts.map +1 -1
- package/dist/cli/core/templates.js +52 -16
- package/dist/cli/core/templates.js.map +1 -1
- package/dist/cli/core/upgrade.d.ts +5 -0
- package/dist/cli/core/upgrade.d.ts.map +1 -1
- package/dist/cli/core/upgrade.js +231 -12
- package/dist/cli/core/upgrade.js.map +1 -1
- package/dist/cli/index.d.ts +1 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +1 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/shell/components/App.js +1 -1
- package/dist/cli/shell/components/App.js.map +1 -1
- package/dist/cli/shell/components/MessageStream.js +2 -2
- package/dist/cli/shell/components/MessageStream.js.map +1 -1
- package/dist/cli/shell/coordinator.d.ts.map +1 -1
- package/dist/cli/shell/coordinator.js +11 -5
- package/dist/cli/shell/coordinator.js.map +1 -1
- package/dist/cli/shell/index.d.ts.map +1 -1
- package/dist/cli/shell/index.js +14 -7
- package/dist/cli/shell/index.js.map +1 -1
- package/dist/cli/shell/lifecycle.d.ts.map +1 -1
- package/dist/cli/shell/lifecycle.js +12 -7
- package/dist/cli/shell/lifecycle.js.map +1 -1
- package/dist/cli/shell/session-store.d.ts +4 -4
- package/dist/cli/shell/session-store.d.ts.map +1 -1
- package/dist/cli/shell/session-store.js +11 -11
- package/dist/cli/shell/session-store.js.map +1 -1
- package/dist/cli-entry.js +162 -50
- package/dist/cli-entry.js.map +1 -1
- package/package.json +7 -3
- package/scripts/patch-esm-imports.mjs +3 -1
- package/templates/after-agent-reference.md +64 -0
- package/templates/ceremony-reference.md +82 -0
- package/templates/client-compatibility-reference.md +46 -0
- package/templates/copilot-agent.md +96 -0
- package/templates/copilot-instructions.md +14 -0
- package/templates/model-selection-reference.md +101 -0
- package/templates/prd-intake.md +105 -0
- package/templates/rai-charter.md +110 -0
- package/templates/rai-policy.md +103 -0
- package/templates/ralph-reference.md +141 -0
- package/templates/routing.md +1 -0
- package/templates/scribe-charter.md +18 -151
- package/templates/session-init-reference.md +199 -0
- package/templates/skills/e2e-template-testing/SKILL.md +557 -0
- package/templates/skills/fact-checking/SKILL.md +61 -0
- package/templates/skills/squad-commands/SKILL.md +303 -0
- package/templates/skills/squad-version-check/SKILL.md +160 -0
- package/templates/spawn-reference.md +131 -0
- package/templates/squad.agent.md.template +200 -625
- package/templates/workflow-wiring-appendix-a-code-reviewer.md +131 -0
- package/templates/workflow-wiring-appendix-b-documenter.md +140 -0
- package/templates/workflow-wiring-guide.md +276 -0
- package/templates/workflows/squad-heartbeat.yml +167 -167
- package/templates/worktree-reference.md +126 -0
|
@@ -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"}
|
package/dist/cli/core/init.d.ts
CHANGED
|
@@ -30,6 +30,8 @@ export interface RunInitOptions {
|
|
|
30
30
|
isGlobal?: boolean;
|
|
31
31
|
/** State backend to configure at init time (local, orphan, two-layer) */
|
|
32
32
|
stateBackend?: string;
|
|
33
|
+
/** If true, write MCP server config into squad.agent.md frontmatter instead of .copilot/mcp-config.json */
|
|
34
|
+
mcpFrontmatter?: boolean;
|
|
33
35
|
}
|
|
34
36
|
/**
|
|
35
37
|
* Main init command handler
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/core/init.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
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"}
|
package/dist/cli/core/init.js
CHANGED
|
@@ -10,8 +10,12 @@ import { success, BOLD, RESET, YELLOW, GREEN, DIM } from './output.js';
|
|
|
10
10
|
import { fatal } from './errors.js';
|
|
11
11
|
import { detectProjectType } from './project-type.js';
|
|
12
12
|
import { getPackageVersion, stampVersion } from './version.js';
|
|
13
|
-
import { initSquad as sdkInitSquad, cleanupOrphanInitPrompt, ensurePersonalSquadDir, resolvePersonalSquadDir } from '@bradygaster/squad-sdk';
|
|
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
|
/**
|
|
@@ -176,6 +180,11 @@ export async function runInit(dest, options = {}) {
|
|
|
176
180
|
name: 'ralph',
|
|
177
181
|
role: 'ralph',
|
|
178
182
|
displayName: 'Ralph',
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
name: 'Rai',
|
|
186
|
+
role: 'Rai',
|
|
187
|
+
displayName: 'Rai',
|
|
179
188
|
}
|
|
180
189
|
],
|
|
181
190
|
configFormat: options.sdk ? 'sdk' : 'markdown',
|
|
@@ -183,6 +192,7 @@ export async function runInit(dest, options = {}) {
|
|
|
183
192
|
includeWorkflows: options.includeWorkflows !== false,
|
|
184
193
|
includeTemplates: true,
|
|
185
194
|
includeMcpConfig: true,
|
|
195
|
+
mcpConfigMode: options.mcpFrontmatter ? 'agent-frontmatter' : 'copilot-file',
|
|
186
196
|
projectType: projectType,
|
|
187
197
|
version,
|
|
188
198
|
prompt: options.prompt,
|
|
@@ -211,6 +221,12 @@ export async function runInit(dest, options = {}) {
|
|
|
211
221
|
return; // Unreachable but makes TS happy
|
|
212
222
|
}
|
|
213
223
|
process.off('SIGINT', sigintHandler);
|
|
224
|
+
// Init just created `.squad/` (and possibly `.github/agents/`) on disk.
|
|
225
|
+
// Any subsequent code in this process that calls resolveSquad()/findSquadDir()
|
|
226
|
+
// would otherwise be served the cached "not found" result from before init
|
|
227
|
+
// ran. Drop the resolution cache so the new directory is observed
|
|
228
|
+
// immediately instead of after the 5-second TTL.
|
|
229
|
+
clearResolveSquadCache();
|
|
214
230
|
// Ensure version is fully stamped in squad.agent.md
|
|
215
231
|
const agentPath = path.join(agentFileRoot, '.github', 'agents', 'squad.agent.md');
|
|
216
232
|
if (storage.existsSync(agentPath)) {
|
|
@@ -275,12 +291,66 @@ export async function runInit(dest, options = {}) {
|
|
|
275
291
|
}
|
|
276
292
|
// Install git hooks for automatic state sync on push/pull
|
|
277
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
|
+
}
|
|
278
331
|
}
|
|
279
332
|
}
|
|
280
333
|
else {
|
|
281
334
|
console.warn(`${YELLOW}⚠ Unknown state backend "${options.stateBackend}". Using default (local).${RESET}`);
|
|
282
335
|
}
|
|
283
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
|
+
}
|
|
284
354
|
// Report .init-prompt storage
|
|
285
355
|
if (options.prompt) {
|
|
286
356
|
success(`.init-prompt stored — team will be cast when you run ${CYAN}${BOLD}copilot --agent squad${RESET}`);
|
|
@@ -307,6 +377,9 @@ export async function runInit(dest, options = {}) {
|
|
|
307
377
|
console.log();
|
|
308
378
|
console.log(`${GREEN}${BOLD}Squad initialized.${RESET} Run ${CYAN}${BOLD}copilot --agent squad${RESET} and tell it what you're building.`);
|
|
309
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();
|
|
310
383
|
// ── Personal squad bridge ───────────────────────────────────────────
|
|
311
384
|
if (options.isGlobal) {
|
|
312
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":"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"}
|
|
@@ -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"}
|