@projectarachne/cli 0.1.0-beta.1

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 (153) hide show
  1. package/LICENSE +75 -0
  2. package/README.md +40 -0
  3. package/bin/arachne +2 -0
  4. package/bin/arachne.js +2 -0
  5. package/dist/arachne.d.ts +3 -0
  6. package/dist/arachne.d.ts.map +1 -0
  7. package/dist/arachne.js +4 -0
  8. package/dist/arachne.js.map +1 -0
  9. package/dist/index.d.ts +4 -0
  10. package/dist/index.d.ts.map +1 -0
  11. package/dist/index.js +145 -0
  12. package/dist/index.js.map +1 -0
  13. package/dist/serve.d.ts +6 -0
  14. package/dist/serve.d.ts.map +1 -0
  15. package/dist/serve.js +83 -0
  16. package/dist/serve.js.map +1 -0
  17. package/dist/templates.d.ts +3 -0
  18. package/dist/templates.d.ts.map +1 -0
  19. package/dist/templates.js +22 -0
  20. package/dist/templates.js.map +1 -0
  21. package/dist/tui/App.d.ts +2 -0
  22. package/dist/tui/App.d.ts.map +1 -0
  23. package/dist/tui/App.js +1078 -0
  24. package/dist/tui/App.js.map +1 -0
  25. package/dist/tui/components/Box.d.ts +19 -0
  26. package/dist/tui/components/Box.d.ts.map +1 -0
  27. package/dist/tui/components/Box.js +9 -0
  28. package/dist/tui/components/Box.js.map +1 -0
  29. package/dist/tui/components/ChatInput.d.ts +12 -0
  30. package/dist/tui/components/ChatInput.d.ts.map +1 -0
  31. package/dist/tui/components/ChatInput.js +10 -0
  32. package/dist/tui/components/ChatInput.js.map +1 -0
  33. package/dist/tui/components/CommandInput.d.ts +15 -0
  34. package/dist/tui/components/CommandInput.d.ts.map +1 -0
  35. package/dist/tui/components/CommandInput.js +92 -0
  36. package/dist/tui/components/CommandInput.js.map +1 -0
  37. package/dist/tui/components/Content.d.ts +18 -0
  38. package/dist/tui/components/Content.d.ts.map +1 -0
  39. package/dist/tui/components/Content.js +22 -0
  40. package/dist/tui/components/Content.js.map +1 -0
  41. package/dist/tui/components/DagView.d.ts +8 -0
  42. package/dist/tui/components/DagView.d.ts.map +1 -0
  43. package/dist/tui/components/DagView.js +49 -0
  44. package/dist/tui/components/DagView.js.map +1 -0
  45. package/dist/tui/components/Footer.d.ts +9 -0
  46. package/dist/tui/components/Footer.d.ts.map +1 -0
  47. package/dist/tui/components/Footer.js +6 -0
  48. package/dist/tui/components/Footer.js.map +1 -0
  49. package/dist/tui/components/Frame.d.ts +6 -0
  50. package/dist/tui/components/Frame.d.ts.map +1 -0
  51. package/dist/tui/components/Frame.js +10 -0
  52. package/dist/tui/components/Frame.js.map +1 -0
  53. package/dist/tui/components/GoalInput.d.ts +10 -0
  54. package/dist/tui/components/GoalInput.d.ts.map +1 -0
  55. package/dist/tui/components/GoalInput.js +8 -0
  56. package/dist/tui/components/GoalInput.js.map +1 -0
  57. package/dist/tui/components/Header.d.ts +8 -0
  58. package/dist/tui/components/Header.d.ts.map +1 -0
  59. package/dist/tui/components/Header.js +8 -0
  60. package/dist/tui/components/Header.js.map +1 -0
  61. package/dist/tui/components/Help.d.ts +6 -0
  62. package/dist/tui/components/Help.d.ts.map +1 -0
  63. package/dist/tui/components/Help.js +8 -0
  64. package/dist/tui/components/Help.js.map +1 -0
  65. package/dist/tui/components/HomeView.d.ts +2 -0
  66. package/dist/tui/components/HomeView.d.ts.map +1 -0
  67. package/dist/tui/components/HomeView.js +8 -0
  68. package/dist/tui/components/HomeView.js.map +1 -0
  69. package/dist/tui/components/OutputView.d.ts +9 -0
  70. package/dist/tui/components/OutputView.d.ts.map +1 -0
  71. package/dist/tui/components/OutputView.js +40 -0
  72. package/dist/tui/components/OutputView.js.map +1 -0
  73. package/dist/tui/components/PlannerView.d.ts +17 -0
  74. package/dist/tui/components/PlannerView.d.ts.map +1 -0
  75. package/dist/tui/components/PlannerView.js +62 -0
  76. package/dist/tui/components/PlannerView.js.map +1 -0
  77. package/dist/tui/components/Settings.d.ts +6 -0
  78. package/dist/tui/components/Settings.d.ts.map +1 -0
  79. package/dist/tui/components/Settings.js +210 -0
  80. package/dist/tui/components/Settings.js.map +1 -0
  81. package/dist/tui/components/Sidebar.d.ts +12 -0
  82. package/dist/tui/components/Sidebar.d.ts.map +1 -0
  83. package/dist/tui/components/Sidebar.js +9 -0
  84. package/dist/tui/components/Sidebar.js.map +1 -0
  85. package/dist/tui/components/Splash.d.ts +7 -0
  86. package/dist/tui/components/Splash.d.ts.map +1 -0
  87. package/dist/tui/components/Splash.js +56 -0
  88. package/dist/tui/components/Splash.js.map +1 -0
  89. package/dist/tui/components/StepEditor.d.ts +13 -0
  90. package/dist/tui/components/StepEditor.d.ts.map +1 -0
  91. package/dist/tui/components/StepEditor.js +33 -0
  92. package/dist/tui/components/StepEditor.js.map +1 -0
  93. package/dist/tui/components/ThemeDesigner.d.ts +9 -0
  94. package/dist/tui/components/ThemeDesigner.d.ts.map +1 -0
  95. package/dist/tui/components/ThemeDesigner.js +45 -0
  96. package/dist/tui/components/ThemeDesigner.js.map +1 -0
  97. package/dist/tui/components/WorkflowPicker.d.ts +8 -0
  98. package/dist/tui/components/WorkflowPicker.d.ts.map +1 -0
  99. package/dist/tui/components/WorkflowPicker.js +11 -0
  100. package/dist/tui/components/WorkflowPicker.js.map +1 -0
  101. package/dist/tui/components/index.d.ts +20 -0
  102. package/dist/tui/components/index.d.ts.map +1 -0
  103. package/dist/tui/components/index.js +20 -0
  104. package/dist/tui/components/index.js.map +1 -0
  105. package/dist/tui/index.d.ts +2 -0
  106. package/dist/tui/index.d.ts.map +1 -0
  107. package/dist/tui/index.js +7 -0
  108. package/dist/tui/index.js.map +1 -0
  109. package/dist/tui/services/context.d.ts +11 -0
  110. package/dist/tui/services/context.d.ts.map +1 -0
  111. package/dist/tui/services/context.js +134 -0
  112. package/dist/tui/services/context.js.map +1 -0
  113. package/dist/tui/services/executor.d.ts +13 -0
  114. package/dist/tui/services/executor.d.ts.map +1 -0
  115. package/dist/tui/services/executor.js +186 -0
  116. package/dist/tui/services/executor.js.map +1 -0
  117. package/dist/tui/services/generateSteps.d.ts +7 -0
  118. package/dist/tui/services/generateSteps.d.ts.map +1 -0
  119. package/dist/tui/services/generateSteps.js +238 -0
  120. package/dist/tui/services/generateSteps.js.map +1 -0
  121. package/dist/tui/services/providers.d.ts +16 -0
  122. package/dist/tui/services/providers.d.ts.map +1 -0
  123. package/dist/tui/services/providers.js +246 -0
  124. package/dist/tui/services/providers.js.map +1 -0
  125. package/dist/tui/services/settings.d.ts +29 -0
  126. package/dist/tui/services/settings.d.ts.map +1 -0
  127. package/dist/tui/services/settings.js +107 -0
  128. package/dist/tui/services/settings.js.map +1 -0
  129. package/dist/tui/services/theme.d.ts +45 -0
  130. package/dist/tui/services/theme.d.ts.map +1 -0
  131. package/dist/tui/services/theme.js +205 -0
  132. package/dist/tui/services/theme.js.map +1 -0
  133. package/dist/tui/services/themeGenerator.d.ts +4 -0
  134. package/dist/tui/services/themeGenerator.d.ts.map +1 -0
  135. package/dist/tui/services/themeGenerator.js +93 -0
  136. package/dist/tui/services/themeGenerator.js.map +1 -0
  137. package/dist/tui/services/user.d.ts +3 -0
  138. package/dist/tui/services/user.d.ts.map +1 -0
  139. package/dist/tui/services/user.js +40 -0
  140. package/dist/tui/services/user.js.map +1 -0
  141. package/dist/tui/theme-context.d.ts +4 -0
  142. package/dist/tui/theme-context.d.ts.map +1 -0
  143. package/dist/tui/theme-context.js +6 -0
  144. package/dist/tui/theme-context.js.map +1 -0
  145. package/dist/tui/types.d.ts +81 -0
  146. package/dist/tui/types.d.ts.map +1 -0
  147. package/dist/tui/types.js +3 -0
  148. package/dist/tui/types.js.map +1 -0
  149. package/dist/tui.d.ts +2 -0
  150. package/dist/tui.d.ts.map +1 -0
  151. package/dist/tui.js +241 -0
  152. package/dist/tui.js.map +1 -0
  153. package/package.json +52 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Help.js","sourceRoot":"","sources":["../../../src/tui/components/Help.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const HomeView: () => import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=HomeView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HomeView.d.ts","sourceRoot":"","sources":["../../../src/tui/components/HomeView.tsx"],"names":[],"mappings":"AAEA,eAAO,MAAM,QAAQ,+CA2BpB,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box, Text } from 'ink';
