prism-pr 1.0.0-alpha.70 → 1.0.0-alpha.71

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.
Files changed (54) hide show
  1. package/dist/config/config-manager.d.ts +44 -0
  2. package/dist/config/config-manager.d.ts.map +1 -1
  3. package/dist/config/config-manager.js +94 -1
  4. package/dist/config/config-manager.js.map +1 -1
  5. package/dist/tui/screen-router.d.ts.map +1 -1
  6. package/dist/tui/screen-router.js +3 -9
  7. package/dist/tui/screen-router.js.map +1 -1
  8. package/dist/tui/screens/home.js +1 -1
  9. package/dist/tui/screens/home.js.map +1 -1
  10. package/dist/tui/screens/unified-settings/SecretRow.d.ts +15 -0
  11. package/dist/tui/screens/unified-settings/SecretRow.d.ts.map +1 -0
  12. package/dist/tui/screens/unified-settings/SecretRow.js +15 -0
  13. package/dist/tui/screens/unified-settings/SecretRow.js.map +1 -0
  14. package/dist/tui/screens/unified-settings/SettingRow.d.ts +14 -0
  15. package/dist/tui/screens/unified-settings/SettingRow.d.ts.map +1 -0
  16. package/dist/tui/screens/unified-settings/SettingRow.js +11 -0
  17. package/dist/tui/screens/unified-settings/SettingRow.js.map +1 -0
  18. package/dist/tui/screens/unified-settings/constants.d.ts +58 -0
  19. package/dist/tui/screens/unified-settings/constants.d.ts.map +1 -0
  20. package/dist/tui/screens/unified-settings/constants.js +97 -0
  21. package/dist/tui/screens/unified-settings/constants.js.map +1 -0
  22. package/dist/tui/screens/unified-settings/state.d.ts +154 -0
  23. package/dist/tui/screens/unified-settings/state.d.ts.map +1 -0
  24. package/dist/tui/screens/unified-settings/state.js +435 -0
  25. package/dist/tui/screens/unified-settings/state.js.map +1 -0
  26. package/dist/tui/screens/unified-settings/tab-agents.d.ts +14 -0
  27. package/dist/tui/screens/unified-settings/tab-agents.d.ts.map +1 -0
  28. package/dist/tui/screens/unified-settings/tab-agents.js +26 -0
  29. package/dist/tui/screens/unified-settings/tab-agents.js.map +1 -0
  30. package/dist/tui/screens/unified-settings/tab-bar.d.ts +12 -0
  31. package/dist/tui/screens/unified-settings/tab-bar.d.ts.map +1 -0
  32. package/dist/tui/screens/unified-settings/tab-bar.js +15 -0
  33. package/dist/tui/screens/unified-settings/tab-bar.js.map +1 -0
  34. package/dist/tui/screens/unified-settings/tab-defaults.d.ts +13 -0
  35. package/dist/tui/screens/unified-settings/tab-defaults.d.ts.map +1 -0
  36. package/dist/tui/screens/unified-settings/tab-defaults.js +12 -0
  37. package/dist/tui/screens/unified-settings/tab-defaults.js.map +1 -0
  38. package/dist/tui/screens/unified-settings/tab-models.d.ts +13 -0
  39. package/dist/tui/screens/unified-settings/tab-models.d.ts.map +1 -0
  40. package/dist/tui/screens/unified-settings/tab-models.js +12 -0
  41. package/dist/tui/screens/unified-settings/tab-models.js.map +1 -0
  42. package/dist/tui/screens/unified-settings/tab-provider.d.ts +13 -0
  43. package/dist/tui/screens/unified-settings/tab-provider.d.ts.map +1 -0
  44. package/dist/tui/screens/unified-settings/tab-provider.js +14 -0
  45. package/dist/tui/screens/unified-settings/tab-provider.js.map +1 -0
  46. package/dist/tui/screens/unified-settings.d.ts +9 -0
  47. package/dist/tui/screens/unified-settings.d.ts.map +1 -0
  48. package/dist/tui/screens/unified-settings.js +364 -0
  49. package/dist/tui/screens/unified-settings.js.map +1 -0
  50. package/dist/tui/state/router-reducer.d.ts +1 -1
  51. package/dist/tui/state/router-reducer.d.ts.map +1 -1
  52. package/dist/tui/state/router-reducer.js.map +1 -1
  53. package/oclif.manifest.json +1 -1
  54. 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;AAgC1D,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,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
