@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
@@ -1,3 +1,10 @@
1
+ /** The one question (default No). On the picker path it names the repos chosen, not the machine (0.7.0, D7 · 3A). */
2
+ function workspaceQuestion(scope, orgName) {
3
+ if (scope === "repos") {
4
+ return orgName === null ? REPLACE.questionReposUnconfirmed : REPLACE.questionRepos(truncateMiddle(orgName, 28));
5
+ }
6
+ return orgName === null ? REPLACE.questionUnconfirmed : REPLACE.question(truncateMiddle(orgName, 30));
7
+ }
1
8
  /**
2
9
  * Everything between "the server minted a credential" and "this machine has it" — `finishMint` — and the
3
10
  * result type both browser beats return. Shared by the loopback flow (`browser_credential.ts`) and the
@@ -9,7 +16,7 @@ import { authCommandFor } from "../install.js";
9
16
  import { CONNECT, REPLACE, RETIRE, AUTH } from "../copy/index.js";
10
17
  import { loadedFingerprints, recordCredentialMeta } from "../credential_meta.js";
11
18
  import { saveCredential } from "../credential.js";
12
- import { retireCredential, selfRevokeCredential } from "../oauth/retire.js";
19
+ import { REVOKE_TIMEOUT_MS, retireCredential, selfRevokeCredential, selfRevokeOutcome } from "../oauth/retire.js";
13
20
  import { credentialFingerprint } from "../post.js";
14
21
  import { paint, labelled, renderErrorBlock, truncateMiddle, wrap, WRAP_COLUMNS, LABEL_GUTTER } from "../term.js";
15
22
  import { writeLines } from "./context.js";
@@ -31,9 +38,16 @@ import { probeCredential } from "./probe.js";
31
38
  */
