@bradygaster/squad-cli 0.9.5-insider.2 → 0.9.6-insider.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/dist/cli/commands/install-hooks.d.ts +26 -0
  2. package/dist/cli/commands/install-hooks.d.ts.map +1 -0
  3. package/dist/cli/commands/install-hooks.js +244 -0
  4. package/dist/cli/commands/install-hooks.js.map +1 -0
  5. package/dist/cli/commands/migrate-backend.d.ts +16 -0
  6. package/dist/cli/commands/migrate-backend.d.ts.map +1 -0
  7. package/dist/cli/commands/migrate-backend.js +87 -0
  8. package/dist/cli/commands/migrate-backend.js.map +1 -0
  9. package/dist/cli/commands/sync.d.ts +24 -0
  10. package/dist/cli/commands/sync.d.ts.map +1 -0
  11. package/dist/cli/commands/sync.js +257 -0
  12. package/dist/cli/commands/sync.js.map +1 -0
  13. package/dist/cli/commands/watch/config.d.ts +4 -1
  14. package/dist/cli/commands/watch/config.d.ts.map +1 -1
  15. package/dist/cli/commands/watch/config.js +2 -1
  16. package/dist/cli/commands/watch/config.js.map +1 -1
  17. package/dist/cli/core/init.d.ts +2 -0
  18. package/dist/cli/core/init.d.ts.map +1 -1
  19. package/dist/cli/core/init.js +63 -3
  20. package/dist/cli/core/init.js.map +1 -1
  21. package/dist/cli-entry.js +27 -5
  22. package/dist/cli-entry.js.map +1 -1
  23. package/package.json +6 -5
  24. package/templates/notes-protocol.md +202 -0
  25. package/templates/scribe-charter.md +95 -1
  26. package/templates/scripts/notes/fetch.ps1 +88 -0
  27. package/templates/scripts/notes/write-note.ps1 +126 -0
  28. package/templates/skills/cross-machine-coordination/SKILL.md +8 -0
  29. package/templates/skills/init-mode/SKILL.md +3 -3
  30. package/templates/skills/model-selection/SKILL.md +8 -0
  31. package/templates/skills/nap/SKILL.md +8 -0
  32. package/templates/skills/personal-squad/SKILL.md +8 -0
  33. package/templates/skills/ralph-two-pass-scan/SKILL.md +8 -0
  34. package/templates/skills/release-process/SKILL.md +91 -5
  35. package/templates/squad.agent.md.template +137 -14
