@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.
- package/README.md +191 -9
- package/dist/account_not_here.d.ts +15 -0
- package/dist/account_not_here.js +25 -0
- package/dist/account_not_here.js.map +1 -0
- package/dist/agent_hooks.d.ts +8 -0
- package/dist/agent_hooks.js +31 -1
- package/dist/agent_hooks.js.map +1 -1
- package/dist/agents/claude_code.d.ts +34 -0
- package/dist/agents/claude_code.js +141 -8
- package/dist/agents/claude_code.js.map +1 -1
- package/dist/agents/codex_cli.d.ts +13 -0
- package/dist/agents/codex_cli.js +241 -2
- package/dist/agents/codex_cli.js.map +1 -1
- package/dist/agents/cursor.d.ts +34 -0
- package/dist/agents/cursor.js +115 -1
- package/dist/agents/cursor.js.map +1 -1
- package/dist/agents/session_listing.d.ts +29 -0
- package/dist/agents/session_listing.js +49 -0
- package/dist/agents/session_listing.js.map +1 -0
- package/dist/agents/types.d.ts +118 -8
- package/dist/agents/types.js +17 -3
- package/dist/agents/types.js.map +1 -1
- package/dist/commands/approval_pending.d.ts +9 -0
- package/dist/commands/approval_pending.js +23 -0
- package/dist/commands/approval_pending.js.map +1 -0
- package/dist/commands/auth.d.ts +7 -0
- package/dist/commands/auth.js +52 -11
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/backfill.d.ts +160 -0
- package/dist/commands/backfill.js +748 -0
- package/dist/commands/backfill.js.map +1 -0
- package/dist/commands/browser_credential.d.ts +6 -2
- package/dist/commands/browser_credential.js +34 -14
- package/dist/commands/browser_credential.js.map +1 -1
- package/dist/commands/connect.d.ts +146 -0
- package/dist/commands/connect.js +216 -117
- package/dist/commands/connect.js.map +1 -1
- package/dist/commands/connect_account.d.ts +135 -0
- package/dist/commands/connect_account.js +321 -0
- package/dist/commands/connect_account.js.map +1 -0
- package/dist/commands/connect_picker.d.ts +27 -0
- package/dist/commands/connect_picker.js +549 -0
- package/dist/commands/connect_picker.js.map +1 -0
- package/dist/commands/context.d.ts +16 -0
- package/dist/commands/context.js +27 -0
- package/dist/commands/context.js.map +1 -1
- package/dist/commands/credential_problem.d.ts +15 -4
- package/dist/commands/credential_problem.js +29 -22
- package/dist/commands/credential_problem.js.map +1 -1
- package/dist/commands/device_credential.d.ts +5 -1
- package/dist/commands/device_credential.js +17 -14
- package/dist/commands/device_credential.js.map +1 -1
- package/dist/commands/finalize.d.ts +95 -0
- package/dist/commands/finalize.js +249 -74
- package/dist/commands/finalize.js.map +1 -1
- package/dist/commands/finish_mint.d.ts +30 -6
- package/dist/commands/finish_mint.js +26 -6
- package/dist/commands/finish_mint.js.map +1 -1
- package/dist/commands/report.js +38 -30
- package/dist/commands/report.js.map +1 -1
- package/dist/commands/scan.d.ts +162 -0
- package/dist/commands/scan.js +507 -0
- package/dist/commands/scan.js.map +1 -0
- package/dist/commands/status.d.ts +19 -1
- package/dist/commands/status.js +232 -26
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/status_hooks.d.ts +14 -0
- package/dist/commands/status_hooks.js +81 -0
- package/dist/commands/status_hooks.js.map +1 -0
- package/dist/commands/status_machine.d.ts +27 -0
- package/dist/commands/status_machine.js +210 -0
- package/dist/commands/status_machine.js.map +1 -0
- package/dist/commands/sync_reason.d.ts +17 -0
- package/dist/commands/sync_reason.js +25 -0
- package/dist/commands/sync_reason.js.map +1 -0
- package/dist/commands/why.js +44 -31
- package/dist/commands/why.js.map +1 -1
- package/dist/consent.d.ts +217 -0
- package/dist/consent.js +400 -1
- package/dist/consent.js.map +1 -1
- package/dist/copy/error_codes.d.ts +222 -0
- package/dist/copy/error_codes.js +105 -0
- package/dist/copy/error_codes.js.map +1 -0
- package/dist/copy/index.d.ts +2 -2
- package/dist/copy/index.js +2 -2
- package/dist/copy/index.js.map +1 -1
- package/dist/copy/strings.d.ts +617 -30
- package/dist/copy/strings.js +741 -36
- package/dist/copy/strings.js.map +1 -1
- package/dist/copy/time.d.ts +11 -0
- package/dist/copy/time.js +18 -0
- package/dist/copy/time.js.map +1 -1
- package/dist/credential.d.ts +5 -1
- package/dist/credential.js +2 -2
- package/dist/credential.js.map +1 -1
- package/dist/git.d.ts +43 -0
- package/dist/git.js +95 -0
- package/dist/git.js.map +1 -1
- package/dist/grants_sync.d.ts +165 -0
- package/dist/grants_sync.js +289 -0
- package/dist/grants_sync.js.map +1 -0
- package/dist/grants_verb.d.ts +70 -0
- package/dist/grants_verb.js +121 -0
- package/dist/grants_verb.js.map +1 -0
- package/dist/hooks/entry.d.ts +18 -1
- package/dist/hooks/entry.js +117 -14
- package/dist/hooks/entry.js.map +1 -1
- package/dist/hooks/post_commit.js +3 -3
- package/dist/hooks/post_commit.js.map +1 -1
- package/dist/hooks/post_rewrite.js +6 -4
- package/dist/hooks/post_rewrite.js.map +1 -1
- package/dist/hooks/session_grants.d.ts +59 -0
- package/dist/hooks/session_grants.js +91 -0
- package/dist/hooks/session_grants.js.map +1 -0
- package/dist/hooks/session_start.d.ts +114 -0
- package/dist/hooks/session_start.js +243 -0
- package/dist/hooks/session_start.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +76 -11
- package/dist/index.js.map +1 -1
- package/dist/install.d.ts +57 -0
- package/dist/install.js +54 -20
- package/dist/install.js.map +1 -1
- package/dist/json.d.ts +32 -9
- package/dist/json.js +35 -8
- package/dist/json.js.map +1 -1
- package/dist/machine_state.d.ts +52 -0
- package/dist/machine_state.js +63 -0
- package/dist/machine_state.js.map +1 -0
- package/dist/oauth/retire.d.ts +10 -0
- package/dist/oauth/retire.js +13 -0
- package/dist/oauth/retire.js.map +1 -1
- package/dist/oauth/session.d.ts +1 -0
- package/dist/org_pending.d.ts +52 -0
- package/dist/org_pending.js +109 -0
- package/dist/org_pending.js.map +1 -0
- package/dist/paths.d.ts +70 -0
- package/dist/paths.js +90 -0
- package/dist/paths.js.map +1 -1
- package/dist/pending_revoke.d.ts +117 -0
- package/dist/pending_revoke.js +233 -0
- package/dist/pending_revoke.js.map +1 -0
- package/dist/pending_revoke_file.d.ts +55 -0
- package/dist/pending_revoke_file.js +74 -0
- package/dist/pending_revoke_file.js.map +1 -0
- package/dist/picker.d.ts +208 -0
- package/dist/picker.js +526 -0
- package/dist/picker.js.map +1 -0
- package/dist/picker_checklist.d.ts +141 -0
- package/dist/picker_checklist.js +411 -0
- package/dist/picker_checklist.js.map +1 -0
- package/dist/policy.d.ts +70 -1
- package/dist/policy.js +68 -2
- package/dist/policy.js.map +1 -1
- package/dist/post.d.ts +91 -18
- package/dist/post.js +259 -27
- package/dist/post.js.map +1 -1
- package/dist/state.d.ts +6 -0
- package/dist/state.js +38 -1
- package/dist/state.js.map +1 -1
- package/dist/system_message.d.ts +32 -2
- package/dist/system_message.js +47 -5
- package/dist/system_message.js.map +1 -1
- package/dist/term.d.ts +28 -2
- package/dist/term.js +23 -2
- package/dist/term.js.map +1 -1
- package/dist/verb_help.d.ts +13 -0
- package/dist/verb_help.js +40 -0
- package/dist/verb_help.js.map +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +5 -9
package/dist/commands/status.js
CHANGED
|
@@ -24,29 +24,50 @@
|
|
|
24
24
|
* invented here: `CR-112` (W8) owns the five-absence grammar as one set, and
|
|
25
25
|
* adding a variant now is what that task exists to prevent.
|
|
26
26
|
*/
|
|
27
|
-
import { COMMANDS,
|
|
28
|
-
import {
|
|
27
|
+
import { AGENT_HOOKS, COMMANDS, FINALIZE, HELP, OFF, STATUS, URLS, relativeAge } from "../copy/index.js";
|
|
28
|
+
import { renderVerbHelp } from "../verb_help.js";
|
|
29
|
+
import { authCommandFor, channelCommand } from "../install.js";
|
|
29
30
|
import { credentialFingerprint } from "../post.js";
|
|
30
|
-
import {
|
|
31
|
+
import { GrantsUnreadableError, excludeSlug, grantsUnreadable, isCaptureAllowed, isLocalSlug, normalizeSlug, ownerOfSlug, readAccountState, readAllowList, readGrants, revokeProject, } from "../consent.js";
|
|
32
|
+
import { queueGrantOps } from "../grants_sync.js";
|
|
31
33
|
import { endDateText, endingSoon, metaFor } from "../credential_meta.js";
|
|
32
34
|
import { loadCredential, savedCredentialExists } from "../credential.js";
|
|
33
35
|
import { EXIT } from "../exit.js";
|
|
34
|
-
import { resolveRepoSlug } from "../git.js";
|
|
36
|
+
import { onceRepoSlug, remoteSlugOfCommonDir, resolveRepoSlug } from "../git.js";
|
|
35
37
|
import { emitJson } from "../json.js";
|
|
36
38
|
import { readInferredSkipped } from "../inferred_tally.js";
|
|
37
39
|
import { readPruneTally } from "../pending_prune.js";
|
|
38
40
|
import { resolveProjectKeys } from "../project.js";
|
|
39
41
|
import { commitsWaitingForRepo, heldAtEndForRepo, inferredUnacknowledgedForRepo, lastReceiptForRepo, lastSendForRepo, leanHeldForRepo, leanSessionsForRepo, openTailForRepo, stuckForRepo, stoppedForRepo, stuckSpoolLinesForRepo, writtenOffForRepo, } from "../state.js";
|
|
40
42
|
import { LABEL_GUTTER, WRAP_COLUMNS, glyph, labelled, paint, renderErrorBlock, tildePath, truncatePath, wrap, } from "../term.js";
|
|
41
|
-
import { credentialProblem, rejectedCredentialBlock } from "./credential_problem.js";
|
|
42
|
-
import {
|
|
43
|
+
import { credentialProblem, credentialProblemBlock, rejectedCredentialBlock } from "./credential_problem.js";
|
|
44
|
+
import { captureBasis } from "../machine_state.js";
|
|
45
|
+
import { accountRowsFor, machineStatus } from "./status_machine.js";
|
|
46
|
+
import { approvalPendingBlock } from "./approval_pending.js";
|
|
47
|
+
import { readOrgPending } from "../org_pending.js";
|
|
48
|
+
import { writeFailure, writeLines } from "./context.js";
|
|
49
|
+
import { stoppedSyncReason } from "./sync_reason.js";
|
|
50
|
+
import { hookStateLines } from "./status_hooks.js";
|
|
51
|
+
import { syncForVerb } from "../grants_verb.js";
|
|
43
52
|
/** §10.3 indents the gutter rows four columns under the state line. */
|
|
44
53
|
const ROW_INDENT = 4;
|
|
45
|
-
|
|
54
|
+
/**
|
|
55
|
+
* The real `status`: one bounded sync, then the screen (slice 2, S4). `status` stays a synchronous renderer over local files —
|
|
56
|
+
* the sync only refreshes the files it reads — so every other caller keeps its synchronous contract.
|
|
57
|
+
*/
|
|
58
|
+
export async function statusVerb(ctx, argv, deps) {
|
|
59
|
+
// `--help` reads and writes nothing, the network included.
|
|
60
|
+
if (argv.includes("--help") || argv.includes("-h"))
|
|
61
|
+
return status(ctx, argv);
|
|
62
|
+
const sync = await syncForVerb(ctx, argv.includes("--json"), deps);
|
|
63
|
+
return status(ctx, argv, sync);
|
|
64
|
+
}
|
|
65
|
+
export function status(ctx, argv = [], sync = { kind: "skipped" }) {
|
|
46
66
|
// `TODOS[184]`. Check-first, before any git/credential/consent resolution — same ordering principle
|
|
47
67
|
// every other verb's `--help` check uses. Reads and writes nothing.
|
|
48
68
|
if (argv.includes("--help") || argv.includes("-h")) {
|
|
49
|
-
|
|
69
|
+
const helpVerb = "status"; // an identifier, not a literal, at the writer: `copy-inline-literals` follows argument positions
|
|
70
|
+
writeLines(ctx.stdout, renderVerbHelp(helpVerb));
|
|
50
71
|
return EXIT.ok;
|
|
51
72
|
}
|
|
52
73
|
// ⛔ THIS SCREEN USES BOTH ROLES AT ONCE (`D184 §1`), which is why the whole
|
|
@@ -55,16 +76,18 @@ export function status(ctx, argv = []) {
|
|
|
55
76
|
// REPO IDENTITY and stay on the worktree toplevel. The `--json` field is
|
|
56
77
|
// literally named `toplevel`, so moving it would make the document lie.
|
|
57
78
|
const keys = resolveProjectKeys(ctx.cwd);
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
return
|
|
61
|
-
}
|
|
79
|
+
// 0.7.0, D6 · 2A: from a folder that is not a work tree `status` answers for the MACHINE, instead of "Not a git repository".
|
|
80
|
+
if (keys === null)
|
|
81
|
+
return machineStatus(ctx, argv, sync);
|
|
62
82
|
const projectKey = keys.worktree;
|
|
63
83
|
// ⛔ CONSENT STATE, on the common dir. A worktree of a consented clone must
|
|
64
84
|
// report ON here, because the hook that runs there is now admitted — a
|
|
65
85
|
// `status` still keyed on the toplevel would tell that user they are
|
|
66
86
|
// disconnected while their session was being captured.
|
|
67
|
-
|
|
87
|
+
//
|
|
88
|
+
// ⛔ THE GATE IS `isCaptureAllowed` (0.7.0): the same decision the hooks make, so `status` cannot say "on" over a
|
|
89
|
+
// clone the hook is refusing (an excluded slug, an unreadable `grants.json`) or "off" over one it is admitting.
|
|
90
|
+
const on = isCaptureAllowed(ctx.home, keys, onceRepoSlug(projectKey));
|
|
68
91
|
// ⛔ `ok` IS A HEALTH CLAIM, NOT ONLY A CONSENT ONE (`CR-228`, `TODOS[142]`).
|
|
69
92
|
// The line beside the glyph is consent state and stays so; the glyph is what a
|
|
70
93
|
// user reads as "fine". It printed `ok` over a session that had written off
|
|
@@ -124,7 +147,11 @@ export function status(ctx, argv = []) {
|
|
|
124
147
|
// from what the hook last heard (`X-Credential-Expires`), so it is as fresh as the last capture.
|
|
125
148
|
const endsAt = fingerprint === null ? null : endingSoon(metaFor(ctx.home, fingerprint), ctx.now().getTime());
|
|
126
149
|
const endsText = endsAt === null ? null : endDateText(endsAt);
|
|
150
|
+
// 0.7.0: this repo's own last upload was refused because its org has not approved capture (a hook's `later`, remembered
|
|
151
|
+
// by `org_pending.ts`). Raised only for a repo that is on, and cleared by the next delivery.
|
|
152
|
+
const orgPending = on ? readOrgPending(ctx.home, resolveRepoSlug(projectKey)) : null;
|
|
127
153
|
const kind = on &&
|
|
154
|
+
orgPending === null &&
|
|
128
155
|
stopped === null &&
|
|
129
156
|
endsText === null &&
|
|
130
157
|
writtenOff.gaps === 0 &&
|
|
@@ -135,9 +162,16 @@ export function status(ctx, argv = []) {
|
|
|
135
162
|
stuck.heldIdle.bytes === 0
|
|
136
163
|
? "ok"
|
|
137
164
|
: "warn";
|
|
165
|
+
// Slice 2 (S4): not on here, but the last synced account state grants it. One answer for the text row and the `--json` basis.
|
|
166
|
+
const accountOnly = !on && grantedOnAccountOnly(ctx.home, resolveRepoSlug(projectKey));
|
|
138
167
|
const lines = [
|
|
139
168
|
` ${paint(ctx.colour, kind, glyph(ctx.colour, kind))} ${paint(ctx.colour, "strong", on ? STATUS.onForRepo : STATUS.offForRepo)}`,
|
|
140
169
|
labelled(ROW_INDENT, STATUS.repoLabel, repoValue(ctx, projectKey)),
|
|
170
|
+
...(on
|
|
171
|
+
? [labelled(ROW_INDENT, STATUS.basisLabel, basisValue(ctx, projectKey))]
|
|
172
|
+
: accountOnly
|
|
173
|
+
? [labelled(ROW_INDENT, STATUS.basisLabel, STATUS.basisAccountOnly)]
|
|
174
|
+
: []),
|
|
141
175
|
];
|
|
142
176
|
// Question 2: the last successful send FOR THIS REPO. `status` has no
|
|
143
177
|
// session_id — it is interactive — so this is a scan of the repo's session
|
|
@@ -147,6 +181,8 @@ export function status(ctx, argv = []) {
|
|
|
147
181
|
lines.push(labelled(ROW_INDENT, STATUS.lastSuccessLabel, STATUS.lastSuccessValue(relativeAge(lastSend.at, ctx.now().getTime()), lastSend.seq)));
|
|
148
182
|
}
|
|
149
183
|
lines.push(labelled(ROW_INDENT, STATUS.dashboardLabel, paint(ctx.colour, "accent", URLS.dashboard)));
|
|
184
|
+
// F6: the account rows, after the repo's own rows, only when there is something to say.
|
|
185
|
+
lines.push(...accountRowsFor(ctx, sync));
|
|
150
186
|
// §13.3 — `--json` emits NOTHING BUT the JSON document on stdout, so the
|
|
151
187
|
// screen assembled above is DISCARDED rather than printed beside it.
|
|
152
188
|
//
|
|
@@ -161,12 +197,21 @@ export function status(ctx, argv = []) {
|
|
|
161
197
|
// `outcome` carries the on/off distinction the glyph carries on screen.
|
|
162
198
|
if (argv.includes("--json")) {
|
|
163
199
|
if (load.kind !== "ok" && load.kind !== "absent") {
|
|
164
|
-
|
|
200
|
+
writeFailure(ctx, credentialProblemBlock(load, authCommand), "status");
|
|
165
201
|
return EXIT.failure;
|
|
166
202
|
}
|
|
167
203
|
emitJson(ctx.stdout, "status", on ? "on" : "off", {
|
|
204
|
+
scope: "repo",
|
|
168
205
|
repo: resolveRepoSlug(projectKey),
|
|
169
206
|
toplevel: projectKey,
|
|
207
|
+
// 0.7.0, D6: why this repo is on — `owner`, `repo` or `per_clone`; `null` when it is off. A contract change,
|
|
208
|
+
// recorded in `json-read-verbs.test.ts`.
|
|
209
|
+
// Slice 2 (S4): `"account_not_here"` when the repo is not on but the account grants it (the machine document's
|
|
210
|
+
// `account_not_here` key, spelled the same). A new value of an existing key: a contract change for the 0.8.0 release list.
|
|
211
|
+
basis: on ? basisKind(ctx, projectKey) : accountOnly ? "account_not_here" : null,
|
|
212
|
+
// 0.7.0: `{ at_ms }` when this repo's last upload was refused because its org has not approved capture, else `null`.
|
|
213
|
+
// A contract change, recorded in `json-read-verbs.test.ts`.
|
|
214
|
+
org_pending: orgPending === null ? null : { at_ms: orgPending.at },
|
|
170
215
|
last_send: lastSend === null ? null : { at_ms: lastSend.at, seq: lastSend.seq },
|
|
171
216
|
dashboard: URLS.dashboard,
|
|
172
217
|
// `CR-216/U3`. A SOURCE NAME, never the credential — `IngestCredential.source`
|
|
@@ -229,7 +274,7 @@ export function status(ctx, argv = []) {
|
|
|
229
274
|
stuckLines.push("", ...wrap(STATUS.liveStuck(stuck.liveStuck.bytes, stuck.liveStuck.sessions, stuckSpoolLines.liveCommits, stuck.liveStuck.ids), 2));
|
|
230
275
|
}
|
|
231
276
|
if (stuck.heldIdle.bytes > 0) {
|
|
232
|
-
stuckLines.push("", ...wrap(STATUS.heldIdle(stuck.heldIdle.bytes, stuck.heldIdle.sessions, stuckSpoolLines.idleCommits, stuck.heldIdle.ids), 2));
|
|
277
|
+
stuckLines.push("", ...wrap(STATUS.heldIdle(stuck.heldIdle.bytes, stuck.heldIdle.sessions, stuckSpoolLines.idleCommits, channelCommand(ctx.env, ctx.selfPath, FINALIZE.commandSessionBase), stuck.heldIdle.ids), 2));
|
|
233
278
|
}
|
|
234
279
|
const stuckCommitsTotal = stuckSpoolLines.liveCommits + stuckSpoolLines.idleCommits;
|
|
235
280
|
// Absence is a SENTENCE, not a blank row. Triggered on the send record rather
|
|
@@ -258,7 +303,7 @@ export function status(ctx, argv = []) {
|
|
|
258
303
|
// `TODOS[145]`/`[146]`: the consequence first (a session is over and its last turn never closed), then the
|
|
259
304
|
// neutral fact (commits are waiting for a turn). Both omitted when zero — absence here is the healthy case.
|
|
260
305
|
if (openTail.ids.length > 0) {
|
|
261
|
-
lines.push("", ...wrap(STATUS.openTail(openTail.ids.length), 2));
|
|
306
|
+
lines.push("", ...wrap(STATUS.openTail(openTail.ids.length, channelCommand(ctx.env, ctx.selfPath, COMMANDS.finalize)), 2));
|
|
262
307
|
}
|
|
263
308
|
else if (waiting - stuckCommitsTotal > 0) {
|
|
264
309
|
lines.push("", ...wrap(STATUS.commitsWaiting(waiting - stuckCommitsTotal), 2));
|
|
@@ -295,6 +340,20 @@ export function status(ctx, argv = []) {
|
|
|
295
340
|
standing: true,
|
|
296
341
|
}));
|
|
297
342
|
}
|
|
343
|
+
// 0.7.0. Loud, because the hook that is refusing cannot say why: an unreadable `grants.json` stops every clone
|
|
344
|
+
// that has a remote, whatever `projects.json` holds.
|
|
345
|
+
if (grantsUnreadable(ctx.home)) {
|
|
346
|
+
lines.push("", ...wrap(STATUS.grantsUnreadable(channelCommand(ctx.env, ctx.selfPath, COMMANDS.connect)), 2));
|
|
347
|
+
}
|
|
348
|
+
// 0.7.0, `SessionStart`: a missing registration (npm channel only), commit hooks that are off, or `core.hooksPath`.
|
|
349
|
+
lines.push(...hookStateLines(ctx, projectKey, on));
|
|
350
|
+
// §10.2's held beat, with its existing copy, for the repo whose own upload got the 403. Not a new sentence.
|
|
351
|
+
if (orgPending !== null) {
|
|
352
|
+
lines.push("", ...approvalPendingBlock(ctx.colour, resolveRepoSlug(projectKey), orgPending.ownersNotified));
|
|
353
|
+
}
|
|
354
|
+
// Codex runs no user-level hook until the user trusts it. Said, never detected (VQ + Alexander, 2026-10-24).
|
|
355
|
+
if (on)
|
|
356
|
+
lines.push("", ...wrap(AGENT_HOOKS.codexTrust, 2));
|
|
298
357
|
lines.push("", ...actionLines(ctx, on));
|
|
299
358
|
writeLines(ctx.stdout, lines);
|
|
300
359
|
return on ? EXIT.ok : EXIT.notConnected;
|
|
@@ -330,6 +389,35 @@ function repoValue(ctx, toplevel) {
|
|
|
330
389
|
}
|
|
331
390
|
return value;
|
|
332
391
|
}
|
|
392
|
+
/**
|
|
393
|
+
* Slice 2 (S4), brief §3.3: this repo is NOT on here, but the last synced account state grants it (the repo, or its owner) and
|
|
394
|
+
* neither the account nor this machine has turned it off. The account never admits a repo by itself (R3-22), so the row names
|
|
395
|
+
* the gap and the fix row below it is `connect`. It does not change the exit code: a repo that is not on is `notConnected`.
|
|
396
|
+
*/
|
|
397
|
+
function grantedOnAccountOnly(home, slug) {
|
|
398
|
+
if (isLocalSlug(slug))
|
|
399
|
+
return false;
|
|
400
|
+
const name = normalizeSlug(slug);
|
|
401
|
+
const account = readAccountState(home).account;
|
|
402
|
+
if (account === null)
|
|
403
|
+
return false;
|
|
404
|
+
const read = readGrants(home);
|
|
405
|
+
if (read.kind === "ok" && read.grants.excluded.includes(name))
|
|
406
|
+
return false;
|
|
407
|
+
if (account.excluded.includes(name))
|
|
408
|
+
return false;
|
|
409
|
+
return account.repos.includes(name) || account.owners.includes(ownerOfSlug(name));
|
|
410
|
+
}
|
|
411
|
+
/** The `basis` row's value (D6): which of the three reasons admits this repo. */
|
|
412
|
+
function basisValue(ctx, projectKey) {
|
|
413
|
+
const basis = captureBasis(ctx.home, resolveRepoSlug(projectKey));
|
|
414
|
+
return basis.kind === "owner" ? STATUS.basisOwner(basis.owner) : basis.kind === "repo" ? STATUS.basisRepo : STATUS.basisClone;
|
|
415
|
+
}
|
|
416
|
+
/** The `--json` spelling of the same three reasons. */
|
|
417
|
+
function basisKind(ctx, projectKey) {
|
|
418
|
+
const basis = captureBasis(ctx.home, resolveRepoSlug(projectKey));
|
|
419
|
+
return basis.kind === "clone" ? "per_clone" : basis.kind;
|
|
420
|
+
}
|
|
333
421
|
/**
|
|
334
422
|
* The two trailing actions, aligned as one pair — §10.3 draws their values in a
|
|
335
423
|
* shared column, which only holds if both labels pad to the longer of the two.
|
|
@@ -340,11 +428,11 @@ function repoValue(ctx, toplevel) {
|
|
|
340
428
|
function actionLines(ctx, on) {
|
|
341
429
|
const pairs = on
|
|
342
430
|
? [
|
|
343
|
-
[STATUS.turnOffLabel, COMMANDS.off],
|
|
431
|
+
[STATUS.turnOffLabel, channelCommand(ctx.env, ctx.selfPath, COMMANDS.off)],
|
|
344
432
|
[STATUS.revokeLabel, URLS.settings],
|
|
345
433
|
]
|
|
346
434
|
: [
|
|
347
|
-
[STATUS.fixCommandLabel, COMMANDS.connect],
|
|
435
|
+
[STATUS.fixCommandLabel, channelCommand(ctx.env, ctx.selfPath, COMMANDS.connect)],
|
|
348
436
|
[STATUS.revokeLabel, URLS.settings],
|
|
349
437
|
];
|
|
350
438
|
const width = Math.max(...pairs.map(([label]) => label.length));
|
|
@@ -361,38 +449,156 @@ function actionLines(ctx, on) {
|
|
|
361
449
|
* coupling. If a second global flag is ever added at `index.ts`'s site, add it here too.
|
|
362
450
|
*/
|
|
363
451
|
const OFF_RECOGNIZED_GLOBAL_FLAGS = ["--no-color"];
|
|
364
|
-
|
|
452
|
+
function offLocal(ctx, argv) {
|
|
365
453
|
// `TODOS[184]`. `off` used to take no `argv` at all, so EVERY trailing token — including `--help`
|
|
366
454
|
// landing here by accident — silently revoked consent (measured on 0.4.3 and 0.4.4 alike). `--help`/
|
|
367
455
|
// `-h` print help and change nothing; any other argument is refused the same way, also changing
|
|
368
456
|
// nothing — a revoke must never run on an argument this verb did not parse.
|
|
369
457
|
if (argv.includes("--help") || argv.includes("-h")) {
|
|
370
458
|
writeLines(ctx.stdout, [HELP.commands.off]);
|
|
371
|
-
return EXIT.ok;
|
|
459
|
+
return { kind: "exit", code: EXIT.ok };
|
|
372
460
|
}
|
|
373
461
|
// `--no-color` is a global flag 0.4.4's `off` (which parsed no argv at all) tolerated by construction;
|
|
374
462
|
// every OTHER argument (including `--json`, which `off` has no mode for) still refuses.
|
|
375
463
|
const rest = argv.filter((arg) => !OFF_RECOGNIZED_GLOBAL_FLAGS.includes(arg));
|
|
376
464
|
if (rest.length > 0) {
|
|
377
|
-
writeLines(ctx.stderr, renderErrorBlock({ kind: "bad", what: OFF.unrecognizedArgWhat, why: [OFF.unrecognizedArgWhy] }, ctx.colour));
|
|
378
|
-
return EXIT.usage;
|
|
465
|
+
writeLines(ctx.stderr, renderErrorBlock({ kind: "bad", code: "UNRECOGNIZED_ARGUMENT", what: OFF.unrecognizedArgWhat, why: [OFF.unrecognizedArgWhy] }, ctx.colour));
|
|
466
|
+
return { kind: "exit", code: EXIT.usage };
|
|
379
467
|
}
|
|
380
468
|
const keys = resolveProjectKeys(ctx.cwd);
|
|
381
469
|
if (keys === null) {
|
|
382
|
-
|
|
383
|
-
|
|
470
|
+
// D31 · 25B. Outside a work tree there is no repository to turn off, and the picker is where an owner or
|
|
471
|
+
// another repo is unticked. Exit 2: this is the verb used wrongly, not a failure of the machine.
|
|
472
|
+
writeLines(ctx.stderr, renderErrorBlock({
|
|
473
|
+
kind: "bad",
|
|
474
|
+
code: "OFF_NEEDS_REPO",
|
|
475
|
+
what: OFF.outsideRepoWhat,
|
|
476
|
+
why: [],
|
|
477
|
+
fixLabel: OFF.outsideRepoFixLabel,
|
|
478
|
+
fixes: [channelCommand(ctx.env, ctx.selfPath, COMMANDS.connect)],
|
|
479
|
+
}, ctx.colour));
|
|
480
|
+
return { kind: "exit", code: EXIT.usage };
|
|
384
481
|
}
|
|
482
|
+
const slug = normalizeSlug(resolveRepoSlug(keys.worktree));
|
|
483
|
+
// Asked BEFORE anything is revoked: "was it on" decides whether there is an exclusion to record at all, and the
|
|
484
|
+
// answer after the revoke would always be no.
|
|
485
|
+
const wasOn = isCaptureAllowed(ctx.home, keys, slug);
|
|
385
486
|
// ⛔ THE REVOKE SIDE, AND IT MUST DELETE THE KEY `connect` WROTE (`D184 §9`).
|
|
386
487
|
// `revokeProject` deletes by exact string and reports `false` when the key is
|
|
387
488
|
// absent — so a revoke still keyed on the toplevel would find nothing, print
|
|
388
489
|
// "already off", and LEAVE THE GRANT IN PLACE. The user believes they
|
|
389
490
|
// withdrew consent; capture continues. That is the worse direction of this
|
|
390
491
|
// same bug, and it is the second mutation the cells below pin.
|
|
391
|
-
|
|
492
|
+
let changed = revokeProject(ctx.home, keys.consent);
|
|
493
|
+
if (isLocalSlug(slug)) {
|
|
494
|
+
// No remote, no identity to turn off but this clone's own: 0.6.x behaviour, byte for byte.
|
|
495
|
+
writeLines(ctx.stdout, [
|
|
496
|
+
...wrap(changed ? OFF.done : OFF.alreadyOff, 2),
|
|
497
|
+
...wrap(OFF.note, 2),
|
|
498
|
+
]);
|
|
499
|
+
return { kind: "exit", code: EXIT.ok };
|
|
500
|
+
}
|
|
501
|
+
// ⛔ A repo with a remote is turned off BY SLUG, so the exclusion does not depend on `grants.json` alone: every
|
|
502
|
+
// OTHER clone on this machine whose consent survives in `projects.json` and names the same repo loses it too.
|
|
503
|
+
// An entry whose directory is gone or has no readable remote is unknown, and unknown matches nothing.
|
|
504
|
+
for (const other of Object.keys(readAllowList(ctx.home))) {
|
|
505
|
+
const otherSlug = remoteSlugOfCommonDir(other);
|
|
506
|
+
if (otherSlug !== null && normalizeSlug(otherSlug) === slug) {
|
|
507
|
+
changed = revokeProject(ctx.home, other) || changed;
|
|
508
|
+
}
|
|
509
|
+
}
|
|
510
|
+
// An unreadable `grants.json` reads as "not on" above (it denies), but the user's `off` still has to be recorded, or
|
|
511
|
+
// be reported as not recorded: `excludeSlug` throws on it rather than rewrite a file whose exclusions it cannot see.
|
|
512
|
+
//
|
|
513
|
+
// Slice 2: a repo the ACCOUNT has turned off is not "on" here either (`account.excluded` denies), yet the user running `off`
|
|
514
|
+
// in it is asking for it to be off on THIS machine too, so that is recorded as well.
|
|
515
|
+
const accountWasOff = readAccountState(ctx.home).account?.excluded.includes(slug) === true;
|
|
516
|
+
let recorded = false;
|
|
517
|
+
if (wasOn || accountWasOff || grantsUnreadable(ctx.home)) {
|
|
518
|
+
try {
|
|
519
|
+
changed = excludeSlug(ctx.home, slug) || changed;
|
|
520
|
+
recorded = true;
|
|
521
|
+
}
|
|
522
|
+
catch (error) {
|
|
523
|
+
if (!(error instanceof GrantsUnreadableError))
|
|
524
|
+
throw error;
|
|
525
|
+
// Fail closed already holds (an unreadable file denies this clone), and the clones' own consent is withdrawn
|
|
526
|
+
// above. What is missing is the record, and a rewrite would drop exclusions we cannot see.
|
|
527
|
+
writeLines(ctx.stderr, renderErrorBlock({
|
|
528
|
+
kind: "bad",
|
|
529
|
+
code: "GRANTS_UNREADABLE",
|
|
530
|
+
what: OFF.grantsUnreadableWhat,
|
|
531
|
+
why: [OFF.grantsUnreadableWhy],
|
|
532
|
+
fixLabel: OFF.grantsUnreadableFixLabel,
|
|
533
|
+
fixes: [channelCommand(ctx.env, ctx.selfPath, COMMANDS.off)],
|
|
534
|
+
}, ctx.colour));
|
|
535
|
+
return { kind: "exit", code: EXIT.failure };
|
|
536
|
+
}
|
|
537
|
+
}
|
|
538
|
+
return { kind: "slug", slug, changed, recorded, accountWasOff };
|
|
539
|
+
}
|
|
540
|
+
/** `off`, local only: no credential means no account to tell, and its words are the 0.7.0 ones byte for byte. */
|
|
541
|
+
export function off(ctx, argv = []) {
|
|
542
|
+
const local = offLocal(ctx, argv);
|
|
543
|
+
if (local.kind === "exit")
|
|
544
|
+
return local.code;
|
|
392
545
|
writeLines(ctx.stdout, [
|
|
393
|
-
...wrap(changed ? OFF.
|
|
546
|
+
...wrap(local.changed ? OFF.doneSlug(local.slug) : OFF.alreadyOff, 2),
|
|
394
547
|
...wrap(OFF.note, 2),
|
|
395
548
|
]);
|
|
396
549
|
return EXIT.ok;
|
|
397
550
|
}
|
|
551
|
+
/**
|
|
552
|
+
* The real `off` (slice 2, S4, brief §2 and §5): the local turn-off first, then — on a machine that has a credential — the
|
|
553
|
+
* exclusion is queued for the account and synced once (3 s, silent on failure; a failed write stays queued and is retried by
|
|
554
|
+
* the next verb). What it says depends on how far the account got:
|
|
555
|
+
*
|
|
556
|
+
* - synced: "…and on your other machines once they sync." plus, if any of them have not caught up, how many keep capturing
|
|
557
|
+
* - not: the local line, and "Stopped here. Your other machines don't know yet; it will retry."
|
|
558
|
+
*
|
|
559
|
+
* A machine with no credential (never connected, or a pre-0.8.0 per-clone consent only) has no account, and says what 0.7.0 said.
|
|
560
|
+
*/
|
|
561
|
+
export async function offVerb(ctx, argv, deps) {
|
|
562
|
+
const local = offLocal(ctx, argv);
|
|
563
|
+
if (local.kind === "exit")
|
|
564
|
+
return local.code;
|
|
565
|
+
const { slug, changed, recorded, accountWasOff } = local;
|
|
566
|
+
const hasCredential = loadCredential({ env: ctx.env, home: ctx.home }).kind !== "absent";
|
|
567
|
+
if (!hasCredential) {
|
|
568
|
+
writeLines(ctx.stdout, [...wrap(changed ? OFF.doneSlug(slug) : OFF.alreadyOff, 2), ...wrap(OFF.note, 2)]);
|
|
569
|
+
return EXIT.ok;
|
|
570
|
+
}
|
|
571
|
+
// Queued BEFORE the sync, so a sync that cannot happen (offline, a first sync waiting for a terminal) loses nothing.
|
|
572
|
+
if (recorded)
|
|
573
|
+
queueGrantOps(ctx.home, [{ op: "exclude", kind: "repo", value: slug }], ctx.now());
|
|
574
|
+
const sync = await syncForVerb(ctx, false, deps);
|
|
575
|
+
const synced = sync.kind === "ran" && sync.result.kind === "synced" ? sync.result : null;
|
|
576
|
+
const lines = [];
|
|
577
|
+
if (!changed) {
|
|
578
|
+
lines.push(...wrap(OFF.alreadyOff, 2));
|
|
579
|
+
}
|
|
580
|
+
else if (accountWasOff) {
|
|
581
|
+
lines.push(...wrap(OFF.alreadyOffAccount, 2));
|
|
582
|
+
}
|
|
583
|
+
else {
|
|
584
|
+
lines.push(...wrap(synced !== null ? OFF.doneSlugAccount(slug) : OFF.doneSlug(slug), 2));
|
|
585
|
+
}
|
|
586
|
+
if (synced !== null && changed && !accountWasOff && synced.unsyncedMachines > 0) {
|
|
587
|
+
lines.push(...wrap(OFF.unsyncedOthers(synced.unsyncedMachines), 2));
|
|
588
|
+
}
|
|
589
|
+
if (synced === null && recorded) {
|
|
590
|
+
// "it will retry" is true only of a write that could not be sent or was not attempted; a 400, a 401, a body over the cap or an
|
|
591
|
+
// unreadable `grants.json` stops it ("0.8.0 truth fixes" F5), and the sentence must not promise a retry that will fail the same way.
|
|
592
|
+
const stopped = sync.kind === "ran" &&
|
|
593
|
+
(sync.result.kind === "rejected" || sync.result.kind === "unauthorized" || sync.result.kind === "too-large" || sync.result.kind === "unreadable");
|
|
594
|
+
lines.push(...wrap(stopped ? OFF.notSentStopped : OFF.notSentYet, 2));
|
|
595
|
+
// R2-1: say WHY it stopped, as `connect` does (a 400: the account didn't accept it; a 401: the credential is no longer accepted).
|
|
596
|
+
// An over-cap body or an unreadable file has no reason line of its own: "Stopped here …" alone.
|
|
597
|
+
if (stopped && sync.kind === "ran")
|
|
598
|
+
lines.push(...(stoppedSyncReason(ctx, sync.result) ?? []));
|
|
599
|
+
}
|
|
600
|
+
lines.push(...wrap(OFF.note, 2));
|
|
601
|
+
writeLines(ctx.stdout, lines);
|
|
602
|
+
return EXIT.ok;
|
|
603
|
+
}
|
|
398
604
|
//# sourceMappingURL=status.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The hook facts `status` states about the clone it is run in, and the agents it is run for (0.7.0).
|
|
3
|
+
*
|
|
4
|
+
* Read-only by construction: nothing here writes, spawns a long-lived process or reaches the network. `status`
|
|
5
|
+
* reports and `connect` repairs — a settings file or a git hook is never changed from a read verb.
|
|
6
|
+
*
|
|
7
|
+
* Three facts, each said once and only when it is true:
|
|
8
|
+
* - an agent whose config holds our hooks but not `SessionStart` (npm channel only; T21);
|
|
9
|
+
* - a captured clone whose commit hooks are off, with `connect` named as the fix (D4 · A);
|
|
10
|
+
* - a captured clone under `core.hooksPath`, with the shipped runnable fix block (state 7 sends users here).
|
|
11
|
+
*/
|
|
12
|
+
import type { CommandContext } from "./context.js";
|
|
13
|
+
/** The lines to add to `status`, already wrapped, each block preceded by a blank line. */
|
|
14
|
+
export declare function hookStateLines(ctx: CommandContext, toplevel: string, captured: boolean): string[];
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The hook facts `status` states about the clone it is run in, and the agents it is run for (0.7.0).
|
|
3
|
+
*
|
|
4
|
+
* Read-only by construction: nothing here writes, spawns a long-lived process or reaches the network. `status`
|
|
5
|
+
* reports and `connect` repairs — a settings file or a git hook is never changed from a read verb.
|
|
6
|
+
*
|
|
7
|
+
* Three facts, each said once and only when it is true:
|
|
8
|
+
* - an agent whose config holds our hooks but not `SessionStart` (npm channel only; T21);
|
|
9
|
+
* - a captured clone whose commit hooks are off, with `connect` named as the fix (D4 · A);
|
|
10
|
+
* - a captured clone under `core.hooksPath`, with the shipped runnable fix block (state 7 sends users here).
|
|
11
|
+
*/
|
|
12
|
+
import { readFileSync } from "node:fs";
|
|
13
|
+
import { agentPresent, registrationsFor } from "../agent_install.js";
|
|
14
|
+
import { hasRegistration } from "../agent_hooks.js";
|
|
15
|
+
import { DIALECTS } from "../agents/registry.js";
|
|
16
|
+
import { COMMANDS, COMMIT_HOOK, STATUS } from "../copy/index.js";
|
|
17
|
+
import { channelCommand, installChannel, inspectCaptureHooks } from "../install.js";
|
|
18
|
+
import { renderErrorBlock, wrap } from "../term.js";
|
|
19
|
+
/** What each agent is called in prose. The ids are wire values, not labels. */
|
|
20
|
+
const AGENT_LABELS = {
|
|
21
|
+
"claude-code": "Claude Code",
|
|
22
|
+
"codex-cli": "Codex CLI",
|
|
23
|
+
cursor: "Cursor",
|
|
24
|
+
};
|
|
25
|
+
/** Agents on this machine that hold our hooks but no `SessionStart`. Empty on the plugin channel. */
|
|
26
|
+
function agentsMissingSessionStart(ctx) {
|
|
27
|
+
if (installChannel(ctx.env, ctx.selfPath).kind === "plugin")
|
|
28
|
+
return [];
|
|
29
|
+
const missing = [];
|
|
30
|
+
for (const dialect of DIALECTS) {
|
|
31
|
+
if (!agentPresent(dialect, ctx.home, ctx.env))
|
|
32
|
+
continue;
|
|
33
|
+
let raw = null;
|
|
34
|
+
try {
|
|
35
|
+
raw = readFileSync(dialect.hookConfig.path(ctx.home, ctx.env), "utf8");
|
|
36
|
+
}
|
|
37
|
+
catch {
|
|
38
|
+
raw = null;
|
|
39
|
+
}
|
|
40
|
+
const registrations = registrationsFor(dialect, ctx.selfPath);
|
|
41
|
+
const ours = (event) => {
|
|
42
|
+
const registration = registrations.find((r) => r.event === event);
|
|
43
|
+
return registration !== undefined && hasRegistration(raw, dialect.hookConfig.shape, registration);
|
|
44
|
+
};
|
|
45
|
+
// An agent we were never connected to has none of ours and is not "missing" anything.
|
|
46
|
+
const connected = registrations.some((r) => ours(r.event));
|
|
47
|
+
if (connected && !ours(dialect.eventNames.SessionStart))
|
|
48
|
+
missing.push(dialect.id);
|
|
49
|
+
}
|
|
50
|
+
return missing;
|
|
51
|
+
}
|
|
52
|
+
/** The lines to add to `status`, already wrapped, each block preceded by a blank line. */
|
|
53
|
+
export function hookStateLines(ctx, toplevel, captured) {
|
|
54
|
+
const lines = [];
|
|
55
|
+
// ⛔ ONLY WHERE `connect` WOULD FIX IT. In a repo that is not captured, `connect`'s No exits before it registers
|
|
56
|
+
// any agent, so naming it as the fix would send the user to a command that changes nothing. (Machine-level
|
|
57
|
+
// `status` has no such restriction; it arrives with the picker.)
|
|
58
|
+
const missing = captured ? agentsMissingSessionStart(ctx) : [];
|
|
59
|
+
if (missing.length > 0) {
|
|
60
|
+
lines.push("", ...wrap(STATUS.sessionStartMissing(missing.map((id) => AGENT_LABELS[id]).join(", "), channelCommand(ctx.env, ctx.selfPath, COMMANDS.connect)), 2));
|
|
61
|
+
}
|
|
62
|
+
// The plugin ships no git hooks, so "commit hooks are off" would be a false alarm there.
|
|
63
|
+
if (captured && installChannel(ctx.env, ctx.selfPath).kind !== "plugin") {
|
|
64
|
+
const hooks = inspectCaptureHooks(toplevel);
|
|
65
|
+
if (hooks.kind === "off")
|
|
66
|
+
lines.push("", ...wrap(STATUS.commitHooksOff(channelCommand(ctx.env, ctx.selfPath, COMMANDS.connect)), 2));
|
|
67
|
+
else if (hooks.kind === "foreign")
|
|
68
|
+
lines.push("", ...wrap(STATUS.commitHooksForeign(channelCommand(ctx.env, ctx.selfPath, COMMANDS.connect)), 2));
|
|
69
|
+
else if (hooks.kind === "hooks-path") {
|
|
70
|
+
lines.push("", ...renderErrorBlock({
|
|
71
|
+
kind: "warn",
|
|
72
|
+
what: COMMIT_HOOK.hooksPathWhat,
|
|
73
|
+
why: [COMMIT_HOOK.hooksPathWhy(hooks.configured)],
|
|
74
|
+
fixLabel: COMMIT_HOOK.hooksPathFixLabel,
|
|
75
|
+
fixes: [COMMIT_HOOK.hooksPathFixUnset, COMMIT_HOOK.hooksPathFixManual(channelCommand(ctx.env, ctx.selfPath, COMMANDS.postCommit))],
|
|
76
|
+
}, ctx.colour));
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return lines;
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=status_hooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status_hooks.js","sourceRoot":"","sources":["../../src/commands/status_hooks.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `vibecommit status` from a folder that is not a git work tree — the MACHINE-level screen (0.7.0, design review D6 · 2A).
|
|
3
|
+
*
|
|
4
|
+
* Inside a repo `status` answers about that repo (§10.3). From anywhere else there is no repo to be about, and the old
|
|
5
|
+
* answer — "Not a git repository" — was the very precondition 0.7.0 removes from `connect`. So it answers for the machine:
|
|
6
|
+
* what is on, what is turned off, when anything last sent, where the dashboard is, and the three things to do next.
|
|
7
|
+
*
|
|
8
|
+
* Reads `grants.json`, `grants-account.json`, `projects.json` and session state; opens no transcript, makes no request and
|
|
9
|
+
* writes nothing — the one bounded account sync (slice 2) is `statusVerb`'s, which runs before this and hands in its outcome.
|
|
10
|
+
* It spawns one `git remote get-url` per per-clone consent (to count them as repos), and nothing else.
|
|
11
|
+
*
|
|
12
|
+
* ⚠ **`last sent` names no repo.** The drawn screen says `4 minutes ago · alexvibecommit/example-repo`, but session state
|
|
13
|
+
* is kept under a one-way digest of the repo's path, so the machine-wide scan can say WHEN and not WHICH. Naming the repo
|
|
14
|
+
* needs the digest inverted or a slug recorded beside it — a state-format change for another PR, reported to the design.
|
|
15
|
+
* ⚠ **`owners` rows carry no clone count** ("3 clones here"): counting them is a filesystem scan (`scan`'s 2-3 s on a
|
|
16
|
+
* heavy machine), which `status` must not pay. The row says what is true without one: later clones are covered.
|
|
17
|
+
*/
|
|
18
|
+
import { type CommandContext } from "./context.js";
|
|
19
|
+
import { type VerbSync } from "../grants_verb.js";
|
|
20
|
+
/**
|
|
21
|
+
* "0.8.0 truth fixes" F6: the same `on account` and `pending` rows, for the screen of a repo. They are about the machine and the
|
|
22
|
+
* account, not the repo, but they are what notice 10, `connect`'s "They stay granted on your account" and the README say `status`
|
|
23
|
+
* lists, and a person reads `status` from inside a clone. Empty when there is nothing to say (or `grants.json` is unreadable).
|
|
24
|
+
* Text only: the in-repo `--json` document is unchanged.
|
|
25
|
+
*/
|
|
26
|
+
export declare function accountRowsFor(ctx: CommandContext, sync: VerbSync): string[];
|
|
27
|
+
export declare function machineStatus(ctx: CommandContext, argv: readonly string[], sync?: VerbSync): number;
|