32
39
  export async function finishMint(ctx, input) {
33
40
  const { minted, facts, prior } = input;
41
+ // ⛔ WRITE-AHEAD (`g`): the row exists before the probe, the question, or anything that can be interrupted. If it cannot be
42
+ // written, nothing may keep this credential alive that the client does not remember: revoke it now, in memory.
43
+ if (input.hold !== undefined && !input.hold.record(minted, input.endpoint)) {
44
+ const revoked = await selfRevokeOutcome(input.endpoint, minted, { fetch: input.fetch, timeoutMs: REVOKE_TIMEOUT_MS });
45
+ // A 404 (`unknown`) is a server with no revoke route: the credential may still be live, so it is NOT "revoked" ("0.8.0 truth fixes" F7).
46
+ return { kind: "unrecorded", revoked: revoked.kind === "retired" || revoked.kind === "gone" };
47
+ }
34
48
  const fresh = await probeCredential(ctx, minted, input.fetch, { record: false });
35
49
  if (fresh.kind === "unauthorized") {
36
- writeLines(ctx.stderr, ["", ...renderErrorBlock({ kind: "bad", what: AUTH.mintFailedWhat, why: [AUTH.mintUnconfirmedWhy] }, ctx.colour)]);
50
+ writeLines(ctx.stderr, ["", ...renderErrorBlock({ kind: "bad", code: "MINT_FAILED", what: AUTH.mintFailedWhat, why: [AUTH.mintUnconfirmedWhy] }, ctx.colour)]);
37
51
  return { kind: "failed" };
38
52
  }
39
53
  const priorOk = prior !== null && prior.who.kind === "ok";
@@ -55,10 +69,13 @@ export async function finishMint(ctx, input) {
55
69
  : { account: facts.account, orgName: null };
56
70
  if (input.confirm === "always" && unconfirmed && shown?.orgName == null) {
57
71
  const revoked = await selfRevokeCredential(input.endpoint, minted, { fetch: input.fetch });
72
+ if (revoked.kind === "retired")
73
+ input.hold?.release(minted);
58
74
  writeLines(ctx.stderr, [
59
75
  "",
60
76
  ...renderErrorBlock({
61
77
  kind: "bad",
78
+ code: "WORKSPACE_UNCONFIRMED",
62
79
  what: REPLACE.unconfirmableWhat,
63
80
  why: [revoked.kind === "retired" ? REPLACE.unconfirmableWhyRevoked : REPLACE.unconfirmableWhyOrphan],
64
81
  fixLabel: REPLACE.unconfirmableFix,
@@ -86,7 +103,7 @@ export async function finishMint(ctx, input) {
86
103
  // just created LIVE and unused in the person's Settings. Any rejection means nobody said yes.
87
104
  let answer;
88
105
  try {
89
- answer = await ctx.ask(` ${orgName === null ? REPLACE.questionUnconfirmed : REPLACE.question(truncateMiddle(orgName, 30))} ${paint(ctx.colour, "muted", CONNECT.consentAnswers)} `);
106
+ answer = await ctx.ask(` ${workspaceQuestion(input.scope, orgName)} ${paint(ctx.colour, "muted", CONNECT.consentAnswers)} `);
90
107
  }
91
108
  catch {
92
109
  answer = null;
@@ -97,6 +114,8 @@ export async function finishMint(ctx, input) {
97
114
  // credential this machine holds in that workspace is the one to remove. Anything but a clean
98
115
  // "retired" leaves it live, and the sentence says where to remove it.
99
116
  const revoked = await selfRevokeCredential(input.endpoint, minted, { fetch: input.fetch });
117
+ if (revoked.kind === "retired")
118
+ input.hold?.release(minted);
100
119
  writeLines(ctx.stdout, [
101
120
  "",
102
121
  ...wrap(answer === null ? REPLACE.cancelled : REPLACE.declined, 2),
@@ -105,8 +124,9 @@ export async function finishMint(ctx, input) {
105
124
  return { kind: "declined" };
106
125
  }
107
126
  }
108
- // y — or no question was called for.
109
- saveCredential(ctx.home, minted);
127
+ // y — or no question was called for. A held credential (`g`) is NOT written here: the caller writes it after ITS yes.
128
+ if (input.hold === undefined)
129
+ saveCredential(ctx.home, minted);
110
130
  recordCredentialMeta(ctx.home, credentialFingerprint(minted), {
111
131
  expires_at: fresh.kind === "ok" ? fresh.expiresAt ?? facts.expiresAt : facts.expiresAt,
112
132
  credential_id: fresh.kind === "ok" ? fresh.credentialId : facts.credentialId,
@@ -135,6 +155,6 @@ export async function finishMint(ctx, input) {
135
155
  : RETIRE.failed);
136
156
  }
137
157
  }
138
- return { kind: "saved", credential: minted, notes };
158
+ return input.hold === undefined ? { kind: "saved", credential: minted, notes } : { kind: "held", credential: minted, notes };
139
159
  }
140
160
  //# sourceMappingURL=finish_mint.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"finish_mint.js","sourceRoot":"","sources":["../../src/commands/finish_mint.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"finish_mint.js","sourceRoot":"","sources":["../../src/commands/finish_mint.ts"],"names":[],"mappings":"AAAA,qHAAqH;AACrH,SAAS,iBAAiB,CAAC,KAA0B,EAAE,OAAsB;IAC3E,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;QACtB,OAAO,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IAClH,CAAC;IACD,OAAO,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AACxG,CAAC;AAED;;;;;GAKG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AACjF,OAAO,EAAE,cAAc,EAAyB,MAAM,kBAAkB,CAAC;AAEzE,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAElH,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,cAAc,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACjH,OAAO,EAAE,UAAU,EAAuB,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAkE7C;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,GAAmB,EAAE,KAAsB;IAC1E,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;IAEvC,2HAA2H;IAC3H,+GAA+G;IAC/G,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3E,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC,CAAC;QACtH,yIAAyI;QACzI,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;IAChG,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IACjF,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;QAClC,UAAU,CACR,GAAG,CAAC,MAAM,EACV,CAAC,EAAE,EAAE,GAAG,gBAAgB,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CACvI,CAAC;QACF,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC5B,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC;IAC1D,MAAM,QAAQ,GAAG,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC;IAEnF,oGAAoG;IACpG,mGAAmG;IACnG,iDAAiD;IACjD,gGAAgG;IAChG,4DAA4D;IAC5D,qGAAqG;IACrG,kEAAkE;IAClE,kGAAkG;IAClG,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC;IACxC,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,KAAK,YAAY,IAAI,OAAO,IAAI,WAAW,CAAC;IAC5E,MAAM,KAAK,GACT,KAAK,CAAC,IAAI,KAAK,IAAI;QACjB,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE;QACpD,CAAC,CAAC,KAAK,CAAC,OAAO,KAAK,QAAQ;YAC1B,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,IAAI,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,IAAI,IAAI,EAAE;YACpF,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAElD,IAAI,KAAK,CAAC,OAAO,KAAK,QAAQ,IAAI,WAAW,IAAI,KAAK,EAAE,OAAO,IAAI,IAAI,EAAE,CAAC;QACxE,MAAM,OAAO,GAAG,MAAM,oBAAoB,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QAC3F,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;YAAE,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAC5D,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE;YACrB,EAAE;YACF,GAAG,gBAAgB,CACjB;gBACE,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,uBAAuB;gBAC7B,IAAI,EAAE,OAAO,CAAC,iBAAiB;gBAC/B,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAAC;gBACpG,QAAQ,EAAE,OAAO,CAAC,gBAAgB;gBAClC,KAAK,EAAE,CAAC,KAAK,CAAC,KAAK,IAAI,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;aAC9D,EACD,GAAG,CAAC,MAAM,CACX;SACF,CAAC,CAAC;QACH,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC5B,CAAC;IAED,IAAI,QAAQ,IAAI,UAAU,IAAI,KAAK,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzD,8FAA8F;QAC9F,yEAAyE;QACzE,MAAM,IAAI,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,CAAC;QAC7C,MAAM,OAAO,GAAG,KAAK,EAAE,OAAO,IAAI,IAAI,CAAC;QACvC,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE;YACrB,EAAE;YACF,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,YAAY,EAAE,cAAc,CAAC,KAAK,EAAE,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC;YAClI,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,cAAc,EAAE,cAAc,CAAC,OAAO,IAAI,OAAO,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC;YAClG,GAAG,CAAC,QAAQ,IAAI,KAAK,EAAE,GAAG,CAAC,IAAI,KAAK,IAAI;gBACtC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,aAAa,EAAE,cAAc,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;gBACtG,CAAC,CAAC,EAAE,CAAC;SACR,CAAC,CAAC;QACH,sGAAsG;QACtG,qGAAqG;QACrG,mGAAmG;QACnG,8FAA8F;QAC9F,IAAI,MAAqB,CAAC;QAC1B,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,GAAG,CAAC,GAAG,CACpB,KAAK,iBAAiB,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,CACtG,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,GAAG,IAAI,CAAC;QAChB,CAAC;QACD,IAAI,MAAM,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9C,6EAA6E;YAC7E,iGAAiG;YACjG,6FAA6F;YAC7F,sEAAsE;YACtE,MAAM,OAAO,GAAG,MAAM,oBAAoB,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;YAC3F,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;gBAAE,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;YAC5D,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE;gBACrB,EAAE;gBACF,GAAG,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAClE,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;aAC1F,CAAC,CAAC;YACH,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,sHAAsH;IACtH,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;QAAE,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC/D,oBAAoB,CAClB,GAAG,CAAC,IAAI,EACR,qBAAqB,CAAC,MAAM,CAAC,EAC7B;QACE,UAAU,EAAE,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS;QACtF,aAAa,EAAE,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY;QAC5E,MAAM,EAAE,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;QAChD,OAAO,EAAE,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO;QAC7E,OAAO,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;KACjC,EACD,kBAAkB,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CACtC,CAAC;IAEF,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC;IAC1C,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACrD,qGAAqG;QACrG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAChC,CAAC;IACD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;QACxD,IAAI,QAAQ,EAAE,CAAC;YACb,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAChC,CAAC;aAAM,CAAC;YACN,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;YACzG,KAAK,CAAC,IAAI,CACR,OAAO,CAAC,IAAI,KAAK,SAAS;gBACxB,CAAC,CAAC,MAAM,CAAC,OAAO;gBAChB,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,aAAa;oBAC9B,CAAC,CAAC,MAAM,CAAC,UAAU;oBACnB,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS;wBAC1B,CAAC,CAAC,MAAM,CAAC,OAAO;wBAChB,CAAC,CAAC,MAAM,CAAC,MAAM,CACtB,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AAC/H,CAAC"}
@@ -46,7 +46,8 @@
46
46
  *
47
47
  * @provenance vibecommit-mcp src/read/coverage.ts — the payload shape, retyped
48
48
  */
49
- import { ABSENCE, COMMANDS, ERRORS, HELP, REPORT, SIGNIN, WHY, } from "../copy/index.js";
49
+ import { ABSENCE, COMMANDS, REPORT, SIGNIN, WHY, } from "../copy/index.js";
50
+ import { renderVerbHelp } from "../verb_help.js";
50
51
  import { EXIT } from "../exit.js";
51
52
  import { currentBranch, gitProbe, isReachable, isShallowClone, resolveRepoSlug } from "../git.js";
52
53
  import { emitJson } from "../json.js";
@@ -54,7 +55,8 @@ import { mcpUrl } from "../oauth/discovery.js";
54
55
  import { readWithSession } from "../oauth/signin.js";
55
56
  import { resolveProjectKey } from "../project.js";
56
57
  import { renderErrorBlock, wrap } from "../term.js";
57
- import { writeLines } from "./context.js";
58
+ import { notAGitRepoBlock, writeFailure, writeLines } from "./context.js";
59
+ import { channelCommand } from "../install.js";
58
60
  /** §10.3 indents the body two columns, the same as `why`'s screens. */
59
61
  const BODY_INDENT = 2;
60
62
  /** One read, one POST. Generous because it contains a server-side join. */
@@ -162,11 +164,16 @@ export function parseArgs(argv) {
162
164
  // ---------------------------------------------------------------------------
163
165
  // Rendering.
164
166
  // ---------------------------------------------------------------------------
165
- function errorCopy(what, why, fixLabel, fix) {
166
- return { what, why: [why], fixLabel, fixes: [fix] };
167
+ function errorCopy(code, what, why, fixLabel, fix) {
168
+ return { code, what, why: [why], fixLabel, fixes: [fix] };
167
169
  }
168
- function fail(ctx, copy, code) {
169
- writeLines(ctx.stderr, renderErrorBlock({ kind: "bad", ...copy }, ctx.colour));
170
+ /**
171
+ * A failure, written the way the mode wants it: §13.6's block on stderr, or under `--json` ONE failure document on stdout
172
+ * and nothing on stderr (PR 7). The fix commands go through the install channel, so a plugin-only machine is told
173
+ * `node <path> report`, not a `vibecommit` it does not have.
174
+ */
175
+ function fail(ctx, json, copy, code) {
176
+ writeFailure(ctx, { kind: "bad", ...copy, fixes: copy.fixes.map((fix) => channelCommand(ctx.env, ctx.selfPath, fix)) }, json ? "report" : null);
170
177
  return code;
171
178
  }
172
179
  /**
@@ -180,7 +187,7 @@ function fail(ctx, copy, code) {
180
187
  */
181
188
  function absence(ctx, what, why, fixLabel, fixes) {
182
189
  const block = fixes.length > 0
183
- ? { kind: "warn", what, why: [why], fixLabel, fixes }
190
+ ? { kind: "warn", what, why: [why], fixLabel, fixes: fixes.map((fix) => channelCommand(ctx.env, ctx.selfPath, fix)) }
184
191
  : { kind: "warn", what, why: [why] };
185
192
  const lines = [...renderErrorBlock(block, ctx.colour)];
186
193
  if (fixes.length === 0)
@@ -189,22 +196,22 @@ function absence(ctx, what, why, fixLabel, fixes) {
189
196
  return EXIT.empty;
190
197
  }
191
198
  /** `notAuthorized`'s six outcomes, the same six `why` renders. */
192
- function notAuthorized(ctx, authorized) {
199
+ function notAuthorized(ctx, json, authorized) {
193
200
  switch (authorized.kind) {
194
201
  case "no-session":
195
- return fail(ctx, errorCopy(WHY.signedOutWhat, WHY.signedOutWhy, WHY.signedOutFix, COMMANDS.signIn), EXIT.notConnected);
202
+ return fail(ctx, json, errorCopy("NOT_SIGNED_IN", WHY.signedOutWhat, WHY.signedOutWhy, WHY.signedOutFix, COMMANDS.signIn), EXIT.notConnected);
196
203
  case "expired":
197
- return fail(ctx, errorCopy(SIGNIN.expiredWhat, SIGNIN.expiredWhy, SIGNIN.expiredFix, COMMANDS.signIn), EXIT.notConnected);
204
+ return fail(ctx, json, errorCopy("SIGNIN_ENDED", SIGNIN.expiredWhat, SIGNIN.expiredWhy, SIGNIN.expiredFix, COMMANDS.signIn), EXIT.notConnected);
198
205
  case "busy":
199
- return fail(ctx, errorCopy(SIGNIN.busyWhat, SIGNIN.busyWhy, SIGNIN.busyFix, COMMANDS.report), EXIT.failure);
206
+ return fail(ctx, json, errorCopy("SIGNIN_BUSY", SIGNIN.busyWhat, SIGNIN.busyWhy, SIGNIN.busyFix, COMMANDS.report), EXIT.failure);
200
207
  case "unreachable":
201
- return fail(ctx, errorCopy(WHY.unreachableWhat, WHY.unreachableWhy, WHY.readFix, COMMANDS.report), EXIT.failure);
208
+ return fail(ctx, json, errorCopy("RECORD_SERVICE_UNREACHABLE", WHY.unreachableWhat, WHY.unreachableWhy, WHY.readFix, COMMANDS.report), EXIT.failure);
202
209
  case "malformed":
203
210
  case "ok":
204
211
  // `ok` is unreachable by construction — `readWithSession` only wraps a
205
212
  // NON-ok outcome. Rendered rather than thrown: a crash here would be a
206
213
  // worse answer than an honest failure.
207
- return fail(ctx, errorCopy(WHY.malformedWhat, WHY.malformedWhy, WHY.readFix, COMMANDS.report), EXIT.failure);
214
+ return fail(ctx, json, errorCopy("RECORD_ANSWER_UNREADABLE", WHY.malformedWhat, WHY.malformedWhy, WHY.readFix, COMMANDS.report), EXIT.failure);
208
215
  }
209
216
  }
210
217
  /**
@@ -235,7 +242,8 @@ function coverageScreen(payload, reachable, percent) {
235
242
  export async function report(ctx, argv, deps = {}) {
236
243
  // `TODOS[184]`. Check-first, before `parseArgs`/anything else. Reads and writes nothing.
237
244
  if (argv.includes("--help") || argv.includes("-h")) {
238
- writeLines(ctx.stdout, [HELP.commands.report]);
245
+ const helpVerb = "report"; // an identifier, not a literal, at the writer: `copy-inline-literals` follows argument positions
246
+ writeLines(ctx.stdout, renderVerbHelp(helpVerb));
239
247
  return EXIT.ok;
240
248
  }
241
249
  // §13.3 — `--json` emits nothing but the JSON document on stdout, and D122 §2
@@ -244,14 +252,14 @@ export async function report(ctx, argv, deps = {}) {
244
252
  const json = argv.includes("--json");
245
253
  const args = parseArgs(argv);
246
254
  if (args === "usage") {
247
- return fail(ctx, errorCopy(REPORT.usageWhat, REPORT.usageWhy, REPORT.usageFix, COMMANDS.report), EXIT.usage);
255
+ return fail(ctx, json, errorCopy("REPORT_NEEDS_SINCE", REPORT.usageWhat, REPORT.usageWhy, REPORT.usageFix, COMMANDS.report), EXIT.usage);
248
256
  }
249
257
  if (args === "bad-date") {
250
- return fail(ctx, errorCopy(REPORT.sinceWhat, REPORT.sinceWhy, REPORT.sinceFix, COMMANDS.report), EXIT.usage);
258
+ return fail(ctx, json, errorCopy("REPORT_SINCE_UNREADABLE", REPORT.sinceWhat, REPORT.sinceWhy, REPORT.sinceFix, COMMANDS.report), EXIT.usage);
251
259
  }
252
260
  const projectKey = resolveProjectKey(ctx.cwd);
253
261
  if (projectKey === null) {
254
- writeLines(ctx.stderr, renderErrorBlock({ kind: "bad", what: ERRORS.notAGitRepo, why: [] }, ctx.colour));
262
+ writeFailure(ctx, notAGitRepoBlock(ctx), json ? "report" : null);
255
263
  return EXIT.failure;
256
264
  }
257
265
  // ⚠⚠ THE SHALLOW REFUSAL FIRES FIRST, BEFORE THE REF, BEFORE THE LOCAL LOG
@@ -262,18 +270,18 @@ export async function report(ctx, argv, deps = {}) {
262
270
  // window"* is a claim the clone cannot support. State 3's sentence is written
263
271
  // unqualified precisely because this refusal guarantees it.
264
272
  if (isShallowClone(projectKey)) {
265
- return fail(ctx, errorCopy(REPORT.shallowWhat, REPORT.shallowWhy, WHY.shallowFix, WHY.shallowFixCommand), EXIT.failure);
273
+ return fail(ctx, json, errorCopy("SHALLOW_CLONE", REPORT.shallowWhat, REPORT.shallowWhy, WHY.shallowFix, WHY.shallowFixCommand), EXIT.failure);
266
274
  }
267
275
  const ref = args.ref ?? currentBranch(projectKey);
268
276
  if (ref === null) {
269
- return fail(ctx, errorCopy(REPORT.refWhat, REPORT.refWhy, REPORT.refFix, COMMANDS.reportRef), EXIT.usage);
277
+ return fail(ctx, json, errorCopy("REPORT_REF_UNNAMEABLE", REPORT.refWhat, REPORT.refWhy, REPORT.refFix, COMMANDS.reportRef), EXIT.usage);
270
278
  }
271
279
  // ⚠ THE WINDOW IS A LOCAL FACT, and so are both empty states. `git log`
272
280
  // answers "what commits are on this ref in this window" without a server,
273
281
  // which is what lets state 3 render before anything is read.
274
282
  const log = gitProbe(projectKey, ["log", "--format=%H", `--since=${args.since}`, ref, "--"]);
275
283
  if (log === null) {
276
- return fail(ctx, errorCopy(REPORT.refWhat, REPORT.refWhy, REPORT.refFix, COMMANDS.reportRef), EXIT.usage);
284
+ return fail(ctx, json, errorCopy("REPORT_REF_UNNAMEABLE", REPORT.refWhat, REPORT.refWhy, REPORT.refFix, COMMANDS.reportRef), EXIT.usage);
277
285
  }
278
286
  const windowShas = log.split("\n").filter((line) => line.trim() !== "");
279
287
  const window = REPORT.window(args.since);
@@ -306,7 +314,7 @@ export async function report(ctx, argv, deps = {}) {
306
314
  }
307
315
  const endpoint = mcpUrl(ctx.env);
308
316
  if (endpoint === null) {
309
- return fail(ctx, errorCopy(SIGNIN.noServerWhat, SIGNIN.noServerRefusedWhy, WHY.readFix, COMMANDS.report), EXIT.failure);
317
+ return fail(ctx, json, errorCopy("SIGNIN_SERVICE_NOT_FOUND", SIGNIN.noServerWhat, SIGNIN.noServerRefusedWhy, WHY.readFix, COMMANDS.report), EXIT.failure);
310
318
  }
311
319
  const read = deps.read ?? readWithSession;
312
320
  const outcome = await read(endpoint, "commit_coverage",
@@ -328,25 +336,25 @@ export async function report(ctx, argv, deps = {}) {
328
336
  function render(ctx, outcome, projectKey, ref, window, windowCommits, opts) {
329
337
  switch (outcome.kind) {
330
338
  case "not-authorized":
331
- return notAuthorized(ctx, outcome.authorized);
339
+ return notAuthorized(ctx, opts.json, outcome.authorized);
332
340
  case "unauthorized":
333
- return fail(ctx, errorCopy(WHY.signedOutWhat, WHY.signedOutWhy, WHY.signedOutFix, COMMANDS.signIn), EXIT.notConnected);
341
+ return fail(ctx, opts.json, errorCopy("NOT_SIGNED_IN", WHY.signedOutWhat, WHY.signedOutWhy, WHY.signedOutFix, COMMANDS.signIn), EXIT.notConnected);
334
342
  case "unreachable":
335
- return fail(ctx, errorCopy(WHY.unreachableWhat, WHY.unreachableWhy, WHY.readFix, COMMANDS.report), EXIT.failure);
343
+ return fail(ctx, opts.json, errorCopy("RECORD_SERVICE_UNREACHABLE", WHY.unreachableWhat, WHY.unreachableWhy, WHY.readFix, COMMANDS.report), EXIT.failure);
336
344
  case "rpc-error":
337
345
  // ⚠ Never a bare HTTP status or a raw JSON-RPC code on screen (§13.6).
338
- return fail(ctx, errorCopy(WHY.serverErrorWhat, WHY.serverErrorWhy, WHY.readFix, COMMANDS.report), EXIT.failure);
346
+ return fail(ctx, opts.json, errorCopy("RECORD_SERVICE_ERROR", WHY.serverErrorWhat, WHY.serverErrorWhy, WHY.readFix, COMMANDS.report), EXIT.failure);
339
347
  case "malformed":
340
- return fail(ctx, errorCopy(WHY.malformedWhat, WHY.malformedWhy, WHY.readFix, COMMANDS.report), EXIT.failure);
348
+ return fail(ctx, opts.json, errorCopy("RECORD_ANSWER_UNREADABLE", WHY.malformedWhat, WHY.malformedWhy, WHY.readFix, COMMANDS.report), EXIT.failure);
341
349
  case "ok": {
342
350
  // ⚠ `isError` rides the SAME envelope as a success. A caller that only
343
351
  // branched on the transport would read a tool failure as a record.
344
352
  if (outcome.isError) {
345
- return fail(ctx, errorCopy(WHY.serverErrorWhat, WHY.serverErrorWhy, WHY.readFix, COMMANDS.report), EXIT.failure);
353
+ return fail(ctx, opts.json, errorCopy("RECORD_SERVICE_ERROR", WHY.serverErrorWhat, WHY.serverErrorWhy, WHY.readFix, COMMANDS.report), EXIT.failure);
346
354
  }
347
355
  const payload = parseCoveragePayload(outcome.document);
348
356
  if (payload === null) {
349
- return fail(ctx, errorCopy(WHY.malformedWhat, WHY.malformedWhy, WHY.readFix, COMMANDS.report), EXIT.failure);
357
+ return fail(ctx, opts.json, errorCopy("RECORD_ANSWER_UNREADABLE", WHY.malformedWhat, WHY.malformedWhy, WHY.readFix, COMMANDS.report), EXIT.failure);
350
358
  }
351
359
  return renderPayload(ctx, payload, projectKey, ref, window, windowCommits, opts);
352
360
  }
@@ -390,7 +398,7 @@ function renderPayload(ctx, payload, projectKey, ref, window, windowCommits, opt
390
398
  // unreachable would DEFLATE the rate and present a smaller number as a
391
399
  // complete one, which is D98's class on the number that matters most.
392
400
  if (answer === null) {
393
- return fail(ctx, errorCopy(REPORT.unknownReachabilityWhat, REPORT.unknownReachabilityWhy, REPORT.unknownReachabilityFix, WHY.shallowFixCommand), EXIT.failure);
401
+ return fail(ctx, opts.json, errorCopy("REPORT_REACHABILITY_UNKNOWN", REPORT.unknownReachabilityWhat, REPORT.unknownReachabilityWhy, REPORT.unknownReachabilityFix, WHY.shallowFixCommand), EXIT.failure);
394
402
  }
395
403
  if (answer)
396
404
  reachable += 1;
@@ -403,7 +411,7 @@ function renderPayload(ctx, payload, projectKey, ref, window, windowCommits, opt
403
411
  // The payload disagrees with the clone about its own totals. A rate over
404
412
  // 100% is not a number to print, and clamping it would hide the disagreement
405
413
  // behind a plausible figure.
406
- return fail(ctx, errorCopy(WHY.malformedWhat, WHY.malformedWhy, WHY.readFix, COMMANDS.report), EXIT.failure);
414
+ return fail(ctx, opts.json, errorCopy("RECORD_ANSWER_UNREADABLE", WHY.malformedWhat, WHY.malformedWhy, WHY.readFix, COMMANDS.report), EXIT.failure);
407
415
  }
408
416
  const percent = Math.round((numerator / payload.edgesHeld) * 100);
409
417
  // §13.3 — the machine surface, and THE ONE PLACE THE GRADE MIX IS READABLE AS
@@ -1 +1 @@
1
- {"version":3,"file":"report.js","sourceRoot":"","sources":["../../src/commands/report.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"report.js","sourceRoot":"","sources":["../../src/commands/report.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,162 @@
1
+ /**
2
+ * `vibecommit scan` — design review D17 · 11A, D33 · 27A; capture 0.7.0, PR 1.
3
+ *
4
+ * Which repositories on this machine has a coding agent been used in? Read-only,
5
+ * no network, and VibeCommit writes no file. (Opening Codex's index `readOnly` makes
6
+ * SQLite create its own `-wal`/`-shm` journal files beside it when Codex has closed
7
+ * them, as any SQLite reader does — measured, PR 1 F1; the index itself is never
8
+ * written.) It is the engine `connect` will use for its
9
+ * picker (`scanMachine`, exported for it, D1) and a public verb in its own right,
10
+ * so an AI agent can list capturable repos without entering a consent flow.
11
+ *
12
+ * ## ⛔ NO TRANSCRIPT IS EVER OPENED
13
+ *
14
+ * The consent design is that no path opens a transcript of a repo nobody granted,
15
+ * and the thing that decides what to OFFER cannot be the thing that reads them.
16
+ * Every count here comes from a directory entry's name or an `lstat`'s time
17
+ * (`SourceSession`), and Codex's from four index columns. A folder is resolved to
18
+ * a path by walking the FILESYSTEM against the folder's encoded name — never by
19
+ * reading the `cwd` a transcript records, which is analysis (D60 §D6). The one
20
+ * ruled exception to that is backfill's one-field check, after consent, and it is
21
+ * not in this file.
22
+ *
23
+ * ## The walk, and why it can say no
24
+ *
25
+ * Both folder-keyed agents encode a path LOSSILY (`/a/b-c`, `/a/b/c` and `/a/b.c`
26
+ * are one name under Claude Code's rule), so a name is not a path. The engine
27
+ * encodes every directory ENTRY with the dialect's own `encodeProjectPath` and
28
+ * keeps those whose encoding is the name, or a prefix of it that ends at a
29
+ * separator — so the collapsing and trimming of Cursor's rule apply to every
30
+ * candidate, and nothing is assumed. The outcomes, each a different count:
31
+ *
32
+ * - one existing directory → resolved (a repo if it is a git work tree,
33
+ * else counted as a folder that isn't one)
34
+ * - two or more → ambiguous, skipped
35
+ * - none → the folder no longer exists
36
+ * - a hashed (cut) name → cannot be inverted, counted with ambiguous
37
+ * - one, but the agent's own record names a DELETED path that encodes to the
38
+ * same name → ambiguous too (the deleted-sibling case; the `projects` map)
39
+ *
40
+ * ## The walk reads each directory once
41
+ *
42
+ * Folders under one directory (a temp directory holding hundreds of project
43
+ * folders) all walk through it, and the first version re-read and re-encoded it for
44
+ * every one of them: 5.7 s of an 8.1 s scan on a machine with 130 folders. Within one
45
+ * `scanMachine` run each directory is read ONCE and its children indexed by their
46
+ * full encoding, so a step down the tree is a hash lookup on the prefixes of the name
47
+ * that end at a `-`, not a pass over every entry.
48
+ *
49
+ * ## Path reuse
50
+ *
51
+ * A transcript last written BEFORE its clone's first reflog entry predates the
52
+ * clone, so it may belong to a different repo that once lived at that path. It is
53
+ * skipped. A clone with no reflog cannot be tested and is reported instead, as one
54
+ * backfill will skip. ⚠ Git facts and a file time only.
55
+ */
56
+ import { type Dirent } from "node:fs";
57
+ import type { AgentId, SourceSession, UnreadableReason } from "../agents/types.js";
58
+ import { type CommandContext } from "./context.js";
59
+ /** One clone of a repo, and the hook state the connect step will need about it. */
60
+ export interface ScanClone {
61
+ /** The git work-tree toplevel the sessions were matched to. */
62
+ readonly path: string;
63
+ /** `core.hooksPath` when set — the one setting that makes an install a refusal. */
64
+ readonly hooksPath: string | null;
65
+ }
66
+ /**
67
+ * One session attributed to a repo — the unit backfill uploads. ⛔ Names a file; it opens none (`SourceSession`).
68
+ * `dir` is the folder the session was matched to (the agent's working directory, resolved), `clone` the
69
+ * work-tree toplevel it belongs to and `commonDir` that clone's consent key.
70
+ */
71
+ export interface ScanMember {
72
+ readonly agent: AgentId;
73
+ readonly session: SourceSession;
74
+ readonly dir: string;
75
+ readonly clone: string;
76
+ readonly commonDir: string;
77
+ }
78
+ /** A repo with at least one session that could be attributed to it. */
79
+ export interface ScanRepo {
80
+ /** `owner/repo`, host-qualified for a non-GitHub host (`resolveRepoSlug`). */
81
+ readonly slug: string;
82
+ readonly sessions: number;
83
+ /** The oldest session, as a time. A start where the agent keeps one, else an mtime. */
84
+ readonly sinceMs: number;
85
+ /** The newest session — what the rows are ordered by. */
86
+ readonly latestMs: number;
87
+ readonly agents: Readonly<Record<AgentId, number>>;
88
+ readonly clones: readonly ScanClone[];
89
+ /**
90
+ * Every session counted in `sessions`, with where it was matched. `scanMachine` always fills it; it is optional only
91
+ * so a hand-built `ScanRepo` (a golden-file fixture) need not invent one. `backfill` reads it; `scan --json` does not
92
+ * print it (the contract is counts, `scanDocument`).
93
+ */
94
+ readonly members?: readonly ScanMember[];
95
+ }
96
+ /** Everything the scan saw and did NOT list, each with its count (R3-15, "nothing silently dropped"). */
97
+ export interface ScanNotListed {
98
+ /** One work-tree path per repo with no remote (`local:` identity). */
99
+ readonly noRemote: readonly string[];
100
+ readonly ambiguousSessions: number;
101
+ readonly missingFolderSessions: number;
102
+ /** Sessions in a folder (or a Codex `cwd`) that exists but is not inside a git work tree. */
103
+ readonly nonRepoSessions: number;
104
+ readonly pathReusedSessions: number;
105
+ readonly noReflogClones: readonly string[];
106
+ /** Codex rollouts on disk that no index row names. */
107
+ readonly unindexedSessions: number;
108
+ readonly unreadableAgents: readonly {
109
+ agent: AgentId;
110
+ reason: UnreadableReason;
111
+ }[];
112
+ }
113
+ export interface ScanResult {
114
+ readonly repos: readonly ScanRepo[];
115
+ readonly notListed: ScanNotListed;
116
+ }
117
+ /** Reads a directory's entries; `null` when it is not there. The seam the once-per-directory cell uses. */
118
+ type ReadEntries = (dir: string) => Dirent[] | null;
119
+ /**
120
+ * Scan this machine. Pure of ambient state: `home` and `env` arrive as data, so a
121
+ * test drives it against a throwaway HOME and never against the developer's own
122
+ * agent stores.
123
+ */
124
+ export declare function scanMachine(home: string, env: NodeJS.ProcessEnv, deps?: {
125
+ readonly readEntries?: ReadEntries;
126
+ }): ScanResult;
127
+ /**
128
+ * The picker's subset of the `Not listed here:` lines (§10.12): repos with no remote and their fix, folders that can't be
129
+ * matched to one repo, and an agent whose store couldn't be read. The other five are scan-only (§10.13).
130
+ */
131
+ export declare function pickerNotListedLines(notListed: ScanNotListed, connectCommand: string): string[];
132
+ /** True when the scan saw no session at all, so no line could be listed: the new-laptop screen (VQ, PR 3 addition). */
133
+ export declare function sawNoSession(notListed: ScanNotListed, home: string): boolean;
134
+ /**
135
+ * The screen, as lines. `nowMs` is an argument (`shortDate` needs it) so a golden
136
+ * file pins the clock instead of reading it.
137
+ *
138
+ * SGR roles are the picker table's (D24): `strong` the `Found` line, `text` the
139
+ * repo names and the closing command, `muted` counts, dates, the agent line and the
140
+ * whole `Not listed here:` block. `NO_COLOR` is therefore this output minus the
141
+ * escapes — bold carries the structure and indentation the rest (§13.1).
142
+ */
143
+ export declare function renderScan(result: ScanResult,
144
+ /** `connectCommand` is this install's `connect` (`connectCommandFor`); absent means the CLI's own name. */
145
+ options: {
146
+ colour: boolean;
147
+ home: string;
148
+ nowMs: number;
149
+ connectCommand?: string;
150
+ }): string[];
151
+ /** The `--json` document body — a contract, pinned in `test/json-read-verbs.test.ts`. */
152
+ export declare function scanDocument(result: ScanResult): Record<string, unknown>;
153
+ /**
154
+ * `vibecommit scan [--json]`. Exit `0` when a repository was listed, `4` when
155
+ * none was — and `4` is "nothing to report", not an error (DESIGN.md §13.7), so a
156
+ * wrapper can branch on it without parsing copy. It holds even when `Not listed
157
+ * here:` has lines.
158
+ */
159
+ export declare function scan(ctx: CommandContext, argv?: readonly string[], deps?: {
160
+ readonly scanMachine?: typeof scanMachine;
161
+ }): number;
162
+ export {};