@vibe-commit/capture 0.6.1 → 0.8.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 (172) hide show
  1. package/README.md +191 -9
  2. package/dist/account_not_here.d.ts +15 -0
  3. package/dist/account_not_here.js +25 -0
  4. package/dist/account_not_here.js.map +1 -0
  5. package/dist/agent_hooks.d.ts +8 -0
  6. package/dist/agent_hooks.js +31 -1
  7. package/dist/agent_hooks.js.map +1 -1
  8. package/dist/agents/claude_code.d.ts +34 -0
  9. package/dist/agents/claude_code.js +141 -8
  10. package/dist/agents/claude_code.js.map +1 -1
  11. package/dist/agents/codex_cli.d.ts +13 -0
  12. package/dist/agents/codex_cli.js +241 -2
  13. package/dist/agents/codex_cli.js.map +1 -1
  14. package/dist/agents/cursor.d.ts +34 -0
  15. package/dist/agents/cursor.js +115 -1
  16. package/dist/agents/cursor.js.map +1 -1
  17. package/dist/agents/session_listing.d.ts +29 -0
  18. package/dist/agents/session_listing.js +49 -0
  19. package/dist/agents/session_listing.js.map +1 -0
  20. package/dist/agents/types.d.ts +118 -8
  21. package/dist/agents/types.js +17 -3
  22. package/dist/agents/types.js.map +1 -1
  23. package/dist/commands/approval_pending.d.ts +9 -0
  24. package/dist/commands/approval_pending.js +23 -0
  25. package/dist/commands/approval_pending.js.map +1 -0
  26. package/dist/commands/auth.d.ts +7 -0
  27. package/dist/commands/auth.js +52 -11
  28. package/dist/commands/auth.js.map +1 -1
  29. package/dist/commands/backfill.d.ts +160 -0
  30. package/dist/commands/backfill.js +748 -0
  31. package/dist/commands/backfill.js.map +1 -0
  32. package/dist/commands/browser_credential.d.ts +6 -2
  33. package/dist/commands/browser_credential.js +34 -14
  34. package/dist/commands/browser_credential.js.map +1 -1
  35. package/dist/commands/connect.d.ts +146 -0
  36. package/dist/commands/connect.js +216 -117
  37. package/dist/commands/connect.js.map +1 -1
  38. package/dist/commands/connect_account.d.ts +135 -0
  39. package/dist/commands/connect_account.js +321 -0
  40. package/dist/commands/connect_account.js.map +1 -0
  41. package/dist/commands/connect_picker.d.ts +27 -0
  42. package/dist/commands/connect_picker.js +549 -0
  43. package/dist/commands/connect_picker.js.map +1 -0
  44. package/dist/commands/context.d.ts +16 -0
  45. package/dist/commands/context.js +27 -0
  46. package/dist/commands/context.js.map +1 -1
  47. package/dist/commands/credential_problem.d.ts +15 -4
  48. package/dist/commands/credential_problem.js +29 -22
  49. package/dist/commands/credential_problem.js.map +1 -1
  50. package/dist/commands/device_credential.d.ts +5 -1
  51. package/dist/commands/device_credential.js +17 -14
  52. package/dist/commands/device_credential.js.map +1 -1
  53. package/dist/commands/finalize.d.ts +95 -0
  54. package/dist/commands/finalize.js +249 -74
  55. package/dist/commands/finalize.js.map +1 -1
  56. package/dist/commands/finish_mint.d.ts +30 -6
  57. package/dist/commands/finish_mint.js +26 -6
  58. package/dist/commands/finish_mint.js.map +1 -1
  59. package/dist/commands/report.js +38 -30
  60. package/dist/commands/report.js.map +1 -1
  61. package/dist/commands/scan.d.ts +162 -0
  62. package/dist/commands/scan.js +507 -0
  63. package/dist/commands/scan.js.map +1 -0
  64. package/dist/commands/status.d.ts +19 -1
  65. package/dist/commands/status.js +232 -26
  66. package/dist/commands/status.js.map +1 -1
  67. package/dist/commands/status_hooks.d.ts +14 -0
  68. package/dist/commands/status_hooks.js +81 -0
  69. package/dist/commands/status_hooks.js.map +1 -0
  70. package/dist/commands/status_machine.d.ts +27 -0
  71. package/dist/commands/status_machine.js +210 -0
  72. package/dist/commands/status_machine.js.map +1 -0
  73. package/dist/commands/sync_reason.d.ts +17 -0
  74. package/dist/commands/sync_reason.js +25 -0
  75. package/dist/commands/sync_reason.js.map +1 -0
  76. package/dist/commands/why.js +44 -31
  77. package/dist/commands/why.js.map +1 -1
  78. package/dist/consent.d.ts +217 -0
  79. package/dist/consent.js +400 -1
  80. package/dist/consent.js.map +1 -1
  81. package/dist/copy/error_codes.d.ts +222 -0
  82. package/dist/copy/error_codes.js +105 -0
  83. package/dist/copy/error_codes.js.map +1 -0
  84. package/dist/copy/index.d.ts +2 -2
  85. package/dist/copy/index.js +2 -2
  86. package/dist/copy/index.js.map +1 -1
  87. package/dist/copy/strings.d.ts +617 -30
  88. package/dist/copy/strings.js +741 -36
  89. package/dist/copy/strings.js.map +1 -1
  90. package/dist/copy/time.d.ts +11 -0
  91. package/dist/copy/time.js +18 -0
  92. package/dist/copy/time.js.map +1 -1
  93. package/dist/credential.d.ts +5 -1
  94. package/dist/credential.js +2 -2
  95. package/dist/credential.js.map +1 -1
  96. package/dist/git.d.ts +43 -0
  97. package/dist/git.js +95 -0
  98. package/dist/git.js.map +1 -1
  99. package/dist/grants_sync.d.ts +165 -0
  100. package/dist/grants_sync.js +289 -0
  101. package/dist/grants_sync.js.map +1 -0
  102. package/dist/grants_verb.d.ts +70 -0
  103. package/dist/grants_verb.js +121 -0
  104. package/dist/grants_verb.js.map +1 -0
  105. package/dist/hooks/entry.d.ts +18 -1
  106. package/dist/hooks/entry.js +117 -14
  107. package/dist/hooks/entry.js.map +1 -1
  108. package/dist/hooks/post_commit.js +3 -3
  109. package/dist/hooks/post_commit.js.map +1 -1
  110. package/dist/hooks/post_rewrite.js +6 -4
  111. package/dist/hooks/post_rewrite.js.map +1 -1
  112. package/dist/hooks/session_grants.d.ts +59 -0
  113. package/dist/hooks/session_grants.js +91 -0
  114. package/dist/hooks/session_grants.js.map +1 -0
  115. package/dist/hooks/session_start.d.ts +114 -0
  116. package/dist/hooks/session_start.js +243 -0
  117. package/dist/hooks/session_start.js.map +1 -0
  118. package/dist/index.d.ts +1 -1
  119. package/dist/index.js +76 -11
  120. package/dist/index.js.map +1 -1
  121. package/dist/install.d.ts +57 -0
  122. package/dist/install.js +54 -20
  123. package/dist/install.js.map +1 -1
  124. package/dist/json.d.ts +32 -9
  125. package/dist/json.js +35 -8
  126. package/dist/json.js.map +1 -1
  127. package/dist/machine_state.d.ts +52 -0
  128. package/dist/machine_state.js +63 -0
  129. package/dist/machine_state.js.map +1 -0
  130. package/dist/oauth/retire.d.ts +10 -0
  131. package/dist/oauth/retire.js +13 -0
  132. package/dist/oauth/retire.js.map +1 -1
  133. package/dist/oauth/session.d.ts +1 -0
  134. package/dist/org_pending.d.ts +52 -0
  135. package/dist/org_pending.js +109 -0
  136. package/dist/org_pending.js.map +1 -0
  137. package/dist/paths.d.ts +70 -0
  138. package/dist/paths.js +90 -0
  139. package/dist/paths.js.map +1 -1
  140. package/dist/pending_revoke.d.ts +117 -0
  141. package/dist/pending_revoke.js +233 -0
  142. package/dist/pending_revoke.js.map +1 -0
  143. package/dist/pending_revoke_file.d.ts +55 -0
  144. package/dist/pending_revoke_file.js +74 -0
  145. package/dist/pending_revoke_file.js.map +1 -0
  146. package/dist/picker.d.ts +208 -0
  147. package/dist/picker.js +526 -0
  148. package/dist/picker.js.map +1 -0
  149. package/dist/picker_checklist.d.ts +141 -0
  150. package/dist/picker_checklist.js +411 -0
  151. package/dist/picker_checklist.js.map +1 -0
  152. package/dist/policy.d.ts +70 -1
  153. package/dist/policy.js +68 -2
  154. package/dist/policy.js.map +1 -1
  155. package/dist/post.d.ts +91 -18
  156. package/dist/post.js +259 -27
  157. package/dist/post.js.map +1 -1
  158. package/dist/state.d.ts +6 -0
  159. package/dist/state.js +38 -1
  160. package/dist/state.js.map +1 -1
  161. package/dist/system_message.d.ts +32 -2
  162. package/dist/system_message.js +47 -5
  163. package/dist/system_message.js.map +1 -1
  164. package/dist/term.d.ts +28 -2
  165. package/dist/term.js +23 -2
  166. package/dist/term.js.map +1 -1
  167. package/dist/verb_help.d.ts +13 -0
  168. package/dist/verb_help.js +40 -0
  169. package/dist/verb_help.js.map +1 -0
  170. package/dist/version.d.ts +1 -1
  171. package/dist/version.js +1 -1
  172. 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,134 @@ 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));
