vskill 0.5.104 → 0.5.105
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 +123 -2
- package/agents.json +1 -1
- package/dist/agents/agents-registry.d.ts +0 -1
- package/dist/agents/agents-registry.js +10 -30
- package/dist/agents/agents-registry.js.map +1 -1
- package/dist/api/client.d.ts +21 -0
- package/dist/api/client.js +39 -5
- package/dist/api/client.js.map +1 -1
- package/dist/commands/diff.d.ts +2 -5
- package/dist/commands/diff.js +82 -117
- package/dist/commands/diff.js.map +1 -1
- package/dist/commands/eval/serve.js +4 -0
- package/dist/commands/eval/serve.js.map +1 -1
- package/dist/commands/keys.d.ts +14 -0
- package/dist/commands/keys.js +166 -0
- package/dist/commands/keys.js.map +1 -0
- package/dist/commands/masked-stdin.d.ts +14 -0
- package/dist/commands/masked-stdin.js +79 -0
- package/dist/commands/masked-stdin.js.map +1 -0
- package/dist/commands/skill.d.ts +3 -29
- package/dist/commands/skill.js +6 -32
- package/dist/commands/skill.js.map +1 -1
- package/dist/eval/anthropic-catalog.d.ts +49 -0
- package/dist/eval/anthropic-catalog.js +238 -0
- package/dist/eval/anthropic-catalog.js.map +1 -0
- package/dist/eval/llm.d.ts +1 -1
- package/dist/eval/llm.js +68 -10
- package/dist/eval/llm.js.map +1 -1
- package/dist/eval/mcp-detector.js +24 -3
- package/dist/eval/mcp-detector.js.map +1 -1
- package/dist/eval/model-resolver.d.ts +39 -0
- package/dist/eval/model-resolver.js +94 -0
- package/dist/eval/model-resolver.js.map +1 -0
- package/dist/eval/pricing.js +42 -16
- package/dist/eval/pricing.js.map +1 -1
- package/dist/eval-server/api-routes.d.ts +8 -0
- package/dist/eval-server/api-routes.js +212 -51
- package/dist/eval-server/api-routes.js.map +1 -1
- package/dist/eval-server/authoring-routes.js +21 -1
- package/dist/eval-server/authoring-routes.js.map +1 -1
- package/dist/eval-server/boot-preflight.js +8 -10
- package/dist/eval-server/boot-preflight.js.map +1 -1
- package/dist/eval-server/darwin-migrator.d.ts +57 -0
- package/dist/eval-server/darwin-migrator.js +169 -0
- package/dist/eval-server/darwin-migrator.js.map +1 -0
- package/dist/eval-server/eval-server.d.ts +1 -0
- package/dist/eval-server/eval-server.js +10 -0
- package/dist/eval-server/eval-server.js.map +1 -1
- package/dist/eval-server/providers.d.ts +7 -12
- package/dist/eval-server/providers.js +13 -15
- package/dist/eval-server/providers.js.map +1 -1
- package/dist/eval-server/settings-store.d.ts +31 -26
- package/dist/eval-server/settings-store.js +246 -143
- package/dist/eval-server/settings-store.js.map +1 -1
- package/dist/eval-server/skill-create-routes.js +18 -0
- package/dist/eval-server/skill-create-routes.js.map +1 -1
- package/dist/eval-ui/assets/{CommandPalette-DiPALzlG.js → CommandPalette-DAWyTgXL.js} +1 -1
- package/dist/eval-ui/assets/CreateSkillPage-D5xmvnzV.js +12 -0
- package/dist/eval-ui/assets/UpdateDropdown-6bfwsX0-.js +1 -0
- package/dist/eval-ui/assets/index-C_-YXE6O.js +102 -0
- package/dist/eval-ui/index.html +1 -1
- package/dist/first-run-onboarding.d.ts +19 -0
- package/dist/first-run-onboarding.js +104 -0
- package/dist/first-run-onboarding.js.map +1 -0
- package/dist/index.js +18 -0
- package/dist/index.js.map +1 -1
- package/dist/installer/canonical.js +12 -13
- package/dist/installer/canonical.js.map +1 -1
- package/dist/utils/resolve-binary.js +7 -8
- package/dist/utils/resolve-binary.js.map +1 -1
- package/package.json +3 -1
- package/dist/eval-ui/assets/CreateSkillPage-BMrFELep.js +0 -12
- package/dist/eval-ui/assets/UpdateDropdown-Bj8kZzuR.js +0 -1
- package/dist/eval-ui/assets/_shimNode-D3bBqrAh.js +0 -1
- package/dist/eval-ui/assets/index-BSPDkfZG.js +0 -102
- package/dist/eval-ui/assets/resolve-binary-DIxhrZ6O.js +0 -2
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
// ---------------------------------------------------------------------------
|
|
2
|
+
// darwin-migrator.ts — Optional one-shot migration from the pre-0702
|
|
3
|
+
// macOS Keychain storage model to the new file-backed settings store.
|
|
4
|
+
//
|
|
5
|
+
// Shape:
|
|
6
|
+
// - `available()` → probes the keychain for legacy entries so the UI can
|
|
7
|
+
// decide whether to show a migration banner.
|
|
8
|
+
// - `migrate()` → copies each legacy entry into the file store, writes
|
|
9
|
+
// a state file so this run is idempotent.
|
|
10
|
+
// - `acknowledge()` → user dismissed the banner; records ackedAt so we
|
|
11
|
+
// don't prompt again within the 30-day grace window.
|
|
12
|
+
//
|
|
13
|
+
// Security: raw keys never leak through logs. Only `redactKey()` output is
|
|
14
|
+
// emitted. Non-Darwin callers get a silent no-op (no `security` invocation).
|
|
15
|
+
// ---------------------------------------------------------------------------
|
|
16
|
+
import * as nodeFs from "node:fs";
|
|
17
|
+
import * as nodeChildProcess from "node:child_process";
|
|
18
|
+
import * as path from "node:path";
|
|
19
|
+
import * as os from "node:os";
|
|
20
|
+
import { PROVIDERS } from "./providers.js";
|
|
21
|
+
import { redactKey, saveKey } from "./settings-store.js";
|
|
22
|
+
export const DEFAULT_GRACE_PERIOD_DAYS = 30;
|
|
23
|
+
// ---------------------------------------------------------------------------
|
|
24
|
+
// State file helpers — exported for test fixtures + the api-routes handler.
|
|
25
|
+
// ---------------------------------------------------------------------------
|
|
26
|
+
function defaultStatePath() {
|
|
27
|
+
const base = process.env.VSKILL_CONFIG_DIR && process.env.VSKILL_CONFIG_DIR.length > 0
|
|
28
|
+
? process.env.VSKILL_CONFIG_DIR
|
|
29
|
+
: path.join(os.homedir(), ".vskill");
|
|
30
|
+
return path.join(base, "migration-state.json");
|
|
31
|
+
}
|
|
32
|
+
export function readMigrationState(filePath) {
|
|
33
|
+
if (!nodeFs.existsSync(filePath))
|
|
34
|
+
return null;
|
|
35
|
+
try {
|
|
36
|
+
const raw = nodeFs.readFileSync(filePath, "utf8");
|
|
37
|
+
const parsed = JSON.parse(raw);
|
|
38
|
+
return {
|
|
39
|
+
acknowledged: parsed.acknowledged === true,
|
|
40
|
+
ackedAt: typeof parsed.ackedAt === "string" ? parsed.ackedAt : null,
|
|
41
|
+
migratedAt: typeof parsed.migratedAt === "string" ? parsed.migratedAt : null,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
export function writeMigrationState(filePath, state) {
|
|
49
|
+
nodeFs.mkdirSync(path.dirname(filePath), { recursive: true });
|
|
50
|
+
nodeFs.writeFileSync(filePath, JSON.stringify(state, null, 2) + "\n", "utf8");
|
|
51
|
+
}
|
|
52
|
+
// ---------------------------------------------------------------------------
|
|
53
|
+
// Service name mapping — matches the pre-0702 keychain convention
|
|
54
|
+
// `vskill-<provider>` with account `vskill-user`.
|
|
55
|
+
// ---------------------------------------------------------------------------
|
|
56
|
+
function keychainService(provider) {
|
|
57
|
+
return `vskill-${provider}`;
|
|
58
|
+
}
|
|
59
|
+
const KEYCHAIN_ACCOUNT = "vskill-user";
|
|
60
|
+
// ---------------------------------------------------------------------------
|
|
61
|
+
// Migrator
|
|
62
|
+
// ---------------------------------------------------------------------------
|
|
63
|
+
const defaultLogger = {
|
|
64
|
+
warn: (m) => console.warn(m),
|
|
65
|
+
error: (m) => console.error(m),
|
|
66
|
+
info: (m) => console.log(m),
|
|
67
|
+
};
|
|
68
|
+
export class DarwinKeychainMigrator {
|
|
69
|
+
platform;
|
|
70
|
+
spawnSync;
|
|
71
|
+
statePath;
|
|
72
|
+
logger;
|
|
73
|
+
constructor(opts = {}) {
|
|
74
|
+
this.platform = opts.platform ?? process.platform;
|
|
75
|
+
this.spawnSync = opts.spawnSync ?? nodeChildProcess.spawnSync;
|
|
76
|
+
this.statePath = opts.statePath ?? defaultStatePath();
|
|
77
|
+
this.logger = opts.logger ?? defaultLogger;
|
|
78
|
+
}
|
|
79
|
+
/** Probe the keychain for legacy entries. Never writes; never errors on non-Darwin. */
|
|
80
|
+
async available() {
|
|
81
|
+
const state = readMigrationState(this.statePath);
|
|
82
|
+
if (this.platform !== "darwin") {
|
|
83
|
+
return {
|
|
84
|
+
hasLegacyKeys: false,
|
|
85
|
+
providers: [],
|
|
86
|
+
ackStatus: state
|
|
87
|
+
? { acknowledged: state.acknowledged, ackedAt: state.ackedAt, migratedAt: state.migratedAt }
|
|
88
|
+
: undefined,
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
const found = [];
|
|
92
|
+
for (const p of PROVIDERS) {
|
|
93
|
+
const raw = this.probe(p.id);
|
|
94
|
+
if (raw !== null)
|
|
95
|
+
found.push(p.id);
|
|
96
|
+
}
|
|
97
|
+
return {
|
|
98
|
+
hasLegacyKeys: found.length > 0,
|
|
99
|
+
providers: found,
|
|
100
|
+
ackStatus: state
|
|
101
|
+
? { acknowledged: state.acknowledged, ackedAt: state.ackedAt, migratedAt: state.migratedAt }
|
|
102
|
+
: undefined,
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
/** Copy legacy keychain entries into the file store. Idempotent. */
|
|
106
|
+
async migrate() {
|
|
107
|
+
if (this.platform !== "darwin")
|
|
108
|
+
return { migrated: [] };
|
|
109
|
+
const state = readMigrationState(this.statePath);
|
|
110
|
+
if (state && state.migratedAt) {
|
|
111
|
+
// Already migrated — honor idempotency.
|
|
112
|
+
return { migrated: [] };
|
|
113
|
+
}
|
|
114
|
+
const migrated = [];
|
|
115
|
+
for (const p of PROVIDERS) {
|
|
116
|
+
const raw = this.probe(p.id);
|
|
117
|
+
if (raw === null)
|
|
118
|
+
continue;
|
|
119
|
+
try {
|
|
120
|
+
await saveKey(p.id, raw);
|
|
121
|
+
migrated.push(p.id);
|
|
122
|
+
this.logger.info?.(`[darwin-migrator] migrated ${p.id} (${redactKey(raw)}) from keychain`);
|
|
123
|
+
}
|
|
124
|
+
catch (err) {
|
|
125
|
+
this.logger.error(`[darwin-migrator] failed to migrate ${p.id}: ${err.message}`);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
writeMigrationState(this.statePath, {
|
|
129
|
+
acknowledged: false,
|
|
130
|
+
ackedAt: null,
|
|
131
|
+
migratedAt: new Date().toISOString(),
|
|
132
|
+
});
|
|
133
|
+
return { migrated };
|
|
134
|
+
}
|
|
135
|
+
/** Record that the user dismissed the migration banner. */
|
|
136
|
+
async acknowledge() {
|
|
137
|
+
const prev = readMigrationState(this.statePath);
|
|
138
|
+
writeMigrationState(this.statePath, {
|
|
139
|
+
acknowledged: true,
|
|
140
|
+
ackedAt: new Date().toISOString(),
|
|
141
|
+
migratedAt: prev?.migratedAt ?? null,
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
/** Read a single keychain entry via `security find-generic-password`. */
|
|
145
|
+
probe(provider) {
|
|
146
|
+
const args = [
|
|
147
|
+
"find-generic-password",
|
|
148
|
+
"-s",
|
|
149
|
+
keychainService(provider),
|
|
150
|
+
"-a",
|
|
151
|
+
KEYCHAIN_ACCOUNT,
|
|
152
|
+
"-w",
|
|
153
|
+
];
|
|
154
|
+
let result;
|
|
155
|
+
try {
|
|
156
|
+
result = this.spawnSync("security", args);
|
|
157
|
+
}
|
|
158
|
+
catch (err) {
|
|
159
|
+
this.logger.warn(`[darwin-migrator] security spawn failed for ${provider}: ${err.message}`);
|
|
160
|
+
return null;
|
|
161
|
+
}
|
|
162
|
+
if (result.status !== 0)
|
|
163
|
+
return null;
|
|
164
|
+
const stdout = typeof result.stdout === "string" ? result.stdout : result.stdout.toString("utf8");
|
|
165
|
+
const value = stdout.trim();
|
|
166
|
+
return value.length > 0 ? value : null;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
//# sourceMappingURL=darwin-migrator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"darwin-migrator.js","sourceRoot":"","sources":["../../src/eval-server/darwin-migrator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
// ---------------------------------------------------------------------------
|
|
2
2
|
// eval-server.ts -- HTTP server for the eval UI
|
|
3
|
+
//
|
|
4
|
+
// DO NOT REORDER the `./boot-preflight.js` import below — it MUST be the
|
|
5
|
+
// first import in this file so `mergeStoredKeysIntoEnv()` runs before any
|
|
6
|
+
// provider module (Anthropic / OpenAI / OpenRouter SDK) captures
|
|
7
|
+
// `process.env.*_API_KEY` at module-load time. Moving it lower (or guarding
|
|
8
|
+
// it) silently breaks stored-key-only boots. See 0702 T-020/T-021.
|
|
3
9
|
// ---------------------------------------------------------------------------
|
|
10
|
+
// Side-effect import: populates process.env.*_API_KEY from the file-backed
|
|
11
|
+
// settings store BEFORE any downstream module reads those env vars. Must
|
|
12
|
+
// remain the first import — do not reorder.
|
|
13
|
+
import "./boot-preflight.js";
|
|
4
14
|
import * as http from "node:http";
|
|
5
15
|
import * as fs from "node:fs";
|
|
6
16
|
import * as path from "node:path";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eval-server.js","sourceRoot":"","sources":["../../src/eval-server/eval-server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"eval-server.js","sourceRoot":"","sources":["../../src/eval-server/eval-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,11 @@
|
|
|
1
1
|
export interface ProviderDescriptor {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
envVarName: string;
|
|
8
|
-
/** Expected prefix of a valid API key (for soft validation + UI hints). */
|
|
9
|
-
keyPrefix: string;
|
|
10
|
-
/** Canonical URL where users obtain a new key. */
|
|
11
|
-
keyIssuanceUrl: string;
|
|
2
|
+
readonly id: "anthropic" | "openai" | "openrouter";
|
|
3
|
+
readonly envVarName: string;
|
|
4
|
+
readonly keyPrefix: string;
|
|
5
|
+
readonly keyIssuanceUrl: string;
|
|
6
|
+
readonly label: string;
|
|
12
7
|
}
|
|
13
8
|
export declare const PROVIDERS: readonly ProviderDescriptor[];
|
|
14
9
|
export type ProviderId = (typeof PROVIDERS)[number]["id"];
|
|
15
|
-
export declare function
|
|
16
|
-
export declare function isProviderId(
|
|
10
|
+
export declare function getProviderById(id: ProviderId): ProviderDescriptor;
|
|
11
|
+
export declare function isProviderId(id: string): id is ProviderId;
|
|
@@ -1,45 +1,43 @@
|
|
|
1
1
|
// ---------------------------------------------------------------------------
|
|
2
|
-
// providers.ts — Single source of truth for
|
|
2
|
+
// providers.ts — Single source of truth for provider metadata.
|
|
3
3
|
//
|
|
4
4
|
// Consumed by:
|
|
5
|
-
// -
|
|
6
|
-
// -
|
|
7
|
-
// -
|
|
8
|
-
// - SettingsModal (
|
|
9
|
-
// -
|
|
10
|
-
//
|
|
11
|
-
// Adding a fourth provider should require editing ONLY this file.
|
|
5
|
+
// - settings-store (save/read/merge iteration)
|
|
6
|
+
// - api-routes::detectAvailableProviders
|
|
7
|
+
// - src/cli/keys-command (Phase 3)
|
|
8
|
+
// - src/eval-ui/src/components/SettingsModal (Phase 5)
|
|
9
|
+
// - src/cli/first-run (Phase 4)
|
|
12
10
|
// ---------------------------------------------------------------------------
|
|
13
11
|
export const PROVIDERS = [
|
|
14
12
|
{
|
|
15
13
|
id: "anthropic",
|
|
16
|
-
label: "Anthropic",
|
|
17
14
|
envVarName: "ANTHROPIC_API_KEY",
|
|
18
15
|
keyPrefix: "sk-ant-",
|
|
19
16
|
keyIssuanceUrl: "https://console.anthropic.com/settings/keys",
|
|
17
|
+
label: "Anthropic",
|
|
20
18
|
},
|
|
21
19
|
{
|
|
22
20
|
id: "openai",
|
|
23
|
-
label: "OpenAI",
|
|
24
21
|
envVarName: "OPENAI_API_KEY",
|
|
25
22
|
keyPrefix: "sk-",
|
|
26
23
|
keyIssuanceUrl: "https://platform.openai.com/api-keys",
|
|
24
|
+
label: "OpenAI",
|
|
27
25
|
},
|
|
28
26
|
{
|
|
29
27
|
id: "openrouter",
|
|
30
|
-
label: "OpenRouter",
|
|
31
28
|
envVarName: "OPENROUTER_API_KEY",
|
|
32
29
|
keyPrefix: "sk-or-",
|
|
33
30
|
keyIssuanceUrl: "https://openrouter.ai/keys",
|
|
31
|
+
label: "OpenRouter",
|
|
34
32
|
},
|
|
35
33
|
];
|
|
36
|
-
export function
|
|
34
|
+
export function getProviderById(id) {
|
|
37
35
|
const p = PROVIDERS.find((x) => x.id === id);
|
|
38
36
|
if (!p)
|
|
39
|
-
throw new Error(`
|
|
37
|
+
throw new Error(`unknown provider: ${id}`);
|
|
40
38
|
return p;
|
|
41
39
|
}
|
|
42
|
-
export function isProviderId(
|
|
43
|
-
return PROVIDERS.some((p) => p.id ===
|
|
40
|
+
export function isProviderId(id) {
|
|
41
|
+
return PROVIDERS.some((p) => p.id === id);
|
|
44
42
|
}
|
|
45
43
|
//# sourceMappingURL=providers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providers.js","sourceRoot":"","sources":["../../src/eval-server/providers.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E
|
|
1
|
+
{"version":3,"file":"providers.js","sourceRoot":"","sources":["../../src/eval-server/providers.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,+DAA+D;AAC/D,EAAE;AACF,eAAe;AACf,iDAAiD;AACjD,2CAA2C;AAC3C,qCAAqC;AACrC,yDAAyD;AACzD,kCAAkC;AAClC,8EAA8E;AAU9E,MAAM,CAAC,MAAM,SAAS,GAAkC;IACtD;QACE,EAAE,EAAE,WAAW;QACf,UAAU,EAAE,mBAAmB;QAC/B,SAAS,EAAE,SAAS;QACpB,cAAc,EAAE,6CAA6C;QAC7D,KAAK,EAAE,WAAW;KACnB;IACD;QACE,EAAE,EAAE,QAAQ;QACZ,UAAU,EAAE,gBAAgB;QAC5B,SAAS,EAAE,KAAK;QAChB,cAAc,EAAE,sCAAsC;QACtD,KAAK,EAAE,QAAQ;KAChB;IACD;QACE,EAAE,EAAE,YAAY;QAChB,UAAU,EAAE,oBAAoB;QAChC,SAAS,EAAE,QAAQ;QACnB,cAAc,EAAE,4BAA4B;QAC5C,KAAK,EAAE,YAAY;KACpB;CACO,CAAC;AAIX,MAAM,UAAU,eAAe,CAAC,EAAc;IAC5C,MAAM,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7C,IAAI,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC;IACnD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,EAAU;IACrC,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AAC5C,CAAC"}
|
|
@@ -1,39 +1,44 @@
|
|
|
1
|
-
import * as
|
|
2
|
-
|
|
3
|
-
export type Provider =
|
|
4
|
-
export type
|
|
1
|
+
import * as nodeFs from "node:fs";
|
|
2
|
+
import { type ProviderId } from "./providers.js";
|
|
3
|
+
export type Provider = ProviderId;
|
|
4
|
+
export type { ProviderId } from "./providers.js";
|
|
5
5
|
export interface KeyMetadata {
|
|
6
6
|
stored: boolean;
|
|
7
7
|
updatedAt: string | null;
|
|
8
|
-
tier: Tier;
|
|
9
8
|
}
|
|
10
9
|
export interface ListKeysResponse {
|
|
11
10
|
anthropic: KeyMetadata;
|
|
11
|
+
openai: KeyMetadata;
|
|
12
12
|
openrouter: KeyMetadata;
|
|
13
13
|
}
|
|
14
|
-
export
|
|
15
|
-
constructor(message: string);
|
|
16
|
-
}
|
|
17
|
-
export declare function redactKey(key: string): string;
|
|
18
|
-
type Logger = {
|
|
14
|
+
export interface Logger {
|
|
19
15
|
warn: (msg: string) => void;
|
|
20
16
|
error: (msg: string) => void;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
17
|
+
}
|
|
18
|
+
interface FsFacade {
|
|
19
|
+
writeFileSync: typeof nodeFs.writeFileSync;
|
|
20
|
+
renameSync: typeof nodeFs.renameSync;
|
|
21
|
+
chmodSync: typeof nodeFs.chmodSync;
|
|
22
|
+
readFileSync: typeof nodeFs.readFileSync;
|
|
23
|
+
existsSync: typeof nodeFs.existsSync;
|
|
24
|
+
unlinkSync: typeof nodeFs.unlinkSync;
|
|
25
|
+
mkdirSync: typeof nodeFs.mkdirSync;
|
|
26
|
+
statSync: typeof nodeFs.statSync;
|
|
27
|
+
}
|
|
28
|
+
export declare function getKeysFilePath(): string;
|
|
29
|
+
export declare function redactKey(key: string): string;
|
|
30
|
+
export declare function saveKey(provider: ProviderId, key: string): Promise<{
|
|
29
31
|
updatedAt: string;
|
|
30
|
-
tier: Tier;
|
|
31
32
|
}>;
|
|
32
|
-
export declare function readKey(provider:
|
|
33
|
-
|
|
34
|
-
export declare function
|
|
35
|
-
|
|
36
|
-
export declare function hasKeySync(provider: Provider): boolean;
|
|
37
|
-
export declare function removeKey(provider: Provider): Promise<void>;
|
|
33
|
+
export declare function readKey(provider: ProviderId): string | null;
|
|
34
|
+
export declare function readKeySync(provider: ProviderId): string | null;
|
|
35
|
+
export declare function hasKeySync(provider: ProviderId): boolean;
|
|
36
|
+
export declare function removeKey(provider: ProviderId): Promise<void>;
|
|
38
37
|
export declare function listKeys(): ListKeysResponse;
|
|
39
|
-
export
|
|
38
|
+
export declare function mergeStoredKeysIntoEnv(): void;
|
|
39
|
+
export interface ResetOptions {
|
|
40
|
+
logger?: Logger;
|
|
41
|
+
fs?: FsFacade;
|
|
42
|
+
configDir?: string | null;
|
|
43
|
+
}
|
|
44
|
+
export declare function resetSettingsStore(opts?: ResetOptions): void;
|