@vibe-commit/capture 0.7.0 → 0.9.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 +238 -7
- 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/agents/claude_code.js +13 -0
- package/dist/agents/claude_code.js.map +1 -1
- package/dist/agents/codex_cli.js +11 -0
- package/dist/agents/codex_cli.js.map +1 -1
- package/dist/agents/cursor.js +7 -1
- package/dist/agents/cursor.js.map +1 -1
- package/dist/agents/registry.d.ts +7 -0
- package/dist/agents/registry.js +9 -0
- package/dist/agents/registry.js.map +1 -1
- package/dist/agents/types.d.ts +32 -0
- package/dist/agents/types.js.map +1 -1
- package/dist/bounded_id.d.ts +29 -0
- package/dist/bounded_id.js +42 -0
- package/dist/bounded_id.js.map +1 -0
- package/dist/codex_folders.d.ts +340 -0
- package/dist/codex_folders.js +1448 -0
- package/dist/codex_folders.js.map +1 -0
- package/dist/commands/auth.d.ts +7 -0
- package/dist/commands/auth.js +21 -0
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/backfill.d.ts +29 -7
- package/dist/commands/backfill.js +387 -109
- package/dist/commands/backfill.js.map +1 -1
- package/dist/commands/browser_credential.d.ts +4 -2
- package/dist/commands/browser_credential.js +5 -2
- package/dist/commands/browser_credential.js.map +1 -1
- package/dist/commands/connect.d.ts +10 -1
- package/dist/commands/connect.js +14 -9
- 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.js +204 -29
- package/dist/commands/connect_picker.js.map +1 -1
- package/dist/commands/device_credential.d.ts +3 -1
- package/dist/commands/device_credential.js +1 -0
- package/dist/commands/device_credential.js.map +1 -1
- package/dist/commands/finalize.d.ts +67 -0
- package/dist/commands/finalize.js +450 -114
- package/dist/commands/finalize.js.map +1 -1
- package/dist/commands/finish_mint.d.ts +28 -0
- package/dist/commands/finish_mint.js +16 -4
- package/dist/commands/finish_mint.js.map +1 -1
- package/dist/commands/scan.d.ts +28 -0
- package/dist/commands/scan.js +11 -0
- package/dist/commands/scan.js.map +1 -1
- package/dist/commands/status.d.ts +19 -1
- package/dist/commands/status.js +123 -14
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/status_machine.d.ts +12 -3
- package/dist/commands/status_machine.js +111 -13
- package/dist/commands/status_machine.js.map +1 -1
- 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/consent.d.ts +131 -3
- package/dist/consent.js +248 -14
- package/dist/consent.js.map +1 -1
- package/dist/copy/strings.d.ts +165 -4
- package/dist/copy/strings.js +190 -7
- package/dist/copy/strings.js.map +1 -1
- package/dist/folder_grants.d.ts +44 -0
- package/dist/folder_grants.js +101 -0
- package/dist/folder_grants.js.map +1 -0
- package/dist/git.d.ts +26 -4
- package/dist/git.js +82 -11
- 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 +30 -50
- package/dist/hooks/entry.js +601 -561
- package/dist/hooks/entry.js.map +1 -1
- package/dist/hooks/fire_lock.d.ts +31 -0
- package/dist/hooks/fire_lock.js +120 -12
- package/dist/hooks/fire_lock.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 +28 -7
- package/dist/hooks/session_start.js +55 -11
- package/dist/hooks/session_start.js.map +1 -1
- package/dist/index.js +22 -5
- package/dist/index.js.map +1 -1
- package/dist/machine_state.d.ts +44 -1
- package/dist/machine_state.js +75 -12
- package/dist/machine_state.js.map +1 -1
- package/dist/oauth/discovery.js +2 -1
- package/dist/oauth/discovery.js.map +1 -1
- package/dist/oauth/pkce.js +2 -1
- package/dist/oauth/pkce.js.map +1 -1
- 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/paths.d.ts +54 -1
- package/dist/paths.js +88 -12
- 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/physical_path.d.ts +46 -0
- package/dist/physical_path.js +151 -0
- package/dist/physical_path.js.map +1 -0
- package/dist/picker.d.ts +82 -5
- package/dist/picker.js +183 -10
- package/dist/picker.js.map +1 -1
- package/dist/picker_checklist.d.ts +27 -3
- package/dist/picker_checklist.js +81 -6
- package/dist/picker_checklist.js.map +1 -1
- package/dist/policy.d.ts +24 -1
- package/dist/policy.js +30 -2
- package/dist/policy.js.map +1 -1
- package/dist/post.d.ts +55 -2
- package/dist/post.js +72 -22
- package/dist/post.js.map +1 -1
- package/dist/project.d.ts +89 -0
- package/dist/project.js +123 -0
- package/dist/project.js.map +1 -1
- package/dist/redact.d.ts +77 -2
- package/dist/redact.js +713 -47
- package/dist/redact.js.map +1 -1
- package/dist/session_targets.d.ts +713 -0
- package/dist/session_targets.js +2602 -0
- package/dist/session_targets.js.map +1 -0
- package/dist/spool.d.ts +12 -0
- package/dist/spool.js +29 -1
- package/dist/spool.js.map +1 -1
- package/dist/spool_union.d.ts +51 -0
- package/dist/spool_union.js +57 -0
- package/dist/spool_union.js.map +1 -0
- package/dist/state.d.ts +5 -0
- package/dist/state.js +19 -1
- package/dist/state.js.map +1 -1
- package/dist/system_message.d.ts +25 -2
- package/dist/system_message.js +29 -5
- package/dist/system_message.js.map +1 -1
- package/dist/text_tail.d.ts +8 -0
- package/dist/text_tail.js +19 -0
- package/dist/text_tail.js.map +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +3 -3
|
@@ -1,17 +1,22 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* `SessionStart` — the event that never uploads (0.7.0, eng review D3 · A, D4 · A, A4).
|
|
3
3
|
*
|
|
4
|
-
* It does three things in a clone that is already captured, and nothing
|
|
4
|
+
* It does three things in a clone that is already captured, and one more that asks nothing of the clone:
|
|
5
5
|
*
|
|
6
6
|
* 1. installs the clone's two git hooks, once, and ONLY when that is a plain write;
|
|
7
7
|
* 2. says so, once, as the hook's one `systemMessage` (style guide §10.1 states 6-8);
|
|
8
8
|
* 3. says the other things a session start can know without sending anything: the machine has no
|
|
9
9
|
* credential (state 1), the credential ends soon (state 5), `grants.json` is unreadable (state 9).
|
|
10
|
+
* 4. (slice 2) when the account state is stale and an hour has passed, makes ONE bounded `GET` of the account's grants
|
|
11
|
+
* (`session_grants.ts`) and, if the account grants repositories this machine has not named, says so once per account
|
|
12
|
+
* epoch (state 10). It names no repo and sends nothing about the clone: the request is the machine's credential and a path.
|
|
10
13
|
*
|
|
11
|
-
* ⛔ **IT NEVER READS `transcript_path` AND NEVER
|
|
14
|
+
* ⛔ **IT NEVER READS `transcript_path` AND NEVER UPLOADS.** `entry.ts` resolves the canonical event first and
|
|
12
15
|
* branches here BEFORE the consent gate and before the transcript confinement check, so this module is not a
|
|
13
|
-
* path a transcript can reach. There is no `fetch` here and
|
|
14
|
-
* `
|
|
16
|
+
* path a transcript can reach. There is no `fetch` call here, and the one request anything it imports can make is
|
|
17
|
+
* `session_grants.ts`'s GET, which runs only on a stale account state, at most hourly (a machine that has never been told a
|
|
18
|
+
* different epoch makes none); the cells in `test/session-start.test.ts` assert 0 requests and an unopened transcript for
|
|
19
|
+
* each of the three dialects.
|
|
15
20
|
*
|
|
16
21
|
* ⚠ **The consent gate is still applied — HERE**, because installing git hooks into a repo is a write into
|
|
17
22
|
* the user's clone and "absence means no" covers writes as much as reads. An ungranted or excluded clone gets
|
|
@@ -43,7 +48,18 @@ export interface SessionStartContext {
|
|
|
43
48
|
* Render a state into the hook's stdout payload, or null when it is already claimed, unrenderable or
|
|
44
49
|
* unclaimable. `cloneKey` is passed only by states 6-8. This is `hookBody`'s own `notice` closure.
|
|
45
50
|
*/
|
|
46
|
-
readonly notice: (state: NoticeState, repoKey?: string | null, rejected?: Parameters<typeof credentialFingerprint>[0], endsAt?: string, cloneKey?: string
|
|
51
|
+
readonly notice: (state: NoticeState, repoKey?: string | null, rejected?: Parameters<typeof credentialFingerprint>[0], endsAt?: string, cloneKey?: string,
|
|
52
|
+
/** State 10 only: the account epoch the GET read and how many of its owner and repository grants this machine has not named. */
|
|
53
|
+
account?: {
|
|
54
|
+
readonly epoch: number;
|
|
55
|
+
readonly owners: number;
|
|
56
|
+
readonly repos: number;
|
|
57
|
+
}) => string | null;
|
|
58
|
+
/** What is left of the hook's wall clock, in ms: the one GET is bounded by it as well as by its own 1,000 ms. Absent: no outer bound. */
|
|
59
|
+
readonly budgetLeftMs?: () => number;
|
|
60
|
+
/** Injected so a cell can stub the one request and the clock. */
|
|
61
|
+
readonly fetch?: typeof fetch;
|
|
62
|
+
readonly now?: () => Date;
|
|
47
63
|
}
|
|
48
64
|
/**
|
|
49
65
|
* This clone's identity for the once-per-clone markers: a random nonce in `<common-dir>/capture-clone-id`,
|
|
@@ -86,8 +102,13 @@ export declare function installOnce(ctx: Pick<SessionStartContext, "env" | "home
|
|
|
86
102
|
* The `SessionStart` hook body. Returns the stdout payload or null; never throws past the caller's catch, and
|
|
87
103
|
* opens no transcript.
|
|
88
104
|
*
|
|
89
|
-
* Precedence — one hook speaks at most once: 9, then 1, then 5, then 7, 8, 6. (States 2 and 4 need a send, and
|
|
105
|
+
* Precedence — one hook speaks at most once: 9, then 10, then 1, then 5, then 7, 8, 6. (States 2 and 4 need a send, and
|
|
90
106
|
* 3 is `hookBody`'s own check ahead of the branch, so on a runtime below the Node floor 3 outranks 9: nothing
|
|
91
107
|
* else on such a runtime works either.) A state that is already claimed returns null and the next one speaks.
|
|
108
|
+
*
|
|
109
|
+
* State 10 needs a usable credential, so it cannot share a session with state 1; it outranks 5 and the three install states.
|
|
110
|
+
* It is the one notice that can speak from a clone THIS machine does not capture — the clone an account grant names is exactly
|
|
111
|
+
* such a clone — so it is gated on the clone having a remote (as state 9 is), not on `isCaptureAllowed`. What it sends is the
|
|
112
|
+
* machine's credential and no word about the clone.
|
|
92
113
|
*/
|
|
93
|
-
export declare function sessionStartPayload(ctx: SessionStartContext): string | null
|
|
114
|
+
export declare function sessionStartPayload(ctx: SessionStartContext): Promise<string | null>;
|
|
@@ -1,17 +1,22 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* `SessionStart` — the event that never uploads (0.7.0, eng review D3 · A, D4 · A, A4).
|
|
3
3
|
*
|
|
4
|
-
* It does three things in a clone that is already captured, and nothing
|
|
4
|
+
* It does three things in a clone that is already captured, and one more that asks nothing of the clone:
|
|
5
5
|
*
|
|
6
6
|
* 1. installs the clone's two git hooks, once, and ONLY when that is a plain write;
|
|
7
7
|
* 2. says so, once, as the hook's one `systemMessage` (style guide §10.1 states 6-8);
|
|
8
8
|
* 3. says the other things a session start can know without sending anything: the machine has no
|
|
9
9
|
* credential (state 1), the credential ends soon (state 5), `grants.json` is unreadable (state 9).
|
|
10
|
+
* 4. (slice 2) when the account state is stale and an hour has passed, makes ONE bounded `GET` of the account's grants
|
|
11
|
+
* (`session_grants.ts`) and, if the account grants repositories this machine has not named, says so once per account
|
|
12
|
+
* epoch (state 10). It names no repo and sends nothing about the clone: the request is the machine's credential and a path.
|
|
10
13
|
*
|
|
11
|
-
* ⛔ **IT NEVER READS `transcript_path` AND NEVER
|
|
14
|
+
* ⛔ **IT NEVER READS `transcript_path` AND NEVER UPLOADS.** `entry.ts` resolves the canonical event first and
|
|
12
15
|
* branches here BEFORE the consent gate and before the transcript confinement check, so this module is not a
|
|
13
|
-
* path a transcript can reach. There is no `fetch` here and
|
|
14
|
-
* `
|
|
16
|
+
* path a transcript can reach. There is no `fetch` call here, and the one request anything it imports can make is
|
|
17
|
+
* `session_grants.ts`'s GET, which runs only on a stale account state, at most hourly (a machine that has never been told a
|
|
18
|
+
* different epoch makes none); the cells in `test/session-start.test.ts` assert 0 requests and an unopened transcript for
|
|
19
|
+
* each of the three dialects.
|
|
15
20
|
*
|
|
16
21
|
* ⚠ **The consent gate is still applied — HERE**, because installing git hooks into a repo is a write into
|
|
17
22
|
* the user's clone and "absence means no" covers writes as much as reads. An ungranted or excluded clone gets
|
|
@@ -27,10 +32,11 @@
|
|
|
27
32
|
import { randomBytes } from "node:crypto";
|
|
28
33
|
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
29
34
|
import { dirname, join } from "node:path";
|
|
30
|
-
import { grantsUnreadable, isCaptureAllowed, isLocalSlug } from "../consent.js";
|
|
35
|
+
import { grantsUnreadable, isCaptureAllowed, isLocalSlug, readAccountState } from "../consent.js";
|
|
31
36
|
import { endingSoon, metaFor } from "../credential_meta.js";
|
|
32
37
|
import { loadCredential } from "../credential.js";
|
|
33
38
|
import { onceRepoSlug } from "../git.js";
|
|
39
|
+
import { refreshAccountGrants } from "./session_grants.js";
|
|
34
40
|
import { installChannel, installCaptureHooks } from "../install.js";
|
|
35
41
|
import { cloneMarkerPath } from "../paths.js";
|
|
36
42
|
import { credentialFingerprint } from "../post.js";
|
|
@@ -149,11 +155,16 @@ export function installOnce(ctx, keys) {
|
|
|
149
155
|
* The `SessionStart` hook body. Returns the stdout payload or null; never throws past the caller's catch, and
|
|
150
156
|
* opens no transcript.
|
|
151
157
|
*
|
|
152
|
-
* Precedence — one hook speaks at most once: 9, then 1, then 5, then 7, 8, 6. (States 2 and 4 need a send, and
|
|
158
|
+
* Precedence — one hook speaks at most once: 9, then 10, then 1, then 5, then 7, 8, 6. (States 2 and 4 need a send, and
|
|
153
159
|
* 3 is `hookBody`'s own check ahead of the branch, so on a runtime below the Node floor 3 outranks 9: nothing
|
|
154
160
|
* else on such a runtime works either.) A state that is already claimed returns null and the next one speaks.
|
|
161
|
+
*
|
|
162
|
+
* State 10 needs a usable credential, so it cannot share a session with state 1; it outranks 5 and the three install states.
|
|
163
|
+
* It is the one notice that can speak from a clone THIS machine does not capture — the clone an account grant names is exactly
|
|
164
|
+
* such a clone — so it is gated on the clone having a remote (as state 9 is), not on `isCaptureAllowed`. What it sends is the
|
|
165
|
+
* machine's credential and no word about the clone.
|
|
155
166
|
*/
|
|
156
|
-
export function sessionStartPayload(ctx) {
|
|
167
|
+
export async function sessionStartPayload(ctx) {
|
|
157
168
|
const keys = resolveProjectKeys(ctx.cwd);
|
|
158
169
|
if (keys === null)
|
|
159
170
|
return null;
|
|
@@ -162,7 +173,8 @@ export function sessionStartPayload(ctx) {
|
|
|
162
173
|
// NOTHING: it renders no notice and, because `renderNotice` is what claims, it claims none. Rendering here would
|
|
163
174
|
// print a line nobody sees AND use up the clone's state 6 and the machine's once-a-day 9 and 5, leaving Claude
|
|
164
175
|
// Code and Codex quiet. State 6 stays owed (`installOnce`) for the next hook that can speak — Cursor's first
|
|
165
|
-
// `stop`. Ahead of the state-9 branch for the same reason.
|
|
176
|
+
// `stop`. Ahead of the state-9 branch for the same reason. And it makes no GET: the answer would be a notice nobody sees,
|
|
177
|
+
// and the stale mark stays for a hook that can speak.
|
|
166
178
|
if (ctx.agentId === "cursor") {
|
|
167
179
|
if (isCaptureAllowed(ctx.home, keys, slugOf))
|
|
168
180
|
installOnce(ctx, keys);
|
|
@@ -173,12 +185,44 @@ export function sessionStartPayload(ctx) {
|
|
|
173
185
|
if (grantsUnreadable(ctx.home) && !isLocalSlug(slugOf())) {
|
|
174
186
|
return ctx.notice("grants_unreadable");
|
|
175
187
|
}
|
|
176
|
-
|
|
177
|
-
return null;
|
|
188
|
+
const allowed = isCaptureAllowed(ctx.home, keys, slugOf);
|
|
178
189
|
// The side effect comes before any notice, so a higher-precedence notice never costs the install — and state 6
|
|
179
190
|
// stays OWED to a later session rather than lost (`installOnce`).
|
|
180
|
-
const installed = installOnce(ctx, keys);
|
|
191
|
+
const installed = allowed ? installOnce(ctx, keys) : null;
|
|
192
|
+
// ⛔ A clone this machine does NOT capture may still be where an account grant is named, so it may make the one GET — under VT's five
|
|
193
|
+
// conditions (#89): (1) the request is the bare `GET /ingest/v1/grants` with only the credential, client-version and accept headers;
|
|
194
|
+
// (2) nothing is written into the clone (no clone id, no git config, no hook); (3) no transcript is opened or stat'ed (this module never
|
|
195
|
+
// names `transcript_path`); (4) the conditions are machine-wide — stale, at most hourly across ALL clones, `timeoutMs` ≤ 1,000, 64 KiB,
|
|
196
|
+
// a stalled or oversize answer stays stale; (5) THE SLUG RESOLVES LAZILY: the remote is looked up (a git spawn) only when the account
|
|
197
|
+
// state this machine already holds names at least one owner or repo AND is stale. A machine whose cached account is empty never spawns git
|
|
198
|
+
// for this, and a clone with no remote asks nothing.
|
|
199
|
+
if (!allowed) {
|
|
200
|
+
const cached = readAccountState(ctx.home);
|
|
201
|
+
if (!cached.stale || cached.account === null || (cached.account.owners.length === 0 && cached.account.repos.length === 0))
|
|
202
|
+
return null;
|
|
203
|
+
if (isLocalSlug(slugOf()))
|
|
204
|
+
return null;
|
|
205
|
+
}
|
|
181
206
|
const load = loadCredential({ env: ctx.env, home: ctx.home });
|
|
207
|
+
if (load.kind === "ok") {
|
|
208
|
+
// State 10. The GET is due only when the account state is stale and an hour has passed (`session_grants.ts`).
|
|
209
|
+
const found = await refreshAccountGrants({
|
|
210
|
+
env: ctx.env,
|
|
211
|
+
home: ctx.home,
|
|
212
|
+
credential: load.credential,
|
|
213
|
+
...(ctx.fetch === undefined ? {} : { fetch: ctx.fetch }),
|
|
214
|
+
...(ctx.now === undefined ? {} : { now: ctx.now }),
|
|
215
|
+
...(ctx.budgetLeftMs === undefined ? {} : { budgetLeftMs: ctx.budgetLeftMs }),
|
|
216
|
+
});
|
|
217
|
+
if (found !== null) {
|
|
218
|
+
const unnamed = ctx.notice("account_grants_unnamed", null, undefined, undefined, undefined, found);
|
|
219
|
+
if (unnamed !== null)
|
|
220
|
+
return unnamed;
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
// Everything below is about a clone this machine captures. A clone it does not capture is silent, as it always was.
|
|
224
|
+
if (!allowed || installed === null)
|
|
225
|
+
return null;
|
|
182
226
|
if (load.kind !== "ok") {
|
|
183
227
|
const notConnected = ctx.notice("not_connected");
|
|
184
228
|
if (notConnected !== null)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session_start.js","sourceRoot":"","sources":["../../src/hooks/session_start.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"session_start.js","sourceRoot":"","sources":["../../src/hooks/session_start.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAClG,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAyB,MAAM,eAAe,CAAC;AAC3F,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAoB,MAAM,eAAe,CAAC;AAmCrE,oHAAoH;AACpH,wHAAwH;AACxH,8GAA8G;AAC9G,MAAM,aAAa,GAAG,kBAAkB,CAAC;AAEzC;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,OAAO,CAAC,SAAiB;IACvC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,GAAkB,EAAE;QAC/B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;YAC/C,OAAO,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QACnD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC,CAAC;IACF,MAAM,QAAQ,GAAG,IAAI,EAAE,CAAC;IACxB,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,QAAQ,CAAC;IACvC,IAAI,CAAC;QACH,aAAa,CAAC,IAAI,EAAE,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3F,CAAC;IAAC,MAAM,CAAC;QACP,+FAA+F;IACjG,CAAC;IACD,OAAO,IAAI,EAAE,CAAC;AAChB,CAAC;AAED,sFAAsF;AACtF,SAAS,iBAAiB,CAAC,IAAY,EAAE,GAAW;IAClD,OAAO,eAAe,CAAC,IAAI,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;AACjD,CAAC;AAED,2HAA2H;AAC3H,SAAS,iBAAiB,CAAC,IAAY,EAAE,GAAW;IAClD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,CAAwB,CAAC;QACrG,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,6GAA6G;AAC7G,SAAS,kBAAkB,CAAC,IAAY,EAAE,GAAW,EAAE,KAAc;IACnE,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC1C,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAC3D,aAAa,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACnH,CAAC;IAAC,MAAM,CAAC;QACP,mFAAmF;IACrF,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,WAAW,CACzB,GAA2D,EAC3D,IAAiB;IAEjB,0GAA0G;IAC1G,yFAAyF;IACzF,IAAI,GAAG,CAAC,QAAQ,KAAK,EAAE,IAAI,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACnF,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IACvC,CAAC;IACD,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAClC,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAEvD,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAChD,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC,CAAC;QACxF,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;IAC/D,CAAC;IAED,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1F,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAU,CAAC;IACjE,IAAI,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;IACpF,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;IAClF,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;IAEpE,MAAM,KAAK,GAAG,CAAC,CAAmB,EAAW,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC;IAC/F,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC/D,kBAAkB,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC5C,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;AACnE,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,GAAwB;IAChE,MAAM,IAAI,GAAG,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACzC,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC/B,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAE3C,8GAA8G;IAC9G,iHAAiH;IACjH,+GAA+G;IAC/G,6GAA6G;IAC7G,0HAA0H;IAC1H,sDAAsD;IACtD,IAAI,GAAG,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC7B,IAAI,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC;YAAE,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACrE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,4GAA4G;IAC5G,4GAA4G;IAC5G,IAAI,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;QACzD,OAAO,GAAG,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAEzD,+GAA+G;IAC/G,kEAAkE;IAClE,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAE1D,qIAAqI;IACrI,qIAAqI;IACrI,yIAAyI;IACzI,wIAAwI;IACxI,sIAAsI;IACtI,2IAA2I;IAC3I,qDAAqD;IACrD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QACvI,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;YAAE,OAAO,IAAI,CAAC;IACzC,CAAC;IAED,MAAM,IAAI,GAAG,cAAc,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9D,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QACvB,8GAA8G;QAC9G,MAAM,KAAK,GAAG,MAAM,oBAAoB,CAAC;YACvC,GAAG,EAAE,GAAG,CAAC,GAAG;YACZ,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,GAAG,CAAC,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;YACxD,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;YAClD,GAAG,CAAC,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,GAAG,CAAC,YAAY,EAAE,CAAC;SAC9E,CAAC,CAAC;QACH,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,wBAAwB,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;YACnG,IAAI,OAAO,KAAK,IAAI;gBAAE,OAAO,OAAO,CAAC;QACvC,CAAC;IACH,CAAC;IAED,oHAAoH;IACpH,IAAI,CAAC,OAAO,IAAI,SAAS,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAEhD,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QACvB,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QACjD,IAAI,YAAY,KAAK,IAAI;YAAE,OAAO,YAAY,CAAC;IACjD,CAAC;SAAM,CAAC;QACN,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,qBAAqB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QACjG,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,mBAAmB,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YAC9E,IAAI,MAAM,KAAK,IAAI;gBAAE,OAAO,MAAM,CAAC;QACrC,CAAC;IACH,CAAC;IAED,IAAI,SAAS,CAAC,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC1C,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;AACrF,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -27,7 +27,7 @@ import { browserCredential } from "./commands/browser_credential.js";
|
|
|
27
27
|
import { updateNudge } from "./update_nudge.js";
|
|
28
28
|
import { connect } from "./commands/connect.js";
|
|
29
29
|
import { finalize } from "./commands/finalize.js";
|
|
30
|
-
import {
|
|
30
|
+
import { offVerb, statusVerb } from "./commands/status.js";
|
|
31
31
|
import { report } from "./commands/report.js";
|
|
32
32
|
import { backfill, backfillForConnect } from "./commands/backfill.js";
|
|
33
33
|
import { scan } from "./commands/scan.js";
|
|
@@ -181,6 +181,16 @@ async function main(argv) {
|
|
|
181
181
|
return EXIT.usage;
|
|
182
182
|
}
|
|
183
183
|
const ctx = interactiveContext(argv);
|
|
184
|
+
// Slice 2 (S4, R3-11): a credential `g` made and did not keep is revoked by the NEXT verb that runs — once, at its start, silent,
|
|
185
|
+
// needing no credential, inside one 3 s bound across every row. Not for `--help`, not for `scan` (network-free by contract,
|
|
186
|
+
// README), not for a `--stdin`, piped or no-terminal `auth` (below), and never from a hook (this is the verb path; hooks branch off at the bottom of this file).
|
|
187
|
+
// F8 (L10): nor for `auth` run with `--stdin`, piped or with no terminal ("it only saves the credential" stays exactly true of it).
|
|
188
|
+
const authSavesOnly = verb === "auth" && (argv.includes("--stdin") || !ctx.stdinIsTty);
|
|
189
|
+
if (verb !== "scan" && !authSavesOnly && !argv.includes("--help") && !argv.includes("-h")) {
|
|
190
|
+
// Loaded HERE, on the verb path only (the connect.ts rule): `vibecommit hook` never imports the module that holds a token.
|
|
191
|
+
const { retryPendingRevokes } = await import("./pending_revoke.js");
|
|
192
|
+
await retryPendingRevokes(ctx.home, ctx.env, globalThis.fetch, ctx.now());
|
|
193
|
+
}
|
|
184
194
|
const code = await runVerb(verb, argv, ctx);
|
|
185
195
|
// `13A`: the nudge is the LAST line of a verb that SUCCEEDED — never after an error (the §13.6 fix
|
|
186
196
|
// line must stay last) and never with `--json`. It lives here, not in the verbs, so no verb's own
|
|
@@ -217,7 +227,11 @@ async function runVerb(verb, argv, ctx) {
|
|
|
217
227
|
// second sign-in. `test/auth-connect-chain.test.ts` brace-matches this call to keep it so.
|
|
218
228
|
// The backfill offer IS passed: it is not a sign-in, it asks its own y/N (default N) on a terminal only, and the chain
|
|
219
229
|
// itself runs only on a terminal (the `!piped` gate, D32 guard 1), so a piped or CI `auth` never reaches it.
|
|
220
|
-
|
|
230
|
+
// Slice 2: the account's network is passed (it is not a sign-in), so the chained `connect` syncs and shows the picker's
|
|
231
|
+
// "on your account" group. `g` needs a `browser`, which this call never has, so the chain can never reach it.
|
|
232
|
+
connect: (c) => connect(c, {}, { backfill: backfillForConnect, account: { fetch: globalThis.fetch } }),
|
|
233
|
+
// R3-7: a credential this verb saves, off the chain, is synced before it returns (only on a machine that has synced before).
|
|
234
|
+
account: { fetch: globalThis.fetch },
|
|
221
235
|
});
|
|
222
236
|
case "connect":
|
|
223
237
|
// `--sign-in` (CR-084d) is a FLAG, not a verb: `VERBS` is what `renderHelp`
|
|
@@ -237,7 +251,8 @@ async function runVerb(verb, argv, ctx) {
|
|
|
237
251
|
help: argv.includes("--help") || argv.includes("-h"),
|
|
238
252
|
},
|
|
239
253
|
// `D14`/`D15`: the backfill offer after "Capture is on" (PR 5's `backfillForConnect`).
|
|
240
|
-
|
|
254
|
+
// Slice 2: `account` is the network for the sync, the "on your account" group, `g` and the joining-machine question.
|
|
255
|
+
{ browser: realBrowser, backfill: backfillForConnect, account: { fetch: globalThis.fetch } });
|
|
241
256
|
case "scan":
|
|
242
257
|
// `D33 · 27A`. Read-only, no network, and a public verb so an agent can list capturable repos
|
|
243
258
|
// without entering a consent flow. Reads its own `--json` like `status`.
|
|
@@ -249,11 +264,13 @@ async function runVerb(verb, argv, ctx) {
|
|
|
249
264
|
// `argv.slice(1)` for the same reason `why` and `report` take it: `status`
|
|
250
265
|
// reads its own `--json` flag rather than this package acquiring an
|
|
251
266
|
// argument parser it has deliberately never had (DESIGN.md §13.3).
|
|
252
|
-
|
|
267
|
+
// Slice 2 (S4): one bounded account sync first, then the screen. The sync only refreshes the files `status` reads.
|
|
268
|
+
return await statusVerb(ctx, argv.slice(1), { fetch: globalThis.fetch });
|
|
253
269
|
case "off":
|
|
254
270
|
// `TODOS[184]`: `off` now takes its trailing argv, so a stray argument (including `--help`
|
|
255
271
|
// landing here by accident) can no longer silently revoke consent.
|
|
256
|
-
|
|
272
|
+
// Slice 2 (S4): the turn-off is local first; with a credential it is then queued for the account and synced once.
|
|
273
|
+
return await offVerb(ctx, argv.slice(1), { fetch: globalThis.fetch });
|
|
257
274
|
case "why":
|
|
258
275
|
// CR-086. `argv.slice(1)` is everything after the verb — there is no
|
|
259
276
|
// argument parser in this package and `why` does not add one; it reads
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/machine_state.d.ts
CHANGED
|
@@ -27,14 +27,46 @@ export type MachineCapture =
|
|
|
27
27
|
/** Owners and repos on, the way every summary line counts them. */
|
|
28
28
|
readonly owners: number;
|
|
29
29
|
readonly repos: number;
|
|
30
|
+
/**
|
|
31
|
+
* ⛔ THE ONE LIST the `repos` count is the length of (Q3): `status` draws these rows and `repos` counts them, so a number and
|
|
32
|
+
* its list cannot disagree. A per-clone consent whose clone has no remote, or is gone, is an entry like any other.
|
|
33
|
+
*/
|
|
34
|
+
readonly repoEntries: readonly RepoEntry[];
|
|
35
|
+
/** Granted folders, by real path (any-folder capture, R3). They count in the summary beside owners and repos. */
|
|
36
|
+
readonly folders: readonly string[];
|
|
30
37
|
};
|
|
38
|
+
/** One repository that is on. `slug` is its remote's; a clone with none (or none left) is named by its path and says so. */
|
|
39
|
+
export interface RepoEntry {
|
|
40
|
+
/** The identity the count uses: a slug, or `local:<common dir>`. */
|
|
41
|
+
readonly key: string;
|
|
42
|
+
readonly slug: string | null;
|
|
43
|
+
/** The clone's common dir, for a per-clone entry. */
|
|
44
|
+
readonly commonDir: string | null;
|
|
45
|
+
/** `missing`: a per-clone consent whose clone no longer exists. `no-remote`: it exists and has no remote. */
|
|
46
|
+
readonly state: "slug" | "no-remote" | "missing";
|
|
47
|
+
/** The clone's work-tree path, for a `no-remote` or `missing` entry (the parent of its `.git`). */
|
|
48
|
+
readonly path: string | null;
|
|
49
|
+
}
|
|
31
50
|
/**
|
|
32
51
|
* ⛔ **Counts what ADMITS capture, not what is written down.** An excluded slug is not on whatever else says so; a repo an
|
|
33
52
|
* owner grant covers is counted once, under the owner; a per-clone consent whose clone has no remote (`local:`) is still a
|
|
34
53
|
* repo that is on, and counts as one.
|
|
35
54
|
*/
|
|
36
55
|
export declare function machineCapture(home: string): MachineCapture;
|
|
37
|
-
/**
|
|
56
|
+
/** A repository or folder a recent session's evidence named that nobody has decided about (R8 · D11). */
|
|
57
|
+
export interface UndecidedRow {
|
|
58
|
+
readonly kind: "repo" | "folder";
|
|
59
|
+
/** A slug, or a path for a repo with no remote and for a folder. */
|
|
60
|
+
readonly name: string;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* The names `status` lists as "not chosen yet": what the resolver recorded as undecided in the last `sinceMs`, MINUS anything
|
|
64
|
+
* that has been decided since (granted, turned off, declined, or a clone that no longer exists). Names only, read from the target
|
|
65
|
+
* records: no transcript is opened. Re-checked against today's consent, so declining a folder or granting a repo removes it the
|
|
66
|
+
* moment it is done, not when the record ages out (P1, A-T5 review: a declined folder must not read "undecided" forever).
|
|
67
|
+
*/
|
|
68
|
+
export declare function undecidedNow(home: string, sinceMs: number): UndecidedRow[];
|
|
69
|
+
/** `1 owner and 2 repos` — or the empty string when nothing is on. A granted folder adds `and 1 folder`. */
|
|
38
70
|
export declare function machineSummary(capture: MachineCapture): string;
|
|
39
71
|
/** Why a repo that is on is on (the `basis` row of `status`, D6): the owner that grants it, a repo grant, or a per-clone consent. */
|
|
40
72
|
export type CaptureBasis = {
|
|
@@ -50,3 +82,14 @@ export type CaptureBasis = {
|
|
|
50
82
|
* consent — the broadest reason first, so `status` names what would have to be removed to turn the repo off by grant.
|
|
51
83
|
*/
|
|
52
84
|
export declare function captureBasis(home: string, slug: string): CaptureBasis;
|
|
85
|
+
/** A granted folder the server refuses because another member's machine uploaded a folder at the same path first (C3). */
|
|
86
|
+
export interface RefusedFolderRow {
|
|
87
|
+
readonly folder: string;
|
|
88
|
+
readonly at: number;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* The granted folders `status` names as refused: what the target records stopped in the last `sinceMs`, MINUS any folder that is no
|
|
92
|
+
* longer granted (excluded, or removed), so a folder the user has since turned off does not read as refused for ever. A record the
|
|
93
|
+
* drain forgot (DRAIN_FORGET_MS) is not listed either: names only, read from the target records, no transcript is opened.
|
|
94
|
+
*/
|
|
95
|
+
export declare function refusedFoldersNow(home: string, sinceMs: number): RefusedFolderRow[];
|
package/dist/machine_state.js
CHANGED
|
@@ -5,7 +5,12 @@
|
|
|
5
5
|
* Reads `grants.json` and `projects.json` and, for each per-clone consent, the clone's remote (one `git remote get-url`
|
|
6
6
|
* apiece). Opens no transcript and writes nothing.
|
|
7
7
|
*/
|
|
8
|
-
import {
|
|
8
|
+
import { existsSync } from "node:fs";
|
|
9
|
+
import { dirname } from "node:path";
|
|
10
|
+
import { EMPTY_GRANTS, normalizeSlug, ownerOfSlug, isLocalSlug, readAccountState, readAllowList, readGrants } from "./consent.js";
|
|
11
|
+
import { folderStandingOf, grantedFolders } from "./folder_grants.js";
|
|
12
|
+
import { resolveProjectKeys } from "./project.js";
|
|
13
|
+
import { readStoppedFolders, readUndecidedNames } from "./session_targets.js";
|
|
9
14
|
import { remoteSlugOfCommonDir } from "./git.js";
|
|
10
15
|
import { PICKER } from "./copy/index.js";
|
|
11
16
|
export function readPerClone(home) {
|
|
@@ -24,25 +29,73 @@ export function machineCapture(home) {
|
|
|
24
29
|
const perClone = readPerClone(home);
|
|
25
30
|
const excluded = new Set(grants.excluded);
|
|
26
31
|
const owners = grants.owners;
|
|
27
|
-
const
|
|
32
|
+
const entries = new Map();
|
|
28
33
|
for (const slug of grants.repos) {
|
|
29
|
-
if (!excluded.has(slug) && !owners.includes(ownerOfSlug(slug)))
|
|
30
|
-
|
|
34
|
+
if (!excluded.has(slug) && !owners.includes(ownerOfSlug(slug))) {
|
|
35
|
+
entries.set(slug, { key: slug, slug, commonDir: null, state: "slug", path: null });
|
|
36
|
+
}
|
|
31
37
|
}
|
|
32
38
|
for (const entry of perClone) {
|
|
33
39
|
const slug = entry.slug === null ? null : normalizeSlug(entry.slug);
|
|
34
|
-
if (slug === null || isLocalSlug(slug))
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
40
|
+
if (slug === null || isLocalSlug(slug)) {
|
|
41
|
+
const key = `local:${entry.commonDir}`;
|
|
42
|
+
entries.set(key, {
|
|
43
|
+
key,
|
|
44
|
+
slug: null,
|
|
45
|
+
commonDir: entry.commonDir,
|
|
46
|
+
state: existsSync(entry.commonDir) ? "no-remote" : "missing",
|
|
47
|
+
path: dirname(entry.commonDir),
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
else if (!excluded.has(slug) && !owners.includes(ownerOfSlug(slug)) && !entries.has(slug)) {
|
|
51
|
+
entries.set(slug, { key: slug, slug, commonDir: entry.commonDir, state: "slug", path: null });
|
|
52
|
+
}
|
|
38
53
|
}
|
|
39
|
-
|
|
54
|
+
const folders = grantedFolders(home);
|
|
55
|
+
if (owners.length === 0 && entries.size === 0 && folders.length === 0)
|
|
40
56
|
return { kind: "none" };
|
|
41
|
-
return { kind: "on", grants, perClone, owners: owners.length, repos:
|
|
57
|
+
return { kind: "on", grants, perClone, owners: owners.length, repos: entries.size, repoEntries: [...entries.values()], folders };
|
|
42
58
|
}
|
|
43
|
-
/**
|
|
59
|
+
/**
|
|
60
|
+
* The names `status` lists as "not chosen yet": what the resolver recorded as undecided in the last `sinceMs`, MINUS anything
|
|
61
|
+
* that has been decided since (granted, turned off, declined, or a clone that no longer exists). Names only, read from the target
|
|
62
|
+
* records: no transcript is opened. Re-checked against today's consent, so declining a folder or granting a repo removes it the
|
|
63
|
+
* moment it is done, not when the record ages out (P1, A-T5 review: a declined folder must not read "undecided" forever).
|
|
64
|
+
*/
|
|
65
|
+
export function undecidedNow(home, sinceMs) {
|
|
66
|
+
const read = readGrants(home);
|
|
67
|
+
const grants = read.kind === "ok" ? read.grants : EMPTY_GRANTS;
|
|
68
|
+
const account = readAccountState(home);
|
|
69
|
+
const denied = [grants.excluded, grants.refused, account.refused, account.account?.excluded ?? []];
|
|
70
|
+
const perCloneSlugs = new Set(readPerClone(home).flatMap((c) => (c.slug === null ? [] : [normalizeSlug(c.slug)])));
|
|
71
|
+
const allowed = readAllowList(home);
|
|
72
|
+
const out = [];
|
|
73
|
+
for (const name of readUndecidedNames(home, sinceMs)) {
|
|
74
|
+
if (name.kind === "folder") {
|
|
75
|
+
if (folderStandingOf(home, name.name) === "undecided")
|
|
76
|
+
out.push({ kind: "folder", name: name.name });
|
|
77
|
+
continue;
|
|
78
|
+
}
|
|
79
|
+
if (name.name.startsWith("/")) {
|
|
80
|
+
// A repo with no remote is named by its work tree. One that is gone cannot be connected, so it is not offered.
|
|
81
|
+
const keys = resolveProjectKeys(name.name);
|
|
82
|
+
if (keys !== null && !Object.prototype.hasOwnProperty.call(allowed, keys.consent))
|
|
83
|
+
out.push({ kind: "repo", name: name.name });
|
|
84
|
+
continue;
|
|
85
|
+
}
|
|
86
|
+
const slug = normalizeSlug(name.name);
|
|
87
|
+
const decided = denied.some((list) => list.includes(slug)) ||
|
|
88
|
+
grants.repos.includes(slug) ||
|
|
89
|
+
grants.owners.includes(ownerOfSlug(slug)) ||
|
|
90
|
+
perCloneSlugs.has(slug);
|
|
91
|
+
if (!decided)
|
|
92
|
+
out.push({ kind: "repo", name: name.name });
|
|
93
|
+
}
|
|
94
|
+
return out;
|
|
95
|
+
}
|
|
96
|
+
/** `1 owner and 2 repos` — or the empty string when nothing is on. A granted folder adds `and 1 folder`. */
|
|
44
97
|
export function machineSummary(capture) {
|
|
45
|
-
return capture.kind === "on" ? PICKER.summary(capture.owners, capture.repos) : "";
|
|
98
|
+
return capture.kind === "on" ? PICKER.summary(capture.owners, capture.repos, capture.folders.length) : "";
|
|
46
99
|
}
|
|
47
100
|
/**
|
|
48
101
|
* Meaningful only for a clone `isCaptureAllowed` admits. An owner grant outranks a repo grant, which outranks a per-clone
|
|
@@ -60,4 +113,14 @@ export function captureBasis(home, slug) {
|
|
|
60
113
|
}
|
|
61
114
|
return { kind: "clone" };
|
|
62
115
|
}
|
|
116
|
+
/**
|
|
117
|
+
* The granted folders `status` names as refused: what the target records stopped in the last `sinceMs`, MINUS any folder that is no
|
|
118
|
+
* longer granted (excluded, or removed), so a folder the user has since turned off does not read as refused for ever. A record the
|
|
119
|
+
* drain forgot (DRAIN_FORGET_MS) is not listed either: names only, read from the target records, no transcript is opened.
|
|
120
|
+
*/
|
|
121
|
+
export function refusedFoldersNow(home, sinceMs) {
|
|
122
|
+
return readStoppedFolders(home, sinceMs)
|
|
123
|
+
.filter((stop) => folderStandingOf(home, stop.folder) === "granted")
|
|
124
|
+
.map((stop) => ({ folder: stop.folder, at: stop.at }));
|
|
125
|
+
}
|
|
63
126
|
//# sourceMappingURL=machine_state.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"machine_state.js","sourceRoot":"","sources":["../src/machine_state.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAe,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"machine_state.js","sourceRoot":"","sources":["../src/machine_state.ts"],"names":[],"mappings":"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"}
|
package/dist/oauth/discovery.js
CHANGED
|
@@ -38,6 +38,7 @@
|
|
|
38
38
|
*/
|
|
39
39
|
import { isAllowedIngestUrl } from "../post.js";
|
|
40
40
|
import { CHALLENGE_METHOD } from "./pkce.js";
|
|
41
|
+
import { stripTrailing } from "../text_tail.js";
|
|
41
42
|
/** RFC 9728 §3.1. */
|
|
42
43
|
export const PROTECTED_RESOURCE_PATH = "/.well-known/oauth-protected-resource";
|
|
43
44
|
/** RFC 8414 §3. */
|
|
@@ -115,7 +116,7 @@ export async function discover(resourceUrl, deps) {
|
|
|
115
116
|
if (!isAllowedIngestUrl(issuer)) {
|
|
116
117
|
return { kind: "malformed", url: prmUrl, detail: "insecure_endpoint" };
|
|
117
118
|
}
|
|
118
|
-
const asUrl = `${issuer
|
|
119
|
+
const asUrl = `${stripTrailing(issuer, "/")}${AUTHORIZATION_SERVER_PATH}`;
|
|
119
120
|
const as = await getJson(asUrl, deps);
|
|
120
121
|
if (!as.ok)
|
|
121
122
|
return { kind: "unreachable", url: asUrl };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discovery.js","sourceRoot":"","sources":["../../src/oauth/discovery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"discovery.js","sourceRoot":"","sources":["../../src/oauth/discovery.ts"],"names":[],"mappings":"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"}
|
package/dist/oauth/pkce.js
CHANGED
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
* @provenance vibecommit-mcp src/oauth/discovery.ts — `code_challenge_methods_supported`, retyped
|
|
20
20
|
*/
|
|
21
21
|
import { createHash, randomBytes, timingSafeEqual } from "node:crypto";
|
|
22
|
+
import { stripTrailing } from "../text_tail.js";
|
|
22
23
|
/**
|
|
23
24
|
* The one supported challenge method. Declared `const` so it is a literal type:
|
|
24
25
|
* `method: "S256"` cannot be assigned `"plain"` anywhere downstream.
|
|
@@ -36,7 +37,7 @@ const VERIFIER_BYTES = 32;
|
|
|
36
37
|
const STATE_BYTES = 32;
|
|
37
38
|
/** RFC 4648 §5 base64url, unpadded — the encoding both ends of PKCE use. */
|
|
38
39
|
export function base64url(bytes) {
|
|
39
|
-
return bytes.toString("base64")
|
|
40
|
+
return stripTrailing(bytes.toString("base64"), "=").replace(/\+/g, "-").replace(/\//g, "_");
|
|
40
41
|
}
|
|
41
42
|
/**
|
|
42
43
|
* Mint a fresh verifier and its challenge.
|
package/dist/oauth/pkce.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pkce.js","sourceRoot":"","sources":["../../src/oauth/pkce.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"pkce.js","sourceRoot":"","sources":["../../src/oauth/pkce.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAe,CAAC;AAGhD;;;;;;GAMG;AACH,MAAM,cAAc,GAAG,EAAE,CAAC;AAE1B,+EAA+E;AAC/E,MAAM,WAAW,GAAG,EAAE,CAAC;AAUvB,4EAA4E;AAC5E,MAAM,UAAU,SAAS,CAAC,KAAa;IACrC,OAAO,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAC9F,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY;IAC1B,MAAM,QAAQ,GAAG,SAAS,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC;IACxD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;AACnF,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,YAAY,CAAC,QAAgB;IAC3C,OAAO,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AACnE,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,aAAa;IAC3B,OAAO,SAAS,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC;AAC7C,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,WAAW,CAAC,QAAgB,EAAE,SAAiB;IAC7D,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACxC,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACzC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IACxC,OAAO,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/B,CAAC"}
|