@@ -0,0 +1,257 @@
1
+ /**
2
+ * Squad Sync — synchronizes squad-state branches and git notes with a remote.
3
+ *
4
+ * Used directly (`squad sync`) or invoked by git hooks (pre-push, post-merge, post-rewrite).
5
+ * Handles both orphan and two-layer backends transparently.
6
+ *
7
+ * Design:
8
+ * - Fetches remote squad-state branch(es) and fast-forwards local refs
9
+ * - Pushes local squad-state branch(es) to remote
10
+ * - For two-layer, also syncs refs/notes/squad* namespaces
11
+ * - Uses fast-forward-only semantics to avoid data loss on divergence
12
+ * - Recursion guard via SQUAD_SYNC_ACTIVE env var
13
+ */
14
+ import { execFileSync } from 'node:child_process';
15
+ import path from 'node:path';
16
+ import fs from 'node:fs';
17
+ const SQUAD_SYNC_ENV = 'SQUAD_SYNC_ACTIVE';
18
+ const STATE_BRANCH_PREFIX = 'squad-state';
19
+ /**
20
+ * Detect the configured state backend from .squad/config.json
21
+ */
22
+ function detectBackend(cwd) {
23
+ try {
24
+ const configPath = path.join(cwd, '.squad', 'config.json');
25
+ const raw = fs.readFileSync(configPath, 'utf-8');
26
+ const config = JSON.parse(raw);
27
+ return config.stateBackend || null;
28
+ }
29
+ catch {
30
+ return null;
31
+ }
32
+ }
33
+ /**
34
+ * Get git repo root for the given working directory.
35
+ */
36
+ function getRepoRoot(cwd) {
37
+ return execFileSync('git', ['rev-parse', '--show-toplevel'], {
38
+ cwd, encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'],
39
+ }).trim();
40
+ }
41
+ /**
42
+ * Discover all local squad-state branches (supports subsquads).
43
+ * Uses strict prefix matching: squad-state or squad-state/<name>
44
+ */
45
+ function discoverStateBranches(cwd) {
46
+ try {
47
+ const output = execFileSync('git', ['for-each-ref', '--format=%(refname:short)', `refs/heads/${STATE_BRANCH_PREFIX}`], {
48
+ cwd, encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'],
49
+ }).trim();
50
+ const exact = output ? output.split('\n').filter(Boolean) : [];
51
+ // Also find squad-state/* (subsquad branches)
52
+ const subOutput = execFileSync('git', ['for-each-ref', '--format=%(refname:short)', `refs/heads/${STATE_BRANCH_PREFIX}/`], {
53
+ cwd, encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'],
54
+ }).trim();
55
+ const subs = subOutput ? subOutput.split('\n').filter(Boolean) : [];
56
+ return [...exact, ...subs];
57
+ }
58
+ catch {
59
+ return [];
60
+ }
61
+ }
62
+ /**
63
+ * Discover remote squad-state branches.
64
+ */
65
+ function discoverRemoteStateBranches(cwd, remote) {
66
+ try {
67
+ const output = execFileSync('git', ['for-each-ref', '--format=%(refname:short)', `refs/remotes/${remote}/${STATE_BRANCH_PREFIX}`], {
68
+ cwd, encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'],
69
+ }).trim();
70
+ const exact = output ? output.split('\n').filter(Boolean) : [];
71
+ const subOutput = execFileSync('git', ['for-each-ref', '--format=%(refname:short)', `refs/remotes/${remote}/${STATE_BRANCH_PREFIX}/`], {
72
+ cwd, encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'],
73
+ }).trim();
74
+ const subs = subOutput ? subOutput.split('\n').filter(Boolean) : [];
75
+ return [...exact, ...subs];
76
+ }
77
+ catch {
78
+ return [];
79
+ }
80
+ }
81
+ /**
82
+ * Resolve the default remote for the current branch (or fallback to 'origin').
83
+ */
84
+ function resolveRemote(cwd) {
85
+ try {
86
+ const branch = execFileSync('git', ['symbolic-ref', '--short', 'HEAD'], {
87
+ cwd, encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'],
88
+ }).trim();
89
+ const remote = execFileSync('git', ['config', `branch.${branch}.remote`], {
90
+ cwd, encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'],
91
+ }).trim();
92
+ return remote || 'origin';
93
+ }
94
+ catch {
95
+ return 'origin';
96
+ }
97
+ }
98
+ /**
99
+ * Pull: fetch remote state branches and fast-forward local refs.
100
+ */
101
+ function syncPull(cwd, remote, backend, quiet) {
102
+ // Fetch squad-state refs from remote
103
+ try {
104
+ execFileSync('git', ['fetch', remote, `+refs/heads/${STATE_BRANCH_PREFIX}:refs/remotes/${remote}/${STATE_BRANCH_PREFIX}`, `+refs/heads/${STATE_BRANCH_PREFIX}/*:refs/remotes/${remote}/${STATE_BRANCH_PREFIX}/*`], {
105
+ cwd, encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'],
106
+ });
107
+ }
108
+ catch {
109
+ // Remote may not have these refs yet — not an error
110
+ if (!quiet)
111
+ console.log(' No remote squad-state refs found (first push will create them).');
112
+ return;
113
+ }
114
+ // Fast-forward local branches from remote-tracking refs
115
+ const remoteBranches = discoverRemoteStateBranches(cwd, remote);
116
+ for (const remoteBranch of remoteBranches) {
117
+ // remoteBranch is like "origin/squad-state" — extract local name
118
+ const localName = remoteBranch.replace(`${remote}/`, '');
119
+ const localRef = `refs/heads/${localName}`;
120
+ const remoteRef = `refs/remotes/${remoteBranch}`;
121
+ try {
122
+ // Check if local branch exists
123
+ execFileSync('git', ['rev-parse', '--verify', localRef], {
124
+ cwd, encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'],
125
+ });
126
+ // Local exists — try fast-forward
127
+ const localSha = execFileSync('git', ['rev-parse', localRef], {
128
+ cwd, encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'],
129
+ }).trim();
130
+ const remoteSha = execFileSync('git', ['rev-parse', remoteRef], {
131
+ cwd, encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'],
132
+ }).trim();
133
+ if (localSha === remoteSha)
134
+ continue; // Already up-to-date
135
+ // Check if fast-forward is possible (local is ancestor of remote)
136
+ try {
137
+ execFileSync('git', ['merge-base', '--is-ancestor', localSha, remoteSha], {
138
+ cwd, stdio: ['pipe', 'pipe', 'pipe'],
139
+ });
140
+ // Fast-forward: update local ref
141
+ execFileSync('git', ['update-ref', localRef, remoteSha], {
142
+ cwd, stdio: ['pipe', 'pipe', 'pipe'],
143
+ });
144
+ if (!quiet)
145
+ console.log(` ✓ ${localName}: fast-forwarded`);
146
+ }
147
+ catch {
148
+ // Diverged — cannot fast-forward
149
+ if (!quiet)
150
+ console.log(` ⚠ ${localName}: diverged from remote (manual merge needed)`);
151
+ }
152
+ }
153
+ catch {
154
+ // Local branch doesn't exist — create it tracking the remote
155
+ const remoteSha = execFileSync('git', ['rev-parse', remoteRef], {
156
+ cwd, encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'],
157
+ }).trim();
158
+ execFileSync('git', ['update-ref', localRef, remoteSha], {
159
+ cwd, stdio: ['pipe', 'pipe', 'pipe'],
160
+ });
161
+ if (!quiet)
162
+ console.log(` ✓ ${localName}: created from remote`);
163
+ }
164
+ }
165
+ // For two-layer: also fetch notes
166
+ if (backend === 'two-layer') {
167
+ try {
168
+ execFileSync('git', ['fetch', remote, '+refs/notes/squad*:refs/notes/squad*'], {
169
+ cwd, encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'],
170
+ });
171
+ if (!quiet)
172
+ console.log(' ✓ notes synced');
173
+ }
174
+ catch {
175
+ // Notes may not exist yet
176
+ }
177
+ }
178
+ }
179
+ /**
180
+ * Push: push local state branches to remote.
181
+ */
182
+ function syncPush(cwd, remote, backend, quiet) {
183
+ const branches = discoverStateBranches(cwd);
184
+ if (branches.length === 0) {
185
+ if (!quiet)
186
+ console.log(' No local squad-state branches to push.');
187
+ return;
188
+ }
189
+ // Build refspecs for all state branches
190
+ const refspecs = branches.map(b => `refs/heads/${b}:refs/heads/${b}`);
191
+ try {
192
+ execFileSync('git', ['push', '--no-verify', remote, ...refspecs], {
193
+ cwd, encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'],
194
+ });
195
+ if (!quiet)
196
+ console.log(` ✓ pushed: ${branches.join(', ')}`);
197
+ }
198
+ catch (err) {
199
+ const msg = err instanceof Error ? err.stderr || err.message : String(err);
200
+ if (msg.includes('non-fast-forward')) {
201
+ if (!quiet)
202
+ console.log(` ⚠ push rejected (non-fast-forward). Run 'squad sync --pull' first.`);
203
+ }
204
+ else {
205
+ if (!quiet)
206
+ console.log(` ⚠ push failed: ${msg}`);
207
+ }
208
+ }
209
+ // For two-layer: also push notes
210
+ if (backend === 'two-layer') {
211
+ try {
212
+ execFileSync('git', ['push', '--no-verify', remote, 'refs/notes/squad*:refs/notes/squad*'], {
213
+ cwd, encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'],
214
+ });
215
+ if (!quiet)
216
+ console.log(' ✓ notes pushed');
217
+ }
218
+ catch {
219
+ // Notes may not exist yet — not an error
220
+ }
221
+ }
222
+ }
223
+ /**
224
+ * Main sync entrypoint.
225
+ */
226
+ export async function runSync(options) {
227
+ // Recursion guard — prevent re-entry when our push triggers pre-push
228
+ if (process.env[SQUAD_SYNC_ENV]) {
229
+ return;
230
+ }
231
+ process.env[SQUAD_SYNC_ENV] = '1';
232
+ try {
233
+ const cwd = options.cwd || process.cwd();
234
+ const repoRoot = getRepoRoot(cwd);
235
+ const remote = options.remote || resolveRemote(repoRoot);
236
+ const backend = detectBackend(repoRoot);
237
+ const quiet = options.quiet ?? false;
238
+ // Skip sync for backends that don't need it
239
+ if (backend === 'local' || backend === 'external' || backend === null) {
240
+ if (!quiet)
241
+ console.log(`squad sync: backend is '${backend || 'local'}' — no remote sync needed.`);
242
+ return;
243
+ }
244
+ if (!quiet)
245
+ console.log(`squad sync: ${options.direction} (remote: ${remote}, backend: ${backend || 'orphan'})`);
246
+ if (options.direction === 'pull' || options.direction === 'both') {
247
+ syncPull(repoRoot, remote, backend, quiet);
248
+ }
249
+ if (options.direction === 'push' || options.direction === 'both') {
250
+ syncPush(repoRoot, remote, backend, quiet);
251
+ }
252
+ }
253
+ finally {
254
+ delete process.env[SQUAD_SYNC_ENV];
255
+ }
256
+ }
257
+ //# sourceMappingURL=sync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../../src/cli/commands/sync.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@
3
3
  *
