specweave 3.0.3 → 3.0.6

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 (90) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/README.md +2 -2
  3. package/bin/specweave.js +12 -7
  4. package/bin/startup-check.js +1 -1
  5. package/dist/src/cli/commands/auto-handoff.d.ts +17 -23
  6. package/dist/src/cli/commands/auto-handoff.d.ts.map +1 -1
  7. package/dist/src/cli/commands/auto-handoff.js +140 -65
  8. package/dist/src/cli/commands/auto-handoff.js.map +1 -1
  9. package/dist/src/cli/commands/handoff.d.ts +10 -0
  10. package/dist/src/cli/commands/handoff.d.ts.map +1 -1
  11. package/dist/src/cli/commands/handoff.js +50 -0
  12. package/dist/src/cli/commands/handoff.js.map +1 -1
  13. package/dist/src/cli/commands/jev-helpers.d.ts +1 -1
  14. package/dist/src/cli/commands/jev-helpers.d.ts.map +1 -1
  15. package/dist/src/cli/commands/jev-helpers.js +8 -4
  16. package/dist/src/cli/commands/jev-helpers.js.map +1 -1
  17. package/dist/src/cli/commands/jev.js +4 -4
  18. package/dist/src/cli/commands/jev.js.map +1 -1
  19. package/dist/src/cli/commands/pickup.d.ts +11 -0
  20. package/dist/src/cli/commands/pickup.d.ts.map +1 -1
  21. package/dist/src/cli/commands/pickup.js +28 -8
  22. package/dist/src/cli/commands/pickup.js.map +1 -1
  23. package/dist/src/cli/helpers/init/gitignore-generator.d.ts.map +1 -1
  24. package/dist/src/cli/helpers/init/gitignore-generator.js +26 -5
  25. package/dist/src/cli/helpers/init/gitignore-generator.js.map +1 -1
  26. package/dist/src/core/config/types.d.ts +2 -2
  27. package/dist/src/core/config/types.d.ts.map +1 -1
  28. package/dist/src/core/jev/client.d.ts +4 -1
  29. package/dist/src/core/jev/client.d.ts.map +1 -1
  30. package/dist/src/core/jev/client.js +118 -23
  31. package/dist/src/core/jev/client.js.map +1 -1
  32. package/dist/src/core/jev/config.d.ts +1 -1
  33. package/dist/src/core/jev/config.d.ts.map +1 -1
  34. package/dist/src/core/jev/config.js +8 -3
  35. package/dist/src/core/jev/config.js.map +1 -1
  36. package/dist/src/core/jev/openai.d.ts +21 -0
  37. package/dist/src/core/jev/openai.d.ts.map +1 -0
  38. package/dist/src/core/jev/openai.js +116 -0
  39. package/dist/src/core/jev/openai.js.map +1 -0
  40. package/dist/src/core/jev/usage.d.ts +4 -0
  41. package/dist/src/core/jev/usage.d.ts.map +1 -1
  42. package/dist/src/core/jev/usage.js +3 -0
  43. package/dist/src/core/jev/usage.js.map +1 -1
  44. package/dist/src/core/session/checkpoint-worker.d.ts +2 -0
  45. package/dist/src/core/session/checkpoint-worker.d.ts.map +1 -0
  46. package/dist/src/core/session/checkpoint-worker.js +43 -0
  47. package/dist/src/core/session/checkpoint-worker.js.map +1 -0
  48. package/dist/src/core/session/handoff-all.d.ts +124 -0
  49. package/dist/src/core/session/handoff-all.d.ts.map +1 -0
  50. package/dist/src/core/session/handoff-all.js +429 -0
  51. package/dist/src/core/session/handoff-all.js.map +1 -0
  52. package/dist/src/core/session/handoff-doc-format.d.ts +9 -0
  53. package/dist/src/core/session/handoff-doc-format.d.ts.map +1 -1
  54. package/dist/src/core/session/handoff-doc-format.js +28 -4
  55. package/dist/src/core/session/handoff-doc-format.js.map +1 -1
  56. package/dist/src/core/session/handoff-git-state.d.ts +3 -1
  57. package/dist/src/core/session/handoff-git-state.d.ts.map +1 -1
  58. package/dist/src/core/session/handoff-git-state.js +32 -12
  59. package/dist/src/core/session/handoff-git-state.js.map +1 -1
  60. package/dist/src/core/session/handoff-report.js +1 -0
  61. package/dist/src/core/session/handoff-report.js.map +1 -1
  62. package/dist/src/core/session/nested-repos.d.ts +90 -0
  63. package/dist/src/core/session/nested-repos.d.ts.map +1 -0
  64. package/dist/src/core/session/nested-repos.js +239 -0
  65. package/dist/src/core/session/nested-repos.js.map +1 -0
  66. package/dist/src/core/session/pickup.d.ts +1 -0
  67. package/dist/src/core/session/pickup.d.ts.map +1 -1
  68. package/dist/src/core/session/pickup.js +4 -4
  69. package/dist/src/core/session/pickup.js.map +1 -1
  70. package/dist/src/core/session/session-checkpoint.d.ts +46 -0
  71. package/dist/src/core/session/session-checkpoint.d.ts.map +1 -0
  72. package/dist/src/core/session/session-checkpoint.js +262 -0
  73. package/dist/src/core/session/session-checkpoint.js.map +1 -0
  74. package/dist/src/core/session/usage-guard.d.ts +59 -51
  75. package/dist/src/core/session/usage-guard.d.ts.map +1 -1
  76. package/dist/src/core/session/usage-guard.js +148 -88
  77. package/dist/src/core/session/usage-guard.js.map +1 -1
  78. package/dist/src/core/session/work-handoff.d.ts +6 -0
  79. package/dist/src/core/session/work-handoff.d.ts.map +1 -1
  80. package/dist/src/core/session/work-handoff.js +55 -13
  81. package/dist/src/core/session/work-handoff.js.map +1 -1
  82. package/dist/src/core/tasks/ledger.d.ts +5 -1
  83. package/dist/src/core/tasks/ledger.d.ts.map +1 -1
  84. package/dist/src/core/tasks/ledger.js +6 -2
  85. package/dist/src/core/tasks/ledger.js.map +1 -1
  86. package/package.json +1 -1
  87. package/plugins/specweave/.claude-plugin/plugin.json +1 -1
  88. package/plugins/specweave/skills/handoff/SKILL.md +54 -9
  89. package/plugins/specweave/skills/jev/SKILL.md +81 -83
  90. package/src/templates/AGENTS.md.template +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"pickup.js","sourceRoot":"","sources":["../../../../src/core/session/pickup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pickup.js","sourceRoot":"","sources":["../../../../src/core/session/pickup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ export declare const CHECKPOINT_INTERVAL_MS: number;
2
+ export declare const CHECKPOINT_WORKER_TIMEOUT_MS = 8000;
3
+ export declare const CHECKPOINT_LOCK_STALE_MS = 15000;
4
+ export declare const CHECKPOINT_MAX_WORKERS = 4;
5
+ export interface CheckpointInput {
6
+ session_id?: string;
7
+ sessionId?: string;
8
+ cwd?: string;
9
+ workspaceRoot?: string;
10
+ last_assistant_message?: string;
11
+ }
12
+ export interface CheckpointOptions {
13
+ home?: string;
14
+ now?: number;
15
+ }
16
+ export interface CheckpointReceipt {
17
+ version: 1;
18
+ sessionId: string;
19
+ cwd: string;
20
+ savedAt: string;
21
+ docPath: string;
22
+ diffPath: string;
23
+ incrementId?: string;
24
+ }
25
+ export interface CheckpointRequest {
26
+ version: 1;
27
+ sessionId: string;
28
+ cwd: string;
29
+ directory: string;
30
+ generation: string;
31
+ token: string;
32
+ slot: string;
33
+ summary?: string;
34
+ }
35
+ export declare function checkpointsDirectory(home?: string): string;
36
+ export declare function checkpointDirectory(input: CheckpointInput, opts?: CheckpointOptions): string | undefined;
37
+ export declare function readSessionCheckpoint(input: CheckpointInput, opts?: CheckpointOptions): CheckpointReceipt | undefined;
38
+ /** @internal Reserve a bounded worker slot and persist only scrubbed worker input. */
39
+ export declare function prepareSessionCheckpoint(input: CheckpointInput, opts?: CheckpointOptions): string | undefined;
40
+ /** Queue at most one capture per session/worktree and four per user. All errors fail open. */
41
+ export declare function queueSessionCheckpoint(input: CheckpointInput, opts?: CheckpointOptions): void;
42
+ /** Called by the supervisor on success, failure, or its hard deadline. */
43
+ export declare function cleanupCheckpointRequest(requestPath: string): void;
44
+ /** Worker entry: publish the receipt last, so interruption leaves the previous snapshot usable. */
45
+ export declare function runSessionCheckpoint(requestPath: string): Promise<void>;
46
+ //# sourceMappingURL=session-checkpoint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-checkpoint.d.ts","sourceRoot":"","sources":["../../../../src/core/session/session-checkpoint.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,sBAAsB,QAAa,CAAC;AACjD,eAAO,MAAM,4BAA4B,OAAQ,CAAC;AAClD,eAAO,MAAM,wBAAwB,QAAS,CAAC;AAC/C,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAExC,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,iBAAiB;IAAG,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE;AAElE,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,CAAC,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAGD,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,CAAC,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAuBD,wBAAgB,oBAAoB,CAAC,IAAI,SAAe,GAAG,MAAM,CAEhE;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,GAAE,iBAAsB,GAAG,MAAM,GAAG,SAAS,CAK5G;AAMD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,GAAE,iBAAsB,GAAG,iBAAiB,GAAG,SAAS,CAMzH;AAoDD,sFAAsF;AACtF,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,GAAE,iBAAsB,GAAG,MAAM,GAAG,SAAS,CA0CjH;AAED,8FAA8F;AAC9F,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,GAAE,iBAAsB,GAAG,IAAI,CAUjG;AAED,0EAA0E;AAC1E,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAWlE;AAED,mGAAmG;AACnG,wBAAsB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAgC7E"}
@@ -0,0 +1,262 @@
1
+ /** Local, session-owned recovery snapshots. Scheduling never waits for Git or a model. */
2
+ import * as fs from 'node:fs';
3
+ import * as os from 'node:os';
4
+ import * as path from 'node:path';
5
+ import { createHash, randomUUID } from 'node:crypto';
6
+ import { spawn } from 'node:child_process';
7
+ import { fileURLToPath } from 'node:url';
8
+ import { scrubSecrets } from './handoff-secret-scrub.js';
9
+ export const CHECKPOINT_INTERVAL_MS = 5 * 60000;
10
+ export const CHECKPOINT_WORKER_TIMEOUT_MS = 8000;
11
+ export const CHECKPOINT_LOCK_STALE_MS = 15000;
12
+ export const CHECKPOINT_MAX_WORKERS = 4;
13
+ /** Resolve symlinks and the nearest Git worktree without invoking Git in the hook. */
14
+ function checkpointIdentity(input) {
15
+ const sessionId = input.session_id ?? input.sessionId;
16
+ if (typeof sessionId !== 'string' || !/^[\w.-]{1,128}$/.test(sessionId) || sessionId.includes('..'))
17
+ return undefined;
18
+ const start = input.cwd ?? input.workspaceRoot ?? process.cwd();
19
+ if (typeof start !== 'string' || !path.isAbsolute(start))
20
+ return undefined;
21
+ try {
22
+ const original = fs.realpathSync(start);
23
+ if (!fs.statSync(original).isDirectory())
24
+ return undefined;
25
+ let current = original;
26
+ while (true) {
27
+ if (fs.existsSync(path.join(current, '.git')))
28
+ return { sessionId, cwd: current };
29
+ const parent = path.dirname(current);
30
+ if (parent === current)
31
+ break;
32
+ current = parent;
33
+ }
34
+ // Plain folders can still preserve a summary; no recursive project scan.
35
+ return { sessionId, cwd: original };
36
+ }
37
+ catch {
38
+ return undefined;
39
+ }
40
+ }
41
+ export function checkpointsDirectory(home = os.homedir()) {
42
+ return path.join(home, '.specweave', 'checkpoints');
43
+ }
44
+ export function checkpointDirectory(input, opts = {}) {
45
+ const identity = checkpointIdentity(input);
46
+ if (!identity)
47
+ return undefined;
48
+ const key = createHash('sha256').update(identity.cwd).update('\0').update(identity.sessionId).digest('hex');
49
+ return path.join(checkpointsDirectory(opts.home), key);
50
+ }
51
+ function readJson(file) {
52
+ try {
53
+ return JSON.parse(fs.readFileSync(file, 'utf8'));
54
+ }
55
+ catch {
56
+ return undefined;
57
+ }
58
+ }
59
+ export function readSessionCheckpoint(input, opts = {}) {
60
+ const directory = checkpointDirectory(input, opts);
61
+ if (!directory)
62
+ return undefined;
63
+ const receipt = readJson(path.join(directory, 'current.json'));
64
+ return receipt?.version === 1 && typeof receipt.savedAt === 'string' && typeof receipt.docPath === 'string'
65
+ && typeof receipt.diffPath === 'string' && fs.existsSync(receipt.docPath) && fs.existsSync(receipt.diffPath) ? receipt : undefined;
66
+ }
67
+ function leaseMatches(file, token) {
68
+ const lease = readJson(path.join(file, `${token}.json`));
69
+ return lease?.token === token && typeof lease.ticket === 'number';
70
+ }
71
+ function releaseLease(file, token) {
72
+ // Every contender owns a distinct filename, including after stale recovery.
73
+ for (const suffix of ['json', 'ready']) {
74
+ try {
75
+ fs.unlinkSync(path.join(file, `${token}.${suffix}`));
76
+ }
77
+ catch { /* already gone */ }
78
+ }
79
+ try {
80
+ fs.rmdirSync(file);
81
+ }
82
+ catch { /* another contender still owns this directory */ }
83
+ }
84
+ function acquireLease(file, token, now) {
85
+ try {
86
+ // A short bakery election: announce choosing first, then select one greater
87
+ // than every existing ticket. Concurrent choosers cause a safe retry; the
88
+ // stable lowest (ticket, token) wins. No shared filename is ever unlinked.
89
+ fs.mkdirSync(file, { recursive: true, mode: 0o700 });
90
+ const own = path.join(file, `${token}.json`);
91
+ fs.writeFileSync(own, JSON.stringify({ token, at: now }), { flag: 'wx', mode: 0o600 });
92
+ const candidates = () => {
93
+ const leases = [];
94
+ for (const name of fs.readdirSync(file)) {
95
+ if (!name.endsWith('.json'))
96
+ continue;
97
+ const candidate = path.join(file, name);
98
+ try {
99
+ if (Date.now() - fs.statSync(candidate).mtimeMs > CHECKPOINT_LOCK_STALE_MS) {
100
+ fs.unlinkSync(candidate);
101
+ continue;
102
+ }
103
+ // A half-written contender must also prevent concurrent ownership.
104
+ leases.push(readJson(candidate) ?? { token: name, at: now });
105
+ }
106
+ catch { /* a contender finished between readdir and read */ }
107
+ }
108
+ return leases;
109
+ };
110
+ const ticket = 1 + Math.max(0, ...candidates().map((lease) => lease.ticket ?? 0));
111
+ const ready = path.join(file, `${token}.ready`);
112
+ fs.writeFileSync(ready, JSON.stringify({ token, at: now, ticket }), { flag: 'wx', mode: 0o600 });
113
+ fs.renameSync(ready, own);
114
+ if (candidates().some((lease) => lease.token !== token &&
115
+ (lease.ticket === undefined || lease.ticket < ticket || (lease.ticket === ticket && lease.token < token)))) {
116
+ releaseLease(file, token);
117
+ return false;
118
+ }
119
+ return true;
120
+ }
121
+ catch {
122
+ releaseLease(file, token);
123
+ return false;
124
+ }
125
+ }
126
+ /** @internal Reserve a bounded worker slot and persist only scrubbed worker input. */
127
+ export function prepareSessionCheckpoint(input, opts = {}) {
128
+ const identity = checkpointIdentity(input);
129
+ const directory = checkpointDirectory(input, opts);
130
+ if (!identity || !directory)
131
+ return;
132
+ const now = opts.now ?? Date.now();
133
+ const previous = readSessionCheckpoint(input, opts);
134
+ const savedAt = previous ? Date.parse(previous.savedAt) : NaN;
135
+ if (Number.isFinite(savedAt) && now >= savedAt && now - savedAt < CHECKPOINT_INTERVAL_MS)
136
+ return;
137
+ const token = randomUUID();
138
+ const lock = path.join(directory, 'pending.lock');
139
+ if (!acquireLease(lock, token, now))
140
+ return;
141
+ let slot;
142
+ let requestPath;
143
+ try {
144
+ // A worker can have finished between our initial receipt read and election.
145
+ const latest = readSessionCheckpoint(input, opts);
146
+ const latestAt = latest ? Date.parse(latest.savedAt) : NaN;
147
+ const afterLease = opts.now ?? Date.now();
148
+ if (Number.isFinite(latestAt) && afterLease >= latestAt && afterLease - latestAt < CHECKPOINT_INTERVAL_MS) {
149
+ releaseLease(lock, token);
150
+ return;
151
+ }
152
+ const slots = path.join(checkpointsDirectory(opts.home), '.workers');
153
+ for (let i = 0; i < CHECKPOINT_MAX_WORKERS; i++) {
154
+ const candidate = path.join(slots, `${i}.lock`);
155
+ if (acquireLease(candidate, token, now)) {
156
+ slot = candidate;
157
+ break;
158
+ }
159
+ }
160
+ if (!slot) {
161
+ releaseLease(lock, token);
162
+ return;
163
+ }
164
+ const generation = `snapshot-${now}-${token}`;
165
+ const summary = typeof input.last_assistant_message === 'string'
166
+ ? scrubSecrets(input.last_assistant_message.slice(0, 32000)).scrubbed : undefined;
167
+ const request = { version: 1, ...identity, directory, generation, token, slot, ...(summary ? { summary } : {}) };
168
+ requestPath = path.join(directory, `request-${token}.json`);
169
+ fs.writeFileSync(requestPath, JSON.stringify(request), { flag: 'wx', mode: 0o600 });
170
+ return requestPath;
171
+ }
172
+ catch {
173
+ if (requestPath)
174
+ cleanupCheckpointRequest(requestPath);
175
+ else {
176
+ releaseLease(lock, token);
177
+ if (slot)
178
+ releaseLease(slot, token);
179
+ }
180
+ }
181
+ }
182
+ /** Queue at most one capture per session/worktree and four per user. All errors fail open. */
183
+ export function queueSessionCheckpoint(input, opts = {}) {
184
+ const requestPath = prepareSessionCheckpoint(input, opts);
185
+ if (!requestPath)
186
+ return;
187
+ try {
188
+ const worker = fileURLToPath(new URL('./checkpoint-worker.js', import.meta.url));
189
+ if (!fs.existsSync(worker))
190
+ throw new Error('checkpoint worker is not built');
191
+ const child = spawn(process.execPath, [worker, requestPath], { detached: true, stdio: 'ignore', windowsHide: true });
192
+ child.once('error', () => cleanupCheckpointRequest(requestPath));
193
+ child.unref();
194
+ }
195
+ catch {
196
+ cleanupCheckpointRequest(requestPath);
197
+ }
198
+ }
199
+ /** Called by the supervisor on success, failure, or its hard deadline. */
200
+ export function cleanupCheckpointRequest(requestPath) {
201
+ const request = readJson(requestPath);
202
+ if (!request || request.version !== 1)
203
+ return;
204
+ releaseLease(path.join(request.directory, 'pending.lock'), request.token);
205
+ releaseLease(request.slot, request.token);
206
+ const generationDir = path.join(request.directory, request.generation);
207
+ const receipt = readJson(path.join(request.directory, 'current.json'));
208
+ if (!receipt || path.dirname(receipt.docPath) !== generationDir) {
209
+ try {
210
+ fs.rmSync(generationDir, { recursive: true, force: true });
211
+ }
212
+ catch { /* best effort */ }
213
+ }
214
+ try {
215
+ fs.unlinkSync(requestPath);
216
+ }
217
+ catch { /* already removed */ }
218
+ }
219
+ /** Worker entry: publish the receipt last, so interruption leaves the previous snapshot usable. */
220
+ export async function runSessionCheckpoint(requestPath) {
221
+ const request = readJson(requestPath);
222
+ if (!request || request.version !== 1 || !leaseMatches(path.join(request.directory, 'pending.lock'), request.token))
223
+ return;
224
+ const generationDir = path.join(request.directory, request.generation);
225
+ const previous = readJson(path.join(request.directory, 'current.json'));
226
+ let published = false;
227
+ try {
228
+ fs.mkdirSync(generationDir, { mode: 0o700 });
229
+ const { buildWorkHandoff } = await import('./work-handoff.js');
230
+ const result = await buildWorkHandoff(request.cwd, {
231
+ checkpoint: true, checkpointRoot: request.cwd, push: false, keepClaims: true,
232
+ out: path.join(generationDir, 'handoff.md'), reason: 'automatic local session checkpoint', summary: request.summary,
233
+ });
234
+ if (!fs.statSync(result.docPath).size || !fs.existsSync(result.diffPath))
235
+ throw new Error('incomplete checkpoint');
236
+ if (!leaseMatches(path.join(request.directory, 'pending.lock'), request.token))
237
+ return;
238
+ const receipt = {
239
+ version: 1, sessionId: request.sessionId, cwd: request.cwd, savedAt: new Date().toISOString(),
240
+ docPath: result.docPath, diffPath: result.diffPath, ...(result.incrementId ? { incrementId: result.incrementId } : {}),
241
+ };
242
+ const temporary = path.join(request.directory, `current-${request.token}.json`);
243
+ fs.writeFileSync(temporary, JSON.stringify(receipt, null, 2) + '\n', { flag: 'wx', mode: 0o600 });
244
+ fs.renameSync(temporary, path.join(request.directory, 'current.json'));
245
+ published = true;
246
+ // Retain the preceding generation for recovery; prune only our old snapshot directories.
247
+ const keep = new Set([generationDir, previous && path.dirname(previous.docPath)]);
248
+ for (const name of fs.readdirSync(request.directory)) {
249
+ const file = path.join(request.directory, name);
250
+ if (name.startsWith('snapshot-') && !keep.has(file))
251
+ fs.rmSync(file, { recursive: true, force: true });
252
+ }
253
+ }
254
+ catch {
255
+ if (!published)
256
+ try {
257
+ fs.rmSync(generationDir, { recursive: true, force: true });
258
+ }
259
+ catch { /* preserve existing receipt */ }
260
+ }
261
+ }
262
+ //# sourceMappingURL=session-checkpoint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-checkpoint.js","sourceRoot":"","sources":["../../../../src/core/session/session-checkpoint.ts"],"names":[],"mappings":"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"}
@@ -1,22 +1,6 @@
1
- /**
2
- * Auto-handoff near the usage limit.
3
- *
4
- * Neither Claude Code nor Codex tells a hook how much of the plan's limit is
5
- * left, so the guard reads it where each tool does expose it:
6
- *
7
- * Claude Code the status line command receives `rate_limits.five_hour` /
8
- * `seven_day` / `spend_limit` `.used_percentage` (Pro and Max,
9
- * after the first reply). `specweave statusline` saves them per
10
- * session under ~/.specweave/usage/.
11
- * Codex every turn appends a `token_count` event with
12
- * `rate_limits.primary` / `secondary` `.used_percent` to the
13
- * rollout file the hook's `transcript_path` points at.
14
- *
15
- * The Stop hook (`specweave usage-guard`) then blocks the stop once per
16
- * session when any window is at or past the threshold, and the agent runs
17
- * `specweave handoff`. Under the threshold it prints `{}`: no tokens, no files.
18
- *
19
- * @module core/session/usage-guard
1
+ /** Usage readings for display only. Automatic saving is quota-independent.
2
+ * A plan allowance may be exhausted while paid credits or a proxy still work.
3
+ * Never turn these advisory readings into a stop/continue instruction.
20
4
  */
21
5
  export declare const DEFAULT_THRESHOLD = 90;
22
6
  export interface UsageWindow {
@@ -40,49 +24,73 @@ export declare function writeSettings(settings: AutoHandoffSettings | undefined,
40
24
  export declare function claudeWindows(input: unknown): UsageWindow[];
41
25
  /** Save what the status line saw, for the Stop hook of the same session. */
42
26
  export declare function recordClaudeUsage(input: unknown, home?: string, now?: number): UsageWindow[];
27
+ /** Claude Code drops its own usage cache after an hour; so does the guard. */
28
+ export declare const CLAUDE_CACHE_MAX_AGE_MS: number;
29
+ /**
30
+ * Claude Code's own record of the plan usage: `cachedUsageUtilization` in
31
+ * ~/.claude.json (or $CLAUDE_CONFIG_DIR/.claude.json), written whenever Claude
32
+ * Code fetches the usage, in every kind of session: terminal, desktop, Remote
33
+ * Control and `claude -p`. It is the reading for sessions that never run a
34
+ * status line. Ignored when older than an hour or saved for another account.
35
+ */
36
+ export declare function claudeCachedReading(opts?: {
37
+ env?: NodeJS.ProcessEnv;
38
+ home?: string;
39
+ now?: number;
40
+ }): UsageReading | undefined;
41
+ /** Desktop samples arrive about every 15 minutes; an older one may miss a jump to the limit. */
42
+ export declare const DESKTOP_SAMPLE_MAX_AGE_MS: number;
43
+ /** Where the Claude desktop app keeps its own files. */
44
+ export declare function desktopAppDir(home?: string, platform?: NodeJS.Platform, env?: NodeJS.ProcessEnv): string;
45
+ /**
46
+ * The Claude desktop app's plan-usage samples, `plan-usage-history.json`:
47
+ * `{ version: 2, samples: [{ t, org, u: { fh, sd } }] }`, 5-hour (`fh`) and
48
+ * 7-day (`sd`) percentages per organization, written about every 15 minutes
49
+ * while the app runs. It is the only reading desktop and Remote Control
50
+ * sessions leave on disk. Undocumented, so best effort: only the newest sample
51
+ * of this session's organization (CLAUDE_CODE_ORGANIZATION_UUID), and only
52
+ * when it is under 20 minutes old.
53
+ */
54
+ export declare function desktopUsageReading(opts?: {
55
+ env?: NodeJS.ProcessEnv;
56
+ home?: string;
57
+ now?: number;
58
+ platform?: NodeJS.Platform;
59
+ }): UsageReading | undefined;
60
+ /** The freshest reading for a Claude Code session that runs no status line. */
61
+ export declare function claudeFallbackReading(opts?: {
62
+ env?: NodeJS.ProcessEnv;
63
+ home?: string;
64
+ now?: number;
65
+ platform?: NodeJS.Platform;
66
+ }): UsageReading | undefined;
43
67
  /** Windows from the newest `token_count` event in a Codex rollout file. */
44
68
  export declare function codexWindows(transcriptPath: string): UsageWindow[];
69
+ export interface UsageReading {
70
+ tool: 'Claude Code' | 'Codex';
71
+ /** Epoch milliseconds of the reading. */
72
+ at: number;
73
+ windows: UsageWindow[];
74
+ }
75
+ /** The newest usage any Claude Code session's status line recorded. */
76
+ export declare function latestClaudeReading(home?: string): UsageReading | undefined;
77
+ /** The rate limits in the newest Codex session log (~/.codex/sessions/YYYY/MM/DD/rollout-*.jsonl). */
78
+ export declare function latestCodexReading(home?: string): UsageReading | undefined;
45
79
  /** The fullest window that has not reset yet. */
46
80
  export declare function fullest(windows: UsageWindow[], now?: number): UsageWindow | undefined;
47
- export declare function handoffInstruction(w: UsageWindow): string;
81
+ /** Retained for integrations that imported the old guard. Never steer the model. */
48
82
  export interface GuardInput {
49
83
  session_id?: string;
50
84
  transcript_path?: string;
51
85
  stop_hook_active?: boolean;
52
86
  }
53
- /**
54
- * Stop-hook decision. Returns a block (the agent keeps going and hands off)
55
- * the first time a session is at or past the threshold, otherwise `{}`.
56
- */
57
- export declare function usageGuard(input: GuardInput, opts?: {
87
+ export type GuardOutput = Record<string, never>;
88
+ export declare function usageGuard(_input: GuardInput, _opts?: {
58
89
  home?: string;
59
90
  now?: number;
60
- }): {
61
- decision?: 'block';
62
- reason?: string;
63
- };
91
+ env?: NodeJS.ProcessEnv;
92
+ platform?: NodeJS.Platform;
93
+ }): GuardOutput;
64
94
  /** One short status line: the fullest windows, e.g. "5-hour 42% · weekly 12%". */
65
95
  export declare function usageSummary(windows: UsageWindow[]): string;
66
- /**
67
- * Grok Build shows no usage percentage to scripts, but it fires `StopFailure`
68
- * with `error: "rate_limit"` when a turn hits the limit. Its hook input is
69
- * camelCase (`sessionId`, `cwd`, `workspaceRoot`).
70
- */
71
- export interface LimitHitInput {
72
- sessionId?: string;
73
- session_id?: string;
74
- cwd?: string;
75
- workspaceRoot?: string;
76
- error?: string;
77
- }
78
- /**
79
- * Where a rate-limited turn should hand off, or undefined when it should not:
80
- * auto-handoff is off, the failure is not a rate limit, the session already
81
- * handed off, or the directory is not a SpecWeave project. Writes the
82
- * once-per-session marker before returning, so a retry storm hands off once.
83
- */
84
- export declare function limitHitTarget(input: LimitHitInput, opts?: {
85
- home?: string;
86
- now?: number;
87
- }): string | undefined;
88
96
  //# sourceMappingURL=usage-guard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"usage-guard.d.ts","sourceRoot":"","sources":["../../../../src/core/session/usage-guard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAOH,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAEpC,MAAM,WAAW,WAAW;IAC1B,mDAAmD;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,aAAa;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,gCAAgC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sFAAsF;IACtF,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,wBAAgB,aAAa,CAAC,IAAI,SAAe,GAAG,MAAM,CAEzD;AAUD,wBAAgB,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS,CAQ3E;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,mBAAmB,GAAG,SAAS,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAK5F;AAED,oEAAoE;AACpE,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,EAAE,CAU3D;AAED,4EAA4E;AAC5E,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,SAAa,GAAG,WAAW,EAAE,CAShG;AAYD,2EAA2E;AAC3E,wBAAgB,YAAY,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW,EAAE,CAkClE;AAED,iDAAiD;AACjD,wBAAgB,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,GAAG,SAAa,GAAG,WAAW,GAAG,SAAS,CAIzF;AAED,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,WAAW,GAAG,MAAM,CAIzD;AAED,MAAM,WAAW,UAAU;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAoBjI;AAED,kFAAkF;AAClF,wBAAgB,YAAY,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,MAAM,CAE3D;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,aAAa,EAAE,IAAI,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,MAAM,GAAG,SAAS,CAiBnH"}
1
+ {"version":3,"file":"usage-guard.d.ts","sourceRoot":"","sources":["../../../../src/core/session/usage-guard.ts"],"names":[],"mappings":"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"}