@ranker/raxflow 0.2.2 → 0.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/benchmark.d.ts +10 -0
- package/dist/benchmark.d.ts.map +1 -0
- package/dist/benchmark.js +123 -0
- package/dist/benchmark.js.map +1 -0
- package/dist/bin.d.ts +3 -0
- package/dist/bin.d.ts.map +1 -0
- package/dist/bin.js +141 -0
- package/dist/bin.js.map +1 -0
- package/dist/bootstrap.d.ts +8 -0
- package/dist/bootstrap.d.ts.map +1 -0
- package/dist/bootstrap.js +22 -0
- package/dist/bootstrap.js.map +1 -0
- package/dist/bridge-adapter-templates.d.ts +4 -0
- package/dist/bridge-adapter-templates.d.ts.map +1 -0
- package/dist/bridge-adapter-templates.js +185 -0
- package/dist/bridge-adapter-templates.js.map +1 -0
- package/dist/bridge-test.d.ts +7 -0
- package/dist/bridge-test.d.ts.map +1 -0
- package/dist/bridge-test.js +89 -0
- package/dist/bridge-test.js.map +1 -0
- package/dist/dashboard.d.ts +4 -0
- package/dist/dashboard.d.ts.map +1 -0
- package/{src/dashboard.ts → dist/dashboard.js} +8 -10
- package/dist/dashboard.js.map +1 -0
- package/dist/doctor.d.ts +6 -0
- package/dist/doctor.d.ts.map +1 -0
- package/dist/doctor.js +70 -0
- package/dist/doctor.js.map +1 -0
- package/dist/evolve.d.ts +7 -0
- package/dist/evolve.d.ts.map +1 -0
- package/{src/evolve.ts → dist/evolve.js} +7 -33
- package/dist/evolve.js.map +1 -0
- package/dist/host-init-templates.d.ts +16 -0
- package/dist/host-init-templates.d.ts.map +1 -0
- package/dist/host-init-templates.js +119 -0
- package/dist/host-init-templates.js.map +1 -0
- package/dist/hub/__tests__/commands.test.d.ts +2 -0
- package/dist/hub/__tests__/commands.test.d.ts.map +1 -0
- package/dist/hub/__tests__/commands.test.js +72 -0
- package/dist/hub/__tests__/commands.test.js.map +1 -0
- package/dist/hub/__tests__/history.test.d.ts +2 -0
- package/dist/hub/__tests__/history.test.d.ts.map +1 -0
- package/dist/hub/__tests__/history.test.js +119 -0
- package/dist/hub/__tests__/history.test.js.map +1 -0
- package/dist/hub/__tests__/parser.test.d.ts +2 -0
- package/dist/hub/__tests__/parser.test.d.ts.map +1 -0
- package/dist/hub/__tests__/parser.test.js +92 -0
- package/dist/hub/__tests__/parser.test.js.map +1 -0
- package/dist/hub/commands/agents.d.ts +3 -0
- package/dist/hub/commands/agents.d.ts.map +1 -0
- package/dist/hub/commands/agents.js +36 -0
- package/dist/hub/commands/agents.js.map +1 -0
- package/dist/hub/commands/index.d.ts +4 -0
- package/dist/hub/commands/index.d.ts.map +1 -0
- package/dist/hub/commands/index.js +123 -0
- package/dist/hub/commands/index.js.map +1 -0
- package/dist/hub/commands/logs.d.ts +3 -0
- package/dist/hub/commands/logs.d.ts.map +1 -0
- package/dist/hub/commands/logs.js +53 -0
- package/dist/hub/commands/logs.js.map +1 -0
- package/dist/hub/commands/memory.d.ts +3 -0
- package/dist/hub/commands/memory.d.ts.map +1 -0
- package/dist/hub/commands/memory.js +40 -0
- package/dist/hub/commands/memory.js.map +1 -0
- package/dist/hub/commands/metrics.d.ts +3 -0
- package/dist/hub/commands/metrics.d.ts.map +1 -0
- package/dist/hub/commands/metrics.js +35 -0
- package/dist/hub/commands/metrics.js.map +1 -0
- package/dist/hub/commands/providers.d.ts +3 -0
- package/dist/hub/commands/providers.d.ts.map +1 -0
- package/dist/hub/commands/providers.js +26 -0
- package/dist/hub/commands/providers.js.map +1 -0
- package/dist/hub/commands/run.d.ts +3 -0
- package/dist/hub/commands/run.d.ts.map +1 -0
- package/dist/hub/commands/run.js +31 -0
- package/dist/hub/commands/run.js.map +1 -0
- package/dist/hub/commands/status.d.ts +3 -0
- package/dist/hub/commands/status.d.ts.map +1 -0
- package/dist/hub/commands/status.js +61 -0
- package/dist/hub/commands/status.js.map +1 -0
- package/dist/hub/commands/workflows.d.ts +3 -0
- package/dist/hub/commands/workflows.d.ts.map +1 -0
- package/dist/hub/commands/workflows.js +45 -0
- package/dist/hub/commands/workflows.js.map +1 -0
- package/dist/hub/config-loader.d.ts +4 -0
- package/dist/hub/config-loader.d.ts.map +1 -0
- package/dist/hub/config-loader.js +27 -0
- package/dist/hub/config-loader.js.map +1 -0
- package/dist/hub/event-listener.d.ts +6 -0
- package/dist/hub/event-listener.d.ts.map +1 -0
- package/dist/hub/event-listener.js +12 -0
- package/dist/hub/event-listener.js.map +1 -0
- package/dist/hub/history.d.ts +13 -0
- package/dist/hub/history.d.ts.map +1 -0
- package/dist/hub/history.js +59 -0
- package/dist/hub/history.js.map +1 -0
- package/dist/hub/index.d.ts +4 -0
- package/dist/hub/index.d.ts.map +1 -0
- package/dist/hub/index.js +114 -0
- package/dist/hub/index.js.map +1 -0
- package/dist/hub/parser.d.ts +4 -0
- package/dist/hub/parser.d.ts.map +1 -0
- package/dist/hub/parser.js +98 -0
- package/dist/hub/parser.js.map +1 -0
- package/dist/hub/styles/borders.d.ts +23 -0
- package/dist/hub/styles/borders.d.ts.map +1 -0
- package/dist/hub/styles/borders.js +64 -0
- package/dist/hub/styles/borders.js.map +1 -0
- package/dist/hub/styles/colors.d.ts +63 -0
- package/dist/hub/styles/colors.d.ts.map +1 -0
- package/dist/hub/styles/colors.js +115 -0
- package/dist/hub/styles/colors.js.map +1 -0
- package/dist/hub/styles/typography.d.ts +34 -0
- package/dist/hub/styles/typography.d.ts.map +1 -0
- package/dist/hub/styles/typography.js +60 -0
- package/dist/hub/styles/typography.js.map +1 -0
- package/dist/hub/types.d.ts +27 -0
- package/dist/hub/types.d.ts.map +1 -0
- package/dist/hub/types.js +2 -0
- package/dist/hub/types.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/{src/index.ts → dist/index.js} +1 -0
- package/dist/index.js.map +1 -0
- package/dist/init-host.d.ts +10 -0
- package/dist/init-host.d.ts.map +1 -0
- package/dist/init-host.js +232 -0
- package/dist/init-host.js.map +1 -0
- package/dist/install.d.ts +8 -0
- package/dist/install.d.ts.map +1 -0
- package/dist/install.js +99 -0
- package/dist/install.js.map +1 -0
- package/dist/run.d.ts +16 -0
- package/dist/run.d.ts.map +1 -0
- package/dist/run.js +238 -0
- package/dist/run.js.map +1 -0
- package/dist/setup/components/ApiKeyInput.d.ts +25 -0
- package/dist/setup/components/ApiKeyInput.d.ts.map +1 -0
- package/dist/setup/components/ApiKeyInput.js +54 -0
- package/dist/setup/components/ApiKeyInput.js.map +1 -0
- package/dist/setup/components/AsciiBanner.d.ts +22 -0
- package/dist/setup/components/AsciiBanner.d.ts.map +1 -0
- package/{src/setup/components/AsciiBanner.tsx → dist/setup/components/AsciiBanner.js} +24 -94
- package/dist/setup/components/AsciiBanner.js.map +1 -0
- package/dist/setup/components/CliDetector.d.ts +17 -0
- package/dist/setup/components/CliDetector.d.ts.map +1 -0
- package/dist/setup/components/CliDetector.js +79 -0
- package/dist/setup/components/CliDetector.js.map +1 -0
- package/dist/setup/components/ModeSelector.d.ts +8 -0
- package/dist/setup/components/ModeSelector.d.ts.map +1 -0
- package/dist/setup/components/ModeSelector.js +76 -0
- package/dist/setup/components/ModeSelector.js.map +1 -0
- package/dist/setup/components/ProviderSelector.d.ts +18 -0
- package/dist/setup/components/ProviderSelector.d.ts.map +1 -0
- package/dist/setup/components/ProviderSelector.js +98 -0
- package/dist/setup/components/ProviderSelector.js.map +1 -0
- package/dist/setup/components/SetupWizard.d.ts +2 -0
- package/dist/setup/components/SetupWizard.d.ts.map +1 -0
- package/dist/setup/components/SetupWizard.js +212 -0
- package/dist/setup/components/SetupWizard.js.map +1 -0
- package/dist/setup/components/StepIndicator.d.ts +13 -0
- package/dist/setup/components/StepIndicator.d.ts.map +1 -0
- package/dist/setup/components/StepIndicator.js +18 -0
- package/dist/setup/components/StepIndicator.js.map +1 -0
- package/dist/setup/components/SuccessScreen.d.ts +18 -0
- package/dist/setup/components/SuccessScreen.d.ts.map +1 -0
- package/dist/setup/components/SuccessScreen.js +38 -0
- package/dist/setup/components/SuccessScreen.js.map +1 -0
- package/dist/setup/index.d.ts +12 -0
- package/dist/setup/index.d.ts.map +1 -0
- package/{src/setup/index.ts → dist/setup/index.js} +14 -19
- package/dist/setup/index.js.map +1 -0
- package/dist/setup/utils/cli-detection.d.ts +12 -0
- package/dist/setup/utils/cli-detection.d.ts.map +1 -0
- package/dist/setup/utils/cli-detection.js +83 -0
- package/dist/setup/utils/cli-detection.js.map +1 -0
- package/dist/setup/utils/config-writer.d.ts +43 -0
- package/dist/setup/utils/config-writer.d.ts.map +1 -0
- package/dist/setup/utils/config-writer.js +180 -0
- package/dist/setup/utils/config-writer.js.map +1 -0
- package/dist/styles.d.ts +12 -0
- package/dist/styles.d.ts.map +1 -0
- package/dist/styles.js +12 -0
- package/dist/styles.js.map +1 -0
- package/dist/tui/App.d.ts +3 -0
- package/dist/tui/App.d.ts.map +1 -0
- package/dist/tui/App.js +136 -0
- package/dist/tui/App.js.map +1 -0
- package/dist/tui/components/AgentStateIcon.d.ts +18 -0
- package/dist/tui/components/AgentStateIcon.d.ts.map +1 -0
- package/dist/tui/components/AgentStateIcon.js +57 -0
- package/dist/tui/components/AgentStateIcon.js.map +1 -0
- package/dist/tui/components/AnimatedBranch.d.ts +39 -0
- package/dist/tui/components/AnimatedBranch.d.ts.map +1 -0
- package/dist/tui/components/AnimatedBranch.js +64 -0
- package/dist/tui/components/AnimatedBranch.js.map +1 -0
- package/dist/tui/components/ChatPanel.d.ts +17 -0
- package/dist/tui/components/ChatPanel.d.ts.map +1 -0
- package/dist/tui/components/ChatPanel.js +51 -0
- package/dist/tui/components/ChatPanel.js.map +1 -0
- package/dist/tui/components/DAGPanel.d.ts +37 -0
- package/dist/tui/components/DAGPanel.d.ts.map +1 -0
- package/dist/tui/components/DAGPanel.js +52 -0
- package/dist/tui/components/DAGPanel.js.map +1 -0
- package/dist/tui/components/ExecutionTimeline.d.ts +34 -0
- package/dist/tui/components/ExecutionTimeline.d.ts.map +1 -0
- package/dist/tui/components/ExecutionTimeline.js +67 -0
- package/dist/tui/components/ExecutionTimeline.js.map +1 -0
- package/dist/tui/components/Header.d.ts +12 -0
- package/dist/tui/components/Header.d.ts.map +1 -0
- package/dist/tui/components/Header.js +32 -0
- package/dist/tui/components/Header.js.map +1 -0
- package/dist/tui/components/HelpOverlay.d.ts +7 -0
- package/dist/tui/components/HelpOverlay.d.ts.map +1 -0
- package/dist/tui/components/HelpOverlay.js +60 -0
- package/dist/tui/components/HelpOverlay.js.map +1 -0
- package/dist/tui/components/InputBar.d.ts +10 -0
- package/dist/tui/components/InputBar.d.ts.map +1 -0
- package/dist/tui/components/InputBar.js +21 -0
- package/dist/tui/components/InputBar.js.map +1 -0
- package/dist/tui/components/LogsPanel.d.ts +10 -0
- package/dist/tui/components/MemoryPanel.d.ts +22 -0
- package/dist/tui/components/MetricsPanel.d.ts +19 -0
- package/dist/tui/components/StatusPanel.d.ts +24 -0
- package/dist/tui/components/TaskTree.d.ts +28 -0
- package/dist/tui/components/TaskTree.d.ts.map +1 -0
- package/dist/tui/components/TaskTree.js +29 -0
- package/dist/tui/components/TaskTree.js.map +1 -0
- package/dist/tui/components/animations/ProgressBar.d.ts +39 -0
- package/dist/tui/components/animations/ProgressBar.d.ts.map +1 -0
- package/dist/tui/components/animations/ProgressBar.js +39 -0
- package/dist/tui/components/animations/ProgressBar.js.map +1 -0
- package/dist/tui/components/animations/Pulse.d.ts +17 -0
- package/dist/tui/components/animations/Pulse.d.ts.map +1 -0
- package/dist/tui/components/animations/Pulse.js +47 -0
- package/dist/tui/components/animations/Pulse.js.map +1 -0
- package/dist/tui/components/animations/Spinner.d.ts +13 -0
- package/dist/tui/components/animations/Spinner.d.ts.map +1 -0
- package/dist/tui/components/animations/Spinner.js +36 -0
- package/dist/tui/components/animations/Spinner.js.map +1 -0
- package/dist/tui/components/animations/StatusAnimator.d.ts +27 -0
- package/dist/tui/components/animations/StatusAnimator.d.ts.map +1 -0
- package/dist/tui/components/animations/StatusAnimator.js +85 -0
- package/dist/tui/components/animations/StatusAnimator.js.map +1 -0
- package/dist/tui/components/animations/TypingEffect.d.ts +26 -0
- package/dist/tui/components/animations/TypingEffect.d.ts.map +1 -0
- package/dist/tui/components/animations/TypingEffect.js +59 -0
- package/dist/tui/components/animations/TypingEffect.js.map +1 -0
- package/{src/tui/components/animations/index.ts → dist/tui/components/animations/index.d.ts} +2 -10
- package/dist/tui/components/animations/index.d.ts.map +1 -0
- package/dist/tui/components/animations/index.js +6 -0
- package/dist/tui/components/animations/index.js.map +1 -0
- package/dist/tui/hooks/useAnimation.d.ts +42 -0
- package/dist/tui/hooks/useAnimation.d.ts.map +1 -0
- package/dist/tui/hooks/useAnimation.js +212 -0
- package/dist/tui/hooks/useAnimation.js.map +1 -0
- package/dist/tui/hooks/useAppState.d.ts +65 -0
- package/dist/tui/hooks/useAppState.d.ts.map +1 -0
- package/dist/tui/hooks/useAppState.js +293 -0
- package/dist/tui/hooks/useAppState.js.map +1 -0
- package/dist/tui/index.d.ts +3 -0
- package/dist/tui/index.d.ts.map +1 -0
- package/{src/tui/index.ts → dist/tui/index.js} +2 -3
- package/dist/tui/index.js.map +1 -0
- package/dist/tui/services/orchestrator.d.ts +16 -0
- package/dist/tui/services/orchestrator.d.ts.map +1 -0
- package/dist/tui/services/orchestrator.js +152 -0
- package/dist/tui/services/orchestrator.js.map +1 -0
- package/dist/tui/styles/borders.d.ts +31 -0
- package/dist/tui/styles/borders.d.ts.map +1 -0
- package/dist/tui/styles/borders.js +47 -0
- package/dist/tui/styles/borders.js.map +1 -0
- package/dist/tui/styles/colors.d.ts +18 -0
- package/dist/tui/styles/colors.d.ts.map +1 -0
- package/dist/tui/styles/colors.js +18 -0
- package/dist/tui/styles/colors.js.map +1 -0
- package/dist/tui/styles/index.d.ts +6 -0
- package/dist/tui/styles/index.d.ts.map +1 -0
- package/dist/tui/styles/index.js +6 -0
- package/dist/tui/styles/index.js.map +1 -0
- package/dist/tui/styles/indicators.d.ts +67 -0
- package/dist/tui/styles/indicators.d.ts.map +1 -0
- package/dist/tui/styles/indicators.js +42 -0
- package/dist/tui/styles/indicators.js.map +1 -0
- package/dist/tui/styles/layout.d.ts +21 -0
- package/dist/tui/styles/layout.d.ts.map +1 -0
- package/dist/tui/styles/layout.js +42 -0
- package/dist/tui/styles/layout.js.map +1 -0
- package/dist/tui/styles/providers.d.ts +77 -0
- package/dist/tui/styles/providers.d.ts.map +1 -0
- package/dist/tui/styles/providers.js +31 -0
- package/dist/tui/styles/providers.js.map +1 -0
- package/dist/tui/utils/animation.d.ts +44 -0
- package/dist/tui/utils/animation.d.ts.map +1 -0
- package/dist/tui/utils/animation.js +107 -0
- package/dist/tui/utils/animation.js.map +1 -0
- package/dist/vendor-manifests.d.ts +22 -0
- package/dist/vendor-manifests.d.ts.map +1 -0
- package/dist/vendor-manifests.js +94 -0
- package/dist/vendor-manifests.js.map +1 -0
- package/dist/ws-relay.d.ts +12 -0
- package/dist/ws-relay.d.ts.map +1 -0
- package/{src/ws-relay.ts → dist/ws-relay.js} +39 -47
- package/dist/ws-relay.js.map +1 -0
- package/package.json +5 -1
- package/dashboard/index.html +0 -420
- package/src/benchmark.ts +0 -156
- package/src/bin.ts +0 -156
- package/src/bootstrap.ts +0 -36
- package/src/bridge-adapter-templates.ts +0 -181
- package/src/bridge-test.ts +0 -107
- package/src/doctor.ts +0 -92
- package/src/host-init-templates.ts +0 -134
- package/src/hub/__tests__/commands.test.ts +0 -84
- package/src/hub/__tests__/history.test.ts +0 -137
- package/src/hub/__tests__/parser.test.ts +0 -105
- package/src/hub/commands/agents.ts +0 -53
- package/src/hub/commands/index.ts +0 -140
- package/src/hub/commands/logs.ts +0 -70
- package/src/hub/commands/memory.ts +0 -47
- package/src/hub/commands/metrics.ts +0 -49
- package/src/hub/commands/providers.ts +0 -39
- package/src/hub/commands/run.ts +0 -37
- package/src/hub/commands/status.ts +0 -69
- package/src/hub/commands/workflows.ts +0 -64
- package/src/hub/config-loader.ts +0 -37
- package/src/hub/event-listener.ts +0 -17
- package/src/hub/history.ts +0 -66
- package/src/hub/index.ts +0 -132
- package/src/hub/parser.ts +0 -107
- package/src/hub/styles/borders.ts +0 -74
- package/src/hub/styles/colors.ts +0 -129
- package/src/hub/styles/typography.ts +0 -68
- package/src/hub/types.ts +0 -31
- package/src/init-host.ts +0 -285
- package/src/install.ts +0 -118
- package/src/run.ts +0 -317
- package/src/setup/components/ApiKeyInput.tsx +0 -158
- package/src/setup/components/CliDetector.tsx +0 -230
- package/src/setup/components/ModeSelector.tsx +0 -137
- package/src/setup/components/ProviderSelector.tsx +0 -175
- package/src/setup/components/SetupWizard.tsx +0 -368
- package/src/setup/components/StepIndicator.tsx +0 -74
- package/src/setup/components/SuccessScreen.tsx +0 -229
- package/src/setup/utils/cli-detection.ts +0 -99
- package/src/setup/utils/config-writer.ts +0 -249
- package/src/styles.ts +0 -12
- package/src/tui/App.tsx +0 -183
- package/src/tui/components/AgentStateIcon.tsx +0 -84
- package/src/tui/components/AnimatedBranch.tsx +0 -134
- package/src/tui/components/ChatPanel.tsx +0 -128
- package/src/tui/components/DAGPanel.tsx +0 -212
- package/src/tui/components/ExecutionTimeline.tsx +0 -225
- package/src/tui/components/Header.tsx +0 -109
- package/src/tui/components/HelpOverlay.tsx +0 -140
- package/src/tui/components/InputBar.tsx +0 -69
- package/src/tui/components/LogsPanel.tsx +0 -132
- package/src/tui/components/MemoryPanel.tsx +0 -166
- package/src/tui/components/MetricsPanel.tsx +0 -152
- package/src/tui/components/StatusPanel.tsx +0 -140
- package/src/tui/components/TaskTree.tsx +0 -159
- package/src/tui/components/animations/ProgressBar.tsx +0 -160
- package/src/tui/components/animations/Pulse.tsx +0 -73
- package/src/tui/components/animations/Spinner.tsx +0 -54
- package/src/tui/components/animations/StatusAnimator.tsx +0 -153
- package/src/tui/components/animations/TypingEffect.tsx +0 -119
- package/src/tui/hooks/useAnimation.ts +0 -290
- package/src/tui/hooks/useAppState.ts +0 -403
- package/src/tui/services/orchestrator.ts +0 -195
- package/src/tui/styles/borders.ts +0 -51
- package/src/tui/styles/colors.ts +0 -19
- package/src/tui/styles/index.ts +0 -20
- package/src/tui/styles/indicators.ts +0 -54
- package/src/tui/styles/layout.ts +0 -44
- package/src/tui/styles/providers.ts +0 -32
- package/src/tui/utils/animation.ts +0 -124
- package/src/vendor-manifests.ts +0 -113
- package/tsconfig.json +0 -28
|
@@ -1,134 +0,0 @@
|
|
|
1
|
-
export type HostTarget = "claude-code" | "codex" | "opencode" | "kilo" | "generic";
|
|
2
|
-
|
|
3
|
-
export interface HostTemplate {
|
|
4
|
-
id: HostTarget;
|
|
5
|
-
title: string;
|
|
6
|
-
envHint: string;
|
|
7
|
-
chatHint: string;
|
|
8
|
-
bootstrapPromptBase: string[];
|
|
9
|
-
quickCommands: string[];
|
|
10
|
-
autoInjectMode: "native" | "scripted" | "manual";
|
|
11
|
-
sessionEntryExamples: string[];
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
export const HOST_TEMPLATES: Record<HostTarget, HostTemplate> = {
|
|
15
|
-
"claude-code": {
|
|
16
|
-
id: "claude-code",
|
|
17
|
-
title: "Claude Code",
|
|
18
|
-
envHint: "Export RAX_HOST_BRIDGE_COMMAND before starting Claude Code session.",
|
|
19
|
-
chatHint: "Paste BOOTSTRAP_PROMPT.txt at the beginning of the chat.",
|
|
20
|
-
bootstrapPromptBase: [
|
|
21
|
-
"RAXFLOW bootstrap (Claude Code)",
|
|
22
|
-
"- Enable host-native orchestration.",
|
|
23
|
-
"- Route generation through the configured host bridge.",
|
|
24
|
-
"- Keep structured JSON outputs for orchestration steps.",
|
|
25
|
-
"- Execute Verify -> Fix loop when schema validation fails.",
|
|
26
|
-
"- Report confidence, risk flags, and logs for each step."
|
|
27
|
-
],
|
|
28
|
-
quickCommands: ["npx raxflow doctor", "npx raxflow run --prompt \"Build feature X\" --stream"],
|
|
29
|
-
autoInjectMode: "scripted",
|
|
30
|
-
sessionEntryExamples: [
|
|
31
|
-
"claude-code chat --message-file .raxflow/host-init/claude-code/BOOTSTRAP_PROMPT.txt",
|
|
32
|
-
"claude-code (open session, then paste BOOTSTRAP_PROMPT.txt)"
|
|
33
|
-
]
|
|
34
|
-
},
|
|
35
|
-
codex: {
|
|
36
|
-
id: "codex",
|
|
37
|
-
title: "Codex",
|
|
38
|
-
envHint: "Set RAX_HOST_BRIDGE_COMMAND in the shell running Codex.",
|
|
39
|
-
chatHint: "Send BOOTSTRAP_PROMPT.txt as first instruction in session.",
|
|
40
|
-
bootstrapPromptBase: [
|
|
41
|
-
"RAXFLOW bootstrap (Codex)",
|
|
42
|
-
"- Use host-native model execution through the host bridge.",
|
|
43
|
-
"- Produce strict structured outputs for all agent steps.",
|
|
44
|
-
"- Apply Verify -> Fix until valid schema or retry cap.",
|
|
45
|
-
"- Include confidence and risks in every final step."
|
|
46
|
-
],
|
|
47
|
-
quickCommands: ["npx raxflow doctor", "npx raxflow run --prompt \"Build feature X\" --stream"],
|
|
48
|
-
autoInjectMode: "scripted",
|
|
49
|
-
sessionEntryExamples: [
|
|
50
|
-
"codex chat --message-file .raxflow/host-init/codex/BOOTSTRAP_PROMPT.txt",
|
|
51
|
-
"codex (open session, then paste BOOTSTRAP_PROMPT.txt)"
|
|
52
|
-
]
|
|
53
|
-
},
|
|
54
|
-
opencode: {
|
|
55
|
-
id: "opencode",
|
|
56
|
-
title: "OpenCode",
|
|
57
|
-
envHint: "Configure RAX_HOST_BRIDGE_COMMAND in OpenCode terminal/runtime env.",
|
|
58
|
-
chatHint: "Paste BOOTSTRAP_PROMPT.txt before requesting implementation.",
|
|
59
|
-
bootstrapPromptBase: [
|
|
60
|
-
"RAXFLOW bootstrap (OpenCode)",
|
|
61
|
-
"- Activate host bridge orchestration mode.",
|
|
62
|
-
"- Keep responses compact but structured for agent pipeline.",
|
|
63
|
-
"- Trigger fix cycles on validation failures automatically.",
|
|
64
|
-
"- Emit step logs and confidence scores."
|
|
65
|
-
],
|
|
66
|
-
quickCommands: ["npx raxflow doctor", "npx raxflow run --prompt \"Build feature X\" --stream"],
|
|
67
|
-
autoInjectMode: "manual",
|
|
68
|
-
sessionEntryExamples: [
|
|
69
|
-
"opencode chat --message-file .raxflow/host-init/opencode/BOOTSTRAP_PROMPT.txt",
|
|
70
|
-
"opencode (open session, then paste BOOTSTRAP_PROMPT.txt)"
|
|
71
|
-
]
|
|
72
|
-
},
|
|
73
|
-
kilo: {
|
|
74
|
-
id: "kilo",
|
|
75
|
-
title: "Kilo Code",
|
|
76
|
-
envHint: "Set RAX_HOST_BRIDGE_COMMAND in Kilo launch environment.",
|
|
77
|
-
chatHint: "Paste BOOTSTRAP_PROMPT.txt as initialization message.",
|
|
78
|
-
bootstrapPromptBase: [
|
|
79
|
-
"RAXFLOW bootstrap (Kilo)",
|
|
80
|
-
"- Run in host-native orchestration mode.",
|
|
81
|
-
"- Enforce structured output contract for each stage.",
|
|
82
|
-
"- Apply Verify -> Fix and escalate when confidence is low.",
|
|
83
|
-
"- Return actionable logs and risk flags."
|
|
84
|
-
],
|
|
85
|
-
quickCommands: ["npx raxflow doctor", "npx raxflow run --prompt \"Build feature X\" --stream"],
|
|
86
|
-
autoInjectMode: "manual",
|
|
87
|
-
sessionEntryExamples: [
|
|
88
|
-
"kilo chat --message-file .raxflow/host-init/kilo/BOOTSTRAP_PROMPT.txt",
|
|
89
|
-
"kilo (open session, then paste BOOTSTRAP_PROMPT.txt)"
|
|
90
|
-
]
|
|
91
|
-
},
|
|
92
|
-
generic: {
|
|
93
|
-
id: "generic",
|
|
94
|
-
title: "Generic Host",
|
|
95
|
-
envHint: "Provide a bridge command through RAX_HOST_BRIDGE_COMMAND.",
|
|
96
|
-
chatHint: "Paste BOOTSTRAP_PROMPT.txt at session start.",
|
|
97
|
-
bootstrapPromptBase: [
|
|
98
|
-
"RAXFLOW bootstrap (Generic)",
|
|
99
|
-
"- Enable orchestration through host bridge.",
|
|
100
|
-
"- Return strict JSON for each orchestration step.",
|
|
101
|
-
"- Retry/fix invalid outputs automatically.",
|
|
102
|
-
"- Report confidence, risks, and logs."
|
|
103
|
-
],
|
|
104
|
-
quickCommands: ["npx raxflow doctor", "npx raxflow run --prompt \"Build feature X\" --stream"],
|
|
105
|
-
autoInjectMode: "manual",
|
|
106
|
-
sessionEntryExamples: [
|
|
107
|
-
"your-host-cli chat --message-file .raxflow/host-init/generic/BOOTSTRAP_PROMPT.txt",
|
|
108
|
-
"open session, then paste BOOTSTRAP_PROMPT.txt"
|
|
109
|
-
]
|
|
110
|
-
}
|
|
111
|
-
};
|
|
112
|
-
|
|
113
|
-
export function parseHostTarget(value: string | undefined): HostTarget {
|
|
114
|
-
if (!value) return "generic";
|
|
115
|
-
if (value in HOST_TEMPLATES) return value as HostTarget;
|
|
116
|
-
return "generic";
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
export function listHostTargets(): HostTarget[] {
|
|
120
|
-
return Object.keys(HOST_TEMPLATES) as HostTarget[];
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
export function buildBootstrapPrompt(target: HostTarget, task?: string): string {
|
|
124
|
-
const template = HOST_TEMPLATES[target];
|
|
125
|
-
const lines = [...template.bootstrapPromptBase];
|
|
126
|
-
|
|
127
|
-
if (task && task.trim().length > 0) {
|
|
128
|
-
lines.push(`- Task context: ${task.trim()}`);
|
|
129
|
-
lines.push("- Keep orchestration aligned with this task context unless user changes scope.");
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
lines.push("- If bridge call fails, report issue clearly and keep orchestration state.");
|
|
133
|
-
return lines.join("\n");
|
|
134
|
-
}
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect, beforeEach } from "vitest";
|
|
2
|
-
import { registerCommand, getCommandRegistry } from "../commands/index.js";
|
|
3
|
-
import { CommandDefinition } from "../types.js";
|
|
4
|
-
|
|
5
|
-
describe("Command Registry", () => {
|
|
6
|
-
beforeEach(() => {
|
|
7
|
-
// Clear the registry before each test
|
|
8
|
-
const registry = getCommandRegistry();
|
|
9
|
-
registry.clear();
|
|
10
|
-
});
|
|
11
|
-
|
|
12
|
-
describe("registerCommand", () => {
|
|
13
|
-
it("should register a command", () => {
|
|
14
|
-
const cmd: CommandDefinition = {
|
|
15
|
-
name: "test",
|
|
16
|
-
description: "Test command",
|
|
17
|
-
handler: async () => {},
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
registerCommand(cmd);
|
|
21
|
-
const registry = getCommandRegistry();
|
|
22
|
-
expect(registry.has("test")).toBe(true);
|
|
23
|
-
});
|
|
24
|
-
|
|
25
|
-
it("should register command with aliases", () => {
|
|
26
|
-
const cmd: CommandDefinition = {
|
|
27
|
-
name: "status",
|
|
28
|
-
description: "Show status",
|
|
29
|
-
handler: async () => {},
|
|
30
|
-
aliases: ["st", "s"],
|
|
31
|
-
};
|
|
32
|
-
|
|
33
|
-
registerCommand(cmd);
|
|
34
|
-
const registry = getCommandRegistry();
|
|
35
|
-
expect(registry.has("status")).toBe(true);
|
|
36
|
-
expect(registry.has("st")).toBe(true);
|
|
37
|
-
expect(registry.has("s")).toBe(true);
|
|
38
|
-
});
|
|
39
|
-
|
|
40
|
-
it("should allow multiple commands to be registered", () => {
|
|
41
|
-
registerCommand({
|
|
42
|
-
name: "cmd1",
|
|
43
|
-
description: "Command 1",
|
|
44
|
-
handler: async () => {},
|
|
45
|
-
});
|
|
46
|
-
|
|
47
|
-
registerCommand({
|
|
48
|
-
name: "cmd2",
|
|
49
|
-
description: "Command 2",
|
|
50
|
-
handler: async () => {},
|
|
51
|
-
});
|
|
52
|
-
|
|
53
|
-
const registry = getCommandRegistry();
|
|
54
|
-
expect(registry.size).toBe(2);
|
|
55
|
-
});
|
|
56
|
-
});
|
|
57
|
-
|
|
58
|
-
describe("getCommandRegistry", () => {
|
|
59
|
-
it("should return the same registry instance", () => {
|
|
60
|
-
const registry1 = getCommandRegistry();
|
|
61
|
-
const registry2 = getCommandRegistry();
|
|
62
|
-
expect(registry1).toBe(registry2);
|
|
63
|
-
});
|
|
64
|
-
|
|
65
|
-
it("should allow retrieving registered commands", async () => {
|
|
66
|
-
const mockHandler = async () => {
|
|
67
|
-
// Mock handler that does nothing
|
|
68
|
-
};
|
|
69
|
-
|
|
70
|
-
registerCommand({
|
|
71
|
-
name: "mock",
|
|
72
|
-
description: "Mock command",
|
|
73
|
-
handler: mockHandler,
|
|
74
|
-
});
|
|
75
|
-
|
|
76
|
-
const registry = getCommandRegistry();
|
|
77
|
-
const cmd = registry.get("mock");
|
|
78
|
-
expect(cmd).toBeDefined();
|
|
79
|
-
expect(cmd?.name).toBe("mock");
|
|
80
|
-
expect(cmd?.description).toBe("Mock command");
|
|
81
|
-
expect(cmd?.handler).toBe(mockHandler);
|
|
82
|
-
});
|
|
83
|
-
});
|
|
84
|
-
});
|
|
@@ -1,137 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect, beforeEach, afterEach } from "vitest";
|
|
2
|
-
import { CommandHistory } from "../history.js";
|
|
3
|
-
import * as fs from "fs/promises";
|
|
4
|
-
import * as path from "path";
|
|
5
|
-
import { tmpdir } from "os";
|
|
6
|
-
|
|
7
|
-
describe("CommandHistory", () => {
|
|
8
|
-
let tempDir: string;
|
|
9
|
-
let history: CommandHistory;
|
|
10
|
-
|
|
11
|
-
beforeEach(async () => {
|
|
12
|
-
// Create a temporary directory for testing
|
|
13
|
-
tempDir = path.join(tmpdir(), `raxflow-test-${Date.now()}`);
|
|
14
|
-
await fs.mkdir(tempDir, { recursive: true });
|
|
15
|
-
history = new CommandHistory(tempDir);
|
|
16
|
-
});
|
|
17
|
-
|
|
18
|
-
afterEach(async () => {
|
|
19
|
-
// Clean up temporary directory
|
|
20
|
-
try {
|
|
21
|
-
await fs.rm(tempDir, { recursive: true });
|
|
22
|
-
} catch {
|
|
23
|
-
// Ignore cleanup errors
|
|
24
|
-
}
|
|
25
|
-
});
|
|
26
|
-
|
|
27
|
-
describe("add", () => {
|
|
28
|
-
it("should add a command to history", () => {
|
|
29
|
-
history.add("status");
|
|
30
|
-
expect(history.getAll()).toContain("status");
|
|
31
|
-
});
|
|
32
|
-
|
|
33
|
-
it("should not add duplicate consecutive commands", () => {
|
|
34
|
-
history.add("status");
|
|
35
|
-
history.add("status");
|
|
36
|
-
expect(history.getAll().filter(c => c === "status").length).toBe(1);
|
|
37
|
-
});
|
|
38
|
-
|
|
39
|
-
it("should allow same command if not consecutive", () => {
|
|
40
|
-
history.add("status");
|
|
41
|
-
history.add("agents");
|
|
42
|
-
history.add("status");
|
|
43
|
-
expect(history.getAll()).toEqual(["status", "agents", "status"]);
|
|
44
|
-
});
|
|
45
|
-
});
|
|
46
|
-
|
|
47
|
-
describe("up/down navigation", () => {
|
|
48
|
-
it("should return undefined when navigating up on empty history", () => {
|
|
49
|
-
expect(history.up()).toBeUndefined();
|
|
50
|
-
});
|
|
51
|
-
|
|
52
|
-
it("should return commands when navigating up", () => {
|
|
53
|
-
history.add("status");
|
|
54
|
-
history.add("agents");
|
|
55
|
-
history.add("run test");
|
|
56
|
-
|
|
57
|
-
expect(history.up()).toBe("run test");
|
|
58
|
-
expect(history.up()).toBe("agents");
|
|
59
|
-
expect(history.up()).toBe("status");
|
|
60
|
-
});
|
|
61
|
-
|
|
62
|
-
it("should stop at the beginning when navigating up", () => {
|
|
63
|
-
history.add("status");
|
|
64
|
-
history.up();
|
|
65
|
-
expect(history.up()).toBeUndefined();
|
|
66
|
-
});
|
|
67
|
-
|
|
68
|
-
it("should navigate down after navigating up", () => {
|
|
69
|
-
history.add("status");
|
|
70
|
-
history.add("agents");
|
|
71
|
-
history.up();
|
|
72
|
-
history.up();
|
|
73
|
-
expect(history.down()).toBe("agents");
|
|
74
|
-
});
|
|
75
|
-
|
|
76
|
-
it("should return undefined when navigating down past the end", () => {
|
|
77
|
-
history.add("status");
|
|
78
|
-
history.down();
|
|
79
|
-
expect(history.down()).toBeUndefined();
|
|
80
|
-
});
|
|
81
|
-
});
|
|
82
|
-
|
|
83
|
-
describe("save and load", () => {
|
|
84
|
-
it("should save history to file", async () => {
|
|
85
|
-
history.add("status");
|
|
86
|
-
history.add("agents");
|
|
87
|
-
await history.save();
|
|
88
|
-
|
|
89
|
-
const historyPath = path.join(tempDir, ".rax", "history.json");
|
|
90
|
-
const content = await fs.readFile(historyPath, "utf-8");
|
|
91
|
-
const saved = JSON.parse(content);
|
|
92
|
-
expect(saved).toEqual(["status", "agents"]);
|
|
93
|
-
});
|
|
94
|
-
|
|
95
|
-
it("should load history from file", async () => {
|
|
96
|
-
// Setup: Create history file
|
|
97
|
-
const raxDir = path.join(tempDir, ".rax");
|
|
98
|
-
await fs.mkdir(raxDir, { recursive: true });
|
|
99
|
-
const historyPath = path.join(raxDir, "history.json");
|
|
100
|
-
await fs.writeFile(historyPath, JSON.stringify(["status", "agents"]));
|
|
101
|
-
|
|
102
|
-
// Load and verify
|
|
103
|
-
const newHistory = new CommandHistory(tempDir);
|
|
104
|
-
await newHistory.load();
|
|
105
|
-
expect(newHistory.getAll()).toEqual(["status", "agents"]);
|
|
106
|
-
});
|
|
107
|
-
|
|
108
|
-
it("should handle missing history file gracefully", async () => {
|
|
109
|
-
await history.load();
|
|
110
|
-
expect(history.getAll()).toEqual([]);
|
|
111
|
-
});
|
|
112
|
-
|
|
113
|
-
it("should limit history to last 1000 commands", async () => {
|
|
114
|
-
// Add 1005 commands
|
|
115
|
-
for (let i = 0; i < 1005; i++) {
|
|
116
|
-
history.add(`command-${i}`);
|
|
117
|
-
}
|
|
118
|
-
await history.save();
|
|
119
|
-
|
|
120
|
-
const historyPath = path.join(tempDir, ".rax", "history.json");
|
|
121
|
-
const content = await fs.readFile(historyPath, "utf-8");
|
|
122
|
-
const saved = JSON.parse(content);
|
|
123
|
-
expect(saved.length).toBe(1000);
|
|
124
|
-
expect(saved[0]).toBe("command-5"); // First 5 should be removed
|
|
125
|
-
expect(saved[saved.length - 1]).toBe("command-1004");
|
|
126
|
-
});
|
|
127
|
-
});
|
|
128
|
-
|
|
129
|
-
describe("getAll", () => {
|
|
130
|
-
it("should return copy of history array", () => {
|
|
131
|
-
history.add("status");
|
|
132
|
-
const all = history.getAll();
|
|
133
|
-
all.push("modified");
|
|
134
|
-
expect(history.getAll()).not.toContain("modified");
|
|
135
|
-
});
|
|
136
|
-
});
|
|
137
|
-
});
|
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect } from "vitest";
|
|
2
|
-
import { parseCommand, getCompletions } from "../parser.js";
|
|
3
|
-
import { HubContext } from "../types.js";
|
|
4
|
-
|
|
5
|
-
describe("parseCommand", () => {
|
|
6
|
-
it("should parse a simple command", () => {
|
|
7
|
-
const result = parseCommand("status");
|
|
8
|
-
expect(result.name).toBe("status");
|
|
9
|
-
expect(result.args).toEqual([]);
|
|
10
|
-
expect(result.flags).toEqual({});
|
|
11
|
-
});
|
|
12
|
-
|
|
13
|
-
it("should parse a command with arguments", () => {
|
|
14
|
-
const result = parseCommand("run Create an API");
|
|
15
|
-
expect(result.name).toBe("run");
|
|
16
|
-
expect(result.args).toEqual(["Create", "an", "API"]);
|
|
17
|
-
expect(result.flags).toEqual({});
|
|
18
|
-
});
|
|
19
|
-
|
|
20
|
-
it("should parse a command with long flags", () => {
|
|
21
|
-
const result = parseCommand("run --workflow test.json --stream Create API");
|
|
22
|
-
expect(result.name).toBe("run");
|
|
23
|
-
expect(result.args).toEqual(["Create", "API"]);
|
|
24
|
-
expect(result.flags).toEqual({
|
|
25
|
-
workflow: "test.json",
|
|
26
|
-
stream: true,
|
|
27
|
-
});
|
|
28
|
-
});
|
|
29
|
-
|
|
30
|
-
it("should parse a command with short flags", () => {
|
|
31
|
-
const result = parseCommand("logs -f --agent CodeGenerator");
|
|
32
|
-
expect(result.name).toBe("logs");
|
|
33
|
-
expect(result.args).toEqual([]);
|
|
34
|
-
expect(result.flags).toEqual({
|
|
35
|
-
f: true,
|
|
36
|
-
agent: "CodeGenerator",
|
|
37
|
-
});
|
|
38
|
-
});
|
|
39
|
-
|
|
40
|
-
it("should parse mixed flags and arguments", () => {
|
|
41
|
-
const result = parseCommand("run --json --max-parallel 6 Create API");
|
|
42
|
-
expect(result.name).toBe("run");
|
|
43
|
-
expect(result.args).toEqual(["Create", "API"]);
|
|
44
|
-
expect(result.flags).toEqual({
|
|
45
|
-
json: true,
|
|
46
|
-
"max-parallel": "6",
|
|
47
|
-
});
|
|
48
|
-
});
|
|
49
|
-
|
|
50
|
-
it("should handle empty input", () => {
|
|
51
|
-
const result = parseCommand("");
|
|
52
|
-
expect(result.name).toBe("");
|
|
53
|
-
expect(result.args).toEqual([]);
|
|
54
|
-
expect(result.flags).toEqual({});
|
|
55
|
-
});
|
|
56
|
-
|
|
57
|
-
it("should handle whitespace-only input", () => {
|
|
58
|
-
const result = parseCommand(" ");
|
|
59
|
-
expect(result.name).toBe("");
|
|
60
|
-
expect(result.args).toEqual([]);
|
|
61
|
-
expect(result.flags).toEqual({});
|
|
62
|
-
});
|
|
63
|
-
});
|
|
64
|
-
|
|
65
|
-
describe("getCompletions", () => {
|
|
66
|
-
it("should return all commands for empty input", () => {
|
|
67
|
-
const completions = getCompletions("");
|
|
68
|
-
expect(completions).toContain("run");
|
|
69
|
-
expect(completions).toContain("status");
|
|
70
|
-
expect(completions).toContain("agents");
|
|
71
|
-
expect(completions).toContain("exit");
|
|
72
|
-
expect(completions.length).toBeGreaterThan(10);
|
|
73
|
-
});
|
|
74
|
-
|
|
75
|
-
it("should filter commands by prefix", () => {
|
|
76
|
-
const completions = getCompletions("sta");
|
|
77
|
-
expect(completions).toContain("status");
|
|
78
|
-
expect(completions.every(c => c.startsWith("sta"))).toBe(true);
|
|
79
|
-
});
|
|
80
|
-
|
|
81
|
-
it("should suggest run flags after 'run' command", () => {
|
|
82
|
-
const completions = getCompletions("run ");
|
|
83
|
-
expect(completions).toContain("--workflow");
|
|
84
|
-
expect(completions).toContain("--max-parallel");
|
|
85
|
-
expect(completions).toContain("--stream");
|
|
86
|
-
expect(completions).toContain("--json");
|
|
87
|
-
});
|
|
88
|
-
|
|
89
|
-
it("should suggest log flags after 'logs' command", () => {
|
|
90
|
-
const completions = getCompletions("logs ");
|
|
91
|
-
expect(completions).toContain("-f");
|
|
92
|
-
expect(completions).toContain("--agent");
|
|
93
|
-
expect(completions).toContain("--level");
|
|
94
|
-
});
|
|
95
|
-
|
|
96
|
-
it("should return empty array for unknown command context", () => {
|
|
97
|
-
const completions = getCompletions("unknowncommand ");
|
|
98
|
-
expect(completions).toEqual([]);
|
|
99
|
-
});
|
|
100
|
-
|
|
101
|
-
it("should handle partial flag completion", () => {
|
|
102
|
-
const completions = getCompletions("run --work");
|
|
103
|
-
expect(completions).toContain("--workflow");
|
|
104
|
-
});
|
|
105
|
-
});
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { HubContext } from "../types.js";
|
|
2
|
-
import { drawBox } from "../styles/borders.js";
|
|
3
|
-
import { colorize, formatStatus, providerIndicators } from "../styles/colors.js";
|
|
4
|
-
import { padRight } from "../styles/typography.js";
|
|
5
|
-
|
|
6
|
-
interface AgentInfo {
|
|
7
|
-
name: string;
|
|
8
|
-
role: string;
|
|
9
|
-
status: string;
|
|
10
|
-
provider: string;
|
|
11
|
-
lastExecution: string;
|
|
12
|
-
avgResponseTime: string;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
export async function listAgents(_args: string[], _flags: Record<string, string | boolean>, _context: HubContext): Promise<void> {
|
|
16
|
-
const width = 75;
|
|
17
|
-
|
|
18
|
-
// Agent definitions from official-agents
|
|
19
|
-
const agents: AgentInfo[] = [
|
|
20
|
-
{ name: "IntentClassifier", role: "Classify user intent", status: "online", provider: "host", lastExecution: "2s ago", avgResponseTime: "45ms" },
|
|
21
|
-
{ name: "Brainstorm", role: "Generate ideas", status: "online", provider: "host", lastExecution: "5m ago", avgResponseTime: "120ms" },
|
|
22
|
-
{ name: "Spec", role: "Write specifications", status: "online", provider: "host", lastExecution: "1m ago", avgResponseTime: "89ms" },
|
|
23
|
-
{ name: "Architecture", role: "Design architecture", status: "online", provider: "host", lastExecution: "3m ago", avgResponseTime: "156ms" },
|
|
24
|
-
{ name: "TaskPlanner", role: "Decompose to DAG", status: "online", provider: "host", lastExecution: "2s ago", avgResponseTime: "34ms" },
|
|
25
|
-
{ name: "CodeGenerator", role: "Generate code", status: "running", provider: "host", lastExecution: "running", avgResponseTime: "234ms" },
|
|
26
|
-
{ name: "Test", role: "Run tests", status: "queued", provider: "host", lastExecution: "--", avgResponseTime: "--" },
|
|
27
|
-
{ name: "Validator", role: "Validate outputs", status: "online", provider: "host", lastExecution: "1m ago", avgResponseTime: "67ms" },
|
|
28
|
-
{ name: "Fix", role: "Patch defects", status: "online", provider: "host", lastExecution: "2m ago", avgResponseTime: "89ms" },
|
|
29
|
-
{ name: "Optimizer", role: "Optimize performance", status: "idle", provider: "anthropic", lastExecution: "1h ago", avgResponseTime: "178ms" },
|
|
30
|
-
{ name: "Documentation", role: "Generate docs", status: "online", provider: "host", lastExecution: "5m ago", avgResponseTime: "145ms" },
|
|
31
|
-
{ name: "Benchmark", role: "Run benchmarks", status: "idle", provider: "host", lastExecution: "2h ago", avgResponseTime: "567ms" },
|
|
32
|
-
];
|
|
33
|
-
|
|
34
|
-
const lines: string[] = [];
|
|
35
|
-
|
|
36
|
-
// Header
|
|
37
|
-
lines.push(` ${colorize("AGENT", "bright")} ${colorize("ROLE", "bright")} ${colorize("STATUS", "bright")} ${colorize("PROVIDER", "bright")} ${colorize("LAST RUN", "bright")}`);
|
|
38
|
-
lines.push(" " + "─".repeat(71));
|
|
39
|
-
|
|
40
|
-
// Agent list
|
|
41
|
-
for (const agent of agents) {
|
|
42
|
-
const indicator = formatStatus(agent.status);
|
|
43
|
-
const providerTag = providerIndicators[agent.provider] || "[?]";
|
|
44
|
-
const statusColor = agent.status === "running" ? "yellow" : agent.status === "queued" ? "gray" : "green";
|
|
45
|
-
|
|
46
|
-
lines.push(` ${padRight(agent.name, 16)} ${padRight(agent.role.slice(0, 17), 18)} ${indicator} ${colorize(agent.status.toUpperCase().padEnd(8), statusColor)} ${providerTag} ${colorize(agent.lastExecution, "gray")}`);
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
lines.push("");
|
|
50
|
-
lines.push(` ${colorize("Legend:", "bright")} ● online ○ idle ▶ running ◐ queued`);
|
|
51
|
-
|
|
52
|
-
console.log(drawBox(lines, width, "AGENTS"));
|
|
53
|
-
}
|
|
@@ -1,140 +0,0 @@
|
|
|
1
|
-
import { CommandDefinition } from "../types.js";
|
|
2
|
-
import { showStatus } from "./status.js";
|
|
3
|
-
import { listAgents } from "./agents.js";
|
|
4
|
-
import { runWorkflow } from "./run.js";
|
|
5
|
-
import { listProviders } from "./providers.js";
|
|
6
|
-
import { listWorkflows } from "./workflows.js";
|
|
7
|
-
import { showLogs } from "./logs.js";
|
|
8
|
-
import { showMetrics } from "./metrics.js";
|
|
9
|
-
import { showMemory } from "./memory.js";
|
|
10
|
-
import { startTUI } from "../../tui/index.js";
|
|
11
|
-
|
|
12
|
-
const commands = new Map<string, CommandDefinition>();
|
|
13
|
-
|
|
14
|
-
export function registerCommand(def: CommandDefinition): void {
|
|
15
|
-
commands.set(def.name, def);
|
|
16
|
-
if (def.aliases) {
|
|
17
|
-
for (const alias of def.aliases) {
|
|
18
|
-
commands.set(alias, def);
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
export function getCommandRegistry(): Map<string, CommandDefinition> {
|
|
24
|
-
return commands;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
registerCommand({
|
|
28
|
-
name: "help",
|
|
29
|
-
aliases: ["?"],
|
|
30
|
-
description: "Affiche l'aide",
|
|
31
|
-
handler: async () => {
|
|
32
|
-
console.log(`
|
|
33
|
-
Commandes disponibles:
|
|
34
|
-
• run <prompt> : Exécuter un workflow
|
|
35
|
-
• status : Voir l'état du système
|
|
36
|
-
• agents : Liste des agents
|
|
37
|
-
• providers : État des providers
|
|
38
|
-
• workflows : Blueprints disponibles
|
|
39
|
-
• logs : Logs en temps réel
|
|
40
|
-
• metrics : Métriques de performance
|
|
41
|
-
• memory : Graph QSGM
|
|
42
|
-
• dashboard : Ouvrir dashboard web
|
|
43
|
-
• ui : Mode TUI plein écran
|
|
44
|
-
• chat : Mode conversationnel
|
|
45
|
-
• help : Cette aide
|
|
46
|
-
• exit : Quitter
|
|
47
|
-
`);
|
|
48
|
-
},
|
|
49
|
-
});
|
|
50
|
-
|
|
51
|
-
registerCommand({
|
|
52
|
-
name: "exit",
|
|
53
|
-
aliases: ["quit"],
|
|
54
|
-
description: "Quitte le hub",
|
|
55
|
-
handler: async () => {
|
|
56
|
-
},
|
|
57
|
-
});
|
|
58
|
-
|
|
59
|
-
registerCommand({
|
|
60
|
-
name: "status",
|
|
61
|
-
description: "Affiche le statut du système",
|
|
62
|
-
handler: showStatus,
|
|
63
|
-
});
|
|
64
|
-
|
|
65
|
-
registerCommand({
|
|
66
|
-
name: "agents",
|
|
67
|
-
description: "Liste les agents disponibles",
|
|
68
|
-
handler: listAgents,
|
|
69
|
-
});
|
|
70
|
-
|
|
71
|
-
registerCommand({
|
|
72
|
-
name: "providers",
|
|
73
|
-
description: "Liste les providers configurés",
|
|
74
|
-
handler: listProviders,
|
|
75
|
-
});
|
|
76
|
-
|
|
77
|
-
registerCommand({
|
|
78
|
-
name: "workflows",
|
|
79
|
-
description: "Liste les workflows disponibles",
|
|
80
|
-
handler: listWorkflows,
|
|
81
|
-
});
|
|
82
|
-
|
|
83
|
-
registerCommand({
|
|
84
|
-
name: "logs",
|
|
85
|
-
description: "Affiche les logs en temps réel",
|
|
86
|
-
handler: showLogs,
|
|
87
|
-
});
|
|
88
|
-
|
|
89
|
-
registerCommand({
|
|
90
|
-
name: "metrics",
|
|
91
|
-
description: "Affiche les métriques de performance",
|
|
92
|
-
handler: showMetrics,
|
|
93
|
-
});
|
|
94
|
-
|
|
95
|
-
registerCommand({
|
|
96
|
-
name: "memory",
|
|
97
|
-
description: "Affiche le statut de la mémoire",
|
|
98
|
-
handler: showMemory,
|
|
99
|
-
});
|
|
100
|
-
|
|
101
|
-
registerCommand({
|
|
102
|
-
name: "run",
|
|
103
|
-
description: "Exécute un workflow avec le prompt spécifié",
|
|
104
|
-
handler: runWorkflow,
|
|
105
|
-
});
|
|
106
|
-
|
|
107
|
-
registerCommand({
|
|
108
|
-
name: "ui",
|
|
109
|
-
description: "Lance le mode TUI plein écran",
|
|
110
|
-
handler: async () => {
|
|
111
|
-
console.log("\n🎬 Lancement du mode TUI...\n");
|
|
112
|
-
const { waitUntilExit } = startTUI();
|
|
113
|
-
await waitUntilExit();
|
|
114
|
-
},
|
|
115
|
-
});
|
|
116
|
-
|
|
117
|
-
registerCommand({
|
|
118
|
-
name: "chat",
|
|
119
|
-
description: "Lance le mode conversationnel",
|
|
120
|
-
handler: async () => {
|
|
121
|
-
console.log("\n💬 Lancement du mode Chat (TUI)...\n");
|
|
122
|
-
const { waitUntilExit } = startTUI();
|
|
123
|
-
await waitUntilExit();
|
|
124
|
-
},
|
|
125
|
-
});
|
|
126
|
-
|
|
127
|
-
const placeholderCommands = [
|
|
128
|
-
"install", "config", "doctor", "bridge-test", "benchmark",
|
|
129
|
-
"evolve", "dashboard"
|
|
130
|
-
];
|
|
131
|
-
|
|
132
|
-
for (const cmd of placeholderCommands) {
|
|
133
|
-
registerCommand({
|
|
134
|
-
name: cmd,
|
|
135
|
-
description: `Commande ${cmd}`,
|
|
136
|
-
handler: async () => {
|
|
137
|
-
console.log(`⚠️ Commande '${cmd}' sera implémentée dans une phase ultérieure`);
|
|
138
|
-
},
|
|
139
|
-
});
|
|
140
|
-
}
|