4
4
  * Priority: CLI flag > .squad/config.json "watch" section > defaults.
5
5
  */
6
+ import type { SquadStateContext, StateBackendType } from '@bradygaster/squad-sdk';
6
7
  /** Dispatch strategy for issue execution. */
7
8
  export type DispatchMode = 'task' | 'fleet' | 'hybrid';
8
9
  /** Fully-resolved watch configuration. */
@@ -33,7 +34,9 @@ export interface WatchConfig {
33
34
  /** Path to a sentinel file — watch shuts down gracefully when removed. */
34
35
  sentinelFile?: string;
35
36
  /** State persistence backend. */
36
- stateBackend?: 'worktree' | 'git-notes' | 'orphan' | 'external';
37
+ stateBackend?: StateBackendType;
38
+ /** Pre-resolved state context from CLI entry (avoids redundant resolution). */
39
+ stateContext?: SquadStateContext | null;
37
40
  }
38
41
  /**
39
42
  * Load watch config from `.squad/config.json` then merge CLI overrides.
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/watch/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,6CAA6C;AAC7C,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEvD,0CAA0C;AAC1C,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gGAAgG;IAChG,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,kGAAkG;IAClG,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yEAAyE;IACzE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAChE,sDAAsD;IACtD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gFAAgF;IAChF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2CAA2C;IAC3C,WAAW,CAAC,EAAE,KAAK,GAAG,WAAW,GAAG,MAAM,CAAC;IAC3C,mDAAmD;IACnD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iDAAiD;IACjD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0EAA0E;IAC1E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iCAAiC;IACjC,YAAY,CAAC,EAAE,UAAU,GAAG,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAC;CACjE;AAWD;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,OAAO,CAAC,WAAW,CAAC,GACjC,WAAW,CAyCb"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/watch/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAIlF,6CAA6C;AAC7C,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEvD,0CAA0C;AAC1C,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gGAAgG;IAChG,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,kGAAkG;IAClG,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yEAAyE;IACzE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAChE,sDAAsD;IACtD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gFAAgF;IAChF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2CAA2C;IAC3C,WAAW,CAAC,EAAE,KAAK,GAAG,WAAW,GAAG,MAAM,CAAC;IAC3C,mDAAmD;IACnD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iDAAiD;IACjD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0EAA0E;IAC1E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iCAAiC;IACjC,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,+EAA+E;IAC/E,YAAY,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;CACzC;AAWD;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,OAAO,CAAC,WAAW,CAAC,GACjC,WAAW,CA0Cb"}
@@ -57,6 +57,7 @@ export function loadWatchConfig(teamRoot, cliOverrides) {
57
57
  overnightEnd: cliOverrides.overnightEnd ?? fileConfig.overnightEnd,
58
58
  sentinelFile: cliOverrides.sentinelFile ?? fileConfig.sentinelFile,
59
59
  stateBackend: cliOverrides.stateBackend ?? fileConfig.stateBackend,
60
+ stateContext: cliOverrides.stateContext,
60
61
  };
61
62
  return merged;
62
63
  }
@@ -101,7 +102,7 @@ function normalizeFileConfig(raw) {
101
102
  result.sentinelFile = raw['sentinelFile'];
102
103
  if (typeof raw['stateBackend'] === 'string') {
103
104
  const backend = raw['stateBackend'];
104
- const validBackends = ['worktree', 'git-notes', 'orphan', 'external'];
105
+ const validBackends = ['local', 'orphan', 'two-layer', 'external'];
105
106
  if (validBackends.includes(backend)) {
106
107
  result.stateBackend = backend;
107
108
  }
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../src/cli/commands/watch/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,MAAM,OAAO,GAAG,IAAI,iBAAiB,EAAE,CAAC;AAoCxC,MAAM,QAAQ,GAAgB;IAC5B,QAAQ,EAAE,EAAE;IACZ,OAAO,EAAE,KAAK;IACd,aAAa,EAAE,CAAC;IAChB,OAAO,EAAE,EAAE;IACX,YAAY,EAAE,SAAS;IACvB,YAAY,EAAE,EAAE;CACjB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAC7B,QAAgB,EAChB,YAAkC;IAElC,IAAI,UAAU,GAAyB,EAAE,CAAC;IAE1C,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;QAChE,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACzC,IAAI,GAAG,EAAE,CAAC;YACR,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAwC,CAAC;YACtE,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBACjB,UAAU,GAAG,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,+CAA+C;IACjD,CAAC;IAED,+BAA+B;IAC/B,MAAM,MAAM,GAAgB;QAC1B,QAAQ,EAAE,YAAY,CAAC,QAAQ,IAAI,UAAU,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ;QAC3E,OAAO,EAAE,YAAY,CAAC,OAAO,IAAI,UAAU,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO;QACvE,aAAa,EAAE,YAAY,CAAC,aAAa,IAAI,UAAU,CAAC,aAAa,IAAI,QAAQ,CAAC,aAAa;QAC/F,OAAO,EAAE,YAAY,CAAC,OAAO,IAAI,UAAU,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO;QACvE,YAAY,EAAE,YAAY,CAAC,YAAY,IAAI,UAAU,CAAC,YAAY,IAAI,QAAQ,CAAC,YAAY;QAC3F,QAAQ,EAAE,YAAY,CAAC,QAAQ,IAAI,UAAU,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ;QAC3E,YAAY,EAAE,YAAY,CAAC,YAAY,IAAI,UAAU,CAAC,YAAY,IAAI,QAAQ,CAAC,YAAY;QAC3F,OAAO,EAAE,YAAY,CAAC,OAAO,IAAI,UAAU,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO;QACvE,YAAY,EAAE;YACZ,GAAG,QAAQ,CAAC,YAAY;YACxB,GAAG,CAAC,UAAU,CAAC,YAAY,IAAI,EAAE,CAAC;YAClC,GAAG,CAAC,YAAY,CAAC,YAAY,IAAI,EAAE,CAAC;SACrC;QACD,OAAO,EAAE,YAAY,CAAC,OAAO,IAAI,UAAU,CAAC,OAAO,IAAI,KAAK;QAC5D,QAAQ,EAAE,YAAY,CAAC,QAAQ,IAAI,UAAU,CAAC,QAAQ;QACtD,WAAW,EAAE,YAAY,CAAC,WAAW,IAAI,UAAU,CAAC,WAAW;QAC/D,cAAc,EAAE,YAAY,CAAC,cAAc,IAAI,UAAU,CAAC,cAAc;QACxE,YAAY,EAAE,YAAY,CAAC,YAAY,IAAI,UAAU,CAAC,YAAY;QAClE,YAAY,EAAE,YAAY,CAAC,YAAY,IAAI,UAAU,CAAC,YAAY;QAClE,YAAY,EAAE,YAAY,CAAC,YAAY,IAAI,UAAU,CAAC,YAAY;KACnE,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,+EAA+E;AAC/E,SAAS,mBAAmB,CAAC,GAA4B;IACvD,MAAM,MAAM,GAAyB,EAAE,CAAC;IAExC,IAAI,OAAO,GAAG,CAAC,UAAU,CAAC,KAAK,QAAQ;QAAE,MAAM,CAAC,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC;IAC3E,IAAI,OAAO,GAAG,CAAC,SAAS,CAAC,KAAK,SAAS;QAAE,MAAM,CAAC,OAAO,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC;IACzE,IAAI,OAAO,GAAG,CAAC,eAAe,CAAC,KAAK,QAAQ;QAAE,MAAM,CAAC,aAAa,GAAG,GAAG,CAAC,eAAe,CAAC,CAAC;IAC1F,IAAI,OAAO,GAAG,CAAC,SAAS,CAAC,KAAK,QAAQ;QAAE,MAAM,CAAC,OAAO,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC;IACxE,IAAI,OAAO,GAAG,CAAC,cAAc,CAAC,KAAK,QAAQ;QAAE,MAAM,CAAC,YAAY,GAAG,GAAG,CAAC,cAAc,CAAC,CAAC;IACvF,IAAI,OAAO,GAAG,CAAC,UAAU,CAAC,KAAK,QAAQ;QAAE,MAAM,CAAC,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC;IAC3E,IAAI,OAAO,GAAG,CAAC,SAAS,CAAC,KAAK,SAAS;QAAE,MAAM,CAAC,OAAO,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC;IACzE,IAAI,OAAO,GAAG,CAAC,cAAc,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC5C,MAAM,IAAI,GAAG,GAAG,CAAC,cAAc,CAAW,CAAC;QAC3C,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7D,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC;QAC7B,CAAC;IACH,CAAC;IACD,IAAI,OAAO,GAAG,CAAC,SAAS,CAAC,KAAK,QAAQ;QAAE,MAAM,CAAC,OAAO,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC;IACxE,IAAI,OAAO,GAAG,CAAC,UAAU,CAAC,KAAK,QAAQ;QAAE,MAAM,CAAC,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC;IAC3E,IAAI,OAAO,GAAG,CAAC,aAAa,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC3C,MAAM,KAAK,GAAG,GAAG,CAAC,aAAa,CAAC,CAAC;QACjC,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,WAAW,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;YACjE,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC;QAC7B,CAAC;IACH,CAAC;IACD,IAAI,OAAO,GAAG,CAAC,gBAAgB,CAAC,KAAK,QAAQ;QAAE,MAAM,CAAC,cAAc,GAAG,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC7F,IAAI,OAAO,GAAG,CAAC,cAAc,CAAC,KAAK,QAAQ;QAAE,MAAM,CAAC,YAAY,GAAG,GAAG,CAAC,cAAc,CAAC,CAAC;IACvF,IAAI,OAAO,GAAG,CAAC,cAAc,CAAC,KAAK,QAAQ;QAAE,MAAM,CAAC,YAAY,GAAG,GAAG,CAAC,cAAc,CAAC,CAAC;IACvF,IAAI,OAAO,GAAG,CAAC,cAAc,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC5C,MAAM,OAAO,GAAG,GAAG,CAAC,cAAc,CAAC,CAAC;QACpC,MAAM,aAAa,GAAG,CAAC,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAU,CAAC;QAC/E,IAAK,aAAmC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3D,MAAM,CAAC,YAAY,GAAG,OAAuC,CAAC;QAChE,CAAC;IACH,CAAC;IAED,sCAAsC;IACtC,MAAM,IAAI,GAAsD,EAAE,CAAC;IACnE,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,SAAS,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,gBAAgB,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC,CAAC;IAC7O,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/C,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QAChC,IAAI,OAAO,KAAK,KAAK,SAAS,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YACzG,IAAI,CAAC,GAAG,CAAC,GAAG,KAA0C,CAAC;QACzD,CAAC;IACH,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC;IAE7D,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../src/cli/commands/watch/config.ts"],"names":[],"mappings":"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"}
@@ -28,6 +28,8 @@ export interface RunInitOptions {
28
28
  roles?: boolean;
29
29
  /** If true, this is a global (personal squad) init — bootstrap personal-squad/ dir */
