@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
@@ -19,42 +19,47 @@ import { renderErrorBlock, truncatePath } from "../term.js";
19
19
  export function credentialProblem(load, colour,
20
20
  /** The channel's `auth` (`installChannel`) — `vibecommit auth` on npm, `node <path> auth` for the plugin. */
21
21
  authCommand = COMMANDS.auth) {
22
+ return renderErrorBlock(credentialProblemBlock(load, authCommand), colour);
23
+ }
24
+ /**
25
+ * The block itself, un-rendered: `--json` failures carry the same code, sentences and fix commands as the text.
26
+ * 0.7.0 PR 7: the fix command is the one the caller gives (the channel's `auth`), never a literal.
27
+ */
28
+ export function credentialProblemBlock(load, authCommand = COMMANDS.auth) {
22
29
  switch (load.kind) {
23
30
  case "wrong-class":
24
- return renderErrorBlock({
31
+ return {
25
32
  kind: "bad",
33
+ code: "STORED_CREDENTIAL_NOT_INGEST",
26
34
  what: CREDENTIAL.wrongClassWhat,
27
- why: [
28
- load.source === "env"
29
- ? CREDENTIAL.wrongClassEnvWhy
30
- : CREDENTIAL.wrongClassFileWhy,
31
- ],
35
+ why: [load.source === "env" ? CREDENTIAL.wrongClassEnvWhy : CREDENTIAL.wrongClassFileWhy],
32
36
  fixLabel: CREDENTIAL.wrongClassFix,
33
37
  fixes: [authCommand],
34
- }, colour);
38
+ };
35
39
  case "insecure-file":
36
- return renderErrorBlock({
40
+ return {
37
41
  kind: "bad",
38
- what: CREDENTIAL.insecureFileWhat,
42
+ code: "CREDENTIAL_FILE_INSECURE",
43
+ // ONE code, two remedies: the folder's mode and the file's mode are different things to fix, and `chmod 600` on
44
+ // the file does not clear a folder that other accounts can enter (the user would loop on this block).
45
+ what: load.target === "directory" ? CREDENTIAL.insecureDirWhat : CREDENTIAL.insecureFileWhat,
39
46
  why: [
40
- `${CREDENTIAL.insecureFileWhyLabel} ${truncatePath(load.path, 60)}`,
47
+ `${load.target === "directory" ? CREDENTIAL.insecureDirWhyLabel : CREDENTIAL.insecureFileWhyLabel} ${truncatePath(load.path, 60)}`,
41
48
  `${CREDENTIAL.insecureFileModeLabel} ${load.mode}`,
42
- CREDENTIAL.insecureFileWhy,
49
+ load.target === "directory" ? CREDENTIAL.insecureDirWhy : CREDENTIAL.insecureFileWhy,
43
50
  ],
44
51
  fixLabel: CREDENTIAL.insecureFileFix,
45
- fixes: [COMMANDS.chmodCredentials],
46
- }, colour);
52
+ fixes: [load.target === "directory" ? COMMANDS.chmodDirectory : COMMANDS.chmodCredentials],
53
+ };
47
54
  case "unreadable":
48
- return renderErrorBlock({
55
+ return {
49
56
  kind: "bad",
57
+ code: "CREDENTIAL_FILE_UNREADABLE",
50
58
  what: CREDENTIAL.unreadableWhat,
51
- why: [
52
- `${CREDENTIAL.insecureFileWhyLabel} ${truncatePath(load.path, 60)}`,
53
- CREDENTIAL.unreadableWhy,
54
- ],
59
+ why: [`${CREDENTIAL.insecureFileWhyLabel} ${truncatePath(load.path, 60)}`, CREDENTIAL.unreadableWhy],
55
60
  fixLabel: CREDENTIAL.unreadableFix,
56
61
  fixes: [authCommand],
57
- }, colour);
62
+ };
58
63
  }
59
64
  }
