@namzu/cli 13.0.0 → 14.0.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 +11 -2
- package/dist/commands/login.d.ts +2 -0
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +79 -21
- package/dist/commands/login.js.map +1 -1
- package/dist/doctor/checks/credentials.d.ts.map +1 -1
- package/dist/doctor/checks/credentials.js +7 -1
- package/dist/doctor/checks/credentials.js.map +1 -1
- package/dist/integrations/providers/codex-device-login.d.ts +27 -0
- package/dist/integrations/providers/codex-device-login.d.ts.map +1 -0
- package/dist/integrations/providers/codex-device-login.js +195 -0
- package/dist/integrations/providers/codex-device-login.js.map +1 -0
- package/dist/integrations/providers/codex-oauth.d.ts +10 -0
- package/dist/integrations/providers/codex-oauth.d.ts.map +1 -0
- package/dist/integrations/providers/codex-oauth.js +95 -0
- package/dist/integrations/providers/codex-oauth.js.map +1 -0
- package/dist/integrations/providers/credential-store.d.ts +23 -4
- package/dist/integrations/providers/credential-store.d.ts.map +1 -1
- package/dist/integrations/providers/credential-store.js +125 -19
- package/dist/integrations/providers/credential-store.js.map +1 -1
- package/dist/integrations/providers/discover.d.ts +25 -13
- package/dist/integrations/providers/discover.d.ts.map +1 -1
- package/dist/integrations/providers/discover.js +98 -44
- package/dist/integrations/providers/discover.js.map +1 -1
- package/dist/integrations/providers/harness-credentials.d.ts +36 -0
- package/dist/integrations/providers/harness-credentials.d.ts.map +1 -0
- package/dist/integrations/providers/harness-credentials.js +146 -0
- package/dist/integrations/providers/harness-credentials.js.map +1 -0
- package/dist/integrations/providers/identity.d.ts +8 -15
- package/dist/integrations/providers/identity.d.ts.map +1 -1
- package/dist/integrations/providers/identity.js +8 -15
- package/dist/integrations/providers/identity.js.map +1 -1
- package/dist/integrations/providers/index.d.ts +5 -2
- package/dist/integrations/providers/index.d.ts.map +1 -1
- package/dist/integrations/providers/index.js +4 -1
- package/dist/integrations/providers/index.js.map +1 -1
- package/dist/integrations/providers/oauth.d.ts +2 -2
- package/dist/integrations/providers/oauth.d.ts.map +1 -1
- package/dist/integrations/providers/oauth.js +8 -5
- package/dist/integrations/providers/oauth.js.map +1 -1
- package/dist/integrations/providers/register.d.ts.map +1 -1
- package/dist/integrations/providers/register.js +9 -1
- package/dist/integrations/providers/register.js.map +1 -1
- package/dist/integrations/providers/registry.d.ts +8 -1
- package/dist/integrations/providers/registry.d.ts.map +1 -1
- package/dist/integrations/providers/registry.js +29 -0
- package/dist/integrations/providers/registry.js.map +1 -1
- package/dist/tui/App.d.ts.map +1 -1
- package/dist/tui/App.js +77 -64
- package/dist/tui/App.js.map +1 -1
- package/dist/tui/Picker.d.ts +5 -3
- package/dist/tui/Picker.d.ts.map +1 -1
- package/dist/tui/Picker.js +70 -22
- package/dist/tui/Picker.js.map +1 -1
- package/dist/tui/agent.d.ts.map +1 -1
- package/dist/tui/agent.js +107 -16
- package/dist/tui/agent.js.map +1 -1
- package/dist/tui/login-prompt.d.ts +5 -0
- package/dist/tui/login-prompt.d.ts.map +1 -1
- package/dist/tui/login-prompt.js +14 -0
- package/dist/tui/login-prompt.js.map +1 -1
- package/dist/tui/slashCommands.js +1 -1
- package/dist/tui/slashCommands.js.map +1 -1
- package/package.json +5 -5
|
@@ -35,11 +35,12 @@
|
|
|
35
35
|
* ## What is in the file
|
|
36
36
|
*
|
|
37
37
|
* { "version": 1,
|
|
38
|
-
* "subscription": { "accessToken", "refreshToken", "expiresAt", "scopes" }
|
|
38
|
+
* "subscription": { "accessToken", "refreshToken", "expiresAt", "scopes" },
|
|
39
|
+
* "codexSubscription": { "accessToken", "refreshToken", "expiresAt", "accountId" } }
|
|
39
40
|
*
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
*
|
|
41
|
+
* Each sibling is owned by Namzu's corresponding login flow and conditionally
|
|
42
|
+
* refreshed in place. Credentials borrowed from Claude or Codex remain in
|
|
43
|
+
* their owners' files/keychain and are never copied here.
|
|
43
44
|
*/
|
|
44
45
|
import type { AgentOAuthCredential } from './keychain.js';
|
|
45
46
|
export declare const CREDENTIALS_FILE_VERSION: 1;
|
|
@@ -54,6 +55,16 @@ export type ConditionalCredentialWrite = {
|
|
|
54
55
|
readonly replaced: false;
|
|
55
56
|
readonly current: AgentOAuthCredential | null;
|
|
56
57
|
};
|
|
58
|
+
export interface StoredCodexCredential extends AgentOAuthCredential {
|
|
59
|
+
readonly accountId: string;
|
|
60
|
+
}
|
|
61
|
+
export type ConditionalCodexCredentialWrite = {
|
|
62
|
+
readonly replaced: true;
|
|
63
|
+
readonly current: StoredCodexCredential;
|
|
64
|
+
} | {
|
|
65
|
+
readonly replaced: false;
|
|
66
|
+
readonly current: StoredCodexCredential | null;
|
|
67
|
+
};
|
|
57
68
|
export declare function credentialsPath(home?: string): string;
|
|
58
69
|
/**
|
|
59
70
|
* The stored subscription credential, or `null` when there is none.
|
|
@@ -65,6 +76,8 @@ export declare function credentialsPath(home?: string): string;
|
|
|
65
76
|
* the operator to try again.
|
|
66
77
|
*/
|
|
67
78
|
export declare function readStoredSubscriptionCredential(home?: string): AgentOAuthCredential | null;
|
|
79
|
+
/** The Namzu-owned ChatGPT/Codex subscription, if one was obtained here. */
|
|
80
|
+
export declare function readStoredCodexCredential(home?: string): StoredCodexCredential | null;
|
|
68
81
|
/**
|
|
69
82
|
* Write the credential, privately, or throw having written nothing that lasts.
|
|
70
83
|
*
|
|
@@ -75,6 +88,8 @@ export declare function readStoredSubscriptionCredential(home?: string): AgentOA
|
|
|
75
88
|
* removes.
|
|
76
89
|
*/
|
|
77
90
|
export declare function writeStoredSubscriptionCredential(cred: AgentOAuthCredential, home?: string): string;
|
|
91
|
+
export declare function writeStoredCodexCredential(cred: StoredCodexCredential, home?: string): string;
|
|
92
|
+
export declare function replaceStoredCodexCredential(expected: StoredCodexCredential, replacement: StoredCodexCredential, home?: string): ConditionalCodexCredentialWrite;
|
|
78
93
|
/**
|
|
79
94
|
* Replace exactly the credential a refresh was derived from.
|
|
80
95
|
*
|
|
@@ -87,6 +102,10 @@ export declare function writeStoredSubscriptionCredential(cred: AgentOAuthCreden
|
|
|
87
102
|
export declare function replaceStoredSubscriptionCredential(expected: AgentOAuthCredential, replacement: AgentOAuthCredential, home?: string): ConditionalCredentialWrite;
|
|
88
103
|
/** Remove the stored credential. Absence is success. */
|
|
89
104
|
export declare function clearStoredSubscriptionCredential(home?: string): void;
|
|
105
|
+
/** Remove only the Namzu-owned Codex subscription; borrowed harness auth is untouched. */
|
|
106
|
+
export declare function clearStoredCodexCredential(home?: string): void;
|
|
107
|
+
/** Remove every credential Namzu owns in one store mutation. */
|
|
108
|
+
export declare function clearAllStoredCredentials(home?: string): void;
|
|
90
109
|
/**
|
|
91
110
|
* Make `path` readable and writable by its owner and by nobody else, and
|
|
92
111
|
* PROVE it. Throws `CredentialStoreError` when the proof cannot be produced.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credential-store.d.ts","sourceRoot":"","sources":["../../../src/integrations/providers/credential-store.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"credential-store.d.ts","sourceRoot":"","sources":["../../../src/integrations/providers/credential-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAoBH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AAKzD,eAAO,MAAM,wBAAwB,EAAG,CAAU,CAAA;AAElD,wFAAwF;AACxF,qBAAa,oBAAqB,SAAQ,KAAK;IAC9C,SAAkB,IAAI,0BAAyB;CAC/C;AAED,MAAM,MAAM,0BAA0B,GACnC;IAAE,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,oBAAoB,CAAA;CAAE,GACnE;IAAE,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAAA;CAAE,CAAA;AAE9E,MAAM,WAAW,qBAAsB,SAAQ,oBAAoB;IAClE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC1B;AAED,MAAM,MAAM,+BAA+B,GACxC;IAAE,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,qBAAqB,CAAA;CAAE,GACpE;IACA,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAA;IACxB,QAAQ,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI,CAAA;CAC7C,CAAA;AAQJ,wBAAgB,eAAe,CAAC,IAAI,GAAE,MAAkB,GAAG,MAAM,CAEhE;AAED;;;;;;;;GAQG;AACH,wBAAgB,gCAAgC,CAC/C,IAAI,GAAE,MAAkB,GACtB,oBAAoB,GAAG,IAAI,CAE7B;AAED,4EAA4E;AAC5E,wBAAgB,yBAAyB,CAAC,IAAI,GAAE,MAAkB,GAAG,qBAAqB,GAAG,IAAI,CAEhG;AAsDD;;;;;;;;GAQG;AACH,wBAAgB,iCAAiC,CAChD,IAAI,EAAE,oBAAoB,EAC1B,IAAI,GAAE,MAAkB,GACtB,MAAM,CAUR;AAED,wBAAgB,0BAA0B,CACzC,IAAI,EAAE,qBAAqB,EAC3B,IAAI,GAAE,MAAkB,GACtB,MAAM,CAcR;AAED,wBAAgB,4BAA4B,CAC3C,QAAQ,EAAE,qBAAqB,EAC/B,WAAW,EAAE,qBAAqB,EAClC,IAAI,GAAE,MAAkB,GACtB,+BAA+B,CAiBjC;AAED;;;;;;;;GAQG;AACH,wBAAgB,mCAAmC,CAClD,QAAQ,EAAE,oBAAoB,EAC9B,WAAW,EAAE,oBAAoB,EACjC,IAAI,GAAE,MAAkB,GACtB,0BAA0B,CAiB5B;AA4DD,wDAAwD;AACxD,wBAAgB,iCAAiC,CAAC,IAAI,GAAE,MAAkB,GAAG,IAAI,CAiBhF;AAED,0FAA0F;AAC1F,wBAAgB,0BAA0B,CAAC,IAAI,GAAE,MAAkB,GAAG,IAAI,CAczE;AAED,gEAAgE;AAChE,wBAAgB,yBAAyB,CAAC,IAAI,GAAE,MAAkB,GAAG,IAAI,CAIxE;AAsGD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAiBlD;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAMpE;AAgDD;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAiBvD;AAED,qFAAqF;AACrF,wBAAgB,cAAc,IAAI,MAAM,GAAG,IAAI,CAc9C;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAoCjF"}
|
|
@@ -35,11 +35,12 @@
|
|
|
35
35
|
* ## What is in the file
|
|
36
36
|
*
|
|
37
37
|
* { "version": 1,
|
|
38
|
-
* "subscription": { "accessToken", "refreshToken", "expiresAt", "scopes" }
|
|
38
|
+
* "subscription": { "accessToken", "refreshToken", "expiresAt", "scopes" },
|
|
39
|
+
* "codexSubscription": { "accessToken", "refreshToken", "expiresAt", "accountId" } }
|
|
39
40
|
*
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
*
|
|
41
|
+
* Each sibling is owned by Namzu's corresponding login flow and conditionally
|
|
42
|
+
* refreshed in place. Credentials borrowed from Claude or Codex remain in
|
|
43
|
+
* their owners' files/keychain and are never copied here.
|
|
43
44
|
*/
|
|
44
45
|
import { execFileSync } from 'node:child_process';
|
|
45
46
|
import { randomBytes } from 'node:crypto';
|
|
@@ -66,6 +67,13 @@ export function credentialsPath(home = homedir()) {
|
|
|
66
67
|
* the operator to try again.
|
|
67
68
|
*/
|
|
68
69
|
export function readStoredSubscriptionCredential(home = homedir()) {
|
|
70
|
+
return readCredentialDocument(home)?.subscription ?? null;
|
|
71
|
+
}
|
|
72
|
+
/** The Namzu-owned ChatGPT/Codex subscription, if one was obtained here. */
|
|
73
|
+
export function readStoredCodexCredential(home = homedir()) {
|
|
74
|
+
return readCredentialDocument(home)?.codexSubscription ?? null;
|
|
75
|
+
}
|
|
76
|
+
function readCredentialDocument(home) {
|
|
69
77
|
let raw;
|
|
70
78
|
try {
|
|
71
79
|
raw = readFileSync(credentialsPath(home), 'utf8');
|
|
@@ -82,10 +90,28 @@ export function readStoredSubscriptionCredential(home = homedir()) {
|
|
|
82
90
|
}
|
|
83
91
|
if (typeof parsed !== 'object' || parsed === null)
|
|
84
92
|
return null;
|
|
85
|
-
const
|
|
86
|
-
|
|
93
|
+
const root = parsed;
|
|
94
|
+
const subscription = parseCredential(root.subscription);
|
|
95
|
+
const codexBase = parseCredential(root.codexSubscription);
|
|
96
|
+
const codexRecord = typeof root.codexSubscription === 'object' && root.codexSubscription !== null
|
|
97
|
+
? root.codexSubscription
|
|
98
|
+
: null;
|
|
99
|
+
const accountId = codexRecord?.accountId;
|
|
100
|
+
const codexSubscription = codexBase && typeof accountId === 'string' && accountId.length > 0
|
|
101
|
+
? { ...codexBase, accountId }
|
|
102
|
+
: undefined;
|
|
103
|
+
if (!subscription && !codexSubscription)
|
|
104
|
+
return null;
|
|
105
|
+
return {
|
|
106
|
+
version: CREDENTIALS_FILE_VERSION,
|
|
107
|
+
...(subscription ? { subscription } : {}),
|
|
108
|
+
...(codexSubscription ? { codexSubscription } : {}),
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
function parseCredential(value) {
|
|
112
|
+
if (typeof value !== 'object' || value === null)
|
|
87
113
|
return null;
|
|
88
|
-
const rec =
|
|
114
|
+
const rec = value;
|
|
89
115
|
const accessToken = rec.accessToken;
|
|
90
116
|
if (typeof accessToken !== 'string' || accessToken.length === 0)
|
|
91
117
|
return null;
|
|
@@ -110,7 +136,38 @@ export function readStoredSubscriptionCredential(home = homedir()) {
|
|
|
110
136
|
export function writeStoredSubscriptionCredential(cred, home = homedir()) {
|
|
111
137
|
const path = credentialsPath(home);
|
|
112
138
|
mkdirSync(dirname(path), { recursive: true, mode: DIR_MODE });
|
|
113
|
-
return withCredentialStoreLock(path, () =>
|
|
139
|
+
return withCredentialStoreLock(path, () => {
|
|
140
|
+
const current = readCredentialDocument(home);
|
|
141
|
+
return writeCredentialDocumentUnlocked({ version: CREDENTIALS_FILE_VERSION, ...current, subscription: cred }, path);
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
export function writeStoredCodexCredential(cred, home = homedir()) {
|
|
145
|
+
const path = credentialsPath(home);
|
|
146
|
+
mkdirSync(dirname(path), { recursive: true, mode: DIR_MODE });
|
|
147
|
+
return withCredentialStoreLock(path, () => {
|
|
148
|
+
const current = readCredentialDocument(home);
|
|
149
|
+
return writeCredentialDocumentUnlocked({
|
|
150
|
+
version: CREDENTIALS_FILE_VERSION,
|
|
151
|
+
...current,
|
|
152
|
+
codexSubscription: cred,
|
|
153
|
+
}, path);
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
export function replaceStoredCodexCredential(expected, replacement, home = homedir()) {
|
|
157
|
+
const path = credentialsPath(home);
|
|
158
|
+
mkdirSync(dirname(path), { recursive: true, mode: DIR_MODE });
|
|
159
|
+
return withCredentialStoreLock(path, () => {
|
|
160
|
+
const current = readStoredCodexCredential(home);
|
|
161
|
+
if (!sameCodexCredential(current, expected))
|
|
162
|
+
return { replaced: false, current };
|
|
163
|
+
const document = readCredentialDocument(home);
|
|
164
|
+
writeCredentialDocumentUnlocked({
|
|
165
|
+
version: CREDENTIALS_FILE_VERSION,
|
|
166
|
+
...document,
|
|
167
|
+
codexSubscription: replacement,
|
|
168
|
+
}, path);
|
|
169
|
+
return { replaced: true, current: replacement };
|
|
170
|
+
});
|
|
114
171
|
}
|
|
115
172
|
/**
|
|
116
173
|
* Replace exactly the credential a refresh was derived from.
|
|
@@ -128,21 +185,18 @@ export function replaceStoredSubscriptionCredential(expected, replacement, home
|
|
|
128
185
|
const current = readStoredSubscriptionCredential(home);
|
|
129
186
|
if (!sameCredential(current, expected))
|
|
130
187
|
return { replaced: false, current };
|
|
131
|
-
|
|
188
|
+
const document = readCredentialDocument(home);
|
|
189
|
+
writeCredentialDocumentUnlocked({
|
|
190
|
+
version: CREDENTIALS_FILE_VERSION,
|
|
191
|
+
...document,
|
|
192
|
+
subscription: replacement,
|
|
193
|
+
}, path);
|
|
132
194
|
return { replaced: true, current: replacement };
|
|
133
195
|
});
|
|
134
196
|
}
|
|
135
|
-
function
|
|
197
|
+
function writeCredentialDocumentUnlocked(document, path) {
|
|
136
198
|
const tmp = `${path}.tmp.${process.pid}.${randomBytes(6).toString('hex')}`;
|
|
137
|
-
const body = `${JSON.stringify(
|
|
138
|
-
version: CREDENTIALS_FILE_VERSION,
|
|
139
|
-
subscription: {
|
|
140
|
-
accessToken: cred.accessToken,
|
|
141
|
-
...(cred.refreshToken ? { refreshToken: cred.refreshToken } : {}),
|
|
142
|
-
...(cred.expiresAt ? { expiresAt: cred.expiresAt } : {}),
|
|
143
|
-
...(cred.scopes ? { scopes: cred.scopes } : {}),
|
|
144
|
-
},
|
|
145
|
-
}, null, 2)}\n`;
|
|
199
|
+
const body = `${JSON.stringify(serializeDocument(document), null, 2)}\n`;
|
|
146
200
|
let fd;
|
|
147
201
|
try {
|
|
148
202
|
// `wx` — refuse an existing path rather than truncate one, so a name
|
|
@@ -173,8 +227,57 @@ function writeStoredSubscriptionCredentialUnlocked(cred, path) {
|
|
|
173
227
|
}
|
|
174
228
|
return path;
|
|
175
229
|
}
|
|
230
|
+
function serializeDocument(document) {
|
|
231
|
+
const credential = (value) => ({
|
|
232
|
+
accessToken: value.accessToken,
|
|
233
|
+
...(value.refreshToken ? { refreshToken: value.refreshToken } : {}),
|
|
234
|
+
...(value.expiresAt ? { expiresAt: value.expiresAt } : {}),
|
|
235
|
+
...(value.scopes ? { scopes: value.scopes } : {}),
|
|
236
|
+
});
|
|
237
|
+
return {
|
|
238
|
+
version: CREDENTIALS_FILE_VERSION,
|
|
239
|
+
...(document.subscription ? { subscription: credential(document.subscription) } : {}),
|
|
240
|
+
...(document.codexSubscription
|
|
241
|
+
? {
|
|
242
|
+
codexSubscription: {
|
|
243
|
+
...credential(document.codexSubscription),
|
|
244
|
+
accountId: document.codexSubscription.accountId,
|
|
245
|
+
},
|
|
246
|
+
}
|
|
247
|
+
: {}),
|
|
248
|
+
};
|
|
249
|
+
}
|
|
176
250
|
/** Remove the stored credential. Absence is success. */
|
|
177
251
|
export function clearStoredSubscriptionCredential(home = homedir()) {
|
|
252
|
+
const path = credentialsPath(home);
|
|
253
|
+
mkdirSync(dirname(path), { recursive: true, mode: DIR_MODE });
|
|
254
|
+
withCredentialStoreLock(path, () => {
|
|
255
|
+
const current = readCredentialDocument(home);
|
|
256
|
+
if (!current?.codexSubscription) {
|
|
257
|
+
rmSync(path, { force: true });
|
|
258
|
+
return;
|
|
259
|
+
}
|
|
260
|
+
writeCredentialDocumentUnlocked({
|
|
261
|
+
version: CREDENTIALS_FILE_VERSION,
|
|
262
|
+
codexSubscription: current.codexSubscription,
|
|
263
|
+
}, path);
|
|
264
|
+
});
|
|
265
|
+
}
|
|
266
|
+
/** Remove only the Namzu-owned Codex subscription; borrowed harness auth is untouched. */
|
|
267
|
+
export function clearStoredCodexCredential(home = homedir()) {
|
|
268
|
+
const path = credentialsPath(home);
|
|
269
|
+
mkdirSync(dirname(path), { recursive: true, mode: DIR_MODE });
|
|
270
|
+
withCredentialStoreLock(path, () => {
|
|
271
|
+
const current = readCredentialDocument(home);
|
|
272
|
+
if (!current?.subscription) {
|
|
273
|
+
rmSync(path, { force: true });
|
|
274
|
+
return;
|
|
275
|
+
}
|
|
276
|
+
writeCredentialDocumentUnlocked({ version: CREDENTIALS_FILE_VERSION, subscription: current.subscription }, path);
|
|
277
|
+
});
|
|
278
|
+
}
|
|
279
|
+
/** Remove every credential Namzu owns in one store mutation. */
|
|
280
|
+
export function clearAllStoredCredentials(home = homedir()) {
|
|
178
281
|
const path = credentialsPath(home);
|
|
179
282
|
mkdirSync(dirname(path), { recursive: true, mode: DIR_MODE });
|
|
180
283
|
withCredentialStoreLock(path, () => rmSync(path, { force: true }));
|
|
@@ -192,6 +295,9 @@ function sameCredential(left, right) {
|
|
|
192
295
|
return (leftScopes.length === rightScopes.length &&
|
|
193
296
|
leftScopes.every((scope, index) => scope === rightScopes[index]));
|
|
194
297
|
}
|
|
298
|
+
function sameCodexCredential(left, right) {
|
|
299
|
+
return left?.accountId === right.accountId && sameCredential(left, right);
|
|
300
|
+
}
|
|
195
301
|
/**
|
|
196
302
|
* Run one synchronous store mutation with cross-process exclusion.
|
|
197
303
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credential-store.js","sourceRoot":"","sources":["../../../src/integrations/providers/credential-store.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"credential-store.js","sourceRoot":"","sources":["../../../src/integrations/providers/credential-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Credential discoverer for LLM provider clients.
|
|
3
3
|
*
|
|
4
|
-
* For each entry in `PROVIDER_REGISTRY`, ask four questions
|
|
5
|
-
* 1. Is
|
|
6
|
-
* 2. Is there a subscription credential in namzu's own store
|
|
7
|
-
*
|
|
8
|
-
* 3. Is there an OAuth credential in the login Keychain? (macOS only, and
|
|
9
|
-
* only `anthropic` consumes it.)
|
|
4
|
+
* For each entry in `PROVIDER_REGISTRY`, ask four questions:
|
|
5
|
+
* 1. Is there a usable session owned by an installed Claude or Codex harness?
|
|
6
|
+
* 2. Is there a subscription credential in namzu's own store?
|
|
7
|
+
* 3. Is one of its optional API-key env vars set in `process.env`?
|
|
10
8
|
* 4. Is the probe URL (if any) reachable right now?
|
|
11
9
|
*
|
|
12
10
|
* The header used to say "three" and list two, and the one it omitted was the
|
|
@@ -19,14 +17,12 @@
|
|
|
19
17
|
* hole.** `readAgentKeychainCredential` returns `null` on any other platform
|
|
20
18
|
* before it looks at anything; it reads a credential belonging to a
|
|
21
19
|
* co-installed tool, so it can only ever help someone who has that tool, on
|
|
22
|
-
* that operating system. namzu's own store
|
|
23
|
-
*
|
|
24
|
-
* namzu useful on a machine that has neither.
|
|
20
|
+
* that operating system. namzu's own store works everywhere, which is what
|
|
21
|
+
* makes signing in from inside namzu useful on a machine that has neither.
|
|
25
22
|
*
|
|
26
|
-
* Order
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
* ineffective on precisely the machine where they bothered to run it.
|
|
23
|
+
* Order matters when both answer. A current device-harness session wins; a
|
|
24
|
+
* Namzu-owned sign-in is the fallback for a machine that has no usable harness
|
|
25
|
+
* session. API-key/env sources remain optional alternatives after both.
|
|
30
26
|
*
|
|
31
27
|
* The first positive answer per provider wins; subsequent sources are
|
|
32
28
|
* recorded as "also available from" so the picker can show alternatives
|
|
@@ -72,6 +68,16 @@ export type DetectionSource = {
|
|
|
72
68
|
readonly kind: 'keychain';
|
|
73
69
|
readonly service: string;
|
|
74
70
|
}
|
|
71
|
+
/** A read-only Claude Code OAuth envelope owned by the Claude CLI. */
|
|
72
|
+
| {
|
|
73
|
+
readonly kind: 'claude-file';
|
|
74
|
+
readonly path: string;
|
|
75
|
+
}
|
|
76
|
+
/** A read-only ChatGPT/Codex OAuth envelope owned by the Codex CLI. */
|
|
77
|
+
| {
|
|
78
|
+
readonly kind: 'codex-file';
|
|
79
|
+
readonly path: string;
|
|
80
|
+
}
|
|
75
81
|
/**
|
|
76
82
|
* namzu's own credential store — a subscription the operator signed in to
|
|
77
83
|
* from inside namzu. Carries the path because "where did this come from"
|
|
@@ -115,6 +121,12 @@ export interface DetectedProvider {
|
|
|
115
121
|
readonly expiresAt?: number;
|
|
116
122
|
readonly origin?: CredentialOrigin;
|
|
117
123
|
};
|
|
124
|
+
/** Account-routed OAuth metadata for the Codex Responses backend. */
|
|
125
|
+
readonly codex?: {
|
|
126
|
+
readonly accountId: string;
|
|
127
|
+
readonly expiresAt?: number;
|
|
128
|
+
readonly origin: 'codex-file' | 'stored';
|
|
129
|
+
};
|
|
118
130
|
/** Other sources that also satisfy this provider — informational. */
|
|
119
131
|
readonly alternatives: readonly DetectionSource[];
|
|
120
132
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discover.d.ts","sourceRoot":"","sources":["../../../src/integrations/providers/discover.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"discover.d.ts","sourceRoot":"","sources":["../../../src/integrations/providers/discover.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Credential discoverer for LLM provider clients.
|
|
3
3
|
*
|
|
4
|
-
* For each entry in `PROVIDER_REGISTRY`, ask four questions
|
|
5
|
-
* 1. Is
|
|
6
|
-
* 2. Is there a subscription credential in namzu's own store
|
|
7
|
-
*
|
|
8
|
-
* 3. Is there an OAuth credential in the login Keychain? (macOS only, and
|
|
9
|
-
* only `anthropic` consumes it.)
|
|
4
|
+
* For each entry in `PROVIDER_REGISTRY`, ask four questions:
|
|
5
|
+
* 1. Is there a usable session owned by an installed Claude or Codex harness?
|
|
6
|
+
* 2. Is there a subscription credential in namzu's own store?
|
|
7
|
+
* 3. Is one of its optional API-key env vars set in `process.env`?
|
|
10
8
|
* 4. Is the probe URL (if any) reachable right now?
|
|
11
9
|
*
|
|
12
10
|
* The header used to say "three" and list two, and the one it omitted was the
|
|
@@ -19,14 +17,12 @@
|
|
|
19
17
|
* hole.** `readAgentKeychainCredential` returns `null` on any other platform
|
|
20
18
|
* before it looks at anything; it reads a credential belonging to a
|
|
21
19
|
* co-installed tool, so it can only ever help someone who has that tool, on
|
|
22
|
-
* that operating system. namzu's own store
|
|
23
|
-
*
|
|
24
|
-
* namzu useful on a machine that has neither.
|
|
20
|
+
* that operating system. namzu's own store works everywhere, which is what
|
|
21
|
+
* makes signing in from inside namzu useful on a machine that has neither.
|
|
25
22
|
*
|
|
26
|
-
* Order
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
* ineffective on precisely the machine where they bothered to run it.
|
|
23
|
+
* Order matters when both answer. A current device-harness session wins; a
|
|
24
|
+
* Namzu-owned sign-in is the fallback for a machine that has no usable harness
|
|
25
|
+
* session. API-key/env sources remain optional alternatives after both.
|
|
30
26
|
*
|
|
31
27
|
* The first positive answer per provider wins; subsequent sources are
|
|
32
28
|
* recorded as "also available from" so the picker can show alternatives
|
|
@@ -61,7 +57,8 @@
|
|
|
61
57
|
* picker can render immediately and refine if discovery completes later.
|
|
62
58
|
*/
|
|
63
59
|
import { EnvCredentialProvider } from '@namzu/sdk';
|
|
64
|
-
import { credentialsPath, readStoredSubscriptionCredential } from './credential-store.js';
|
|
60
|
+
import { credentialsPath, readStoredCodexCredential, readStoredSubscriptionCredential, } from './credential-store.js';
|
|
61
|
+
import { claudeCredentialsPath, codexCredentialsPath, preferFresherCredential, readClaudeFileCredential, readCodexFileCredential, } from './harness-credentials.js';
|
|
65
62
|
import { KEYCHAIN_SERVICE, readAgentKeychainCredential } from './keychain.js';
|
|
66
63
|
import { PROVIDER_REGISTRY } from './registry.js';
|
|
67
64
|
const DEFAULT_PROBE_TIMEOUT_MS = 500;
|
|
@@ -103,14 +100,96 @@ export async function discoverProviders(opts = {}) {
|
|
|
103
100
|
const storedCredential = opts.skipStored
|
|
104
101
|
? null
|
|
105
102
|
: readStoredSubscriptionCredential(...(opts.home === undefined ? [] : [opts.home]));
|
|
103
|
+
const storedCodexCredential = opts.skipStored
|
|
104
|
+
? null
|
|
105
|
+
: readStoredCodexCredential(...(opts.home === undefined ? [] : [opts.home]));
|
|
106
106
|
// macOS-only: the OAuth credential a co-installed tool keeps in the login
|
|
107
107
|
// Keychain.
|
|
108
108
|
const keychainCredential = opts.skipKeychain ? null : readAgentKeychainCredential();
|
|
109
|
+
const claudeFileCredential = readClaudeFileCredential(opts.home);
|
|
110
|
+
const codexFileCredential = readCodexFileCredential(opts.home, env);
|
|
111
|
+
const usableCodexFileCredential = codexFileCredential?.expiresAt === undefined ||
|
|
112
|
+
codexFileCredential.expiresAt - Date.now() > 60_000
|
|
113
|
+
? codexFileCredential
|
|
114
|
+
: null;
|
|
109
115
|
for (const id of Object.keys(PROVIDER_REGISTRY)) {
|
|
110
116
|
const entry = PROVIDER_REGISTRY[id];
|
|
111
117
|
const sources = [];
|
|
112
118
|
let apiKey;
|
|
113
119
|
let oauth;
|
|
120
|
+
let codex;
|
|
121
|
+
if (id === 'anthropic') {
|
|
122
|
+
const borrowed = preferFresherCredential(claudeFileCredential, keychainCredential);
|
|
123
|
+
const usableBorrowed = borrowed?.expiresAt === undefined || borrowed.expiresAt - Date.now() > 60_000
|
|
124
|
+
? borrowed
|
|
125
|
+
: null;
|
|
126
|
+
const borrowedSource = usableBorrowed === claudeFileCredential && usableBorrowed
|
|
127
|
+
? {
|
|
128
|
+
kind: 'claude-file',
|
|
129
|
+
path: claudeCredentialsPath(opts.home),
|
|
130
|
+
}
|
|
131
|
+
: usableBorrowed
|
|
132
|
+
? { kind: 'keychain', service: KEYCHAIN_SERVICE }
|
|
133
|
+
: undefined;
|
|
134
|
+
if (usableBorrowed && borrowedSource) {
|
|
135
|
+
if (apiKey === undefined) {
|
|
136
|
+
apiKey = usableBorrowed.accessToken;
|
|
137
|
+
oauth = {
|
|
138
|
+
refreshToken: usableBorrowed.refreshToken,
|
|
139
|
+
expiresAt: usableBorrowed.expiresAt,
|
|
140
|
+
origin: borrowedSource.kind === 'claude-file' ? 'claude-file' : 'keychain',
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
sources.push(borrowedSource);
|
|
144
|
+
}
|
|
145
|
+
const otherBorrowedSource = usableBorrowed && usableBorrowed === claudeFileCredential && keychainCredential
|
|
146
|
+
? { kind: 'keychain', service: KEYCHAIN_SERVICE }
|
|
147
|
+
: usableBorrowed && usableBorrowed === keychainCredential && claudeFileCredential
|
|
148
|
+
? {
|
|
149
|
+
kind: 'claude-file',
|
|
150
|
+
path: claudeCredentialsPath(opts.home),
|
|
151
|
+
}
|
|
152
|
+
: undefined;
|
|
153
|
+
if (otherBorrowedSource)
|
|
154
|
+
sources.push(otherBorrowedSource);
|
|
155
|
+
if (storedCredential) {
|
|
156
|
+
if (apiKey === undefined) {
|
|
157
|
+
apiKey = storedCredential.accessToken;
|
|
158
|
+
oauth = {
|
|
159
|
+
refreshToken: storedCredential.refreshToken,
|
|
160
|
+
expiresAt: storedCredential.expiresAt,
|
|
161
|
+
origin: 'stored',
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
sources.push({
|
|
165
|
+
kind: 'stored',
|
|
166
|
+
path: credentialsPath(...(opts.home === undefined ? [] : [opts.home])),
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
if (id === 'codex' && (storedCodexCredential || usableCodexFileCredential)) {
|
|
171
|
+
const credential = usableCodexFileCredential ?? storedCodexCredential;
|
|
172
|
+
if (!credential)
|
|
173
|
+
throw new Error('unreachable');
|
|
174
|
+
apiKey = credential.accessToken;
|
|
175
|
+
sources.push({
|
|
176
|
+
kind: usableCodexFileCredential ? 'codex-file' : 'stored',
|
|
177
|
+
path: usableCodexFileCredential
|
|
178
|
+
? codexCredentialsPath(opts.home, env)
|
|
179
|
+
: credentialsPath(...(opts.home === undefined ? [] : [opts.home])),
|
|
180
|
+
});
|
|
181
|
+
codex = {
|
|
182
|
+
accountId: credential.accountId,
|
|
183
|
+
expiresAt: credential.expiresAt,
|
|
184
|
+
origin: usableCodexFileCredential ? 'codex-file' : 'stored',
|
|
185
|
+
};
|
|
186
|
+
if (storedCodexCredential && usableCodexFileCredential) {
|
|
187
|
+
sources.push({
|
|
188
|
+
kind: 'stored',
|
|
189
|
+
path: credentialsPath(...(opts.home === undefined ? [] : [opts.home])),
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
}
|
|
114
193
|
for (const envName of entry.envVars) {
|
|
115
194
|
// Through the SDK's seam rather than a direct `env[envName]`. The
|
|
116
195
|
// read is identical; what changes is that a host embedding the SDK
|
|
@@ -124,35 +203,6 @@ export async function discoverProviders(opts = {}) {
|
|
|
124
203
|
sources.push({ kind: 'env', envName });
|
|
125
204
|
}
|
|
126
205
|
}
|
|
127
|
-
if (id === 'anthropic' && storedCredential) {
|
|
128
|
-
if (apiKey === undefined)
|
|
129
|
-
apiKey = storedCredential.accessToken;
|
|
130
|
-
sources.push({
|
|
131
|
-
kind: 'stored',
|
|
132
|
-
path: credentialsPath(...(opts.home === undefined ? [] : [opts.home])),
|
|
133
|
-
});
|
|
134
|
-
// Only carry refresh metadata when this token is the one we'll
|
|
135
|
-
// actually use (an env/secrets token has no refresh path).
|
|
136
|
-
if (apiKey === storedCredential.accessToken) {
|
|
137
|
-
oauth = {
|
|
138
|
-
refreshToken: storedCredential.refreshToken,
|
|
139
|
-
expiresAt: storedCredential.expiresAt,
|
|
140
|
-
origin: 'stored',
|
|
141
|
-
};
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
if (id === 'anthropic' && keychainCredential) {
|
|
145
|
-
if (apiKey === undefined)
|
|
146
|
-
apiKey = keychainCredential.accessToken;
|
|
147
|
-
sources.push({ kind: 'keychain', service: KEYCHAIN_SERVICE });
|
|
148
|
-
if (apiKey === keychainCredential.accessToken) {
|
|
149
|
-
oauth = {
|
|
150
|
-
refreshToken: keychainCredential.refreshToken,
|
|
151
|
-
expiresAt: keychainCredential.expiresAt,
|
|
152
|
-
origin: 'keychain',
|
|
153
|
-
};
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
206
|
if (sources.length === 0 && entry.probeUrl && !opts.skipProbes) {
|
|
157
207
|
const reachable = await probe(entry.probeUrl, opts);
|
|
158
208
|
if (reachable) {
|
|
@@ -166,6 +216,7 @@ export async function discoverProviders(opts = {}) {
|
|
|
166
216
|
apiKey,
|
|
167
217
|
baseUrl: entry.defaultBaseUrl,
|
|
168
218
|
...(oauth ? { oauth } : {}),
|
|
219
|
+
...(codex ? { codex } : {}),
|
|
169
220
|
alternatives: sources.slice(1),
|
|
170
221
|
});
|
|
171
222
|
}
|
|
@@ -177,7 +228,10 @@ async function probe(url, opts) {
|
|
|
177
228
|
const controller = new AbortController();
|
|
178
229
|
const timer = setTimeout(() => controller.abort(), opts.probeTimeoutMs ?? DEFAULT_PROBE_TIMEOUT_MS);
|
|
179
230
|
try {
|
|
180
|
-
const res = await fetchFn(url, {
|
|
231
|
+
const res = await fetchFn(url, {
|
|
232
|
+
method: 'GET',
|
|
233
|
+
signal: controller.signal,
|
|
234
|
+
});
|
|
181
235
|
return res.ok;
|
|
182
236
|
}
|
|
183
237
|
catch {
|