113
+ // Slice 2: a verb that runs on a machine with a credential is where queued changes get delivered. This repo is already on, so
114
+ // there is no picker and nothing new to say; the sync is bounded (3 s) and silent on failure, and a machine with no
115
+ // credential makes no request.
116
+ if (deps.account !== undefined)
117
+ await (await import("../grants_verb.js")).syncForVerb(ctx, false, deps.account);
98
118
  return await afterConsent(ctx, keys, options, deps);
99
119
  }
100
- // (3) The disclosure, then the gate.
101
- writeLines(ctx.stdout, disclosure(ctx));
120
+ if (!isLocalSlug(slugOf())) {
121
+ return await (await import("./connect_picker.js")).connectPicker(ctx, options, deps, { slug: slugOf(), toplevel: keys.worktree, kind: "repo" }, keys);
122
+ }
123
+ // (3) The disclosure, then the gate. A repo with no remote: the 0.6.0 screen, under its own heading (D35).
124
+ writeLines(ctx.stdout, disclosure(ctx, false));
102
125
  // (4) Non-TTY REFUSES. A consent prompt that proceeds when nobody can answer
103
126
  // it is not a consent prompt (D65 §DR7). Exit 2 — DESIGN.md §13.7 names this
104
127
  // case explicitly, so it is a usage error and not a failure.