60
65
  /**
@@ -66,8 +71,7 @@ authCommand = COMMANDS.auth) {
66
71
  export function rejectedCredentialBlock(input) {
67
72
  const expires = metaFor(input.home, input.fingerprint)?.expires_at ?? null;
68
73
  const expiredAt = expires === null ? Number.NaN : Date.parse(expires);
69
- return renderErrorBlock({
70
- kind: input.standing ? "warn" : "bad",
74
+ const body = {
71
75
  what: REJECTED.what,
72
76
  why: [
73
77
  Number.isFinite(expiredAt) && expiredAt <= input.nowMs
@@ -76,6 +80,9 @@ export function rejectedCredentialBlock(input) {
76
80
  ],
77
81
  fixLabel: REJECTED.fixLabel,
78
82
  fixes: [input.authCommand],
79
- }, input.colour);
83
+ };
84
+ // A standing stop `status` reports is a warning and carries no code; the verdict `connect` just got is
85
+ // an error and does (`CREDENTIAL_REJECTED`, the same condition `finalize` and `backfill` stop on).
86
+ return renderErrorBlock(input.standing ? { kind: "warn", ...body } : { kind: "bad", code: "CREDENTIAL_REJECTED", ...body }, input.colour);
80
87
  }
81
88
  //# sourceMappingURL=credential_problem.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"credential_problem.js","sourceRoot":"","sources":["../../src/commands/credential_problem.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"credential_problem.js","sourceRoot":"","sources":["../../src/commands/credential_problem.ts"],"names":[],"mappings":"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"}
@@ -43,5 +43,7 @@ export interface DeviceInput {
43
43
  readonly prior: Prior | null;
44
44
  /** Open the prefilled link? False where no browser is on this machine (SSH, no display). */
45
45
  readonly openLink: boolean;
46
+ /** `"repos"`: the picker path's workspace question (0.7.0). */
47
+ readonly scope?: "repos";
46
48
  }
47
49
  export declare function deviceCredential(ctx: CommandContext, input: DeviceInput, deps?: BrowserDeps): Promise<BrowserCredential>;
@@ -68,9 +68,10 @@ function sigintOnce() {
68
68
  };
69
69
  }
70
70
  const realSleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
