@vibe-commit/capture 0.6.0 → 0.7.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.
Files changed (143) hide show
  1. package/README.md +84 -5
  2. package/dist/agent_hooks.d.ts +8 -0
  3. package/dist/agent_hooks.js +31 -1
  4. package/dist/agent_hooks.js.map +1 -1
  5. package/dist/agents/claude_code.d.ts +34 -0
  6. package/dist/agents/claude_code.js +141 -8
  7. package/dist/agents/claude_code.js.map +1 -1
  8. package/dist/agents/codex_cli.d.ts +13 -0
  9. package/dist/agents/codex_cli.js +241 -2
  10. package/dist/agents/codex_cli.js.map +1 -1
  11. package/dist/agents/cursor.d.ts +34 -0
  12. package/dist/agents/cursor.js +115 -1
  13. package/dist/agents/cursor.js.map +1 -1
  14. package/dist/agents/session_listing.d.ts +29 -0
  15. package/dist/agents/session_listing.js +49 -0
  16. package/dist/agents/session_listing.js.map +1 -0
  17. package/dist/agents/types.d.ts +118 -8
  18. package/dist/agents/types.js +17 -3
  19. package/dist/agents/types.js.map +1 -1
  20. package/dist/commands/approval_pending.d.ts +9 -0
  21. package/dist/commands/approval_pending.js +23 -0
  22. package/dist/commands/approval_pending.js.map +1 -0
  23. package/dist/commands/auth.js +31 -11
  24. package/dist/commands/auth.js.map +1 -1
  25. package/dist/commands/backfill.d.ts +160 -0
  26. package/dist/commands/backfill.js +748 -0
  27. package/dist/commands/backfill.js.map +1 -0
  28. package/dist/commands/browser_credential.d.ts +2 -0
  29. package/dist/commands/browser_credential.js +31 -14
  30. package/dist/commands/browser_credential.js.map +1 -1
  31. package/dist/commands/connect.d.ts +137 -0
  32. package/dist/commands/connect.js +203 -109
  33. package/dist/commands/connect.js.map +1 -1
  34. package/dist/commands/connect_picker.d.ts +27 -0
  35. package/dist/commands/connect_picker.js +415 -0
  36. package/dist/commands/connect_picker.js.map +1 -0
  37. package/dist/commands/context.d.ts +16 -0
  38. package/dist/commands/context.js +27 -0
  39. package/dist/commands/context.js.map +1 -1
  40. package/dist/commands/credential_problem.d.ts +15 -4
  41. package/dist/commands/credential_problem.js +29 -22
  42. package/dist/commands/credential_problem.js.map +1 -1
  43. package/dist/commands/device_credential.d.ts +2 -0
  44. package/dist/commands/device_credential.js +16 -14
  45. package/dist/commands/device_credential.js.map +1 -1
  46. package/dist/commands/finalize.d.ts +95 -0
  47. package/dist/commands/finalize.js +249 -74
  48. package/dist/commands/finalize.js.map +1 -1
  49. package/dist/commands/finish_mint.d.ts +2 -6
  50. package/dist/commands/finish_mint.js +10 -2
  51. package/dist/commands/finish_mint.js.map +1 -1
  52. package/dist/commands/report.js +38 -30
  53. package/dist/commands/report.js.map +1 -1
  54. package/dist/commands/scan.d.ts +162 -0
  55. package/dist/commands/scan.js +507 -0
  56. package/dist/commands/scan.js.map +1 -0
  57. package/dist/commands/status.js +119 -22
  58. package/dist/commands/status.js.map +1 -1
  59. package/dist/commands/status_hooks.d.ts +14 -0
  60. package/dist/commands/status_hooks.js +81 -0
  61. package/dist/commands/status_hooks.js.map +1 -0
  62. package/dist/commands/status_machine.d.ts +18 -0
  63. package/dist/commands/status_machine.js +149 -0
  64. package/dist/commands/status_machine.js.map +1 -0
  65. package/dist/commands/why.js +44 -31
  66. package/dist/commands/why.js.map +1 -1
  67. package/dist/consent.d.ts +111 -0
  68. package/dist/consent.js +203 -1
  69. package/dist/consent.js.map +1 -1
  70. package/dist/copy/error_codes.d.ts +222 -0
  71. package/dist/copy/error_codes.js +105 -0
  72. package/dist/copy/error_codes.js.map +1 -0
  73. package/dist/copy/index.d.ts +2 -2
  74. package/dist/copy/index.js +2 -2
  75. package/dist/copy/index.js.map +1 -1
  76. package/dist/copy/strings.d.ts +497 -29
  77. package/dist/copy/strings.js +601 -35
  78. package/dist/copy/strings.js.map +1 -1
  79. package/dist/copy/time.d.ts +11 -0
  80. package/dist/copy/time.js +18 -0
  81. package/dist/copy/time.js.map +1 -1
  82. package/dist/credential.d.ts +5 -1
  83. package/dist/credential.js +2 -2
  84. package/dist/credential.js.map +1 -1
  85. package/dist/git.d.ts +43 -0
  86. package/dist/git.js +95 -0
  87. package/dist/git.js.map +1 -1
  88. package/dist/hooks/entry.d.ts +18 -1
  89. package/dist/hooks/entry.js +110 -13
  90. package/dist/hooks/entry.js.map +1 -1
  91. package/dist/hooks/post_commit.js +3 -3
  92. package/dist/hooks/post_commit.js.map +1 -1
  93. package/dist/hooks/post_rewrite.js +6 -4
  94. package/dist/hooks/post_rewrite.js.map +1 -1
  95. package/dist/hooks/session_start.d.ts +93 -0
  96. package/dist/hooks/session_start.js +199 -0
  97. package/dist/hooks/session_start.js.map +1 -0
  98. package/dist/index.d.ts +1 -1
  99. package/dist/index.js +56 -8
  100. package/dist/index.js.map +1 -1
  101. package/dist/install.d.ts +57 -0
  102. package/dist/install.js +54 -20
  103. package/dist/install.js.map +1 -1
  104. package/dist/json.d.ts +32 -9
  105. package/dist/json.js +35 -8
  106. package/dist/json.js.map +1 -1
  107. package/dist/machine_state.d.ts +52 -0
  108. package/dist/machine_state.js +63 -0
  109. package/dist/machine_state.js.map +1 -0
  110. package/dist/oauth/session.d.ts +1 -0
  111. package/dist/org_pending.d.ts +52 -0
  112. package/dist/org_pending.js +109 -0
  113. package/dist/org_pending.js.map +1 -0
  114. package/dist/paths.d.ts +50 -0
  115. package/dist/paths.js +64 -0
  116. package/dist/paths.js.map +1 -1
  117. package/dist/picker.d.ts +180 -0
  118. package/dist/picker.js +477 -0
  119. package/dist/picker.js.map +1 -0
  120. package/dist/picker_checklist.d.ts +125 -0
  121. package/dist/picker_checklist.js +375 -0
  122. package/dist/picker_checklist.js.map +1 -0
  123. package/dist/policy.d.ts +54 -0
  124. package/dist/policy.js +47 -0
  125. package/dist/policy.js.map +1 -1
  126. package/dist/post.d.ts +50 -16
  127. package/dist/post.js +265 -58
  128. package/dist/post.js.map +1 -1
  129. package/dist/state.d.ts +6 -0
  130. package/dist/state.js +38 -1
  131. package/dist/state.js.map +1 -1
  132. package/dist/system_message.d.ts +8 -1
  133. package/dist/system_message.js +19 -1
  134. package/dist/system_message.js.map +1 -1
  135. package/dist/term.d.ts +28 -2
  136. package/dist/term.js +23 -2
  137. package/dist/term.js.map +1 -1
  138. package/dist/verb_help.d.ts +13 -0
  139. package/dist/verb_help.js +40 -0
  140. package/dist/verb_help.js.map +1 -0
  141. package/dist/version.d.ts +1 -1
  142. package/dist/version.js +1 -1
  143. package/package.json +5 -9