105
128
  if (!ctx.stdinIsTty) {
106
129
  writeLines(ctx.stderr, renderErrorBlock({
107
130
  kind: "bad",
131
+ code: "CONSENT_NEEDS_TTY",
108
132
  what: CONNECT.nonInteractiveWhat,
109
133
  why: [CONNECT.nonInteractiveWhy],
110
- fixLabel: CONNECT.nonInteractiveFix,
111
- fixes: [COMMANDS.connect],
134
+ // PR 6 item 6: names the folder the user is to run it in, cut from the LEFT to fit the line (§13.4).
135
+ fixLabel: CONNECT.nonInteractiveFix(truncatePath(tildePath(keys.worktree, ctx.home), 46)),
136
+ fixes: [connectCommandFor(ctx.env, ctx.selfPath)],
112
137
  }, ctx.colour));
113
138
  return EXIT.usage;
114
139
  }
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)} `);
140
+ // (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
141
+ // `readline/promises` question does not raise SIGINT, the promise REJECTS (TODOS[191]), and left to escape it printed
142
+ // the "unexpected error" block for what is ordinary CLI behaviour.
143
+ const answer = await askOrCancel(ctx, ` ${CONNECT.consentPrompt} ${paint(ctx.colour, "muted", CONNECT.consentAnswers)} `);
144
+ if (answer === null)
145
+ return cancelled(ctx);
117
146
  if (!isAffirmative(answer)) {
118
147
  writeLines(ctx.stdout, ["", ...wrap(CONNECT.declined, 2)]);
119
148
  // Declining is a successful consent flow, not a failure. Exit 0 (§13.7).
120
149
  return EXIT.ok;
121
150
  }
151
+ // A yes is the ONLY thing that lifts an exclusion: `off` recorded the slug, and the disclosure above was shown again.
152
+ // ⛔ `grants.json` FIRST, THE COMMON-DIR CONSENT SECOND (VR #28, on merged #73). `clearExclusion` refuses to touch a file it
153
+ // cannot read BEFORE it writes anything, so a race with an edit of `grants.json` since the check above stops here with
154
+ // nothing written — which keeps "Nothing was changed." true. The other order had already written `projects.json`.
155
+ // A repo with no remote has no slug to exclude and is exempt from an unreadable file (`isCaptureAllowed`), so it skips this.
156
+ if (!isLocalSlug(slugOf()) && clearExclusion(ctx.home, slugOf()) === "unreadable") {
157
+ writeLines(ctx.stderr, grantsUnreadableBlock(ctx));
158
+ return EXIT.failure;
159
+ }
122
160
  grantProject(ctx.home, keys.consent, ctx.now());
123
161
  return await afterConsent(ctx, keys, options, deps);
124
162
  }
163
+ /** Is the working folder the home directory? Realpaths, so a symlinked home still matches; any failure is "no". */
164
+ function atHome(ctx) {
165
+ if (ctx.home === "")
166
+ return false;
167
+ try {
168
+ return realpathSync(ctx.cwd) === realpathSync(ctx.home);
169
+ }
170
+ catch {
171
+ return false;
172
+ }
173
+ }
174
+ /**
175
+ * Ask a question; `null` when the prompt was aborted. Ctrl+C at a `readline/promises` question closes the interface and
176
+ * REJECTS with an `AbortError` instead of raising SIGINT (TODOS[191]), so every ask site that wants Ctrl+C to be a No
177
+ * goes through here. A rejection means nobody said yes.
178
+ */
179
+ export async function askOrCancel(ctx, question) {
180
+ try {
181
+ return await ctx.ask(question);
182
+ }
183
+ catch {
184
+ return null;
185
+ }
186
+ }
187
+ /** §10.11: Ctrl+C at the picker or the grant y/N is a No. Exit 1, and nothing was changed. */
188
+ export function cancelled(ctx) {
189
+ // The terminal left the cursor at the end of the prompt line, so one empty line ends it and a second leaves the blank
190
+ // line the drawn screen has.
191
+ writeLines(ctx.stdout, ["", "", ...wrap(PICKER.cancelled, 2)]);
192
+ return EXIT.failure;
193
+ }
194
+ export function grantsUnreadableBlock(ctx) {
195
+ return renderErrorBlock({
196
+ kind: "bad",
197
+ code: "GRANTS_UNREADABLE",
198
+ what: CONNECT.grantsUnreadableWhat,
199
+ why: [CONNECT.grantsUnreadableWhy],
200
+ fixLabel: CONNECT.grantsUnreadableFixLabel,
201
+ fixes: [connectCommandFor(ctx.env, ctx.selfPath)],
202
+ }, ctx.colour);
203
+ }
125
204
  /**
126
205
  * Consent is settled. Sign in if asked, then do the credential beat.
127
206
  *
@@ -158,13 +237,16 @@ async function afterConsent(ctx, keys, options, deps) {
158
237
  * because the approved copy itself says "private-repo paths", so a substring
159
238
  * gate would fire on approved copy on day one. That one is a HUMAN review item.
160
239
  */
161
- function disclosure(ctx) {
240
+ export function disclosure(ctx, picker) {
162
241
  // §10.2 aligns the two link URLs in one column. The width is DERIVED from the
163
242
  // labels rather than hardcoded, so editing a label cannot silently break the
164
243
  // alignment — and the four trailing spaces are the gutter the guide draws.
165
244
  const gutter = Math.max(CONNECT.consentDocsLabel.length, CONNECT.consentBundleLabel.length) + 4;
166
245
  return [
167
- ...wrap(CONNECT.consentHeading, 2),
246
+ // D23 · D35: the picker path and the no-remote path each have their own heading (a new constant, passing the same
247
+ // content gates). The four paragraphs under either are byte-identical, and the picker path adds ONE sentence.
248
+ ...wrap(picker ? CONNECT.consentHeadingPicker : CONNECT.consentHeading, 2),
249
+ ...(picker ? wrap(CONNECT.consentScope, 2) : []),
168
250
  "",
169
251
  ...wrap(CONNECT.consentDetail, 2),
170
252
  "",
@@ -200,6 +282,16 @@ function disclosure(ctx) {
200
282
  * exactly the population that installs commit tooling.
201
283
  */
202
284
  async function credentialBeat(ctx, keys, deps, options = {}) {
285
+ const got = await obtainCredential(ctx, deps, options);
286
+ if (got.kind === "exit")
287
+ return got.code;
288
+ return await captureBeat(ctx, keys, got.credential, got.unconfirmed);
289
+ }
290
+ /**
291
+ * Get a credential this machine can send with — the beat both endings share (the 0.6.0 one and the picker's).
292
+ * `scope: "repos"` is the picker path: the workspace question names the repos chosen, not the machine (D7 · 3A).
293
+ */
294
+ export async function obtainCredential(ctx, deps, options = {}, scope) {
203
295
  const load = loadCredential({ env: ctx.env, home: ctx.home });
204
296
  if (load.kind === "ok") {
205
297
  // ⛔ ASK THE SERVER BEFORE SENDING — `R12` (D13 = A), G1. `connect` used to send whatever loaded
@@ -216,12 +308,12 @@ async function credentialBeat(ctx, keys, deps, options = {}) {
216
308
  colour: ctx.colour,
217
309
  standing: false,
218
310
  }));
219
- return EXIT.notConnected;
311
+ return { kind: "exit", code: EXIT.notConnected };
220
312
  }
221
313
  // Only a 401 proves the credential dead. A 5xx, a 404 from a server that predates the route, a
222
314
  // timeout or a network error says nothing about it — and "a blip is not a failed install" is the
223
315
  // 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");
316
+ return { kind: "credential", credential: load.credential, unconfirmed: probe.kind === "unavailable" };
225
317
  }
226
318
  // ⛔ ONLY FOR `absent`, AND ONLY WITH A HUMAN AT THE TERMINAL (`CR-226`).
227
319
  // - `absent`: a credential that is present but wrong-class, unreadable or
@@ -231,38 +323,103 @@ async function credentialBeat(ctx, keys, deps, options = {}) {
231
323
  // opened there waits five minutes for nobody. The old warning is the
232
324
  // right answer for them, and it is what they still get.
233
325
  if (load.kind === "absent" && ctx.stdinIsTty && deps.browser !== undefined) {
234
- const minted = await deps.browser(ctx, "connect", { device: options.device === true });
326
+ const minted = await deps.browser(ctx, "connect", {
327
+ device: options.device === true,
328
+ ...(scope === undefined ? {} : { scope }),
329
+ });
235
330
  if (minted.kind === "saved") {
236
- writeLines(ctx.stdout, [
237
- "",
238
- ...renderErrorBlock({
239
- kind: "ok",
240
- what: AUTH.savedWhat,
241
- why: [AUTH.savedWhy(tildePath(credentialsPath(ctx.home), ctx.home)), ...(minted.notes ?? [])],
242
- }, ctx.colour),
243
- ]);
331
+ savedBlock(ctx, minted.notes ?? []);
244
332
  // Already probed by the mint (`finishMint`), so no second probe here.
245
- return await captureBeat(ctx, keys, minted.credential, false);
333
+ return { kind: "credential", credential: minted.credential, unconfirmed: false };
246
334
  }
247
335
  // Declined at the replace confirmation: the reason is already on screen, and the user said NO.
248
336
  if (minted.kind === "declined")
249
- return EXIT.failure;
337
+ return { kind: "exit", code: EXIT.failure };
250
338
  // Failed: the reason is already on stderr. Fall through to the paste path.
251
339
  }
252
340
  // ⛔ R15: a FAULTY file is named as the fault it is, not as "no credential". The fix for a fault is
253
341
  // `auth` (or a `chmod`), and `connect` still never mints over one (D206 §5).
254
342
  if (load.kind !== "absent") {
255
343
  writeLines(ctx.stderr, credentialProblem(load, ctx.colour, authCommandFor(ctx.env, ctx.selfPath)));
256
- return EXIT.notConnected;
344
+ return { kind: "exit", code: EXIT.notConnected };
257
345
  }
258
346
  writeLines(ctx.stderr, renderErrorBlock({
259
347
  kind: "warn",
260
348
  what: CONNECT.credentialNeededWhat,
261
349
  why: [CONNECT.credentialNeededWhy],
262
350
  fixLabel: CONNECT.credentialNeededFix,
263
- fixes: [CONNECT.credentialNeededCommand, COMMANDS.connect],
351
+ fixes: [CONNECT.credentialNeededCommand, COMMANDS.connect].map((fix) => channelCommand(ctx.env, ctx.selfPath, fix)),
264
352
  }, ctx.colour));
265
- return EXIT.notConnected;
353
+ return { kind: "exit", code: EXIT.notConnected };
354
+ }
355
+ /** "Saved to <credentials.json>" — what the credential beat says once a credential is on disk (and `g`, once its yes has put it there). */
356
+ export function savedBlock(ctx, notes) {
357
+ writeLines(ctx.stdout, [
358
+ "",
359
+ ...renderErrorBlock({ kind: "ok", what: AUTH.savedWhat, why: [AUTH.savedWhy(tildePath(credentialsPath(ctx.home), ctx.home)), ...notes] }, ctx.colour),
360
+ ]);
361
+ }
362
+ /**
363
+ * The test capture: send the current session's transcript through `deliver()` so the ending can name evidence (D57 §DX5's
364
+ * 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
365
+ * two cannot drift: one budget (`hookBudgetMs`, PR 4a), one redaction root set, one place that reads a 2xx body.
366
+ *
367
+ * `found` is the located transcript, or `null` when there is none (no locator, or the agent has not run here). Returns the
368
+ * delivery, or `null` when nothing was sent.
369
+ */
370
+ export async function sendTestCapture(ctx, keys, credential, found) {
371
+ const projectKey = keys.worktree;
372
+ const url = ingestUrl(ctx.env);
373
+ let delivery = null;
374
+ if (found !== null && url !== null) {
375
+ // Through `deliver()`, so the offset ledger, the failure policy and
376
+ // `CR-024d`'s redaction all apply exactly as they do for a hook. A second
377
+ // upload path here would bypass all three.
378
+ delivery = await deliver({
379
+ home: ctx.home,
380
+ env: ctx.env,
381
+ url,
382
+ credential,
383
+ repoKey: projectKey,
384
+ repoSlug: resolveRepoSlug(projectKey),
385
+ sessionId: found.sessionId,
386
+ fileKey: "main",
387
+ // ⛔ The LOCATED path (`CR-204`), so this test capture names its producer
388
+ // on the wire exactly as a hook's would — and names it the same way,
389
+ // from the root that contains the file rather than from `ctx.agentId`.
390
+ // ⚠ The LOCATOR above is still the flag's: `connect` is looking FOR a
391
+ // transcript, so there is no path yet to ask a root about.
392
+ transcriptPath: found.path,
393
+ timeoutMs: DEFAULT_HOOK_BUDGET_MS,
394
+ // PR 4a — ONE HOOK BUDGET (Alexander's ruling, design doc Next Steps 4a). A large session is sent in deltas, and this
395
+ // test capture sends what fits in a single hook's budget, then prints its ending: `connect` must not sit through a
396
+ // multi-minute upload that the session's own hooks, `finalize` and the backfill offer will do anyway. What is left
397
+ // is NOT written off: the offset stays where the last acknowledged delta put it. The ending below is unchanged for a
398
+ // partial delivery, and so is the conversation-id link (the id comes from the first delta that carries it).
399
+ deadlineAtMs: Date.now() + hookBudgetMs(ctx.env, ctx.agentId ?? ""),
400
+ nowMs: ctx.now().getTime(),
401
+ // ⛔ NOT A HOOK. `connect` backfills the located transcript, which is not evidence that the session is alive: it
402
+ // would otherwise rewrite an old session's state file and (under the mtime clock) make it "live" — the D2 shape.
403
+ byHook: false,
404
+ // ⛔ THE ONLY CALLER THAT READS A 2xx BODY (`eng-2 D2 = A`): for the session link. Hooks and
405
+ // `finalize` leave this unset, so the hook's hot path never reads, awaits or parses one.
406
+ readConversationId: true,
407
+ }, found.size,
408
+ // ⛔ THE ROOT SET, and it is `confinementRoots` — THE SAME FUNCTION THE
409
+ // HOOK PATH CALLS (`entry.ts`), not a set built here. `D184 §3`: the
410
+ // confinement root is `[worktree, mainToplevel]` and the consent key is
411
+ // NEVER a member, so this does not follow the flip above.
412
+ //
413
+ // ⚠ WHY IT CANNOT STAY THE SINGLETON IT WAS: `connect` runs in whatever
414
+ // cwd a human typed it in, which is reachable from inside a worktree. With
415
+ // one root, this preview would redact main-clone content that the hook
416
+ // path transmits — the two would disagree SILENTLY, and the preview is the
417
+ // artefact the user reads to decide whether redaction works. `isInside`
418
+ // fail-closes an unresolvable path to REDACT, so the disagreement shows up
419
+ // as a plausible, well-formed, emptier payload rather than an error.
420
+ (from, to) => readSpan(found.path, from, to, confinementRoots(keys), ctx.home, ctx.env), recordCutter(found.path));
421
+ }
422
+ return { delivery };
266
423
  }
267
424
  /**
268
425
  * The ending — D57 §DX5's Sentry-wizard test-event pattern.
@@ -343,55 +500,12 @@ unconfirmed) {
343
500
  what: CONNECT.noTranscriptWhat,
344
501
  why: [CONNECT.noTranscriptWhy],
345
502
  fixLabel: CONNECT.noTranscriptFix,
346
- fixes: [COMMANDS.status],
503
+ fixes: [channelCommand(ctx.env, ctx.selfPath, COMMANDS.status)],
347
504
  }, ctx.colour),
348
505
  ]);
349
506
  return tail(ctx, unconfirmed);
350
507
  }
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
- }
508
+ const { delivery } = await sendTestCapture(ctx, keys, credential, found);
395
509
  // THE FIFTH BEAT — `CR-110`, D65 §DR6, D81.
396
510
  //
397
511
  // ⚠ ONE outcome is branched on, identified by its ERROR CODE. The general rule
@@ -417,7 +531,7 @@ unconfirmed) {
417
531
  ` ${paint(ctx.colour, "accent", conversationId === undefined ? URLS.commits : URLS.conversation(conversationId))}`,
418
532
  "",
419
533
  ...wrap(CONNECT.doneForRepo(truncatePath(projectKey, 52)), 2),
420
- ...wrap(`${CONNECT.stopLabel}: ${COMMANDS.off}`, 2),
534
+ ...wrap(`${CONNECT.stopLabel}: ${channelCommand(ctx.env, ctx.selfPath, COMMANDS.off)}`, 2),
421
535
  ]);
422
536
  return tail(ctx, unconfirmed);
423
537
  }
@@ -426,13 +540,13 @@ unconfirmed) {
426
540
  * the PATH-clash check. The one place `pathClash` is called — a branch that called it too would print
427
541
  * the clash block twice.
428
542
  */
429
- function tail(ctx, unconfirmed) {
543
+ export function tail(ctx, unconfirmed) {
430
544
  if (unconfirmed) {
431
545
  writeLines(ctx.stdout, [
432
546
  "",
433
547
  // Two short lines, never one wrapped: the backticked command must not be split (see `REJECTED`).
434
548
  ` ${paint(ctx.colour, "muted", REJECTED.unconfirmedWhat)}`,
435
- ` ${paint(ctx.colour, "muted", REJECTED.unconfirmedFix)}`,
549
+ ` ${paint(ctx.colour, "muted", REJECTED.unconfirmedFix(channelCommand(ctx.env, ctx.selfPath, COMMANDS.status)))}`,
436
550
  ]);
437
551
  }
438
552
  return pathClash(ctx);
@@ -449,7 +563,7 @@ function tail(ctx, unconfirmed) {
449
563
  * into a file shared by every project — the one new responsibility `CR-195`
450
564
  * names — so "we configured your editor" is the shape this must not take.
451
565
  */
452
- function agentHookBeat(ctx) {
566
+ export function agentHookBeat(ctx) {
453
567
  const outcomes = installAgentHooks(ctx.home, ctx.env, ctx.selfPath);
454
568
  for (const outcome of outcomes) {
455
569
  // Absent agents say nothing at all. A line per tool the user does not have
@@ -482,7 +596,7 @@ function agentHookBeat(ctx) {
482
596
  ...(refused
483
597
  ? {
484
598
  fixLabel: AGENT_HOOKS.refusedFixLabel,
485
- fixes: [AGENT_HOOKS.refusedFix(path)],
599
+ fixes: [AGENT_HOOKS.refusedFix(path, connectCommandFor(ctx.env, ctx.selfPath))],
486
600
  }
487
601
  : {}),
488
602
  }, ctx.colour),
@@ -534,7 +648,7 @@ function commitHookBeat(ctx, projectKey) {
534
648
  : COMMIT_HOOK.failedWhy(outcome.why),
535
649
  ],
536
650
  fixLabel: COMMIT_HOOK.hooksPathFixLabel,
537
- fixes: [COMMIT_HOOK.hooksPathFixUnset, COMMIT_HOOK.hooksPathFixManual],
651
+ fixes: [COMMIT_HOOK.hooksPathFixUnset, COMMIT_HOOK.hooksPathFixManual(channelCommand(ctx.env, ctx.selfPath, COMMANDS.postCommit))],
538
652
  }, ctx.colour),
539
653
  ]);
540
654
  return;
@@ -544,7 +658,7 @@ function commitHookBeat(ctx, projectKey) {
544
658
  : outcome.kind === "chained"
545
659
  ? COMMIT_HOOK.chained(repo)
546
660
  : COMMIT_HOOK.already;
547
- writeLines(ctx.stdout, ["", ...wrap(line, 2), ...wrap(COMMIT_HOOK.perClone, 2)]);
661
+ writeLines(ctx.stdout, ["", ...wrap(line, 2), ...wrap(COMMIT_HOOK.perClone(connectCommandFor(ctx.env, ctx.selfPath)), 2)]);
548
662
  }
549
663
  /**
550
664
  * Is this delivery the org-approval-pending outcome, and nothing else?
@@ -561,7 +675,7 @@ function commitHookBeat(ctx, projectKey) {
561
675
  * is normalised to `null`, because both mean *not determinable* to the copy and
562
676
  * neither may assert delivery.
563
677
  */
564
- function approvalPending(delivery) {
678
+ export function approvalPending(delivery) {
565
679
  if (delivery === null || delivery.kind !== "attempted")
566
680
  return null;
567
681
  if (delivery.detail?.code !== CAPTURE_NOT_APPROVED)
@@ -578,19 +692,9 @@ function approvalPending(delivery) {
578
692
  * offset holds and the backlog uploads in order once an owner approves. A red
579
693
  * exit here tells a correctly-installed user they broke something.
580
694
  */
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;
695
+ export function approvalPendingBeat(ctx, projectKey, ownersNotified) {
696
+ // The block itself is `approval_pending.ts`'s, shared with `status`: the shared clause first, the notification second
697
+ // (it ADDS, it does not replace, D81), and `null` never reaches the notification clause.
594
698
  // ⚠ STDOUT, not stderr, and the rule is consistent in this file: stderr
595
699
  // accompanies a NON-ZERO exit here (`credentialBeat` → 3, `noTranscript` → 1,
596
700
  // `pathClash` → 1, the sign-in failures → 1). This beat exits 0, so it is the
@@ -599,13 +703,7 @@ function approvalPendingBeat(ctx, projectKey, ownersNotified) {
599
703
  // armed" with the reason stripped off it.
600
704
  writeLines(ctx.stdout, [
601
705
  "",
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),
706
+ ...approvalPendingBlock(ctx.colour, resolveRepoSlug(projectKey), ownersNotified),
609
707
  "",
610
708
  ...wrap(CONNECT.pendingArmed(truncatePath(projectKey, 52)), 2),
611
709
  ]);
@@ -630,6 +728,7 @@ function pathClash(ctx) {
630
728
  return EXIT.ok;
631
729
  writeLines(ctx.stderr, renderErrorBlock({
632
730
  kind: "bad",
731
+ code: verdict.kind === "foreign" ? "PATH_COMMAND_FOREIGN" : "PATH_COMMAND_ABSENT",
633
732
  what: verdict.kind === "foreign" ? PATH_CLASH.foreignWhat : PATH_CLASH.absentWhat,
634
733
  why: [
635
734
  verdict.kind === "foreign"
@@ -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":"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"}