30
30
  isGlobal?: boolean;
31
+ /** State backend to configure at init time (local, orphan, two-layer) */
32
+ stateBackend?: string;
31
33
  }
32
34
  /**
33
35
  * Main init command handler
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/core/init.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAgBH;;;;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;CACpB;AAED;;GAEG;AACH,wBAAsB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CA0MvF"}
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;CACvB;AAED;;GAEG;AACH,wBAAsB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAmQvF"}
@@ -11,6 +11,7 @@ import { fatal } from './errors.js';
11
11
  import { detectProjectType } from './project-type.js';
12
12
  import { getPackageVersion, stampVersion } from './version.js';
13
13
  import { initSquad as sdkInitSquad, cleanupOrphanInitPrompt, ensurePersonalSquadDir, resolvePersonalSquadDir } from '@bradygaster/squad-sdk';
14
+ import { installGitHooks } from '../commands/install-hooks.js';
14
15
  const storage = new FSStorageProvider();
15
16
  const CYAN = '\x1b[36m';
16
17
  /**
@@ -146,7 +147,7 @@ export async function runInit(dest, options = {}) {
146
147
  if (useShared) {
147
148
  console.log();
148
149
  console.log(`${GREEN}${BOLD}✓${RESET} Using shared .squad/ from ${mainCheckout}`);
149
- console.log(`${DIM} No changes made. Run squad commands from the main checkout.${RESET}`);
150
+ console.log(`${DIM} No changes made. Run ${CYAN}${BOLD}copilot --agent squad${RESET}${DIM} commands from the main checkout.${RESET}`);
150
151
  console.log();
151
152
  return;
152
153
  }
@@ -221,9 +222,68 @@ export async function runInit(dest, options = {}) {
221
222
  storage.writeSync(rolesMarker, '1');
222
223
  success(`base roles enabled — team will use built-in role catalog`);
223
224
  }
225
+ // Configure state backend if specified at init time
226
+ if (options.stateBackend) {
227
+ const validBackends = ['local', 'orphan', 'two-layer', 'external'];
228
+ if (validBackends.includes(options.stateBackend)) {
229
+ const configPath = path.join(squadDir, 'config.json');
230
+ let config = {};
231
+ try {
232
+ const raw = storage.readSync(configPath);
233
+ if (raw)
234
+ config = JSON.parse(raw);
235
+ }
236
+ catch { /* start fresh */ }
237
+ config['stateBackend'] = options.stateBackend;
238
+ storage.writeSync(configPath, JSON.stringify(config, null, 2) + '\n');
239
+ success(`state backend: ${options.stateBackend}`);
240
+ // Auto-create orphan branch for orphan/two-layer backends
241
+ // Uses git plumbing (mktree + commit-tree + update-ref) so the working tree is never touched.
242
+ if (options.stateBackend === 'orphan' || options.stateBackend === 'two-layer') {
243
+ try {
244
+ execFileSync('git', ['rev-parse', '--verify', 'refs/heads/squad-state'], {
245
+ cwd: dest, encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'],
246
+ });
247
+ success(`squad-state branch already exists`);
248
+ }
249
+ catch {
250
+ try {
251
+ // Seed a README blob so the branch isn't completely empty
252
+ const readmeContent = '# Squad State\n\nThis orphan branch stores mutable squad state.\nIt is managed automatically and should not be edited by hand.\n';
253
+ const blobHash = execFileSync('git', ['hash-object', '-w', '--stdin'], {
254
+ cwd: dest, encoding: 'utf-8', input: readmeContent, stdio: ['pipe', 'pipe', 'pipe'],
255
+ }).trim();
256
+ // Build a tree containing the README
257
+ const treeInput = `100644 blob ${blobHash}\tREADME.md\n`;
258
+ const treeHash = execFileSync('git', ['mktree'], {
259
+ cwd: dest, encoding: 'utf-8', input: treeInput, stdio: ['pipe', 'pipe', 'pipe'],
260
+ }).trim();
261
+ // Create the root commit (no parent → orphan)
262
+ const commitHash = execFileSync('git', ['commit-tree', treeHash, '-m', 'init: squad-state orphan branch'], {
263
+ cwd: dest, encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'],
264
+ }).trim();
265
+ // Point the branch ref at the new commit
266
+ execFileSync('git', ['update-ref', 'refs/heads/squad-state', commitHash], {
267
+ cwd: dest, stdio: ['pipe', 'pipe', 'pipe'],
268
+ });
269
+ success(`squad-state orphan branch created (working tree untouched)`);
270
+ }
271
+ catch (err) {
272
+ console.warn(`${YELLOW}⚠ Could not create squad-state branch: ${err instanceof Error ? err.message : err}${RESET}`);
273
+ console.warn(`${YELLOW} The ${options.stateBackend} backend will auto-create it on first write.${RESET}`);
274
+ }
275
+ }
276
+ // Install git hooks for automatic state sync on push/pull
277
+ installGitHooks(dest, { force: false });
278
+ }
279
+ }
280
+ else {
281
+ console.warn(`${YELLOW}⚠ Unknown state backend "${options.stateBackend}". Using default (local).${RESET}`);
282
+ }
283
+ }
224
284
  // Report .init-prompt storage