@@ -26,20 +26,23 @@
26
26
  *
27
27
  * @provenance vibecommit-mcp src/transport/server.ts — POST /oauth/ingest-credential now mints one, verified
28
28
  */
29
- import { AUTH, CONNECT, COMMANDS, AGENT_HOOKS, COMMIT_HOOK, ERRORS, HELP, PATH_CLASH, REJECTED, DEVICE, RUNTIME, URLS, } from "../copy/index.js";
29
+ import { AUTH, CONNECT, PICKER, COMMANDS, AGENT_HOOKS, COMMIT_HOOK, HELP, PATH_CLASH, REJECTED, DEVICE, RUNTIME, URLS, } from "../copy/index.js";
30
30
  import { dialectFor } from "../agents/registry.js";
31
- import { grantProject, isAffirmative, isProjectAllowed } from "../consent.js";
31
+ import { clearExclusion, grantProject, grantsUnreadable, isAffirmative, isCaptureAllowed, isLocalSlug, } from "../consent.js";
32
32
  import { loadCredential } from "../credential.js";
33
33
  import { EXIT } from "../exit.js";
34
- import { resolveRepoSlug } from "../git.js";
35
- import { confinementRoots, readSpan, DEFAULT_HOOK_BUDGET_MS } from "../hooks/entry.js";
34
+ import { onceRepoSlug, resolveRepoSlug } from "../git.js";
35
+ import { confinementRoots, hookBudgetMs, readSpan, recordCutter, DEFAULT_HOOK_BUDGET_MS } from "../hooks/entry.js";
36
36
  import { installAgentHooks } from "../agent_install.js";
37
- import { authCommandFor, classifyInstall, installPostCommitHook } from "../install.js";
37
+ import { authCommandFor, channelCommand, classifyInstall, connectCommandFor, installPostCommitHook } from "../install.js";
38
+ import { realpathSync } from "node:fs";
38
39
  import { CAPTURE_NOT_APPROVED, deliver, credentialFingerprint, ingestUrl, } from "../post.js";
39
40
  import { resolveProjectKeys } from "../project.js";
40
41
  import { meetsNodeFloor, NODE_FLOOR_TEXT } from "../runtime.js";
41
42
  import { credentialsPath } from "../paths.js";
42
43
  import { paint, renderErrorBlock, tildePath, truncatePath, wrap } from "../term.js";
44
+ import { renderVerbHelp } from "../verb_help.js";
45
+ import { approvalPendingBlock } from "./approval_pending.js";
43
46
  import { credentialProblem, rejectedCredentialBlock } from "./credential_problem.js";
44
47
  import { probeCredential } from "./probe.js";
45
48
  import { writeLines } from "./context.js";
