@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
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { readFile } from "node:fs/promises";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { spawn } from "node:child_process";
|
|
4
|
+
import { c } from "./styles.js";
|
|
5
|
+
import { parseHostTarget } from "./host-init-templates.js";
|
|
6
|
+
function parseShellCommand(input) {
|
|
7
|
+
const parts = input.match(/(?:[^\s"]+|"[^"]*")+/g) ?? [];
|
|
8
|
+
if (parts.length === 0) {
|
|
9
|
+
throw new Error("invalid_bridge_command");
|
|
10
|
+
}
|
|
11
|
+
const [command, ...rawArgs] = parts;
|
|
12
|
+
const args = rawArgs.map((arg) => arg.replace(/^"|"$/g, ""));
|
|
13
|
+
return { command: command, args };
|
|
14
|
+
}
|
|
15
|
+
async function runCommand(commandSpec, payload) {
|
|
16
|
+
const { command, args } = parseShellCommand(commandSpec);
|
|
17
|
+
return await new Promise((resolve, reject) => {
|
|
18
|
+
const child = spawn(command, args, { stdio: ["pipe", "pipe", "pipe"] });
|
|
19
|
+
let stdout = "";
|
|
20
|
+
let stderr = "";
|
|
21
|
+
child.stdout.on("data", (chunk) => {
|
|
22
|
+
stdout += String(chunk);
|
|
23
|
+
});
|
|
24
|
+
child.stderr.on("data", (chunk) => {
|
|
25
|
+
stderr += String(chunk);
|
|
26
|
+
});
|
|
27
|
+
child.on("error", (error) => reject(error));
|
|
28
|
+
child.on("close", (code) => resolve({ code: code ?? 1, stdout, stderr }));
|
|
29
|
+
child.stdin.write(JSON.stringify(payload));
|
|
30
|
+
child.stdin.end();
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
export async function runBridgeTest(options) {
|
|
34
|
+
const target = parseHostTarget(options.target);
|
|
35
|
+
const baseDir = path.join(options.cwd, ".rax-flow", "host-init", target);
|
|
36
|
+
const manifestFile = path.join(baseDir, "host-manifest.json");
|
|
37
|
+
const smokeFile = path.join(baseDir, "bridge-smoke-test.json");
|
|
38
|
+
let manifest;
|
|
39
|
+
let smokePayload;
|
|
40
|
+
try {
|
|
41
|
+
manifest = JSON.parse(await readFile(manifestFile, "utf8"));
|
|
42
|
+
}
|
|
43
|
+
catch {
|
|
44
|
+
console.error(c.red(`Missing host manifest: ${manifestFile}`));
|
|
45
|
+
return 1;
|
|
46
|
+
}
|
|
47
|
+
try {
|
|
48
|
+
smokePayload = JSON.parse(await readFile(smokeFile, "utf8"));
|
|
49
|
+
}
|
|
50
|
+
catch {
|
|
51
|
+
console.error(c.red(`Missing bridge smoke test payload: ${smokeFile}`));
|
|
52
|
+
return 1;
|
|
53
|
+
}
|
|
54
|
+
if (!manifest.bridgeCommand) {
|
|
55
|
+
console.error(c.red("host-manifest.json missing bridgeCommand"));
|
|
56
|
+
return 1;
|
|
57
|
+
}
|
|
58
|
+
const result = await runCommand(manifest.bridgeCommand, smokePayload);
|
|
59
|
+
console.log(c.blue(`RAX-FLOW Bridge Test (${target})`));
|
|
60
|
+
console.log(`command: ${manifest.bridgeCommand}`);
|
|
61
|
+
console.log(`exitCode: ${result.code}`);
|
|
62
|
+
if (result.stdout.trim()) {
|
|
63
|
+
console.log("stdout:");
|
|
64
|
+
console.log(result.stdout.trim());
|
|
65
|
+
}
|
|
66
|
+
if (result.stderr.trim()) {
|
|
67
|
+
console.log("stderr:");
|
|
68
|
+
console.log(result.stderr.trim());
|
|
69
|
+
}
|
|
70
|
+
if (result.code !== 0) {
|
|
71
|
+
console.log(c.red("Bridge smoke test failed."));
|
|
72
|
+
return 1;
|
|
73
|
+
}
|
|
74
|
+
try {
|
|
75
|
+
const parsed = JSON.parse(result.stdout);
|
|
76
|
+
const ok = Boolean(parsed?.ok);
|
|
77
|
+
if (!ok) {
|
|
78
|
+
console.log(c.red(`Bridge responded with ok=false: ${parsed?.error ?? "unknown"}`));
|
|
79
|
+
return 1;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
catch {
|
|
83
|
+
console.log(c.red("Bridge output is not valid JSON."));
|
|
84
|
+
return 1;
|
|
85
|
+
}
|
|
86
|
+
console.log(c.green("Bridge smoke test passed."));
|
|
87
|
+
return 0;
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=bridge-test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bridge-test.js","sourceRoot":"","sources":["../src/bridge-test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../src/dashboard.ts"],"names":[],"mappings":"AAOA,wBAAsB,YAAY,CAAC,EAAE,IAAW,EAAE,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CA2C3F"}
|
|
@@ -2,10 +2,8 @@ import http from "node:http";
|
|
|
2
2
|
import { readFile } from "node:fs/promises";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import { fileURLToPath } from "node:url";
|
|
5
|
-
|
|
6
5
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
7
|
-
|
|
8
|
-
export async function runDashboard({ port = 3003 }: { port?: number } = {}): Promise<number> {
|
|
6
|
+
export async function runDashboard({ port = 3003 } = {}) {
|
|
9
7
|
const server = http.createServer(async (req, res) => {
|
|
10
8
|
// Simple static server for the dashboard
|
|
11
9
|
if (req.url === "/" || req.url === "/index.html") {
|
|
@@ -14,38 +12,38 @@ export async function runDashboard({ port = 3003 }: { port?: number } = {}): Pro
|
|
|
14
12
|
// In the monorepo, it's in packages/cli/dashboard/index.html
|
|
15
13
|
// When installed as a package, it will be relative to this file
|
|
16
14
|
let htmlPath = path.join(process.cwd(), "packages/cli/dashboard/index.html");
|
|
17
|
-
|
|
18
15
|
// Fallback for when running from dist or installed package
|
|
19
16
|
try {
|
|
20
17
|
await readFile(htmlPath);
|
|
21
|
-
}
|
|
18
|
+
}
|
|
19
|
+
catch {
|
|
22
20
|
htmlPath = path.join(__dirname, "..", "dashboard", "index.html");
|
|
23
21
|
}
|
|
24
|
-
|
|
25
22
|
const content = await readFile(htmlPath, "utf8");
|
|
26
23
|
res.writeHead(200, { "Content-Type": "text/html" });
|
|
27
24
|
res.end(content);
|
|
28
|
-
}
|
|
25
|
+
}
|
|
26
|
+
catch (err) {
|
|
29
27
|
console.error("[UI] Error loading dashboard:", err);
|
|
30
28
|
res.writeHead(500);
|
|
31
29
|
res.end("Error loading dashboard. Please ensure you are running from the project root.");
|
|
32
30
|
}
|
|
33
|
-
}
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
34
33
|
res.writeHead(404);
|
|
35
34
|
res.end("Not Found");
|
|
36
35
|
}
|
|
37
36
|
});
|
|
38
|
-
|
|
39
37
|
return new Promise((resolve) => {
|
|
40
38
|
server.listen(port, () => {
|
|
41
39
|
console.log(`\n[UI] 🚀 RAX Dashboard started on http://localhost:${port}`);
|
|
42
40
|
console.log(`[UI] Monitoring kernel evolution and workflow health.`);
|
|
43
41
|
console.log(`[UI] Press Ctrl+C to stop.`);
|
|
44
42
|
});
|
|
45
|
-
|
|
46
43
|
process.on("SIGINT", () => {
|
|
47
44
|
server.close();
|
|
48
45
|
resolve(0);
|
|
49
46
|
});
|
|
50
47
|
});
|
|
51
48
|
}
|
|
49
|
+
//# sourceMappingURL=dashboard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../src/dashboard.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE/D,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,EAAE,IAAI,GAAG,IAAI,KAAwB,EAAE;IACtE,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QAChD,yCAAyC;QACzC,IAAI,GAAG,CAAC,GAAG,KAAK,GAAG,IAAI,GAAG,CAAC,GAAG,KAAK,aAAa,EAAE,CAAC;YAC/C,IAAI,CAAC;gBACD,iCAAiC;gBACjC,6DAA6D;gBAC7D,gEAAgE;gBAChE,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,mCAAmC,CAAC,CAAC;gBAE7E,2DAA2D;gBAC3D,IAAI,CAAC;oBACD,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBAC7B,CAAC;gBAAC,MAAM,CAAC;oBACL,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;gBACrE,CAAC;gBAED,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBACjD,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC,CAAC;gBACpD,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACrB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACX,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,GAAG,CAAC,CAAC;gBACpD,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;gBACnB,GAAG,CAAC,GAAG,CAAC,+EAA+E,CAAC,CAAC;YAC7F,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACnB,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACzB,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC3B,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;YACrB,OAAO,CAAC,GAAG,CAAC,uDAAuD,IAAI,EAAE,CAAC,CAAC;YAC3E,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;YACrE,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;YACtB,MAAM,CAAC,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,CAAC,CAAC,CAAC;QACf,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC"}
|
package/dist/doctor.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"AAKA,UAAU,aAAa;IACrB,GAAG,EAAE,MAAM,CAAC;CACb;AAyBD,wBAAsB,SAAS,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CA2DvE"}
|
package/dist/doctor.js
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { readFile } from "node:fs/promises";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { HostBridgeAdapter } from "rax-flow-providers";
|
|
4
|
+
import { c } from "./styles.js";
|
|
5
|
+
async function loadConfig(cwd) {
|
|
6
|
+
const file = path.join(cwd, ".raxrc");
|
|
7
|
+
try {
|
|
8
|
+
const raw = await readFile(file, "utf8");
|
|
9
|
+
return JSON.parse(raw);
|
|
10
|
+
}
|
|
11
|
+
catch {
|
|
12
|
+
return null;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
function printLine(ok, label, details) {
|
|
16
|
+
const icon = ok ? c.green("[ok]") : c.red("[fail]");
|
|
17
|
+
console.log(`${icon} ${label}${details ? ` - ${details}` : ""}`);
|
|
18
|
+
}
|
|
19
|
+
export async function runDoctor(options) {
|
|
20
|
+
console.log(c.blue("RAXFLOW Doctor"));
|
|
21
|
+
const config = await loadConfig(options.cwd);
|
|
22
|
+
if (!config) {
|
|
23
|
+
printLine(false, "Missing .raxrc", "run `raxflow install` first");
|
|
24
|
+
return 1;
|
|
25
|
+
}
|
|
26
|
+
printLine(true, "Found .raxrc");
|
|
27
|
+
const hostCfg = config.providers?.host;
|
|
28
|
+
const bridgeCommandEnv = hostCfg?.bridgeCommandEnv ?? "RAX_HOST_BRIDGE_COMMAND";
|
|
29
|
+
const bridgeCommand = process.env[bridgeCommandEnv];
|
|
30
|
+
const provider = new HostBridgeAdapter({
|
|
31
|
+
model: hostCfg?.model ?? "host-managed",
|
|
32
|
+
mode: hostCfg?.mode ?? "auto",
|
|
33
|
+
command: bridgeCommand,
|
|
34
|
+
timeoutMs: hostCfg?.timeoutMs ?? 10000
|
|
35
|
+
});
|
|
36
|
+
const health = await provider.healthCheck();
|
|
37
|
+
printLine(health, "Host provider health", `mode=${hostCfg?.mode ?? "auto"}`);
|
|
38
|
+
const hasBridgeFn = typeof globalThis.__RAX_HOST_BRIDGE__ === "function";
|
|
39
|
+
printLine(hasBridgeFn || Boolean(bridgeCommand), "Bridge source", hasBridgeFn ? "global bridge function" : bridgeCommand ? `command via ${bridgeCommandEnv}` : "auto/mock fallback");
|
|
40
|
+
try {
|
|
41
|
+
const ping = await provider.callModel("doctor ping", { model: hostCfg?.model ?? "host-managed", maxTokens: 32, temperature: 0 });
|
|
42
|
+
printLine(true, "callModel test", `provider=${ping.provider} model=${ping.model}`);
|
|
43
|
+
}
|
|
44
|
+
catch (error) {
|
|
45
|
+
printLine(false, "callModel test", String(error));
|
|
46
|
+
return 1;
|
|
47
|
+
}
|
|
48
|
+
try {
|
|
49
|
+
const structured = await provider.callStructured("doctor structured ping", {
|
|
50
|
+
type: "object",
|
|
51
|
+
required: ["agent", "success", "confidence", "risks", "logs", "data"],
|
|
52
|
+
properties: {
|
|
53
|
+
agent: { type: "string" },
|
|
54
|
+
success: { type: "boolean" },
|
|
55
|
+
confidence: { type: "number" },
|
|
56
|
+
risks: { type: "array" },
|
|
57
|
+
logs: { type: "array" },
|
|
58
|
+
data: { type: "object" }
|
|
59
|
+
}
|
|
60
|
+
}, { model: hostCfg?.model ?? "host-managed", maxTokens: 128, temperature: 0 });
|
|
61
|
+
printLine(true, "callStructured test", `model=${structured.model}`);
|
|
62
|
+
}
|
|
63
|
+
catch (error) {
|
|
64
|
+
printLine(false, "callStructured test", String(error));
|
|
65
|
+
return 1;
|
|
66
|
+
}
|
|
67
|
+
console.log(c.green("Doctor checks passed."));
|
|
68
|
+
return 0;
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=doctor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"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"}
|
package/dist/evolve.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evolve.d.ts","sourceRoot":"","sources":["../src/evolve.ts"],"names":[],"mappings":"AAIA,UAAU,aAAa;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB;AAcD,wBAAsB,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAoD3E"}
|
|
@@ -1,54 +1,28 @@
|
|
|
1
1
|
import { readFile, readdir } from "node:fs/promises";
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
import { c } from "./styles.js";
|
|
4
|
-
|
|
5
|
-
interface EvolveOptions {
|
|
6
|
-
cwd: string;
|
|
7
|
-
history?: boolean;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
interface Blueprint {
|
|
11
|
-
id: string;
|
|
12
|
-
version: string;
|
|
13
|
-
createdAt: string;
|
|
14
|
-
fitnessScore: number;
|
|
15
|
-
mutationType: string;
|
|
16
|
-
metadata?: {
|
|
17
|
-
message?: string;
|
|
18
|
-
reason?: string;
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
export async function showEvolution(options: EvolveOptions): Promise<number> {
|
|
4
|
+
export async function showEvolution(options) {
|
|
23
5
|
const evolutionDir = path.join(options.cwd, ".rax-flow", "evolutions");
|
|
24
|
-
|
|
25
6
|
try {
|
|
26
7
|
const files = await readdir(evolutionDir);
|
|
27
8
|
const blueprintFiles = files.filter(f => f.startsWith("blueprint_") && f.endsWith(".json"));
|
|
28
|
-
|
|
29
9
|
if (blueprintFiles.length === 0) {
|
|
30
10
|
console.log(c.yellow("\nNo evolutions recorded yet. Run more tasks to trigger Darwinian mutations."));
|
|
31
11
|
return 0;
|
|
32
12
|
}
|
|
33
|
-
|
|
34
|
-
const blueprints: Blueprint[] = [];
|
|
13
|
+
const blueprints = [];
|
|
35
14
|
for (const file of blueprintFiles) {
|
|
36
15
|
const raw = await readFile(path.join(evolutionDir, file), "utf8");
|
|
37
|
-
blueprints.push(JSON.parse(raw)
|
|
16
|
+
blueprints.push(JSON.parse(raw));
|
|
38
17
|
}
|
|
39
|
-
|
|
40
18
|
// Sort by creation date
|
|
41
19
|
blueprints.sort((a, b) => new Date(a.createdAt).getTime() - new Date(b.createdAt).getTime());
|
|
42
|
-
|
|
43
20
|
console.log(c.bold(c.magenta(`\n\n--- [GENETIC LINEAGE: RAX-FLOW] ---`)));
|
|
44
21
|
console.log(c.gray(`Found ${blueprints.length} evolutionary jumps.\n`));
|
|
45
|
-
|
|
46
22
|
blueprints.forEach((bp, i) => {
|
|
47
23
|
const connector = i === blueprints.length - 1 ? "└" : "├";
|
|
48
24
|
const branch = i === 0 ? "" : ` ${connector}── `;
|
|
49
|
-
|
|
50
25
|
const scoreColor = bp.fitnessScore >= 0.8 ? c.green : (bp.fitnessScore >= 0.6 ? c.yellow : c.red);
|
|
51
|
-
|
|
52
26
|
console.log(`${branch}${c.bold(bp.id)} ${c.gray(`v${bp.version}`)}`);
|
|
53
27
|
console.log(` ${c.gray("Type:")} ${c.cyan(bp.mutationType)}`);
|
|
54
28
|
console.log(` ${c.gray("Fitness:")} ${scoreColor(bp.fitnessScore.toFixed(2))}`);
|
|
@@ -59,12 +33,11 @@ export async function showEvolution(options: EvolveOptions): Promise<number> {
|
|
|
59
33
|
console.log(` ${c.gray("│")}`);
|
|
60
34
|
}
|
|
61
35
|
});
|
|
62
|
-
|
|
63
36
|
console.log(c.bold(c.cyan(`\nSurvival of the fittest: Blueprint ${blueprints[blueprints.length - 1]?.id} is currently dominant.`)));
|
|
64
|
-
|
|
65
37
|
return 0;
|
|
66
|
-
}
|
|
67
|
-
|
|
38
|
+
}
|
|
39
|
+
catch (error) {
|
|
40
|
+
if (error.code === "ENOENT") {
|
|
68
41
|
console.log(c.yellow("\nNo evolutions directory found. Run tasks first."));
|
|
69
42
|
return 0;
|
|
70
43
|
}
|
|
@@ -72,3 +45,4 @@ export async function showEvolution(options: EvolveOptions): Promise<number> {
|
|
|
72
45
|
return 1;
|
|
73
46
|
}
|
|
74
47
|
}
|
|
48
|
+
//# sourceMappingURL=evolve.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evolve.js","sourceRoot":"","sources":["../src/evolve.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export type HostTarget = "claude-code" | "codex" | "opencode" | "kilo" | "generic";
|
|
2
|
+
export interface HostTemplate {
|
|
3
|
+
id: HostTarget;
|
|
4
|
+
title: string;
|
|
5
|
+
envHint: string;
|
|
6
|
+
chatHint: string;
|
|
7
|
+
bootstrapPromptBase: string[];
|
|
8
|
+
quickCommands: string[];
|
|
9
|
+
autoInjectMode: "native" | "scripted" | "manual";
|
|
10
|
+
sessionEntryExamples: string[];
|
|
11
|
+
}
|
|
12
|
+
export declare const HOST_TEMPLATES: Record<HostTarget, HostTemplate>;
|
|
13
|
+
export declare function parseHostTarget(value: string | undefined): HostTarget;
|
|
14
|
+
export declare function listHostTargets(): HostTarget[];
|
|
15
|
+
export declare function buildBootstrapPrompt(target: HostTarget, task?: string): string;
|
|
16
|
+
//# sourceMappingURL=host-init-templates.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"host-init-templates.d.ts","sourceRoot":"","sources":["../src/host-init-templates.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,aAAa,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,CAAC;AAEnF,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,UAAU,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,cAAc,EAAE,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC;IACjD,oBAAoB,EAAE,MAAM,EAAE,CAAC;CAChC;AAED,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,UAAU,EAAE,YAAY,CAiG3D,CAAC;AAEF,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,CAIrE;AAED,wBAAgB,eAAe,IAAI,UAAU,EAAE,CAE9C;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAW9E"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
export const HOST_TEMPLATES = {
|
|
2
|
+
"claude-code": {
|
|
3
|
+
id: "claude-code",
|
|
4
|
+
title: "Claude Code",
|
|
5
|
+
envHint: "Export RAX_HOST_BRIDGE_COMMAND before starting Claude Code session.",
|
|
6
|
+
chatHint: "Paste BOOTSTRAP_PROMPT.txt at the beginning of the chat.",
|
|
7
|
+
bootstrapPromptBase: [
|
|
8
|
+
"RAXFLOW bootstrap (Claude Code)",
|
|
9
|
+
"- Enable host-native orchestration.",
|
|
10
|
+
"- Route generation through the configured host bridge.",
|
|
11
|
+
"- Keep structured JSON outputs for orchestration steps.",
|
|
12
|
+
"- Execute Verify -> Fix loop when schema validation fails.",
|
|
13
|
+
"- Report confidence, risk flags, and logs for each step."
|
|
14
|
+
],
|
|
15
|
+
quickCommands: ["npx raxflow doctor", "npx raxflow run --prompt \"Build feature X\" --stream"],
|
|
16
|
+
autoInjectMode: "scripted",
|
|
17
|
+
sessionEntryExamples: [
|
|
18
|
+
"claude-code chat --message-file .raxflow/host-init/claude-code/BOOTSTRAP_PROMPT.txt",
|
|
19
|
+
"claude-code (open session, then paste BOOTSTRAP_PROMPT.txt)"
|
|
20
|
+
]
|
|
21
|
+
},
|
|
22
|
+
codex: {
|
|
23
|
+
id: "codex",
|
|
24
|
+
title: "Codex",
|
|
25
|
+
envHint: "Set RAX_HOST_BRIDGE_COMMAND in the shell running Codex.",
|
|
26
|
+
chatHint: "Send BOOTSTRAP_PROMPT.txt as first instruction in session.",
|
|
27
|
+
bootstrapPromptBase: [
|
|
28
|
+
"RAXFLOW bootstrap (Codex)",
|
|
29
|
+
"- Use host-native model execution through the host bridge.",
|
|
30
|
+
"- Produce strict structured outputs for all agent steps.",
|
|
31
|
+
"- Apply Verify -> Fix until valid schema or retry cap.",
|
|
32
|
+
"- Include confidence and risks in every final step."
|
|
33
|
+
],
|
|
34
|
+
quickCommands: ["npx raxflow doctor", "npx raxflow run --prompt \"Build feature X\" --stream"],
|
|
35
|
+
autoInjectMode: "scripted",
|
|
36
|
+
sessionEntryExamples: [
|
|
37
|
+
"codex chat --message-file .raxflow/host-init/codex/BOOTSTRAP_PROMPT.txt",
|
|
38
|
+
"codex (open session, then paste BOOTSTRAP_PROMPT.txt)"
|
|
39
|
+
]
|
|
40
|
+
},
|
|
41
|
+
opencode: {
|
|
42
|
+
id: "opencode",
|
|
43
|
+
title: "OpenCode",
|
|
44
|
+
envHint: "Configure RAX_HOST_BRIDGE_COMMAND in OpenCode terminal/runtime env.",
|
|
45
|
+
chatHint: "Paste BOOTSTRAP_PROMPT.txt before requesting implementation.",
|
|
46
|
+
bootstrapPromptBase: [
|
|
47
|
+
"RAXFLOW bootstrap (OpenCode)",
|
|
48
|
+
"- Activate host bridge orchestration mode.",
|
|
49
|
+
"- Keep responses compact but structured for agent pipeline.",
|
|
50
|
+
"- Trigger fix cycles on validation failures automatically.",
|
|
51
|
+
"- Emit step logs and confidence scores."
|
|
52
|
+
],
|
|
53
|
+
quickCommands: ["npx raxflow doctor", "npx raxflow run --prompt \"Build feature X\" --stream"],
|
|
54
|
+
autoInjectMode: "manual",
|
|
55
|
+
sessionEntryExamples: [
|
|
56
|
+
"opencode chat --message-file .raxflow/host-init/opencode/BOOTSTRAP_PROMPT.txt",
|
|
57
|
+
"opencode (open session, then paste BOOTSTRAP_PROMPT.txt)"
|
|
58
|
+
]
|
|
59
|
+
},
|
|
60
|
+
kilo: {
|
|
61
|
+
id: "kilo",
|
|
62
|
+
title: "Kilo Code",
|
|
63
|
+
envHint: "Set RAX_HOST_BRIDGE_COMMAND in Kilo launch environment.",
|
|
64
|
+
chatHint: "Paste BOOTSTRAP_PROMPT.txt as initialization message.",
|
|
65
|
+
bootstrapPromptBase: [
|
|
66
|
+
"RAXFLOW bootstrap (Kilo)",
|
|
67
|
+
"- Run in host-native orchestration mode.",
|
|
68
|
+
"- Enforce structured output contract for each stage.",
|
|
69
|
+
"- Apply Verify -> Fix and escalate when confidence is low.",
|
|
70
|
+
"- Return actionable logs and risk flags."
|
|
71
|
+
],
|
|
72
|
+
quickCommands: ["npx raxflow doctor", "npx raxflow run --prompt \"Build feature X\" --stream"],
|
|
73
|
+
autoInjectMode: "manual",
|
|
74
|
+
sessionEntryExamples: [
|
|
75
|
+
"kilo chat --message-file .raxflow/host-init/kilo/BOOTSTRAP_PROMPT.txt",
|
|
76
|
+
"kilo (open session, then paste BOOTSTRAP_PROMPT.txt)"
|
|
77
|
+
]
|
|
78
|
+
},
|
|
79
|
+
generic: {
|
|
80
|
+
id: "generic",
|
|
81
|
+
title: "Generic Host",
|
|
82
|
+
envHint: "Provide a bridge command through RAX_HOST_BRIDGE_COMMAND.",
|
|
83
|
+
chatHint: "Paste BOOTSTRAP_PROMPT.txt at session start.",
|
|
84
|
+
bootstrapPromptBase: [
|
|
85
|
+
"RAXFLOW bootstrap (Generic)",
|
|
86
|
+
"- Enable orchestration through host bridge.",
|
|
87
|
+
"- Return strict JSON for each orchestration step.",
|
|
88
|
+
"- Retry/fix invalid outputs automatically.",
|
|
89
|
+
"- Report confidence, risks, and logs."
|
|
90
|
+
],
|
|
91
|
+
quickCommands: ["npx raxflow doctor", "npx raxflow run --prompt \"Build feature X\" --stream"],
|
|
92
|
+
autoInjectMode: "manual",
|
|
93
|
+
sessionEntryExamples: [
|
|
94
|
+
"your-host-cli chat --message-file .raxflow/host-init/generic/BOOTSTRAP_PROMPT.txt",
|
|
95
|
+
"open session, then paste BOOTSTRAP_PROMPT.txt"
|
|
96
|
+
]
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
export function parseHostTarget(value) {
|
|
100
|
+
if (!value)
|
|
101
|
+
return "generic";
|
|
102
|
+
if (value in HOST_TEMPLATES)
|
|
103
|
+
return value;
|
|
104
|
+
return "generic";
|
|
105
|
+
}
|
|
106
|
+
export function listHostTargets() {
|
|
107
|
+
return Object.keys(HOST_TEMPLATES);
|
|
108
|
+
}
|
|
109
|
+
export function buildBootstrapPrompt(target, task) {
|
|
110
|
+
const template = HOST_TEMPLATES[target];
|
|
111
|
+
const lines = [...template.bootstrapPromptBase];
|
|
112
|
+
if (task && task.trim().length > 0) {
|
|
113
|
+
lines.push(`- Task context: ${task.trim()}`);
|
|
114
|
+
lines.push("- Keep orchestration aligned with this task context unless user changes scope.");
|
|
115
|
+
}
|
|
116
|
+
lines.push("- If bridge call fails, report issue clearly and keep orchestration state.");
|
|
117
|
+
return lines.join("\n");
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=host-init-templates.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"host-init-templates.js","sourceRoot":"","sources":["../src/host-init-templates.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commands.test.d.ts","sourceRoot":"","sources":["../../../src/hub/__tests__/commands.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { describe, it, expect, beforeEach } from "vitest";
|
|
2
|
+
import { registerCommand, getCommandRegistry } from "../commands/index.js";
|
|
3
|
+
describe("Command Registry", () => {
|
|
4
|
+
beforeEach(() => {
|
|
5
|
+
// Clear the registry before each test
|
|
6
|
+
const registry = getCommandRegistry();
|
|
7
|
+
registry.clear();
|
|
8
|
+
});
|
|
9
|
+
describe("registerCommand", () => {
|
|
10
|
+
it("should register a command", () => {
|
|
11
|
+
const cmd = {
|
|
12
|
+
name: "test",
|
|
13
|
+
description: "Test command",
|
|
14
|
+
handler: async () => { },
|
|
15
|
+
};
|
|
16
|
+
registerCommand(cmd);
|
|
17
|
+
const registry = getCommandRegistry();
|
|
18
|
+
expect(registry.has("test")).toBe(true);
|
|
19
|
+
});
|
|
20
|
+
it("should register command with aliases", () => {
|
|
21
|
+
const cmd = {
|
|
22
|
+
name: "status",
|
|
23
|
+
description: "Show status",
|
|
24
|
+
handler: async () => { },
|
|
25
|
+
aliases: ["st", "s"],
|
|
26
|
+
};
|
|
27
|
+
registerCommand(cmd);
|
|
28
|
+
const registry = getCommandRegistry();
|
|
29
|
+
expect(registry.has("status")).toBe(true);
|
|
30
|
+
expect(registry.has("st")).toBe(true);
|
|
31
|
+
expect(registry.has("s")).toBe(true);
|
|
32
|
+
});
|
|
33
|
+
it("should allow multiple commands to be registered", () => {
|
|
34
|
+
registerCommand({
|
|
35
|
+
name: "cmd1",
|
|
36
|
+
description: "Command 1",
|
|
37
|
+
handler: async () => { },
|
|
38
|
+
});
|
|
39
|
+
registerCommand({
|
|
40
|
+
name: "cmd2",
|
|
41
|
+
description: "Command 2",
|
|
42
|
+
handler: async () => { },
|
|
43
|
+
});
|
|
44
|
+
const registry = getCommandRegistry();
|
|
45
|
+
expect(registry.size).toBe(2);
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
describe("getCommandRegistry", () => {
|
|
49
|
+
it("should return the same registry instance", () => {
|
|
50
|
+
const registry1 = getCommandRegistry();
|
|
51
|
+
const registry2 = getCommandRegistry();
|
|
52
|
+
expect(registry1).toBe(registry2);
|
|
53
|
+
});
|
|
54
|
+
it("should allow retrieving registered commands", async () => {
|
|
55
|
+
const mockHandler = async () => {
|
|
56
|
+
// Mock handler that does nothing
|
|
57
|
+
};
|
|
58
|
+
registerCommand({
|
|
59
|
+
name: "mock",
|
|
60
|
+
description: "Mock command",
|
|
61
|
+
handler: mockHandler,
|
|
62
|
+
});
|
|
63
|
+
const registry = getCommandRegistry();
|
|
64
|
+
const cmd = registry.get("mock");
|
|
65
|
+
expect(cmd).toBeDefined();
|
|
66
|
+
expect(cmd?.name).toBe("mock");
|
|
67
|
+
expect(cmd?.description).toBe("Mock command");
|
|
68
|
+
expect(cmd?.handler).toBe(mockHandler);
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
//# sourceMappingURL=commands.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commands.test.js","sourceRoot":"","sources":["../../../src/hub/__tests__/commands.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"history.test.d.ts","sourceRoot":"","sources":["../../../src/hub/__tests__/history.test.ts"],"names":[],"mappings":""}
|