3
+ import { useTheme } from '../theme-context.js';
4
+ export const HomeView = () => {
5
+ const theme = useTheme();
6
+ return (_jsx(Box, { flexDirection: "column", padding: 1, flexGrow: 1, children: _jsxs(Box, { flexDirection: "column", marginBottom: 2, children: [_jsx(Text, { color: theme.colors.accent, bold: true, children: "QUICK ACTIONS" }), _jsxs(Box, { marginTop: 1, flexDirection: "row", gap: 3, children: [_jsxs(Text, { color: theme.colors.text, children: [_jsx(Text, { color: theme.colors.warning, children: "[A]" }), " Auto plan"] }), _jsxs(Text, { color: theme.colors.text, children: [_jsx(Text, { color: theme.colors.warning, children: "[M]" }), " Manual plan"] }), _jsxs(Text, { color: theme.colors.text, children: [_jsx(Text, { color: theme.colors.warning, children: "[L]" }), " Load workflow"] }), _jsxs(Text, { color: theme.colors.text, children: [_jsx(Text, { color: theme.colors.warning, children: "[S]" }), " Settings"] })] })] }) }));
7
+ };
8
+ //# sourceMappingURL=HomeView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HomeView.js","sourceRoot":"","sources":["../../../src/tui/components/HomeView.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,EAAE;IAC3B,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IAEzB,OAAO,CACL,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,YAEjD,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,YAAY,EAAE,CAAC,aACzC,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,oCAE/B,EACP,MAAC,GAAG,IAAC,SAAS,EAAE,CAAC,EAAE,aAAa,EAAC,KAAK,EAAC,GAAG,EAAE,CAAC,aAC3C,MAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,aAC5B,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,oBAAY,kBACxC,EACP,MAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,aAC5B,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,oBAAY,oBACxC,EACP,MAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,aAC5B,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,oBAAY,sBACxC,EACP,MAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,aAC5B,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,oBAAY,iBACxC,IACH,IACF,GACF,CACP,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { Step } from '../types.js';
2
+ interface OutputViewProps {
3
+ steps: Step[];
4
+ output: string[];
5
+ isRunning: boolean;
6
+ }
7
+ export declare const OutputView: ({ steps, output, isRunning }: OutputViewProps) => import("react/jsx-runtime").JSX.Element;
8
+ export {};
9
+ //# sourceMappingURL=OutputView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OutputView.d.ts","sourceRoot":"","sources":["../../../src/tui/components/OutputView.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAGxC,UAAU,eAAe;IACvB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,UAAU,GAAI,8BAA8B,eAAe,4CA0GvE,CAAC"}
@@ -0,0 +1,40 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box, Text } from 'ink';
3
+ import Spinner from 'ink-spinner';
4
+ import { useTheme } from '../theme-context.js';
5
+ export const OutputView = ({ steps, output, isRunning }) => {
6
+ const theme = useTheme();
7
+ const currentStep = steps.find((s) => s.status === 'running');
8
+ const completedSteps = steps.filter((s) => s.status === 'success').length;
9
+ const totalSteps = steps.length;
10
+ const progress = totalSteps > 0 ? Math.round((completedSteps / totalSteps) * 100) : 0;
11
+ const progressBarWidth = 30;
12
+ const filledWidth = Math.round((progress / 100) * progressBarWidth);
13
+ return (_jsxs(Box, { flexDirection: "column", paddingX: 1, children: [_jsxs(Box, { marginBottom: 1, justifyContent: "space-between", children: [_jsx(Box, { children: isRunning ? (_jsxs(_Fragment, { children: [_jsx(Spinner, { type: "dots" }), _jsx(Text, { color: theme.colors.warning, children: " Running: " }), _jsx(Text, { color: theme.colors.accent, children: currentStep?.id || 'initializing...' })] })) : (_jsx(Text, { color: theme.colors.success, bold: true, children: "Execution Complete" })) }), _jsxs(Text, { color: theme.colors.muted, children: [completedSteps, "/", totalSteps, " steps"] })] }), _jsxs(Box, { marginBottom: 1, children: [_jsx(Text, { color: theme.colors.muted, children: "[" }), _jsx(Text, { color: theme.colors.accent, children: '█'.repeat(filledWidth) }), _jsx(Text, { color: theme.colors.muted, children: '░'.repeat(progressBarWidth - filledWidth) }), _jsx(Text, { color: theme.colors.muted, children: "] " }), _jsxs(Text, { color: theme.colors.text, children: [progress, "%"] })] }), _jsx(Box, { flexDirection: "column", marginBottom: 1, children: steps.map((step, index) => {
14
+ let icon;
15
+ let color;
16
+ let timeStr = '';
17
+ switch (step.status) {
18
+ case 'success':
19
+ icon = '✓';
20
+ color = theme.colors.success;
21
+ if (step.duration) {
22
+ timeStr = ` (${(step.duration / 1000).toFixed(1)}s)`;
23
+ }
24
+ break;
25
+ case 'running':
26
+ icon = '⟳';
27
+ color = theme.colors.warning;
28
+ break;
29
+ case 'failed':
30
+ icon = '✗';
31
+ color = theme.colors.danger;
32
+ break;
33
+ default:
34
+ icon = '○';
35
+ color = theme.colors.muted;
36
+ }
37
+ return (_jsx(Box, { children: _jsxs(Text, { color: color, children: [icon, " Step ", index + 1, ": ", step.id, timeStr] }) }, step.id));
38
+ }) }), _jsxs(Box, { flexDirection: "column", borderStyle: "round", borderColor: theme.colors.panel.border, padding: 1, height: 12, children: [_jsx(Box, { marginBottom: 1, children: _jsx(Text, { color: theme.colors.muted, bold: true, children: "OUTPUT" }) }), output.length === 0 ? (_jsx(Text, { color: theme.colors.muted, dimColor: true, children: "Waiting for output..." })) : (output.slice(-8).map((line, index) => (_jsx(Text, { color: theme.colors.text, wrap: "truncate", children: line }, index))))] })] }));
39
+ };
40
+ //# sourceMappingURL=OutputView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OutputView.js","sourceRoot":"","sources":["../../../src/tui/components/OutputView.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import type { PlannerPhase, Step, Provider } from '../types.js';
2
+ interface PlannerViewProps {
3
+ phases: PlannerPhase[];
4
+ selectedStepIndex: number;
5
+ detailsFocused: boolean;
6
+ providers: Provider[];
7
+ output: string[];
8
+ isRunning: boolean;
9
+ editingField: 'prompt' | 'provider' | 'model' | null;
10
+ onPromptChange: (value: string) => void;
11
+ onProviderSelect: (provider: Step['provider']) => void;
12
+ onModelSelect: (model: string) => void;
13
+ onEditingChange: (editing: 'prompt' | 'provider' | 'model' | null) => void;
14
+ }
15
+ export declare const PlannerView: ({ phases, selectedStepIndex, detailsFocused, providers, output, isRunning, editingField, onPromptChange, onProviderSelect, onModelSelect, onEditingChange, }: PlannerViewProps) => import("react/jsx-runtime").JSX.Element;
16
+ export {};
17
+ //# sourceMappingURL=PlannerView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlannerView.d.ts","sourceRoot":"","sources":["../../../src/tui/components/PlannerView.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAe,IAAI,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAG7E,UAAU,gBAAgB;IACxB,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,OAAO,CAAC;IACxB,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,QAAQ,GAAG,UAAU,GAAG,OAAO,GAAG,IAAI,CAAC;IACrD,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,gBAAgB,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;IACvD,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,eAAe,EAAE,CAAC,OAAO,EAAE,QAAQ,GAAG,UAAU,GAAG,OAAO,GAAG,IAAI,KAAK,IAAI,CAAC;CAC5E;AAsBD,eAAO,MAAM,WAAW,GAAI,8JAYzB,gBAAgB,4CAqHlB,CAAC"}
@@ -0,0 +1,62 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box, Text } from 'ink';
3
+ import { useTheme } from '../theme-context.js';
4
+ import { StepEditor } from './StepEditor.js';
5
+ const getPhaseStatus = (steps) => {
6
+ if (steps.some((s) => s.status === 'failed'))
7
+ return 'failed';
8
+ if (steps.some((s) => s.status === 'running'))
9
+ return 'running';
10
+ if (steps.every((s) => s.status === 'success'))
11
+ return 'complete';
12
+ return 'pending';
13
+ };
14
+ const statusColor = (status, theme) => {
15
+ switch (status) {
16
+ case 'running':
17
+ return theme.colors.warning;
18
+ case 'complete':
19
+ return theme.colors.success;
20
+ case 'failed':
21
+ return theme.colors.danger;
22
+ default:
23
+ return theme.colors.muted;
24
+ }
25
+ };
26
+ export const PlannerView = ({ phases, selectedStepIndex, detailsFocused, providers, output, isRunning, editingField, onPromptChange, onProviderSelect, onModelSelect, onEditingChange, }) => {
27
+ const theme = useTheme();
28
+ const flattened = [];
29
+ phases.forEach((phase) => {
30
+ phase.steps.forEach((step) => {
31
+ flattened.push({ phase, step });
32
+ });
33
+ });
34
+ const stepIndexMap = new Map();
35
+ flattened.forEach((item, index) => {
36
+ stepIndexMap.set(item.step, index);
37
+ });
38
+ const selected = flattened[selectedStepIndex]?.step;
39
+ return (_jsxs(Box, { flexDirection: "row", flexGrow: 1, gap: 2, children: [_jsxs(Box, { flexDirection: "column", flexGrow: 2, children: [_jsx(Box, { flexDirection: "column", flexGrow: 1, children: phases.map((phase) => {
40
+ const status = getPhaseStatus(phase.steps);
41
+ return (_jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [_jsxs(Box, { children: [_jsx(Text, { color: statusColor(status, theme), bold: true, children: status === 'complete' ? '✓' : status === 'failed' ? '✗' : status === 'running' ? '⟳' : '○' }), _jsxs(Text, { color: theme.colors.accent, bold: true, children: [' ', phase.title] })] }), _jsx(Box, { flexDirection: "column", marginLeft: 2, children: phase.steps.map((step) => {
42
+ const index = stepIndexMap.get(step) ?? 0;
43
+ const isSelected = index === selectedStepIndex;
44
+ const icon = step.status === 'success'
45
+ ? '✓'
46
+ : step.status === 'failed'
47
+ ? '✗'
48
+ : step.status === 'running'
49
+ ? '⟳'
50
+ : '○';
51
+ const color = step.status === 'success'
52
+ ? theme.colors.success
53
+ : step.status === 'failed'
54
+ ? theme.colors.danger
55
+ : step.status === 'running'
56
+ ? theme.colors.warning
57
+ : theme.colors.muted;
58
+ return (_jsxs(Text, { color: isSelected ? theme.colors.accent : theme.colors.text, children: [isSelected ? '▶ ' : ' ', _jsx(Text, { color: color, children: icon }), ' ', step.title || step.id] }, step.id));
59
+ }) })] }, phase.id));
60
+ }) }), _jsxs(Box, { borderStyle: "round", borderColor: theme.colors.panel.border, paddingX: 1, paddingY: 0, children: [_jsx(Text, { color: theme.colors.muted, bold: true, children: "RUN LOG" }), output.length === 0 ? (isRunning ? (_jsx(Text, { color: theme.colors.muted, dimColor: true, children: "Waiting for output..." })) : (_jsx(Text, { children: " " }))) : (output.slice(-6).map((line, index) => (_jsx(Text, { color: theme.colors.text, wrap: "truncate", children: line }, index))))] })] }), _jsxs(Box, { flexDirection: "column", flexGrow: 1, borderStyle: "round", borderColor: detailsFocused ? theme.colors.panel.borderFocus : theme.colors.panel.border, children: [_jsx(Box, { paddingX: 1, paddingY: 1, children: _jsx(Text, { color: theme.colors.accent, bold: true, children: "STEP DETAILS" }) }), selected ? (_jsx(StepEditor, { step: selected, providers: providers, editing: editingField, onPromptChange: onPromptChange, onProviderSelect: onProviderSelect, onModelSelect: onModelSelect, onEditingChange: onEditingChange })) : (_jsx(Box, { padding: 1, children: _jsx(Text, { color: theme.colors.muted, children: "Select a step to view details." }) }))] })] }));
61
+ };
62
+ //# sourceMappingURL=PlannerView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlannerView.js","sourceRoot":"","sources":["../../../src/tui/components/PlannerView.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ interface SettingsProps {
2
+ onClose: () => void;
3
+ }
4
+ export declare const Settings: ({ onClose }: SettingsProps) => import("react/jsx-runtime").JSX.Element;
5
+ export {};
6
+ //# sourceMappingURL=Settings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Settings.d.ts","sourceRoot":"","sources":["../../../src/tui/components/Settings.tsx"],"names":[],"mappings":"AAcA,UAAU,aAAa;IACrB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAqBD,eAAO,MAAM,QAAQ,GAAI,aAAa,aAAa,4CA8QlD,CAAC"}
@@ -0,0 +1,210 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState, useEffect } from 'react';
3
+ import { Box, Text, useInput } from 'ink';
4
+ import TextInput from 'ink-text-input';
5
+ import SelectInput from 'ink-select-input';
6
+ import { useTheme } from '../theme-context.js';
7
+ import { listThemes, setActiveTheme } from '../services/theme.js';
8
+ import { loadConfig, saveConfig, maskApiKey, } from '../services/settings.js';
9
+ const PROVIDERS = [
10
+ { label: 'Claude', value: 'claude' },
11
+ { label: 'Codex (OpenAI)', value: 'codex' },
12
+ { label: 'Gemini', value: 'gemini' },
13
+ ];
14
+ const APPROVAL_MODES = [
15
+ { label: 'Auto (full access)', value: 'auto' },
16
+ { label: 'Auto Edit (auto-approve edits)', value: 'auto_edit' },
17
+ { label: 'Manual (ask for each action)', value: 'manual' },
18
+ ];
19
+ const RUN_MODES = [
20
+ { label: 'Auto (run all steps)', value: 'auto' },
21
+ { label: 'Manual (step-by-step)', value: 'manual' },
22
+ ];
23
+ export const Settings = ({ onClose }) => {
24
+ const theme = useTheme();
25
+ const [config, setConfig] = useState(null);
26
+ const [themes, setThemes] = useState([]);
27
+ const [editingField, setEditingField] = useState(null);
28
+ const [editValue, setEditValue] = useState('');
29
+ const [selectedRow, setSelectedRow] = useState(0);
30
+ const [saved, setSaved] = useState(false);
31
+ const rows = [
32
+ { id: 'claude_key', label: 'Claude API Key', section: 'API Keys' },
33
+ { id: 'codex_key', label: 'OpenAI API Key' },
34
+ { id: 'gemini_key', label: 'Google API Key' },
35
+ { id: 'provider', label: 'Default Provider', section: 'Defaults' },
36
+ { id: 'approval', label: 'Approval Mode' },
37
+ { id: 'run_mode', label: 'Run Mode' },
38
+ { id: 'theme', label: 'Active Theme', section: 'UI' },
39
+ ];
40
+ useEffect(() => {
41
+ setConfig(loadConfig());
42
+ setThemes(listThemes());
43
+ }, []);
44
+ useInput((input, key) => {
45
+ if (editingField) {
46
+ if (key.escape) {
47
+ setEditingField(null);
48
+ setEditValue('');
49
+ }
50
+ return;
51
+ }
52
+ if (key.escape) {
53
+ onClose();
54
+ return;
55
+ }
56
+ if (key.upArrow) {
57
+ setSelectedRow((prev) => Math.max(0, prev - 1));
58
+ }
59
+ else if (key.downArrow) {
60
+ setSelectedRow((prev) => Math.min(rows.length - 1, prev + 1));
61
+ }
62
+ else if (key.return || input === 'e') {
63
+ const row = rows[selectedRow];
64
+ if (row) {
65
+ setEditingField(row.id);
66
+ // Pre-populate with current value for API keys
67
+ if (row.id === 'claude_key')
68
+ setEditValue(config?.apiKeys.claude || '');
69
+ else if (row.id === 'codex_key')
70
+ setEditValue(config?.apiKeys.codex || '');
71
+ else if (row.id === 'gemini_key')
72
+ setEditValue(config?.apiKeys.gemini || '');
73
+ }
74
+ }
75
+ else if (input === 'd' || key.delete) {
76
+ // Delete/clear the selected field
77
+ const row = rows[selectedRow];
78
+ if (row && config) {
79
+ const newConfig = { ...config };
80
+ if (row.id === 'claude_key')
81
+ delete newConfig.apiKeys.claude;
82
+ else if (row.id === 'codex_key')
83
+ delete newConfig.apiKeys.codex;
84
+ else if (row.id === 'gemini_key')
85
+ delete newConfig.apiKeys.gemini;
86
+ setConfig(newConfig);
87
+ saveConfig(newConfig);
88
+ setSaved(true);
89
+ setTimeout(() => setSaved(false), 2000);
90
+ }
91
+ }
92
+ });
93
+ const handleSaveApiKey = (field, value) => {
94
+ if (!config)
95
+ return;
96
+ const newConfig = { ...config };
97
+ if (field === 'claude_key') {
98
+ if (value)
99
+ newConfig.apiKeys.claude = value;
100
+ else
101
+ delete newConfig.apiKeys.claude;
102
+ }
103
+ else if (field === 'codex_key') {
104
+ if (value)
105
+ newConfig.apiKeys.codex = value;
106
+ else
107
+ delete newConfig.apiKeys.codex;
108
+ }
109
+ else if (field === 'gemini_key') {
110
+ if (value)
111
+ newConfig.apiKeys.gemini = value;
112
+ else
113
+ delete newConfig.apiKeys.gemini;
114
+ }
115
+ setConfig(newConfig);
116
+ saveConfig(newConfig);
117
+ setEditingField(null);
118
+ setEditValue('');
119
+ setSaved(true);
120
+ setTimeout(() => setSaved(false), 2000);
121
+ };
122
+ const handleSelectProvider = (item) => {
123
+ if (!config)
124
+ return;
125
+ const newConfig = {
126
+ ...config,
127
+ defaults: { ...config.defaults, provider: item.value },
128
+ };
129
+ setConfig(newConfig);
130
+ saveConfig(newConfig);
131
+ setEditingField(null);
132
+ setSaved(true);
133
+ setTimeout(() => setSaved(false), 2000);
134
+ };
135
+ const handleSelectApproval = (item) => {
136
+ if (!config)
137
+ return;
138
+ const newConfig = {
139
+ ...config,
140
+ defaults: { ...config.defaults, approvalMode: item.value },
141
+ };
142
+ setConfig(newConfig);
143
+ saveConfig(newConfig);
144
+ setEditingField(null);
145
+ setSaved(true);
146
+ setTimeout(() => setSaved(false), 2000);
147
+ };
148
+ const handleSelectRunMode = (item) => {
149
+ if (!config)
150
+ return;
151
+ const newConfig = {
152
+ ...config,
153
+ defaults: { ...config.defaults, runMode: item.value },
154
+ };
155
+ setConfig(newConfig);
156
+ saveConfig(newConfig);
157
+ setEditingField(null);
158
+ setSaved(true);
159
+ setTimeout(() => setSaved(false), 2000);
160
+ };
161
+ const handleSelectTheme = (item) => {
162
+ if (!config)
163
+ return;
164
+ const newConfig = {
165
+ ...config,
166
+ ui: { ...config.ui, theme: item.value },
167
+ };
168
+ setConfig(newConfig);
169
+ saveConfig(newConfig);
170
+ setActiveTheme(item.value);
171
+ setEditingField(null);
172
+ setSaved(true);
173
+ setTimeout(() => setSaved(false), 2000);
174
+ };
175
+ if (!config) {
176
+ return (_jsx(Box, { children: _jsx(Text, { children: "Loading settings..." }) }));
177
+ }
178
+ const getValue = (field) => {
179
+ switch (field) {
180
+ case 'claude_key':
181
+ return config.apiKeys.claude ? maskApiKey(config.apiKeys.claude) : 'Not set';
182
+ case 'codex_key':
183
+ return config.apiKeys.codex ? maskApiKey(config.apiKeys.codex) : 'Not set';
184
+ case 'gemini_key':
185
+ return config.apiKeys.gemini ? maskApiKey(config.apiKeys.gemini) : 'Not set';
186
+ case 'provider':
187
+ return PROVIDERS.find((p) => p.value === config.defaults.provider)?.label || config.defaults.provider;
188
+ case 'approval':
189
+ return APPROVAL_MODES.find((m) => m.value === config.defaults.approvalMode)?.label || config.defaults.approvalMode;
190
+ case 'run_mode':
191
+ return RUN_MODES.find((m) => m.value === config.defaults.runMode)?.label || config.defaults.runMode;
192
+ case 'theme': {
193
+ const active = config.ui.theme || 'default';
194
+ const themeLabel = themes.find((t) => t.id === active)?.name || active;
195
+ return themeLabel;
196
+ }
197
+ default:
198
+ return '';
199
+ }
200
+ };
201
+ let currentSection = '';
202
+ return (_jsxs(Box, { flexDirection: "column", borderStyle: "round", borderColor: theme.colors.panel.borderFocus, padding: 1, width: 60, children: [_jsxs(Box, { marginBottom: 1, justifyContent: "space-between", children: [_jsx(Text, { color: theme.colors.accent, bold: true, children: "Settings" }), saved && _jsx(Text, { color: theme.colors.success, children: "Saved!" })] }), _jsx(Box, { flexDirection: "column", children: rows.map((row, index) => {
203
+ const isSelected = index === selectedRow;
204
+ const showSection = row.section && row.section !== currentSection;
205
+ if (row.section)
206
+ currentSection = row.section;
207
+ return (_jsxs(Box, { flexDirection: "column", children: [showSection && (_jsx(Box, { marginTop: index > 0 ? 1 : 0, marginBottom: 1, children: _jsx(Text, { color: theme.colors.muted, bold: true, children: row.section }) })), _jsxs(Box, { children: [_jsxs(Text, { color: isSelected ? theme.colors.accent : theme.colors.text, bold: isSelected, children: [isSelected ? '▶ ' : ' ', row.label, ":", ' '] }), editingField === row.id ? (row.id === 'provider' ? (_jsx(SelectInput, { items: PROVIDERS, initialIndex: PROVIDERS.findIndex((p) => p.value === config.defaults.provider), onSelect: handleSelectProvider })) : row.id === 'approval' ? (_jsx(SelectInput, { items: APPROVAL_MODES, initialIndex: APPROVAL_MODES.findIndex((m) => m.value === config.defaults.approvalMode), onSelect: handleSelectApproval })) : row.id === 'run_mode' ? (_jsx(SelectInput, { items: RUN_MODES, initialIndex: RUN_MODES.findIndex((m) => m.value === config.defaults.runMode), onSelect: handleSelectRunMode })) : row.id === 'theme' ? (_jsx(SelectInput, { items: themes.map((t) => ({ label: t.name, value: t.id })), initialIndex: Math.max(0, themes.findIndex((t) => t.id === config.ui.theme)), onSelect: handleSelectTheme })) : (_jsx(TextInput, { value: editValue, onChange: setEditValue, onSubmit: (value) => handleSaveApiKey(row.id, value), placeholder: "Enter API key...", mask: "*" }))) : (_jsx(Text, { color: getValue(row.id) === 'Not set' ? theme.colors.muted : theme.colors.text, dimColor: getValue(row.id) === 'Not set', children: getValue(row.id) }))] })] }, row.id));
208
+ }) }), _jsxs(Box, { marginTop: 2, flexDirection: "column", children: [_jsx(Text, { color: theme.colors.muted, dimColor: true, children: "\u2191\u2193 Navigate \u2022 Enter to edit \u2022 D to delete \u2022 Esc to close" }), _jsx(Text, { color: theme.colors.muted, dimColor: true, children: "API keys are stored in ~/.arachne/config.json" })] })] }));
209
+ };
210
+ //# sourceMappingURL=Settings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Settings.js","sourceRoot":"","sources":["../../../src/tui/components/Settings.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAC1C,OAAO,SAAS,MAAM,gBAAgB,CAAC;AACvC,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EACL,UAAU,EACV,UAAU,EACV,UAAU,GAEX,MAAM,yBAAyB,CAAC;AASjC,MAAM,SAAS,GAAG;IAChB,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;IACpC,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,OAAO,EAAE;IAC3C,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;CACrC,CAAC;AAEF,MAAM,cAAc,GAAG;IACrB,EAAE,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAE,MAAM,EAAE;IAC9C,EAAE,KAAK,EAAE,gCAAgC,EAAE,KAAK,EAAE,WAAW,EAAE;IAC/D,EAAE,KAAK,EAAE,8BAA8B,EAAE,KAAK,EAAE,QAAQ,EAAE;CAC3D,CAAC;AAEF,MAAM,SAAS,GAAG;IAChB,EAAE,KAAK,EAAE,sBAAsB,EAAE,KAAK,EAAE,MAAM,EAAE;IAChD,EAAE,KAAK,EAAE,uBAAuB,EAAE,KAAK,EAAE,QAAQ,EAAE;CACpD,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,EAAE,OAAO,EAAiB,EAAE,EAAE;IACrD,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAuB,IAAI,CAAC,CAAC;IACjE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAsC,EAAE,CAAC,CAAC;IAC9E,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IACtE,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC/C,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAClD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE1C,MAAM,IAAI,GAA6D;QACrE,EAAE,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,UAAU,EAAE;QAClE,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,gBAAgB,EAAE;QAC5C,EAAE,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,gBAAgB,EAAE;QAC7C,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,UAAU,EAAE;QAClE,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,EAAE;QAC1C,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;QACrC,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE;KACtD,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;QACxB,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;IAC1B,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,QAAQ,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACtB,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;gBACf,eAAe,CAAC,IAAI,CAAC,CAAC;gBACtB,YAAY,CAAC,EAAE,CAAC,CAAC;YACnB,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf,OAAO,EAAE,CAAC;YACV,OAAO;QACT,CAAC;QAED,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YAChB,cAAc,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;QAClD,CAAC;aAAM,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;YACzB,cAAc,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;QAChE,CAAC;aAAM,IAAI,GAAG,CAAC,MAAM,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;YACvC,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;YAC9B,IAAI,GAAG,EAAE,CAAC;gBACR,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACxB,+CAA+C;gBAC/C,IAAI,GAAG,CAAC,EAAE,KAAK,YAAY;oBAAE,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;qBACnE,IAAI,GAAG,CAAC,EAAE,KAAK,WAAW;oBAAE,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;qBACtE,IAAI,GAAG,CAAC,EAAE,KAAK,YAAY;oBAAE,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;YAC/E,CAAC;QACH,CAAC;aAAM,IAAI,KAAK,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACvC,kCAAkC;YAClC,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;YAC9B,IAAI,GAAG,IAAI,MAAM,EAAE,CAAC;gBAClB,MAAM,SAAS,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;gBAChC,IAAI,GAAG,CAAC,EAAE,KAAK,YAAY;oBAAE,OAAO,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC;qBACxD,IAAI,GAAG,CAAC,EAAE,KAAK,WAAW;oBAAE,OAAO,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC;qBAC3D,IAAI,GAAG,CAAC,EAAE,KAAK,YAAY;oBAAE,OAAO,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC;gBAClE,SAAS,CAAC,SAAS,CAAC,CAAC;gBACrB,UAAU,CAAC,SAAS,CAAC,CAAC;gBACtB,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACf,UAAU,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,gBAAgB,GAAG,CAAC,KAAoB,EAAE,KAAa,EAAE,EAAE;QAC/D,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,MAAM,SAAS,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;QAEhC,IAAI,KAAK,KAAK,YAAY,EAAE,CAAC;YAC3B,IAAI,KAAK;gBAAE,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC;;gBACvC,OAAO,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC;QACvC,CAAC;aAAM,IAAI,KAAK,KAAK,WAAW,EAAE,CAAC;YACjC,IAAI,KAAK;gBAAE,SAAS,CAAC,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;;gBACtC,OAAO,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC;QACtC,CAAC;aAAM,IAAI,KAAK,KAAK,YAAY,EAAE,CAAC;YAClC,IAAI,KAAK;gBAAE,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC;;gBACvC,OAAO,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC;QACvC,CAAC;QAED,SAAS,CAAC,SAAS,CAAC,CAAC;QACrB,UAAU,CAAC,SAAS,CAAC,CAAC;QACtB,eAAe,CAAC,IAAI,CAAC,CAAC;QACtB,YAAY,CAAC,EAAE,CAAC,CAAC;QACjB,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,UAAU,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;IAC1C,CAAC,CAAC;IAEF,MAAM,oBAAoB,GAAG,CAAC,IAAuB,EAAE,EAAE;QACvD,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,MAAM,SAAS,GAAG;YAChB,GAAG,MAAM;YACT,QAAQ,EAAE,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAqB,EAAE;SACvE,CAAC;QACF,SAAS,CAAC,SAAS,CAAC,CAAC;QACrB,UAAU,CAAC,SAAS,CAAC,CAAC;QACtB,eAAe,CAAC,IAAI,CAAC,CAAC;QACtB,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,UAAU,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;IAC1C,CAAC,CAAC;IAEF,MAAM,oBAAoB,GAAG,CAAC,IAAuB,EAAE,EAAE;QACvD,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,MAAM,SAAS,GAAG;YAChB,GAAG,MAAM;YACT,QAAQ,EAAE,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,CAAC,KAAqB,EAAE;SAC3E,CAAC;QACF,SAAS,CAAC,SAAS,CAAC,CAAC;QACrB,UAAU,CAAC,SAAS,CAAC,CAAC;QACtB,eAAe,CAAC,IAAI,CAAC,CAAC;QACtB,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,UAAU,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;IAC1C,CAAC,CAAC;IAEF,MAAM,mBAAmB,GAAG,CAAC,IAAuB,EAAE,EAAE;QACtD,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,MAAM,SAAS,GAAG;YAChB,GAAG,MAAM;YACT,QAAQ,EAAE,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,KAAgB,EAAE;SACjE,CAAC;QACF,SAAS,CAAC,SAAS,CAAC,CAAC;QACrB,UAAU,CAAC,SAAS,CAAC,CAAC;QACtB,eAAe,CAAC,IAAI,CAAC,CAAC;QACtB,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,UAAU,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;IAC1C,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,CAAC,IAAuB,EAAE,EAAE;QACpD,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,MAAM,SAAS,GAAG;YAChB,GAAG,MAAM;YACT,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;SACxC,CAAC;QACF,SAAS,CAAC,SAAS,CAAC,CAAC;QACrB,UAAU,CAAC,SAAS,CAAC,CAAC;QACtB,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3B,eAAe,CAAC,IAAI,CAAC,CAAC;QACtB,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,UAAU,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;IAC1C,CAAC,CAAC;IAEF,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CACL,KAAC,GAAG,cACF,KAAC,IAAI,sCAA2B,GAC5B,CACP,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,CAAC,KAAoB,EAAU,EAAE;QAChD,QAAQ,KAAK,EAAE,CAAC;YACd,KAAK,YAAY;gBACf,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC/E,KAAK,WAAW;gBACd,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC7E,KAAK,YAAY;gBACf,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC/E,KAAK,UAAU;gBACb,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACxG,KAAK,UAAU;gBACb,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,KAAK,IAAI,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC;YACrH,KAAK,UAAU;gBACb,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;YACtG,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,MAAM,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC,KAAK,IAAI,SAAS,CAAC;gBAC5C,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,IAAI,IAAI,MAAM,CAAC;gBACvE,OAAO,UAAU,CAAC;YACpB,CAAC;YACD;gBACE,OAAO,EAAE,CAAC;QACd,CAAC;IACH,CAAC,CAAC;IAEF,IAAI,cAAc,GAAG,EAAE,CAAC;IAExB,OAAO,CACL,MAAC,GAAG,IACF,aAAa,EAAC,QAAQ,EACtB,WAAW,EAAC,OAAO,EACnB,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,EAC3C,OAAO,EAAE,CAAC,EACV,KAAK,EAAE,EAAE,aAET,MAAC,GAAG,IAAC,YAAY,EAAE,CAAC,EAAE,cAAc,EAAC,eAAe,aAClD,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,+BAE/B,EACN,KAAK,IAAI,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,uBAAe,IACtD,EAEN,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,YACxB,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;oBACvB,MAAM,UAAU,GAAG,KAAK,KAAK,WAAW,CAAC;oBACzC,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,OAAO,KAAK,cAAc,CAAC;oBAClE,IAAI,GAAG,CAAC,OAAO;wBAAE,cAAc,GAAG,GAAG,CAAC,OAAO,CAAC;oBAE9C,OAAO,CACL,MAAC,GAAG,IAAc,aAAa,EAAC,QAAQ,aACrC,WAAW,IAAI,CACd,KAAC,GAAG,IAAC,SAAS,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,YAChD,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,kBAClC,GAAG,CAAC,OAAO,GACP,GACH,CACP,EACD,MAAC,GAAG,eACF,MAAC,IAAI,IAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,aAChF,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EACxB,GAAG,CAAC,KAAK,OAAG,GAAG,IACX,EACN,YAAY,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CACzB,GAAG,CAAC,EAAE,KAAK,UAAU,CAAC,CAAC,CAAC,CACtB,KAAC,WAAW,IACV,KAAK,EAAE,SAAS,EAChB,YAAY,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAC9E,QAAQ,EAAE,oBAAoB,GAC9B,CACH,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,UAAU,CAAC,CAAC,CAAC,CAC1B,KAAC,WAAW,IACV,KAAK,EAAE,cAAc,EACrB,YAAY,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,EACvF,QAAQ,EAAE,oBAAoB,GAC9B,CACH,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,UAAU,CAAC,CAAC,CAAC,CAC1B,KAAC,WAAW,IACV,KAAK,EAAE,SAAS,EAChB,YAAY,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAC7E,QAAQ,EAAE,mBAAmB,GAC7B,CACH,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,CACvB,KAAC,WAAW,IACV,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAC1D,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAC5E,QAAQ,EAAE,iBAAiB,GAC3B,CACH,CAAC,CAAC,CAAC,CACF,KAAC,SAAS,IACR,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,EACpD,WAAW,EAAC,kBAAkB,EAC9B,IAAI,EAAC,GAAG,GACR,CACH,CACF,CAAC,CAAC,CAAC,CACF,KAAC,IAAI,IACH,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAC9E,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,SAAS,YAEvC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,GACZ,CACR,IACG,KAvDE,GAAG,CAAC,EAAE,CAwDV,CACP,CAAC;gBACJ,CAAC,CAAC,GACE,EAEN,MAAC,GAAG,IAAC,SAAS,EAAE,CAAC,EAAE,aAAa,EAAC,QAAQ,aACvC,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,wGAElC,EACP,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,oEAElC,IACH,IACF,CACP,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { WorkflowFile, Provider, RunHistoryItem } from '../types.js';
2
+ interface SidebarProps {
3
+ workflows: WorkflowFile[];
4
+ selectedIndex: number;
5
+ providers: Provider[];
6
+ history: RunHistoryItem[];
7
+ loading?: boolean;
8
+ focused?: boolean;
9
+ }
10
+ export declare const Sidebar: ({ workflows, selectedIndex, providers, history, loading, focused, }: SidebarProps) => import("react/jsx-runtime").JSX.Element;
11
+ export {};
12
+ //# sourceMappingURL=Sidebar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Sidebar.d.ts","sourceRoot":"","sources":["../../../src/tui/components/Sidebar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAG1E,UAAU,YAAY;IACpB,SAAS,EAAE,YAAY,EAAE,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,eAAO,MAAM,OAAO,GAAI,qEAOrB,YAAY,4CAuEd,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box, Text } from 'ink';
3
+ import Spinner from 'ink-spinner';
4
+ import { Section } from './Box.js';
5
+ export const Sidebar = ({ workflows, selectedIndex, providers, history, loading = false, focused = true, }) => {
6
+ const borderColor = focused ? 'cyan' : 'gray';
7
+ return (_jsxs(Box, { flexDirection: "column", width: 24, borderStyle: "round", borderColor: borderColor, paddingX: 1, children: [_jsx(Section, { title: "WORKFLOWS", children: loading ? (_jsxs(Box, { children: [_jsx(Spinner, { type: "dots" }), _jsx(Text, { color: "gray", children: " Loading..." })] })) : workflows.length === 0 ? (_jsx(Text, { color: "gray", dimColor: true, children: "No workflows found" })) : (workflows.slice(0, 8).map((file, index) => (_jsxs(Text, { color: index === selectedIndex ? 'cyan' : 'white', bold: index === selectedIndex, children: [index === selectedIndex ? '▶ ' : ' ', file.name.length > 18 ? file.name.slice(0, 15) + '...' : file.name] }, file.path)))) }), _jsx(Section, { title: "HISTORY", children: history.length === 0 ? (_jsx(Text, { color: "gray", dimColor: true, children: "No runs yet" })) : (history.slice(0, 5).map((run) => (_jsxs(Box, { children: [_jsx(Text, { color: run.status === 'success' ? 'green' : run.status === 'failed' ? 'red' : 'yellow', children: run.status === 'success' ? '✓ ' : run.status === 'failed' ? '✗ ' : '⟳ ' }), _jsx(Text, { color: "gray", children: run.workflowPath.split('/').pop()?.slice(0, 12) || 'unknown' })] }, run.id)))) }), _jsx(Section, { title: "PROVIDERS", children: providers.map((provider) => (_jsxs(Box, { children: [_jsx(Text, { color: provider.available ? 'green' : 'red', children: provider.available ? '● ' : '○ ' }), _jsx(Text, { color: provider.available ? 'white' : 'gray', children: provider.name })] }, provider.name))) })] }));
8
+ };
9
+ //# sourceMappingURL=Sidebar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Sidebar.js","sourceRoot":"","sources":["../../../src/tui/components/Sidebar.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ interface SplashProps {
2
+ userName: string;
3
+ onComplete: () => void;
4
+ }
5
+ export declare const Splash: ({ userName, onComplete }: SplashProps) => import("react/jsx-runtime").JSX.Element;
6
+ export {};
7
+ //# sourceMappingURL=Splash.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Splash.d.ts","sourceRoot":"","sources":["../../../src/tui/components/Splash.tsx"],"names":[],"mappings":"AAwBA,UAAU,WAAW;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,eAAO,MAAM,MAAM,GAAI,0BAA0B,WAAW,4CA0G3D,CAAC"}
@@ -0,0 +1,56 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState, useEffect } from 'react';
3
+ import { Box, Text, useInput } from 'ink';
4
+ // Title lines for animation
5
+ const TITLE_LINES = [
6
+ ' ██████╗ ██████╗ ██████╗ ██╗███████╗ ██████╗████████╗',
7
+ ' ██╔══██╗██╔══██╗██╔═══██╗ ██║██╔════╝██╔════╝╚══██╔══╝',
8
+ ' ██████╔╝██████╔╝██║ ██║ ██║█████╗ ██║ ██║ ',
9
+ ' ██╔═══╝ ██╔══██╗██║ ██║██ ██║██╔══╝ ██║ ██║ ',
10
+ ' ██║ ██║ ██║╚██████╔╝╚█████╔╝███████╗╚██████╗ ██║ ',
11
+ ' ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚════╝ ╚══════╝ ╚═════╝ ╚═╝ ',
12
+ '',
13
+ ' █████╗ ██████╗ █████╗ ██████╗██╗ ██╗███╗ ██╗███████╗',
14
+ ' ██╔══██╗██╔══██╗██╔══██╗██╔════╝██║ ██║████╗ ██║██╔════╝',
15
+ ' ███████║██████╔╝███████║██║ ███████║██╔██╗ ██║█████╗ ',
16
+ ' ██╔══██║██╔══██╗██╔══██║██║ ██╔══██║██║╚██╗██║██╔══╝ ',
17
+ ' ██║ ██║██║ ██║██║ ██║╚██████╗██║ ██║██║ ╚████║███████╗',
18
+ ' ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝╚═╝ ╚═══╝╚══════╝',
19
+ ];
20
+ // Spider web decoration (subtle, corners only)
21
+ const WEB_TOP = ' ╲ ╱';
22
+ const WEB_STRAND = ' ╲ ╱';
23
+ export const Splash = ({ userName, onComplete }) => {
24
+ const [visibleLines, setVisibleLines] = useState(0);
25
+ const [showExtras, setShowExtras] = useState(false);
26
+ const [ready, setReady] = useState(false);
27
+ // Handle any key press to continue
28
+ useInput(() => {
29
+ if (ready) {
30
+ onComplete();
31
+ }
32
+ });
33
+ useEffect(() => {
34
+ const timers = [];
35
+ // Reveal title lines one by one (80ms per line for snappy feel)
36
+ TITLE_LINES.forEach((_, index) => {
37
+ timers.push(setTimeout(() => {
38
+ setVisibleLines(index + 1);
39
+ }, 100 + index * 80));
40
+ });
41
+ // Show extras after title is complete
42
+ const titleDuration = 100 + TITLE_LINES.length * 80;
43
+ timers.push(setTimeout(() => {
44
+ setShowExtras(true);
45
+ }, titleDuration + 200));
46
+ // Ready for input after a brief pause
47
+ timers.push(setTimeout(() => {
48
+ setReady(true);
49
+ }, titleDuration + 500));
50
+ return () => {
51
+ timers.forEach(clearTimeout);
52
+ };
53
+ }, []);
54
+ return (_jsxs(Box, { flexDirection: "column", alignItems: "center", justifyContent: "center", width: "100%", paddingY: 2, children: [visibleLines > 0 && (_jsxs(Box, { flexDirection: "column", alignItems: "center", marginBottom: 1, children: [_jsx(Text, { color: "gray", dimColor: true, children: WEB_TOP }), _jsx(Text, { color: "gray", dimColor: true, children: WEB_STRAND })] })), _jsx(Box, { flexDirection: "column", alignItems: "center", children: TITLE_LINES.slice(0, visibleLines).map((line, index) => (_jsx(Text, { color: "cyan", bold: true, children: line }, index))) }), visibleLines >= TITLE_LINES.length && (_jsxs(Box, { flexDirection: "column", alignItems: "center", marginTop: 1, children: [_jsx(Text, { color: "gray", dimColor: true, children: WEB_STRAND }), _jsx(Text, { color: "gray", dimColor: true, children: WEB_TOP })] })), showExtras && (_jsx(Box, { marginY: 1, children: _jsx(Text, { color: "gray", children: "\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550" }) })), showExtras && (_jsxs(Box, { flexDirection: "column", alignItems: "center", children: [_jsxs(Box, { marginBottom: 1, children: [_jsx(Text, { color: "white", children: "Welcome, " }), _jsx(Text, { color: "cyan", bold: true, children: userName })] }), _jsx(Text, { color: "gray", children: "AI-Powered Workflow Automation" })] })), ready && (_jsx(Box, { marginTop: 2, children: _jsxs(Text, { color: "cyan", children: ['>', " Press any key to continue ", '<'] }) })), showExtras && (_jsx(Box, { marginTop: 3, children: _jsx(Text, { color: "gray", dimColor: true, children: "v0.1.0" }) }))] }));
55
+ };
56
+ //# sourceMappingURL=Splash.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Splash.js","sourceRoot":"","sources":["../../../src/tui/components/Splash.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { Step, Provider, ProviderName } from '../types.js';
2
+ interface StepEditorProps {
3
+ step: Step;
4
+ providers: Provider[];
5
+ editing: 'prompt' | 'provider' | 'model' | null;
6
+ onPromptChange: (value: string) => void;
7
+ onProviderSelect: (provider: ProviderName) => void;
8
+ onModelSelect?: (model: string) => void;
9
+ onEditingChange?: (editing: 'prompt' | 'provider' | 'model' | null) => void;
10
+ }
11
+ export declare const StepEditor: ({ step, providers, editing, onPromptChange, onProviderSelect, onModelSelect, onEditingChange, }: StepEditorProps) => import("react/jsx-runtime").JSX.Element;
12
+ export {};
13
+ //# sourceMappingURL=StepEditor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StepEditor.d.ts","sourceRoot":"","sources":["../../../src/tui/components/StepEditor.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhE,UAAU,eAAe;IACvB,IAAI,EAAE,IAAI,CAAC;IACX,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,OAAO,EAAE,QAAQ,GAAG,UAAU,GAAG,OAAO,GAAG,IAAI,CAAC;IAChD,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,gBAAgB,EAAE,CAAC,QAAQ,EAAE,YAAY,KAAK,IAAI,CAAC;IACnD,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,GAAG,UAAU,GAAG,OAAO,GAAG,IAAI,KAAK,IAAI,CAAC;CAC7E;AAED,eAAO,MAAM,UAAU,GAAI,iGAQxB,eAAe,4CA6IjB,CAAC"}