71
- function errorBlock(ctx, what, why, fixLabel, fixes) {
71
+ function errorBlock(ctx, code, what, why, fixLabel, fixes) {
72
72
  return renderErrorBlock({
73
73
  kind: "bad",
74
+ code,
74
75
  what,
75
76
  why: [why],
76
77
  ...(fixLabel === undefined || fixes === undefined ? {} : { fixLabel, fixes }),
@@ -100,13 +101,13 @@ export async function deviceCredential(ctx, input, deps = {}) {
100
101
  if (discovery.kind !== "ok") {
101
102
  writeLines(ctx.stderr, [
102
103
  "",
103
- ...errorBlock(ctx, SIGNIN.noServerWhat, discovery.kind === "unreachable" ? SIGNIN.noServerUnreachableWhy : SIGNIN.noServerMalformedWhy, DEVICE.retryFix, [rerun]),
104
+ ...errorBlock(ctx, "SIGNIN_SERVICE_NOT_FOUND", SIGNIN.noServerWhat, discovery.kind === "unreachable" ? SIGNIN.noServerUnreachableWhy : SIGNIN.noServerMalformedWhy, DEVICE.retryFix, [rerun]),
104
105
  ]);
105
106
  return { kind: "failed" };
106
107
  }
107
108
  const { device_authorization_endpoint, token_endpoint } = discovery.metadata;
108
109
  if (device_authorization_endpoint === undefined) {
109
- writeLines(ctx.stderr, ["", ...errorBlock(ctx, DEVICE.unsupportedWhat, DEVICE.unsupportedWhy)]);
110
+ writeLines(ctx.stderr, ["", ...errorBlock(ctx, "SIGNIN_CODE_UNSUPPORTED", DEVICE.unsupportedWhat, DEVICE.unsupportedWhy)]);
110
111
  return { kind: "failed" };
111
112
  }
112
113
  const label = machineLabel((deps.hostname ?? osHostname)());
@@ -123,13 +124,13 @@ export async function deviceCredential(ctx, input, deps = {}) {
123
124
  writeLines(ctx.stderr, ["", ...rateLimitedBlock(ctx, started.retryAfterS, rerun)]);
124
125
  return { kind: "declined" };
125
126
  case "refused":
126
- writeLines(ctx.stderr, ["", ...errorBlock(ctx, DEVICE.refusedWhat, DEVICE.refusedWhy, DEVICE.retryFix, [rerun])]);
127
+ writeLines(ctx.stderr, ["", ...errorBlock(ctx, "SIGNIN_CODE_REFUSED", DEVICE.refusedWhat, DEVICE.refusedWhy, DEVICE.retryFix, [rerun])]);
127
128
  return { kind: "failed" };
128
129
  case "unreachable":
129
- writeLines(ctx.stderr, ["", ...errorBlock(ctx, DEVICE.unreachableWhat, DEVICE.unreachableWhy, DEVICE.retryFix, [rerun])]);
130
+ writeLines(ctx.stderr, ["", ...errorBlock(ctx, "SIGNIN_UNREACHABLE", DEVICE.unreachableWhat, DEVICE.unreachableWhy, DEVICE.retryFix, [rerun])]);
130
131
  return { kind: "failed" };
131
132
  case "malformed":
132
- writeLines(ctx.stderr, ["", ...errorBlock(ctx, DEVICE.malformedWhat, DEVICE.malformedWhy, DEVICE.retryFix, [rerun])]);
133
+ writeLines(ctx.stderr, ["", ...errorBlock(ctx, "SIGNIN_ANSWER_UNUSABLE", DEVICE.malformedWhat, DEVICE.malformedWhy, SIGNIN.malformedFix, [rerun])]);
133
134
  return { kind: "failed" };
134
135
  }
135
136
  const grant = started.grant;
@@ -145,25 +146,25 @@ export async function deviceCredential(ctx, input, deps = {}) {
145
146
  writeLines(ctx.stdout, ["", paint(ctx.colour, "muted", ` ${DEVICE.cancelled}`)]);
146
147
  return { kind: "declined" };
147
148
  case "denied":
148
- writeLines(ctx.stderr, ["", ...errorBlock(ctx, DEVICE.deniedWhat, DEVICE.deniedWhy, DEVICE.deniedFix, [rerun])]);
149
+ writeLines(ctx.stderr, ["", ...errorBlock(ctx, "SIGNIN_DENIED", DEVICE.deniedWhat, DEVICE.deniedWhy, DEVICE.deniedFix, [rerun])]);
149
150
  return { kind: "declined" };
150
151
  case "code-signin-off":
151
152
  writeLines(ctx.stderr, ["", ...gateOffBlock(ctx, rerun)]);
152
153
  return { kind: "declined" };
153
154
  case "expired":
154
- writeLines(ctx.stderr, ["", ...errorBlock(ctx, DEVICE.expiredWhat, DEVICE.expiredWhy, DEVICE.expiredFix, [rerun])]);
155
+ writeLines(ctx.stderr, ["", ...errorBlock(ctx, "SIGNIN_TIMED_OUT", DEVICE.expiredWhat, DEVICE.expiredWhy, DEVICE.expiredFix, [rerun])]);
155
156
  return { kind: "declined" };
156
157
  case "rate-limited":
157
158
  writeLines(ctx.stderr, ["", ...rateLimitedBlock(ctx, polled.retryAfterS, rerun)]);
158
159
  return { kind: "declined" };
159
160
  case "invalid":
160
- writeLines(ctx.stderr, ["", ...errorBlock(ctx, DEVICE.invalidWhat, DEVICE.invalidWhy, DEVICE.retryFix, [rerun])]);
161
+ writeLines(ctx.stderr, ["", ...errorBlock(ctx, "SIGNIN_CODE_INVALID", DEVICE.invalidWhat, DEVICE.invalidWhy, DEVICE.retryFix, [rerun])]);
161
162
  return { kind: "failed" };
162
163
  case "unreachable":
163
- writeLines(ctx.stderr, ["", ...errorBlock(ctx, DEVICE.unreachableWhat, DEVICE.unreachableWhy, DEVICE.retryFix, [rerun])]);
164
+ writeLines(ctx.stderr, ["", ...errorBlock(ctx, "SIGNIN_UNREACHABLE", DEVICE.unreachableWhat, DEVICE.unreachableWhy, DEVICE.retryFix, [rerun])]);
164
165
  return { kind: "failed" };
165
166
  case "malformed":
166
- writeLines(ctx.stderr, ["", ...errorBlock(ctx, DEVICE.malformedWhat, DEVICE.malformedWhy, DEVICE.retryFix, [rerun])]);
167
+ writeLines(ctx.stderr, ["", ...errorBlock(ctx, "SIGNIN_ANSWER_UNUSABLE", DEVICE.malformedWhat, DEVICE.malformedWhy, SIGNIN.malformedFix, [rerun])]);
167
168
  return { kind: "failed" };
168
169
  }
169
170
  }
@@ -180,7 +181,7 @@ export async function deviceCredential(ctx, input, deps = {}) {
180
181
  if (minted.kind !== "ok") {
181
182
  writeLines(ctx.stderr, [
182
183
  "",
183
- ...errorBlock(ctx, AUTH.mintFailedWhat, minted.kind === "unreachable"
184
+ ...errorBlock(ctx, minted.kind === "refused" && minted.error === "rate_limited" ? "MINT_RATE_LIMITED" : "MINT_FAILED", AUTH.mintFailedWhat, minted.kind === "unreachable"
184
185
  ? AUTH.mintUnreachableWhy
185
186
  : minted.kind === "refused" && minted.error === "rate_limited"
186
187
  ? AUTH.mintRateLimitedWhy
@@ -200,16 +201,17 @@ export async function deviceCredential(ctx, input, deps = {}) {
200
201
  confirm: "always",
201
202
  ticket: { account: polled.account, orgName: polled.orgName },
202
203
  rerun,
204
+ ...(input.scope === undefined ? {} : { scope: input.scope }),
203
205
  });
204
206
  }
205
207
  function gateOffBlock(ctx, rerun) {
206
- return errorBlock(ctx, DEVICE.gateOffWhat, DEVICE.gateOffWhy, DEVICE.gateOffFix, [rerun]);
208
+ return errorBlock(ctx, "SIGNIN_CODE_DISABLED", DEVICE.gateOffWhat, DEVICE.gateOffWhy, DEVICE.gateOffFix, [rerun]);
207
209
  }
208
210
  function rateLimitedBlock(ctx, retryAfterS, rerun) {
209
211
  const fixLabel = retryAfterS === null
210
212
  ? DEVICE.rateLimitedFixUnknown
211
213
  : DEVICE.rateLimitedFix(clockTime(new Date(ctx.now().getTime() + retryAfterS * 1000)));
212
- return errorBlock(ctx, DEVICE.rateLimitedWhat, DEVICE.rateLimitedWhy, fixLabel, [rerun]);
214
+ return errorBlock(ctx, "SIGNIN_RATE_LIMITED", DEVICE.rateLimitedWhat, DEVICE.rateLimitedWhy, fixLabel, [rerun]);
213
215
  }
214
216
  /**
215
217
  * RFC 8628 §3.5's loop. The interval is the server's, `slow_down` raises it for good, and every poll is
@@ -1 +1 @@
1
- {"version":3,"file":"device_credential.js","sourceRoot":"","sources":["../../src/commands/device_credential.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"device_credential.js","sourceRoot":"","sources":["../../src/commands/device_credential.ts"],"names":[],"mappings":"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"}
@@ -31,5 +31,100 @@
31
31
  * than extending it).
32
32
  * - Read anywhere but the agent's own transcript root (`admitsTranscript`, the same confinement as a hook).
33
33
  */
34
+ import { type IngestCredential } from "../credential.js";
35
+ import { type Delivery } from "../post.js";
34
36
  import { type CommandContext } from "./context.js";
35
37
  export declare function finalize(ctx: CommandContext, argv: readonly string[]): Promise<number>;
38
+ /**
39
+ * PR 7 (Q2): the ingest address in the environment is one this client refuses to send to. Shared with `backfill`, which
40
+ * stops on the same condition. The fix names the variable to correct or unset — retrying cannot help.
41
+ */
42
+ export declare function ingestUrlUnavailableBlock(ctx: CommandContext): string[];
43
+ /** What `closeSession` is told about one session. Everything ambient arrives as data, like a verb's context. */
44
+ export interface CloseSessionInput {
45
+ readonly home: string;
46
+ readonly env: NodeJS.ProcessEnv;
47
+ readonly nodeVersion: string;
48
+ readonly agentId: string;
49
+ readonly cwd: string;
50
+ readonly url: string;
51
+ readonly credential: IngestCredential;
52
+ /** The worktree toplevel — the session bucket and half the binding key. */
53
+ readonly projectKey: string;
54
+ /** The redaction boundary (`confinementRoots`). A different value from `projectKey`, passed in, never re-derived. */
55
+ readonly redactionRoots: readonly string[];
56
+ readonly repoSlug: string;
57
+ readonly sessionId: string;
58
+ readonly transcriptPath: string;
59
+ /** The main transcript's size now. */
60
+ readonly eof: number;
61
+ /**
62
+ * Assert the session is over (`X-Session-Final`) and drain the rewrite spools. `finalize` always does. A backfill does
63
+ * only for a session that has been quiet long enough to be over, so a session still running is uploaded but not sealed.
64
+ */
65
+ readonly seal: boolean;
66
+ /**
67
+ * May this close a session this repo never captured (no state file)? `finalize` says no and checks first; backfill says
68
+ * yes, because sending the sessions that never fired a hook is exactly what it is for.
69
+ */
70
+ readonly allowNeverCaptured: boolean;
71
+ /**
72
+ * Send EVERY sub-agent stream before the main one, and stop BEFORE the main stream if one cannot go. `finalize` does one
73
+ * bounded pass, as a hook does (the rest rides a later invocation); a backfill has no later invocation for an old session,
74
+ * and sealing before the sub-agent streams arrive "would seal a poorer turn".
75
+ */
76
+ readonly completeSubagents: boolean;
77
+ /** The wall-clock budget for the sends of this close, ms. Default `SEND_BUDGET_MS`. A test seam. */
78
+ readonly sendBudgetMs?: number;
79
+ }
80
+ /** How a close ended. The caller turns it into words; this function prints nothing. */
81
+ export type CloseOutcome =
82
+ /** A fatal class fired earlier for this credential. No request was made. */
83
+ {
84
+ readonly kind: "stopped";
85
+ }
86
+ /** `seal` was false and the main stream is in: delivered, or already was. */
87
+ | {
88
+ readonly kind: "delivered";
89
+ readonly delivery: Delivery;
90
+ }
91
+ /** The server confirmed the close. `setAsidePairs` is what the drain set aside, for the caller's ONE line. */
92
+ | {
93
+ readonly kind: "sealed" | "already";
94
+ readonly delivery: Delivery;
95
+ readonly setAsidePairs: number;
96
+ }
97
+ /** 2xx and the server refused the assertion. */
98
+ | {
99
+ readonly kind: "refused";
100
+ readonly delivery: Delivery;
101
+ }
102
+ /** 2xx and no acknowledgement: an older server. Delivered, NOT closed. */
103
+ | {
104
+ readonly kind: "unacknowledged";
105
+ readonly delivery: Delivery;
106
+ }
107
+ /** The main stream did not go. `delivery` says why (`later`, `never`, no repo identity). */
108
+ | {
109
+ readonly kind: "not-delivered";
110
+ readonly delivery: Delivery;
111
+ }
112
+ /** `completeSubagents`: a sub-agent stream was held, so the main stream was NOT sent and nothing was sealed. */
113
+ | {
114
+ readonly kind: "subagents-held";
115
+ readonly delivery: Delivery;
116
+ }
117
+ /** `allowNeverCaptured` was false and this repo has no state for the session. Nothing was sent. */
118
+ | {
119
+ readonly kind: "never-captured";
120
+ };
121
+ /**
122
+ * Close ONE session: sub-agent streams first, then the main stream, then (when `seal`) the assertion and the bounded drain.
123
+ *
124
+ * Extracted from `finalize` (design review D5 · A) so that `vibecommit backfill` closes an old session exactly the way the
125
+ * verb that asserts a session is over does. A second copy of this order would be a second place for "sub-agents first" to be
126
+ * forgotten, and the seal it ends in cannot be reopened.
127
+ *
128
+ * It PRINTS nothing and reads no flag: `finalize` and `backfill` each turn the outcome into their own words and exit codes.
129
+ */
130
+ export declare function closeSession(input: CloseSessionInput): Promise<CloseOutcome>;