maestro-flow 0.3.32 → 0.3.34
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/.claude/commands/learn-retro.md +1 -1
- package/.claude/commands/maestro-composer.md +2 -2
- package/.claude/commands/maestro-ralph-execute.md +1 -1
- package/.claude/commands/maestro-ralph.md +11 -11
- package/.claude/commands/maestro-verify.md +1 -1
- package/.claude/commands/maestro.md +1 -2
- package/.claude/commands/quality-auto-test.md +124 -0
- package/.claude/commands/quality-refactor.md +1 -1
- package/.claude/commands/quality-test.md +3 -3
- package/.codex/skills/learn-retro/SKILL.md +1 -1
- package/.codex/skills/maestro/SKILL.md +1 -1
- package/.codex/skills/maestro-link-coordinate/SKILL.md +1 -1
- package/.codex/skills/maestro-milestone-audit/SKILL.md +9 -1
- package/.codex/skills/maestro-plan/SKILL.md +72 -6
- package/.codex/skills/maestro-ralph/SKILL.md +159 -159
- package/.codex/skills/maestro-roadmap/SKILL.md +31 -5
- package/.codex/skills/maestro-verify/SKILL.md +1 -1
- package/.codex/skills/quality-auto-test/SKILL.md +547 -0
- package/.codex/skills/quality-debug/SKILL.md +18 -6
- package/.codex/skills/quality-refactor/SKILL.md +8 -1
- package/.codex/skills/quality-sync/SKILL.md +23 -4
- package/.codex/skills/quality-test/SKILL.md +498 -166
- package/dashboard/dist-server/src/config/cli-tools-config.js +5 -20
- package/dashboard/dist-server/src/config/cli-tools-config.js.map +1 -1
- package/dashboard/dist-server/src/config/cli-tools-defaults.json +17 -0
- package/dist/src/commands/config.d.ts.map +1 -1
- package/dist/src/commands/config.js +168 -32
- package/dist/src/commands/config.js.map +1 -1
- package/dist/src/commands/hooks.d.ts +9 -0
- package/dist/src/commands/hooks.d.ts.map +1 -1
- package/dist/src/commands/hooks.js +1 -1
- package/dist/src/commands/hooks.js.map +1 -1
- package/dist/src/commands/install.js +1 -1
- package/dist/src/commands/install.js.map +1 -1
- package/dist/src/commands/overlay.js +1 -1
- package/dist/src/commands/overlay.js.map +1 -1
- package/dist/src/commands/tools.d.ts.map +1 -1
- package/dist/src/commands/tools.js +7 -17
- package/dist/src/commands/tools.js.map +1 -1
- package/dist/src/commands/uninstall.js +1 -1
- package/dist/src/commands/uninstall.js.map +1 -1
- package/dist/src/config/cli-tools-config.d.ts.map +1 -1
- package/dist/src/config/cli-tools-config.js +5 -20
- package/dist/src/config/cli-tools-config.js.map +1 -1
- package/dist/src/config/cli-tools-defaults.json +17 -0
- package/dist/src/tui/config-ui/ConfigHub.d.ts +14 -0
- package/dist/src/tui/config-ui/ConfigHub.d.ts.map +1 -0
- package/dist/src/tui/config-ui/ConfigHub.js +125 -0
- package/dist/src/tui/config-ui/ConfigHub.js.map +1 -0
- package/dist/src/tui/config-ui/ConfigSourcesView.d.ts +6 -0
- package/dist/src/tui/config-ui/ConfigSourcesView.d.ts.map +1 -0
- package/dist/src/tui/config-ui/ConfigSourcesView.js +25 -0
- package/dist/src/tui/config-ui/ConfigSourcesView.js.map +1 -0
- package/dist/src/tui/config-ui/HooksPanel.d.ts +6 -0
- package/dist/src/tui/config-ui/HooksPanel.d.ts.map +1 -0
- package/dist/src/tui/config-ui/HooksPanel.js +92 -0
- package/dist/src/tui/config-ui/HooksPanel.js.map +1 -0
- package/dist/src/tui/config-ui/SkillConfigDashboard.d.ts +9 -0
- package/dist/src/tui/config-ui/SkillConfigDashboard.d.ts.map +1 -0
- package/dist/src/tui/config-ui/SkillConfigDashboard.js +64 -0
- package/dist/src/tui/config-ui/SkillConfigDashboard.js.map +1 -0
- package/dist/src/tui/config-ui/SkillParamEditor.d.ts +12 -0
- package/dist/src/tui/config-ui/SkillParamEditor.d.ts.map +1 -0
- package/dist/src/tui/config-ui/SkillParamEditor.js +162 -0
- package/dist/src/tui/config-ui/SkillParamEditor.js.map +1 -0
- package/dist/src/tui/config-ui/SkillsList.d.ts +12 -0
- package/dist/src/tui/config-ui/SkillsList.d.ts.map +1 -0
- package/dist/src/tui/config-ui/SkillsList.js +91 -0
- package/dist/src/tui/config-ui/SkillsList.js.map +1 -0
- package/dist/src/tui/config-ui/SpecPanel.d.ts +6 -0
- package/dist/src/tui/config-ui/SpecPanel.d.ts.map +1 -0
- package/dist/src/tui/config-ui/SpecPanel.js +79 -0
- package/dist/src/tui/config-ui/SpecPanel.js.map +1 -0
- package/dist/src/tui/config-ui/index.d.ts +23 -0
- package/dist/src/tui/config-ui/index.d.ts.map +1 -0
- package/dist/src/tui/config-ui/index.js +34 -0
- package/dist/src/tui/config-ui/index.js.map +1 -0
- package/dist/src/tui/index.d.ts +7 -0
- package/dist/src/tui/index.d.ts.map +1 -0
- package/dist/src/tui/index.js +10 -0
- package/dist/src/tui/index.js.map +1 -0
- package/dist/src/tui/install-ui/BackupConfig.d.ts +10 -0
- package/dist/src/tui/install-ui/BackupConfig.d.ts.map +1 -0
- package/dist/src/tui/install-ui/BackupConfig.js +46 -0
- package/dist/src/tui/install-ui/BackupConfig.js.map +1 -0
- package/dist/src/tui/install-ui/BlueprintPreview.d.ts +9 -0
- package/dist/src/tui/install-ui/BlueprintPreview.d.ts.map +1 -0
- package/dist/src/tui/install-ui/BlueprintPreview.js +65 -0
- package/dist/src/tui/install-ui/BlueprintPreview.js.map +1 -0
- package/dist/src/tui/install-ui/BlueprintPreview.logic.d.ts +33 -0
- package/dist/src/tui/install-ui/BlueprintPreview.logic.d.ts.map +1 -0
- package/dist/src/tui/install-ui/BlueprintPreview.logic.js +51 -0
- package/dist/src/tui/install-ui/BlueprintPreview.logic.js.map +1 -0
- package/dist/src/tui/install-ui/ComponentGrid.d.ts +13 -0
- package/dist/src/tui/install-ui/ComponentGrid.d.ts.map +1 -0
- package/dist/src/tui/install-ui/ComponentGrid.js +75 -0
- package/dist/src/tui/install-ui/ComponentGrid.js.map +1 -0
- package/dist/src/tui/install-ui/ComponentGrid.logic.d.ts +31 -0
- package/dist/src/tui/install-ui/ComponentGrid.logic.d.ts.map +1 -0
- package/dist/src/tui/install-ui/ComponentGrid.logic.js +58 -0
- package/dist/src/tui/install-ui/ComponentGrid.logic.js.map +1 -0
- package/dist/src/tui/install-ui/ConfigPanel.d.ts +11 -0
- package/dist/src/tui/install-ui/ConfigPanel.d.ts.map +1 -0
- package/dist/src/tui/install-ui/ConfigPanel.js +35 -0
- package/dist/src/tui/install-ui/ConfigPanel.js.map +1 -0
- package/dist/src/tui/install-ui/CyberItem.d.ts +18 -0
- package/dist/src/tui/install-ui/CyberItem.d.ts.map +1 -0
- package/dist/src/tui/install-ui/CyberItem.js +33 -0
- package/dist/src/tui/install-ui/CyberItem.js.map +1 -0
- package/dist/src/tui/install-ui/CyberdeckBlueprint.d.ts +7 -0
- package/dist/src/tui/install-ui/CyberdeckBlueprint.d.ts.map +1 -0
- package/dist/src/tui/install-ui/CyberdeckBlueprint.js +91 -0
- package/dist/src/tui/install-ui/CyberdeckBlueprint.js.map +1 -0
- package/dist/src/tui/install-ui/ExecutionView.d.ts +12 -0
- package/dist/src/tui/install-ui/ExecutionView.d.ts.map +1 -0
- package/dist/src/tui/install-ui/ExecutionView.js +154 -0
- package/dist/src/tui/install-ui/ExecutionView.js.map +1 -0
- package/dist/src/tui/install-ui/GradientHeader.d.ts +8 -0
- package/dist/src/tui/install-ui/GradientHeader.d.ts.map +1 -0
- package/dist/src/tui/install-ui/GradientHeader.js +18 -0
- package/dist/src/tui/install-ui/GradientHeader.js.map +1 -0
- package/dist/src/tui/install-ui/HooksConfig.d.ts +8 -0
- package/dist/src/tui/install-ui/HooksConfig.d.ts.map +1 -0
- package/dist/src/tui/install-ui/HooksConfig.js +35 -0
- package/dist/src/tui/install-ui/HooksConfig.js.map +1 -0
- package/dist/src/tui/install-ui/InstallConfirm.d.ts +27 -0
- package/dist/src/tui/install-ui/InstallConfirm.d.ts.map +1 -0
- package/dist/src/tui/install-ui/InstallConfirm.js +25 -0
- package/dist/src/tui/install-ui/InstallConfirm.js.map +1 -0
- package/dist/src/tui/install-ui/InstallExecution.d.ts +21 -0
- package/dist/src/tui/install-ui/InstallExecution.d.ts.map +1 -0
- package/dist/src/tui/install-ui/InstallExecution.js +154 -0
- package/dist/src/tui/install-ui/InstallExecution.js.map +1 -0
- package/dist/src/tui/install-ui/InstallFlow.d.ts +14 -0
- package/dist/src/tui/install-ui/InstallFlow.d.ts.map +1 -0
- package/dist/src/tui/install-ui/InstallFlow.js +186 -0
- package/dist/src/tui/install-ui/InstallFlow.js.map +1 -0
- package/dist/src/tui/install-ui/InstallHub.d.ts +33 -0
- package/dist/src/tui/install-ui/InstallHub.d.ts.map +1 -0
- package/dist/src/tui/install-ui/InstallHub.js +97 -0
- package/dist/src/tui/install-ui/InstallHub.js.map +1 -0
- package/dist/src/tui/install-ui/InstallResult.d.ts +7 -0
- package/dist/src/tui/install-ui/InstallResult.d.ts.map +1 -0
- package/dist/src/tui/install-ui/InstallResult.js +15 -0
- package/dist/src/tui/install-ui/InstallResult.js.map +1 -0
- package/dist/src/tui/install-ui/McpConfig.d.ts +12 -0
- package/dist/src/tui/install-ui/McpConfig.d.ts.map +1 -0
- package/dist/src/tui/install-ui/McpConfig.js +69 -0
- package/dist/src/tui/install-ui/McpConfig.js.map +1 -0
- package/dist/src/tui/install-ui/ResultDashboard.d.ts +8 -0
- package/dist/src/tui/install-ui/ResultDashboard.d.ts.map +1 -0
- package/dist/src/tui/install-ui/ResultDashboard.js +17 -0
- package/dist/src/tui/install-ui/ResultDashboard.js.map +1 -0
- package/dist/src/tui/install-ui/ReviewPanel.d.ts +19 -0
- package/dist/src/tui/install-ui/ReviewPanel.d.ts.map +1 -0
- package/dist/src/tui/install-ui/ReviewPanel.js +25 -0
- package/dist/src/tui/install-ui/ReviewPanel.js.map +1 -0
- package/dist/src/tui/install-ui/ShortcutFooter.d.ts +7 -0
- package/dist/src/tui/install-ui/ShortcutFooter.d.ts.map +1 -0
- package/dist/src/tui/install-ui/ShortcutFooter.js +15 -0
- package/dist/src/tui/install-ui/ShortcutFooter.js.map +1 -0
- package/dist/src/tui/install-ui/StatuslineConfig.d.ts +11 -0
- package/dist/src/tui/install-ui/StatuslineConfig.d.ts.map +1 -0
- package/dist/src/tui/install-ui/StatuslineConfig.js +39 -0
- package/dist/src/tui/install-ui/StatuslineConfig.js.map +1 -0
- package/dist/src/tui/install-ui/StepSelector.d.ts +14 -0
- package/dist/src/tui/install-ui/StepSelector.d.ts.map +1 -0
- package/dist/src/tui/install-ui/StepSelector.js +46 -0
- package/dist/src/tui/install-ui/StepSelector.js.map +1 -0
- package/dist/src/tui/install-ui/index.d.ts +8 -0
- package/dist/src/tui/install-ui/index.d.ts.map +1 -0
- package/dist/src/tui/install-ui/index.js +10 -0
- package/dist/src/tui/install-ui/index.js.map +1 -0
- package/dist/src/tui/install-ui/types.d.ts +35 -0
- package/dist/src/tui/install-ui/types.d.ts.map +1 -0
- package/dist/src/tui/install-ui/types.js +25 -0
- package/dist/src/tui/install-ui/types.js.map +1 -0
- package/dist/src/tui/overlay-ui/OverlayList.d.ts +37 -0
- package/dist/src/tui/overlay-ui/OverlayList.d.ts.map +1 -0
- package/dist/src/tui/overlay-ui/OverlayList.js +146 -0
- package/dist/src/tui/overlay-ui/OverlayList.js.map +1 -0
- package/dist/src/tui/overlay-ui/index.d.ts +18 -0
- package/dist/src/tui/overlay-ui/index.d.ts.map +1 -0
- package/dist/src/tui/overlay-ui/index.js +204 -0
- package/dist/src/tui/overlay-ui/index.js.map +1 -0
- package/dist/src/tui/render.d.ts +13 -0
- package/dist/src/tui/render.d.ts.map +1 -0
- package/dist/src/tui/render.js +31 -0
- package/dist/src/tui/render.js.map +1 -0
- package/dist/src/tui/tools-ui/CommandReference.d.ts +7 -0
- package/dist/src/tui/tools-ui/CommandReference.d.ts.map +1 -0
- package/dist/src/tui/tools-ui/CommandReference.js +33 -0
- package/dist/src/tui/tools-ui/CommandReference.js.map +1 -0
- package/dist/src/tui/tools-ui/ConfigSources.d.ts +6 -0
- package/dist/src/tui/tools-ui/ConfigSources.d.ts.map +1 -0
- package/dist/src/tui/tools-ui/ConfigSources.js +27 -0
- package/dist/src/tui/tools-ui/ConfigSources.js.map +1 -0
- package/dist/src/tui/tools-ui/RegisterSettings.d.ts +8 -0
- package/dist/src/tui/tools-ui/RegisterSettings.d.ts.map +1 -0
- package/dist/src/tui/tools-ui/RegisterSettings.js +125 -0
- package/dist/src/tui/tools-ui/RegisterSettings.js.map +1 -0
- package/dist/src/tui/tools-ui/RoleMappings.d.ts +9 -0
- package/dist/src/tui/tools-ui/RoleMappings.d.ts.map +1 -0
- package/dist/src/tui/tools-ui/RoleMappings.js +104 -0
- package/dist/src/tui/tools-ui/RoleMappings.js.map +1 -0
- package/dist/src/tui/tools-ui/ToolsDashboard.d.ts +8 -0
- package/dist/src/tui/tools-ui/ToolsDashboard.d.ts.map +1 -0
- package/dist/src/tui/tools-ui/ToolsDashboard.js +60 -0
- package/dist/src/tui/tools-ui/ToolsDashboard.js.map +1 -0
- package/dist/src/tui/tools-ui/ToolsOverview.d.ts +9 -0
- package/dist/src/tui/tools-ui/ToolsOverview.d.ts.map +1 -0
- package/dist/src/tui/tools-ui/ToolsOverview.js +84 -0
- package/dist/src/tui/tools-ui/ToolsOverview.js.map +1 -0
- package/dist/src/tui/tools-ui/index.d.ts +3 -0
- package/dist/src/tui/tools-ui/index.d.ts.map +1 -0
- package/dist/src/tui/tools-ui/index.js +6 -0
- package/dist/src/tui/tools-ui/index.js.map +1 -0
- package/dist/src/tui/uninstall-ui/UninstallFlow.d.ts +7 -0
- package/dist/src/tui/uninstall-ui/UninstallFlow.d.ts.map +1 -0
- package/dist/src/tui/uninstall-ui/UninstallFlow.js +189 -0
- package/dist/src/tui/uninstall-ui/UninstallFlow.js.map +1 -0
- package/dist/src/tui/uninstall-ui/index.d.ts +3 -0
- package/dist/src/tui/uninstall-ui/index.d.ts.map +1 -0
- package/dist/src/tui/uninstall-ui/index.js +6 -0
- package/dist/src/tui/uninstall-ui/index.js.map +1 -0
- package/package.json +1 -1
- package/workflows/auto-test.md +682 -0
- package/workflows/business-test.md +570 -0
- package/workflows/integration-test.md +1 -1
- package/workflows/maestro.codex.md +4 -3
- package/workflows/maestro.md +5 -4
- package/workflows/status.md +2 -2
- package/workflows/test.md +1 -1
- package/workflows/verify.md +1 -1
- package/.claude/commands/quality-business-test.md +0 -110
- package/.claude/commands/quality-integration-test.md +0 -67
- package/.claude/commands/quality-test-gen.md +0 -68
- package/.codex/skills/maestro-ralph-execute/SKILL.md +0 -219
- package/.codex/skills/quality-business-test/SKILL.md +0 -218
- package/.codex/skills/quality-integration-test/SKILL.md +0 -427
- package/.codex/skills/quality-test-gen/SKILL.md +0 -352
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
import { Box, Text, useInput } from 'ink';
|
|
4
|
+
import { TextInput } from '@inkjs/ui';
|
|
5
|
+
import { existsSync } from 'node:fs';
|
|
6
|
+
import { saveCliToolsConfig, DELEGATE_ROLES, } from '../../config/cli-tools-config.js';
|
|
7
|
+
export function RegisterSettings({ config, workDir, onBack }) {
|
|
8
|
+
const [phase, setPhase] = useState('name');
|
|
9
|
+
const [alias, setAlias] = useState('');
|
|
10
|
+
const [role, setRole] = useState('');
|
|
11
|
+
const [roleCursor, setRoleCursor] = useState(0);
|
|
12
|
+
const [path, setPath] = useState('');
|
|
13
|
+
const [error, setError] = useState('');
|
|
14
|
+
const [message, setMessage] = useState('');
|
|
15
|
+
// Existing aliases
|
|
16
|
+
const existing = Object.entries(config.tools)
|
|
17
|
+
.filter(([, e]) => e.baseTool === 'claude')
|
|
18
|
+
.map(([name, e]) => ({ name, settings: e.settingsFile ?? '—' }));
|
|
19
|
+
useInput((input, key) => {
|
|
20
|
+
if (key.escape) {
|
|
21
|
+
onBack();
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
if (phase === 'role') {
|
|
25
|
+
if (key.upArrow)
|
|
26
|
+
setRoleCursor(c => c > 0 ? c - 1 : DELEGATE_ROLES.length - 1);
|
|
27
|
+
if (key.downArrow)
|
|
28
|
+
setRoleCursor(c => c < DELEGATE_ROLES.length - 1 ? c + 1 : 0);
|
|
29
|
+
if (key.return) {
|
|
30
|
+
setRole(DELEGATE_ROLES[roleCursor]);
|
|
31
|
+
const ex = config.tools[alias];
|
|
32
|
+
if (ex?.settingsFile)
|
|
33
|
+
setPath(ex.settingsFile);
|
|
34
|
+
setPhase('path');
|
|
35
|
+
}
|
|
36
|
+
// Number hotkeys 1-7
|
|
37
|
+
const n = parseInt(input, 10);
|
|
38
|
+
if (n >= 1 && n <= DELEGATE_ROLES.length) {
|
|
39
|
+
setRoleCursor(n - 1);
|
|
40
|
+
setRole(DELEGATE_ROLES[n - 1]);
|
|
41
|
+
const ex = config.tools[alias];
|
|
42
|
+
if (ex?.settingsFile)
|
|
43
|
+
setPath(ex.settingsFile);
|
|
44
|
+
setPhase('path');
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
if (phase === 'scope') {
|
|
48
|
+
if (input === 'g')
|
|
49
|
+
doSave('global');
|
|
50
|
+
if (input === 'p')
|
|
51
|
+
doSave('workspace');
|
|
52
|
+
}
|
|
53
|
+
if (phase === 'done' || phase === 'error') {
|
|
54
|
+
if (key.return || key.escape)
|
|
55
|
+
onBack();
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
const handleNameSubmit = (value) => {
|
|
59
|
+
const trimmed = value.trim();
|
|
60
|
+
if (!trimmed) {
|
|
61
|
+
setError('Name is required');
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
setAlias(trimmed);
|
|
65
|
+
setError('');
|
|
66
|
+
if (trimmed === 'claude') {
|
|
67
|
+
// Base tool — skip role selection
|
|
68
|
+
setRole('');
|
|
69
|
+
const ex = config.tools.claude;
|
|
70
|
+
if (ex?.settingsFile)
|
|
71
|
+
setPath(ex.settingsFile);
|
|
72
|
+
setPhase('path');
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
setPhase('role');
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
const handlePathSubmit = (value) => {
|
|
79
|
+
const trimmed = value.trim();
|
|
80
|
+
if (!trimmed) {
|
|
81
|
+
setError('Path is required');
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
const expanded = trimmed.startsWith('~/')
|
|
85
|
+
? trimmed.replace('~', process.env.HOME ?? process.env.USERPROFILE ?? '~')
|
|
86
|
+
: trimmed;
|
|
87
|
+
if (!existsSync(expanded)) {
|
|
88
|
+
setError(`File not found: ${expanded}`);
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
setPath(trimmed);
|
|
92
|
+
setError('');
|
|
93
|
+
setPhase('scope');
|
|
94
|
+
};
|
|
95
|
+
const doSave = async (scope) => {
|
|
96
|
+
setPhase('saving');
|
|
97
|
+
try {
|
|
98
|
+
const isBase = alias === 'claude';
|
|
99
|
+
const base = config.tools.claude ?? { enabled: true, primaryModel: '', tags: [], type: 'builtin' };
|
|
100
|
+
const entry = config.tools[alias] ?? {
|
|
101
|
+
enabled: true,
|
|
102
|
+
primaryModel: isBase ? base.primaryModel : base.primaryModel,
|
|
103
|
+
tags: isBase ? base.tags : base.tags,
|
|
104
|
+
type: 'builtin',
|
|
105
|
+
};
|
|
106
|
+
const toolUpdate = {
|
|
107
|
+
...entry,
|
|
108
|
+
settingsFile: path,
|
|
109
|
+
...(!isBase ? { baseTool: 'claude' } : {}),
|
|
110
|
+
};
|
|
111
|
+
// Also update role mapping if a role was selected
|
|
112
|
+
const rolesUpdate = role ? { [role]: { tool: alias } } : undefined;
|
|
113
|
+
await saveCliToolsConfig({ tools: { [alias]: toolUpdate }, ...(rolesUpdate ? { roles: rolesUpdate } : {}) }, scope, workDir);
|
|
114
|
+
const roleMsg = role ? ` (role: ${role})` : '';
|
|
115
|
+
setMessage(`${alias}${roleMsg} → ${path} saved to ${scope}`);
|
|
116
|
+
setPhase('done');
|
|
117
|
+
}
|
|
118
|
+
catch (err) {
|
|
119
|
+
setError(err instanceof Error ? err.message : String(err));
|
|
120
|
+
setPhase('error');
|
|
121
|
+
}
|
|
122
|
+
};
|
|
123
|
+
return (_jsxs(Box, { flexDirection: "column", paddingX: 1, children: [_jsx(Text, { bold: true, color: "cyan", children: "Register Settings (Claude)" }), _jsx(Text, { children: " " }), existing.length > 0 && (_jsxs(_Fragment, { children: [_jsx(Text, { dimColor: true, children: "Existing aliases:" }), existing.map(e => (_jsxs(Box, { gap: 1, children: [_jsx(Text, { dimColor: true, children: " " }), _jsx(Text, { bold: true, children: e.name }), _jsxs(Text, { dimColor: true, children: ["\u2192 ", e.settings] })] }, e.name))), _jsx(Text, { children: " " })] })), phase === 'name' && (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Box, { gap: 1, children: [_jsx(Text, { children: "Name:" }), _jsx(TextInput, { placeholder: "claude-analysis (or 'claude' for base)", onSubmit: handleNameSubmit })] }), error && _jsxs(Text, { color: "red", children: [" ", error] }), _jsx(Text, { dimColor: true, children: "Enter alias name. Use \"claude\" to set base settings." })] })), phase === 'role' && (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Box, { gap: 1, children: [_jsx(Text, { children: "Name:" }), _jsx(Text, { bold: true, color: "green", children: alias })] }), _jsx(Text, { children: "Assign to role:" }), DELEGATE_ROLES.map((r, i) => (_jsxs(Box, { gap: 1, children: [_jsxs(Text, { color: i === roleCursor ? 'cyan' : undefined, children: [i === roleCursor ? ' ▸' : ' ', " ", i + 1, "."] }), _jsx(Text, { bold: i === roleCursor, color: i === roleCursor ? 'cyan' : undefined, children: r })] }, r))), _jsx(Text, { dimColor: true, children: "[\u2191\u2193] Navigate [1-7] Select [Enter] Confirm" })] })), phase === 'path' && (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Box, { gap: 1, children: [_jsx(Text, { children: "Name:" }), _jsx(Text, { bold: true, color: "green", children: alias })] }), role && _jsxs(Box, { gap: 1, children: [_jsx(Text, { children: "Role:" }), _jsx(Text, { color: "yellow", children: role })] }), _jsxs(Box, { gap: 1, children: [_jsx(Text, { children: "Path:" }), _jsx(TextInput, { defaultValue: path, placeholder: "~/.maestro/profiles/claude-analysis.json", onSubmit: handlePathSubmit })] }), error && _jsxs(Text, { color: "red", children: [" ", error] })] })), phase === 'scope' && (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Box, { gap: 1, children: [_jsx(Text, { children: "Name:" }), _jsx(Text, { bold: true, color: "green", children: alias })] }), role && _jsxs(Box, { gap: 1, children: [_jsx(Text, { children: "Role:" }), _jsx(Text, { color: "yellow", children: role })] }), _jsxs(Box, { gap: 1, children: [_jsx(Text, { children: "Path:" }), _jsx(Text, { dimColor: true, children: path })] }), _jsx(Text, { children: " " }), _jsx(Text, { children: "Save to:" }), _jsxs(Box, { gap: 2, children: [_jsx(Text, { color: "cyan", children: "[g]" }), _jsx(Text, { children: "Global" })] }), _jsxs(Box, { gap: 2, children: [_jsx(Text, { color: "cyan", children: "[p]" }), _jsx(Text, { children: "Project" })] })] })), phase === 'saving' && _jsx(Text, { dimColor: true, children: "Saving..." }), phase === 'done' && (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Text, { color: "green", children: ["\u2713 ", message] }), _jsx(Text, { dimColor: true, children: "[Enter] Back" })] })), phase === 'error' && (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Text, { color: "red", children: ["\u2717 ", error] }), _jsx(Text, { dimColor: true, children: "[Enter] Back" })] }))] }));
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=RegisterSettings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RegisterSettings.js","sourceRoot":"","sources":["../../../../src/tui/tools-ui/RegisterSettings.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EACL,kBAAkB,EAClB,cAAc,GAEf,MAAM,kCAAkC,CAAC;AAU1C,MAAM,UAAU,gBAAgB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAyB;IACjF,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAQ,MAAM,CAAC,CAAC;IAClD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACvC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACrC,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAChD,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACrC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACvC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAE3C,mBAAmB;IACnB,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;SAC1C,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC;SAC1C,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,YAAY,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC;IAEnE,QAAQ,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACtB,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YAAC,MAAM,EAAE,CAAC;YAAC,OAAO;QAAC,CAAC;QAErC,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;YACrB,IAAI,GAAG,CAAC,OAAO;gBAAE,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC/E,IAAI,GAAG,CAAC,SAAS;gBAAE,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACjF,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;gBACf,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC;gBACpC,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC/B,IAAI,EAAE,EAAE,YAAY;oBAAE,OAAO,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;gBAC/C,QAAQ,CAAC,MAAM,CAAC,CAAC;YACnB,CAAC;YACD,qBAAqB;YACrB,MAAM,CAAC,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC9B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,MAAM,EAAE,CAAC;gBACzC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACrB,OAAO,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC/B,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC/B,IAAI,EAAE,EAAE,YAAY;oBAAE,OAAO,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;gBAC/C,QAAQ,CAAC,MAAM,CAAC,CAAC;YACnB,CAAC;QACH,CAAC;QAED,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;YACtB,IAAI,KAAK,KAAK,GAAG;gBAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;YACpC,IAAI,KAAK,KAAK,GAAG;gBAAE,MAAM,CAAC,WAAW,CAAC,CAAC;QACzC,CAAC;QAED,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;YAC1C,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM;gBAAE,MAAM,EAAE,CAAC;QACzC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,gBAAgB,GAAG,CAAC,KAAa,EAAE,EAAE;QACzC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAC7B,IAAI,CAAC,OAAO,EAAE,CAAC;YAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QACvD,QAAQ,CAAC,OAAO,CAAC,CAAC;QAClB,QAAQ,CAAC,EAAE,CAAC,CAAC;QACb,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;YACzB,kCAAkC;YAClC,OAAO,CAAC,EAAE,CAAC,CAAC;YACZ,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;YAC/B,IAAI,EAAE,EAAE,YAAY;gBAAE,OAAO,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;YAC/C,QAAQ,CAAC,MAAM,CAAC,CAAC;QACnB,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,MAAM,CAAC,CAAC;QACnB,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,CAAC,KAAa,EAAE,EAAE;QACzC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAC7B,IAAI,CAAC,OAAO,EAAE,CAAC;YAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QAEvD,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC;YACvC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC;YAC1E,CAAC,CAAC,OAAO,CAAC;QAEZ,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAAC,QAAQ,CAAC,mBAAmB,QAAQ,EAAE,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QAE/E,OAAO,CAAC,OAAO,CAAC,CAAC;QACjB,QAAQ,CAAC,EAAE,CAAC,CAAC;QACb,QAAQ,CAAC,OAAO,CAAC,CAAC;IACpB,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,KAAK,EAAE,KAA6B,EAAE,EAAE;QACrD,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACnB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,KAAK,KAAK,QAAQ,CAAC;YAClC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;YACnG,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI;gBACnC,OAAO,EAAE,IAAI;gBACb,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY;gBAC5D,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI;gBACpC,IAAI,EAAE,SAAS;aAChB,CAAC;YAEF,MAAM,UAAU,GAAG;gBACjB,GAAG,KAAK;gBACR,YAAY,EAAE,IAAI;gBAClB,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC3C,CAAC;YAEF,kDAAkD;YAClD,MAAM,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;YAEnE,MAAM,kBAAkB,CACtB,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAClF,KAAK,EACL,OAAO,CACR,CAAC;YACF,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,WAAW,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/C,UAAU,CAAC,GAAG,KAAK,GAAG,OAAO,MAAM,IAAI,aAAa,KAAK,EAAE,CAAC,CAAC;YAC7D,QAAQ,CAAC,MAAM,CAAC,CAAC;QACnB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,QAAQ,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3D,QAAQ,CAAC,OAAO,CAAC,CAAC;QACpB,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,aACrC,KAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAC,MAAM,2CAAkC,EACzD,KAAC,IAAI,oBAAS,EAEb,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,CACtB,8BACE,KAAC,IAAI,IAAC,QAAQ,wCAAyB,EACtC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CACjB,MAAC,GAAG,IAAc,GAAG,EAAE,CAAC,aACtB,KAAC,IAAI,IAAC,QAAQ,yBAAU,EACxB,KAAC,IAAI,IAAC,IAAI,kBAAE,CAAC,CAAC,IAAI,GAAQ,EAC1B,MAAC,IAAI,IAAC,QAAQ,8BAAI,CAAC,CAAC,QAAQ,IAAQ,KAH5B,CAAC,CAAC,IAAI,CAIV,CACP,CAAC,EACF,KAAC,IAAI,oBAAS,IACb,CACJ,EAEA,KAAK,KAAK,MAAM,IAAI,CACnB,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,MAAC,GAAG,IAAC,GAAG,EAAE,CAAC,aACT,KAAC,IAAI,wBAAa,EAClB,KAAC,SAAS,IACR,WAAW,EAAC,wCAAwC,EACpD,QAAQ,EAAE,gBAAgB,GAC1B,IACE,EACL,KAAK,IAAI,MAAC,IAAI,IAAC,KAAK,EAAC,KAAK,mBAAI,KAAK,IAAQ,EAC5C,KAAC,IAAI,IAAC,QAAQ,6EAA4D,IACtE,CACP,EAEA,KAAK,KAAK,MAAM,IAAI,CACnB,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,MAAC,GAAG,IAAC,GAAG,EAAE,CAAC,aAAE,KAAC,IAAI,wBAAa,EAAA,KAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAC,OAAO,YAAE,KAAK,GAAQ,IAAM,EAC5E,KAAC,IAAI,kCAAuB,EAC3B,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAC5B,MAAC,GAAG,IAAS,GAAG,EAAE,CAAC,aACjB,MAAC,IAAI,IAAC,KAAK,EAAE,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,aAC/C,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,OAAG,CAAC,GAAG,CAAC,SAClC,EACP,KAAC,IAAI,IAAC,IAAI,EAAE,CAAC,KAAK,UAAU,EAAE,KAAK,EAAE,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,YAAG,CAAC,GAAQ,KAJ9E,CAAC,CAKL,CACP,CAAC,EACF,KAAC,IAAI,IAAC,QAAQ,6EAAoD,IAC9D,CACP,EAEA,KAAK,KAAK,MAAM,IAAI,CACnB,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,MAAC,GAAG,IAAC,GAAG,EAAE,CAAC,aAAE,KAAC,IAAI,wBAAa,EAAA,KAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAC,OAAO,YAAE,KAAK,GAAQ,IAAM,EAC3E,IAAI,IAAI,MAAC,GAAG,IAAC,GAAG,EAAE,CAAC,aAAE,KAAC,IAAI,wBAAa,EAAA,KAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,YAAE,IAAI,GAAQ,IAAM,EAChF,MAAC,GAAG,IAAC,GAAG,EAAE,CAAC,aACT,KAAC,IAAI,wBAAa,EAClB,KAAC,SAAS,IACR,YAAY,EAAE,IAAI,EAClB,WAAW,EAAC,0CAA0C,EACtD,QAAQ,EAAE,gBAAgB,GAC1B,IACE,EACL,KAAK,IAAI,MAAC,IAAI,IAAC,KAAK,EAAC,KAAK,mBAAI,KAAK,IAAQ,IACxC,CACP,EAEA,KAAK,KAAK,OAAO,IAAI,CACpB,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,MAAC,GAAG,IAAC,GAAG,EAAE,CAAC,aAAE,KAAC,IAAI,wBAAa,EAAA,KAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAC,OAAO,YAAE,KAAK,GAAQ,IAAM,EAC3E,IAAI,IAAI,MAAC,GAAG,IAAC,GAAG,EAAE,CAAC,aAAE,KAAC,IAAI,wBAAa,EAAA,KAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,YAAE,IAAI,GAAQ,IAAM,EAChF,MAAC,GAAG,IAAC,GAAG,EAAE,CAAC,aAAE,KAAC,IAAI,wBAAa,EAAA,KAAC,IAAI,IAAC,QAAQ,kBAAE,IAAI,GAAQ,IAAM,EACjE,KAAC,IAAI,oBAAS,EACd,KAAC,IAAI,2BAAgB,EACrB,MAAC,GAAG,IAAC,GAAG,EAAE,CAAC,aAAE,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,oBAAW,EAAA,KAAC,IAAI,yBAAc,IAAM,EACnE,MAAC,GAAG,IAAC,GAAG,EAAE,CAAC,aAAE,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,oBAAW,EAAA,KAAC,IAAI,0BAAe,IAAM,IAChE,CACP,EAEA,KAAK,KAAK,QAAQ,IAAI,KAAC,IAAI,IAAC,QAAQ,gCAAiB,EAErD,KAAK,KAAK,MAAM,IAAI,CACnB,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,MAAC,IAAI,IAAC,KAAK,EAAC,OAAO,wBAAI,OAAO,IAAQ,EACtC,KAAC,IAAI,IAAC,QAAQ,mCAAoB,IAC9B,CACP,EAEA,KAAK,KAAK,OAAO,IAAI,CACpB,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,MAAC,IAAI,IAAC,KAAK,EAAC,KAAK,wBAAI,KAAK,IAAQ,EAClC,KAAC,IAAI,IAAC,QAAQ,mCAAoB,IAC9B,CACP,IACG,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type CliToolsConfig } from '../../config/cli-tools-config.js';
|
|
2
|
+
export interface RoleMappingsProps {
|
|
3
|
+
config: CliToolsConfig;
|
|
4
|
+
workDir: string;
|
|
5
|
+
onBack: () => void;
|
|
6
|
+
onReload: () => void;
|
|
7
|
+
}
|
|
8
|
+
export declare function RoleMappings({ config, workDir, onBack, onReload }: RoleMappingsProps): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
//# sourceMappingURL=RoleMappings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RoleMappings.d.ts","sourceRoot":"","sources":["../../../../src/tui/tools-ui/RoleMappings.tsx"],"names":[],"mappings":"AAEA,OAAO,EAKL,KAAK,cAAc,EAEpB,MAAM,kCAAkC,CAAC;AAE1C,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,cAAc,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AAID,wBAAgB,YAAY,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,iBAAiB,2CAgJpF"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
import { Box, Text, useInput } from 'ink';
|
|
4
|
+
import { selectToolByRole, getDefaultRoleMappings, saveCliToolsConfig, DELEGATE_ROLES, } from '../../config/cli-tools-config.js';
|
|
5
|
+
export function RoleMappings({ config, workDir, onBack, onReload }) {
|
|
6
|
+
const defaults = getDefaultRoleMappings();
|
|
7
|
+
const userRoles = config.roles ?? {};
|
|
8
|
+
const enabledTools = Object.entries(config.tools).filter(([, e]) => e.enabled).map(([n]) => n);
|
|
9
|
+
const [cursor, setCursor] = useState(0);
|
|
10
|
+
const [mode, setMode] = useState('list');
|
|
11
|
+
const [editChain, setEditChain] = useState([]);
|
|
12
|
+
const [chainCursor, setChainCursor] = useState(0);
|
|
13
|
+
const [saving, setSaving] = useState(false);
|
|
14
|
+
const roles = [...DELEGATE_ROLES];
|
|
15
|
+
useInput((input, key) => {
|
|
16
|
+
if (saving)
|
|
17
|
+
return;
|
|
18
|
+
if (mode === 'list') {
|
|
19
|
+
if (key.escape) {
|
|
20
|
+
onBack();
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
if (key.upArrow)
|
|
24
|
+
setCursor(c => c > 0 ? c - 1 : roles.length - 1);
|
|
25
|
+
if (key.downArrow)
|
|
26
|
+
setCursor(c => c < roles.length - 1 ? c + 1 : 0);
|
|
27
|
+
if (key.return || input === 'e') {
|
|
28
|
+
// Edit fallback chain for this role
|
|
29
|
+
const role = roles[cursor];
|
|
30
|
+
const mapping = userRoles[role] ?? defaults[role];
|
|
31
|
+
const chain = mapping?.fallbackChain ?? enabledTools;
|
|
32
|
+
setEditChain([...chain]);
|
|
33
|
+
setChainCursor(0);
|
|
34
|
+
setMode('edit-order');
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
if (mode === 'edit-order') {
|
|
38
|
+
if (key.escape) {
|
|
39
|
+
setMode('list');
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
if (key.upArrow)
|
|
43
|
+
setChainCursor(c => c > 0 ? c - 1 : editChain.length - 1);
|
|
44
|
+
if (key.downArrow)
|
|
45
|
+
setChainCursor(c => c < editChain.length - 1 ? c + 1 : 0);
|
|
46
|
+
// Move up/down with shift (K/J)
|
|
47
|
+
if (input === 'K' && chainCursor > 0) {
|
|
48
|
+
setEditChain(prev => {
|
|
49
|
+
const arr = [...prev];
|
|
50
|
+
[arr[chainCursor - 1], arr[chainCursor]] = [arr[chainCursor], arr[chainCursor - 1]];
|
|
51
|
+
return arr;
|
|
52
|
+
});
|
|
53
|
+
setChainCursor(c => c - 1);
|
|
54
|
+
}
|
|
55
|
+
if (input === 'J' && chainCursor < editChain.length - 1) {
|
|
56
|
+
setEditChain(prev => {
|
|
57
|
+
const arr = [...prev];
|
|
58
|
+
[arr[chainCursor], arr[chainCursor + 1]] = [arr[chainCursor + 1], arr[chainCursor]];
|
|
59
|
+
return arr;
|
|
60
|
+
});
|
|
61
|
+
setChainCursor(c => c + 1);
|
|
62
|
+
}
|
|
63
|
+
// Toggle include/exclude
|
|
64
|
+
if (input === ' ') {
|
|
65
|
+
const tool = enabledTools.find(t => !editChain.includes(t));
|
|
66
|
+
if (tool) {
|
|
67
|
+
// Add next available tool
|
|
68
|
+
setEditChain(prev => [...prev, tool]);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
if (input === 'd') {
|
|
72
|
+
// Remove current from chain
|
|
73
|
+
if (editChain.length > 1) {
|
|
74
|
+
setEditChain(prev => prev.filter((_, i) => i !== chainCursor));
|
|
75
|
+
setChainCursor(c => Math.min(c, editChain.length - 2));
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
if (input === 's') {
|
|
79
|
+
const role = roles[cursor];
|
|
80
|
+
setSaving(true);
|
|
81
|
+
saveCliToolsConfig({ roles: { [role]: { fallbackChain: editChain } } }, 'global', workDir).then(() => { onReload(); setSaving(false); setMode('list'); });
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
if (mode === 'edit-order') {
|
|
86
|
+
const role = roles[cursor];
|
|
87
|
+
return (_jsxs(Box, { flexDirection: "column", paddingX: 1, children: [_jsxs(Text, { bold: true, color: "cyan", children: ["Edit Fallback Chain: ", _jsx(Text, { color: "green", children: role })] }), _jsx(Text, { dimColor: true, children: "First enabled tool in chain wins" }), _jsx(Text, { children: " " }), editChain.map((tool, i) => {
|
|
88
|
+
const active = i === chainCursor;
|
|
89
|
+
return (_jsxs(Box, { gap: 1, children: [_jsxs(Text, { color: active ? 'cyan' : undefined, children: [active ? '▸' : ' ', " ", i + 1, "."] }), _jsx(Text, { bold: active, color: i === 0 ? 'green' : active ? 'cyan' : undefined, children: tool })] }, `${tool}-${i}`));
|
|
90
|
+
}), _jsx(Text, { children: " " }), _jsx(Text, { dimColor: true, children: "[\u2191\u2193] Select [Shift+K/J] Move up/down [d] Remove [s] Save [Esc] Cancel" }), saving && _jsx(Text, { dimColor: true, children: "Saving..." })] }));
|
|
91
|
+
}
|
|
92
|
+
return (_jsxs(Box, { flexDirection: "column", paddingX: 1, children: [_jsx(Text, { bold: true, color: "cyan", children: "Role Mappings" }), _jsx(Text, { children: " " }), _jsxs(Box, { gap: 1, children: [_jsx(Text, { dimColor: true, children: pad(' Role', 16) }), _jsx(Text, { dimColor: true, children: pad('Resolved', 12) }), _jsx(Text, { dimColor: true, children: pad('Source', 10) }), _jsx(Text, { dimColor: true, children: "Fallback Chain" })] }), _jsx(Text, { dimColor: true, children: '─'.repeat(76) }), roles.map((role, i) => {
|
|
93
|
+
const active = i === cursor;
|
|
94
|
+
const selected = selectToolByRole(role, config);
|
|
95
|
+
const mapping = userRoles[role] ?? defaults[role];
|
|
96
|
+
const chain = mapping?.fallbackChain?.join(' → ') ?? (mapping?.tool ? `→ ${mapping.tool}` : '—');
|
|
97
|
+
const source = userRoles[role] ? 'user' : 'default';
|
|
98
|
+
return (_jsxs(Box, { gap: 1, children: [_jsx(Text, { color: active ? 'cyan' : undefined, children: active ? '▸' : ' ' }), _jsx(Text, { bold: active, color: active ? 'cyan' : undefined, children: pad(role, 14) }), _jsx(Text, { color: "green", children: pad(selected?.name ?? '(none)', 12) }), _jsx(Text, { color: source === 'user' ? 'yellow' : undefined, dimColor: source === 'default', children: pad(source, 10) }), _jsx(Text, { dimColor: true, children: chain })] }, role));
|
|
99
|
+
}), _jsx(Text, { children: " " }), _jsx(Text, { dimColor: true, children: "[\u2191\u2193] Navigate [Enter/e] Edit chain [Esc] Back" })] }));
|
|
100
|
+
}
|
|
101
|
+
function pad(s, width) {
|
|
102
|
+
return s.length >= width ? s.slice(0, width) : s + ' '.repeat(width - s.length);
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=RoleMappings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RoleMappings.js","sourceRoot":"","sources":["../../../../src/tui/tools-ui/RoleMappings.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
type View = 'dashboard' | 'tools' | 'roles' | 'register' | 'reference' | 'sources';
|
|
2
|
+
export interface ToolsDashboardProps {
|
|
3
|
+
workDir: string;
|
|
4
|
+
initialView?: View;
|
|
5
|
+
}
|
|
6
|
+
export declare function ToolsDashboard({ workDir, initialView }: ToolsDashboardProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=ToolsDashboard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToolsDashboard.d.ts","sourceRoot":"","sources":["../../../../src/tui/tools-ui/ToolsDashboard.tsx"],"names":[],"mappings":"AAcA,KAAK,IAAI,GAAG,WAAW,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,GAAG,WAAW,GAAG,SAAS,CAAC;AAEnF,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,IAAI,CAAC;CACpB;AAED,wBAAgB,cAAc,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,mBAAmB,2CAsF3E"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState, useEffect } from 'react';
|
|
3
|
+
import { Box, Text, useInput, useApp } from 'ink';
|
|
4
|
+
import { loadCliToolsConfig, } from '../../config/cli-tools-config.js';
|
|
5
|
+
import { ToolsOverview } from './ToolsOverview.js';
|
|
6
|
+
import { RoleMappings } from './RoleMappings.js';
|
|
7
|
+
import { RegisterSettings } from './RegisterSettings.js';
|
|
8
|
+
import { CommandReference } from './CommandReference.js';
|
|
9
|
+
import { ConfigSources } from './ConfigSources.js';
|
|
10
|
+
export function ToolsDashboard({ workDir, initialView }) {
|
|
11
|
+
const { exit } = useApp();
|
|
12
|
+
const [view, setView] = useState(initialView ?? 'dashboard');
|
|
13
|
+
const [config, setConfig] = useState(null);
|
|
14
|
+
const reload = async () => {
|
|
15
|
+
const cfg = await loadCliToolsConfig(workDir);
|
|
16
|
+
setConfig(cfg);
|
|
17
|
+
};
|
|
18
|
+
useEffect(() => { reload(); }, []);
|
|
19
|
+
useInput((input, key) => {
|
|
20
|
+
if (view !== 'dashboard')
|
|
21
|
+
return;
|
|
22
|
+
if (input === '1')
|
|
23
|
+
setView('tools');
|
|
24
|
+
if (input === '2')
|
|
25
|
+
setView('roles');
|
|
26
|
+
if (input === '3')
|
|
27
|
+
setView('register');
|
|
28
|
+
if (input === '4')
|
|
29
|
+
setView('reference');
|
|
30
|
+
if (input === '5')
|
|
31
|
+
setView('sources');
|
|
32
|
+
if (input === 'q' || key.escape)
|
|
33
|
+
exit();
|
|
34
|
+
});
|
|
35
|
+
if (!config) {
|
|
36
|
+
return _jsx(Text, { dimColor: true, children: "Loading configuration..." });
|
|
37
|
+
}
|
|
38
|
+
if (view === 'tools') {
|
|
39
|
+
return _jsx(ToolsOverview, { config: config, workDir: workDir, onBack: () => { reload(); setView('dashboard'); }, onReload: reload });
|
|
40
|
+
}
|
|
41
|
+
if (view === 'roles') {
|
|
42
|
+
return _jsx(RoleMappings, { config: config, workDir: workDir, onBack: () => { reload(); setView('dashboard'); }, onReload: reload });
|
|
43
|
+
}
|
|
44
|
+
if (view === 'register') {
|
|
45
|
+
return (_jsx(RegisterSettings, { config: config, workDir: workDir, onBack: () => { reload(); setView('dashboard'); } }));
|
|
46
|
+
}
|
|
47
|
+
if (view === 'reference') {
|
|
48
|
+
return _jsx(CommandReference, { config: config, onBack: () => setView('dashboard') });
|
|
49
|
+
}
|
|
50
|
+
if (view === 'sources') {
|
|
51
|
+
return _jsx(ConfigSources, { workDir: workDir, onBack: () => setView('dashboard') });
|
|
52
|
+
}
|
|
53
|
+
// Dashboard view
|
|
54
|
+
const toolEntries = Object.entries(config.tools);
|
|
55
|
+
return (_jsx(Box, { flexDirection: "column", paddingX: 1, children: _jsxs(Box, { borderStyle: "round", borderColor: "cyan", flexDirection: "column", paddingX: 2, paddingY: 1, children: [_jsx(Text, { bold: true, color: "cyan", children: "MAESTRO TOOLS" }), _jsx(Text, { children: " " }), toolEntries.length === 0 ? (_jsx(Text, { dimColor: true, children: " No tools configured in cli-tools.json" })) : (toolEntries.map(([name, entry]) => (_jsxs(Box, { gap: 1, children: [_jsx(Text, { color: entry.enabled ? 'green' : 'red', children: entry.enabled ? ' ✓' : ' ✗' }), _jsx(Text, { bold: true, children: padRight(name, 12) }), _jsx(Text, { dimColor: true, children: padRight(entry.primaryModel || '—', 24) }), _jsx(Text, { color: "yellow", children: entry.tags?.length ? `[${entry.tags.join(', ')}]` : '—' })] }, name)))), _jsx(Text, { children: " " }), _jsxs(Box, { gap: 2, children: [_jsx(Text, { color: "cyan", children: "[1]" }), _jsx(Text, { children: "Tools" }), _jsx(Text, { color: "cyan", children: "[2]" }), _jsx(Text, { children: "Roles" }), _jsx(Text, { color: "cyan", children: "[3]" }), _jsx(Text, { children: "Register" }), _jsx(Text, { color: "cyan", children: "[4]" }), _jsx(Text, { children: "Ref" }), _jsx(Text, { color: "cyan", children: "[5]" }), _jsx(Text, { children: "Config" })] }), _jsx(Text, { dimColor: true, children: " [q] Quit" })] }) }));
|
|
56
|
+
}
|
|
57
|
+
function padRight(s, width) {
|
|
58
|
+
return s.length >= width ? s : s + ' '.repeat(width - s.length);
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=ToolsDashboard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToolsDashboard.js","sourceRoot":"","sources":["../../../../src/tui/tools-ui/ToolsDashboard.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type CliToolsConfig } from '../../config/cli-tools-config.js';
|
|
2
|
+
export interface ToolsOverviewProps {
|
|
3
|
+
config: CliToolsConfig;
|
|
4
|
+
workDir: string;
|
|
5
|
+
onBack: () => void;
|
|
6
|
+
onReload: () => void;
|
|
7
|
+
}
|
|
8
|
+
export declare function ToolsOverview({ config, workDir, onBack, onReload }: ToolsOverviewProps): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
//# sourceMappingURL=ToolsOverview.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToolsOverview.d.ts","sourceRoot":"","sources":["../../../../src/tui/tools-ui/ToolsOverview.tsx"],"names":[],"mappings":"AAGA,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,kCAAkC,CAAC;AAE1C,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,cAAc,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AAID,wBAAgB,aAAa,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,kBAAkB,2CAyHtF"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
import { Box, Text, useInput } from 'ink';
|
|
4
|
+
import { saveCliToolsConfig, DOMAIN_TAGS, } from '../../config/cli-tools-config.js';
|
|
5
|
+
export function ToolsOverview({ config, workDir, onBack, onReload }) {
|
|
6
|
+
const entries = Object.entries(config.tools);
|
|
7
|
+
const [cursor, setCursor] = useState(0);
|
|
8
|
+
const [mode, setMode] = useState('list');
|
|
9
|
+
const [tagCursor, setTagCursor] = useState(0);
|
|
10
|
+
const [editTags, setEditTags] = useState([]);
|
|
11
|
+
const [saving, setSaving] = useState(false);
|
|
12
|
+
useInput((input, key) => {
|
|
13
|
+
if (saving)
|
|
14
|
+
return;
|
|
15
|
+
if (mode === 'list') {
|
|
16
|
+
if (key.escape) {
|
|
17
|
+
onBack();
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
if (key.upArrow)
|
|
21
|
+
setCursor(c => c > 0 ? c - 1 : entries.length - 1);
|
|
22
|
+
if (key.downArrow)
|
|
23
|
+
setCursor(c => c < entries.length - 1 ? c + 1 : 0);
|
|
24
|
+
if (input === 't' && entries.length > 0) {
|
|
25
|
+
// Enter tag editing for current tool
|
|
26
|
+
setEditTags([...(entries[cursor][1].tags ?? [])]);
|
|
27
|
+
setTagCursor(0);
|
|
28
|
+
setMode('edit-tags');
|
|
29
|
+
}
|
|
30
|
+
if (input === ' ' && entries.length > 0) {
|
|
31
|
+
// Toggle enabled
|
|
32
|
+
const [name, entry] = entries[cursor];
|
|
33
|
+
setSaving(true);
|
|
34
|
+
saveCliToolsConfig({ tools: { [name]: { ...entry, enabled: !entry.enabled } } }, 'global', workDir)
|
|
35
|
+
.then(() => { onReload(); setSaving(false); });
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
if (mode === 'edit-tags') {
|
|
39
|
+
if (key.escape) {
|
|
40
|
+
setMode('list');
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
if (key.upArrow)
|
|
44
|
+
setTagCursor(c => c > 0 ? c - 1 : DOMAIN_TAGS.length - 1);
|
|
45
|
+
if (key.downArrow)
|
|
46
|
+
setTagCursor(c => c < DOMAIN_TAGS.length - 1 ? c + 1 : 0);
|
|
47
|
+
if (input === ' ' || key.return) {
|
|
48
|
+
const tag = DOMAIN_TAGS[tagCursor];
|
|
49
|
+
setEditTags(prev => prev.includes(tag) ? prev.filter(t => t !== tag) : [...prev, tag]);
|
|
50
|
+
}
|
|
51
|
+
if (input === 's') {
|
|
52
|
+
// Save tags
|
|
53
|
+
const [name, entry] = entries[cursor];
|
|
54
|
+
setSaving(true);
|
|
55
|
+
saveCliToolsConfig({ tools: { [name]: { ...entry, tags: editTags } } }, 'global', workDir)
|
|
56
|
+
.then(() => { onReload(); setSaving(false); setMode('list'); });
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
if (entries.length === 0) {
|
|
61
|
+
return (_jsxs(Box, { flexDirection: "column", paddingX: 1, children: [_jsx(Text, { bold: true, color: "cyan", children: "Tools Overview" }), _jsx(Text, { dimColor: true, children: "No tools configured." }), _jsx(Text, { dimColor: true, children: "[Esc] Back" })] }));
|
|
62
|
+
}
|
|
63
|
+
if (mode === 'edit-tags') {
|
|
64
|
+
const [name] = entries[cursor];
|
|
65
|
+
return (_jsxs(Box, { flexDirection: "column", paddingX: 1, children: [_jsxs(Text, { bold: true, color: "cyan", children: ["Edit Tags: ", _jsx(Text, { color: "green", children: name })] }), _jsx(Text, { children: " " }), DOMAIN_TAGS.map((tag, i) => {
|
|
66
|
+
const selected = editTags.includes(tag);
|
|
67
|
+
const active = i === tagCursor;
|
|
68
|
+
return (_jsxs(Box, { gap: 1, children: [_jsxs(Text, { color: active ? 'cyan' : undefined, children: [active ? '▸' : ' ', " ", selected ? '[✓]' : '[ ]'] }), _jsx(Text, { bold: active, color: active ? 'cyan' : selected ? 'green' : undefined, children: tag })] }, tag));
|
|
69
|
+
}), _jsx(Text, { children: " " }), _jsx(Text, { dimColor: true, children: "[\u2191\u2193] Navigate [Space] Toggle [s] Save [Esc] Cancel" })] }));
|
|
70
|
+
}
|
|
71
|
+
return (_jsxs(Box, { flexDirection: "column", paddingX: 1, children: [_jsx(Text, { bold: true, color: "cyan", children: "Tools Overview" }), _jsx(Text, { children: " " }), _jsxs(Box, { gap: 1, children: [_jsxs(Text, { dimColor: true, children: [' ', pad('Tool', 12)] }), _jsx(Text, { dimColor: true, children: pad('Model', 24) }), _jsx(Text, { dimColor: true, children: pad('Tags', 28) }), _jsx(Text, { dimColor: true, children: "Settings" })] }), _jsx(Text, { dimColor: true, children: ' ' + '─'.repeat(80) }), entries.map(([name, entry], i) => {
|
|
72
|
+
const active = i === cursor;
|
|
73
|
+
const color = active ? 'cyan' : undefined;
|
|
74
|
+
const statusIcon = entry.enabled ? '✓' : '✗';
|
|
75
|
+
const statusColor = entry.enabled ? 'green' : 'red';
|
|
76
|
+
const tags = entry.tags?.length ? entry.tags.join(', ') : '—';
|
|
77
|
+
const settings = entry.settingsFile || '—';
|
|
78
|
+
return (_jsxs(Box, { gap: 1, children: [_jsxs(Text, { color: statusColor, children: [active ? '▸' : ' ', statusIcon] }), _jsx(Text, { bold: active, color: color, children: pad(name, 12) }), _jsx(Text, { color: color, children: pad(entry.primaryModel || '—', 24) }), _jsx(Text, { color: "yellow", children: pad(tags, 28) }), _jsx(Text, { dimColor: !entry.settingsFile, children: settings })] }, name));
|
|
79
|
+
}), _jsx(Text, { children: " " }), _jsx(Text, { dimColor: true, children: "[\u2191\u2193] Navigate [Space] Toggle enabled [t] Edit tags [Esc] Back" }), saving && _jsx(Text, { dimColor: true, children: "Saving..." })] }));
|
|
80
|
+
}
|
|
81
|
+
function pad(s, width) {
|
|
82
|
+
return s.length >= width ? s.slice(0, width) : s + ' '.repeat(width - s.length);
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=ToolsOverview.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToolsOverview.js","sourceRoot":"","sources":["../../../../src/tui/tools-ui/ToolsOverview.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/tui/tools-ui/index.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,GAAG,WAAW,GAAG,SAAS,CAAC;AAEtG,wBAAsB,WAAW,CAC/B,WAAW,GAAE,gBAA8B,GAC1C,OAAO,CAAC,IAAI,CAAC,CAIf"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { renderTui } from '../render.js';
|
|
2
|
+
export async function runToolsTui(initialView = 'dashboard') {
|
|
3
|
+
const { ToolsDashboard } = await import('./ToolsDashboard.js');
|
|
4
|
+
await renderTui(ToolsDashboard, { workDir: process.cwd(), initialView });
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/tui/tools-ui/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAIzC,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,cAAgC,WAAW;IAE3C,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;IAE/D,MAAM,SAAS,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;AAC3E,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type Manifest } from '../../core/manifest.js';
|
|
2
|
+
interface UninstallFlowProps {
|
|
3
|
+
manifests: Manifest[];
|
|
4
|
+
}
|
|
5
|
+
export declare function UninstallFlow({ manifests }: UninstallFlowProps): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
export {};
|
|
7
|
+
//# sourceMappingURL=UninstallFlow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UninstallFlow.d.ts","sourceRoot":"","sources":["../../../../src/tui/uninstall-ui/UninstallFlow.tsx"],"names":[],"mappings":"AAQA,OAAO,EAGL,KAAK,QAAQ,EAEd,MAAM,wBAAwB,CAAC;AAuEhC,UAAU,kBAAkB;IAC1B,SAAS,EAAE,QAAQ,EAAE,CAAC;CACvB;AAED,wBAAgB,aAAa,CAAC,EAAE,SAAS,EAAE,EAAE,kBAAkB,2CAqT9D"}
|