@vibe-commit/capture 0.4.5 → 0.6.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 +57 -1
- package/dist/atomic_write.d.ts +14 -0
- package/dist/atomic_write.js +33 -0
- package/dist/atomic_write.js.map +1 -0
- package/dist/commands/auth.d.ts +26 -2
- package/dist/commands/auth.js +68 -13
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/browser_credential.d.ts +39 -12
- package/dist/commands/browser_credential.js +84 -11
- package/dist/commands/browser_credential.js.map +1 -1
- package/dist/commands/connect.d.ts +6 -2
- package/dist/commands/connect.js +140 -42
- package/dist/commands/connect.js.map +1 -1
- package/dist/commands/credential_problem.d.ts +43 -0
- package/dist/commands/credential_problem.js +81 -0
- package/dist/commands/credential_problem.js.map +1 -0
- package/dist/commands/device_credential.d.ts +47 -0
- package/dist/commands/device_credential.js +275 -0
- package/dist/commands/device_credential.js.map +1 -0
- package/dist/commands/finish_mint.d.ts +73 -0
- package/dist/commands/finish_mint.js +140 -0
- package/dist/commands/finish_mint.js.map +1 -0
- package/dist/commands/probe.d.ts +14 -0
- package/dist/commands/probe.js +29 -0
- package/dist/commands/probe.js.map +1 -0
- package/dist/commands/status.js +36 -52
- package/dist/commands/status.js.map +1 -1
- package/dist/copy/index.d.ts +1 -1
- package/dist/copy/index.js +1 -1
- package/dist/copy/index.js.map +1 -1
- package/dist/copy/strings.d.ts +183 -4
- package/dist/copy/strings.js +192 -6
- package/dist/copy/strings.js.map +1 -1
- package/dist/credential.d.ts +25 -0
- package/dist/credential.js +41 -3
- package/dist/credential.js.map +1 -1
- package/dist/credential_meta.d.ts +66 -0
- package/dist/credential_meta.js +164 -0
- package/dist/credential_meta.js.map +1 -0
- package/dist/device_mode.d.ts +18 -0
- package/dist/device_mode.js +28 -0
- package/dist/device_mode.js.map +1 -0
- package/dist/hooks/entry.d.ts +5 -0
- package/dist/hooks/entry.js +40 -5
- package/dist/hooks/entry.js.map +1 -1
- package/dist/index.js +33 -2
- package/dist/index.js.map +1 -1
- package/dist/install.d.ts +37 -0
- package/dist/install.js +29 -2
- package/dist/install.js.map +1 -1
- package/dist/oauth/device.d.ts +129 -0
- package/dist/oauth/device.js +194 -0
- package/dist/oauth/device.js.map +1 -0
- package/dist/oauth/discovery.d.ts +5 -0
- package/dist/oauth/discovery.js +6 -0
- package/dist/oauth/discovery.js.map +1 -1
- package/dist/oauth/mint.d.ts +18 -5
- package/dist/oauth/mint.js +18 -5
- package/dist/oauth/mint.js.map +1 -1
- package/dist/oauth/retire.d.ts +64 -0
- package/dist/oauth/retire.js +106 -0
- package/dist/oauth/retire.js.map +1 -0
- package/dist/oauth/signin.d.ts +12 -0
- package/dist/oauth/signin.js +5 -1
- package/dist/oauth/signin.js.map +1 -1
- package/dist/oauth/token.d.ts +1 -0
- package/dist/oauth/token.js +5 -0
- package/dist/oauth/token.js.map +1 -1
- package/dist/oauth/whoami.d.ts +55 -0
- package/dist/oauth/whoami.js +77 -0
- package/dist/oauth/whoami.js.map +1 -0
- package/dist/paths.d.ts +19 -0
- package/dist/paths.js +25 -0
- package/dist/paths.js.map +1 -1
- package/dist/post.d.ts +39 -4
- package/dist/post.js +103 -16
- package/dist/post.js.map +1 -1
- package/dist/state.d.ts +11 -0
- package/dist/state.js +33 -0
- package/dist/state.js.map +1 -1
- package/dist/system_message.d.ts +21 -2
- package/dist/system_message.js +37 -7
- package/dist/system_message.js.map +1 -1
- package/dist/term.d.ts +6 -0
- package/dist/term.js +15 -0
- package/dist/term.js.map +1 -1
- package/dist/update_nudge.d.ts +31 -0
- package/dist/update_nudge.js +127 -0
- package/dist/update_nudge.js.map +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `POST /oauth/ingest-credential/retire` — retire the credential this one replaces (G4).
|
|
3
|
+
*
|
|
4
|
+
* ```
|
|
5
|
+
* POST <mcp origin>/oauth/ingest-credential/retire
|
|
6
|
+
* Authorization: Bearer <the NEW vcik_> { "old_token": "vcik_…" }
|
|
7
|
+
*
|
|
8
|
+
* 200 { "retired": true } the old credential was revoked with reason 'rotated'
|
|
9
|
+
* 200 { "retired": false } the ONE uniform answer for not-found / other user / other org /
|
|
10
|
+
* already revoked / same token — the server never says which
|
|
11
|
+
* 401 opaque · 400 { "error": "invalid_request" } · 429 retry-after · 404 an older server
|
|
12
|
+
* ```
|
|
13
|
+
*
|
|
14
|
+
* ## Self-revoke (brief A3)
|
|
15
|
+
*
|
|
16
|
+
* The same route, body exactly `{ "self": true }`, Bearer = the credential to revoke: the bearer's own
|
|
17
|
+
* row is revoked (`user_revoke`) and the answer is 200 `{ "retired": true }`. It exists for the one
|
|
18
|
+
* case the two-token form cannot serve: a re-auth the user DECLINES after the browser landed in a
|
|
19
|
+
* different workspace. The credential just minted there is the one to remove, and the only credential
|
|
20
|
+
* this machine holds in that workspace is that one. A 404 (a server without it) or any failure leaves
|
|
21
|
+
* the credential live and unused, and the caller says where to revoke it.
|
|
22
|
+
*
|
|
23
|
+
* Proof of possession: the caller holds BOTH tokens, over the same TLS every ingest already uses.
|
|
24
|
+
* The old token travels in the body, never in argv or a URL. A 404 means "this server cannot
|
|
25
|
+
* retire", which the caller prints as "unknown" rather than as a failure — nothing is lost either
|
|
26
|
+
* way, the old row simply lives until it expires and shows in Settings.
|
|
27
|
+
*
|
|
28
|
+
* ⛔ `old_token` IS A SECRET, so nothing in this module renders a response body or an error.
|
|
29
|
+
*
|
|
30
|
+
* @provenance vibecommit-mcp src/transport/server.ts — POST /oauth/ingest-credential/retire, retyped
|
|
31
|
+
*/
|
|
32
|
+
import { HTTP_TIMEOUT_MS } from "./signin.js";
|
|
33
|
+
export const RETIRE_PATH = "/oauth/ingest-credential/retire";
|
|
34
|
+
export function retireUrl(mcpEndpoint) {
|
|
35
|
+
return new URL(RETIRE_PATH, mcpEndpoint).toString();
|
|
36
|
+
}
|
|
37
|
+
export async function retireCredential(mcpEndpoint, replacement, old, deps) {
|
|
38
|
+
const controller = new AbortController();
|
|
39
|
+
const timer = setTimeout(() => controller.abort(), deps.timeoutMs ?? HTTP_TIMEOUT_MS);
|
|
40
|
+
try {
|
|
41
|
+
const res = await deps.fetch(retireUrl(mcpEndpoint), {
|
|
42
|
+
method: "POST",
|
|
43
|
+
headers: {
|
|
44
|
+
authorization: `Bearer ${replacement.expose()}`,
|
|
45
|
+
"content-type": "application/json",
|
|
46
|
+
accept: "application/json",
|
|
47
|
+
},
|
|
48
|
+
body: JSON.stringify({ old_token: old.expose() }),
|
|
49
|
+
signal: controller.signal,
|
|
50
|
+
redirect: "error",
|
|
51
|
+
});
|
|
52
|
+
if (res.status === 404)
|
|
53
|
+
return { kind: "unknown" };
|
|
54
|
+
if (res.status !== 200)
|
|
55
|
+
return { kind: "failed" };
|
|
56
|
+
const doc = (await res.json());
|
|
57
|
+
if (doc?.retired === true)
|
|
58
|
+
return { kind: "retired" };
|
|
59
|
+
if (doc?.retired === false)
|
|
60
|
+
return { kind: "not-retired" };
|
|
61
|
+
return { kind: "failed" };
|
|
62
|
+
}
|
|
63
|
+
catch {
|
|
64
|
+
return { kind: "failed" };
|
|
65
|
+
}
|
|
66
|
+
finally {
|
|
67
|
+
clearTimeout(timer);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Revoke `credential` with itself as the bearer — see "Self-revoke" above.
|
|
72
|
+
*
|
|
73
|
+
* `retired` only on a clean 200 `{ retired: true }`; a 404 is `unknown` (an older server); everything
|
|
74
|
+
* else — 401, 400, 429, 5xx, a timeout, a body off-contract — is `failed`. Never throws, and the
|
|
75
|
+
* result carries nothing of the credential.
|
|
76
|
+
*/
|
|
77
|
+
export async function selfRevokeCredential(mcpEndpoint, credential, deps) {
|
|
78
|
+
const controller = new AbortController();
|
|
79
|
+
const timer = setTimeout(() => controller.abort(), deps.timeoutMs ?? HTTP_TIMEOUT_MS);
|
|
80
|
+
try {
|
|
81
|
+
const res = await deps.fetch(retireUrl(mcpEndpoint), {
|
|
82
|
+
method: "POST",
|
|
83
|
+
headers: {
|
|
84
|
+
authorization: `Bearer ${credential.expose()}`,
|
|
85
|
+
"content-type": "application/json",
|
|
86
|
+
accept: "application/json",
|
|
87
|
+
},
|
|
88
|
+
body: JSON.stringify({ self: true }),
|
|
89
|
+
signal: controller.signal,
|
|
90
|
+
redirect: "error",
|
|
91
|
+
});
|
|
92
|
+
if (res.status === 404)
|
|
93
|
+
return { kind: "unknown" };
|
|
94
|
+
if (res.status !== 200)
|
|
95
|
+
return { kind: "failed" };
|
|
96
|
+
const doc = (await res.json());
|
|
97
|
+
return doc?.retired === true ? { kind: "retired" } : { kind: "failed" };
|
|
98
|
+
}
|
|
99
|
+
catch {
|
|
100
|
+
return { kind: "failed" };
|
|
101
|
+
}
|
|
102
|
+
finally {
|
|
103
|
+
clearTimeout(timer);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=retire.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retire.js","sourceRoot":"","sources":["../../src/oauth/retire.ts"],"names":[],"mappings":"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"}
|
package/dist/oauth/signin.d.ts
CHANGED
|
@@ -54,6 +54,14 @@ export interface SignInDeps {
|
|
|
54
54
|
};
|
|
55
55
|
readonly deadlineMs?: number;
|
|
56
56
|
readonly timeoutMs?: number;
|
|
57
|
+
/** Ask the authorize page to bind this org — see `buildAuthorizeUrl`. */
|
|
58
|
+
readonly orgId?: string;
|
|
59
|
+
/**
|
|
60
|
+
* `CR-234d`. When the browser could not be opened, stop with `no-browser` BEFORE printing the URL or
|
|
61
|
+
* waiting — the caller falls back to the device flow, because a loopback listener on a machine with no
|
|
62
|
+
* browser waits out the whole deadline for nobody. Off, the URL is printed and the wait runs, as it always has.
|
|
63
|
+
*/
|
|
64
|
+
readonly fallbackOnNoBrowser?: boolean;
|
|
57
65
|
}
|
|
58
66
|
export type SignIn = {
|
|
59
67
|
readonly kind: "ok";
|
|
@@ -81,6 +89,10 @@ export type SignIn = {
|
|
|
81
89
|
readonly kind: "unreachable";
|
|
82
90
|
} | {
|
|
83
91
|
readonly kind: "malformed";
|
|
92
|
+
}
|
|
93
|
+
/** `fallbackOnNoBrowser` was set and the browser could not be opened. Nothing was printed or bound. */
|
|
94
|
+
| {
|
|
95
|
+
readonly kind: "no-browser";
|
|
84
96
|
};
|
|
85
97
|
/**
|
|
86
98
|
* Open a URL in the platform browser.
|
package/dist/oauth/signin.js
CHANGED
|
@@ -104,8 +104,12 @@ export async function signIn(deps) {
|
|
|
104
104
|
challenge: pkce.challenge,
|
|
105
105
|
state,
|
|
106
106
|
redirectUri: loopback.redirectUri,
|
|
107
|
+
...(deps.orgId === undefined ? {} : { orgId: deps.orgId }),
|
|
107
108
|
});
|
|
108
|
-
|
|
109
|
+
const opened = deps.openBrowser(url);
|
|
110
|
+
if (!opened && deps.fallbackOnNoBrowser === true)
|
|
111
|
+
return { kind: "no-browser" };
|
|
112
|
+
deps.onAuthorizeUrl(url, opened);
|
|
109
113
|
callback = await loopback.result;
|
|
110
114
|
}
|
|
111
115
|
finally {
|
package/dist/oauth/signin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signin.js","sourceRoot":"","sources":["../../src/oauth/signin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAG3C,OAAO,EAAE,QAAQ,EAAuC,MAAM,gBAAgB,CAAC;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,0BAA0B,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,WAAW,EAAmC,MAAM,WAAW,CAAC;AAClF,OAAO,EAAE,QAAQ,EAAmC,MAAM,WAAW,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAkC,MAAM,cAAc,CAAC;AACjG,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,YAAY,EAAqB,MAAM,YAAY,CAAC;AAE9F;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,GAAG,MAAM,CAAC;AAE7C,mFAAmF;AACnF,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"signin.js","sourceRoot":"","sources":["../../src/oauth/signin.ts"],"names":[],"mappings":"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"}
|
package/dist/oauth/token.d.ts
CHANGED
package/dist/oauth/token.js
CHANGED
|
@@ -178,6 +178,11 @@ export function buildAuthorizeUrl(authorizationEndpoint, input) {
|
|
|
178
178
|
url.searchParams.set("state", input.state);
|
|
179
179
|
url.searchParams.set("code_challenge", input.challenge);
|
|
180
180
|
url.searchParams.set("code_challenge_method", CHALLENGE_METHOD);
|
|
181
|
+
// Re-auth binds the org of the credential it replaces (plan item 2(a), brief A1). Only ever
|
|
182
|
+
// set from a FILE credential the server just confirmed; the web page drops anything that is
|
|
183
|
+
// not a UUID, and the membership check at authorize-complete is the server's.
|
|
184
|
+
if (input.orgId !== undefined)
|
|
185
|
+
url.searchParams.set("org_id", input.orgId);
|
|
181
186
|
return url.toString();
|
|
182
187
|
}
|
|
183
188
|
//# sourceMappingURL=token.js.map
|
package/dist/oauth/token.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token.js","sourceRoot":"","sources":["../../src/oauth/token.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"token.js","sourceRoot":"","sources":["../../src/oauth/token.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `GET /ingest/v1/whoami` — does the server still accept this credential, and whose is it?
|
|
3
|
+
*
|
|
4
|
+
* The probe `connect` runs BEFORE it sends (R12) and `auth` runs on a credential it is about to
|
|
5
|
+
* replace and on the one it just minted. Slice 1's answer to G1: `connect` printed "Capturing" over a
|
|
6
|
+
* dead credential because nothing asked the server.
|
|
7
|
+
*
|
|
8
|
+
* ```
|
|
9
|
+
* GET <ingest origin>/ingest/v1/whoami Authorization: Bearer vcik_…
|
|
10
|
+
* 200 { credential_id, org_id, org_name, expires_at, account } account = GitHub handle | null
|
|
11
|
+
* 401 { "error": "unauthorized" } opaque — the reason is in the server's logs only
|
|
12
|
+
* ```
|
|
13
|
+
*
|
|
14
|
+
* ⛔ THREE OUTCOMES, AND ONLY ONE OF THEM IS "DEAD". `unauthorized` is a 401 and nothing else.
|
|
15
|
+
* Everything that is not a clean 200 or a clean 401 — a 5xx, a 404 from a server that predates the
|
|
16
|
+
* route, a timeout, a network error, a body that is not what the contract says — is `unavailable`:
|
|
17
|
+
* the server did not answer the question, so the caller must not conclude the credential is dead
|
|
18
|
+
* (that is the "a blip is not a failed install" rule, `connect.ts`).
|
|
19
|
+
*
|
|
20
|
+
* The server stamps `last_used_at` for a probe and never `last_ingest_at`, so a whoami is not a
|
|
21
|
+
* capture in Settings.
|
|
22
|
+
*
|
|
23
|
+
* @provenance vibecommit-mcp src/transport/server.ts — GET /ingest/v1/whoami request and response, retyped
|
|
24
|
+
*/
|
|
25
|
+
import type { IngestCredential } from "../credential.js";
|
|
26
|
+
export declare const WHOAMI_PATH = "/ingest/v1/whoami";
|
|
27
|
+
/** Long enough for a healthy server, short enough that `connect` never feels hung (R12). */
|
|
28
|
+
export declare const WHOAMI_TIMEOUT_MS = 2000;
|
|
29
|
+
export interface WhoamiFacts {
|
|
30
|
+
readonly credentialId: string;
|
|
31
|
+
readonly orgId: string;
|
|
32
|
+
readonly orgName: string;
|
|
33
|
+
/** ISO 8601, or null when the server omitted it. */
|
|
34
|
+
readonly expiresAt: string | null;
|
|
35
|
+
/** The approver's GitHub handle, or null. */
|
|
36
|
+
readonly account: string | null;
|
|
37
|
+
}
|
|
38
|
+
export type Whoami = ({
|
|
39
|
+
readonly kind: "ok";
|
|
40
|
+
} & WhoamiFacts)
|
|
41
|
+
/** 401, and only 401. */
|
|
42
|
+
| {
|
|
43
|
+
readonly kind: "unauthorized";
|
|
44
|
+
}
|
|
45
|
+
/** No answer to the question: 5xx, 404, timeout, network, or a body off-contract. */
|
|
46
|
+
| {
|
|
47
|
+
readonly kind: "unavailable";
|
|
48
|
+
};
|
|
49
|
+
export interface WhoamiDeps {
|
|
50
|
+
readonly fetch: typeof fetch;
|
|
51
|
+
readonly timeoutMs?: number;
|
|
52
|
+
}
|
|
53
|
+
/** The probe URL, on the same origin as the ingest URL the credential is sent to. */
|
|
54
|
+
export declare function whoamiUrl(ingestUrl: string): string;
|
|
55
|
+
export declare function whoami(ingestUrl: string, credential: IngestCredential, deps: WhoamiDeps): Promise<Whoami>;
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `GET /ingest/v1/whoami` — does the server still accept this credential, and whose is it?
|
|
3
|
+
*
|
|
4
|
+
* The probe `connect` runs BEFORE it sends (R12) and `auth` runs on a credential it is about to
|
|
5
|
+
* replace and on the one it just minted. Slice 1's answer to G1: `connect` printed "Capturing" over a
|
|
6
|
+
* dead credential because nothing asked the server.
|
|
7
|
+
*
|
|
8
|
+
* ```
|
|
9
|
+
* GET <ingest origin>/ingest/v1/whoami Authorization: Bearer vcik_…
|
|
10
|
+
* 200 { credential_id, org_id, org_name, expires_at, account } account = GitHub handle | null
|
|
11
|
+
* 401 { "error": "unauthorized" } opaque — the reason is in the server's logs only
|
|
12
|
+
* ```
|
|
13
|
+
*
|
|
14
|
+
* ⛔ THREE OUTCOMES, AND ONLY ONE OF THEM IS "DEAD". `unauthorized` is a 401 and nothing else.
|
|
15
|
+
* Everything that is not a clean 200 or a clean 401 — a 5xx, a 404 from a server that predates the
|
|
16
|
+
* route, a timeout, a network error, a body that is not what the contract says — is `unavailable`:
|
|
17
|
+
* the server did not answer the question, so the caller must not conclude the credential is dead
|
|
18
|
+
* (that is the "a blip is not a failed install" rule, `connect.ts`).
|
|
19
|
+
*
|
|
20
|
+
* The server stamps `last_used_at` for a probe and never `last_ingest_at`, so a whoami is not a
|
|
21
|
+
* capture in Settings.
|
|
22
|
+
*
|
|
23
|
+
* @provenance vibecommit-mcp src/transport/server.ts — GET /ingest/v1/whoami request and response, retyped
|
|
24
|
+
*/
|
|
25
|
+
import { CLIENT_VERSION, CLIENT_VERSION_HEADER } from "../version.js";
|
|
26
|
+
export const WHOAMI_PATH = "/ingest/v1/whoami";
|
|
27
|
+
/** Long enough for a healthy server, short enough that `connect` never feels hung (R12). */
|
|
28
|
+
export const WHOAMI_TIMEOUT_MS = 2_000;
|
|
29
|
+
/** The probe URL, on the same origin as the ingest URL the credential is sent to. */
|
|
30
|
+
export function whoamiUrl(ingestUrl) {
|
|
31
|
+
return new URL(WHOAMI_PATH, ingestUrl).toString();
|
|
32
|
+
}
|
|
33
|
+
const nonEmpty = (v) => typeof v === "string" && v !== "";
|
|
34
|
+
export async function whoami(ingestUrl, credential, deps) {
|
|
35
|
+
const controller = new AbortController();
|
|
36
|
+
const timer = setTimeout(() => controller.abort(), deps.timeoutMs ?? WHOAMI_TIMEOUT_MS);
|
|
37
|
+
try {
|
|
38
|
+
const res = await deps.fetch(whoamiUrl(ingestUrl), {
|
|
39
|
+
method: "GET",
|
|
40
|
+
headers: {
|
|
41
|
+
// The request boundary — a credential's plaintext is used here and in `post.ts`.
|
|
42
|
+
authorization: `Bearer ${credential.expose()}`,
|
|
43
|
+
accept: "application/json",
|
|
44
|
+
[CLIENT_VERSION_HEADER.toLowerCase()]: CLIENT_VERSION,
|
|
45
|
+
},
|
|
46
|
+
signal: controller.signal,
|
|
47
|
+
redirect: "error",
|
|
48
|
+
});
|
|
49
|
+
if (res.status === 401)
|
|
50
|
+
return { kind: "unauthorized" };
|
|
51
|
+
if (res.status !== 200)
|
|
52
|
+
return { kind: "unavailable" };
|
|
53
|
+
// The timer stays armed through the body: a server that sends headers and then stalls is
|
|
54
|
+
// still a probe that must not hang `connect`.
|
|
55
|
+
const doc = (await res.json());
|
|
56
|
+
if (typeof doc !== "object" || doc === null)
|
|
57
|
+
return { kind: "unavailable" };
|
|
58
|
+
if (!nonEmpty(doc.credential_id) || !nonEmpty(doc.org_id) || !nonEmpty(doc.org_name)) {
|
|
59
|
+
return { kind: "unavailable" };
|
|
60
|
+
}
|
|
61
|
+
return {
|
|
62
|
+
kind: "ok",
|
|
63
|
+
credentialId: doc.credential_id,
|
|
64
|
+
orgId: doc.org_id,
|
|
65
|
+
orgName: doc.org_name,
|
|
66
|
+
expiresAt: nonEmpty(doc.expires_at) ? doc.expires_at : null,
|
|
67
|
+
account: nonEmpty(doc.account) ? doc.account : null,
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
catch {
|
|
71
|
+
return { kind: "unavailable" };
|
|
72
|
+
}
|
|
73
|
+
finally {
|
|
74
|
+
clearTimeout(timer);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=whoami.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"whoami.js","sourceRoot":"","sources":["../../src/oauth/whoami.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAGH,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAEtE,MAAM,CAAC,MAAM,WAAW,GAAG,mBAAmB,CAAC;AAE/C,4FAA4F;AAC5F,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,CAAC;AAwBvC,qFAAqF;AACrF,MAAM,UAAU,SAAS,CAAC,SAAiB;IACzC,OAAO,IAAI,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC;AACpD,CAAC;AAED,MAAM,QAAQ,GAAG,CAAC,CAAU,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;AAEhF,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,SAAiB,EACjB,UAA4B,EAC5B,IAAgB;IAEhB,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,SAAS,IAAI,iBAAiB,CAAC,CAAC;IACxF,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE;YACjD,MAAM,EAAE,KAAK;YACb,OAAO,EAAE;gBACP,iFAAiF;gBACjF,aAAa,EAAE,UAAU,UAAU,CAAC,MAAM,EAAE,EAAE;gBAC9C,MAAM,EAAE,kBAAkB;gBAC1B,CAAC,qBAAqB,CAAC,WAAW,EAAE,CAAC,EAAE,cAAc;aACtD;YACD,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC;QACH,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;YAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;QACxD,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;YAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;QACvD,yFAAyF;QACzF,8CAA8C;QAC9C,MAAM,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAmC,CAAC;QACjE,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;YAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;QAC5E,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACrF,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;QACjC,CAAC;QACD,OAAO;YACL,IAAI,EAAE,IAAI;YACV,YAAY,EAAE,GAAG,CAAC,aAAa;YAC/B,KAAK,EAAE,GAAG,CAAC,MAAM;YACjB,OAAO,EAAE,GAAG,CAAC,QAAQ;YACrB,SAAS,EAAE,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI;YAC3D,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;SACpD,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;IACjC,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;AACH,CAAC"}
|
package/dist/paths.d.ts
CHANGED
|
@@ -37,6 +37,16 @@ export declare function sessionPath(home: string): string;
|
|
|
37
37
|
* the three negative `systemMessage` states use a per-session file.
|
|
38
38
|
*/
|
|
39
39
|
export declare function stateDir(home: string): string;
|
|
40
|
+
/**
|
|
41
|
+
* What this machine knows ABOUT its credentials, keyed by fingerprint — `R10`.
|
|
42
|
+
*
|
|
43
|
+
* A SIDECAR and not extra keys in `credentials.json`: hooks learn things about a credential (the
|
|
44
|
+
* server's expiry header) and must never rewrite the secret file, because a hook holding the old
|
|
45
|
+
* token could race a re-auth and write it back. `credentials.json` stays `{ token }`.
|
|
46
|
+
*/
|
|
47
|
+
export declare function credentialMetaPath(home: string): string;
|
|
48
|
+
/** The update nudge's 24-hour cache of what `GET /client/latest` said — `13A`. */
|
|
49
|
+
export declare function updateCheckPath(home: string): string;
|
|
40
50
|
/**
|
|
41
51
|
* Once-per-session marker for a `systemMessage` state.
|
|
42
52
|
*
|
|
@@ -71,6 +81,15 @@ export declare function sessionNoticePath(home: string, sessionId: string, state
|
|
|
71
81
|
* (`system_message.ts`'s `utcDay`), never read from a local clock here.
|
|
72
82
|
*/
|
|
73
83
|
export declare function repoDayNoticePath(home: string, repoKey: string, day: string, state: string): string;
|
|
84
|
+
/**
|
|
85
|
+
* Once-per-`(machine, day)` marker — `CR-234d`, state 5 ("this machine's credential ends …", decision 12A).
|
|
86
|
+
*
|
|
87
|
+
* State 4's rule applied to a thing that is about the MACHINE and not a repo: `PreCompact` mints a new
|
|
88
|
+
* `session_id` mid-task, and a repo key would repeat the warning once per checkout. `key` is the state name
|
|
89
|
+
* plus the credential's fingerprint, so replacing the credential re-arms it (the new one has a new end date).
|
|
90
|
+
* `day` is a UTC `YYYY-MM-DD` supplied by the caller, never read from a local clock here.
|
|
91
|
+
*/
|
|
92
|
+
export declare function machineDayNoticePath(home: string, day: string, key: string): string;
|
|
74
93
|
/**
|
|
75
94
|
* The binding key of the client's send state — `CR-017d`, the client half of
|
|
76
95
|
* `CR-017`.
|
package/dist/paths.js
CHANGED
|
@@ -50,6 +50,20 @@ export function sessionPath(home) {
|
|
|
50
50
|
export function stateDir(home) {
|
|
51
51
|
return join(rootDir(home), "state");
|
|
52
52
|
}
|
|
53
|
+
/**
|
|
54
|
+
* What this machine knows ABOUT its credentials, keyed by fingerprint — `R10`.
|
|
55
|
+
*
|
|
56
|
+
* A SIDECAR and not extra keys in `credentials.json`: hooks learn things about a credential (the
|
|
57
|
+
* server's expiry header) and must never rewrite the secret file, because a hook holding the old
|
|
58
|
+
* token could race a re-auth and write it back. `credentials.json` stays `{ token }`.
|
|
59
|
+
*/
|
|
60
|
+
export function credentialMetaPath(home) {
|
|
61
|
+
return join(stateDir(home), "credential-meta.json");
|
|
62
|
+
}
|
|
63
|
+
/** The update nudge's 24-hour cache of what `GET /client/latest` said — `13A`. */
|
|
64
|
+
export function updateCheckPath(home) {
|
|
65
|
+
return join(stateDir(home), "update-check.json");
|
|
66
|
+
}
|
|
53
67
|
/**
|
|
54
68
|
* Once-per-session marker for a `systemMessage` state.
|
|
55
69
|
*
|
|
@@ -88,6 +102,17 @@ export function sessionNoticePath(home, sessionId, state) {
|
|
|
88
102
|
export function repoDayNoticePath(home, repoKey, day, state) {
|
|
89
103
|
return join(stateDir(home), "notices", "repo-day", repoDigest(repoKey), sanitise(day), `${sanitise(state)}.json`);
|
|
90
104
|
}
|
|
105
|
+
/**
|
|
106
|
+
* Once-per-`(machine, day)` marker — `CR-234d`, state 5 ("this machine's credential ends …", decision 12A).
|
|
107
|
+
*
|
|
108
|
+
* State 4's rule applied to a thing that is about the MACHINE and not a repo: `PreCompact` mints a new
|
|
109
|
+
* `session_id` mid-task, and a repo key would repeat the warning once per checkout. `key` is the state name
|
|
110
|
+
* plus the credential's fingerprint, so replacing the credential re-arms it (the new one has a new end date).
|
|
111
|
+
* `day` is a UTC `YYYY-MM-DD` supplied by the caller, never read from a local clock here.
|
|
112
|
+
*/
|
|
113
|
+
export function machineDayNoticePath(home, day, key) {
|
|
114
|
+
return join(stateDir(home), "notices", "machine-day", sanitise(day), `${sanitise(key)}.json`);
|
|
115
|
+
}
|
|
91
116
|
/**
|
|
92
117
|
* Per-`(repo, session)` send state — `CR-018`'s offset ledger, backlog and
|
|
93
118
|
* terminal stop, keyed by `CR-017d`.
|
package/dist/paths.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"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"}
|
package/dist/post.d.ts
CHANGED
|
@@ -205,6 +205,13 @@ export type SendOutcome = {
|
|
|
205
205
|
* body read at all, and `deliver()`'s classification does not consult it.
|
|
206
206
|
*/
|
|
207
207
|
readonly detail: ErrorDetail | null;
|
|
208
|
+
/**
|
|
209
|
+
* ⭐ `conversation_id` from the ingest 2xx BODY — `connect`'s session link, and ONLY
|
|
210
|
+
* when the caller opted in (`SendOptions.readConversationId`). Absent otherwise, and
|
|
211
|
+
* absent whenever the body is missing, oversize, not JSON, stalled, reset or not a
|
|
212
|
+
* UUID. ⛔ It is never a reason for `outcome.kind` to be anything but `response`.
|
|
213
|
+
*/
|
|
214
|
+
readonly conversationId?: string;
|
|
208
215
|
/**
|
|
209
216
|
* ⛔ **`X-Capture-Id` — THE LANDING RECEIPT, AND ITS THREE STATES ARE THE
|
|
210
217
|
* WHOLE POINT (D209 §3).** A 200 means the DELTA was accepted; it has
|
|
@@ -221,9 +228,10 @@ export type SendOutcome = {
|
|
|
221
228
|
* `"<id>"` a capture was written. Drop.
|
|
222
229
|
*
|
|
223
230
|
* ⚠ Read from the HEADER, never the body: `readErrorDetail` states that a
|
|
224
|
-
* 2xx body is not read, not awaited and not parsed
|
|
225
|
-
* why the hook's hot path cannot throw on a response. A
|
|
226
|
-
* map lookup.
|
|
231
|
+
* 2xx body is not read, not awaited and not parsed ON THE HOOK PATH, and
|
|
232
|
+
* that property is why the hook's hot path cannot throw on a response. A
|
|
233
|
+
* header costs a map lookup. (`connect` alone opts in to a 2xx body read,
|
|
234
|
+
* for `conversation_id` — see `readConversationId`.)
|
|
227
235
|
*/
|
|
228
236
|
readonly captureId: string | null;
|
|
229
237
|
/**
|
|
@@ -263,11 +271,23 @@ export type SendOutcome = {
|
|
|
263
271
|
* a resend idempotent, so keeping on doubt costs a duplicate request, never a duplicate row.
|
|
264
272
|
*/
|
|
265
273
|
readonly inferredStored: number | null;
|
|
274
|
+
/**
|
|
275
|
+
* `X-Credential-Expires` (`CR-234d`, D219): where THIS credential stands — an ISO 8601 instant on every
|
|
276
|
+
* ingest 2xx. `null` when absent (a server that predates it) or not a date. The hook persists it to the
|
|
277
|
+
* credential-meta sidecar so state 5 can warn before the 365-day cap; it changes no disposition.
|
|
278
|
+
*/
|
|
279
|
+
readonly credentialExpires?: string | null;
|
|
266
280
|
}
|
|
267
281
|
/** No response at all — DNS, refused, TLS, timeout. Not an HTTP status. */
|
|
268
282
|
| {
|
|
269
283
|
readonly kind: "unreachable";
|
|
270
284
|
};
|
|
285
|
+
/**
|
|
286
|
+
* `X-Credential-Expires`: an ISO 8601 instant, or null. Only a string that parses as a date is believed —
|
|
287
|
+
* the value is printed (as a date) to a person and compared against the clock, so a header that is not one
|
|
288
|
+
* must read as "the server did not say", never as a date in 1970.
|
|
289
|
+
*/
|
|
290
|
+
export declare function parseCredentialExpires(raw: string | null): string | null;
|
|
271
291
|
/**
|
|
272
292
|
* One attempt. No retry, no backoff, no classification — `CR-018` owns all three.
|
|
273
293
|
*
|
|
@@ -279,7 +299,12 @@ export type SendOutcome = {
|
|
|
279
299
|
* broken the contract; returning `unreachable` keeps the decision with the
|
|
280
300
|
* caller.
|
|
281
301
|
*/
|
|
282
|
-
|
|
302
|
+
/** What a caller may ask `send()` for beyond the status and the headers. Every flag defaults OFF. */
|
|
303
|
+
export interface SendOptions {
|
|
304
|
+
/** Read `conversation_id` out of a 2xx body. ⛔ `connect` only — see `readConversationId`. */
|
|
305
|
+
readonly readConversationId?: boolean;
|
|
306
|
+
}
|
|
307
|
+
export declare function send(url: string, headers: Record<string, string>, body: Uint8Array, timeoutMs: number, options?: SendOptions): Promise<SendOutcome>;
|
|
283
308
|
/**
|
|
284
309
|
* A one-way digest of the credential, for the `fatal` stop's key.
|
|
285
310
|
*
|
|
@@ -333,6 +358,10 @@ export type Delivery =
|
|
|
333
358
|
* print ONE stderr line for the whole run, rather than one per request.
|
|
334
359
|
*/
|
|
335
360
|
readonly inferredSetAsidePairs: number;
|
|
361
|
+
/** `X-Credential-Expires` from the 2xx that delivered this, or `null`/absent. See `SendOutcome`. */
|
|
362
|
+
readonly credentialExpires?: string | null;
|
|
363
|
+
/** `conversation_id` from that 2xx, ONLY when the caller opted in and `disposition === "ok"`. See `SendOutcome`. */
|
|
364
|
+
readonly conversationId?: string;
|
|
336
365
|
};
|
|
337
366
|
export interface DeliveryContext {
|
|
338
367
|
readonly home: string;
|
|
@@ -409,6 +438,12 @@ export interface DeliveryContext {
|
|
|
409
438
|
* `vibecommit finalize` delivers through the same function and must leave it exactly as it found it (VG review 2, D2).
|
|
410
439
|
*/
|
|
411
440
|
readonly byHook: boolean;
|
|
441
|
+
/**
|
|
442
|
+
* ⛔ OPT-IN, OFF BY DEFAULT, AND ONLY `connect` SETS IT (eng-2 D2 = A). Reads `conversation_id` out of
|
|
443
|
+
* the ingest 2xx body for the session link. Hooks and `finalize` leave it unset, so neither ever
|
|
444
|
+
* reads, awaits or parses a 2xx body.
|
|
445
|
+
*/
|
|
446
|
+
readonly readConversationId?: boolean;
|
|
412
447
|
}
|
|
413
448
|
/**
|
|
414
449
|
* Send the undelivered span of one transcript file and apply the failure policy.
|