225
285
  if (options.prompt) {
226
- success(`.init-prompt stored — team will be cast when you start squad`);
286
+ success(`.init-prompt stored — team will be cast when you run ${CYAN}${BOLD}copilot --agent squad${RESET}`);
227
287
  }
228
288
  // Report created files
229
289
  for (const file of result.createdFiles) {
@@ -245,7 +305,7 @@ export async function runInit(dest, options = {}) {
245
305
  if (!isInitNoColor())
246
306
  await sleep(80);
247
307
  console.log();
248
- console.log(`${GREEN}${BOLD}Your team is ready.${RESET} Run ${CYAN}${BOLD}squad${RESET} to start.`);
308
+ console.log(`${GREEN}${BOLD}Squad initialized.${RESET} Run ${CYAN}${BOLD}copilot --agent squad${RESET} and tell it what you're building.`);
249
309
  console.log();
250
310
  // ── Personal squad bridge ───────────────────────────────────────────
251
311
  if (options.isGlobal) {
@@ -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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"}
package/dist/cli-entry.js CHANGED
@@ -80,7 +80,7 @@ function _handleTopLevelSignal(signal) {
80
80
  }
81
81
  process.on('SIGINT', () => _handleTopLevelSignal('SIGINT'));
82
82
  process.on('SIGTERM', () => _handleTopLevelSignal('SIGTERM'));
83
- import { FSStorageProvider } from '@bradygaster/squad-sdk';
83
+ import { FSStorageProvider, resolveSquadState } from '@bradygaster/squad-sdk';
84
84
  import path from 'node:path';
85
85
  import { fatal, SquadError } from './cli/core/errors.js';
86
86
  import { BOLD, RESET, DIM, RED, GREEN, YELLOW } from './cli/core/output.js';
@@ -140,6 +140,7 @@ async function main() {
140
140
  console.log(` --global (personal squad dir)`);
141
141
  console.log(` --no-workflows (skip CI setup)`);
142
142
  console.log(` --preset <name> (apply a preset after init)`);
143
+ console.log(` --state-backend <type> (local|orphan|two-layer)`);
143
144
  console.log(` Usage: init --mode remote <team-repo-path>`);
144
145
  console.log(` Creates .squad/config.json pointing to an external team root`);
145
146
  console.log(` ${BOLD}upgrade${RESET} Update Squad-owned files to latest version`);
@@ -147,6 +148,7 @@ async function main() {
147
148
  console.log(` Never touches: .squad/ or .ai-team/ (your team state)`);
148
149
  console.log(` Flags: --global (upgrade personal squad)`);
149
150
  console.log(` --migrate-directory (rename .ai-team/ → .squad/)`);
151
+ console.log(` --state-backend <type> (migrate to orphan|two-layer)`);
150
152
  console.log(` ${BOLD}migrate${RESET} Convert between markdown and SDK-First squad formats`);
151
153
  console.log(` Flags: --to sdk|markdown, --from ai-team, --dry-run`);
152
154
  console.log(` ${BOLD}status${RESET} Show which squad is active and why`);
@@ -293,8 +295,11 @@ async function main() {
293
295
  const roles = args.includes('--roles');
294
296
  const presetIdx = args.indexOf('--preset');
295
297
  const presetName = (presetIdx !== -1 && args[presetIdx + 1]) ? args[presetIdx + 1] : undefined;
298
+ // Parse --state-backend flag for init
299
+ const sbIdx = args.indexOf('--state-backend');
300
+ const initStateBackend = (sbIdx !== -1 && args[sbIdx + 1]) ? args[sbIdx + 1] : undefined;
296
301
  // Global init: suppress workflows (no GitHub CI in ~/.config/squad/) and bootstrap personal squad
297
- runInit(dest, { includeWorkflows: !noWorkflows && !hasGlobal, sdk, roles, isGlobal: hasGlobal }).then(async () => {
302
+ runInit(dest, { includeWorkflows: !noWorkflows && !hasGlobal, sdk, roles, isGlobal: hasGlobal, stateBackend: initStateBackend }).then(async () => {
298
303
  if (presetName) {
299
304
  const { seedBuiltinPresets, applyPreset } = await import('@bradygaster/squad-sdk/presets');
300
305
  const { resolvePresetsDir, ensureSquadHome } = await import('@bradygaster/squad-sdk/resolution');
@@ -338,6 +343,9 @@ async function main() {
338
343
  const forceUpgrade = args.includes('--force');
339
344
  const insider = args.includes('--insider');
340
345
  const dest = hasGlobal ? (await lazySquadSdk()).resolveGlobalSquadPath() : getSquadStartDir();
346
+ // Parse --state-backend for backend migration
347
+ const sbIdx = args.indexOf('--state-backend');
348
+ const upgradeStateBackend = (sbIdx !== -1 && args[sbIdx + 1]) ? args[sbIdx + 1] : undefined;
341
349
  // Warn when --insider is used without --self (it has no effect on project upgrades)
342
350
  if (insider && !selfUpgrade) {
343
351
  console.warn('⚠️ --insider only applies with --self (squad upgrade --self --insider). Ignoring.');
@@ -359,6 +367,16 @@ async function main() {
359
367
  self: selfUpgrade,
360
368
  force: forceUpgrade
361
369
  });
370
+ // Handle --state-backend: migrate backend after upgrade
371
+ if (upgradeStateBackend) {
372
+ const { migrateStateBackend } = await import('./cli/commands/migrate-backend.js');
373
+ await migrateStateBackend(dest, upgradeStateBackend);
374
+ }
375
+ else {
376
+ // Ensure hooks are installed for existing orphan/two-layer backends
377
+ const { ensureHooksForBackend } = await import('./cli/commands/install-hooks.js');
378
+ ensureHooksForBackend(dest);
379
+ }
362
380
  return;
363
381
  }
364
382
  if (cmd === 'migrate') {
@@ -449,12 +467,15 @@ async function main() {
449
467
  const rawStateBackend = (stateBackendIdx !== -1 && args[stateBackendIdx + 1])
450
468
  ? args[stateBackendIdx + 1]
451
469
  : undefined;
452
- const validBackends = ['worktree', 'git-notes', 'orphan', 'external'];
470
+ const validBackends = ['local', 'orphan', 'two-layer', 'external'];
453
471
  if (rawStateBackend && !validBackends.includes(rawStateBackend)) {
454
472
  console.error(`\u26a0\ufe0f Invalid --state-backend "${rawStateBackend}". Valid: ${validBackends.join(', ')}.`);
455
473
  process.exit(1);
456
474
  }
457
- const stateBackend = rawStateBackend;
475
+ const mappedBackend = rawStateBackend;
476
+ // Resolve the full state context (paths + backend) once at entry.
477
+ // Commands can thread this through instead of re-resolving independently.
478
+ const stateContext = resolveSquadState(getSquadStartDir(), mappedBackend);
458
479
  // Build capability overrides from CLI flags and --no-{cap} flags
459
480
  const capabilities = {};
460
481
  const registry = createDefaultRegistry();
@@ -488,7 +509,8 @@ async function main() {
488
509
  overnightStart,
489
510
  overnightEnd,
490
511
  sentinelFile,
491
- stateBackend,
512
+ stateBackend: mappedBackend,
513
+ stateContext,
492
514
  capabilities: Object.keys(capabilities).length > 0 ? capabilities : undefined,
493
515
  });
494
516
  // After parsing all flags, check for positional args that look like prompts.