@vibe-commit/capture 0.2.3 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +33 -2
- package/dist/agent_hooks.d.ts +53 -8
- package/dist/agent_hooks.js +180 -19
- package/dist/agent_hooks.js.map +1 -1
- package/dist/agent_install.d.ts +0 -17
- package/dist/agent_install.js +1 -24
- package/dist/agent_install.js.map +1 -1
- package/dist/agents/cursor.js +54 -18
- package/dist/agents/cursor.js.map +1 -1
- package/dist/commands/auth.d.ts +24 -9
- package/dist/commands/auth.js +38 -10
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/browser_credential.d.ts +89 -0
- package/dist/commands/browser_credential.js +181 -0
- package/dist/commands/browser_credential.js.map +1 -0
- package/dist/commands/connect.d.ts +26 -9
- package/dist/commands/connect.js +52 -90
- package/dist/commands/connect.js.map +1 -1
- package/dist/commands/finalize.d.ts +35 -0
- package/dist/commands/finalize.js +283 -0
- package/dist/commands/finalize.js.map +1 -0
- package/dist/commands/status.js +56 -2
- 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 +81 -2
- package/dist/copy/strings.js +94 -1
- package/dist/copy/strings.js.map +1 -1
- package/dist/exit.d.ts +7 -0
- package/dist/exit.js +7 -0
- package/dist/exit.js.map +1 -1
- package/dist/hooks/entry.d.ts +83 -0
- package/dist/hooks/entry.js +117 -28
- package/dist/hooks/entry.js.map +1 -1
- package/dist/hooks/post_rewrite.js +20 -3
- package/dist/hooks/post_rewrite.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +14 -2
- package/dist/index.js.map +1 -1
- package/dist/oauth/mint.d.ts +97 -0
- package/dist/oauth/mint.js +120 -0
- package/dist/oauth/mint.js.map +1 -0
- package/dist/oauth/signin.d.ts +25 -0
- package/dist/oauth/signin.js +30 -0
- package/dist/oauth/signin.js.map +1 -1
- package/dist/post.d.ts +53 -0
- package/dist/post.js +73 -5
- package/dist/post.js.map +1 -1
- package/dist/spool.d.ts +37 -0
- package/dist/spool.js +244 -36
- package/dist/spool.js.map +1 -1
- package/dist/state.d.ts +152 -0
- package/dist/state.js +255 -2
- package/dist/state.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
package/dist/commands/connect.js
CHANGED
|
@@ -12,17 +12,21 @@
|
|
|
12
12
|
* - `CR-025` owns the ending: capture the current session and print the live
|
|
13
13
|
* `/app/commits/<sha>` URL. The seam is marked below.
|
|
14
14
|
*
|
|
15
|
-
* `CR-084d`
|
|
16
|
-
* token for the READ lane) behind `--sign-in
|
|
17
|
-
*
|
|
18
|
-
* credential**, so it cannot replace the beat below. No route in
|
|
19
|
-
* `vibecommit-mcp` mints a `vcik_` — `mintIngestCredential` exists and has no
|
|
20
|
-
* call site outside that repo's own tests — so `VIBECOMMIT_TOKEN` remains the
|
|
21
|
-
* supported path for capture, exactly as before.
|
|
15
|
+
* `CR-084d` landed the browser sign-in beat (PKCE loopback → a user-principal
|
|
16
|
+
* token for the READ lane) behind `--sign-in`, opt-in because sign-in did not
|
|
17
|
+
* produce an ingest credential.
|
|
22
18
|
*
|
|
23
|
-
*
|
|
19
|
+
* ⚠ `CR-226` CHANGED THAT, AND THIS NOTE USED TO SAY THE OPPOSITE. The server
|
|
20
|
+
* now has a route in front of `mintIngestCredential`, so a fresh machine that
|
|
21
|
+
* reaches the credential beat with a human at the terminal signs in through the
|
|
22
|
+
* browser and mints its own credential there (`browser_credential.ts`) — browser
|
|
23
|
+
* FIRST, with the old warning pointing at `vibecommit auth` as the fallback when
|
|
24
|
+
* any step fails. `--sign-in` keeps its meaning (sign in for the read lane even
|
|
25
|
+
* when a credential exists), and `VIBECOMMIT_TOKEN` still wins over everything.
|
|
26
|
+
*
|
|
27
|
+
* @provenance vibecommit-mcp src/transport/server.ts — POST /oauth/ingest-credential now mints one, verified
|
|
24
28
|
*/
|
|
25
|
-
import { CONNECT, COMMANDS, AGENT_HOOKS, COMMIT_HOOK, ERRORS, HELP, PATH_CLASH, RUNTIME,
|
|
29
|
+
import { AUTH, CONNECT, COMMANDS, AGENT_HOOKS, COMMIT_HOOK, ERRORS, HELP, PATH_CLASH, RUNTIME, URLS, } from "../copy/index.js";
|
|
26
30
|
import { dialectFor } from "../agents/registry.js";
|
|
27
31
|
import { grantProject, isAffirmative, isProjectAllowed } from "../consent.js";
|
|
28
32
|
import { loadCredential } from "../credential.js";
|
|
@@ -31,15 +35,14 @@ import { resolveRepoSlug } from "../git.js";
|
|
|
31
35
|
import { confinementRoots, readSpan, DEFAULT_HOOK_BUDGET_MS } from "../hooks/entry.js";
|
|
32
36
|
import { installAgentHooks } from "../agent_install.js";
|
|
33
37
|
import { classifyInstall, installPostCommitHook } from "../install.js";
|
|
34
|
-
import { mcpUrl } from "../oauth/discovery.js";
|
|
35
|
-
import { loadSession } from "../oauth/session.js";
|
|
36
|
-
import { openBrowser, signIn } from "../oauth/signin.js";
|
|
37
38
|
import { CAPTURE_NOT_APPROVED, deliver, ingestUrl, } from "../post.js";
|
|
38
39
|
import { resolveProjectKeys } from "../project.js";
|
|
39
40
|
import { meetsNodeFloor, NODE_FLOOR_TEXT } from "../runtime.js";
|
|
40
|
-
import {
|
|
41
|
+
import { credentialsPath } from "../paths.js";
|
|
42
|
+
import { paint, renderErrorBlock, tildePath, truncatePath, wrap } from "../term.js";
|
|
41
43
|
import { writeLines } from "./context.js";
|
|
42
|
-
|
|
44
|
+
import { signInBeat } from "./browser_credential.js";
|
|
45
|
+
export async function connect(ctx, options = {}, deps = {}) {
|
|
43
46
|
// (1) The runtime floor refuses LOUDLY here, unlike in the hook: the user is
|
|
44
47
|
// watching and can act, and D57 §DX11 asks for exactly that asymmetry.
|
|
45
48
|
if (!meetsNodeFloor(ctx.nodeVersion)) {
|
|
@@ -72,7 +75,7 @@ export async function connect(ctx, options = {}) {
|
|
|
72
75
|
}
|
|
73
76
|
if (isProjectAllowed(ctx.home, keys.consent)) {
|
|
74
77
|
writeLines(ctx.stdout, wrap(CONNECT.alreadyConnected, 2));
|
|
75
|
-
return await afterConsent(ctx, keys, options);
|
|
78
|
+
return await afterConsent(ctx, keys, options, deps);
|
|
76
79
|
}
|
|
77
80
|
// (3) The disclosure, then the gate.
|
|
78
81
|
writeLines(ctx.stdout, disclosure(ctx));
|
|
@@ -97,7 +100,7 @@ export async function connect(ctx, options = {}) {
|
|
|
97
100
|
return EXIT.ok;
|
|
98
101
|
}
|
|
99
102
|
grantProject(ctx.home, keys.consent, ctx.now());
|
|
100
|
-
return await afterConsent(ctx, keys, options);
|
|
103
|
+
return await afterConsent(ctx, keys, options, deps);
|
|
101
104
|
}
|
|
102
105
|
/**
|
|
103
106
|
* Consent is settled. Sign in if asked, then do the credential beat.
|
|
@@ -108,81 +111,13 @@ export async function connect(ctx, options = {}) {
|
|
|
108
111
|
* A failure in one says nothing about the other — which is why a failed sign-in
|
|
109
112
|
* returns here rather than falling through to report the install as fine.
|
|
110
113
|
*/
|
|
111
|
-
async function afterConsent(ctx, keys, options) {
|
|
114
|
+
async function afterConsent(ctx, keys, options, deps) {
|
|
112
115
|
if (options.signIn === true) {
|
|
113
|
-
const code = await signInBeat(ctx);
|
|
116
|
+
const code = await signInBeat(ctx, { retry: "sign-in" });
|
|
114
117
|
if (code !== EXIT.ok)
|
|
115
118
|
return code;
|
|
116
119
|
}
|
|
117
|
-
return await credentialBeat(ctx, keys);
|
|
118
|
-
}
|
|
119
|
-
/**
|
|
120
|
-
* The browser sign-in beat — `CR-084d`.
|
|
121
|
-
*
|
|
122
|
-
* Reachable only behind `--sign-in`. That is deliberate and not timidity: an
|
|
123
|
-
* unconditional beat here would open a browser during every `connect`, including
|
|
124
|
-
* the ones run by a wrapper, and sign-in cannot mint the credential the rest of
|
|
125
|
-
* `connect` is about. When a read verb lands (`why` — `CR-086`; `report` —
|
|
126
|
-
* `CR-108`) it calls `readWithSession`, which drives the same session and needs
|
|
127
|
-
* no beat here at all.
|
|
128
|
-
*/
|
|
129
|
-
async function signInBeat(ctx) {
|
|
130
|
-
if (loadSession(ctx.home).kind === "ok") {
|
|
131
|
-
writeLines(ctx.stdout, wrap(SIGNIN.alreadySignedIn, 2));
|
|
132
|
-
return EXIT.ok;
|
|
133
|
-
}
|
|
134
|
-
const endpoint = mcpUrl(ctx.env);
|
|
135
|
-
if (endpoint === null) {
|
|
136
|
-
writeLines(ctx.stderr, signInError(ctx, SIGNIN.noServerWhat, SIGNIN.noServerRefusedWhy));
|
|
137
|
-
return EXIT.failure;
|
|
138
|
-
}
|
|
139
|
-
const outcome = await signIn({
|
|
140
|
-
home: ctx.home,
|
|
141
|
-
mcpEndpoint: endpoint,
|
|
142
|
-
fetch,
|
|
143
|
-
nowMs: () => ctx.now().getTime(),
|
|
144
|
-
openBrowser,
|
|
145
|
-
onAuthorizeUrl: (url, opened) => {
|
|
146
|
-
writeLines(ctx.stdout, [
|
|
147
|
-
"",
|
|
148
|
-
...wrap(opened ? SIGNIN.opening : SIGNIN.manualLabel, 2),
|
|
149
|
-
// `accent` on a URL is §13.1's one exception, and the line carries no
|
|
150
|
-
// second colour. Printed on BOTH paths: a user who wants to open it in a
|
|
151
|
-
// different browser than the default should not have to guess it.
|
|
152
|
-
` ${paint(ctx.colour, "accent", url)}`,
|
|
153
|
-
...(opened ? wrap(SIGNIN.waiting, 2) : []),
|
|
154
|
-
]);
|
|
155
|
-
},
|
|
156
|
-
page: { done: SIGNIN.browserDone, refused: SIGNIN.browserRefused },
|
|
157
|
-
});
|
|
158
|
-
if (outcome.kind === "ok") {
|
|
159
|
-
writeLines(ctx.stdout, ["", ...wrap(SIGNIN.done, 2)]);
|
|
160
|
-
return EXIT.ok;
|
|
161
|
-
}
|
|
162
|
-
writeLines(ctx.stderr, ["", ...signInFailure(ctx, outcome)]);
|
|
163
|
-
return EXIT.failure;
|
|
164
|
-
}
|
|
165
|
-
/** §13.6's shape for a sign-in failure. One renderer, six outcomes. */
|
|
166
|
-
function signInFailure(ctx, outcome) {
|
|
167
|
-
switch (outcome.kind) {
|
|
168
|
-
case "no-server":
|
|
169
|
-
return signInError(ctx, SIGNIN.noServerWhat, outcome.detail === "unreachable"
|
|
170
|
-
? SIGNIN.noServerUnreachableWhy
|
|
171
|
-
: SIGNIN.noServerMalformedWhy, SIGNIN.noServerFix);
|
|
172
|
-
case "denied":
|
|
173
|
-
return signInError(ctx, SIGNIN.deniedWhat, SIGNIN.deniedWhy, SIGNIN.deniedFix);
|
|
174
|
-
case "timeout":
|
|
175
|
-
return signInError(ctx, SIGNIN.timeoutWhat, SIGNIN.timeoutWhy, SIGNIN.timeoutFix);
|
|
176
|
-
case "rejected":
|
|
177
|
-
return signInError(ctx, SIGNIN.rejectedWhat, SIGNIN.rejectedWhy, SIGNIN.rejectedFix);
|
|
178
|
-
case "unreachable":
|
|
179
|
-
return signInError(ctx, SIGNIN.unreachableWhat, SIGNIN.unreachableWhy, SIGNIN.unreachableFix);
|
|
180
|
-
case "malformed":
|
|
181
|
-
return signInError(ctx, SIGNIN.malformedWhat, SIGNIN.malformedWhy, SIGNIN.malformedFix);
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
function signInError(ctx, what, why, fixLabel = SIGNIN.noServerFix) {
|
|
185
|
-
return renderErrorBlock({ kind: "bad", what, why: [why], fixLabel, fixes: [COMMANDS.signIn] }, ctx.colour);
|
|
120
|
+
return await credentialBeat(ctx, keys, deps);
|
|
186
121
|
}
|
|
187
122
|
/**
|
|
188
123
|
* The disclosure block — `CR-111d`, style guide §10.2 transcribed.
|
|
@@ -242,11 +177,33 @@ function disclosure(ctx) {
|
|
|
242
177
|
* name, and on npm >= 7 the clash surfaces as EEXIST during the first install of
|
|
243
178
|
* exactly the population that installs commit tooling.
|
|
244
179
|
*/
|
|
245
|
-
async function credentialBeat(ctx, keys) {
|
|
180
|
+
async function credentialBeat(ctx, keys, deps) {
|
|
246
181
|
const load = loadCredential({ env: ctx.env, home: ctx.home });
|
|
247
182
|
if (load.kind === "ok") {
|
|
248
183
|
return await captureBeat(ctx, keys, load.credential);
|
|
249
184
|
}
|
|
185
|
+
// ⛔ ONLY FOR `absent`, AND ONLY WITH A HUMAN AT THE TERMINAL (`CR-226`).
|
|
186
|
+
// - `absent`: a credential that is present but wrong-class, unreadable or
|
|
187
|
+
// insecure is a FAULT, and a fault's fix is `vibecommit auth` (D206 §5,
|
|
188
|
+
// `credential-fix-copy.test.ts`). Minting over it would hide the fault.
|
|
189
|
+
// - `stdinIsTty`: a wrapper or a CI job runs `connect` too, and a browser
|
|
190
|
+
// opened there waits five minutes for nobody. The old warning is the
|
|
191
|
+
// right answer for them, and it is what they still get.
|
|
192
|
+
if (load.kind === "absent" && ctx.stdinIsTty && deps.browser !== undefined) {
|
|
193
|
+
const minted = await deps.browser(ctx, "connect");
|
|
194
|
+
if (minted.kind === "saved") {
|
|
195
|
+
writeLines(ctx.stdout, [
|
|
196
|
+
"",
|
|
197
|
+
...renderErrorBlock({
|
|
198
|
+
kind: "ok",
|
|
199
|
+
what: AUTH.savedWhat,
|
|
200
|
+
why: [AUTH.savedWhy(tildePath(credentialsPath(ctx.home), ctx.home))],
|
|
201
|
+
}, ctx.colour),
|
|
202
|
+
]);
|
|
203
|
+
return await captureBeat(ctx, keys, minted.credential);
|
|
204
|
+
}
|
|
205
|
+
// Failed: the reason is already on stderr. Fall through to the paste path.
|
|
206
|
+
}
|
|
250
207
|
writeLines(ctx.stderr, renderErrorBlock({
|
|
251
208
|
kind: "warn",
|
|
252
209
|
what: CONNECT.credentialNeededWhat,
|
|
@@ -267,8 +224,10 @@ async function credentialBeat(ctx, keys) {
|
|
|
267
224
|
* the client may render but may not analyze (D60 §D6). It is not obtainable
|
|
268
225
|
* from the server either: `send()` returns a status and discards the body,
|
|
269
226
|
* so no id, sha or count exists on this side of the wire.
|
|
270
|
-
* - **`Opening your browser to sign in...`.** That beat
|
|
271
|
-
*
|
|
227
|
+
* - **`Opening your browser to sign in...`.** That beat runs BEFORE this one
|
|
228
|
+
* now (`credentialBeat` → `browser_credential.ts`, `CR-226`), and only when
|
|
229
|
+
* there was no credential to start with — by the time this function runs,
|
|
230
|
+
* the credential exists however it arrived.
|
|
272
231
|
*/
|
|
273
232
|
async function captureBeat(ctx, keys, credential) {
|
|
274
233
|
// ⚠ EVERY USE BELOW BUT ONE IS THE TOPLEVEL ROLE — locating the transcript,
|
|
@@ -320,6 +279,9 @@ async function captureBeat(ctx, keys, credential) {
|
|
|
320
279
|
transcriptPath: found.path,
|
|
321
280
|
timeoutMs: DEFAULT_HOOK_BUDGET_MS,
|
|
322
281
|
nowMs: ctx.now().getTime(),
|
|
282
|
+
// ⛔ NOT A HOOK. `connect` backfills the located transcript, which is not evidence that the session is alive: it
|
|
283
|
+
// would otherwise rewrite an old session's state file and (under the mtime clock) make it "live" — the D2 shape.
|
|
284
|
+
byHook: false,
|
|
323
285
|
}, found.size,
|
|
324
286
|
// ⛔ THE ROOT SET, and it is `confinementRoots` — THE SAME FUNCTION THE
|
|
325
287
|
// HOOK PATH CALLS (`entry.ts`), not a set built here. `D184 §3`: the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connect.js","sourceRoot":"","sources":["../../src/commands/connect.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"connect.js","sourceRoot":"","sources":["../../src/commands/connect.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,EACL,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,WAAW,EACX,WAAW,EACX,MAAM,EACN,IAAI,EACJ,UAAU,EACV,OAAO,EACP,IAAI,GACL,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAyB,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AACvF,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,EACL,oBAAoB,EACpB,OAAO,EACP,SAAS,GAGV,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,kBAAkB,EAAoB,MAAM,eAAe,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AACpF,OAAO,EAAE,UAAU,EAAuB,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAsC,MAAM,yBAAyB,CAAC;AA0BzF,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,GAAmB,EACnB,UAA0B,EAAE,EAC5B,OAAoB,EAAE;IAEtB,6EAA6E;IAC7E,uEAAuE;IACvE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;QACrC,UAAU,CACR,GAAG,CAAC,MAAM,EACV,gBAAgB,CACd;YACE,IAAI,EAAE,KAAK;YACX,IAAI,EAAE,OAAO,CAAC,SAAS;YACvB,GAAG,EAAE;gBACH,GAAG,OAAO,CAAC,cAAc,IAAI,eAAe,IAAI,OAAO,CAAC,cAAc,IAAI,GAAG,CAAC,WAAW,GAAG;aAC7F;YACD,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,KAAK,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;SAC1B,EACD,GAAG,CAAC,MAAM,CACX,CACF,CAAC;QACF,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,6EAA6E;IAC7E,2EAA2E;IAC3E,+BAA+B;IAC/B,EAAE;IACF,+EAA+E;IAC/E,4EAA4E;IAC5E,8EAA8E;IAC9E,2EAA2E;IAC3E,6EAA6E;IAC7E,6EAA6E;IAC7E,MAAM;IACN,MAAM,IAAI,GAAG,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACzC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClB,UAAU,CACR,GAAG,CAAC,MAAM,EACV,gBAAgB,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,WAAW,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,CACjF,CAAC;QACF,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,IAAI,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7C,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,CAAC;QAC1D,OAAO,MAAM,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACtD,CAAC;IAED,qCAAqC;IACrC,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IAExC,6EAA6E;IAC7E,6EAA6E;IAC7E,6DAA6D;IAC7D,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;QACpB,UAAU,CACR,GAAG,CAAC,MAAM,EACV,gBAAgB,CACd;YACE,IAAI,EAAE,KAAK;YACX,IAAI,EAAE,OAAO,CAAC,kBAAkB;YAChC,GAAG,EAAE,CAAC,OAAO,CAAC,iBAAiB,CAAC;YAChC,QAAQ,EAAE,OAAO,CAAC,iBAAiB;YACnC,KAAK,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;SAC1B,EACD,GAAG,CAAC,MAAM,CACX,CACF,CAAC;QACF,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,sEAAsE;IACtE,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,GAAG,CAC1B,KAAK,OAAO,CAAC,aAAa,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,CACpF,CAAC;IACF,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3D,yEAAyE;QACzE,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;IAED,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;IAChD,OAAO,MAAM,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;AACtD,CAAC;AAED;;;;;;;;GAQG;AACH,KAAK,UAAU,YAAY,CACzB,GAAmB,EACnB,IAAiB,EACjB,OAAuB,EACvB,IAAiB;IAEjB,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QACzD,IAAI,IAAI,KAAK,IAAI,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC;IACpC,CAAC;IACD,OAAO,MAAM,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC/C,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,SAAS,UAAU,CAAC,GAAmB;IACrC,8EAA8E;IAC9E,6EAA6E;IAC7E,2EAA2E;IAC3E,MAAM,MAAM,GACV,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACnF,OAAO;QACL,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;QAClC,EAAE;QACF,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;QACjC,EAAE;QACF,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;QACnC,EAAE;QACF,0EAA0E;QAC1E,6EAA6E;QAC7E,6EAA6E;QAC7E,6EAA6E;QAC7E,6EAA6E;QAC7E,sDAAsD;QACtD,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;QAClC,EAAE;QACF,sEAAsE;QACtE,qEAAqE;QACrE,KAAK,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE;QAC1F,yEAAyE;QACzE,2EAA2E;QAC3E,0EAA0E;QAC1E,wEAAwE;QACxE,0DAA0D;QAC1D,KAAK,OAAO,CAAC,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE;QACjG,EAAE;KACH,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,KAAK,UAAU,cAAc,CAC3B,GAAmB,EACnB,IAAiB,EACjB,IAAiB;IAEjB,MAAM,IAAI,GAAG,cAAc,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9D,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QACvB,OAAO,MAAM,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACvD,CAAC;IACD,yEAAyE;IACzE,4EAA4E;IAC5E,4EAA4E;IAC5E,4EAA4E;IAC5E,4EAA4E;IAC5E,yEAAyE;IACzE,4DAA4D;IAC5D,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAC3E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAClD,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC5B,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE;gBACrB,EAAE;gBACF,GAAG,gBAAgB,CACjB;oBACE,IAAI,EAAE,IAAI;oBACV,IAAI,EAAE,IAAI,CAAC,SAAS;oBACpB,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;iBACrE,EACD,GAAG,CAAC,MAAM,CACX;aACF,CAAC,CAAC;YACH,OAAO,MAAM,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;QACzD,CAAC;QACD,2EAA2E;IAC7E,CAAC;IACD,UAAU,CACR,GAAG,CAAC,MAAM,EACV,gBAAgB,CACd;QACE,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,OAAO,CAAC,oBAAoB;QAClC,GAAG,EAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC;QAClC,QAAQ,EAAE,OAAO,CAAC,mBAAmB;QACrC,KAAK,EAAE,CAAC,OAAO,CAAC,uBAAuB,EAAE,QAAQ,CAAC,OAAO,CAAC;KAC3D,EACD,GAAG,CAAC,MAAM,CACX,CACF,CAAC;IACF,OAAO,IAAI,CAAC,YAAY,CAAC;AAC3B,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,KAAK,UAAU,WAAW,CACxB,GAAmB,EACnB,IAAiB,EACjB,UAA4B;IAE5B,4EAA4E;IAC5E,0EAA0E;IAC1E,4EAA4E;IAC5E,oEAAoE;IACpE,6EAA6E;IAC7E,gBAAgB;IAChB,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC;IACjC,2EAA2E;IAC3E,8EAA8E;IAC9E,4EAA4E;IAC5E,6EAA6E;IAC7E,4EAA4E;IAC5E,8EAA8E;IAC9E,oDAAoD;IACpD,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,uBAAuB,CAAC;IAC/D,MAAM,KAAK,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAClF,IAAI,MAAM,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAC3C,UAAU,CACR,GAAG,CAAC,MAAM,EACV,gBAAgB,CACd;YACE,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,OAAO,CAAC,gBAAgB;YAC9B,GAAG,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC;YAC9B,QAAQ,EAAE,OAAO,CAAC,eAAe;YACjC,KAAK,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;SACzB,EACD,GAAG,CAAC,MAAM,CACX,CACF,CAAC;QACF,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,QAAQ,GAAoB,IAAI,CAAC;IACrC,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACnC,oEAAoE;QACpE,0EAA0E;QAC1E,2CAA2C;QAC3C,QAAQ,GAAG,MAAM,OAAO,CACtB;YACE,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,GAAG,EAAE,GAAG,CAAC,GAAG;YACZ,GAAG;YACH,UAAU;YACV,OAAO,EAAE,UAAU;YACnB,QAAQ,EAAE,eAAe,CAAC,UAAU,CAAC;YACrC,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,OAAO,EAAE,MAAiB;YAC1B,yEAAyE;YACzE,qEAAqE;YACrE,uEAAuE;YACvE,sEAAsE;YACtE,2DAA2D;YAC3D,cAAc,EAAE,KAAK,CAAC,IAAI;YAC1B,SAAS,EAAE,sBAAsB;YACjC,KAAK,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE;YAC1B,gHAAgH;YAChH,iHAAiH;YACjH,MAAM,EAAE,KAAK;SACd,EACD,KAAK,CAAC,IAAI;QACV,uEAAuE;QACvE,qEAAqE;QACrE,wEAAwE;QACxE,0DAA0D;QAC1D,EAAE;QACF,wEAAwE;QACxE,2EAA2E;QAC3E,uEAAuE;QACvE,2EAA2E;QAC3E,wEAAwE;QACxE,2EAA2E;QAC3E,qEAAqE;QACrE,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,gBAAgB,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CACxF,CAAC;IACJ,CAAC;IAED,4CAA4C;IAC5C,EAAE;IACF,+EAA+E;IAC/E,6EAA6E;IAC7E,uEAAuE;IACvE,MAAM,OAAO,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IAC1C,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,mBAAmB,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IAE1F,6EAA6E;IAC7E,4EAA4E;IAC5E,gDAAgD;IAChD,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE;QACrB,EAAE;QACF,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QACzD,EAAE;QACF,KAAK,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE;QAChD,EAAE;QACF,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QAC7D,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,SAAS,KAAK,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;KACpD,CAAC,CAAC;IACH,6EAA6E;IAC7E,2EAA2E;IAC3E,yEAAyE;IACzE,iCAAiC;IACjC,cAAc,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAChC,4EAA4E;IAC5E,8EAA8E;IAC9E,yEAAyE;IACzE,oEAAoE;IACpE,6EAA6E;IAC7E,2EAA2E;IAC3E,8CAA8C;IAC9C,aAAa,CAAC,GAAG,CAAC,CAAC;IACnB,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,aAAa,CAAC,GAAmB;IACxC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;IACpE,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,2EAA2E;QAC3E,0EAA0E;QAC1E,6DAA6D;QAC7D,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI;YAAE,SAAS;QACvC,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC5C,8EAA8E;QAC9E,8EAA8E;QAC9E,4EAA4E;QAC5E,6EAA6E;QAC7E,0EAA0E;QAC1E,iCAAiC;QACjC,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAE5C,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC5E,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC;YACnD,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE;gBACrB,EAAE;gBACF,GAAG,gBAAgB,CACjB;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,OAAO;wBACX,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC;wBAChC,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC;oBACjC,GAAG,EAAE;wBACH,OAAO;4BACL,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC;4BACnD,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC;qBACrD;oBACD,GAAG,CAAC,OAAO;wBACT,CAAC,CAAC;4BACE,QAAQ,EAAE,WAAW,CAAC,eAAe;4BACrC,KAAK,EAAE,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;yBACtC;wBACH,CAAC,CAAC,EAAE,CAAC;iBACR,EACD,GAAG,CAAC,MAAM,CACX;aACF,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,MAAM,IAAI,GACR,OAAO,CAAC,OAAO,CAAC,IAAI,KAAK,WAAW;YAClC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC;YACpC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACvC,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE;YACrB,EAAE;YACF,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YAChB,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACnC,2EAA2E;YAC3E,uEAAuE;YACvE,yEAAyE;YACzE,oEAAoE;YACpE,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5E,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,MAAM,YAAY,GAAsC;IACtD,aAAa,EAAE,aAAa;IAC5B,WAAW,EAAE,WAAW;IACxB,MAAM,EAAE,QAAQ;CACjB,CAAC;AAEF;;;;;;;;GAQG;AACH,SAAS,cAAc,CAAC,GAAmB,EAAE,UAAkB;IAC7D,MAAM,OAAO,GAAG,qBAAqB,CAAC,UAAU,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;IAChE,MAAM,IAAI,GAAG,YAAY,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAE1C,IAAI,OAAO,CAAC,IAAI,KAAK,YAAY,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC/D,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE;YACrB,EAAE;YACF,GAAG,gBAAgB,CACjB;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EACF,OAAO,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU;gBACpF,GAAG,EAAE;oBACH,OAAO,CAAC,IAAI,KAAK,YAAY;wBAC3B,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC;wBAC9C,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC;iBACvC;gBACD,QAAQ,EAAE,WAAW,CAAC,iBAAiB;gBACvC,KAAK,EAAE,CAAC,WAAW,CAAC,iBAAiB,EAAE,WAAW,CAAC,kBAAkB,CAAC;aACvE,EACD,GAAG,CAAC,MAAM,CACX;SACF,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,MAAM,IAAI,GACR,OAAO,CAAC,IAAI,KAAK,WAAW;QAC1B,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC;QAC7B,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS;YAC1B,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;YAC3B,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC;IAC5B,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACnF,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAS,eAAe,CAAC,QAAyB;IAChD,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,CAAC,IAAI,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IACpE,IAAI,QAAQ,CAAC,MAAM,EAAE,IAAI,KAAK,oBAAoB;QAAE,OAAO,IAAI,CAAC;IAChE,OAAO,EAAE,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,cAAc,IAAI,IAAI,EAAE,CAAC;AACpE,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,mBAAmB,CAC1B,GAAmB,EACnB,UAAkB,EAClB,cAA6B;IAE7B,4EAA4E;IAC5E,6EAA6E;IAC7E,kEAAkE;IAClE,oCAAoC;IACpC,EAAE;IACF,mEAAmE;IACnE,wEAAwE;IACxE,yEAAyE;IACzE,sEAAsE;IACtE,MAAM,GAAG,GACP,cAAc,KAAK,IAAI,IAAI,cAAc,GAAG,CAAC;QAC3C,CAAC,CAAC,GAAG,OAAO,CAAC,eAAe,IAAI,OAAO,CAAC,eAAe,CAAC,cAAc,CAAC,EAAE;QACzE,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC;IAE9B,wEAAwE;IACxE,8EAA8E;IAC9E,8EAA8E;IAC9E,yEAAyE;IACzE,+EAA+E;IAC/E,0CAA0C;IAC1C,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE;QACrB,EAAE;QACF,GAAG,gBAAgB,CACjB;YACE,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,OAAO,CAAC,WAAW;YACzB,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,eAAe,CAAC;YACpF,QAAQ,EAAE,OAAO,CAAC,iBAAiB;YACnC,KAAK,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC;SAC5B,EACD,GAAG,CAAC,MAAM,CACX;QACD,EAAE;QACF,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;KAC/D,CAAC,CAAC;IACH,yEAAyE;IACzE,kEAAkE;IAClE,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,SAAS,CAAC,GAAmB;IACpC,MAAM,OAAO,GAAG,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;IACvD,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC,EAAE,CAAC;IAE5C,UAAU,CACR,GAAG,CAAC,MAAM,EACV,gBAAgB,CACd;QACE,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU;QACjF,GAAG,EAAE;YACH,OAAO,CAAC,IAAI,KAAK,SAAS;gBACxB,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBAC3D,CAAC,CAAC,UAAU,CAAC,SAAS;SACzB;QACD,QAAQ,EAAE,UAAU,CAAC,QAAQ;QAC7B,KAAK,EAAE;YACL,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU;YAC1E,UAAU,CAAC,cAAc;YACzB,UAAU,CAAC,SAAS;SACrB;KACF,EACD,GAAG,CAAC,MAAM,CACX,CACF,CAAC;IACF,OAAO,IAAI,CAAC,OAAO,CAAC;AACtB,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `vibecommit finalize` — the CALLER asserts a session is over (`TODOS[146]`, VD decision 5).
|
|
3
|
+
*
|
|
4
|
+
* ## ⛔ THE DEFECT, AND WHY THE ANSWER IS A VERB
|
|
5
|
+
*
|
|
6
|
+
* The server holds the last turn of a delta as a tentative tail, because a chunk boundary is not a turn
|
|
7
|
+
* boundary, and seals a turn only when a following prompt opens the next one. A session that is never
|
|
8
|
+
* followed by another prompt — a one-shot `claude -p`, the last turn of any session that is not resumed —
|
|
9
|
+
* therefore seals NOTHING: no capture, no turn, no commit edge, however many commits it made. Nothing
|
|
10
|
+
* inside the process can say honestly that the session is over (`SessionEnd`'s `reason` is `"other"`
|
|
11
|
+
* whether or not a resume follows). The caller can. A script that just ran `claude -p` knows it is done.
|
|
12
|
+
*
|
|
13
|
+
* This verb sends that assertion as `X-Session-Final: 1` on the session's MAIN stream and keeps what the
|
|
14
|
+
* server answers: `sealed` (the last turn is now recorded), `already` (nothing was left open — a repeat is
|
|
15
|
+
* a no-op), or silence (an older server, which ignores the header). ⛔ Silence is NOT success, and has its
|
|
16
|
+
* own exit code: a script must be able to separate a close that was confirmed from a delivery that merely hoped.
|
|
17
|
+
*
|
|
18
|
+
* ## What it reuses, and why it is not a second pipeline
|
|
19
|
+
*
|
|
20
|
+
* The same consent gate, credential, spool, pending-promotion and rewrite-spool as a `Stop` hook, so a
|
|
21
|
+
* commit the hook was holding rides THIS request and binds on the turn it seals. Sub-agent streams go
|
|
22
|
+
* FIRST: the server folds them into the parent turn when it seals it, so sealing before they arrive would
|
|
23
|
+
* seal a poorer turn.
|
|
24
|
+
*
|
|
25
|
+
* ## What it refuses to do
|
|
26
|
+
*
|
|
27
|
+
* - Guess. `--latest` closes the ONE session that delivered in the last 24 hours and lists them when there
|
|
28
|
+
* are several — the attribution ladder's rule: ambiguity is named, never picked.
|
|
29
|
+
* - Touch a session this repo never captured, or one still being written (`--force` overrides the second:
|
|
30
|
+
* closing a live session seals a turn that is not complete, and a later resume opens a new turn rather
|
|
31
|
+
* than extending it).
|
|
32
|
+
* - Read anywhere but the agent's own transcript root (`admitsTranscript`, the same confinement as a hook).
|
|
33
|
+
*/
|
|
34
|
+
import { type CommandContext } from "./context.js";
|
|
35
|
+
export declare function finalize(ctx: CommandContext, argv: readonly string[]): Promise<number>;
|
|
@@ -0,0 +1,283 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `vibecommit finalize` — the CALLER asserts a session is over (`TODOS[146]`, VD decision 5).
|
|
3
|
+
*
|
|
4
|
+
* ## ⛔ THE DEFECT, AND WHY THE ANSWER IS A VERB
|
|
5
|
+
*
|
|
6
|
+
* The server holds the last turn of a delta as a tentative tail, because a chunk boundary is not a turn
|
|
7
|
+
* boundary, and seals a turn only when a following prompt opens the next one. A session that is never
|
|
8
|
+
* followed by another prompt — a one-shot `claude -p`, the last turn of any session that is not resumed —
|
|
9
|
+
* therefore seals NOTHING: no capture, no turn, no commit edge, however many commits it made. Nothing
|
|
10
|
+
* inside the process can say honestly that the session is over (`SessionEnd`'s `reason` is `"other"`
|
|
11
|
+
* whether or not a resume follows). The caller can. A script that just ran `claude -p` knows it is done.
|
|
12
|
+
*
|
|
13
|
+
* This verb sends that assertion as `X-Session-Final: 1` on the session's MAIN stream and keeps what the
|
|
14
|
+
* server answers: `sealed` (the last turn is now recorded), `already` (nothing was left open — a repeat is
|
|
15
|
+
* a no-op), or silence (an older server, which ignores the header). ⛔ Silence is NOT success, and has its
|
|
16
|
+
* own exit code: a script must be able to separate a close that was confirmed from a delivery that merely hoped.
|
|
17
|
+
*
|
|
18
|
+
* ## What it reuses, and why it is not a second pipeline
|
|
19
|
+
*
|
|
20
|
+
* The same consent gate, credential, spool, pending-promotion and rewrite-spool as a `Stop` hook, so a
|
|
21
|
+
* commit the hook was holding rides THIS request and binds on the turn it seals. Sub-agent streams go
|
|
22
|
+
* FIRST: the server folds them into the parent turn when it seals it, so sealing before they arrive would
|
|
23
|
+
* seal a poorer turn.
|
|
24
|
+
*
|
|
25
|
+
* ## What it refuses to do
|
|
26
|
+
*
|
|
27
|
+
* - Guess. `--latest` closes the ONE session that delivered in the last 24 hours and lists them when there
|
|
28
|
+
* are several — the attribution ladder's rule: ambiguity is named, never picked.
|
|
29
|
+
* - Touch a session this repo never captured, or one still being written (`--force` overrides the second:
|
|
30
|
+
* closing a live session seals a turn that is not complete, and a later resume opens a new turn rather
|
|
31
|
+
* than extending it).
|
|
32
|
+
* - Read anywhere but the agent's own transcript root (`admitsTranscript`, the same confinement as a hook).
|
|
33
|
+
*/
|
|
34
|
+
import { existsSync, readdirSync, statSync } from "node:fs";
|
|
35
|
+
import { join } from "node:path";
|
|
36
|
+
import { DEFAULT_AGENT_ID, admitsTranscript, transcriptRoots } from "../agents/registry.js";
|
|
37
|
+
import { ERRORS, FINALIZE } from "../copy/index.js";
|
|
38
|
+
import { isProjectAllowed } from "../consent.js";
|
|
39
|
+
import { loadCredential } from "../credential.js";
|
|
40
|
+
import { EXIT } from "../exit.js";
|
|
41
|
+
import { headRef, resolveRepoSlug } from "../git.js";
|
|
42
|
+
import { confinementRoots, deliverSubagents, fileSize, readSpan, sendTimeoutMs } from "../hooks/entry.js";
|
|
43
|
+
import { repoSessionsDir, sessionStatePath } from "../paths.js";
|
|
44
|
+
import { deliver, ingestUrl } from "../post.js";
|
|
45
|
+
import { resolveProjectKeys } from "../project.js";
|
|
46
|
+
import { capSpool, capSuccessors, readRewrites, readSpool } from "../spool.js";
|
|
47
|
+
import { fileState, loadSessionState, saveSessionState } from "../state.js";
|
|
48
|
+
import { renderErrorBlock, wrap } from "../term.js";
|
|
49
|
+
import { writeLines } from "./context.js";
|
|
50
|
+
/** A transcript modified this recently is a session still being written. */
|
|
51
|
+
const STILL_WRITING_MS = 5_000;
|
|
52
|
+
/** `--latest` considers sessions that delivered inside this window. */
|
|
53
|
+
const LATEST_WINDOW_MS = 24 * 60 * 60 * 1000;
|
|
54
|
+
/** One wall-clock budget for the whole verb: not a hook, so not the hook's few seconds. */
|
|
55
|
+
const SEND_BUDGET_MS = 60_000;
|
|
56
|
+
/** The id becomes a filename component; keep it to what a session id is. */
|
|
57
|
+
const SESSION_ID = /^[A-Za-z0-9._-]{1,128}$/;
|
|
58
|
+
function parseArgs(argv) {
|
|
59
|
+
let session = null;
|
|
60
|
+
let latest = false;
|
|
61
|
+
let force = false;
|
|
62
|
+
for (let i = 0; i < argv.length; i += 1) {
|
|
63
|
+
const a = argv[i];
|
|
64
|
+
if (a === "--latest")
|
|
65
|
+
latest = true;
|
|
66
|
+
else if (a === "--force")
|
|
67
|
+
force = true;
|
|
68
|
+
else if (a === "--session") {
|
|
69
|
+
const v = argv[i + 1];
|
|
70
|
+
if (v === undefined)
|
|
71
|
+
return null;
|
|
72
|
+
session = v;
|
|
73
|
+
i += 1;
|
|
74
|
+
}
|
|
75
|
+
else if (a.startsWith("--session="))
|
|
76
|
+
session = a.slice("--session=".length);
|
|
77
|
+
else
|
|
78
|
+
return null;
|
|
79
|
+
}
|
|
80
|
+
if ((session === null) === !latest)
|
|
81
|
+
return null; // exactly one of the two
|
|
82
|
+
return { session, latest, force };
|
|
83
|
+
}
|
|
84
|
+
export async function finalize(ctx, argv) {
|
|
85
|
+
const args = parseArgs(argv);
|
|
86
|
+
if (args === null) {
|
|
87
|
+
writeLines(ctx.stderr, renderErrorBlock({ kind: "bad", what: FINALIZE.needTarget, why: [] }, ctx.colour));
|
|
88
|
+
return EXIT.usage;
|
|
89
|
+
}
|
|
90
|
+
const keys = resolveProjectKeys(ctx.cwd);
|
|
91
|
+
if (keys === null) {
|
|
92
|
+
writeLines(ctx.stderr, renderErrorBlock({ kind: "bad", what: ERRORS.notAGitRepo, why: [] }, ctx.colour));
|
|
93
|
+
return EXIT.failure;
|
|
94
|
+
}
|
|
95
|
+
const projectKey = keys.worktree;
|
|
96
|
+
if (!isProjectAllowed(ctx.home, keys.consent)) {
|
|
97
|
+
writeLines(ctx.stderr, renderErrorBlock({ kind: "bad", what: ERRORS.notConnected, why: [] }, ctx.colour));
|
|
98
|
+
return EXIT.notConnected;
|
|
99
|
+
}
|
|
100
|
+
const load = loadCredential({ env: ctx.env, home: ctx.home });
|
|
101
|
+
if (load.kind !== "ok") {
|
|
102
|
+
writeLines(ctx.stderr, renderErrorBlock({ kind: "bad", what: ERRORS.notConnected, why: [] }, ctx.colour));
|
|
103
|
+
return EXIT.notConnected;
|
|
104
|
+
}
|
|
105
|
+
const url = ingestUrl(ctx.env);
|
|
106
|
+
if (url === null) {
|
|
107
|
+
writeLines(ctx.stderr, renderErrorBlock({ kind: "bad", what: FINALIZE.notDelivered, why: [] }, ctx.colour));
|
|
108
|
+
return EXIT.failure;
|
|
109
|
+
}
|
|
110
|
+
// ── Which session. ──
|
|
111
|
+
const nowMs = ctx.now().getTime();
|
|
112
|
+
let sessionId;
|
|
113
|
+
if (args.session !== null) {
|
|
114
|
+
if (!SESSION_ID.test(args.session)) {
|
|
115
|
+
writeLines(ctx.stderr, renderErrorBlock({ kind: "bad", what: FINALIZE.badSessionId, why: [] }, ctx.colour));
|
|
116
|
+
return EXIT.usage;
|
|
117
|
+
}
|
|
118
|
+
sessionId = args.session;
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
const recent = recentSessions(ctx.home, projectKey, nowMs);
|
|
122
|
+
if (recent.length === 0) {
|
|
123
|
+
writeLines(ctx.stderr, renderErrorBlock({ kind: "bad", what: FINALIZE.noRecentSession, why: [] }, ctx.colour));
|
|
124
|
+
return EXIT.usage;
|
|
125
|
+
}
|
|
126
|
+
if (recent.length > 1) {
|
|
127
|
+
writeLines(ctx.stderr, renderErrorBlock({ kind: "bad", what: FINALIZE.severalRecent, why: recent.map((r) => FINALIZE.recentRow(r.id, Math.round((nowMs - r.at) / 60000))) }, ctx.colour));
|
|
128
|
+
return EXIT.usage;
|
|
129
|
+
}
|
|
130
|
+
sessionId = recent[0].id;
|
|
131
|
+
}
|
|
132
|
+
// ── The session must be one THIS repo captured (it has a state file here) and its transcript must be findable inside the agent's own root. ──
|
|
133
|
+
const state = sessionStatePath(ctx.home, { repoKey: projectKey, sessionId });
|
|
134
|
+
if (state === null || !existsSync(state)) {
|
|
135
|
+
writeLines(ctx.stderr, renderErrorBlock({ kind: "bad", what: FINALIZE.unknownSession(sessionId), why: [] }, ctx.colour));
|
|
136
|
+
return EXIT.usage;
|
|
137
|
+
}
|
|
138
|
+
const transcriptPath = findTranscript(ctx.home, ctx.env, sessionId);
|
|
139
|
+
if (transcriptPath === null) {
|
|
140
|
+
writeLines(ctx.stderr, renderErrorBlock({ kind: "bad", what: FINALIZE.transcriptMissing(sessionId), why: [] }, ctx.colour));
|
|
141
|
+
return EXIT.failure;
|
|
142
|
+
}
|
|
143
|
+
try {
|
|
144
|
+
if (!args.force && nowMs - statSync(transcriptPath).mtimeMs < STILL_WRITING_MS) {
|
|
145
|
+
writeLines(ctx.stderr, renderErrorBlock({ kind: "bad", what: FINALIZE.stillWriting, why: [] }, ctx.colour));
|
|
146
|
+
return EXIT.usage;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
catch {
|
|
150
|
+
return EXIT.failure;
|
|
151
|
+
}
|
|
152
|
+
const eof = fileSize(transcriptPath);
|
|
153
|
+
if (eof === null)
|
|
154
|
+
return EXIT.failure;
|
|
155
|
+
// ── Deliver: promote what was pending, then sub-agents FIRST, then the main stream with the assertion. ──
|
|
156
|
+
// ⛔ NO PENDING-LINE PROMOTION HERE, deliberately. Every hook fire of this session already ran it (`hooks/entry.ts`), and
|
|
157
|
+
// the session necessarily has a state file (required above), so a first-turn commit was promoted by the first
|
|
158
|
+
// `Stop` that wrote one. Promoting from this verb would add a second call site to a function whose only call site
|
|
159
|
+
// is a pinned property (`post-commit-spool.test.ts`, D208): a dead session must never reach it.
|
|
160
|
+
const spoolKey = { repoKey: projectKey, sessionId };
|
|
161
|
+
const spooled = capSpool(readSpool(ctx.home, spoolKey));
|
|
162
|
+
const rewritten = capSuccessors(readRewrites(ctx.home, spoolKey));
|
|
163
|
+
const redactionRoots = confinementRoots(keys);
|
|
164
|
+
const repoSlug = resolveRepoSlug(projectKey);
|
|
165
|
+
const hookEnv = {
|
|
166
|
+
env: ctx.env,
|
|
167
|
+
home: ctx.home,
|
|
168
|
+
nodeVersion: ctx.nodeVersion,
|
|
169
|
+
agentId: ctx.agentId ?? DEFAULT_AGENT_ID,
|
|
170
|
+
readStdin: async () => "",
|
|
171
|
+
};
|
|
172
|
+
const input = { sessionId, transcriptPath, cwd: ctx.cwd, eventName: "Stop" };
|
|
173
|
+
const startedAt = Date.now();
|
|
174
|
+
await deliverSubagents({
|
|
175
|
+
ctx: hookEnv,
|
|
176
|
+
input,
|
|
177
|
+
url,
|
|
178
|
+
credential: load.credential,
|
|
179
|
+
projectKey,
|
|
180
|
+
redactionRoots,
|
|
181
|
+
repoSlug,
|
|
182
|
+
startedAt,
|
|
183
|
+
sendBudget: SEND_BUDGET_MS,
|
|
184
|
+
byHook: false,
|
|
185
|
+
});
|
|
186
|
+
const delivery = await deliver({
|
|
187
|
+
home: ctx.home,
|
|
188
|
+
env: ctx.env,
|
|
189
|
+
url,
|
|
190
|
+
credential: load.credential,
|
|
191
|
+
repoKey: projectKey,
|
|
192
|
+
repoSlug,
|
|
193
|
+
sessionId,
|
|
194
|
+
fileKey: "main",
|
|
195
|
+
transcriptPath,
|
|
196
|
+
timeoutMs: sendTimeoutMs(SEND_BUDGET_MS, Date.now() - startedAt),
|
|
197
|
+
nowMs: Date.now(),
|
|
198
|
+
head: headRef(projectKey),
|
|
199
|
+
commits: spooled,
|
|
200
|
+
rewrites: rewritten.pairs,
|
|
201
|
+
final: true,
|
|
202
|
+
byHook: false,
|
|
203
|
+
}, eof, (from, to) => readSpan(transcriptPath, from, to, redactionRoots, ctx.home, ctx.env));
|
|
204
|
+
// ── What the server said. ──
|
|
205
|
+
if (delivery.kind === "stopped") {
|
|
206
|
+
writeLines(ctx.stderr, renderErrorBlock({ kind: "bad", what: FINALIZE.credentialStopped, why: [] }, ctx.colour));
|
|
207
|
+
return EXIT.failure;
|
|
208
|
+
}
|
|
209
|
+
if (delivery.kind !== "attempted" || delivery.disposition !== "ok") {
|
|
210
|
+
writeLines(ctx.stderr, renderErrorBlock({ kind: "bad", what: FINALIZE.notDelivered, why: [] }, ctx.colour));
|
|
211
|
+
return EXIT.failure;
|
|
212
|
+
}
|
|
213
|
+
if (delivery.finalAck === "sealed" || delivery.finalAck === "already") {
|
|
214
|
+
clearDeliveredHold(ctx.home, spoolKey);
|
|
215
|
+
writeLines(ctx.stdout, wrap(delivery.finalAck === "sealed" ? FINALIZE.closed(sessionId) : FINALIZE.alreadyClosed(sessionId), 2));
|
|
216
|
+
return EXIT.ok;
|
|
217
|
+
}
|
|
218
|
+
if (delivery.finalAck === "refused") {
|
|
219
|
+
writeLines(ctx.stderr, renderErrorBlock({ kind: "bad", what: FINALIZE.refused, why: [] }, ctx.colour));
|
|
220
|
+
return EXIT.failure;
|
|
221
|
+
}
|
|
222
|
+
// 2xx and no acknowledgement: an older server. Delivered, NOT closed — and the exit code says so.
|
|
223
|
+
writeLines(ctx.stderr, renderErrorBlock({ kind: "warn", what: FINALIZE.notAcknowledged, why: [] }, ctx.colour));
|
|
224
|
+
return EXIT.unacknowledged;
|
|
225
|
+
}
|
|
226
|
+
/** Sessions of this repo whose state file was touched in the last 24 h, newest first. */
|
|
227
|
+
function recentSessions(home, repoKey, nowMs) {
|
|
228
|
+
const dir = repoSessionsDir(home, repoKey);
|
|
229
|
+
if (dir === null)
|
|
230
|
+
return [];
|
|
231
|
+
let entries;
|
|
232
|
+
try {
|
|
233
|
+
entries = readdirSync(dir);
|
|
234
|
+
}
|
|
235
|
+
catch {
|
|
236
|
+
return [];
|
|
237
|
+
}
|
|
238
|
+
const out = [];
|
|
239
|
+
for (const entry of entries) {
|
|
240
|
+
if (!entry.endsWith(".json"))
|
|
241
|
+
continue;
|
|
242
|
+
try {
|
|
243
|
+
const at = statSync(join(dir, entry)).mtimeMs;
|
|
244
|
+
if (nowMs - at <= LATEST_WINDOW_MS)
|
|
245
|
+
out.push({ id: entry.slice(0, -".json".length), at });
|
|
246
|
+
}
|
|
247
|
+
catch {
|
|
248
|
+
/* a vanished file is not recent */
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
return out.sort((a, b) => b.at - a.at);
|
|
252
|
+
}
|
|
253
|
+
/** `<root>/<project dir>/<session>.jsonl` under any of the agents' transcript roots, confined as a hook's is. */
|
|
254
|
+
function findTranscript(home, env, sessionId) {
|
|
255
|
+
for (const root of transcriptRoots(home, env)) {
|
|
256
|
+
let dirs;
|
|
257
|
+
try {
|
|
258
|
+
dirs = readdirSync(root);
|
|
259
|
+
}
|
|
260
|
+
catch {
|
|
261
|
+
continue;
|
|
262
|
+
}
|
|
263
|
+
for (const d of dirs) {
|
|
264
|
+
const candidate = join(root, d, `${sessionId}.jsonl`);
|
|
265
|
+
if (existsSync(candidate) && admitsTranscript(home, env, candidate))
|
|
266
|
+
return candidate;
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
return null;
|
|
270
|
+
}
|
|
271
|
+
/** After a successful close, forget end-of-session holds whose bytes have now been delivered. */
|
|
272
|
+
function clearDeliveredHold(home, key) {
|
|
273
|
+
const session = loadSessionState(home, key);
|
|
274
|
+
if (session.endHold === null)
|
|
275
|
+
return;
|
|
276
|
+
const eof = {};
|
|
277
|
+
for (const [fileKey, size] of Object.entries(session.endHold.eof)) {
|
|
278
|
+
if (fileState(session, fileKey).sentOffset < size)
|
|
279
|
+
eof[fileKey] = size;
|
|
280
|
+
}
|
|
281
|
+
saveSessionState(home, key, { ...session, endHold: Object.keys(eof).length > 0 ? { at: session.endHold.at, eof } : null });
|
|
282
|
+
}
|
|
283
|
+
//# sourceMappingURL=finalize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"finalize.js","sourceRoot":"","sources":["../../src/commands/finalize.ts"],"names":[],"mappings":"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"}
|