@wayai/cli 0.3.8 → 0.3.9
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/dist/commands/status.js
CHANGED
|
@@ -15,7 +15,7 @@ import { getAccessToken } from '../lib/auth.js';
|
|
|
15
15
|
import { readRepoConfig } from '../lib/repo-config.js';
|
|
16
16
|
import { detectWorkspace, findGitRoot, scanWorkspaceHubs } from '../lib/workspace.js';
|
|
17
17
|
import { readLock } from '../lib/hub-lock.js';
|
|
18
|
-
import { ApiClient } from '../lib/api-client.js';
|
|
18
|
+
import { ApiClient, ApiError } from '../lib/api-client.js';
|
|
19
19
|
import { CLI_CACHE_FILE, SKILL_CACHE_FILE, readCachedLatest } from '../lib/version-cache.js';
|
|
20
20
|
import { findInstalledSkills, lowestInstalledVersion, } from '../lib/skill-version.js';
|
|
21
21
|
import { isNewerVersion } from '../lib/utils.js';
|
|
@@ -92,19 +92,25 @@ export async function statusCommand(args, pkg) {
|
|
|
92
92
|
}
|
|
93
93
|
return;
|
|
94
94
|
}
|
|
95
|
-
// Logged-in path: validate token, then enrich with
|
|
96
|
-
|
|
95
|
+
// Logged-in path: validate token against the backend, then enrich with data.
|
|
96
|
+
// token_valid reflects backend acceptance (not just storage load) so users
|
|
97
|
+
// can't be fooled into thinking auth works when API calls 401.
|
|
97
98
|
let accessToken = null;
|
|
99
|
+
let tokenLoaded = false;
|
|
98
100
|
try {
|
|
99
101
|
accessToken = await getAccessToken(config);
|
|
100
|
-
|
|
102
|
+
tokenLoaded = true;
|
|
101
103
|
}
|
|
102
104
|
catch {
|
|
103
|
-
|
|
105
|
+
tokenLoaded = false;
|
|
104
106
|
}
|
|
105
107
|
let userEmail = null;
|
|
106
108
|
let orgs = [];
|
|
107
|
-
|
|
109
|
+
// An empty-string accessToken bypasses the API-call branch below, so flag
|
|
110
|
+
// it as definitively-invalid up front rather than leaving it as the
|
|
111
|
+
// "validity unknown" sentinel.
|
|
112
|
+
let tokenValid = tokenLoaded && accessToken ? null : false;
|
|
113
|
+
if (tokenLoaded && accessToken) {
|
|
108
114
|
const client = new ApiClient({ apiUrl: config.api_url, accessToken });
|
|
109
115
|
const [meResult, orgsResult] = await Promise.allSettled([
|
|
110
116
|
client.me(),
|
|
@@ -112,7 +118,16 @@ export async function statusCommand(args, pkg) {
|
|
|
112
118
|
]);
|
|
113
119
|
if (meResult.status === 'fulfilled') {
|
|
114
120
|
userEmail = meResult.value.email || null;
|
|
121
|
+
tokenValid = true;
|
|
115
122
|
}
|
|
123
|
+
else if (meResult.reason instanceof ApiError && meResult.reason.isExpected) {
|
|
124
|
+
// Any 4xx is the backend deciding "this token isn't acceptable" — 401
|
|
125
|
+
// (invalid/expired/stale), 403 (scope revoked, deletion-pending),
|
|
126
|
+
// 404 (user gone). Treat all as definitive rejection.
|
|
127
|
+
tokenValid = false;
|
|
128
|
+
}
|
|
129
|
+
// Other failures (network unreachable, 5xx) leave tokenValid as null —
|
|
130
|
+
// "couldn't determine" is more truthful than "valid" or "invalid".
|
|
116
131
|
if (orgsResult.status === 'fulfilled') {
|
|
117
132
|
orgs = orgsResult.value.organizations.map((o) => ({ id: o.id, name: o.name }));
|
|
118
133
|
}
|
|
@@ -148,9 +163,11 @@ export async function statusCommand(args, pkg) {
|
|
|
148
163
|
return;
|
|
149
164
|
}
|
|
150
165
|
// Human-readable output.
|
|
151
|
-
const tokenStatus = tokenValid
|
|
166
|
+
const tokenStatus = tokenValid === true
|
|
152
167
|
? 'token valid'
|
|
153
|
-
:
|
|
168
|
+
: tokenValid === false
|
|
169
|
+
? 'token rejected — run `wayai login` to re-authenticate'
|
|
170
|
+
: 'token validity unknown — backend unreachable';
|
|
154
171
|
console.log(`Logged in${userEmail ? ` as ${userEmail}` : ''} — ${tokenStatus}`);
|
|
155
172
|
if (config.api_url !== 'https://api.wayai.pro') {
|
|
156
173
|
console.log(`API: ${config.api_url}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAmB,MAAM,uBAAuB,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACtF,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,17 @@ interface KeyringBinding {
|
|
|
14
14
|
setPassword(service: string, account: string, password: string): Promise<void>;
|
|
15
15
|
deletePassword(service: string, account: string): Promise<boolean>;
|
|
16
16
|
}
|
|
17
|
+
/**
|
|
18
|
+
* A keyring slot was deleted but a subsequent getPassword still returned a
|
|
19
|
+
* value — the underlying secret store accepted the delete call without
|
|
20
|
+
* actually removing the entry. Typically a macOS Keychain ACL surviving
|
|
21
|
+
* from a prior login. Until the slot is cleared, writes to other slots
|
|
22
|
+
* cannot reliably override what reads pick up first.
|
|
23
|
+
*/
|
|
24
|
+
export declare class StaleKeyringSlotError extends Error {
|
|
25
|
+
readonly account: string;
|
|
26
|
+
constructor(account: string);
|
|
27
|
+
}
|
|
17
28
|
export declare function migrateLegacyTokens(): Promise<ResolvedToken | null>;
|
|
18
29
|
export declare function getToken(): Promise<ResolvedToken | null>;
|
|
19
30
|
export declare function setWayToken(token: string): Promise<void>;
|
package/dist/lib/token-store.js
CHANGED
|
@@ -17,6 +17,54 @@ const KEY_OAUTH_REFRESH = 'oauth_refresh_token';
|
|
|
17
17
|
function configDir() { return path.join(os.homedir(), '.wayai'); }
|
|
18
18
|
function configPath() { return path.join(configDir(), 'config.json'); }
|
|
19
19
|
let keyringCache;
|
|
20
|
+
// Cross-platform manual cleanup hint. @napi-rs/keyring targets macOS Keychain,
|
|
21
|
+
// libsecret on Linux, and Windows Credential Manager — the shell command to
|
|
22
|
+
// evict a stuck entry differs per OS, so we tailor the message rather than
|
|
23
|
+
// printing a macOS-only `security` invocation to Linux/Windows users.
|
|
24
|
+
function manualCleanupCommand(account) {
|
|
25
|
+
if (process.platform === 'darwin') {
|
|
26
|
+
return `security delete-generic-password -s ${KEYRING_SERVICE} -a ${account}`;
|
|
27
|
+
}
|
|
28
|
+
if (process.platform === 'win32') {
|
|
29
|
+
return `cmdkey /delete:${KEYRING_SERVICE}/${account}`;
|
|
30
|
+
}
|
|
31
|
+
if (process.platform === 'linux') {
|
|
32
|
+
return `secret-tool clear service ${KEYRING_SERVICE} account ${account}`;
|
|
33
|
+
}
|
|
34
|
+
return `(remove the entry with service="${KEYRING_SERVICE}" account="${account}" from your OS credential store)`;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* A keyring slot was deleted but a subsequent getPassword still returned a
|
|
38
|
+
* value — the underlying secret store accepted the delete call without
|
|
39
|
+
* actually removing the entry. Typically a macOS Keychain ACL surviving
|
|
40
|
+
* from a prior login. Until the slot is cleared, writes to other slots
|
|
41
|
+
* cannot reliably override what reads pick up first.
|
|
42
|
+
*/
|
|
43
|
+
export class StaleKeyringSlotError extends Error {
|
|
44
|
+
account;
|
|
45
|
+
constructor(account) {
|
|
46
|
+
super(`Stale credential remains in OS keyring slot "${account}" after delete. ` +
|
|
47
|
+
`This usually means a prior login left an ACL the current process can't override. ` +
|
|
48
|
+
`Clean it up manually and retry:\n` +
|
|
49
|
+
` ${manualCleanupCommand(account)}`);
|
|
50
|
+
this.account = account;
|
|
51
|
+
this.name = 'StaleKeyringSlotError';
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
async function clearSlot(keyring, account) {
|
|
55
|
+
await keyring.deletePassword(KEYRING_SERVICE, account);
|
|
56
|
+
// A throw from getPassword (locked keychain, libsecret hiccup) means we
|
|
57
|
+
// cannot confirm the slot is empty — treat the same as "stale entry
|
|
58
|
+
// survived" so callers throw StaleKeyringSlotError rather than degrading
|
|
59
|
+
// to file fallback (which would write OAuth alongside a possibly-stuck
|
|
60
|
+
// way_, reproducing the masked-credential bug this helper exists to stop).
|
|
61
|
+
try {
|
|
62
|
+
return (await keyring.getPassword(KEYRING_SERVICE, account)) === null;
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
return false;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
20
68
|
async function getKeyring() {
|
|
21
69
|
if (keyringCache !== undefined)
|
|
22
70
|
return keyringCache;
|
|
@@ -175,11 +223,25 @@ export async function setWayToken(token) {
|
|
|
175
223
|
const keyring = await getKeyring();
|
|
176
224
|
if (keyring) {
|
|
177
225
|
try {
|
|
178
|
-
// Mutually exclusive auth modes — clear OAuth keys before setting way_.
|
|
179
|
-
await keyring.deletePassword(KEYRING_SERVICE, KEY_OAUTH_ACCESS);
|
|
180
|
-
await keyring.deletePassword(KEYRING_SERVICE, KEY_OAUTH_REFRESH);
|
|
181
226
|
await keyring.setPassword(KEYRING_SERVICE, KEY_WAY_TOKEN, token);
|
|
182
227
|
clearMetadataExpiresAt();
|
|
228
|
+
// Read precedence favors way_ over OAuth, so a leftover OAuth credential
|
|
229
|
+
// won't shadow this token — but `wayai logout` then misses it. Warn so
|
|
230
|
+
// the user can sweep it manually. Slots are independent — parallelize.
|
|
231
|
+
const [accessCleared, refreshCleared] = await Promise.all([
|
|
232
|
+
clearSlot(keyring, KEY_OAUTH_ACCESS),
|
|
233
|
+
clearSlot(keyring, KEY_OAUTH_REFRESH),
|
|
234
|
+
]);
|
|
235
|
+
const stuck = [
|
|
236
|
+
accessCleared ? null : KEY_OAUTH_ACCESS,
|
|
237
|
+
refreshCleared ? null : KEY_OAUTH_REFRESH,
|
|
238
|
+
].filter((a) => a !== null);
|
|
239
|
+
if (stuck.length > 0) {
|
|
240
|
+
console.warn([
|
|
241
|
+
`wayai: stale OAuth credential persists in OS keyring after delete. Commands work, but \`wayai logout\` won't fully clear. Manually:`,
|
|
242
|
+
...stuck.map((a) => ` ${manualCleanupCommand(a)}`),
|
|
243
|
+
].join('\n'));
|
|
244
|
+
}
|
|
183
245
|
return;
|
|
184
246
|
}
|
|
185
247
|
catch (err) {
|
|
@@ -194,7 +256,13 @@ export async function setOAuthTokens(access_token, refresh_token, expires_at) {
|
|
|
194
256
|
const keyring = await getKeyring();
|
|
195
257
|
if (keyring) {
|
|
196
258
|
try {
|
|
197
|
-
|
|
259
|
+
// way_ wins the read race, so a leftover way_ would silently mask the
|
|
260
|
+
// OAuth tokens we're about to write — every subsequent API call would
|
|
261
|
+
// send the dead way_ and the backend would reject it. Verify the slot
|
|
262
|
+
// is actually empty after deletePassword and fail loudly otherwise.
|
|
263
|
+
if (!(await clearSlot(keyring, KEY_WAY_TOKEN))) {
|
|
264
|
+
throw new StaleKeyringSlotError(KEY_WAY_TOKEN);
|
|
265
|
+
}
|
|
198
266
|
await keyring.setPassword(KEYRING_SERVICE, KEY_OAUTH_ACCESS, access_token);
|
|
199
267
|
if (refresh_token) {
|
|
200
268
|
await keyring.setPassword(KEYRING_SERVICE, KEY_OAUTH_REFRESH, refresh_token);
|
|
@@ -203,6 +271,10 @@ export async function setOAuthTokens(access_token, refresh_token, expires_at) {
|
|
|
203
271
|
return;
|
|
204
272
|
}
|
|
205
273
|
catch (err) {
|
|
274
|
+
// StaleKeyringSlotError propagates — file fallback can't help because
|
|
275
|
+
// the next read still hits the stuck keyring slot first.
|
|
276
|
+
if (err instanceof StaleKeyringSlotError)
|
|
277
|
+
throw err;
|
|
206
278
|
console.warn(`wayai: keyring write failed (${err.message}); falling back to file storage.`);
|
|
207
279
|
}
|
|
208
280
|
}
|
|
@@ -211,9 +283,16 @@ export async function setOAuthTokens(access_token, refresh_token, expires_at) {
|
|
|
211
283
|
export async function clearTokens() {
|
|
212
284
|
const keyring = await getKeyring();
|
|
213
285
|
if (keyring) {
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
await
|
|
286
|
+
// Slots are independent — run all three in parallel (3 keyring RPCs vs 6).
|
|
287
|
+
const slots = [KEY_WAY_TOKEN, KEY_OAUTH_ACCESS, KEY_OAUTH_REFRESH];
|
|
288
|
+
const cleared = await Promise.all(slots.map((account) => clearSlot(keyring, account)));
|
|
289
|
+
for (const [i, ok] of cleared.entries()) {
|
|
290
|
+
if (!ok) {
|
|
291
|
+
const account = slots[i];
|
|
292
|
+
console.warn(`wayai: could not clear keyring slot "${account}". Subsequent commands may still pick the stale token. Manually:\n` +
|
|
293
|
+
` ${manualCleanupCommand(account)}`);
|
|
294
|
+
}
|
|
295
|
+
}
|
|
217
296
|
}
|
|
218
297
|
if (fs.existsSync(configPath())) {
|
|
219
298
|
fs.unlinkSync(configPath());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token-store.js","sourceRoot":"","sources":["../../src/lib/token-store.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"token-store.js","sourceRoot":"","sources":["../../src/lib/token-store.ts"],"names":[],"mappings":"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"}
|