@pentoshi/clai 3.8.19 → 3.8.21
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 +8 -5
- package/dist/agent/compaction-summary.d.ts +1 -1
- package/dist/agent/compaction-summary.js +3 -2
- package/dist/agent/compaction-summary.js.map +1 -1
- package/dist/agent/context-breakdown.d.ts +37 -0
- package/dist/agent/context-breakdown.js +145 -0
- package/dist/agent/context-breakdown.js.map +1 -0
- package/dist/agent/context-manager.d.ts +29 -2
- package/dist/agent/context-manager.js +125 -17
- package/dist/agent/context-manager.js.map +1 -1
- package/dist/agent/continue-orient.d.ts +39 -0
- package/dist/agent/continue-orient.js +152 -0
- package/dist/agent/continue-orient.js.map +1 -0
- package/dist/agent/reliability-policy.d.ts +85 -0
- package/dist/agent/reliability-policy.js +158 -0
- package/dist/agent/reliability-policy.js.map +1 -0
- package/dist/agent/runner.js +280 -141
- package/dist/agent/runner.js.map +1 -1
- package/dist/agent/session-state.d.ts +13 -1
- package/dist/agent/session-state.js +30 -17
- package/dist/agent/session-state.js.map +1 -1
- package/dist/agent/stop-summary.d.ts +2 -2
- package/dist/agent/stop-summary.js +23 -4
- package/dist/agent/stop-summary.js.map +1 -1
- package/dist/agent/task-evidence.js +13 -0
- package/dist/agent/task-evidence.js.map +1 -1
- package/dist/agent/tool-history.d.ts +12 -0
- package/dist/agent/tool-history.js +159 -0
- package/dist/agent/tool-history.js.map +1 -1
- package/dist/agent/tool-output-formatting.d.ts +4 -0
- package/dist/agent/tool-output-formatting.js +21 -8
- package/dist/agent/tool-output-formatting.js.map +1 -1
- package/dist/app/controllers/session-compact-helper.d.ts +2 -0
- package/dist/app/controllers/session-compact-helper.js +14 -5
- package/dist/app/controllers/session-compact-helper.js.map +1 -1
- package/dist/app/controllers/session-controller.d.ts +6 -0
- package/dist/app/controllers/session-controller.js +27 -2
- package/dist/app/controllers/session-controller.js.map +1 -1
- package/dist/commands/providers.js +57 -26
- package/dist/commands/providers.js.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/llm/gemini.js +4 -1
- package/dist/llm/gemini.js.map +1 -1
- package/dist/llm/http.js +22 -12
- package/dist/llm/http.js.map +1 -1
- package/dist/llm/key-rotation.d.ts +52 -0
- package/dist/llm/key-rotation.js +122 -0
- package/dist/llm/key-rotation.js.map +1 -0
- package/dist/llm/provider.d.ts +2 -0
- package/dist/llm/provider.js +8 -0
- package/dist/llm/provider.js.map +1 -1
- package/dist/llm/router.d.ts +15 -2
- package/dist/llm/router.js +318 -125
- package/dist/llm/router.js.map +1 -1
- package/dist/prompts/embedded.js +1 -1
- package/dist/prompts/embedded.js.map +1 -1
- package/dist/prompts/index.d.ts +25 -0
- package/dist/prompts/index.js +55 -7
- package/dist/prompts/index.js.map +1 -1
- package/dist/prompts/system.agent.md +4 -3
- package/dist/repl/slash-commands.js +14 -8
- package/dist/repl/slash-commands.js.map +1 -1
- package/dist/repl.d.ts +4 -1
- package/dist/repl.js +12 -2
- package/dist/repl.js.map +1 -1
- package/dist/store/config.d.ts +18 -0
- package/dist/store/config.js +9 -0
- package/dist/store/config.js.map +1 -1
- package/dist/store/history.d.ts +8 -0
- package/dist/store/history.js +38 -0
- package/dist/store/history.js.map +1 -1
- package/dist/store/keys.d.ts +55 -0
- package/dist/store/keys.js +226 -21
- package/dist/store/keys.js.map +1 -1
- package/dist/store/logs.js +35 -12
- package/dist/store/logs.js.map +1 -1
- package/dist/store/paths.d.ts +13 -0
- package/dist/store/paths.js +23 -1
- package/dist/store/paths.js.map +1 -1
- package/dist/store/session-workspace.d.ts +79 -0
- package/dist/store/session-workspace.js +199 -0
- package/dist/store/session-workspace.js.map +1 -0
- package/dist/tools/definitions.js +17 -2
- package/dist/tools/definitions.js.map +1 -1
- package/dist/tools/http.d.ts +10 -0
- package/dist/tools/http.js +293 -58
- package/dist/tools/http.js.map +1 -1
- package/dist/tools/pentest-workflows.js +38 -19
- package/dist/tools/pentest-workflows.js.map +1 -1
- package/dist/tools/registry.js +26 -2
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/shell.d.ts +1 -1
- package/dist/tui/format-keys.js +29 -6
- package/dist/tui/format-keys.js.map +1 -1
- package/dist/tui-v2/app/App.js +39 -1
- package/dist/tui-v2/app/App.js.map +1 -1
- package/dist/tui-v2/app/command-handlers.js +1 -2
- package/dist/tui-v2/app/command-handlers.js.map +1 -1
- package/dist/tui-v2/app/commands/config-commands.d.ts +1 -2
- package/dist/tui-v2/app/commands/config-commands.js +1 -11
- package/dist/tui-v2/app/commands/config-commands.js.map +1 -1
- package/dist/tui-v2/app/commands/key-commands.d.ts +1 -1
- package/dist/tui-v2/app/commands/key-commands.js +148 -63
- package/dist/tui-v2/app/commands/key-commands.js.map +1 -1
- package/dist/tui-v2/app/commands/picker-commands.js +13 -7
- package/dist/tui-v2/app/commands/picker-commands.js.map +1 -1
- package/dist/tui-v2/bootstrap/composition-root.js +8 -5
- package/dist/tui-v2/bootstrap/composition-root.js.map +1 -1
- package/dist/tui-v2/bootstrap/start-tui-v2.js +10 -4
- package/dist/tui-v2/bootstrap/start-tui-v2.js.map +1 -1
- package/dist/tui-v2/components/modal/keys-modal.d.ts +19 -0
- package/dist/tui-v2/components/modal/keys-modal.js +203 -0
- package/dist/tui-v2/components/modal/keys-modal.js.map +1 -0
- package/dist/tui-v2/components/modal/secret-modal.d.ts +3 -1
- package/dist/tui-v2/components/modal/secret-modal.js +110 -18
- package/dist/tui-v2/components/modal/secret-modal.js.map +1 -1
- package/dist/tui-v2/components/overlay/overlay-host.js +6 -2
- package/dist/tui-v2/components/overlay/overlay-host.js.map +1 -1
- package/dist/tui-v2/components/pager/pager-line.js +5 -2
- package/dist/tui-v2/components/pager/pager-line.js.map +1 -1
- package/dist/tui-v2/components/pager/pager.js +6 -3
- package/dist/tui-v2/components/pager/pager.js.map +1 -1
- package/dist/tui-v2/components/plan/use-pane-presence.d.ts +6 -4
- package/dist/tui-v2/components/plan/use-pane-presence.js +8 -45
- package/dist/tui-v2/components/plan/use-pane-presence.js.map +1 -1
- package/dist/tui-v2/components/toast/toast-anim.d.ts +5 -4
- package/dist/tui-v2/components/toast/toast-anim.js +10 -7
- package/dist/tui-v2/components/toast/toast-anim.js.map +1 -1
- package/dist/tui-v2/components/toast/toast-host.d.ts +9 -3
- package/dist/tui-v2/components/toast/toast-host.js +124 -26
- package/dist/tui-v2/components/toast/toast-host.js.map +1 -1
- package/dist/tui-v2/components/transcript/assistant-message.js +4 -1
- package/dist/tui-v2/components/transcript/assistant-message.js.map +1 -1
- package/dist/tui-v2/components/transcript/compacted-row.js +1 -1
- package/dist/tui-v2/components/transcript/compacted-row.js.map +1 -1
- package/dist/tui-v2/components/transcript/file-diff-card.js +3 -23
- package/dist/tui-v2/components/transcript/file-diff-card.js.map +1 -1
- package/dist/tui-v2/components/transcript/linkable-text.js +9 -2
- package/dist/tui-v2/components/transcript/linkable-text.js.map +1 -1
- package/dist/tui-v2/components/transcript/selectable-line.d.ts +22 -0
- package/dist/tui-v2/components/transcript/selectable-line.js +24 -0
- package/dist/tui-v2/components/transcript/selectable-line.js.map +1 -0
- package/dist/tui-v2/components/transcript/thinking-block.js +3 -1
- package/dist/tui-v2/components/transcript/thinking-block.js.map +1 -1
- package/dist/tui-v2/components/transcript/tool-card.d.ts +5 -3
- package/dist/tui-v2/components/transcript/tool-card.js +39 -33
- package/dist/tui-v2/components/transcript/tool-card.js.map +1 -1
- package/dist/tui-v2/components/transcript/use-click-without-drag.js +4 -1
- package/dist/tui-v2/components/transcript/use-click-without-drag.js.map +1 -1
- package/dist/tui-v2/components/transcript/user-message.js +1 -1
- package/dist/tui-v2/components/transcript/user-message.js.map +1 -1
- package/dist/tui-v2/controllers/overlay-controller.d.ts +42 -0
- package/dist/tui-v2/controllers/overlay-controller.js +53 -0
- package/dist/tui-v2/controllers/overlay-controller.js.map +1 -1
- package/dist/tui-v2/rendering/batch-sections.d.ts +15 -4
- package/dist/tui-v2/rendering/batch-sections.js +157 -64
- package/dist/tui-v2/rendering/batch-sections.js.map +1 -1
- package/dist/tui-v2/rendering/format-help.js +1 -1
- package/dist/tui-v2/rendering/format-help.js.map +1 -1
- package/dist/tui-v2/rendering/open-tool-output.js +10 -7
- package/dist/tui-v2/rendering/open-tool-output.js.map +1 -1
- package/dist/tui-v2/rendering/pager-markdown.d.ts +9 -0
- package/dist/tui-v2/rendering/pager-markdown.js +46 -0
- package/dist/tui-v2/rendering/pager-markdown.js.map +1 -1
- package/dist/tui-v2/rendering/pager-view-policy.d.ts +6 -3
- package/dist/tui-v2/rendering/pager-view-policy.js +9 -13
- package/dist/tui-v2/rendering/pager-view-policy.js.map +1 -1
- package/dist/tui-v2/rendering/sanitize-display.js +3 -1
- package/dist/tui-v2/rendering/sanitize-display.js.map +1 -1
- package/dist/tui-v2/state/transcript-reducer.js +70 -30
- package/dist/tui-v2/state/transcript-reducer.js.map +1 -1
- package/dist/types.d.ts +7 -0
- package/dist/version.generated.d.ts +2 -2
- package/dist/version.generated.js +2 -2
- package/package.json +1 -1
package/dist/store/keys.d.ts
CHANGED
|
@@ -36,7 +36,40 @@ export declare function setSecret(namespace: SecretNamespace, id: string, value:
|
|
|
36
36
|
* up the on-disk fallback even when the OS keystore is unreachable.
|
|
37
37
|
*/
|
|
38
38
|
export declare function unsetSecret(namespace: SecretNamespace, id: string): Promise<void>;
|
|
39
|
+
/** One stored API key slot for an LLM provider. */
|
|
40
|
+
export interface ProviderKeySlot {
|
|
41
|
+
readonly id: string;
|
|
42
|
+
readonly value: string;
|
|
43
|
+
readonly createdAt: number;
|
|
44
|
+
}
|
|
45
|
+
/** Resolved multi-key view for a provider (storage or env). */
|
|
46
|
+
export interface ProviderKeysResult {
|
|
47
|
+
readonly keys: ProviderKeySlot[];
|
|
48
|
+
/** Sticky index used as the next rotation start (clamped). */
|
|
49
|
+
readonly activeIndex: number;
|
|
50
|
+
readonly source: ProviderStatus['source'];
|
|
51
|
+
}
|
|
52
|
+
declare const MAX_PROVIDER_KEYS = 10;
|
|
53
|
+
/**
|
|
54
|
+
* Parse a stored secret string into slots. Legacy plain API keys become a
|
|
55
|
+
* single-slot list. Invalid JSON that looks like a key is treated as legacy.
|
|
56
|
+
*/
|
|
57
|
+
export declare function parseProviderKeysPayload(raw: string | undefined): {
|
|
58
|
+
keys: ProviderKeySlot[];
|
|
59
|
+
activeIndex: number;
|
|
60
|
+
};
|
|
61
|
+
export declare function serializeProviderKeysPayload(keys: readonly ProviderKeySlot[], activeIndex: number): string;
|
|
39
62
|
export declare function envValue(provider: ProviderId): string | undefined;
|
|
63
|
+
/**
|
|
64
|
+
* Resolve all API keys for a provider.
|
|
65
|
+
*
|
|
66
|
+
* Precedence:
|
|
67
|
+
* 1. Stored multi/single key under `llm:<provider>` (keychain / fallback)
|
|
68
|
+
* 2. Env var as a single synthetic slot when nothing is stored
|
|
69
|
+
*
|
|
70
|
+
* `ollama` returns the host URL as a single local "key" for listing only.
|
|
71
|
+
*/
|
|
72
|
+
export declare function getProviderKeys(provider: ProviderId): Promise<ProviderKeysResult>;
|
|
40
73
|
/**
|
|
41
74
|
* Resolve an LLM provider's secret using the precedence:
|
|
42
75
|
*
|
|
@@ -48,6 +81,8 @@ export declare function envValue(provider: ProviderId): string | undefined;
|
|
|
48
81
|
* been explicitly stored, so a stale ambient export can never override
|
|
49
82
|
* a key the user deliberately set with `clai set`.
|
|
50
83
|
*
|
|
84
|
+
* Returns the **active** (sticky) key when multiple are configured.
|
|
85
|
+
*
|
|
51
86
|
* `ollama` is special-cased: it has no API key, only a base URL drawn from
|
|
52
87
|
* `OLLAMA_HOST` or the user-config `ollamaHost`.
|
|
53
88
|
*/
|
|
@@ -55,8 +90,28 @@ export declare function getProviderSecret(provider: ProviderId): Promise<{
|
|
|
55
90
|
value?: string;
|
|
56
91
|
source: ProviderStatus['source'];
|
|
57
92
|
}>;
|
|
93
|
+
/**
|
|
94
|
+
* Replace the full key list for a provider (Keys editor Save).
|
|
95
|
+
* Empty list clears storage (same as unset).
|
|
96
|
+
*/
|
|
97
|
+
export declare function setProviderKeys(provider: ProviderId, values: readonly string[], activeIndex?: number): Promise<'keychain' | 'fallback'>;
|
|
98
|
+
/**
|
|
99
|
+
* Append one API key (CLI `/set provider key`). Dedupes exact matches.
|
|
100
|
+
* Creates a multi-key envelope, migrating a legacy single string if needed.
|
|
101
|
+
*/
|
|
102
|
+
export declare function appendProviderKey(provider: ProviderId, secret: string): Promise<'keychain' | 'fallback'>;
|
|
103
|
+
/**
|
|
104
|
+
* Compat: append a key (multi-key era). Prefer `appendProviderKey` or
|
|
105
|
+
* `setProviderKeys` at new call sites.
|
|
106
|
+
*/
|
|
58
107
|
export declare function setProviderSecret(provider: ProviderId, secret: string): Promise<'keychain' | 'fallback'>;
|
|
59
108
|
export declare function unsetProviderSecret(provider: ProviderId): Promise<void>;
|
|
109
|
+
/**
|
|
110
|
+
* Remember which key last succeeded so the next request starts there.
|
|
111
|
+
* No-op for env-only / ollama / missing storage.
|
|
112
|
+
*/
|
|
113
|
+
export declare function markProviderKeySuccess(provider: ProviderId, index: number): Promise<void>;
|
|
114
|
+
export { MAX_PROVIDER_KEYS };
|
|
60
115
|
/**
|
|
61
116
|
* Resolve a search-provider's API key using the precedence required by
|
|
62
117
|
* Requirement 3.3: env var → keychain `search:<id>` → fallback file →
|
package/dist/store/keys.js
CHANGED
|
@@ -259,7 +259,86 @@ export async function unsetSecret(namespace, id) {
|
|
|
259
259
|
}
|
|
260
260
|
}
|
|
261
261
|
}
|
|
262
|
-
|
|
262
|
+
const MAX_PROVIDER_KEYS = 10;
|
|
263
|
+
function newKeyId() {
|
|
264
|
+
return `k_${Date.now().toString(36)}_${Math.random().toString(36).slice(2, 8)}`;
|
|
265
|
+
}
|
|
266
|
+
function clampActiveIndex(index, len) {
|
|
267
|
+
if (len <= 0)
|
|
268
|
+
return 0;
|
|
269
|
+
if (!Number.isFinite(index))
|
|
270
|
+
return 0;
|
|
271
|
+
const i = Math.floor(index);
|
|
272
|
+
if (i < 0)
|
|
273
|
+
return 0;
|
|
274
|
+
if (i >= len)
|
|
275
|
+
return len - 1;
|
|
276
|
+
return i;
|
|
277
|
+
}
|
|
278
|
+
function isEnvelopeV1(value) {
|
|
279
|
+
if (!value || typeof value !== 'object')
|
|
280
|
+
return false;
|
|
281
|
+
const rec = value;
|
|
282
|
+
if (rec.v !== 1 || !Array.isArray(rec.keys))
|
|
283
|
+
return false;
|
|
284
|
+
return rec.keys.every((k) => k &&
|
|
285
|
+
typeof k === 'object' &&
|
|
286
|
+
typeof k.id === 'string' &&
|
|
287
|
+
typeof k.value === 'string' &&
|
|
288
|
+
typeof k.createdAt === 'number');
|
|
289
|
+
}
|
|
290
|
+
/**
|
|
291
|
+
* Parse a stored secret string into slots. Legacy plain API keys become a
|
|
292
|
+
* single-slot list. Invalid JSON that looks like a key is treated as legacy.
|
|
293
|
+
*/
|
|
294
|
+
export function parseProviderKeysPayload(raw) {
|
|
295
|
+
if (!raw || !raw.trim()) {
|
|
296
|
+
return { keys: [], activeIndex: 0 };
|
|
297
|
+
}
|
|
298
|
+
const trimmed = raw.trim();
|
|
299
|
+
if (trimmed.startsWith('{')) {
|
|
300
|
+
try {
|
|
301
|
+
const parsed = JSON.parse(trimmed);
|
|
302
|
+
if (isEnvelopeV1(parsed) && parsed.keys.length > 0) {
|
|
303
|
+
const keys = parsed.keys
|
|
304
|
+
.map((k) => ({
|
|
305
|
+
id: k.id || newKeyId(),
|
|
306
|
+
value: k.value,
|
|
307
|
+
createdAt: k.createdAt || Date.now(),
|
|
308
|
+
}))
|
|
309
|
+
.filter((k) => k.value.trim().length > 0)
|
|
310
|
+
.slice(0, MAX_PROVIDER_KEYS);
|
|
311
|
+
return {
|
|
312
|
+
keys,
|
|
313
|
+
activeIndex: clampActiveIndex(parsed.activeIndex ?? 0, keys.length),
|
|
314
|
+
};
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
catch {
|
|
318
|
+
// Fall through to legacy single-string treatment.
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
return {
|
|
322
|
+
keys: [{ id: newKeyId(), value: trimmed, createdAt: Date.now() }],
|
|
323
|
+
activeIndex: 0,
|
|
324
|
+
};
|
|
325
|
+
}
|
|
326
|
+
export function serializeProviderKeysPayload(keys, activeIndex) {
|
|
327
|
+
const cleaned = keys
|
|
328
|
+
.map((k) => ({
|
|
329
|
+
id: k.id || newKeyId(),
|
|
330
|
+
value: k.value.trim(),
|
|
331
|
+
createdAt: k.createdAt || Date.now(),
|
|
332
|
+
}))
|
|
333
|
+
.filter((k) => k.value.length > 0)
|
|
334
|
+
.slice(0, MAX_PROVIDER_KEYS);
|
|
335
|
+
const envelope = {
|
|
336
|
+
v: 1,
|
|
337
|
+
keys: cleaned,
|
|
338
|
+
activeIndex: clampActiveIndex(activeIndex, cleaned.length),
|
|
339
|
+
};
|
|
340
|
+
return JSON.stringify(envelope);
|
|
341
|
+
}
|
|
263
342
|
export function envValue(provider) {
|
|
264
343
|
const envVar = envVars[provider];
|
|
265
344
|
if (!envVar) {
|
|
@@ -268,6 +347,45 @@ export function envValue(provider) {
|
|
|
268
347
|
const value = process.env[envVar];
|
|
269
348
|
return value && value.length > 0 ? value : undefined;
|
|
270
349
|
}
|
|
350
|
+
/**
|
|
351
|
+
* Resolve all API keys for a provider.
|
|
352
|
+
*
|
|
353
|
+
* Precedence:
|
|
354
|
+
* 1. Stored multi/single key under `llm:<provider>` (keychain / fallback)
|
|
355
|
+
* 2. Env var as a single synthetic slot when nothing is stored
|
|
356
|
+
*
|
|
357
|
+
* `ollama` returns the host URL as a single local "key" for listing only.
|
|
358
|
+
*/
|
|
359
|
+
export async function getProviderKeys(provider) {
|
|
360
|
+
if (provider === 'ollama') {
|
|
361
|
+
const local = envValue(provider) ?? getConfig().ollamaHost;
|
|
362
|
+
if (!local)
|
|
363
|
+
return { keys: [], activeIndex: 0, source: 'missing' };
|
|
364
|
+
return {
|
|
365
|
+
keys: [{ id: 'ollama-host', value: local, createdAt: 0 }],
|
|
366
|
+
activeIndex: 0,
|
|
367
|
+
source: 'local',
|
|
368
|
+
};
|
|
369
|
+
}
|
|
370
|
+
const stored = await getSecret('llm', provider);
|
|
371
|
+
if (stored.value) {
|
|
372
|
+
const parsed = parseProviderKeysPayload(stored.value);
|
|
373
|
+
return {
|
|
374
|
+
keys: parsed.keys,
|
|
375
|
+
activeIndex: parsed.activeIndex,
|
|
376
|
+
source: stored.source,
|
|
377
|
+
};
|
|
378
|
+
}
|
|
379
|
+
const env = envValue(provider);
|
|
380
|
+
if (env) {
|
|
381
|
+
return {
|
|
382
|
+
keys: [{ id: 'env', value: env, createdAt: 0 }],
|
|
383
|
+
activeIndex: 0,
|
|
384
|
+
source: 'env',
|
|
385
|
+
};
|
|
386
|
+
}
|
|
387
|
+
return { keys: [], activeIndex: 0, source: 'missing' };
|
|
388
|
+
}
|
|
271
389
|
/**
|
|
272
390
|
* Resolve an LLM provider's secret using the precedence:
|
|
273
391
|
*
|
|
@@ -279,37 +397,114 @@ export function envValue(provider) {
|
|
|
279
397
|
* been explicitly stored, so a stale ambient export can never override
|
|
280
398
|
* a key the user deliberately set with `clai set`.
|
|
281
399
|
*
|
|
400
|
+
* Returns the **active** (sticky) key when multiple are configured.
|
|
401
|
+
*
|
|
282
402
|
* `ollama` is special-cased: it has no API key, only a base URL drawn from
|
|
283
403
|
* `OLLAMA_HOST` or the user-config `ollamaHost`.
|
|
284
404
|
*/
|
|
285
405
|
export async function getProviderSecret(provider) {
|
|
406
|
+
const multi = await getProviderKeys(provider);
|
|
407
|
+
if (multi.keys.length === 0) {
|
|
408
|
+
return { source: 'missing' };
|
|
409
|
+
}
|
|
410
|
+
const idx = clampActiveIndex(multi.activeIndex, multi.keys.length);
|
|
411
|
+
return { value: multi.keys[idx].value, source: multi.source };
|
|
412
|
+
}
|
|
413
|
+
/**
|
|
414
|
+
* Replace the full key list for a provider (Keys editor Save).
|
|
415
|
+
* Empty list clears storage (same as unset).
|
|
416
|
+
*/
|
|
417
|
+
export async function setProviderKeys(provider, values, activeIndex = 0) {
|
|
286
418
|
if (provider === 'ollama') {
|
|
287
|
-
|
|
288
|
-
return { value: local, source: 'local' };
|
|
419
|
+
return 'fallback';
|
|
289
420
|
}
|
|
290
|
-
|
|
291
|
-
//
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
const
|
|
295
|
-
|
|
296
|
-
|
|
421
|
+
const cleaned = values.map((v) => v.trim()).filter(Boolean);
|
|
422
|
+
// Dedupe exact values while preserving order.
|
|
423
|
+
const seen = new Set();
|
|
424
|
+
const unique = [];
|
|
425
|
+
for (const v of cleaned) {
|
|
426
|
+
if (seen.has(v))
|
|
427
|
+
continue;
|
|
428
|
+
seen.add(v);
|
|
429
|
+
unique.push(v);
|
|
430
|
+
if (unique.length >= MAX_PROVIDER_KEYS)
|
|
431
|
+
break;
|
|
297
432
|
}
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
return
|
|
433
|
+
if (unique.length === 0) {
|
|
434
|
+
await unsetSecret('llm', provider);
|
|
435
|
+
return 'fallback';
|
|
301
436
|
}
|
|
302
|
-
|
|
437
|
+
const now = Date.now();
|
|
438
|
+
const slots = unique.map((value) => ({
|
|
439
|
+
id: newKeyId(),
|
|
440
|
+
value,
|
|
441
|
+
createdAt: now,
|
|
442
|
+
}));
|
|
443
|
+
const payload = serializeProviderKeysPayload(slots, activeIndex);
|
|
444
|
+
return setSecret('llm', provider, payload);
|
|
303
445
|
}
|
|
304
|
-
|
|
446
|
+
/**
|
|
447
|
+
* Append one API key (CLI `/set provider key`). Dedupes exact matches.
|
|
448
|
+
* Creates a multi-key envelope, migrating a legacy single string if needed.
|
|
449
|
+
*/
|
|
450
|
+
export async function appendProviderKey(provider, secret) {
|
|
305
451
|
if (provider === 'ollama') {
|
|
306
452
|
return 'fallback';
|
|
307
453
|
}
|
|
308
|
-
|
|
454
|
+
const trimmed = secret.trim();
|
|
455
|
+
if (!trimmed) {
|
|
456
|
+
throw new Error('empty API key');
|
|
457
|
+
}
|
|
458
|
+
const current = await getProviderKeys(provider);
|
|
459
|
+
// Env-only is not "stored" — writing creates stored keys and overrides env.
|
|
460
|
+
const base = current.source === 'env'
|
|
461
|
+
? []
|
|
462
|
+
: current.keys.map((k) => ({ ...k }));
|
|
463
|
+
if (base.some((k) => k.value === trimmed)) {
|
|
464
|
+
// Already present — keep list, optionally move active to that index.
|
|
465
|
+
const idx = base.findIndex((k) => k.value === trimmed);
|
|
466
|
+
const payload = serializeProviderKeysPayload(base, idx >= 0 ? idx : current.activeIndex);
|
|
467
|
+
return setSecret('llm', provider, payload);
|
|
468
|
+
}
|
|
469
|
+
if (base.length >= MAX_PROVIDER_KEYS) {
|
|
470
|
+
throw new Error(`at most ${MAX_PROVIDER_KEYS} API keys per provider`);
|
|
471
|
+
}
|
|
472
|
+
base.push({ id: newKeyId(), value: trimmed, createdAt: Date.now() });
|
|
473
|
+
const payload = serializeProviderKeysPayload(base, base.length === 1 ? 0 : current.activeIndex);
|
|
474
|
+
return setSecret('llm', provider, payload);
|
|
475
|
+
}
|
|
476
|
+
/**
|
|
477
|
+
* Compat: append a key (multi-key era). Prefer `appendProviderKey` or
|
|
478
|
+
* `setProviderKeys` at new call sites.
|
|
479
|
+
*/
|
|
480
|
+
export async function setProviderSecret(provider, secret) {
|
|
481
|
+
return appendProviderKey(provider, secret);
|
|
309
482
|
}
|
|
310
483
|
export async function unsetProviderSecret(provider) {
|
|
311
484
|
await unsetSecret('llm', provider);
|
|
312
485
|
}
|
|
486
|
+
/**
|
|
487
|
+
* Remember which key last succeeded so the next request starts there.
|
|
488
|
+
* No-op for env-only / ollama / missing storage.
|
|
489
|
+
*/
|
|
490
|
+
export async function markProviderKeySuccess(provider, index) {
|
|
491
|
+
if (provider === 'ollama')
|
|
492
|
+
return;
|
|
493
|
+
const stored = await getSecret('llm', provider);
|
|
494
|
+
if (!stored.value)
|
|
495
|
+
return;
|
|
496
|
+
const parsed = parseProviderKeysPayload(stored.value);
|
|
497
|
+
if (parsed.keys.length === 0)
|
|
498
|
+
return;
|
|
499
|
+
const next = clampActiveIndex(index, parsed.keys.length);
|
|
500
|
+
if (next === parsed.activeIndex && stored.value.trim().startsWith('{')) {
|
|
501
|
+
// Already sticky on this index and in envelope form.
|
|
502
|
+
return;
|
|
503
|
+
}
|
|
504
|
+
const payload = serializeProviderKeysPayload(parsed.keys, next);
|
|
505
|
+
await setSecret('llm', provider, payload);
|
|
506
|
+
}
|
|
507
|
+
export { MAX_PROVIDER_KEYS };
|
|
313
508
|
/**
|
|
314
509
|
* Resolve a search-provider's API key using the precedence required by
|
|
315
510
|
* Requirement 3.3: env var → keychain `search:<id>` → fallback file →
|
|
@@ -350,17 +545,27 @@ export async function probeKeychain() {
|
|
|
350
545
|
export async function listProviderStatuses(activeProvider) {
|
|
351
546
|
const statuses = [];
|
|
352
547
|
for (const provider of providerIds) {
|
|
353
|
-
const
|
|
354
|
-
const configured =
|
|
548
|
+
const multi = await getProviderKeys(provider);
|
|
549
|
+
const configured = multi.keys.length > 0 || provider === 'ollama';
|
|
550
|
+
const activeIdx = clampActiveIndex(multi.activeIndex, multi.keys.length);
|
|
551
|
+
const activeValue = multi.keys[activeIdx]?.value;
|
|
552
|
+
const maskedKeys = provider !== 'ollama' && multi.keys.length > 0
|
|
553
|
+
? multi.keys.map((k) => maskSecret(k.value))
|
|
554
|
+
: undefined;
|
|
355
555
|
statuses.push({
|
|
356
556
|
provider,
|
|
357
557
|
label: provider,
|
|
358
558
|
active: provider === activeProvider,
|
|
359
559
|
configured,
|
|
360
|
-
source:
|
|
361
|
-
maskedKey:
|
|
560
|
+
source: multi.keys.length > 0 ? multi.source : 'missing',
|
|
561
|
+
maskedKey: activeValue && provider !== 'ollama' ? maskSecret(activeValue) : undefined,
|
|
562
|
+
keyCount: provider === 'ollama' ? undefined : multi.keys.length || undefined,
|
|
563
|
+
maskedKeys,
|
|
564
|
+
activeMaskedKey: activeValue && provider !== 'ollama' && multi.keys.length > 1
|
|
565
|
+
? maskSecret(activeValue)
|
|
566
|
+
: undefined,
|
|
362
567
|
model: getDefaultModel(provider),
|
|
363
|
-
note: provider === 'ollama' ?
|
|
568
|
+
note: provider === 'ollama' ? activeValue : undefined,
|
|
364
569
|
});
|
|
365
570
|
}
|
|
366
571
|
return statuses;
|
package/dist/store/keys.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keys.js","sourceRoot":"","sources":["../../src/store/keys.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"keys.js","sourceRoot":"","sources":["../../src/store/keys.ts"],"names":[],"mappings":"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"}
|
package/dist/store/logs.js
CHANGED
|
@@ -3,7 +3,8 @@ import { fixOwner, handlePermissionError } from '../os/permissions.js';
|
|
|
3
3
|
import { existsSync } from 'node:fs';
|
|
4
4
|
import { dirname, join } from 'node:path';
|
|
5
5
|
import { redactSecrets } from '../llm/provider.js';
|
|
6
|
-
import {
|
|
6
|
+
import { getGlobalArtifactDir, getLogsDirRoot } from './paths.js';
|
|
7
|
+
import { getSessionWorkspaceParent } from './session-workspace.js';
|
|
7
8
|
const logsDir = getLogsDirRoot();
|
|
8
9
|
const maxLogBytes = 10 * 1024 * 1024;
|
|
9
10
|
function today() {
|
|
@@ -60,23 +61,45 @@ export function getLogsDir() {
|
|
|
60
61
|
return logsDir;
|
|
61
62
|
}
|
|
62
63
|
export async function clearArtifacts() {
|
|
63
|
-
const dir = getArtifactDir();
|
|
64
|
-
if (!existsSync(dir))
|
|
65
|
-
return { removed: 0 };
|
|
66
|
-
const entries = await readdir(dir).catch(() => []);
|
|
67
64
|
let removed = 0;
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
65
|
+
// 1) Global ~/.clai/outputs (or CLAI_ARTIFACT_DIR override)
|
|
66
|
+
const globalDir = getGlobalArtifactDir();
|
|
67
|
+
if (existsSync(globalDir)) {
|
|
68
|
+
const entries = await readdir(globalDir).catch(() => []);
|
|
69
|
+
for (const entry of entries) {
|
|
70
|
+
try {
|
|
71
|
+
await rm(join(globalDir, entry), { force: true, recursive: true });
|
|
72
|
+
removed += 1;
|
|
73
|
+
}
|
|
74
|
+
catch {
|
|
75
|
+
// best-effort
|
|
76
|
+
}
|
|
72
77
|
}
|
|
73
|
-
|
|
74
|
-
|
|
78
|
+
}
|
|
79
|
+
// 2) Per-session tool outputs under {tmpdir}/clai/*/temp
|
|
80
|
+
const sessionsParent = getSessionWorkspaceParent();
|
|
81
|
+
if (existsSync(sessionsParent)) {
|
|
82
|
+
const sessionFolders = await readdir(sessionsParent).catch(() => []);
|
|
83
|
+
for (const folder of sessionFolders) {
|
|
84
|
+
const tempDir = join(sessionsParent, folder, "temp");
|
|
85
|
+
if (!existsSync(tempDir))
|
|
86
|
+
continue;
|
|
87
|
+
const entries = await readdir(tempDir).catch(() => []);
|
|
88
|
+
for (const entry of entries) {
|
|
89
|
+
try {
|
|
90
|
+
await rm(join(tempDir, entry), { force: true, recursive: true });
|
|
91
|
+
removed += 1;
|
|
92
|
+
}
|
|
93
|
+
catch {
|
|
94
|
+
// best-effort
|
|
95
|
+
}
|
|
96
|
+
}
|
|
75
97
|
}
|
|
76
98
|
}
|
|
77
99
|
return { removed };
|
|
78
100
|
}
|
|
79
|
-
const diagnosticKeyAllowed = (key) => /(?:id|ids|status|state|reason|level|phase|capability|allowed|ok|exitCode|signal|bytes|count|duration|freshness|revision|version)$/i.test(key)
|
|
101
|
+
const diagnosticKeyAllowed = (key) => /(?:id|ids|status|state|reason|level|phase|capability|allowed|ok|exitCode|signal|bytes|count|duration|freshness|revision|version|tokens|Tokens|provider|model|dialect|step|protocol)$/i.test(key) ||
|
|
102
|
+
/^(?:estimatedTotalTokens|systemTokens|userTokens|assistantTokens|toolResultTokens|toolSchemaTokens|messageCount|systemMessageCount|userMessageCount|assistantMessageCount|toolMessageCount|constitutionTokens|planTokens|scopeTokens|sessionStateTokens|compactionMemoryTokens|otherSystemTokens|toolDefinitionCount|tool_protocol)$/i.test(key);
|
|
80
103
|
function diagnosticMetadata(value) {
|
|
81
104
|
if (Array.isArray(value))
|
|
82
105
|
return value.slice(0, 100).map(diagnosticMetadata);
|
package/dist/store/logs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logs.js","sourceRoot":"","sources":["../../src/store/logs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAS,MAAM,kBAAkB,CAAC;AAC5G,OAAO,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAEvE,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"logs.js","sourceRoot":"","sources":["../../src/store/logs.ts"],"names":[],"mappings":"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"}
|
package/dist/store/paths.d.ts
CHANGED
|
@@ -2,5 +2,18 @@ export declare function getDataDir(): string;
|
|
|
2
2
|
export declare function getHistoryDir(): string;
|
|
3
3
|
export declare function getPlanDir(): string;
|
|
4
4
|
export declare function getLogsDirRoot(): string;
|
|
5
|
+
/**
|
|
6
|
+
* Global (non-session) tool-output root — used by `clear-artifacts` and as
|
|
7
|
+
* a fallback when no session workspace is bound (one-shot / early boot).
|
|
8
|
+
*/
|
|
9
|
+
export declare function getGlobalArtifactDir(): string;
|
|
10
|
+
/**
|
|
11
|
+
* Tool-output directory for the current session.
|
|
12
|
+
*
|
|
13
|
+
* Prefer the active session's `{workspace}/temp` so each history session
|
|
14
|
+
* keeps its run outputs isolated. Explicit `CLAI_ARTIFACT_DIR` always wins
|
|
15
|
+
* (tests + power-user override). Falls back to the global outputs dir when
|
|
16
|
+
* no session is bound.
|
|
17
|
+
*/
|
|
5
18
|
export declare function getArtifactDir(): string;
|
|
6
19
|
export declare function getJobsDir(): string;
|
package/dist/store/paths.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { homedir, tmpdir } from "node:os";
|
|
2
2
|
import { join, resolve, sep } from "node:path";
|
|
3
|
+
import { getActiveSessionTempDir } from "./session-workspace.js";
|
|
3
4
|
function envPath(name) {
|
|
4
5
|
const value = process.env[name]?.trim();
|
|
5
6
|
return value ? value : undefined;
|
|
@@ -29,9 +30,30 @@ export function getPlanDir() {
|
|
|
29
30
|
export function getLogsDirRoot() {
|
|
30
31
|
return envPath("CLAI_LOG_DIR") ?? join(getDataDir(), "logs");
|
|
31
32
|
}
|
|
32
|
-
|
|
33
|
+
/**
|
|
34
|
+
* Global (non-session) tool-output root — used by `clear-artifacts` and as
|
|
35
|
+
* a fallback when no session workspace is bound (one-shot / early boot).
|
|
36
|
+
*/
|
|
37
|
+
export function getGlobalArtifactDir() {
|
|
33
38
|
return envPath("CLAI_ARTIFACT_DIR") ?? join(getDataDir(), "outputs");
|
|
34
39
|
}
|
|
40
|
+
/**
|
|
41
|
+
* Tool-output directory for the current session.
|
|
42
|
+
*
|
|
43
|
+
* Prefer the active session's `{workspace}/temp` so each history session
|
|
44
|
+
* keeps its run outputs isolated. Explicit `CLAI_ARTIFACT_DIR` always wins
|
|
45
|
+
* (tests + power-user override). Falls back to the global outputs dir when
|
|
46
|
+
* no session is bound.
|
|
47
|
+
*/
|
|
48
|
+
export function getArtifactDir() {
|
|
49
|
+
const configured = envPath("CLAI_ARTIFACT_DIR");
|
|
50
|
+
if (configured)
|
|
51
|
+
return configured;
|
|
52
|
+
const sessionTemp = getActiveSessionTempDir();
|
|
53
|
+
if (sessionTemp)
|
|
54
|
+
return sessionTemp;
|
|
55
|
+
return getGlobalArtifactDir();
|
|
56
|
+
}
|
|
35
57
|
export function getJobsDir() {
|
|
36
58
|
return envPath("CLAI_JOBS_DIR") ?? join(getDataDir(), "jobs");
|
|
37
59
|
}
|
package/dist/store/paths.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/store/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/store/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,SAAS,OAAO,CAAC,IAAY;IAC3B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC;IACxC,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,MAAM,UAAU,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAC5C,IAAI,UAAU;QAAE,OAAO,UAAU,CAAC;IAClC,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAI,EAAE,CAAC;IACtD,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QACnC,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,YAAY,KAAK,QAAQ,IAAI,YAAY,CAAC,UAAU,CAAC,GAAG,QAAQ,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC;YAC9E,OAAO,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC7B,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,EAAE,EAAE,aAAa,QAAQ,EAAE,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,OAAO,CAAC,kBAAkB,CAAC,IAAI,UAAU,EAAE,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,OAAO,OAAO,CAAC,eAAe,CAAC,IAAI,UAAU,EAAE,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO,OAAO,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE,MAAM,CAAC,CAAC;AAC/D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB;IAClC,OAAO,OAAO,CAAC,mBAAmB,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE,SAAS,CAAC,CAAC;AACvE,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc;IAC5B,MAAM,UAAU,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAChD,IAAI,UAAU;QAAE,OAAO,UAAU,CAAC;IAClC,MAAM,WAAW,GAAG,uBAAuB,EAAE,CAAC;IAC9C,IAAI,WAAW;QAAE,OAAO,WAAW,CAAC;IACpC,OAAO,oBAAoB,EAAE,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,OAAO,OAAO,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE,MAAM,CAAC,CAAC;AAChE,CAAC"}
|