@@ -49,13 +52,15 @@ export async function connect(ctx, options = {}, deps = {}) {
49
52
  // `connect` carries the "already exposed" urgency `auth`'s own positional refusal does, so first is
50
53
  // safe here, unlike there. Reads and writes nothing.
51
54
  if (options.help === true) {
52
- writeLines(ctx.stdout, [HELP.commands.connect]);
55
+ const helpVerb = "connect"; // an identifier, not a literal, at the writer: `copy-inline-literals` follows argument positions
56
+ writeLines(ctx.stdout, renderVerbHelp(helpVerb));
53
57
  return EXIT.ok;
54
58
  }
55
59
  // `CR-234d`: sign-in by code waits on a person and ends in a question — a terminal or nothing.
56
60
  if (options.device === true && !ctx.stdinIsTty) {
57
61
  writeLines(ctx.stderr, renderErrorBlock({
58
62
  kind: "bad",
63
+ code: "SIGNIN_CODE_NEEDS_TTY",
59
64
  what: DEVICE.needsTerminalWhat,
60
65
  why: [DEVICE.needsTerminalWhy],
61
66
  fixLabel: DEVICE.needsTerminalFix,
@@ -68,60 +73,129 @@ export async function connect(ctx, options = {}, deps = {}) {
68
73
  if (!meetsNodeFloor(ctx.nodeVersion)) {
69
74
  writeLines(ctx.stderr, renderErrorBlock({
70
75
  kind: "bad",
76
+ code: "NODE_TOO_OLD",
71
77
  what: RUNTIME.floorWhat,
72
78
  why: [
73
79
  `${RUNTIME.floorWhyPrefix} ${NODE_FLOOR_TEXT} ${RUNTIME.floorWhyMiddle} ${ctx.nodeVersion}.`,
74
80
  ],
75
81
  fixLabel: RUNTIME.floorFix,
76
- fixes: [COMMANDS.connect],
82
+ fixes: [connectCommandFor(ctx.env, ctx.selfPath)],
77
83
  }, ctx.colour));
78
84
  return EXIT.failure;
79
85
  }
80
- // (2) BOTH KEYS (`D184 §1`). Outside a work tree there is nothing to consent
81
- // ABOUT, and inventing a key from cwd would grant consent to something the
82
- // user cannot see in `status`.
86
+ // (2) WHERE ARE WE? (0.7.0, D34.) `connect` no longer needs a work tree: outside one, and from `$HOME` even inside one, it
87
+ // shows the picker. Inside a work tree with a remote it shows the picker with this repo pre-ticked. A repo that is
88
+ // ALREADY covered skips it, and a repo with no remote (`local:`) keeps the 0.6.0 flow: there is no slug to grant.
83
89
  //
84
- // ⛔ THE GRANT BELOW IS THE ONLY WRITER OF THE ALLOW LIST, so this verb decides
85
- // what every gate can ever match. It writes `keys.consent` — the git common
86
- // dir — which is what admits the worktrees of this clone as well as the clone
87
- // itself. Granting the toplevel here while `entry.ts` and `post_commit.ts`
88
- // check the common dir is a TOTAL, SILENT capture outage in every repository
89
- // (`D184 §9`), and no cell that grants and checks through one helper can see
90
- // it.
90
+ // ⛔ THE PER-CLONE GRANT IS STILL THE ONLY WRITER OF `projects.json`, and it writes `keys.consent` — the git common
91
+ // dir (`D184 §1`, `§9`): granting the toplevel while the gates check the common dir is a TOTAL, SILENT capture outage
92
+ // in every repository, and no cell that grants and checks through one helper can see it.
91
93
  const keys = resolveProjectKeys(ctx.cwd);
92
- if (keys === null) {
93
- writeLines(ctx.stderr, renderErrorBlock({ kind: "bad", what: ERRORS.notAGitRepo, why: [] }, ctx.colour));
94
+ if (keys === null || atHome(ctx)) {
95
+ // Outside a work tree: nothing to pre-tick. At `$HOME` a dotfiles repo is FLAGGED in the list, never pre-ticked.
96
+ let here = null;
97
+ if (keys !== null) {
98
+ const slug = resolveRepoSlug(keys.worktree);
99
+ if (!isLocalSlug(slug))
100
+ here = { slug, toplevel: keys.worktree, kind: "folder" };
101
+ }
102
+ return await (await import("./connect_picker.js")).connectPicker(ctx, options, deps, here);
103
+ }
104
+ // 0.7.0: the same decision the hooks make. A repo that is excluded (`vibecommit off`) is NOT already connected here
105
+ // even when its common-dir consent survives, so it falls through to the disclosure, and only a yes below clears it.
106
+ const slugOf = onceRepoSlug(keys.worktree);
107
+ if (grantsUnreadable(ctx.home) && !isLocalSlug(slugOf())) {
108
+ writeLines(ctx.stderr, grantsUnreadableBlock(ctx));
94
109
  return EXIT.failure;
95
110
  }
96
- if (isProjectAllowed(ctx.home, keys.consent)) {
111
+ if (isCaptureAllowed(ctx.home, keys, slugOf)) {
97
112
  writeLines(ctx.stdout, wrap(CONNECT.alreadyConnected, 2));
98
113
  return await afterConsent(ctx, keys, options, deps);
99
114
  }
100
- // (3) The disclosure, then the gate.
101
- writeLines(ctx.stdout, disclosure(ctx));
115
+ if (!isLocalSlug(slugOf())) {
116
+ return await (await import("./connect_picker.js")).connectPicker(ctx, options, deps, { slug: slugOf(), toplevel: keys.worktree, kind: "repo" }, keys);
117
+ }
118
+ // (3) The disclosure, then the gate. A repo with no remote: the 0.6.0 screen, under its own heading (D35).
119
+ writeLines(ctx.stdout, disclosure(ctx, false));
102
120
  // (4) Non-TTY REFUSES. A consent prompt that proceeds when nobody can answer
103
121
  // it is not a consent prompt (D65 §DR7). Exit 2 — DESIGN.md §13.7 names this
104
122
  // case explicitly, so it is a usage error and not a failure.
105
123
  if (!ctx.stdinIsTty) {
106
124
  writeLines(ctx.stderr, renderErrorBlock({
107
125
  kind: "bad",
126
+ code: "CONSENT_NEEDS_TTY",
108
127
  what: CONNECT.nonInteractiveWhat,
109
128
  why: [CONNECT.nonInteractiveWhy],
110
- fixLabel: CONNECT.nonInteractiveFix,
111
- fixes: [COMMANDS.connect],
129
+ // PR 6 item 6: names the folder the user is to run it in, cut from the LEFT to fit the line (§13.4).
130
+ fixLabel: CONNECT.nonInteractiveFix(truncatePath(tildePath(keys.worktree, ctx.home), 46)),
131
+ fixes: [connectCommandFor(ctx.env, ctx.selfPath)],
112
132
  }, ctx.colour));
113
133
  return EXIT.usage;
114
134
  }
115
- // (5) The default is N. Anything that is not an explicit yes is a no.
116
- const answer = await ctx.ask(` ${CONNECT.consentPrompt} ${paint(ctx.colour, "muted", CONNECT.consentAnswers)} `);
135
+ // (5) The default is N. Anything that is not an explicit yes is a no. ⛔ A REJECTED QUESTION IS A CANCEL: Ctrl+C at a
136
+ // `readline/promises` question does not raise SIGINT, the promise REJECTS (TODOS[191]), and left to escape it printed
137
+ // the "unexpected error" block for what is ordinary CLI behaviour.
138
+ const answer = await askOrCancel(ctx, ` ${CONNECT.consentPrompt} ${paint(ctx.colour, "muted", CONNECT.consentAnswers)} `);
139
+ if (answer === null)
140
+ return cancelled(ctx);
117
141
  if (!isAffirmative(answer)) {
118
142
  writeLines(ctx.stdout, ["", ...wrap(CONNECT.declined, 2)]);
119
143
  // Declining is a successful consent flow, not a failure. Exit 0 (§13.7).
120
144
  return EXIT.ok;
121
145
  }
146
+ // A yes is the ONLY thing that lifts an exclusion: `off` recorded the slug, and the disclosure above was shown again.
147
+ // ⛔ `grants.json` FIRST, THE COMMON-DIR CONSENT SECOND (VR #28, on merged #73). `clearExclusion` refuses to touch a file it
148
+ // cannot read BEFORE it writes anything, so a race with an edit of `grants.json` since the check above stops here with
149
+ // nothing written — which keeps "Nothing was changed." true. The other order had already written `projects.json`.
150
+ // A repo with no remote has no slug to exclude and is exempt from an unreadable file (`isCaptureAllowed`), so it skips this.
151
+ if (!isLocalSlug(slugOf()) && clearExclusion(ctx.home, slugOf()) === "unreadable") {
152
+ writeLines(ctx.stderr, grantsUnreadableBlock(ctx));
153
+ return EXIT.failure;
154
+ }
122
155
  grantProject(ctx.home, keys.consent, ctx.now());
123
156
  return await afterConsent(ctx, keys, options, deps);
124
157
  }
158
+ /** Is the working folder the home directory? Realpaths, so a symlinked home still matches; any failure is "no". */
159
+ function atHome(ctx) {
160
+ if (ctx.home === "")
161
+ return false;
162
+ try {
163
+ return realpathSync(ctx.cwd) === realpathSync(ctx.home);
164
+ }
165
+ catch {
166
+ return false;
167
+ }
168
+ }
169
+ /**
170
+ * Ask a question; `null` when the prompt was aborted. Ctrl+C at a `readline/promises` question closes the interface and
171
+ * REJECTS with an `AbortError` instead of raising SIGINT (TODOS[191]), so every ask site that wants Ctrl+C to be a No
172
+ * goes through here. A rejection means nobody said yes.
173
+ */
174
+ export async function askOrCancel(ctx, question) {
175
+ try {
176
+ return await ctx.ask(question);
177
+ }
178
+ catch {
179
+ return null;
180
+ }
181
+ }
182
+ /** §10.11: Ctrl+C at the picker or the grant y/N is a No. Exit 1, and nothing was changed. */
183
+ export function cancelled(ctx) {
184
+ // The terminal left the cursor at the end of the prompt line, so one empty line ends it and a second leaves the blank
185
+ // line the drawn screen has.
186
+ writeLines(ctx.stdout, ["", "", ...wrap(PICKER.cancelled, 2)]);
187
+ return EXIT.failure;
188
+ }
189
+ export function grantsUnreadableBlock(ctx) {
190
+ return renderErrorBlock({
191
+ kind: "bad",
192
+ code: "GRANTS_UNREADABLE",
193
+ what: CONNECT.grantsUnreadableWhat,
194
+ why: [CONNECT.grantsUnreadableWhy],
195
+ fixLabel: CONNECT.grantsUnreadableFixLabel,
196
+ fixes: [connectCommandFor(ctx.env, ctx.selfPath)],
197
+ }, ctx.colour);
198
+ }
125
199
  /**
126
200
  * Consent is settled. Sign in if asked, then do the credential beat.
127
201
  *
@@ -158,13 +232,16 @@ async function afterConsent(ctx, keys, options, deps) {
158
232
  * because the approved copy itself says "private-repo paths", so a substring
159
233
  * gate would fire on approved copy on day one. That one is a HUMAN review item.
160
234
  */
161
- function disclosure(ctx) {
235
+ export function disclosure(ctx, picker) {
162
236
  // §10.2 aligns the two link URLs in one column. The width is DERIVED from the
163
237
  // labels rather than hardcoded, so editing a label cannot silently break the
164
238
  // alignment — and the four trailing spaces are the gutter the guide draws.
165
239
  const gutter = Math.max(CONNECT.consentDocsLabel.length, CONNECT.consentBundleLabel.length) + 4;
166
240
  return [
167
- ...wrap(CONNECT.consentHeading, 2),
241
+ // D23 · D35: the picker path and the no-remote path each have their own heading (a new constant, passing the same
242
+ // content gates). The four paragraphs under either are byte-identical, and the picker path adds ONE sentence.
243
+ ...wrap(picker ? CONNECT.consentHeadingPicker : CONNECT.consentHeading, 2),
244
+ ...(picker ? wrap(CONNECT.consentScope, 2) : []),
168
245
  "",
169
246
  ...wrap(CONNECT.consentDetail, 2),
170
247
  "",
@@ -200,6 +277,16 @@ function disclosure(ctx) {
200
277
  * exactly the population that installs commit tooling.
201
278
  */
202
279
  async function credentialBeat(ctx, keys, deps, options = {}) {
280
+ const got = await obtainCredential(ctx, deps, options);
281
+ if (got.kind === "exit")
282
+ return got.code;
283
+ return await captureBeat(ctx, keys, got.credential, got.unconfirmed);
284
+ }
285
+ /**
286
+ * Get a credential this machine can send with — the beat both endings share (the 0.6.0 one and the picker's).
287
+ * `scope: "repos"` is the picker path: the workspace question names the repos chosen, not the machine (D7 · 3A).
288
+ */
289
+ export async function obtainCredential(ctx, deps, options = {}, scope) {
203
290
  const load = loadCredential({ env: ctx.env, home: ctx.home });
204
291
  if (load.kind === "ok") {
205
292
  // ⛔ ASK THE SERVER BEFORE SENDING — `R12` (D13 = A), G1. `connect` used to send whatever loaded
@@ -216,12 +303,12 @@ async function credentialBeat(ctx, keys, deps, options = {}) {
216
303
  colour: ctx.colour,
217
304
  standing: false,
218
305
  }));
219
- return EXIT.notConnected;
306
+ return { kind: "exit", code: EXIT.notConnected };
220
307
  }
221
308
  // Only a 401 proves the credential dead. A 5xx, a 404 from a server that predates the route, a
222
309
  // timeout or a network error says nothing about it — and "a blip is not a failed install" is the
223
310
  // rule `captureBeat` already keeps for the send. So: today's ending, plus one muted line.
224
- return await captureBeat(ctx, keys, load.credential, probe.kind === "unavailable");
311
+ return { kind: "credential", credential: load.credential, unconfirmed: probe.kind === "unavailable" };
225
312
  }
226
313
  // ⛔ ONLY FOR `absent`, AND ONLY WITH A HUMAN AT THE TERMINAL (`CR-226`).
227
314
  // - `absent`: a credential that is present but wrong-class, unreadable or
@@ -231,7 +318,10 @@ async function credentialBeat(ctx, keys, deps, options = {}) {
231
318
  // opened there waits five minutes for nobody. The old warning is the
232
319
  // right answer for them, and it is what they still get.
233
320
  if (load.kind === "absent" && ctx.stdinIsTty && deps.browser !== undefined) {
234
- const minted = await deps.browser(ctx, "connect", { device: options.device === true });
321
+ const minted = await deps.browser(ctx, "connect", {
322
+ device: options.device === true,
323
+ ...(scope === undefined ? {} : { scope }),
324
+ });
235
325
  if (minted.kind === "saved") {
236
326
  writeLines(ctx.stdout, [
237
327
  "",
@@ -242,27 +332,89 @@ async function credentialBeat(ctx, keys, deps, options = {}) {
242
332
  }, ctx.colour),
243
333
  ]);
244
334
  // Already probed by the mint (`finishMint`), so no second probe here.
245
- return await captureBeat(ctx, keys, minted.credential, false);
335
+ return { kind: "credential", credential: minted.credential, unconfirmed: false };
246
336
  }
247
337
  // Declined at the replace confirmation: the reason is already on screen, and the user said NO.
248
338
  if (minted.kind === "declined")
249
- return EXIT.failure;
339
+ return { kind: "exit", code: EXIT.failure };
250
340
  // Failed: the reason is already on stderr. Fall through to the paste path.
251
341
  }
252
342
  // ⛔ R15: a FAULTY file is named as the fault it is, not as "no credential". The fix for a fault is
253
343
  // `auth` (or a `chmod`), and `connect` still never mints over one (D206 §5).
254
344
  if (load.kind !== "absent") {
255
345
  writeLines(ctx.stderr, credentialProblem(load, ctx.colour, authCommandFor(ctx.env, ctx.selfPath)));
256
- return EXIT.notConnected;
346
+ return { kind: "exit", code: EXIT.notConnected };
257
347
  }
258
348
  writeLines(ctx.stderr, renderErrorBlock({
259
349
  kind: "warn",
260
350
  what: CONNECT.credentialNeededWhat,
261
351
  why: [CONNECT.credentialNeededWhy],
262
352
  fixLabel: CONNECT.credentialNeededFix,
263
- fixes: [CONNECT.credentialNeededCommand, COMMANDS.connect],
353
+ fixes: [CONNECT.credentialNeededCommand, COMMANDS.connect].map((fix) => channelCommand(ctx.env, ctx.selfPath, fix)),
264
354
  }, ctx.colour));
265
- return EXIT.notConnected;
355
+ return { kind: "exit", code: EXIT.notConnected };
356
+ }
357
+ /**
358
+ * The test capture: send the current session's transcript through `deliver()` so the ending can name evidence (D57 §DX5's
359
+ * Sentry-wizard pattern). Shared by the 0.6.0 ending (`captureBeat`) and the in-repo picker path (0.7.0, VQ item 7), so the
360
+ * two cannot drift: one budget (`hookBudgetMs`, PR 4a), one redaction root set, one place that reads a 2xx body.
361
+ *
362
+ * `found` is the located transcript, or `null` when there is none (no locator, or the agent has not run here). Returns the
363
+ * delivery, or `null` when nothing was sent.
364
+ */
365
+ export async function sendTestCapture(ctx, keys, credential, found) {
366
+ const projectKey = keys.worktree;
367
+ const url = ingestUrl(ctx.env);
368
+ let delivery = null;
369
+ if (found !== null && url !== null) {
370
+ // Through `deliver()`, so the offset ledger, the failure policy and
371
+ // `CR-024d`'s redaction all apply exactly as they do for a hook. A second
372
+ // upload path here would bypass all three.
373
+ delivery = await deliver({
374
+ home: ctx.home,
375
+ env: ctx.env,
376
+ url,
377
+ credential,
378
+ repoKey: projectKey,
379
+ repoSlug: resolveRepoSlug(projectKey),
380
+ sessionId: found.sessionId,
381
+ fileKey: "main",
382
+ // ⛔ The LOCATED path (`CR-204`), so this test capture names its producer
383
+ // on the wire exactly as a hook's would — and names it the same way,
384
+ // from the root that contains the file rather than from `ctx.agentId`.
385
+ // ⚠ The LOCATOR above is still the flag's: `connect` is looking FOR a
386
+ // transcript, so there is no path yet to ask a root about.
387
+ transcriptPath: found.path,
388
+ timeoutMs: DEFAULT_HOOK_BUDGET_MS,
389
+ // PR 4a — ONE HOOK BUDGET (Alexander's ruling, design doc Next Steps 4a). A large session is sent in deltas, and this
390
+ // test capture sends what fits in a single hook's budget, then prints its ending: `connect` must not sit through a
391
+ // multi-minute upload that the session's own hooks, `finalize` and the backfill offer will do anyway. What is left
392
+ // is NOT written off: the offset stays where the last acknowledged delta put it. The ending below is unchanged for a
393
+ // partial delivery, and so is the conversation-id link (the id comes from the first delta that carries it).
394
+ deadlineAtMs: Date.now() + hookBudgetMs(ctx.env, ctx.agentId ?? ""),
395
+ nowMs: ctx.now().getTime(),
396
+ // ⛔ NOT A HOOK. `connect` backfills the located transcript, which is not evidence that the session is alive: it
397
+ // would otherwise rewrite an old session's state file and (under the mtime clock) make it "live" — the D2 shape.
398
+ byHook: false,
399
+ // ⛔ THE ONLY CALLER THAT READS A 2xx BODY (`eng-2 D2 = A`): for the session link. Hooks and
400
+ // `finalize` leave this unset, so the hook's hot path never reads, awaits or parses one.
401
+ readConversationId: true,
402
+ }, found.size,
403
+ // ⛔ THE ROOT SET, and it is `confinementRoots` — THE SAME FUNCTION THE
404
+ // HOOK PATH CALLS (`entry.ts`), not a set built here. `D184 §3`: the
405
+ // confinement root is `[worktree, mainToplevel]` and the consent key is
406
+ // NEVER a member, so this does not follow the flip above.
407
+ //
408
+ // ⚠ WHY IT CANNOT STAY THE SINGLETON IT WAS: `connect` runs in whatever
409
+ // cwd a human typed it in, which is reachable from inside a worktree. With
410
+ // one root, this preview would redact main-clone content that the hook
411
+ // path transmits — the two would disagree SILENTLY, and the preview is the
412
+ // artefact the user reads to decide whether redaction works. `isInside`
413
+ // fail-closes an unresolvable path to REDACT, so the disagreement shows up
414
+ // as a plausible, well-formed, emptier payload rather than an error.
415
+ (from, to) => readSpan(found.path, from, to, confinementRoots(keys), ctx.home, ctx.env), recordCutter(found.path));
416
+ }
417
+ return { delivery };
266
418
  }
267
419
  /**
268
420
  * The ending — D57 §DX5's Sentry-wizard test-event pattern.
@@ -343,55 +495,12 @@ unconfirmed) {
343
495
  what: CONNECT.noTranscriptWhat,
344
496
  why: [CONNECT.noTranscriptWhy],
345
497
  fixLabel: CONNECT.noTranscriptFix,
346
- fixes: [COMMANDS.status],
498
+ fixes: [channelCommand(ctx.env, ctx.selfPath, COMMANDS.status)],
347
499
  }, ctx.colour),
348
500
  ]);
349
501
  return tail(ctx, unconfirmed);
350
502
  }
351
- const url = ingestUrl(ctx.env);
352
- let delivery = null;
353
- if (found !== null && url !== null) {
354
- // Through `deliver()`, so the offset ledger, the failure policy and
355
- // `CR-024d`'s redaction all apply exactly as they do for a hook. A second
356
- // upload path here would bypass all three.
357
- delivery = await deliver({
358
- home: ctx.home,
359
- env: ctx.env,
360
- url,
361
- credential,
362
- repoKey: projectKey,
363
- repoSlug: resolveRepoSlug(projectKey),
364
- sessionId: found.sessionId,
365
- fileKey: "main",
366
- // ⛔ The LOCATED path (`CR-204`), so this test capture names its producer
367
- // on the wire exactly as a hook's would — and names it the same way,
368
- // from the root that contains the file rather than from `ctx.agentId`.
369
- // ⚠ The LOCATOR above is still the flag's: `connect` is looking FOR a
370
- // transcript, so there is no path yet to ask a root about.
371
- transcriptPath: found.path,
372
- timeoutMs: DEFAULT_HOOK_BUDGET_MS,
373
- nowMs: ctx.now().getTime(),
374
- // ⛔ NOT A HOOK. `connect` backfills the located transcript, which is not evidence that the session is alive: it
375
- // would otherwise rewrite an old session's state file and (under the mtime clock) make it "live" — the D2 shape.
376
- byHook: false,
377
- // ⛔ THE ONLY CALLER THAT READS A 2xx BODY (`eng-2 D2 = A`): for the session link. Hooks and
378
- // `finalize` leave this unset, so the hook's hot path never reads, awaits or parses one.
379
- readConversationId: true,
380
- }, found.size,
381
- // ⛔ THE ROOT SET, and it is `confinementRoots` — THE SAME FUNCTION THE
382
- // HOOK PATH CALLS (`entry.ts`), not a set built here. `D184 §3`: the
383
- // confinement root is `[worktree, mainToplevel]` and the consent key is
384
- // NEVER a member, so this does not follow the flip above.
385
- //
386
- // ⚠ WHY IT CANNOT STAY THE SINGLETON IT WAS: `connect` runs in whatever
387
- // cwd a human typed it in, which is reachable from inside a worktree. With
388
- // one root, this preview would redact main-clone content that the hook
389
- // path transmits — the two would disagree SILENTLY, and the preview is the
390
- // artefact the user reads to decide whether redaction works. `isInside`
391
- // fail-closes an unresolvable path to REDACT, so the disagreement shows up
392
- // as a plausible, well-formed, emptier payload rather than an error.
393
- (from, to) => readSpan(found.path, from, to, confinementRoots(keys), ctx.home, ctx.env));
394
- }
503
+ const { delivery } = await sendTestCapture(ctx, keys, credential, found);
395
504
  // THE FIFTH BEAT — `CR-110`, D65 §DR6, D81.
396
505
  //
397
506
  // ⚠ ONE outcome is branched on, identified by its ERROR CODE. The general rule
@@ -417,7 +526,7 @@ unconfirmed) {
417
526
  ` ${paint(ctx.colour, "accent", conversationId === undefined ? URLS.commits : URLS.conversation(conversationId))}`,
418
527
  "",
419
528
  ...wrap(CONNECT.doneForRepo(truncatePath(projectKey, 52)), 2),
420
- ...wrap(`${CONNECT.stopLabel}: ${COMMANDS.off}`, 2),
529
+ ...wrap(`${CONNECT.stopLabel}: ${channelCommand(ctx.env, ctx.selfPath, COMMANDS.off)}`, 2),
421
530
  ]);
422
531
  return tail(ctx, unconfirmed);
423
532
  }
@@ -426,13 +535,13 @@ unconfirmed) {
426
535
  * the PATH-clash check. The one place `pathClash` is called — a branch that called it too would print
427
536
  * the clash block twice.
428
537
  */
429
- function tail(ctx, unconfirmed) {
538
+ export function tail(ctx, unconfirmed) {
430
539
  if (unconfirmed) {
431
540
  writeLines(ctx.stdout, [
432
541
  "",
433
542
  // Two short lines, never one wrapped: the backticked command must not be split (see `REJECTED`).
434
543
  ` ${paint(ctx.colour, "muted", REJECTED.unconfirmedWhat)}`,
435
- ` ${paint(ctx.colour, "muted", REJECTED.unconfirmedFix)}`,
544
+ ` ${paint(ctx.colour, "muted", REJECTED.unconfirmedFix(channelCommand(ctx.env, ctx.selfPath, COMMANDS.status)))}`,
436
545
  ]);
437
546
  }
438
547
  return pathClash(ctx);
@@ -449,7 +558,7 @@ function tail(ctx, unconfirmed) {
449
558
  * into a file shared by every project — the one new responsibility `CR-195`
450
559
  * names — so "we configured your editor" is the shape this must not take.
451
560
  */
452
- function agentHookBeat(ctx) {
561
+ export function agentHookBeat(ctx) {
453
562
  const outcomes = installAgentHooks(ctx.home, ctx.env, ctx.selfPath);
454
563
  for (const outcome of outcomes) {
455
564
  // Absent agents say nothing at all. A line per tool the user does not have
@@ -482,7 +591,7 @@ function agentHookBeat(ctx) {
482
591
  ...(refused
483
592
  ? {
484
593
  fixLabel: AGENT_HOOKS.refusedFixLabel,
485
- fixes: [AGENT_HOOKS.refusedFix(path)],
594
+ fixes: [AGENT_HOOKS.refusedFix(path, connectCommandFor(ctx.env, ctx.selfPath))],
486
595
  }
487
596
  : {}),
488
597
  }, ctx.colour),
@@ -534,7 +643,7 @@ function commitHookBeat(ctx, projectKey) {
534
643
  : COMMIT_HOOK.failedWhy(outcome.why),
535
644
  ],
536
645
  fixLabel: COMMIT_HOOK.hooksPathFixLabel,
537
- fixes: [COMMIT_HOOK.hooksPathFixUnset, COMMIT_HOOK.hooksPathFixManual],
646
+ fixes: [COMMIT_HOOK.hooksPathFixUnset, COMMIT_HOOK.hooksPathFixManual(channelCommand(ctx.env, ctx.selfPath, COMMANDS.postCommit))],
538
647
  }, ctx.colour),
539
648
  ]);
540
649
  return;
@@ -544,7 +653,7 @@ function commitHookBeat(ctx, projectKey) {
544
653
  : outcome.kind === "chained"
545
654
  ? COMMIT_HOOK.chained(repo)
546
655
  : COMMIT_HOOK.already;
547
- writeLines(ctx.stdout, ["", ...wrap(line, 2), ...wrap(COMMIT_HOOK.perClone, 2)]);
656
+ writeLines(ctx.stdout, ["", ...wrap(line, 2), ...wrap(COMMIT_HOOK.perClone(connectCommandFor(ctx.env, ctx.selfPath)), 2)]);
548
657
  }
549
658
  /**
550
659
  * Is this delivery the org-approval-pending outcome, and nothing else?
@@ -561,7 +670,7 @@ function commitHookBeat(ctx, projectKey) {
561
670
  * is normalised to `null`, because both mean *not determinable* to the copy and
562
671
  * neither may assert delivery.
563
672
  */
564
- function approvalPending(delivery) {
673
+ export function approvalPending(delivery) {
565
674
  if (delivery === null || delivery.kind !== "attempted")
566
675
  return null;
567
676
  if (delivery.detail?.code !== CAPTURE_NOT_APPROVED)
@@ -578,19 +687,9 @@ function approvalPending(delivery) {
578
687
  * offset holds and the backlog uploads in order once an owner approves. A red
579
688
  * exit here tells a correctly-installed user they broke something.
580
689
  */
581
- function approvalPendingBeat(ctx, projectKey, ownersNotified) {
582
- // ⚠ THE SHARED CLAUSE FIRST, THE NOTIFICATION SECOND — it ADDS, it does not
583
- // replace (D81). Composed here rather than as two independent paragraphs, so
584
- // the branches cannot drift apart: there is exactly one place the
585
- // recorded-request sentence exists.
586
- //
587
- // ⚠ AND `null` NEVER REACHES THE NOTIFICATION CLAUSE. `null` = not
588
- // determinable, `0` = determinable and nobody was told; both render the
589
- // recorded-go-ask branch alone. The owner genuinely is not emailed until
590
- // `CR-036`, which is provisioning-blocked — disclosed, not concealed.
591
- const why = ownersNotified !== null && ownersNotified > 0
592
- ? `${CONNECT.pendingRecorded} ${CONNECT.pendingNotified(ownersNotified)}`
593
- : CONNECT.pendingRecorded;
690
+ export function approvalPendingBeat(ctx, projectKey, ownersNotified) {
691
+ // The block itself is `approval_pending.ts`'s, shared with `status`: the shared clause first, the notification second
692
+ // (it ADDS, it does not replace, D81), and `null` never reaches the notification clause.
594
693
  // ⚠ STDOUT, not stderr, and the rule is consistent in this file: stderr
595
694
  // accompanies a NON-ZERO exit here (`credentialBeat` → 3, `noTranscript` → 1,
596
695
  // `pathClash` → 1, the sign-in failures → 1). This beat exits 0, so it is the
@@ -599,13 +698,7 @@ function approvalPendingBeat(ctx, projectKey, ownersNotified) {
599
698
  // armed" with the reason stripped off it.
600
699
  writeLines(ctx.stdout, [
601
700
  "",
602
- ...renderErrorBlock({
603
- kind: "warn",
604
- what: CONNECT.pendingWhat,
605
- why: [CONNECT.pendingWhy(resolveRepoSlug(projectKey)), why, CONNECT.pendingBuffered],
606
- fixLabel: CONNECT.pendingTrackLabel,
607
- fixes: [URLS.captureAccess],
608
- }, ctx.colour),
701
+ ...approvalPendingBlock(ctx.colour, resolveRepoSlug(projectKey), ownersNotified),
609
702
  "",
610
703
  ...wrap(CONNECT.pendingArmed(truncatePath(projectKey, 52)), 2),
611
704
  ]);
@@ -630,6 +723,7 @@ function pathClash(ctx) {
630
723
  return EXIT.ok;
631
724
  writeLines(ctx.stderr, renderErrorBlock({
632
725
  kind: "bad",
726
+ code: verdict.kind === "foreign" ? "PATH_COMMAND_FOREIGN" : "PATH_COMMAND_ABSENT",
633
727
  what: verdict.kind === "foreign" ? PATH_CLASH.foreignWhat : PATH_CLASH.absentWhat,
634
728
  why: [
635
729
  verdict.kind === "foreign"
@@ -1 +1 @@
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,QAAQ,EACR,MAAM,EACN,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,cAAc,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACvF,OAAO,EACL,oBAAoB,EACpB,OAAO,EACP,qBAAqB,EACrB,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,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACrF,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAuB,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,UAAU,EAA2D,MAAM,yBAAyB,CAAC;AAgC9G,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,GAAmB,EACnB,UAA0B,EAAE,EAC5B,OAAoB,EAAE;IAEtB,6FAA6F;IAC7F,oGAAoG;IACpG,qDAAqD;IACrD,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QAC1B,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;QAChD,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;IACD,+FAA+F;IAC/F,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;QAC/C,UAAU,CACR,GAAG,CAAC,MAAM,EACV,gBAAgB,CACd;YACE,IAAI,EAAE,KAAK;YACX,IAAI,EAAE,MAAM,CAAC,iBAAiB;YAC9B,GAAG,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC;YAC9B,QAAQ,EAAE,MAAM,CAAC,gBAAgB;YACjC,KAAK,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;SAC5E,EACD,GAAG,CAAC,MAAM,CACX,CACF,CAAC;QACF,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IACD,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,+FAA+F;QAC/F,+CAA+C;QAC/C,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QACnI,IAAI,IAAI,KAAK,IAAI,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC;IACpC,CAAC;IACD,OAAO,MAAM,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AACxD,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,EACjB,UAA0B,EAAE;IAE5B,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,gGAAgG;QAChG,iGAAiG;QACjG,gGAAgG;QAChG,+FAA+F;QAC/F,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACtE,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YAClC,UAAU,CACR,GAAG,CAAC,MAAM,EACV,uBAAuB,CAAC;gBACtB,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,WAAW,EAAE,qBAAqB,CAAC,IAAI,CAAC,UAAU,CAAC;gBACnD,KAAK,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE;gBAC1B,WAAW,EAAE,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,QAAQ,CAAC;gBAClD,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,QAAQ,EAAE,KAAK;aAChB,CAAC,CACH,CAAC;YACF,OAAO,IAAI,CAAC,YAAY,CAAC;QAC3B,CAAC;QACD,+FAA+F;QAC/F,iGAAiG;QACjG,0FAA0F;QAC1F,OAAO,MAAM,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC;IACrF,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,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC,CAAC;QACvF,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,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;iBAC9F,EACD,GAAG,CAAC,MAAM,CACX;aACF,CAAC,CAAC;YACH,sEAAsE;YACtE,OAAO,MAAM,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAChE,CAAC;QACD,+FAA+F;QAC/F,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU;YAAE,OAAO,IAAI,CAAC,OAAO,CAAC;QACpD,2EAA2E;IAC7E,CAAC;IACD,mGAAmG;IACnG,6EAA6E;IAC7E,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC3B,UAAU,CACR,GAAG,CAAC,MAAM,EACV,iBAAiB,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAC3E,CAAC;QACF,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,KAAK,UAAU,WAAW,CACxB,GAAmB,EACnB,IAAiB,EACjB,UAA4B;AAC5B,mGAAmG;AACnG,WAAoB;IAEpB,4EAA4E;IAC5E,0EAA0E;IAC1E,4EAA4E;IAC5E,oEAAoE;IACpE,6EAA6E;IAC7E,gBAAgB;IAChB,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC;IACjC,oGAAoG;IACpG,qGAAqG;IACrG,wGAAwG;IACxG,cAAc,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAChC,oGAAoG;IACpG,sGAAsG;IACtG,uGAAuG;IACvG,uGAAuG;IACvG,iFAAiF;IACjF,aAAa,CAAC,GAAG,CAAC,CAAC;IACnB,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,mGAAmG;QACnG,qGAAqG;QACrG,mGAAmG;QACnG,sCAAsC;QACtC,4FAA4F;QAC5F,qGAAqG;QACrG,mGAAmG;QACnG,oGAAoG;QACpG,4FAA4F;QAC5F,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE;YACrB,EAAE;YACF,GAAG,gBAAgB,CACjB;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,OAAO,CAAC,gBAAgB;gBAC9B,GAAG,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC;gBAC9B,QAAQ,EAAE,OAAO,CAAC,eAAe;gBACjC,KAAK,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;aACzB,EACD,GAAG,CAAC,MAAM,CACX;SACF,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAChC,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;YACb,4FAA4F;YAC5F,yFAAyF;YACzF,kBAAkB,EAAE,IAAI;SACzB,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,EAAE,CAAC;QACrB,mBAAmB,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAChC,CAAC;IAED,6EAA6E;IAC7E,4EAA4E;IAC5E,gDAAgD;IAChD,EAAE;IACF,oGAAoG;IACpG,sGAAsG;IACtG,iGAAiG;IACjG,MAAM,cAAc,GAAG,QAAQ,EAAE,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5F,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,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,EAAE;QACnH,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,OAAO,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;AAChC,CAAC;AAED;;;;GAIG;AACH,SAAS,IAAI,CAAC,GAAmB,EAAE,WAAoB;IACrD,IAAI,WAAW,EAAE,CAAC;QAChB,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE;YACrB,EAAE;YACF,iGAAiG;YACjG,KAAK,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,eAAe,CAAC,EAAE;YAC3D,KAAK,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,cAAc,CAAC,EAAE;SAC3D,CAAC,CAAC;IACL,CAAC;IACD,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;;;;;;;;;GASG;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,qGAAqG;IACrG,sFAAsF;AACxF,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"}
1
+ {"version":3,"file":"connect.js","sourceRoot":"","sources":["../../src/commands/connect.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * The `connect` picker flow — style guide §10.12 (0.7.0, PR 3): scan → picker → disclosure → grant y/N → sign in → hooks →
3
+ * (in a repo) the test capture → "Capture is on" or the held beat → backfill offer → URL.
4
+ *
5
+ * ⛔ LOADED LAZILY, AND THAT IS THE POINT OF THIS FILE BEING SEPARATE. `connect.ts` imports it with `await import(...)` at
6
+ * the two call sites that reach the picker. `src/index.ts` statically imports every verb, so everything `connect.ts`
7
+ * imports is loaded by EVERY process, a hook's included; the picker, its checklist and the scan engine are a person-at-a-
8
+ * terminal feature and must not ride along on the hook's load path. (Measured: no timing difference at all in 120
9
+ * interleaved starts, so this is for the principle and for the SIGTERM cell's sake, not for a number.)
10
+ * The helpers it shares with the 0.6.0 flow are exported from `connect.ts`; the import is circular only at call time.
11
+ */
12
+ import { type HereRepo } from "../picker.js";
13
+ import type { ProjectKeys } from "../project.js";
14
+ import { type ConnectDeps, type ConnectOptions } from "./connect.js";
15
+ import { type CommandContext } from "./context.js";
16
+ /**
17
+ * `connect` from any folder: scan → picker → disclosure → grant y/N → sign in → hooks → "Capture is on" → backfill offer
18
+ * → URL (§10.12). At most three questions in a run (D7 · 3A): the grant, the workspace (inside the mint, only where
19
+ * 0.6.0 already asks it) and the backfill (PR 5's seam).
20
+ *
21
+ * ⛔ **CONSENT STAYS AHEAD OF THE CREDENTIAL, and nothing before the grant opens a transcript.** The scan, the picker and
22
+ * the offer read directory entries and four Codex index columns only. The grant is written BEFORE the sign-in, as the
23
+ * per-clone consent always was.
24
+ */
25
+ export declare function connectPicker(ctx: CommandContext, options: ConnectOptions, deps: ConnectDeps, here: HereRepo | null,
26
+ /** The working folder's keys, when it is a work tree: the in-repo path probes its session (VQ item 7). */
27
+ keys?: ProjectKeys | null): Promise<number>;