prism-pr 1.0.0-alpha.70 → 1.0.0-alpha.73
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/config/config-manager.d.ts +44 -0
- package/dist/config/config-manager.d.ts.map +1 -1
- package/dist/config/config-manager.js +94 -1
- package/dist/config/config-manager.js.map +1 -1
- package/dist/tui/components/scroll-list.d.ts +7 -1
- package/dist/tui/components/scroll-list.d.ts.map +1 -1
- package/dist/tui/components/scroll-list.js +12 -2
- package/dist/tui/components/scroll-list.js.map +1 -1
- package/dist/tui/screen-router.d.ts.map +1 -1
- package/dist/tui/screen-router.js +3 -9
- package/dist/tui/screen-router.js.map +1 -1
- package/dist/tui/screens/home.js +1 -1
- package/dist/tui/screens/home.js.map +1 -1
- package/dist/tui/screens/unified-settings/SecretRow.d.ts +15 -0
- package/dist/tui/screens/unified-settings/SecretRow.d.ts.map +1 -0
- package/dist/tui/screens/unified-settings/SecretRow.js +15 -0
- package/dist/tui/screens/unified-settings/SecretRow.js.map +1 -0
- package/dist/tui/screens/unified-settings/SettingRow.d.ts +14 -0
- package/dist/tui/screens/unified-settings/SettingRow.d.ts.map +1 -0
- package/dist/tui/screens/unified-settings/SettingRow.js +11 -0
- package/dist/tui/screens/unified-settings/SettingRow.js.map +1 -0
- package/dist/tui/screens/unified-settings/constants.d.ts +65 -0
- package/dist/tui/screens/unified-settings/constants.d.ts.map +1 -0
- package/dist/tui/screens/unified-settings/constants.js +127 -0
- package/dist/tui/screens/unified-settings/constants.js.map +1 -0
- package/dist/tui/screens/unified-settings/state.d.ts +154 -0
- package/dist/tui/screens/unified-settings/state.d.ts.map +1 -0
- package/dist/tui/screens/unified-settings/state.js +437 -0
- package/dist/tui/screens/unified-settings/state.js.map +1 -0
- package/dist/tui/screens/unified-settings/tab-agents.d.ts +14 -0
- package/dist/tui/screens/unified-settings/tab-agents.d.ts.map +1 -0
- package/dist/tui/screens/unified-settings/tab-agents.js +25 -0
- package/dist/tui/screens/unified-settings/tab-agents.js.map +1 -0
- package/dist/tui/screens/unified-settings/tab-bar.d.ts +12 -0
- package/dist/tui/screens/unified-settings/tab-bar.d.ts.map +1 -0
- package/dist/tui/screens/unified-settings/tab-bar.js +15 -0
- package/dist/tui/screens/unified-settings/tab-bar.js.map +1 -0
- package/dist/tui/screens/unified-settings/tab-defaults.d.ts +13 -0
- package/dist/tui/screens/unified-settings/tab-defaults.d.ts.map +1 -0
- package/dist/tui/screens/unified-settings/tab-defaults.js +12 -0
- package/dist/tui/screens/unified-settings/tab-defaults.js.map +1 -0
- package/dist/tui/screens/unified-settings/tab-models.d.ts +13 -0
- package/dist/tui/screens/unified-settings/tab-models.d.ts.map +1 -0
- package/dist/tui/screens/unified-settings/tab-models.js +12 -0
- package/dist/tui/screens/unified-settings/tab-models.js.map +1 -0
- package/dist/tui/screens/unified-settings/tab-provider.d.ts +13 -0
- package/dist/tui/screens/unified-settings/tab-provider.d.ts.map +1 -0
- package/dist/tui/screens/unified-settings/tab-provider.js +14 -0
- package/dist/tui/screens/unified-settings/tab-provider.js.map +1 -0
- package/dist/tui/screens/unified-settings.d.ts +9 -0
- package/dist/tui/screens/unified-settings.d.ts.map +1 -0
- package/dist/tui/screens/unified-settings.js +364 -0
- package/dist/tui/screens/unified-settings.js.map +1 -0
- package/dist/tui/state/router-reducer.d.ts +1 -1
- package/dist/tui/state/router-reducer.d.ts.map +1 -1
- package/dist/tui/state/router-reducer.js.map +1 -1
- package/oclif.manifest.json +77 -77
- package/package.json +1 -1
|
@@ -1,5 +1,29 @@
|
|
|
1
1
|
import type { PrismConfig } from '../types/index.js';
|
|
2
2
|
import type { ModelProvider } from '../types/provider.js';
|
|
3
|
+
/**
|
|
4
|
+
* Thrown when ConfigManager.setMany() fails to write the config to disk.
|
|
5
|
+
* The on-disk file is left exactly as it was before the call; the in-memory
|
|
6
|
+
* config cache is also rolled back.
|
|
7
|
+
*/
|
|
8
|
+
export declare class ConfigWriteError extends Error {
|
|
9
|
+
readonly code = "CONFIG_WRITE_FAILED";
|
|
10
|
+
constructor(message: string, options?: {
|
|
11
|
+
cause?: unknown;
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Maps a model id prefix to its owning provider for auto-detect routing.
|
|
16
|
+
* Consulted ONLY in the auto-detect branch — explicit `config.provider` always wins.
|
|
17
|
+
* Unknown prefixes fall through to existing key-priority order.
|
|
18
|
+
*
|
|
19
|
+
* Maintenance:
|
|
20
|
+
* - OpenAI: https://platform.openai.com/docs/models
|
|
21
|
+
* - Gemini: https://ai.google.dev/gemini-api/docs/models
|
|
22
|
+
* - Anthropic: https://docs.anthropic.com/en/docs/about-claude/models
|
|
23
|
+
*
|
|
24
|
+
* Order matters: more-specific patterns first. Anchored at start (^) to avoid mid-id collisions.
|
|
25
|
+
*/
|
|
26
|
+
export declare const MODEL_PREFIX_MAP: ReadonlyArray<readonly [RegExp, 'openai' | 'gemini' | 'anthropic']>;
|
|
3
27
|
export declare class ConfigManager {
|
|
4
28
|
private config;
|
|
5
29
|
private readonly configDir;
|
|
@@ -8,6 +32,26 @@ export declare class ConfigManager {
|
|
|
8
32
|
load(): PrismConfig;
|
|
9
33
|
get<K extends keyof PrismConfig>(key: K): PrismConfig[K];
|
|
10
34
|
set<K extends keyof PrismConfig>(key: K, value: PrismConfig[K]): void;
|
|
35
|
+
/**
|
|
36
|
+
* Atomically apply multiple config updates in a single file write.
|
|
37
|
+
*
|
|
38
|
+
* Semantics:
|
|
39
|
+
* - Keys not present in `patch` are preserved.
|
|
40
|
+
* - Keys set to `undefined` in `patch` are deleted from the on-disk JSON.
|
|
41
|
+
* - All updates land in one file write — no callers observe a half-written state.
|
|
42
|
+
* - Empty patch ({}) is a no-op: no disk I/O occurs, no error is thrown.
|
|
43
|
+
*
|
|
44
|
+
* On any I/O failure the on-disk file is left exactly as it was prior to the
|
|
45
|
+
* call; the in-memory `this.config` is also rolled back to the pre-call value.
|
|
46
|
+
*
|
|
47
|
+
* Throws a `ConfigWriteError` on failure. Existing `set()` callers are unaffected.
|
|
48
|
+
*
|
|
49
|
+
* Note: An fsync is attempted after writing the temp file for power-loss
|
|
50
|
+
* durability. On filesystems that do not support fsync on regular files
|
|
51
|
+
* (EINVAL), the error is silently ignored — the rename still guarantees
|
|
52
|
+
* atomicity on same-volume operations.
|
|
53
|
+
*/
|
|
54
|
+
setMany(patch: Partial<PrismConfig>): void;
|
|
11
55
|
resolveAnthropicKey(): string | null;
|
|
12
56
|
resolveOpenAIKey(): string | null;
|
|
13
57
|
resolveGeminiKey(): string | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-manager.d.ts","sourceRoot":"","sources":["../../src/config/config-manager.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"config-manager.d.ts","sourceRoot":"","sources":["../../src/config/config-manager.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D;;;;GAIG;AACH,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,QAAQ,CAAC,IAAI,yBAAyB;gBAE1B,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;CAI3D;AAMD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,gBAAgB,EAAE,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,WAAW,CAAC,CAKhG,CAAC;AASF,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;gBAE5B,SAAS,CAAC,EAAE,MAAM;IAO9B,IAAI,IAAI,WAAW;IAgBnB,GAAG,CAAC,CAAC,SAAS,MAAM,WAAW,EAAE,GAAG,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;IAIxD,GAAG,CAAC,CAAC,SAAS,MAAM,WAAW,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI;IAmBrE;;;;;;;;;;;;;;;;;;OAkBG;IACH,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI;IAgE1C,mBAAmB,IAAI,MAAM,GAAG,IAAI;IAMpC,gBAAgB,IAAI,MAAM,GAAG,IAAI;IAMjC,gBAAgB,IAAI,MAAM,GAAG,IAAI;IAMjC,eAAe,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,aAAa;CA+FvD"}
|
|
@@ -1,6 +1,18 @@
|
|
|
1
1
|
import fs from 'node:fs';
|
|
2
2
|
import path from 'node:path';
|
|
3
3
|
import { getConfigDir, getConfigPath, ensureConfigDir } from '../utils/paths.js';
|
|
4
|
+
/**
|
|
5
|
+
* Thrown when ConfigManager.setMany() fails to write the config to disk.
|
|
6
|
+
* The on-disk file is left exactly as it was before the call; the in-memory
|
|
7
|
+
* config cache is also rolled back.
|
|
8
|
+
*/
|
|
9
|
+
export class ConfigWriteError extends Error {
|
|
10
|
+
code = 'CONFIG_WRITE_FAILED';
|
|
11
|
+
constructor(message, options) {
|
|
12
|
+
super(message, options);
|
|
13
|
+
this.name = 'ConfigWriteError';
|
|
14
|
+
}
|
|
15
|
+
}
|
|
4
16
|
import { AnthropicProvider } from '../ai/providers/anthropic-provider.js';
|
|
5
17
|
import { OpenAIProvider } from '../ai/providers/openai-provider.js';
|
|
6
18
|
import { GeminiProvider } from '../ai/providers/gemini-provider.js';
|
|
@@ -17,7 +29,7 @@ import { ClaudeCodeProvider } from '../ai/providers/claude-code-provider.js';
|
|
|
17
29
|
*
|
|
18
30
|
* Order matters: more-specific patterns first. Anchored at start (^) to avoid mid-id collisions.
|
|
19
31
|
*/
|
|
20
|
-
const MODEL_PREFIX_MAP = [
|
|
32
|
+
export const MODEL_PREFIX_MAP = [
|
|
21
33
|
[/^gpt-/i, 'openai'], // gpt-4, gpt-4o, gpt-5, gpt-5-mini, ...
|
|
22
34
|
[/^o\d/i, 'openai'], // o1, o1-mini, o3, o3-mini, o4-mini (reasoning)
|
|
23
35
|
[/^gemini-/i, 'gemini'], // gemini-2.5-pro, gemini-2.0-flash, ...
|
|
@@ -73,6 +85,87 @@ export class ConfigManager {
|
|
|
73
85
|
const updated = { ...existing, [key]: value };
|
|
74
86
|
fs.writeFileSync(this.configFilePath, JSON.stringify(updated, null, 2), 'utf8');
|
|
75
87
|
}
|
|
88
|
+
/**
|
|
89
|
+
* Atomically apply multiple config updates in a single file write.
|
|
90
|
+
*
|
|
91
|
+
* Semantics:
|
|
92
|
+
* - Keys not present in `patch` are preserved.
|
|
93
|
+
* - Keys set to `undefined` in `patch` are deleted from the on-disk JSON.
|
|
94
|
+
* - All updates land in one file write — no callers observe a half-written state.
|
|
95
|
+
* - Empty patch ({}) is a no-op: no disk I/O occurs, no error is thrown.
|
|
96
|
+
*
|
|
97
|
+
* On any I/O failure the on-disk file is left exactly as it was prior to the
|
|
98
|
+
* call; the in-memory `this.config` is also rolled back to the pre-call value.
|
|
99
|
+
*
|
|
100
|
+
* Throws a `ConfigWriteError` on failure. Existing `set()` callers are unaffected.
|
|
101
|
+
*
|
|
102
|
+
* Note: An fsync is attempted after writing the temp file for power-loss
|
|
103
|
+
* durability. On filesystems that do not support fsync on regular files
|
|
104
|
+
* (EINVAL), the error is silently ignored — the rename still guarantees
|
|
105
|
+
* atomicity on same-volume operations.
|
|
106
|
+
*/
|
|
107
|
+
setMany(patch) {
|
|
108
|
+
// 1.10: Early-return guard for empty patch — no I/O, no error
|
|
109
|
+
if (Object.keys(patch).length === 0)
|
|
110
|
+
return;
|
|
111
|
+
// Step 1: snapshot in-memory for rollback
|
|
112
|
+
const snapshotInMemory = { ...this.config };
|
|
113
|
+
// Step 2: read existing from disk
|
|
114
|
+
const existing = fs.existsSync(this.configFilePath)
|
|
115
|
+
? (() => {
|
|
116
|
+
try {
|
|
117
|
+
return JSON.parse(fs.readFileSync(this.configFilePath, 'utf8'));
|
|
118
|
+
}
|
|
119
|
+
catch {
|
|
120
|
+
return {};
|
|
121
|
+
}
|
|
122
|
+
})()
|
|
123
|
+
: {};
|
|
124
|
+
// Step 3: merge patch — drop keys whose value is undefined
|
|
125
|
+
const merged = { ...existing, ...patch };
|
|
126
|
+
for (const k of Object.keys(patch)) {
|
|
127
|
+
if (patch[k] === undefined) {
|
|
128
|
+
delete merged[k];
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
// Step 4: ensure config dir exists
|
|
132
|
+
ensureConfigDir();
|
|
133
|
+
// Step 5: write to a temp file
|
|
134
|
+
const tmpPath = `${this.configFilePath}.tmp-${process.pid}-${Date.now()}`;
|
|
135
|
+
try {
|
|
136
|
+
// Step 6: write JSON to temp file
|
|
137
|
+
fs.writeFileSync(tmpPath, JSON.stringify(merged, null, 2), 'utf8');
|
|
138
|
+
// Step 7: fsync best-effort for power-loss durability
|
|
139
|
+
try {
|
|
140
|
+
const fd = fs.openSync(tmpPath, 'r+');
|
|
141
|
+
try {
|
|
142
|
+
fs.fsyncSync(fd);
|
|
143
|
+
}
|
|
144
|
+
finally {
|
|
145
|
+
fs.closeSync(fd);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
catch {
|
|
149
|
+
// EINVAL on some filesystems — not fatal, rename still gives atomicity
|
|
150
|
+
}
|
|
151
|
+
// Step 8: atomic rename temp → real config path
|
|
152
|
+
fs.renameSync(tmpPath, this.configFilePath);
|
|
153
|
+
// Step 9: commit in-memory only after successful rename
|
|
154
|
+
this.config = merged;
|
|
155
|
+
}
|
|
156
|
+
catch (err) {
|
|
157
|
+
// Step 10: rollback — best-effort cleanup of temp file
|
|
158
|
+
try {
|
|
159
|
+
fs.unlinkSync(tmpPath);
|
|
160
|
+
}
|
|
161
|
+
catch { /* ignore */ }
|
|
162
|
+
// Restore in-memory state
|
|
163
|
+
this.config = snapshotInMemory;
|
|
164
|
+
// Rethrow as ConfigWriteError
|
|
165
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
166
|
+
throw new ConfigWriteError(message, { cause: err });
|
|
167
|
+
}
|
|
168
|
+
}
|
|
76
169
|
resolveAnthropicKey() {
|
|
77
170
|
const envKey = process.env['ANTHROPIC_API_KEY'];
|
|
78
171
|
if (envKey)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-manager.js","sourceRoot":"","sources":["../../src/config/config-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"config-manager.js","sourceRoot":"","sources":["../../src/config/config-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,12 @@ export interface ScrollListProps {
|
|
|
15
15
|
windowSize?: number;
|
|
16
16
|
isFocused?: boolean;
|
|
17
17
|
groupHeaders?: GroupHeader[] | undefined;
|
|
18
|
+
/** When true, renders each item as a single line (cursor + fixed-width label + dim sublabel).
|
|
19
|
+
* When false or absent, uses the existing two-line layout (unchanged). */
|
|
20
|
+
inline?: boolean;
|
|
21
|
+
/** Width of the label column in inline mode. Defaults to 0 (no fixed width).
|
|
22
|
+
* Ignored when inline is false or absent. */
|
|
23
|
+
labelColumnWidth?: number;
|
|
18
24
|
}
|
|
19
|
-
export declare function ScrollList({ items, onSelect, onBack, windowSize, isFocused, groupHeaders, }: ScrollListProps): React.ReactElement;
|
|
25
|
+
export declare function ScrollList({ items, onSelect, onBack, windowSize, isFocused, groupHeaders, inline, labelColumnWidth, }: ScrollListProps): React.ReactElement;
|
|
20
26
|
//# sourceMappingURL=scroll-list.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scroll-list.d.ts","sourceRoot":"","sources":["../../../src/tui/components/scroll-list.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAGxE,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,QAAQ,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IACzC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,WAAW,EAAE,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"scroll-list.d.ts","sourceRoot":"","sources":["../../../src/tui/components/scroll-list.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAGxE,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,QAAQ,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IACzC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,WAAW,EAAE,GAAG,SAAS,CAAC;IACzC;+EAC2E;IAC3E,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;kDAC8C;IAC9C,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAyBD,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,QAAQ,EACR,MAAM,EACN,UAAe,EACf,SAAgB,EAChB,YAAY,EACZ,MAAM,EACN,gBAAoB,GACrB,EAAE,eAAe,GAAG,KAAK,CAAC,YAAY,CAkItC"}
|
|
@@ -18,7 +18,7 @@ function computeWindowOffset(selectedIndex, currentOffset, windowSize, totalItem
|
|
|
18
18
|
}
|
|
19
19
|
return currentOffset;
|
|
20
20
|
}
|
|
21
|
-
export function ScrollList({ items, onSelect, onBack, windowSize = 10, isFocused = true, groupHeaders, }) {
|
|
21
|
+
export function ScrollList({ items, onSelect, onBack, windowSize = 10, isFocused = true, groupHeaders, inline, labelColumnWidth = 0, }) {
|
|
22
22
|
const [selectedIndex, setSelectedIndex] = useState(0);
|
|
23
23
|
const [windowOffset, setWindowOffset] = useState(0);
|
|
24
24
|
// T2.2: reset selectedIndex when items.length changes
|
|
@@ -79,7 +79,17 @@ export function ScrollList({ items, onSelect, onBack, windowSize = 10, isFocused
|
|
|
79
79
|
const absoluteIndex = windowOffset + visibleIdx;
|
|
80
80
|
const isSelected = absoluteIndex === selectedIndex;
|
|
81
81
|
const headerLabel = headerMap.current.get(absoluteIndex);
|
|
82
|
-
return (_jsxs(React.Fragment, { children: [headerLabel !== undefined && (_jsx(Text, { bold: true, dimColor: true, children: `── ${headerLabel} ──` })),
|
|
82
|
+
return (_jsxs(React.Fragment, { children: [headerLabel !== undefined && (_jsx(Text, { bold: true, dimColor: true, children: `── ${headerLabel} ──` })), inline ? (
|
|
83
|
+
// Inline mode: single row with cursor + fixed-width label column + dim sublabel
|
|
84
|
+
_jsxs(Box, { flexDirection: "row", children: [isSelected
|
|
85
|
+
? _jsx(Text, { color: "cyan", bold: true, children: '▸ ' })
|
|
86
|
+
: _jsx(Text, { children: ' ' }), labelColumnWidth > 0 ? (_jsx(Box, { width: labelColumnWidth, children: isSelected
|
|
87
|
+
? _jsx(Text, { color: "cyan", bold: true, children: item.label })
|
|
88
|
+
: _jsx(Text, { children: item.label }) })) : (isSelected
|
|
89
|
+
? _jsx(Text, { color: "cyan", bold: true, children: item.label })
|
|
90
|
+
: _jsx(Text, { children: item.label })), item.sublabel !== undefined && item.sublabel !== '' && (_jsx(Text, { dimColor: true, children: item.sublabel }))] })) : (
|
|
91
|
+
// Default mode: two-line layout (unchanged)
|
|
92
|
+
_jsxs(Box, { flexDirection: "column", children: [_jsxs(Box, { flexDirection: "row", children: [isSelected ? (_jsx(Text, { color: "cyan", bold: true, children: '▸ ' })) : (_jsx(Text, { children: ' ' })), isSelected ? (_jsx(Text, { color: "cyan", bold: true, children: item.label })) : (_jsx(Text, { children: item.label }))] }), item.sublabel !== undefined && item.sublabel !== '' && (_jsx(Box, { paddingLeft: 2, children: _jsx(Text, { dimColor: true, children: item.sublabel }) }))] }))] }, item.key));
|
|
83
93
|
}), itemsBelow > 0 && (_jsx(Text, { dimColor: true, children: `↓ ${itemsBelow} more` }))] }));
|
|
84
94
|
}
|
|
85
95
|
//# sourceMappingURL=scroll-list.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scroll-list.js","sourceRoot":"","sources":["../../../src/tui/components/scroll-list.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACxE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"scroll-list.js","sourceRoot":"","sources":["../../../src/tui/components/scroll-list.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screen-router.d.ts","sourceRoot":"","sources":["../../src/tui/screen-router.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"screen-router.d.ts","sourceRoot":"","sources":["../../src/tui/screen-router.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AA2B1B,wBAAgB,YAAY,IAAI,KAAK,CAAC,YAAY,CAuDjD"}
|
|
@@ -23,9 +23,7 @@ import { GuardResultsScreen } from './screens/guard-results.js';
|
|
|
23
23
|
import { GuardDetailScreen } from './screens/guard-detail.js';
|
|
24
24
|
import { BootstrapRunningScreen } from './screens/bootstrap-running.js';
|
|
25
25
|
import { RuleSuggestionsScreen } from './screens/rule-suggestions.js';
|
|
26
|
-
import {
|
|
27
|
-
import { SettingsMenuScreen } from './screens/settings-menu.js';
|
|
28
|
-
import { SettingsProviderScreen } from './screens/settings-provider.js';
|
|
26
|
+
import { UnifiedSettingsScreen } from './screens/unified-settings.js';
|
|
29
27
|
export function ScreenRouter() {
|
|
30
28
|
const { currentScreen } = useRouter();
|
|
31
29
|
switch (currentScreen.name) {
|
|
@@ -73,12 +71,8 @@ export function ScreenRouter() {
|
|
|
73
71
|
return _jsx(BootstrapRunningScreen, {});
|
|
74
72
|
case 'rule-suggestions':
|
|
75
73
|
return _jsx(RuleSuggestionsScreen, {});
|
|
76
|
-
case 'settings
|
|
77
|
-
return _jsx(
|
|
78
|
-
case 'settings-provider':
|
|
79
|
-
return _jsx(SettingsProviderScreen, {});
|
|
80
|
-
case 'settings':
|
|
81
|
-
return _jsx(SettingsScreen, {});
|
|
74
|
+
case 'unified-settings':
|
|
75
|
+
return _jsx(UnifiedSettingsScreen, {});
|
|
82
76
|
default: {
|
|
83
77
|
const _exhaustive = currentScreen.name;
|
|
84
78
|
return _jsxs(Text, { children: ["Unknown Screen: ", String(_exhaustive)] });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screen-router.js","sourceRoot":"","sources":["../../src/tui/screen-router.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"screen-router.js","sourceRoot":"","sources":["../../src/tui/screen-router.tsx"],"names":[],"mappings":"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"}
|
package/dist/tui/screens/home.js
CHANGED
|
@@ -61,7 +61,7 @@ export function HomeScreen() {
|
|
|
61
61
|
push({ name: 'workspace-select', params: { flow: 'bootstrap' } });
|
|
62
62
|
break;
|
|
63
63
|
case 'settings':
|
|
64
|
-
push({ name: 'settings
|
|
64
|
+
push({ name: 'unified-settings', params: {} });
|
|
65
65
|
break;
|
|
66
66
|
case 'past-sessions':
|
|
67
67
|
push({ name: 'session-list', params: {} });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"home.js","sourceRoot":"","sources":["../../../src/tui/screens/home.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"home.js","sourceRoot":"","sources":["../../../src/tui/screens/home.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SecretRow — focusable masked-text row for API key entry.
|
|
3
|
+
* Migrated from settings-provider.tsx with identical props interface.
|
|
4
|
+
*/
|
|
5
|
+
import React from 'react';
|
|
6
|
+
export interface SecretRowProps {
|
|
7
|
+
label: string;
|
|
8
|
+
value: string;
|
|
9
|
+
isFocused: boolean;
|
|
10
|
+
editing: boolean;
|
|
11
|
+
onChange: (value: string) => void;
|
|
12
|
+
onSubmit: () => void;
|
|
13
|
+
}
|
|
14
|
+
export declare function SecretRow({ label, value, isFocused, editing, onChange, onSubmit }: SecretRowProps): React.ReactElement;
|
|
15
|
+
//# sourceMappingURL=SecretRow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SecretRow.d.ts","sourceRoot":"","sources":["../../../../src/tui/screens/unified-settings/SecretRow.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AAOD,wBAAgB,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,cAAc,GAAG,KAAK,CAAC,YAAY,CA0BtH"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { jsxs as _jsxs, jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Text } from 'ink';
|
|
3
|
+
import TextInput from 'ink-text-input';
|
|
4
|
+
function maskSecret(value) {
|
|
5
|
+
if (!value)
|
|
6
|
+
return '(not set)';
|
|
7
|
+
return '*'.repeat(Math.min(24, Math.max(8, value.length)));
|
|
8
|
+
}
|
|
9
|
+
export function SecretRow({ label, value, isFocused, editing, onChange, onSubmit }) {
|
|
10
|
+
if (isFocused) {
|
|
11
|
+
return (_jsx(Box, { flexDirection: "column", children: _jsxs(Box, { children: [_jsxs(Text, { color: "cyan", children: ['▸', " "] }), _jsx(Text, { bold: true, color: "cyan", children: label }), _jsxs(Text, { dimColor: true, children: [" ", '·'.repeat(Math.max(1, 18 - Math.min(18, label.length))), " "] }), !editing && _jsxs(Text, { color: "cyan", children: ["Enter to edit (", maskSecret(value), ")"] }), editing && (_jsxs(_Fragment, { children: [_jsx(Text, { color: "cyan", children: "Editing: " }), _jsx(TextInput, { value: value, onChange: onChange, onSubmit: onSubmit, mask: "*", focus: true })] }))] }) }));
|
|
12
|
+
}
|
|
13
|
+
return (_jsxs(Box, { children: [_jsxs(Text, { children: [' ', label] }), _jsxs(Text, { dimColor: true, children: [" ", '·'.repeat(Math.max(1, 30 - label.length)), " "] }), _jsx(Text, { dimColor: true, children: maskSecret(value) })] }));
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=SecretRow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SecretRow.js","sourceRoot":"","sources":["../../../../src/tui/screens/unified-settings/SecretRow.tsx"],"names":[],"mappings":";AAKA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,SAAS,MAAM,gBAAgB,CAAC;AAWvC,SAAS,UAAU,CAAC,KAAa;IAC/B,IAAI,CAAC,KAAK;QAAE,OAAO,WAAW,CAAC;IAC/B,OAAO,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAkB;IAChG,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,CACL,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,YACzB,MAAC,GAAG,eACF,MAAC,IAAI,IAAC,KAAK,EAAC,MAAM,aAAE,GAAG,SAAS,EAChC,KAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAC,MAAM,YAAE,KAAK,GAAQ,EACtC,MAAC,IAAI,IAAC,QAAQ,wBAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EACjF,CAAC,OAAO,IAAI,MAAC,IAAI,IAAC,KAAK,EAAC,MAAM,gCAAiB,UAAU,CAAC,KAAK,CAAC,SAAS,EACzE,OAAO,IAAI,CACV,8BACE,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,0BAAiB,EACnC,KAAC,SAAS,IAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAC,GAAG,EAAC,KAAK,SAAG,IACjF,CACJ,IACG,GACF,CACP,CAAC;IACJ,CAAC;IACD,OAAO,CACL,MAAC,GAAG,eACF,MAAC,IAAI,eAAE,IAAI,EAAE,KAAK,IAAQ,EAC1B,MAAC,IAAI,IAAC,QAAQ,wBAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,SAAS,EACpE,KAAC,IAAI,IAAC,QAAQ,kBAAE,UAAU,CAAC,KAAK,CAAC,GAAQ,IACrC,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SettingRow — focusable enum/number row for the unified settings screen.
|
|
3
|
+
* Migrated from settings.tsx with identical props interface.
|
|
4
|
+
*/
|
|
5
|
+
import React from 'react';
|
|
6
|
+
export interface SettingRowProps {
|
|
7
|
+
label: string;
|
|
8
|
+
value: string | number;
|
|
9
|
+
type: 'enum' | 'number';
|
|
10
|
+
isFocused: boolean;
|
|
11
|
+
help?: string | undefined;
|
|
12
|
+
}
|
|
13
|
+
export declare function SettingRow({ label, value, type, isFocused, help }: SettingRowProps): React.ReactElement;
|
|
14
|
+
//# sourceMappingURL=SettingRow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SettingRow.d.ts","sourceRoot":"","sources":["../../../../src/tui/screens/unified-settings/SettingRow.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B;AAED,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,eAAe,GAAG,KAAK,CAAC,YAAY,CA4BvG"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Text } from 'ink';
|
|
3
|
+
export function SettingRow({ label, value, type, isFocused, help }) {
|
|
4
|
+
const displayValue = String(value);
|
|
5
|
+
if (isFocused) {
|
|
6
|
+
const controls = type === 'number' ? `- ${displayValue} +` : `◄ ${displayValue} ►`;
|
|
7
|
+
return (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Box, { flexDirection: "row", children: [_jsxs(Text, { color: "cyan", children: ['▸', " "] }), _jsx(Text, { bold: true, color: "cyan", children: label }), _jsxs(Text, { dimColor: true, children: [" ", '·'.repeat(Math.max(1, 26 - label.length)), " "] }), _jsx(Text, { color: "cyan", children: controls })] }), help && (_jsxs(Text, { dimColor: true, children: [' ', help] }))] }));
|
|
8
|
+
}
|
|
9
|
+
return (_jsxs(Box, { flexDirection: "row", children: [_jsx(Text, { children: ' ' }), _jsx(Text, { children: label }), _jsxs(Text, { dimColor: true, children: [" ", '·'.repeat(Math.max(1, 30 - label.length)), " "] }), _jsx(Text, { dimColor: true, children: displayValue })] }));
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=SettingRow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SettingRow.js","sourceRoot":"","sources":["../../../../src/tui/screens/unified-settings/SettingRow.tsx"],"names":[],"mappings":";AAKA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAUhC,MAAM,UAAU,UAAU,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAmB;IACjF,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAEnC,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,QAAQ,GAAG,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,YAAY,IAAI,CAAC,CAAC,CAAC,KAAK,YAAY,IAAI,CAAC;QACnF,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,MAAC,GAAG,IAAC,aAAa,EAAC,KAAK,aACtB,MAAC,IAAI,IAAC,KAAK,EAAC,MAAM,aAAE,GAAG,SAAS,EAChC,KAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAC,MAAM,YAAE,KAAK,GAAQ,EACtC,MAAC,IAAI,IAAC,QAAQ,wBAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,SAAS,EACpE,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,YAAE,QAAQ,GAAQ,IAChC,EACL,IAAI,IAAI,CACP,MAAC,IAAI,IAAC,QAAQ,mBAAE,MAAM,EAAE,IAAI,IAAQ,CACrC,IACG,CACP,CAAC;IACJ,CAAC;IAED,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,KAAK,aACtB,KAAC,IAAI,cAAE,IAAI,GAAQ,EACnB,KAAC,IAAI,cAAE,KAAK,GAAQ,EACpB,MAAC,IAAI,IAAC,QAAQ,wBAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,SAAS,EACpE,KAAC,IAAI,IAAC,QAAQ,kBAAE,YAAY,GAAQ,IAChC,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared constants for the unified settings screen.
|
|
3
|
+
* Migrated verbatim from settings.tsx and settings-provider.tsx — values must not change.
|
|
4
|
+
*/
|
|
5
|
+
export type ProviderOption = '(auto)' | 'anthropic' | 'openai' | 'gemini' | 'claude-code';
|
|
6
|
+
export declare const PROVIDERS: ProviderOption[];
|
|
7
|
+
export declare const BASE_MODEL_OPTIONS: readonly ["claude-opus-4-5", "claude-sonnet-4-5", "claude-haiku-3-5", "gpt-5", "gpt-5-mini", "gpt-5.4-mini", "gpt-4.1", "gemini-2.5-pro", "gemini-2.5-flash", "sonnet"];
|
|
8
|
+
export type BaseModel = (typeof BASE_MODEL_OPTIONS)[number];
|
|
9
|
+
export interface AgentRowDescriptor {
|
|
10
|
+
agentId: string;
|
|
11
|
+
label: string;
|
|
12
|
+
help?: string;
|
|
13
|
+
}
|
|
14
|
+
export declare const AGENT_ROWS: AgentRowDescriptor[];
|
|
15
|
+
export declare const CRITICAL_AGENTS: Set<string>;
|
|
16
|
+
export type PresetName = 'Max' | 'Balance' | 'Low';
|
|
17
|
+
export interface AgentPreset {
|
|
18
|
+
name: PresetName;
|
|
19
|
+
label: string;
|
|
20
|
+
/** Model assigned to security-reviewer and architecture-reviewer */
|
|
21
|
+
critical: string;
|
|
22
|
+
/** Model assigned to all other agents */
|
|
23
|
+
standard: string;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Provider-keyed agent model presets.
|
|
27
|
+
* Each provider has Max / Balance / Low tiers in order.
|
|
28
|
+
* Anthropic ladder is verbatim from prior AGENT_PRESETS — no regression.
|
|
29
|
+
*/
|
|
30
|
+
export declare const AGENT_PRESETS_BY_PROVIDER: Record<'anthropic' | 'openai' | 'gemini', AgentPreset[]>;
|
|
31
|
+
/**
|
|
32
|
+
* Canonical preset name order — derived from the Anthropic bucket for one source of truth.
|
|
33
|
+
* Used by Left/Right cycling; stable order across providers is a UX requirement.
|
|
34
|
+
*/
|
|
35
|
+
export declare const PRESET_NAMES: readonly PresetName[];
|
|
36
|
+
/**
|
|
37
|
+
* Return the preset entry for a given provider and preset name.
|
|
38
|
+
* Falls back to Balance (bucket[1]) if the name is not found.
|
|
39
|
+
*/
|
|
40
|
+
export declare function getPresetForProvider(provider: ProviderOption, name: PresetName): AgentPreset;
|
|
41
|
+
/**
|
|
42
|
+
* Return the default preset (Balance) for a given provider.
|
|
43
|
+
* Convenience wrapper used when seeding initial draft state.
|
|
44
|
+
*/
|
|
45
|
+
export declare function getDefaultPreset(provider: ProviderOption): AgentPreset;
|
|
46
|
+
/**
|
|
47
|
+
* Detect which preset name matches the given agentModels record for a specific provider.
|
|
48
|
+
* Searches only within AGENT_PRESETS_BY_PROVIDER[provider] (falls back to Anthropic
|
|
49
|
+
* for '(auto)' and 'claude-code').
|
|
50
|
+
* Returns the PresetName if all agents exactly match a preset, or null if the
|
|
51
|
+
* configuration is custom (no preset match).
|
|
52
|
+
*/
|
|
53
|
+
export declare function detectPresetName(agentModels: Record<string, string>, provider: ProviderOption): PresetName | null;
|
|
54
|
+
/**
|
|
55
|
+
* Build agentModels record from a preset (applying critical vs. standard per agent).
|
|
56
|
+
*/
|
|
57
|
+
export declare function buildPresetAgentModels(preset: AgentPreset): Record<string, string>;
|
|
58
|
+
/**
|
|
59
|
+
* Build an agentModels record using the provider-appropriate Balance preset models.
|
|
60
|
+
* Falls back to the Anthropic Balance preset for '(auto)' and 'claude-code'.
|
|
61
|
+
*
|
|
62
|
+
* Implementation delegates to getPresetForProvider so there is one source of truth.
|
|
63
|
+
*/
|
|
64
|
+
export declare function buildProviderPresetAgentModels(provider: ProviderOption): Record<string, string>;
|
|
65
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/tui/screens/unified-settings/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,aAAa,CAAC;AAE1F,eAAO,MAAM,SAAS,EAAE,cAAc,EAA+D,CAAC;AAEtG,eAAO,MAAM,kBAAkB,yKAWrB,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5D,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,UAAU,EAAE,kBAAkB,EAe1C,CAAC;AAEF,eAAO,MAAM,eAAe,aAA0D,CAAC;AAEvF,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,SAAS,GAAG,KAAK,CAAC;AAEnD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,oEAAoE;IACpE,QAAQ,EAAE,MAAM,CAAC;IACjB,yCAAyC;IACzC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAC5C,WAAW,GAAG,QAAQ,GAAG,QAAQ,EACjC,WAAW,EAAE,CAiBd,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,SAAS,UAAU,EAAyD,CAAC;AAexG;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,cAAc,EACxB,IAAI,EAAE,UAAU,GACf,WAAW,CAGb;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,cAAc,GAAG,WAAW,CAEtE;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACnC,QAAQ,EAAE,cAAc,GACvB,UAAU,GAAG,IAAI,CAUnB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAMlF;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,cAAc,GACvB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAExB"}
|