@vibe-commit/capture 0.1.0 → 0.2.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.
- package/dist/agent_hooks.d.ts +133 -0
- package/dist/agent_hooks.js +228 -0
- package/dist/agent_hooks.js.map +1 -0
- package/dist/agent_install.d.ts +79 -0
- package/dist/agent_install.js +108 -0
- package/dist/agent_install.js.map +1 -0
- package/dist/agents/claude_code.js +12 -1
- package/dist/agents/claude_code.js.map +1 -1
- package/dist/agents/codex_cli.js +21 -1
- package/dist/agents/codex_cli.js.map +1 -1
- package/dist/agents/cursor.js +32 -6
- package/dist/agents/cursor.js.map +1 -1
- package/dist/agents/registry.d.ts +39 -1
- package/dist/agents/registry.js +47 -1
- package/dist/agents/registry.js.map +1 -1
- package/dist/agents/types.d.ts +76 -0
- package/dist/agents/types.js.map +1 -1
- package/dist/commands/auth.d.ts +66 -0
- package/dist/commands/auth.js +119 -0
- package/dist/commands/auth.js.map +1 -0
- package/dist/commands/connect.js +83 -1
- package/dist/commands/connect.js.map +1 -1
- package/dist/commands/status.js +18 -12
- package/dist/commands/status.js.map +1 -1
- package/dist/copy/index.d.ts +1 -1
- package/dist/copy/index.js +1 -1
- package/dist/copy/index.js.map +1 -1
- package/dist/copy/strings.d.ts +102 -4
- package/dist/copy/strings.js +114 -4
- package/dist/copy/strings.js.map +1 -1
- package/dist/credential.d.ts +46 -0
- package/dist/credential.js +59 -1
- package/dist/credential.js.map +1 -1
- package/dist/hooks/entry.d.ts +12 -1
- package/dist/hooks/entry.js +157 -12
- package/dist/hooks/entry.js.map +1 -1
- package/dist/hooks/fire_lock.d.ts +90 -0
- package/dist/hooks/fire_lock.js +192 -0
- package/dist/hooks/fire_lock.js.map +1 -0
- package/dist/hooks/post_commit.js +8 -2
- package/dist/hooks/post_commit.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +53 -1
- package/dist/index.js.map +1 -1
- package/dist/install.d.ts +8 -9
- package/dist/install.js +61 -6
- package/dist/install.js.map +1 -1
- package/dist/paths.d.ts +24 -0
- package/dist/paths.js +38 -0
- package/dist/paths.js.map +1 -1
- package/dist/spool.d.ts +83 -1
- package/dist/spool.js +196 -6
- package/dist/spool.js.map +1 -1
- package/dist/term.d.ts +9 -0
- package/dist/term.js +14 -0
- package/dist/term.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +2 -2
package/dist/credential.d.ts
CHANGED
|
@@ -129,6 +129,52 @@ export declare function readSecretFile(home: string, path: string): SecretFileRe
|
|
|
129
129
|
* distinguish the four not-ok outcomes to print four different fixes.
|
|
130
130
|
*/
|
|
131
131
|
export declare function loadCredential(ctx: CredentialEnvironment): CredentialLoad;
|
|
132
|
+
/**
|
|
133
|
+
* Persist the ingest credential. 0700 on the directory, 0600 on the file.
|
|
134
|
+
*
|
|
135
|
+
* `CR-216/U1`. Until this existed the module was a reader with no producer:
|
|
136
|
+
* `loadCredential` parsed an envelope, `readSecretFile` policed its modes and
|
|
137
|
+
* `copy/strings.ts:1412` told the user to `chmod 600` it, but nothing in the
|
|
138
|
+
* package ever wrote it. The only credential that reached a hook came from
|
|
139
|
+
* `VIBECOMMIT_TOKEN`, so a commit from a shell without it exported bound nothing
|
|
140
|
+
* and said nothing — the hook's exit contract makes a missing credential silent
|
|
141
|
+
* on purpose, which is right for the hook and fatal for a first install.
|
|
142
|
+
*
|
|
143
|
+
* ⚠ THE TWO `chmod`s AFTER THE WRITES ARE NOT REDUNDANT, and this is the third
|
|
144
|
+
* time this package has had to say so (`consent.ts`'s `grantProject` first, then
|
|
145
|
+
* `oauth/session.ts:139`). `writeFileSync`'s `mode` is masked by the umask, and
|
|
146
|
+
* it is IGNORED ENTIRELY when the file already exists — so the re-auth after a
|
|
147
|
+
* rotation, which is exactly the write that follows a leak, would silently
|
|
148
|
+
* inherit whatever mode was there before.
|
|
149
|
+
*
|
|
150
|
+
* The refusal below is the write-side half of the class check. The read side
|
|
151
|
+
* already refuses a token of the wrong class in both directions (see
|
|
152
|
+
* `CredentialLoad`'s `wrong-class`); this is the third door into the same slot,
|
|
153
|
+
* and a door that admits what the others refuse is not a door with a check.
|
|
154
|
+
* It refuses BEFORE touching the disk: a half-written envelope would load as
|
|
155
|
+
* `unreadable` rather than `absent`, sending the user to a different fix.
|
|
156
|
+
*
|
|
157
|
+
* The single `expose()` here is unavoidable — persisting a secret means writing
|
|
158
|
+
* its bytes — and greppable, which is the property the wrapper buys.
|
|
159
|
+
*
|
|
160
|
+
* @throws if handed a credential of the wrong class. The message carries the
|
|
161
|
+
* class, never the rejected bytes.
|
|
162
|
+
*/
|
|
163
|
+
export declare function saveCredential(home: string, credential: IngestCredential): void;
|
|
164
|
+
/**
|
|
165
|
+
* Is there a saved credential for `VIBECOMMIT_TOKEN` to be shadowing?
|
|
166
|
+
*
|
|
167
|
+
* `CR-216/U3`. PRESENCE, not validity, and the distinction is the point: this
|
|
168
|
+
* answers "is the env var overriding something?", and a file that is present but
|
|
169
|
+
* unreadable or wrongly-moded is still something being overridden — arguably the
|
|
170
|
+
* case most worth saying out loud, since the user who saved it believes it is in
|
|
171
|
+
* use. Validity is `loadCredential`'s question and it answers it separately.
|
|
172
|
+
*
|
|
173
|
+
* Deliberately not `loadCredential({ env: {} , home })`: that would silently
|
|
174
|
+
* return `absent` for an insecure file and suppress the warning exactly where a
|
|
175
|
+
* user is most confused about which credential is live.
|
|
176
|
+
*/
|
|
177
|
+
export declare function savedCredentialExists(home: string): boolean;
|
|
132
178
|
/**
|
|
133
179
|
* Belt and braces for the `inspect` path specifically.
|
|
134
180
|
*
|
package/dist/credential.js
CHANGED
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
*
|
|
35
35
|
* @provenance vibecommit-mcp src/oauth/ingest_credential.ts — wire contract, retyped
|
|
36
36
|
*/
|
|
37
|
-
import { lstatSync, readFileSync, statSync } from "node:fs";
|
|
37
|
+
import { chmodSync, existsSync, lstatSync, mkdirSync, readFileSync, statSync, writeFileSync, } from "node:fs";
|
|
38
38
|
import { inspect } from "node:util";
|
|
39
39
|
import { credentialsPath, rootDir } from "./paths.js";
|
|
40
40
|
/**
|
|
@@ -156,6 +156,64 @@ export function loadCredential(ctx) {
|
|
|
156
156
|
}
|
|
157
157
|
return { kind: "ok", credential: new IngestCredential(secret, "file") };
|
|
158
158
|
}
|
|
159
|
+
/**
|
|
160
|
+
* Persist the ingest credential. 0700 on the directory, 0600 on the file.
|
|
161
|
+
*
|
|
162
|
+
* `CR-216/U1`. Until this existed the module was a reader with no producer:
|
|
163
|
+
* `loadCredential` parsed an envelope, `readSecretFile` policed its modes and
|
|
164
|
+
* `copy/strings.ts:1412` told the user to `chmod 600` it, but nothing in the
|
|
165
|
+
* package ever wrote it. The only credential that reached a hook came from
|
|
166
|
+
* `VIBECOMMIT_TOKEN`, so a commit from a shell without it exported bound nothing
|
|
167
|
+
* and said nothing — the hook's exit contract makes a missing credential silent
|
|
168
|
+
* on purpose, which is right for the hook and fatal for a first install.
|
|
169
|
+
*
|
|
170
|
+
* ⚠ THE TWO `chmod`s AFTER THE WRITES ARE NOT REDUNDANT, and this is the third
|
|
171
|
+
* time this package has had to say so (`consent.ts`'s `grantProject` first, then
|
|
172
|
+
* `oauth/session.ts:139`). `writeFileSync`'s `mode` is masked by the umask, and
|
|
173
|
+
* it is IGNORED ENTIRELY when the file already exists — so the re-auth after a
|
|
174
|
+
* rotation, which is exactly the write that follows a leak, would silently
|
|
175
|
+
* inherit whatever mode was there before.
|
|
176
|
+
*
|
|
177
|
+
* The refusal below is the write-side half of the class check. The read side
|
|
178
|
+
* already refuses a token of the wrong class in both directions (see
|
|
179
|
+
* `CredentialLoad`'s `wrong-class`); this is the third door into the same slot,
|
|
180
|
+
* and a door that admits what the others refuse is not a door with a check.
|
|
181
|
+
* It refuses BEFORE touching the disk: a half-written envelope would load as
|
|
182
|
+
* `unreadable` rather than `absent`, sending the user to a different fix.
|
|
183
|
+
*
|
|
184
|
+
* The single `expose()` here is unavoidable — persisting a secret means writing
|
|
185
|
+
* its bytes — and greppable, which is the property the wrapper buys.
|
|
186
|
+
*
|
|
187
|
+
* @throws if handed a credential of the wrong class. The message carries the
|
|
188
|
+
* class, never the rejected bytes.
|
|
189
|
+
*/
|
|
190
|
+
export function saveCredential(home, credential) {
|
|
191
|
+
const secret = credential.expose();
|
|
192
|
+
if (!secret.startsWith(INGEST_TOKEN_PREFIX)) {
|
|
193
|
+
throw new Error(`refusing to persist a credential that is not an ingest credential: expected a ${INGEST_TOKEN_PREFIX}… token`);
|
|
194
|
+
}
|
|
195
|
+
const path = credentialsPath(home);
|
|
196
|
+
mkdirSync(rootDir(home), { recursive: true, mode: 0o700 });
|
|
197
|
+
chmodSync(rootDir(home), 0o700);
|
|
198
|
+
writeFileSync(path, `${JSON.stringify({ token: secret }, null, 2)}\n`, { mode: 0o600 });
|
|
199
|
+
chmodSync(path, 0o600);
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Is there a saved credential for `VIBECOMMIT_TOKEN` to be shadowing?
|
|
203
|
+
*
|
|
204
|
+
* `CR-216/U3`. PRESENCE, not validity, and the distinction is the point: this
|
|
205
|
+
* answers "is the env var overriding something?", and a file that is present but
|
|
206
|
+
* unreadable or wrongly-moded is still something being overridden — arguably the
|
|
207
|
+
* case most worth saying out loud, since the user who saved it believes it is in
|
|
208
|
+
* use. Validity is `loadCredential`'s question and it answers it separately.
|
|
209
|
+
*
|
|
210
|
+
* Deliberately not `loadCredential({ env: {} , home })`: that would silently
|
|
211
|
+
* return `absent` for an insecure file and suppress the warning exactly where a
|
|
212
|
+
* user is most confused about which credential is live.
|
|
213
|
+
*/
|
|
214
|
+
export function savedCredentialExists(home) {
|
|
215
|
+
return existsSync(credentialsPath(home));
|
|
216
|
+
}
|
|
159
217
|
/**
|
|
160
218
|
* Belt and braces for the `inspect` path specifically.
|
|
161
219
|
*
|
package/dist/credential.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credential.js","sourceRoot":"","sources":["../src/credential.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"credential.js","sourceRoot":"","sources":["../src/credential.ts"],"names":[],"mappings":"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"}
|
package/dist/hooks/entry.d.ts
CHANGED
|
@@ -33,6 +33,7 @@
|
|
|
33
33
|
* own red-proof in `test/credential.test.ts`. Do not read one as evidence for
|
|
34
34
|
* the other.
|
|
35
35
|
*/
|
|
36
|
+
import type { HookEventName } from "../agents/types.js";
|
|
36
37
|
import { type ProjectKeys } from "../project.js";
|
|
37
38
|
/**
|
|
38
39
|
* Default wall-clock budget. `CR-028` sets the real per-event `timeout` in
|
|
@@ -66,7 +67,17 @@ export declare function sendTimeoutMs(budgetMs: number, consumedMs: number): num
|
|
|
66
67
|
* ⛔ `budgetMs` itself still governs the SETTLE and the WATCHDOG. Only the sends
|
|
67
68
|
* are carved.
|
|
68
69
|
*/
|
|
69
|
-
|
|
70
|
+
/**
|
|
71
|
+
* ⛔ **TAKES THE RESOLVED EVENT, NEVER THE RAW `hook_event_name` (`CR-195`).**
|
|
72
|
+
*
|
|
73
|
+
* It used to take a `string`, and that is precisely how Cursor's `sessionEnd`
|
|
74
|
+
* bought a full-budget send with no reserve: the comparison was against
|
|
75
|
+
* `"SessionEnd"`, so an unrecognised spelling was `false` rather than an error.
|
|
76
|
+
* `HookEventName | null` makes the resolution a thing the CALLER must already
|
|
77
|
+
* have done — `null` is the honest "none of the three", and an unresolved wire
|
|
78
|
+
* string is no longer expressible here at all.
|
|
79
|
+
*/
|
|
80
|
+
export declare function sendBudgetMs(budgetMs: number, event: HookEventName | null, sinceHookStartMs?: number): number;
|
|
70
81
|
export interface HookInput {
|
|
71
82
|
readonly sessionId: string;
|
|
72
83
|
readonly transcriptPath: string;
|
package/dist/hooks/entry.js
CHANGED
|
@@ -45,11 +45,12 @@ import { deliver, ingestUrl } from "../post.js";
|
|
|
45
45
|
import { markSkipped } from "../policy.js";
|
|
46
46
|
import { fileState, loadSessionState, saveSessionState, withFileState } from "../state.js";
|
|
47
47
|
import { SESSION_END_EVENT, settleDelayMs, settledSize, } from "./session_end.js";
|
|
48
|
-
import { admitsTranscript, agentForTranscript, dialectFor, transcriptRoots, } from "../agents/registry.js";
|
|
48
|
+
import { admitsTranscript, agentForTranscript, canonicalHookEvent, dialectFor, transcriptRoots, } from "../agents/registry.js";
|
|
49
|
+
import { claimFiring, fireLockPath } from "./fire_lock.js";
|
|
49
50
|
import { announcedSubagentFileKey, isInsideAny, subagentFileKey, subagentsDir, } from "../paths.js";
|
|
50
51
|
import { resolveProjectKeys } from "../project.js";
|
|
51
52
|
import { startSpawnBudget } from "../spawn_budget.js";
|
|
52
|
-
import { capSpool, capSuccessors, readRewrites, readSpool } from "../spool.js";
|
|
53
|
+
import { capSpool, capSuccessors, promotePending, readRewrites, readSpool } from "../spool.js";
|
|
53
54
|
import { meetsNodeFloor } from "../runtime.js";
|
|
54
55
|
import { renderNotice } from "../system_message.js";
|
|
55
56
|
/**
|
|
@@ -154,10 +155,31 @@ const MAX_SUBAGENT_FILES = 8;
|
|
|
154
155
|
* is set at, and small enough that it costs the send 90 ms of 2850 on the
|
|
155
156
|
* default budget.
|
|
156
157
|
*
|
|
157
|
-
*
|
|
158
|
-
*
|
|
159
|
-
*
|
|
160
|
-
*
|
|
158
|
+
* ## ⛔ THE RESERVE WAS NOT ACTUALLY RESERVED UNTIL `CR-195/U2` — the two clocks
|
|
159
|
+
* started at different instants
|
|
160
|
+
*
|
|
161
|
+
* Everything above this paragraph diagnosed the defect correctly and then
|
|
162
|
+
* subtracted the reserve from the WRONG ORIGIN. `budgetMs - 150` is a bound on
|
|
163
|
+
* the loop's own clock, which starts at `settleStart`; the watchdog's clock
|
|
164
|
+
* starts in `runHook`, before stdin is read. So the loop was permitted to spend
|
|
165
|
+
* until `budgetMs` *measured from the settle* — already past the watchdog's
|
|
166
|
+
* deadline by exactly the pre-entry interval this docblock names — and the
|
|
167
|
+
* watchdog then fired MID-SEND. `stampGaps` runs after the loop, so it did not
|
|
168
|
+
* run at all, and the held spans stayed held.
|
|
169
|
+
*
|
|
170
|
+
* ⛔ **That is the G6 flake, and it was a real product defect rather than a
|
|
171
|
+
* timing-sensitive assertion.** `test/session-end-gaps.test.ts` caught it as
|
|
172
|
+
* `held: [[0, 39]]` where a stamped gap belonged: on `SessionEnd` — which has no
|
|
173
|
+
* next invocation — a hole that is held rather than stamped is the final turn
|
|
174
|
+
* recorded as delivered-so-far instead of as short. `sendBudgetMs` now takes the
|
|
175
|
+
* elapsed time since `runHook` armed the watchdog and charges it, so the reserve
|
|
176
|
+
* is measured against the deadline that can actually end the process.
|
|
177
|
+
*
|
|
178
|
+
* ⚠ **Still a mitigation, not a guarantee.** Enough scheduler pressure defeats
|
|
179
|
+
* any fixed reserve, exactly as it defeats the watchdog itself — a timer cannot
|
|
180
|
+
* fire while the event loop is blocked. What changed is that the reserve now
|
|
181
|
+
* survives the ordinary case it was written for; before, the ordinary case is
|
|
182
|
+
* precisely what consumed it.
|
|
161
183
|
*
|
|
162
184
|
* ⛔ Zero on every other event: `stampGaps` runs on `SessionEnd` alone, so
|
|
163
185
|
* reserving elsewhere would shrink `Stop`'s send for a stamp that never happens.
|
|
@@ -176,8 +198,22 @@ const GAP_STAMP_RESERVE_MS = 150;
|
|
|
176
198
|
* ⛔ `budgetMs` itself still governs the SETTLE and the WATCHDOG. Only the sends
|
|
177
199
|
* are carved.
|
|
178
200
|
*/
|
|
179
|
-
|
|
180
|
-
|
|
201
|
+
/**
|
|
202
|
+
* ⛔ **TAKES THE RESOLVED EVENT, NEVER THE RAW `hook_event_name` (`CR-195`).**
|
|
203
|
+
*
|
|
204
|
+
* It used to take a `string`, and that is precisely how Cursor's `sessionEnd`
|
|
205
|
+
* bought a full-budget send with no reserve: the comparison was against
|
|
206
|
+
* `"SessionEnd"`, so an unrecognised spelling was `false` rather than an error.
|
|
207
|
+
* `HookEventName | null` makes the resolution a thing the CALLER must already
|
|
208
|
+
* have done — `null` is the honest "none of the three", and an unresolved wire
|
|
209
|
+
* string is no longer expressible here at all.
|
|
210
|
+
*/
|
|
211
|
+
export function sendBudgetMs(budgetMs, event, sinceHookStartMs = 0) {
|
|
212
|
+
const reserve = event === SESSION_END_EVENT ? GAP_STAMP_RESERVE_MS : 0;
|
|
213
|
+
// ⛔ FLOORED AT ZERO. A negative would reach `sendTimeoutMs`, whose own
|
|
214
|
+
// `Math.max(0, budgetMs - consumedMs)` turns a negative budget into a POSITIVE
|
|
215
|
+
// remaining — a blown clock reading as fresh time.
|
|
216
|
+
return Math.max(0, budgetMs - sinceHookStartMs - reserve);
|
|
181
217
|
}
|
|
182
218
|
/**
|
|
183
219
|
* Parse hook stdin. Claude Code supplies `{ session_id, transcript_path, cwd,
|
|
@@ -252,6 +288,14 @@ export function silenceStderr() {
|
|
|
252
288
|
* truncated write is the silent-unconfigured failure DX3 exists to kill.
|
|
253
289
|
*/
|
|
254
290
|
function finish(payload) {
|
|
291
|
+
// ⛔ RELEASED HERE, AND HERE IS THE ONLY PLACE THAT COVERS EVERY EXIT
|
|
292
|
+
// (`CR-195`/U4a). A `try/finally` around `hookBody` would look tidier and
|
|
293
|
+
// would leak the lock on the one path that matters most: the WATCHDOG calls
|
|
294
|
+
// this function directly, and the signal handlers do too, so neither unwinds
|
|
295
|
+
// `hookBody` at all. A lock leaked there survives until it goes stale, and
|
|
296
|
+
// until then it suppresses the next firing of that event — turning a guard
|
|
297
|
+
// against duplicates into a guard against captures.
|
|
298
|
+
releaseFiring();
|
|
255
299
|
if (payload !== null) {
|
|
256
300
|
try {
|
|
257
301
|
writeSync(1, `${payload}\n`);
|
|
@@ -262,6 +306,28 @@ function finish(payload) {
|
|
|
262
306
|
}
|
|
263
307
|
process.exit(EXIT.ok);
|
|
264
308
|
}
|
|
309
|
+
/**
|
|
310
|
+
* The firing this process claimed, if it claimed one.
|
|
311
|
+
*
|
|
312
|
+
* ⚠ **Module state, deliberately, and it is the narrow case that justifies it.**
|
|
313
|
+
* This process handles exactly ONE hook invocation and then exits; `finish` is
|
|
314
|
+
* its single exit point and is reached from paths that never return through
|
|
315
|
+
* `hookBody`. Threading a claim out to those paths is not possible — the
|
|
316
|
+
* watchdog holds no reference to the body's locals.
|
|
317
|
+
*/
|
|
318
|
+
let firingClaim = null;
|
|
319
|
+
/** Idempotent, and never throws: the hook contract forbids saying anything. */
|
|
320
|
+
function releaseFiring() {
|
|
321
|
+
const claim = firingClaim;
|
|
322
|
+
firingClaim = null;
|
|
323
|
+
try {
|
|
324
|
+
claim?.release();
|
|
325
|
+
}
|
|
326
|
+
catch {
|
|
327
|
+
// A lock we could not release goes stale on its own; the bound is derived
|
|
328
|
+
// from the budget precisely so a lost release costs one invocation, once.
|
|
329
|
+
}
|
|
330
|
+
}
|
|
265
331
|
/**
|
|
266
332
|
* Install every contract guard, then run the body.
|
|
267
333
|
*
|
|
@@ -271,6 +337,13 @@ function finish(payload) {
|
|
|
271
337
|
export async function runHook(ctx) {
|
|
272
338
|
silenceStderr();
|
|
273
339
|
const budgetMs = hookBudgetMs(ctx.env, ctx.agentId);
|
|
340
|
+
// ⛔ THE WATCHDOG'S OWN ORIGIN, read on the line that arms it (`CR-195/U2`).
|
|
341
|
+
// Every other deadline in this process is derived from this instant, because
|
|
342
|
+
// this is the one that can actually end it. Taken here rather than passed in
|
|
343
|
+
// so the two cannot drift: a caller-supplied start could be older than the
|
|
344
|
+
// timer, which would UNDER-charge the send loop and reopen the G6 defect from
|
|
345
|
+
// the other side.
|
|
346
|
+
const hookStartedAt = Date.now();
|
|
274
347
|
// The watchdog covers the wall-clock clause on paths no `await` can reach: a
|
|
275
348
|
// socket that never settles, a promise that never resolves. `unref` so it
|
|
276
349
|
// never itself keeps the process alive.
|
|
@@ -289,7 +362,7 @@ export async function runHook(ctx) {
|
|
|
289
362
|
}
|
|
290
363
|
let payload = null;
|
|
291
364
|
try {
|
|
292
|
-
payload = await hookBody(ctx, budgetMs);
|
|
365
|
+
payload = await hookBody(ctx, budgetMs, hookStartedAt);
|
|
293
366
|
}
|
|
294
367
|
catch {
|
|
295
368
|
payload = null;
|
|
@@ -335,7 +408,7 @@ function dialectBudgetMs(agentId) {
|
|
|
335
408
|
* 2. the CONSENT GATE runs BEFORE `transcript_path` is opened (D56 §D19). A
|
|
336
409
|
* gate that runs after the read has already read the thing it was gating.
|
|
337
410
|
*/
|
|
338
|
-
async function hookBody(ctx, budgetMs) {
|
|
411
|
+
async function hookBody(ctx, budgetMs, hookStartedAt) {
|
|
339
412
|
const raw = await ctx.readStdin();
|
|
340
413
|
const input = parseHookInput(raw);
|
|
341
414
|
if (input === null)
|
|
@@ -463,12 +536,73 @@ async function hookBody(ctx, budgetMs) {
|
|
|
463
536
|
// `SessionEnd` SETTLES FIRST (D57 §DX7). Every other event has a next
|
|
464
537
|
// invocation to pick up a lagging write; this one does not, so bytes missed
|
|
465
538
|
// here are the final turn, lost permanently.
|
|
466
|
-
|
|
539
|
+
// ⛔ RESOLVED THROUGH THE DIALECT BEFORE EITHER BRANCH READS IT (`CR-195`,
|
|
540
|
+
// D205). `input.eventName` is the agent's own spelling — Cursor sends
|
|
541
|
+
// `sessionEnd`, not `SessionEnd` — and both lines below used to compare the
|
|
542
|
+
// raw string against this client's vocabulary. That comparison did not fail
|
|
543
|
+
// loudly for Cursor; it returned `false`, which cost the final turn every
|
|
544
|
+
// session and carved no reserve.
|
|
545
|
+
//
|
|
546
|
+
// ⚠ Keyed on `ctx.agentId`, deliberately, and this is NOT the `CR-204`
|
|
547
|
+
// root-derived selection used for redaction and delegated transcripts. The
|
|
548
|
+
// event vocabulary is a property of the process that INVOKED us, and
|
|
549
|
+
// `--agent=` is the value WE write into that agent's own hook config — so it
|
|
550
|
+
// is the one selector that is not attacker-influenced input. `dialectBudgetMs`
|
|
551
|
+
// already keys the budget off it for the same reason.
|
|
552
|
+
const event = canonicalHookEvent(dialectFor(ctx.agentId), input.eventName);
|
|
553
|
+
const isSessionEnd = event === SESSION_END_EVENT;
|
|
554
|
+
// ⛔ ONE FIRING, ONE PROCESS — `CR-195`/U4a. Claimed BEFORE the settle, so a
|
|
555
|
+
// duplicate costs nothing rather than spending the budget to discover it is
|
|
556
|
+
// redundant.
|
|
557
|
+
//
|
|
558
|
+
// ⛔ KEYED ON THE CANONICAL EVENT, NOT `input.eventName`. The two racers do
|
|
559
|
+
// not necessarily agree on the wire spelling — that is the whole shape of this
|
|
560
|
+
// defect: one invocation comes from Cursor's own config and one from Claude's,
|
|
561
|
+
// mapped, and they carry different `--agent=` flags. Resolving first is what
|
|
562
|
+
// makes both compute the SAME key; keying on the raw string would give them
|
|
563
|
+
// two keys and let both run, which is the failure this guards.
|
|
564
|
+
//
|
|
565
|
+
// ⚠ The raw name is the fallback for an event we could not resolve. Such an
|
|
566
|
+
// invocation does almost nothing, but two of them are still two writers.
|
|
567
|
+
const fireKey = {
|
|
568
|
+
repoKey: projectKey,
|
|
569
|
+
sessionId: input.sessionId,
|
|
570
|
+
event: event ?? input.eventName,
|
|
571
|
+
};
|
|
572
|
+
// ⛔ `claimFiring` RETURNS `null` FOR TWO DIFFERENT REASONS, and conflating
|
|
573
|
+
// them would turn this guard into a silent capture outage. One means *another
|
|
574
|
+
// process holds this firing* — bow out. The other means *no lock path could be
|
|
575
|
+
// built at all*, and treating that as a duplicate would refuse EVERY
|
|
576
|
+
// invocation, permanently and silently.
|
|
577
|
+
//
|
|
578
|
+
// ⚠ It is currently unreachable — `resolveProjectKeys` returns `null` rather
|
|
579
|
+
// than an empty toplevel, and the consent gate above has already returned on
|
|
580
|
+
// that. It is distinguished anyway because the two errors are not the same
|
|
581
|
+
// size: an unlockable firing that runs is one possible duplicate, and an
|
|
582
|
+
// unlockable firing that bows out is total silence. So the lock FAILS OPEN.
|
|
583
|
+
const lockable = fireLockPath(ctx.home, fireKey) !== null;
|
|
584
|
+
firingClaim = claimFiring(ctx.home, fireKey, budgetMs);
|
|
585
|
+
if (firingClaim === null && lockable) {
|
|
586
|
+
// Another process holds this exact firing. ⛔ Silent and exit 0: there is
|
|
587
|
+
// nothing to report, and a `systemMessage` here would put a line in the
|
|
588
|
+
// user's turn for a duplicate they did not cause. `finish` releases nothing
|
|
589
|
+
// because we hold nothing.
|
|
590
|
+
return null;
|
|
591
|
+
}
|
|
467
592
|
const settleFor = isSessionEnd ? settleDelayMs(ctx.env, budgetMs) : 0;
|
|
468
593
|
// `CR-182`. Carved OUT of the budget, never added on top — the same shape the
|
|
469
594
|
// settle takes, and for the same reason: the watchdog does not move.
|
|
470
|
-
|
|
595
|
+
//
|
|
596
|
+
// ⛔ AND THE PRE-ENTRY COST IS CHARGED HERE (`CR-195/U2`, the G6 defect). The
|
|
597
|
+
// send loop measures its own consumption from `settleStart`, one line below;
|
|
598
|
+
// the watchdog has been running since `runHook`. The stdin read, the consent
|
|
599
|
+
// gate's `git rev-parse` spawn and the credential load all happened in
|
|
600
|
+
// between, and `CR-126` measured that interval at p99 392 ms — more than the
|
|
601
|
+
// whole 150 ms reserve. Passing it in is what makes the reserve a reserve
|
|
602
|
+
// against the deadline that can actually end the process, rather than against
|
|
603
|
+
// a clock that starts later than the one holding the gun.
|
|
471
604
|
const settleStart = Date.now();
|
|
605
|
+
const sendBudget = sendBudgetMs(budgetMs, event, settleStart - hookStartedAt);
|
|
472
606
|
const eof = settleFor > 0
|
|
473
607
|
? await settledSize(() => fileSize(input.transcriptPath), wait, settleFor)
|
|
474
608
|
: fileSize(input.transcriptPath);
|
|
@@ -501,6 +635,17 @@ async function hookBody(ctx, budgetMs) {
|
|
|
501
635
|
// Commits OBSERVED since the last delivery. Capped, with the remainder left in
|
|
502
636
|
// the spool for the next hook rather than dropped.
|
|
503
637
|
const spoolKey = { repoKey: projectKey, sessionId: input.sessionId };
|
|
638
|
+
// ⛔ PROMOTE FIRST (`CR-195`/D208). A commit made during this session's FIRST
|
|
639
|
+
// turn was recorded uncorroborated, because `Stop` fires at the end of a turn
|
|
640
|
+
// and no state file existed when `post-commit` ran. By the time this hook is
|
|
641
|
+
// executing, that state file is this session's own — which is exactly the
|
|
642
|
+
// corroboration rung 1 requires — so the observation becomes deliverable now
|
|
643
|
+
// rather than being lost. Before this line, every first-turn commit was
|
|
644
|
+
// dropped: MEASURED as commit `f1608bc`, spooled nowhere.
|
|
645
|
+
// ⛔ The corroboration is THIS CALL SITE: `spoolKey.sessionId` is
|
|
646
|
+
// `input.sessionId`, the session whose hook is executing. See `promotePending`
|
|
647
|
+
// for why a state-file test is the wrong one and fails the first turn.
|
|
648
|
+
promotePending(ctx.home, spoolKey, "this-session-is-running");
|
|
504
649
|
const spooled = capSpool(readSpool(ctx.home, spoolKey));
|
|
505
650
|
// ⛔ REWRITES ARE THEIR OWN FILE WITH THEIR OWN CAP (`T5`). The units differ —
|
|
506
651
|
// 41 bytes for a sha, 82 for an `ancestor:successor` pair — so one constant
|
package/dist/hooks/entry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entry.js","sourceRoot":"","sources":["../../src/hooks/entry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,EACL,SAAS,EACT,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,QAAQ,EACR,SAAS,GACV,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAE7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,cAAc,EAAyB,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,SAAS,EAAgB,MAAM,YAAY,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC3F,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,UAAU,EACV,eAAe,GAChB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,wBAAwB,EACxB,WAAW,EACX,eAAe,EACf,YAAY,GACb,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,kBAAkB,EAAoB,MAAM,eAAe,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAoB,MAAM,sBAAsB,CAAC;AAEtE;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,CAAC;AAE5C,6DAA6D;AAC7D,MAAM,oBAAoB,GAAG,GAAG,CAAC;AAEjC;;;;;;;;;GASG;AACH,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAE/B;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAAC,QAAgB,EAAE,UAAkB;IAChE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC,CAAC;IACrD,OAAO,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,oBAAoB,CAAC,CAAC,CAAC;AACrF,CAAC;AAED,+EAA+E;AAC/E,SAAS,IAAI,CAAC,EAAU;IACtB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,sBAAsB,GAAG,GAAG,CAAC;AAEnC;;;;;;;;;GASG;AACH,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAE7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,MAAM,oBAAoB,GAAG,GAAG,CAAC;AAEjC;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,YAAY,CAAC,QAAgB,EAAE,SAAiB;IAC9D,OAAO,QAAQ,GAAG,CAAC,SAAS,KAAK,iBAAiB,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjF,CAAC;AAwBD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,cAAc,CAAC,GAAW;IACxC,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IACxF,MAAM,CAAC,GAAG,MAAiC,CAAC;IAC5C,MAAM,SAAS,GAAG,CAAC,CAAC,UAAU,CAAC;IAC/B,MAAM,cAAc,GAAG,CAAC,CAAC,eAAe,CAAC;IACzC,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC;IAClB,MAAM,SAAS,GAAG,CAAC,CAAC,eAAe,CAAC;IACpC,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IACnE,IAAI,OAAO,cAAc,KAAK,QAAQ,IAAI,cAAc,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IAC7E,MAAM,SAAS,GAAG,CAAC,CAAC,qBAAqB,CAAC;IAC1C,OAAO;QACL,SAAS;QACT,cAAc;QACd,GAAG,EAAE,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;QAChE,SAAS,EAAE,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;QACzD,GAAG,CAAC,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,EAAE;YACnD,CAAC,CAAC,EAAE,mBAAmB,EAAE,SAAS,EAAE;YACpC,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa;IAC3B,MAAM,IAAI,GAAG,CACX,MAAe,EACf,kBAA4B,EAC5B,QAAkB,EACT,EAAE;QACX,MAAM,IAAI,GAAG,OAAO,kBAAkB,KAAK,UAAU,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC;QACtF,IAAI,OAAO,IAAI,KAAK,UAAU;YAAG,IAAmB,EAAE,CAAC;QACvD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IACF,uEAAuE;IACvE,0EAA0E;IACzE,OAAO,CAAC,MAAwC,CAAC,KAAK,GAAG,IAAI,CAAC;AACjE,CAAC;AAED;;;;;;GAMG;AACH,SAAS,MAAM,CAAC,OAAsB;IACpC,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC;YACH,SAAS,CAAC,CAAC,EAAE,GAAG,OAAO,IAAI,CAAC,CAAC;QAC/B,CAAC;QAAC,MAAM,CAAC;YACP,mCAAmC;QACrC,CAAC;IACH,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACxB,CAAC;AA4CD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,GAAoB;IAChD,aAAa,EAAE,CAAC;IAEhB,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IACpD,6EAA6E;IAC7E,0EAA0E;IAC1E,wCAAwC;IACxC,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC1D,QAAQ,CAAC,KAAK,EAAE,CAAC;IACjB,8EAA8E;IAC9E,8EAA8E;IAC9E,8EAA8E;IAC9E,+EAA+E;IAC/E,kDAAkD;IAClD,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAE3B,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IACpD,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IACrD,KAAK,MAAM,MAAM,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAU,EAAE,CAAC;QAC9D,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,OAAO,GAAkB,IAAI,CAAC;IAClC,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IACD,MAAM,CAAC,OAAO,CAAC,CAAC;AAClB,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,YAAY,CAAC,GAAsB,EAAE,OAAe;IAClE,MAAM,GAAG,GAAG,GAAG,CAAC,0BAA0B,CAAC;IAC3C,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,eAAe,CAAC,OAAO,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3B,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;AACnF,CAAC;AAED,+DAA+D;AAC/D,SAAS,eAAe,CAAC,OAAe;IACtC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;IACvF,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;AAC9B,CAAC;AAED;;;;;;;;GAQG;AACH,KAAK,UAAU,QAAQ,CAAC,GAAoB,EAAE,QAAgB;IAC5D,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,SAAS,EAAE,CAAC;IAClC,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAEhC,uEAAuE;IACvE,4EAA4E;IAC5E,8DAA8D;IAC9D,2DAA2D;IAC3D,MAAM,MAAM,GAAG,CAAC,KAAkB,EAAE,UAAyB,IAAI,EAAiB,EAAE,CAClF,YAAY,CACV;QACE,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,OAAO;QACP,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE;KACtB,EACD,KAAK,CACN,CAAC;IAEJ,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC;QAAE,OAAO,MAAM,CAAC,qBAAqB,CAAC,CAAC;IAE3E,2EAA2E;IAC3E,gFAAgF;IAChF,2EAA2E;IAC3E,8EAA8E;IAC9E,4EAA4E;IAC5E,8CAA8C;IAC9C,EAAE;IACF,qEAAqE;IACrE,EAAE;IACF,6EAA6E;IAC7E,wEAAwE;IACxE,+EAA+E;IAC/E,wEAAwE;IACxE,wBAAwB;IACxB,EAAE;IACF,4EAA4E;IAC5E,uEAAuE;IACvE,6EAA6E;IAC7E,8EAA8E;IAC9E,6EAA6E;IAC7E,6EAA6E;IAC7E,+EAA+E;IAC/E,8DAA8D;IAC9D,EAAE;IACF,8EAA8E;IAC9E,6EAA6E;IAC7E,4EAA4E;IAC5E,+EAA+E;IAC/E,yEAAyE;IACzE,sDAAsD;IACtD,EAAE;IACF,0EAA0E;IAC1E,4EAA4E;IAC5E,8EAA8E;IAC9E,8EAA8E;IAC9E,mEAAmE;IACnE,EAAE;IACF,2EAA2E;IAC3E,4EAA4E;IAC5E,8EAA8E;IAC9E,6EAA6E;IAC7E,uDAAuD;IACvD,MAAM,IAAI,GAAG,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3C,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/D,4EAA4E;QAC5E,wEAAwE;QACxE,2EAA2E;QAC3E,uCAAuC;QACvC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,yEAAyE;IACzE,6EAA6E;IAC7E,4EAA4E;IAC5E,6EAA6E;IAC7E,4EAA4E;IAC5E,2BAA2B;IAC3B,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC;IAEjC,MAAM,IAAI,GAAG,cAAc,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9D,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,QAAQ;YACX,OAAO,MAAM,CAAC,eAAe,CAAC,CAAC;QACjC,KAAK,aAAa,CAAC;QACnB,KAAK,eAAe,CAAC;QACrB,KAAK,YAAY;YACf,yEAAyE;YACzE,uEAAuE;YACvE,+DAA+D;YAC/D,OAAO,MAAM,CAAC,eAAe,CAAC,CAAC;QACjC,KAAK,IAAI;YACP,MAAM;IACV,CAAC;IAED,oDAAoD;IACpD,2EAA2E;IAC3E,+EAA+E;IAC/E,+EAA+E;IAC/E,+EAA+E;IAC/E,EAAE;IACF,8EAA8E;IAC9E,8EAA8E;IAC9E,gFAAgF;IAChF,2EAA2E;IAC3E,EAAE;IACF,8EAA8E;IAC9E,0EAA0E;IAC1E,2EAA2E;IAC3E,yEAAyE;IACzE,4EAA4E;IAC5E,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,cAAc,CAAC;QAAE,OAAO,IAAI,CAAC;IAE5E,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/B,+EAA+E;IAC/E,6EAA6E;IAC7E,mEAAmE;IACnE,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAE9B,2EAA2E;IAC3E,+EAA+E;IAC/E,yEAAyE;IACzE,sEAAsE;IACtE,iDAAiD;IACjD,6EAA6E;IAC7E,EAAE;IACF,+EAA+E;IAC/E,+EAA+E;IAC/E,+EAA+E;IAC/E,8DAA8D;IAC9D,EAAE;IACF,sEAAsE;IACtE,4EAA4E;IAC5E,6CAA6C;IAC7C,MAAM,YAAY,GAAG,KAAK,CAAC,SAAS,KAAK,iBAAiB,CAAC;IAC3D,MAAM,SAAS,GAAG,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtE,8EAA8E;IAC9E,qEAAqE;IACrE,MAAM,UAAU,GAAG,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAC3D,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC/B,MAAM,GAAG,GACP,SAAS,GAAG,CAAC;QACX,CAAC,CAAC,MAAM,WAAW,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC;QAC1E,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IACrC,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC9B,8EAA8E;IAC9E,sDAAsD;IACtD,MAAM,UAAU,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAEhE,8EAA8E;IAC9E,yEAAyE;IACzE,8EAA8E;IAC9E,uBAAuB;IACvB,EAAE;IACF,4DAA4D;IAC5D,0EAA0E;IAC1E,8EAA8E;IAC9E,6EAA6E;IAC7E,2EAA2E;IAC3E,mDAAmD;IACnD,MAAM,QAAQ,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;IAE7C,2EAA2E;IAC3E,yEAAyE;IACzE,8EAA8E;IAC9E,+EAA+E;IAC/E,EAAE;IACF,4EAA4E;IAC5E,8EAA8E;IAC9E,8DAA8D;IAC9D,MAAM,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAEjC,+EAA+E;IAC/E,mDAAmD;IACnD,MAAM,QAAQ,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;IACrE,MAAM,OAAO,GAAG,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;IACxD,8EAA8E;IAC9E,4EAA4E;IAC5E,mEAAmE;IACnE,MAAM,SAAS,GAAG,aAAa,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;IAElE,uEAAuE;IACvE,6EAA6E;IAC7E,oEAAoE;IACpE,MAAM,cAAc,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAE9C,MAAM,QAAQ,GAAG,MAAM,OAAO,CAC5B;QACE,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,GAAG,EAAE,GAAG,CAAC,GAAG;QACZ,GAAG;QACH,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,mEAAmE;QACnE,2EAA2E;QAC3E,OAAO,EAAE,UAAU;QACnB,QAAQ;QACR,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,OAAO,EAAE,MAAiB;QAC1B,qEAAqE;QACrE,wEAAwE;QACxE,0EAA0E;QAC1E,gCAAgC;QAChC,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,sEAAsE;QACtE,yEAAyE;QACzE,gEAAgE;QAChE,SAAS,EAAE,aAAa,CAAC,UAAU,EAAE,UAAU,CAAC;QAChD,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE;QACjB,uEAAuE;QACvE,oEAAoE;QACpE,qEAAqE;QACrE,yEAAyE;QACzE,mDAAmD;QACnD,IAAI;QACJ,yEAAyE;QACzE,yEAAyE;QACzE,wEAAwE;QACxE,wEAAwE;QACxE,2EAA2E;QAC3E,yEAAyE;QACzE,OAAO,EAAE,OAAO;QAChB,QAAQ,EAAE,SAAS,CAAC,KAAK;KAC1B,EACD,GAAG;IACH,qEAAqE;IACrE,2EAA2E;IAC3E,gEAAgE;IAChE,uEAAuE;IACvE,2EAA2E;IAC3E,qEAAqE;IACrE,0EAA0E;IAC1E,gCAAgC;IAChC,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,EAAE,IAAI,EAAE,EAAE,EAAE,cAAc,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAC1F,CAAC;IAEF,yCAAyC;IACzC,4EAA4E;IAC5E,2EAA2E;IAC3E,4EAA4E;IAC5E,mEAAmE;IACnE,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC;QACvC,GAAG;QACH,KAAK;QACL,GAAG;QACH,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,UAAU;QACV,cAAc;QACd,QAAQ;QACR,SAAS,EAAE,WAAW;QACtB,UAAU;KACX,CAAC,CAAC;IAEH,+DAA+D;IAC/D,EAAE;IACF,6DAA6D;IAC7D,yEAAyE;IACzE,8EAA8E;IAC9E,EAAE;IACF,2EAA2E;IAC3E,2BAA2B;IAC3B,EAAE;IACF,2EAA2E;IAC3E,wEAAwE;IACxE,uEAAuE;IACvE,qEAAqE;IACrE,uEAAuE;IACvE,oDAAoD;IACpD,IAAI,YAAY,EAAE,CAAC;QACjB,SAAS,CAAC,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,MAAiB,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC;IAC/F,CAAC;IAED,6EAA6E;IAC7E,sCAAsC;IACtC,EAAE;IACF,wEAAwE;IACxE,6EAA6E;IAC7E,+EAA+E;IAC/E,uCAAuC;IACvC,EAAE;IACF,4EAA4E;IAC5E,2EAA2E;IAC3E,+EAA+E;IAC/E,wEAAwE;IACxE,IAAI,QAAQ,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QAClC,IAAI,QAAQ,CAAC,WAAW,KAAK,OAAO;YAAE,OAAO,MAAM,CAAC,oBAAoB,CAAC,CAAC;QAC1E,IAAI,QAAQ,CAAC,WAAW,KAAK,IAAI;YAAE,OAAO,MAAM,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;IACpF,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAuBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,KAAK,UAAU,gBAAgB,CAAC,IAmB/B;IACC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,GAChG,IAAI,CAAC;IACP,0EAA0E;IAC1E,qEAAqE;IACrE,8EAA8E;IAC9E,8EAA8E;IAC9E,8EAA8E;IAC9E,qBAAqB;IACrB,MAAM,KAAK,GAAG;QACZ,GAAG,iBAAiB,CAAC,GAAG,EAAE,KAAK,CAAC,cAAc,CAAC;QAC/C,GAAG,sBAAsB,CAAC,GAAG,EAAE,KAAK,CAAC;KACtC,CAAC;IACF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAErC,+EAA+E;IAC/E,oDAAoD;IACpD,EAAE;IACF,+EAA+E;IAC/E,8EAA8E;IAC9E,0EAA0E;IAC1E,yEAAyE;IACzE,mDAAmD;IACnD,EAAE;IACF,4EAA4E;IAC5E,qDAAqD;IACrD,MAAM,GAAG,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;IAChE,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;IACtF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAEvC,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,kBAAkB,CAAC,EAAE,CAAC;QACxD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAC1C,IAAI,UAAU,GAAG,UAAU,GAAG,sBAAsB;YAAE,MAAM;QAE5D,MAAM,OAAO,CACX;YACE,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,GAAG,EAAE,GAAG,CAAC,GAAG;YACZ,GAAG;YACH,UAAU;YACV,OAAO,EAAE,UAAU;YACnB,QAAQ;YACR,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,mEAAmE;YACnE,qEAAqE;YACrE,+CAA+C;YAC/C,cAAc,EAAE,IAAI,CAAC,IAAI;YACzB,yEAAyE;YACzE,SAAS,EAAE,aAAa,CAAC,UAAU,EAAE,UAAU,CAAC;YAChD,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE;SAClB,EACD,IAAI,CAAC,IAAI;QACT,uEAAuE;QACvE,yEAAyE;QACzE,4EAA4E;QAC5E,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,cAAc,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAC/E,CAAC;IACJ,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,SAAS,SAAS,CAChB,GAAoB,EACpB,KAAgB,EAChB,UAAkB,EAClB,KAA8B;IAE9B,MAAM,GAAG,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;IAChE,wEAAwE;IACxE,4EAA4E;IAC5E,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAChD,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACjD,4EAA4E;QAC5E,4EAA4E;QAC5E,4EAA4E;QAC5E,IAAI,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI;YAAE,SAAS;QAC9C,gBAAgB,CACd,GAAG,CAAC,IAAI,EACR,GAAG,EACH,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAC1F,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAS,iBAAiB,CAAC,GAAoB,EAAE,cAAsB;IACrE,8EAA8E;IAC9E,gFAAgF;IAChF,6EAA6E;IAC7E,sEAAsE;IACtE,sEAAsE;IACtE,EAAE;IACF,qEAAqE;IACrE,6EAA6E;IAC7E,sEAAsE;IACtE,6EAA6E;IAC7E,+EAA+E;IAC/E,8EAA8E;IAC9E,8EAA8E;IAC9E,6CAA6C;IAC7C,EAAE;IACF,4EAA4E;IAC5E,wEAAwE;IACxE,0EAA0E;IAC1E,0CAA0C;IAC1C,IACE,UAAU,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC,oBAAoB;QACtF,UAAU,EACV,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,GAAG,GAAG,YAAY,CAAC,cAAc,CAAC,CAAC;IACzC,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,EAAE,CAAC;IAC5B,MAAM,KAAK,GAAG,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IAEjD,IAAI,OAAiB,CAAC;IACtB,IAAI,CAAC;QACH,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,KAAK,GAAmB,EAAE,CAAC;IACjC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QACvC,IAAI,OAAO,KAAK,IAAI;YAAE,SAAS;QAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC;YAAE,SAAS;QACxC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC5B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC;gBAAE,SAAS;YAChD,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAkB,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5F,CAAC;QAAC,MAAM,CAAC;YACP,yDAAyD;QAC3D,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;AACrD,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH,SAAS,sBAAsB,CAAC,GAAoB,EAAE,KAAgB;IACpE,MAAM,SAAS,GAAG,KAAK,CAAC,mBAAmB,CAAC;IAC5C,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACvC,IACE,UAAU,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;SACpE,oBAAoB,KAAK,UAAU,EACtC,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,0EAA0E;IAC1E,+EAA+E;IAC/E,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC;QAAE,OAAO,EAAE,CAAC;IAE/D,MAAM,OAAO,GAAG,wBAAwB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;IAC9D,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,EAAE,CAAC;IAChC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;QACjC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QACjD,OAAO;YACL,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAkB,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;SACzF,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,2DAA2D;QAC3D,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,mDAAmD;AACnD,SAAS,QAAQ,CAAC,IAAY;IAC5B,IAAI,CAAC;QACH,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,wEAAwE;AACxE,MAAM,aAAa,GAAG,WAAW,CAAC;AAElC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,SAAS,YAAY,CAAC,SAAiB;IACrC,MAAM,GAAG,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;IACrE,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAE9B,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACnC,IAAI,IAAI,KAAK,EAAE;YAAE,MAAM;QACvB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;IACD,4EAA4E;IAC5E,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IAEzC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACxB,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC;QAAE,OAAO,IAAI,CAAC;IACzE,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IACpD,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,IAAI,CAAC;IAExC,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;IAChF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAiB;IAChD,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACxC,OAAO,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AAC3F,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,MAAM,UAAU,QAAQ,CACtB,IAAY,EACZ,IAAY,EACZ,EAAU,EACV,YAA+B,EAC/B,IAAY,EACZ,GAAsB;IAEtB,IAAI,EAAsB,CAAC;IAC3B,IAAI,CAAC;QACH,EAAE,GAAG,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACzB,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;QACpC,MAAM,IAAI,GAAG,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACpD,MAAM,GAAG,GAAG,IAAI,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAC9D,OAAO,gBAAgB,CACrB,UAAU,CAAC,GAAG,EAAE,YAAY,EAAE,kBAAkB,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CACzE,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;YAAS,CAAC;QACT,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YACrB,IAAI,CAAC;gBACH,SAAS,CAAC,EAAE,CAAC,CAAC;YAChB,CAAC;YAAC,MAAM,CAAC;gBACP,iDAAiD;YACnD,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"entry.js","sourceRoot":"","sources":["../../src/hooks/entry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One firing, one process — `CR-195`/U4, D205.
|
|
3
|
+
*
|
|
4
|
+
* ## ⛔ THE DEFECT THIS EXISTS FOR, MEASURED IN CURSOR'S OWN BUNDLE
|
|
5
|
+
*
|
|
6
|
+
* `connect` registers our hook in each agent's config. Cursor then reads **more
|
|
7
|
+
* than its own**: `isClaudeCodeHooksEnabled()` returns
|
|
8
|
+
* `thirdPartyExtensibilityObservable.get() ?? true` — ⛔ **defaulting to ON** —
|
|
9
|
+
* and under it Cursor loads the USER-level `~/.claude/settings.json` and runs
|
|
10
|
+
* every entry through a Claude→Cursor mapper whose table maps all three events
|
|
11
|
+
* we register:
|
|
12
|
+
*
|
|
13
|
+
* W2i = { …, Stop: stop, SessionEnd: sessionEnd, PreCompact: preCompact, … }
|
|
14
|
+
*
|
|
15
|
+
* So on a machine with both agents configured, ONE Cursor event fires our binary
|
|
16
|
+
* TWICE — once from `~/.cursor/hooks.json` and once from Claude's settings,
|
|
17
|
+
* mapped. Cursor does dedupe Claude-sourced entries against its own
|
|
18
|
+
* (`_getDeduplicatedClaudeHooks`), but the key is derived from the entry, and
|
|
19
|
+
* ours deliberately differ: the Cursor registration carries `--agent=cursor` so
|
|
20
|
+
* the budget and event vocabulary are right. **Different key, no dedupe.**
|
|
21
|
+
*
|
|
22
|
+
* ⛔ **Two processes then race on one session state file.** Both read the same
|
|
23
|
+
* `sentOffset`, both send the same span, both write it back — a duplicate
|
|
24
|
+
* upload — and both reach `dropSpooled`, which truncates the spool by LINES
|
|
25
|
+
* CONSUMED. Dropping the same lines twice discards commits that were never
|
|
26
|
+
* sent, and `capture_commits` rows cannot be retracted (D105/D108). That is
|
|
27
|
+
* unrecoverable, which puts it in the same class as the `SessionEnd` hole.
|
|
28
|
+
*
|
|
29
|
+
* ## ⚠ WHY THE LOSER BOWS OUT INSTEAD OF WAITING — the opposite of `oauth/lock.ts`
|
|
30
|
+
*
|
|
31
|
+
* The refresh lock makes its loser WAIT and re-read, because both callers need
|
|
32
|
+
* the result. Here the loser needs nothing: the holder is running the same work
|
|
33
|
+
* with the same inputs, so a second pass would send nothing anyway.
|
|
34
|
+
*
|
|
35
|
+
* ⛔ And waiting would be actively harmful on the one event that cannot afford
|
|
36
|
+
* it. A waiter spends the budget the watchdog is counting down, and `stampGaps`
|
|
37
|
+
* runs AFTER the send loop — which is precisely the arithmetic that produced the
|
|
38
|
+
* G6 defect, where the reserve was measured against the wrong clock and the
|
|
39
|
+
* final turn was lost. Adding a wait in front of `SessionEnd` would re-open it
|
|
40
|
+
* from the other side.
|
|
41
|
+
*
|
|
42
|
+
* ## ⚠ WHY SKIPPING CANNOT SUPPRESS A LEGITIMATE CAPTURE
|
|
43
|
+
*
|
|
44
|
+
* The key is `(repo, session, event)`, so the only thing a skip can lose is a
|
|
45
|
+
* SECOND firing of the SAME event in the SAME session while the first is still
|
|
46
|
+
* running. Taken one event at a time:
|
|
47
|
+
*
|
|
48
|
+
* - `Stop` and `PreCompact` fire repeatedly, and an overlapping one is
|
|
49
|
+
* harmless to drop: `hookBody`'s own comment is that *"every other event has
|
|
50
|
+
* a next invocation to pick up a lagging write"*. The bytes are not lost,
|
|
51
|
+
* they are sent by the next turn.
|
|
52
|
+
* - ⛔ `SessionEnd` has no next invocation — which is exactly why it is safe
|
|
53
|
+
* here. It fires **once per session**, so a concurrent second one is not a
|
|
54
|
+
* later capture at all; it is the duplicate this file exists to stop.
|
|
55
|
+
*
|
|
56
|
+
* So the arm that would be dangerous does not exist, and the arm that exists is
|
|
57
|
+
* not dangerous. Stated rather than assumed, because "a lock that silently drops
|
|
58
|
+
* work" is the right thing to be suspicious of.
|
|
59
|
+
*/
|
|
60
|
+
export interface FireKey {
|
|
61
|
+
readonly repoKey: string;
|
|
62
|
+
readonly sessionId: string;
|
|
63
|
+
/** The agent's own event spelling is fine here — this key never travels. */
|
|
64
|
+
readonly event: string;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Where one firing's lock lives — beside the session state it protects.
|
|
68
|
+
*
|
|
69
|
+
* `null` when the repo key is empty, matching `sessionStatePath`: a hook with no
|
|
70
|
+
* project resolved has nothing to serialise against and must not invent a path.
|
|
71
|
+
*/
|
|
72
|
+
export declare function fireLockPath(home: string, key: FireKey): string | null;
|
|
73
|
+
export interface FireClaim {
|
|
74
|
+
/** Release ours. Safe to call twice; never removes a lock that is not ours. */
|
|
75
|
+
readonly release: () => void;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Claim this firing, or report that another process already has it.
|
|
79
|
+
*
|
|
80
|
+
* `null` means **a live invocation is already doing this exact work** — the
|
|
81
|
+
* caller's whole remaining job is to exit 0 quietly.
|
|
82
|
+
*
|
|
83
|
+
* ⚠ `budgetMs` is what makes the staleness bound DERIVED rather than guessed.
|
|
84
|
+
* The watchdog ends a healthy holder at `budgetMs`, so nothing can legitimately
|
|
85
|
+
* hold this longer than that plus the I/O either side; a lock older than
|
|
86
|
+
* `budgetMs + STALE_MARGIN_MS` therefore belongs to a process that is gone.
|
|
87
|
+
* Reclaiming too EARLY re-admits the double-send this prevents, and reclaiming
|
|
88
|
+
* too LATE only skips one redundant invocation — so the margin leans late.
|
|
89
|
+
*/
|
|
90
|
+
export declare function claimFiring(home: string, key: FireKey, budgetMs: number): FireClaim | null;
|