+ {"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":"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"}
1
+ {"version":3,"file":"config-manager.js","sourceRoot":"","sources":["../../src/config/config-manager.ts"],"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;AA6B1B,wBAAgB,YAAY,IAAI,KAAK,CAAC,YAAY,CA2DjD"}
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 { SettingsScreen } from './screens/settings.js';
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-menu':
77
- return _jsx(SettingsMenuScreen, {});
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":"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"}
1
+ {"version":3,"file":"screen-router.js","sourceRoot":"","sources":["../../src/tui/screen-router.tsx"],"names":[],"mappings":"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"}
@@ -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-menu', params: {} });
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,58 @@
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-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
+ * Agent model presets keyed by provider.
27
+ * All presets use Anthropic models — the user chooses the preset per context,
28
+ * not per provider. Cross-provider validation is separate from preset selection.
29
+ */
30
+ export declare const AGENT_PRESETS: AgentPreset[];
31
+ export declare const PRESET_NAMES: PresetName[];
32
+ export declare const DEFAULT_PRESET: AgentPreset;
33
+ /**
34
+ * Detect which preset name matches the given agentModels record.
35
+ * Returns the PresetName if all agents exactly match a preset, or null if the
36
+ * configuration is custom (no preset match).
37
+ */
38
+ export declare function detectPresetName(agentModels: Record<string, string>): PresetName | null;
39
+ /**
40
+ * Build agentModels record from a preset (applying critical vs. standard per agent).
41
+ */
42
+ export declare function buildPresetAgentModels(preset: AgentPreset): Record<string, string>;
43
+ /**
44
+ * Per-provider default model IDs for the Balance-equivalent reset preset.
45
+ * Used by AGENTS/RESET_TO_PROVIDER_PRESET to write provider-appropriate model IDs.
46
+ * Only explicit providers (anthropic, openai, gemini) are included; '(auto)' and
47
+ * 'claude-code' fall back to the Anthropic Balance preset.
48
+ */
49
+ export declare const DEFAULT_AGENT_MODELS_BY_PROVIDER: Record<'anthropic' | 'openai' | 'gemini', {
50
+ critical: string;
51
+ standard: string;
52
+ }>;
53
+ /**
54
+ * Build an agentModels record using the provider-appropriate Balance preset models.
55
+ * Falls back to the Anthropic Balance preset for '(auto)' and 'claude-code'.
56
+ */
57
+ export declare function buildProviderPresetAgentModels(provider: ProviderOption): Record<string, string>;
58
+ //# 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,yJAUrB,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,aAAa,EAAE,WAAW,EAItC,CAAC;AAEF,eAAO,MAAM,YAAY,cAAiC,CAAC;AAC3D,eAAO,MAAM,cAAc,aAAiD,CAAC;AAE7E;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,UAAU,GAAG,IAAI,CASvF;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAMlF;AAED;;;;;GAKG;AACH,eAAO,MAAM,gCAAgC,EAAE,MAAM,CACnD,WAAW,GAAG,QAAQ,GAAG,QAAQ,EACjC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAKvC,CAAC;AAEF;;;GAGG;AACH,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,cAAc,GACvB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAWxB"}
@@ -0,0 +1,97 @@
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 const PROVIDERS = ['(auto)', 'anthropic', 'openai', 'gemini', 'claude-code'];
6
+ export const BASE_MODEL_OPTIONS = [
7
+ 'claude-opus-4-5',
8
+ 'claude-sonnet-4-5',
9
+ 'claude-haiku-3-5',
10
+ 'gpt-5',
11
+ 'gpt-5-mini',
12
+ 'gpt-4.1',
13
+ 'gemini-2.5-pro',
14
+ 'gemini-2.5-flash',
15
+ 'sonnet',
16
+ ];
17
+ export const AGENT_ROWS = [
18
+ { agentId: 'ts-reviewer', label: 'TS Reviewer' },
19
+ { agentId: 'security-reviewer', label: 'Security' },
20
+ { agentId: 'css-reviewer', label: 'CSS' },
21
+ { agentId: 'html-reviewer', label: 'HTML' },
22
+ { agentId: 'csharp-reviewer', label: 'C# Reviewer' },
23
+ { agentId: 'php-reviewer', label: 'PHP' },
24
+ { agentId: 'blade-reviewer', label: 'Blade' },
25
+ { agentId: 'python-reviewer', label: 'Python' },
26
+ { agentId: 'architecture-reviewer', label: 'Architecture' },
27
+ { agentId: 'testing-reviewer', label: 'Testing' },
28
+ { agentId: 'performance-reviewer', label: 'Performance' },
29
+ { agentId: 'sql-reviewer', label: 'SQL' },
30
+ { agentId: 'config-reviewer', label: 'Config' },
31
+ { agentId: 'ux-text-reviewer', label: 'UX Text' },
32
+ ];
33
+ export const CRITICAL_AGENTS = new Set(['security-reviewer', 'architecture-reviewer']);
34
+ /**
35
+ * Agent model presets keyed by provider.
36
+ * All presets use Anthropic models — the user chooses the preset per context,
37
+ * not per provider. Cross-provider validation is separate from preset selection.
38
+ */
39
+ export const AGENT_PRESETS = [
40
+ { name: 'Max', label: 'Max', critical: 'claude-opus-4-5', standard: 'claude-opus-4-5' },
41
+ { name: 'Balance', label: 'Balance', critical: 'claude-opus-4-5', standard: 'claude-sonnet-4-5' },
42
+ { name: 'Low', label: 'Low', critical: 'claude-sonnet-4-5', standard: 'claude-haiku-3-5' },
43
+ ];
44
+ export const PRESET_NAMES = AGENT_PRESETS.map(p => p.name);
45
+ export const DEFAULT_PRESET = AGENT_PRESETS.find(p => p.name === 'Balance');
46
+ /**
47
+ * Detect which preset name matches the given agentModels record.
48
+ * Returns the PresetName if all agents exactly match a preset, or null if the
49
+ * configuration is custom (no preset match).
50
+ */
51
+ export function detectPresetName(agentModels) {
52
+ for (const preset of AGENT_PRESETS) {
53
+ const allMatch = AGENT_ROWS.every(row => {
54
+ const expected = CRITICAL_AGENTS.has(row.agentId) ? preset.critical : preset.standard;
55
+ return agentModels[row.agentId] === expected;
56
+ });
57
+ if (allMatch)
58
+ return preset.name;
59
+ }
60
+ return null;
61
+ }
62
+ /**
63
+ * Build agentModels record from a preset (applying critical vs. standard per agent).
64
+ */
65
+ export function buildPresetAgentModels(preset) {
66
+ const result = {};
67
+ for (const row of AGENT_ROWS) {
68
+ result[row.agentId] = CRITICAL_AGENTS.has(row.agentId) ? preset.critical : preset.standard;
69
+ }
70
+ return result;
71
+ }
72
+ /**
73
+ * Per-provider default model IDs for the Balance-equivalent reset preset.
74
+ * Used by AGENTS/RESET_TO_PROVIDER_PRESET to write provider-appropriate model IDs.
75
+ * Only explicit providers (anthropic, openai, gemini) are included; '(auto)' and
76
+ * 'claude-code' fall back to the Anthropic Balance preset.
77
+ */
78
+ export const DEFAULT_AGENT_MODELS_BY_PROVIDER = {
79
+ anthropic: { critical: 'claude-opus-4-5', standard: 'claude-sonnet-4-5' },
80
+ openai: { critical: 'gpt-5', standard: 'gpt-5-mini' },
81
+ gemini: { critical: 'gemini-2.5-pro', standard: 'gemini-2.5-flash' },
82
+ };
83
+ /**
84
+ * Build an agentModels record using the provider-appropriate Balance preset models.
85
+ * Falls back to the Anthropic Balance preset for '(auto)' and 'claude-code'.
86
+ */
87
+ export function buildProviderPresetAgentModels(provider) {
88
+ const models = provider === 'anthropic' || provider === 'openai' || provider === 'gemini'
89
+ ? DEFAULT_AGENT_MODELS_BY_PROVIDER[provider]
90
+ : DEFAULT_AGENT_MODELS_BY_PROVIDER['anthropic']; // fallback for (auto) and claude-code
91
+ const result = {};
92
+ for (const row of AGENT_ROWS) {
93
+ result[row.agentId] = CRITICAL_AGENTS.has(row.agentId) ? models.critical : models.standard;
94
+ }
95
+ return result;
96
+ }
97
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/tui/screens/unified-settings/constants.ts"],"names":[],"mappings":"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"}