@ranker/raxflow 0.2.1 → 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/bin.d.ts +3 -0
- package/dist/bootstrap.d.ts +8 -0
- package/dist/bridge-adapter-templates.d.ts +4 -0
- package/dist/bridge-test.d.ts +7 -0
- package/dist/dashboard.d.ts +4 -0
- package/dist/doctor.d.ts +6 -0
- package/dist/evolve.d.ts +7 -0
- package/dist/host-init-templates.d.ts +16 -0
- package/dist/hub/__tests__/commands.test.d.ts +2 -0
- package/dist/hub/__tests__/history.test.d.ts +2 -0
- package/dist/hub/__tests__/parser.test.d.ts +2 -0
- package/dist/hub/commands/agents.d.ts +3 -0
- package/dist/hub/commands/index.d.ts +4 -0
- package/dist/hub/commands/logs.d.ts +3 -0
- package/dist/hub/commands/memory.d.ts +3 -0
- package/dist/hub/commands/metrics.d.ts +3 -0
- package/dist/hub/commands/providers.d.ts +3 -0
- package/dist/hub/commands/run.d.ts +3 -0
- package/dist/hub/commands/status.d.ts +3 -0
- package/dist/hub/commands/workflows.d.ts +3 -0
- package/dist/hub/config-loader.d.ts +4 -0
- package/dist/hub/history.d.ts +13 -0
- package/dist/hub/index.d.ts +4 -0
- package/dist/hub/parser.d.ts +4 -0
- package/dist/hub/styles/borders.d.ts +23 -0
- package/dist/hub/styles/colors.d.ts +63 -0
- package/dist/hub/styles/typography.d.ts +34 -0
- package/dist/hub/types.d.ts +27 -0
- package/{src/index.ts → dist/index.d.ts} +1 -0
- package/dist/init-host.d.ts +10 -0
- package/dist/install.d.ts +8 -0
- package/dist/run.d.ts +16 -0
- package/dist/setup/components/ProviderSelector.d.ts.map +1 -1
- package/dist/setup/components/ProviderSelector.js +8 -7
- package/dist/setup/components/ProviderSelector.js.map +1 -1
- package/dist/styles.d.ts +12 -0
- package/dist/tui/App.d.ts.map +1 -1
- package/dist/tui/App.js +7 -2
- package/dist/tui/App.js.map +1 -1
- package/dist/tui/components/ChatPanel.d.ts +1 -0
- package/dist/tui/components/ChatPanel.d.ts.map +1 -1
- package/dist/tui/components/ChatPanel.js +4 -3
- package/dist/tui/components/ChatPanel.js.map +1 -1
- package/dist/tui/components/DAGPanel.d.ts +1 -0
- package/dist/tui/components/DAGPanel.d.ts.map +1 -1
- package/dist/tui/components/DAGPanel.js +4 -3
- package/dist/tui/components/DAGPanel.js.map +1 -1
- package/dist/tui/components/Header.d.ts.map +1 -1
- package/dist/tui/components/Header.js +1 -1
- package/dist/tui/components/Header.js.map +1 -1
- package/dist/tui/components/InputBar.d.ts.map +1 -1
- package/dist/tui/components/InputBar.js +1 -1
- package/dist/tui/components/InputBar.js.map +1 -1
- package/dist/tui/components/LogsPanel.d.ts +1 -0
- package/dist/tui/components/LogsPanel.d.ts.map +1 -1
- package/dist/tui/components/LogsPanel.js +4 -3
- package/dist/tui/components/LogsPanel.js.map +1 -1
- package/dist/tui/components/MemoryPanel.d.ts +1 -0
- package/dist/tui/components/MemoryPanel.d.ts.map +1 -1
- package/dist/tui/components/MemoryPanel.js +2 -2
- package/dist/tui/components/MemoryPanel.js.map +1 -1
- package/dist/tui/components/MetricsPanel.d.ts +1 -0
- package/dist/tui/components/MetricsPanel.d.ts.map +1 -1
- package/dist/tui/components/MetricsPanel.js +2 -2
- package/dist/tui/components/MetricsPanel.js.map +1 -1
- package/dist/tui/components/StatusPanel.d.ts +1 -0
- package/dist/tui/components/StatusPanel.d.ts.map +1 -1
- package/dist/tui/components/StatusPanel.js +4 -3
- package/dist/tui/components/StatusPanel.js.map +1 -1
- package/dist/vendor-manifests.d.ts +22 -0
- package/package.json +5 -1
- package/dashboard/index.html +0 -420
- package/dist/hub/chat/ChatApp.d.ts +0 -2
- package/dist/hub/chat/ChatApp.d.ts.map +0 -1
- package/dist/hub/chat/ChatApp.js +0 -146
- package/dist/hub/chat/ChatApp.js.map +0 -1
- package/dist/hub/chat/components/ChatInput.d.ts +0 -9
- package/dist/hub/chat/components/ChatInput.d.ts.map +0 -1
- package/dist/hub/chat/components/ChatInput.js +0 -19
- package/dist/hub/chat/components/ChatInput.js.map +0 -1
- package/dist/hub/chat/components/MessageList.d.ts +0 -7
- package/dist/hub/chat/components/MessageList.d.ts.map +0 -1
- package/dist/hub/chat/components/MessageList.js +0 -6
- package/dist/hub/chat/components/MessageList.js.map +0 -1
- package/dist/hub/chat/context.d.ts.map +0 -1
- package/dist/hub/chat/context.js +0 -42
- package/dist/hub/chat/context.js.map +0 -1
- package/dist/hub/chat/hooks/useChatHistory.d.ts +0 -7
- package/dist/hub/chat/hooks/useChatHistory.d.ts.map +0 -1
- package/dist/hub/chat/hooks/useChatHistory.js +0 -31
- package/dist/hub/chat/hooks/useChatHistory.js.map +0 -1
- package/dist/hub/chat/index.d.ts.map +0 -1
- package/dist/hub/chat/index.js +0 -7
- package/dist/hub/chat/index.js.map +0 -1
- package/dist/hub/chat/intent-parser.d.ts.map +0 -1
- package/dist/hub/chat/intent-parser.js +0 -48
- package/dist/hub/chat/intent-parser.js.map +0 -1
- package/dist/hub/chat/types.d.ts.map +0 -1
- package/dist/hub/chat/types.js +0 -2
- package/dist/hub/chat/types.js.map +0 -1
- package/dist/hub/tui/App.d.ts +0 -2
- package/dist/hub/tui/App.d.ts.map +0 -1
- package/dist/hub/tui/App.js +0 -53
- package/dist/hub/tui/App.js.map +0 -1
- package/dist/hub/tui/components/AgentQueue.d.ts +0 -6
- package/dist/hub/tui/components/AgentQueue.d.ts.map +0 -1
- package/dist/hub/tui/components/AgentQueue.js +0 -20
- package/dist/hub/tui/components/AgentQueue.js.map +0 -1
- package/dist/hub/tui/components/DAGPanel.d.ts +0 -16
- package/dist/hub/tui/components/DAGPanel.d.ts.map +0 -1
- package/dist/hub/tui/components/DAGPanel.js +0 -51
- package/dist/hub/tui/components/DAGPanel.js.map +0 -1
- package/dist/hub/tui/components/Header.d.ts +0 -7
- package/dist/hub/tui/components/Header.d.ts.map +0 -1
- package/dist/hub/tui/components/Header.js +0 -17
- package/dist/hub/tui/components/Header.js.map +0 -1
- package/dist/hub/tui/components/LogsPanel.d.ts +0 -6
- package/dist/hub/tui/components/LogsPanel.d.ts.map +0 -1
- package/dist/hub/tui/components/LogsPanel.js +0 -26
- package/dist/hub/tui/components/LogsPanel.js.map +0 -1
- package/dist/hub/tui/components/StatusBar.d.ts +0 -8
- package/dist/hub/tui/components/StatusBar.d.ts.map +0 -1
- package/dist/hub/tui/components/StatusBar.js +0 -7
- package/dist/hub/tui/components/StatusBar.js.map +0 -1
- package/dist/hub/tui/hooks/useEvents.d.ts +0 -2
- package/dist/hub/tui/hooks/useEvents.d.ts.map +0 -1
- package/dist/hub/tui/hooks/useEvents.js +0 -13
- package/dist/hub/tui/hooks/useEvents.js.map +0 -1
- package/dist/hub/tui/index.d.ts.map +0 -1
- package/dist/hub/tui/index.js +0 -7
- package/dist/hub/tui/index.js.map +0 -1
- package/dist/hub/tui/types.d.ts.map +0 -1
- package/dist/hub/tui/types.js +0 -2
- package/dist/hub/tui/types.js.map +0 -1
- 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/dashboard.ts +0 -51
- package/src/doctor.ts +0 -92
- package/src/evolve.ts +0 -74
- 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/AsciiBanner.tsx +0 -125
- package/src/setup/components/CliDetector.tsx +0 -230
- package/src/setup/components/ModeSelector.tsx +0 -137
- package/src/setup/components/ProviderSelector.tsx +0 -174
- 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/index.ts +0 -34
- 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 -177
- package/src/tui/components/AgentStateIcon.tsx +0 -84
- package/src/tui/components/AnimatedBranch.tsx +0 -134
- package/src/tui/components/ChatPanel.tsx +0 -125
- package/src/tui/components/DAGPanel.tsx +0 -208
- 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 -129
- package/src/tui/components/MemoryPanel.tsx +0 -163
- package/src/tui/components/MetricsPanel.tsx +0 -149
- package/src/tui/components/StatusPanel.tsx +0 -137
- 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/components/animations/index.ts +0 -16
- package/src/tui/hooks/useAnimation.ts +0 -290
- package/src/tui/hooks/useAppState.ts +0 -403
- package/src/tui/index.ts +0 -9
- 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/src/ws-relay.ts +0 -156
- package/tsconfig.json +0 -28
package/src/hub/index.ts
DELETED
|
@@ -1,132 +0,0 @@
|
|
|
1
|
-
import * as readline from "readline";
|
|
2
|
-
import { HubOptions, HubContext, Command } from "./types.js";
|
|
3
|
-
import { parseCommand, getCompletions } from "./parser.js";
|
|
4
|
-
import { CommandHistory } from "./history.js";
|
|
5
|
-
import { subscribeToEvents, RuntimeEvent } from "./event-listener.js";
|
|
6
|
-
import { getCommandRegistry } from "./commands/index.js";
|
|
7
|
-
import { loadConfig } from "./config-loader.js";
|
|
8
|
-
|
|
9
|
-
const WELCOME_MESSAGE = `
|
|
10
|
-
┌─────────────────────────────────────────────────────────────┐
|
|
11
|
-
│ ■ RAXFLOW HUB [HOST-NATIVE] ● READY │
|
|
12
|
-
│ Project: %PROJECT% Agents: 12/12 Online │
|
|
13
|
-
├─────────────────────────────────────────────────────────────┤
|
|
14
|
-
│ // BIENVENUE — Tapez 'help' ou '?' pour commencer │
|
|
15
|
-
└─────────────────────────────────────────────────────────────┘
|
|
16
|
-
`;
|
|
17
|
-
|
|
18
|
-
export async function startHub(options: HubOptions): Promise<void> {
|
|
19
|
-
const config = options.config || (await loadConfig(options.cwd));
|
|
20
|
-
const context: HubContext = {
|
|
21
|
-
config,
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
const history = new CommandHistory(options.cwd);
|
|
25
|
-
await history.load();
|
|
26
|
-
|
|
27
|
-
const commands = getCommandRegistry();
|
|
28
|
-
|
|
29
|
-
console.log(WELCOME_MESSAGE.replace("%PROJECT%", config.project || "default"));
|
|
30
|
-
|
|
31
|
-
let isClosing = false;
|
|
32
|
-
|
|
33
|
-
const rl = readline.createInterface({
|
|
34
|
-
input: process.stdin,
|
|
35
|
-
output: process.stdout,
|
|
36
|
-
prompt: "raxflow > ",
|
|
37
|
-
completer: (line: string) => {
|
|
38
|
-
const completions = getCompletions(line, context);
|
|
39
|
-
const hits = completions.filter((c) => c.startsWith(line));
|
|
40
|
-
return [hits.length ? hits : completions, line];
|
|
41
|
-
},
|
|
42
|
-
});
|
|
43
|
-
|
|
44
|
-
const unsubscribe = subscribeToEvents((event: RuntimeEvent) => {
|
|
45
|
-
const timeStr = new Date().toLocaleTimeString("fr-FR", { hour: "2-digit", minute: "2-digit" });
|
|
46
|
-
switch (event.type) {
|
|
47
|
-
case "run_start":
|
|
48
|
-
console.log(`[${timeStr}] ▶ Task started: ${event.taskId}`);
|
|
49
|
-
break;
|
|
50
|
-
case "run_end":
|
|
51
|
-
console.log(`[${timeStr}] ✓ Task completed: ${event.taskId} (confidence: ${event.metrics.confidence.toFixed(2)})`);
|
|
52
|
-
break;
|
|
53
|
-
case "node_error":
|
|
54
|
-
console.log(`[${timeStr}] ⚠ Node error: ${event.agent} - ${event.message}`);
|
|
55
|
-
break;
|
|
56
|
-
}
|
|
57
|
-
});
|
|
58
|
-
|
|
59
|
-
rl.on("line", async (input: string) => {
|
|
60
|
-
const trimmed = input.trim();
|
|
61
|
-
if (!trimmed) {
|
|
62
|
-
rl.prompt();
|
|
63
|
-
return;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
history.add(trimmed);
|
|
67
|
-
|
|
68
|
-
const command = parseCommand(trimmed);
|
|
69
|
-
|
|
70
|
-
if (command.name === "exit" || command.name === "quit") {
|
|
71
|
-
isClosing = true;
|
|
72
|
-
console.log("👋 À bientôt !");
|
|
73
|
-
unsubscribe();
|
|
74
|
-
rl.close();
|
|
75
|
-
return;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
const cmdDef = commands.get(command.name) || commands.get("help");
|
|
79
|
-
if (cmdDef) {
|
|
80
|
-
try {
|
|
81
|
-
await cmdDef.handler(command.args, command.flags, context);
|
|
82
|
-
} catch (error) {
|
|
83
|
-
console.error(`❌ Erreur: ${error instanceof Error ? error.message : String(error)}`);
|
|
84
|
-
}
|
|
85
|
-
} else {
|
|
86
|
-
console.log(`Commande inconnue: ${command.name}. Tapez 'help' pour voir les commandes disponibles.`);
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
if (!isClosing) {
|
|
90
|
-
rl.prompt();
|
|
91
|
-
}
|
|
92
|
-
});
|
|
93
|
-
|
|
94
|
-
rl.on("close", async () => {
|
|
95
|
-
if (!isClosing) {
|
|
96
|
-
await history.save();
|
|
97
|
-
console.log("\n👋 À bientôt !");
|
|
98
|
-
unsubscribe();
|
|
99
|
-
}
|
|
100
|
-
process.exit(0);
|
|
101
|
-
});
|
|
102
|
-
|
|
103
|
-
process.on("SIGINT", () => {
|
|
104
|
-
console.log("\n");
|
|
105
|
-
rl.prompt();
|
|
106
|
-
});
|
|
107
|
-
|
|
108
|
-
rl.prompt();
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
export async function startHubOneShot(command: string, args: string[]): Promise<void> {
|
|
112
|
-
const cwd = process.cwd();
|
|
113
|
-
const config = await loadConfig(cwd);
|
|
114
|
-
const context: HubContext = { config };
|
|
115
|
-
const commands = getCommandRegistry();
|
|
116
|
-
|
|
117
|
-
const parsed = parseCommand([command, ...args].join(" "));
|
|
118
|
-
const cmdDef = commands.get(parsed.name);
|
|
119
|
-
|
|
120
|
-
if (!cmdDef) {
|
|
121
|
-
console.error(`Commande inconnue: ${parsed.name}`);
|
|
122
|
-
process.exit(1);
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
try {
|
|
126
|
-
await cmdDef.handler(parsed.args, parsed.flags, context);
|
|
127
|
-
process.exit(0);
|
|
128
|
-
} catch (error) {
|
|
129
|
-
console.error(`❌ Erreur: ${error instanceof Error ? error.message : String(error)}`);
|
|
130
|
-
process.exit(1);
|
|
131
|
-
}
|
|
132
|
-
}
|
package/src/hub/parser.ts
DELETED
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
import { Command } from "./types.js";
|
|
2
|
-
|
|
3
|
-
const BOOLEAN_FLAGS = new Set([
|
|
4
|
-
"stream",
|
|
5
|
-
"json",
|
|
6
|
-
"f",
|
|
7
|
-
"force",
|
|
8
|
-
"verbose",
|
|
9
|
-
"quiet",
|
|
10
|
-
"dry-run",
|
|
11
|
-
"yes",
|
|
12
|
-
"help",
|
|
13
|
-
]);
|
|
14
|
-
|
|
15
|
-
export function parseCommand(input: string): Command {
|
|
16
|
-
const tokens = input.trim().split(/\s+/);
|
|
17
|
-
const name = tokens[0] || "";
|
|
18
|
-
const args: string[] = [];
|
|
19
|
-
const flags: Record<string, string | boolean> = {};
|
|
20
|
-
|
|
21
|
-
for (let i = 1; i < tokens.length; i++) {
|
|
22
|
-
const token = tokens[i];
|
|
23
|
-
if (token.startsWith("--")) {
|
|
24
|
-
const flagName = token.slice(2);
|
|
25
|
-
const nextToken = tokens[i + 1];
|
|
26
|
-
if (nextToken && !nextToken.startsWith("-") && !BOOLEAN_FLAGS.has(flagName)) {
|
|
27
|
-
flags[flagName] = nextToken;
|
|
28
|
-
i++;
|
|
29
|
-
} else {
|
|
30
|
-
flags[flagName] = true;
|
|
31
|
-
}
|
|
32
|
-
} else if (token.startsWith("-")) {
|
|
33
|
-
const flagName = token.slice(1);
|
|
34
|
-
const nextToken = tokens[i + 1];
|
|
35
|
-
if (nextToken && !nextToken.startsWith("-") && !BOOLEAN_FLAGS.has(flagName)) {
|
|
36
|
-
flags[flagName] = nextToken;
|
|
37
|
-
i++;
|
|
38
|
-
} else {
|
|
39
|
-
flags[flagName] = true;
|
|
40
|
-
}
|
|
41
|
-
} else {
|
|
42
|
-
args.push(token);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
return { name, args, flags };
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
export function getCompletions(partial: string, _context?: unknown): string[] {
|
|
50
|
-
const commands = [
|
|
51
|
-
"run",
|
|
52
|
-
"status",
|
|
53
|
-
"agents",
|
|
54
|
-
"providers",
|
|
55
|
-
"workflows",
|
|
56
|
-
"logs",
|
|
57
|
-
"metrics",
|
|
58
|
-
"memory",
|
|
59
|
-
"install",
|
|
60
|
-
"config",
|
|
61
|
-
"doctor",
|
|
62
|
-
"bridge-test",
|
|
63
|
-
"benchmark",
|
|
64
|
-
"evolve",
|
|
65
|
-
"dashboard",
|
|
66
|
-
"ui",
|
|
67
|
-
"chat",
|
|
68
|
-
"help",
|
|
69
|
-
"exit",
|
|
70
|
-
"quit",
|
|
71
|
-
];
|
|
72
|
-
|
|
73
|
-
if (!partial) {
|
|
74
|
-
return commands;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
const trimmed = partial.trim();
|
|
78
|
-
const endsWithSpace = partial.endsWith(" ");
|
|
79
|
-
const tokens = trimmed.split(/\s+/);
|
|
80
|
-
const currentWord = endsWithSpace ? "" : tokens[tokens.length - 1];
|
|
81
|
-
|
|
82
|
-
if (tokens.length === 1 && !endsWithSpace) {
|
|
83
|
-
return commands.filter((c) => c.startsWith(currentWord));
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
const command = tokens[0];
|
|
87
|
-
const isKnownCommand = commands.includes(command);
|
|
88
|
-
|
|
89
|
-
if (!isKnownCommand) {
|
|
90
|
-
return [];
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
switch (command) {
|
|
94
|
-
case "run":
|
|
95
|
-
return ["--workflow", "--max-parallel", "--stream", "--json"].filter((c) =>
|
|
96
|
-
c.startsWith(currentWord)
|
|
97
|
-
);
|
|
98
|
-
case "logs":
|
|
99
|
-
return ["-f", "--agent", "--level"].filter((c) => c.startsWith(currentWord));
|
|
100
|
-
case "agents":
|
|
101
|
-
case "providers":
|
|
102
|
-
case "workflows":
|
|
103
|
-
return [];
|
|
104
|
-
default:
|
|
105
|
-
return [];
|
|
106
|
-
}
|
|
107
|
-
}
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
// RAXFLOW Design System - Borders and Boxes
|
|
2
|
-
// Brutalist style: no border-radius, sharp corners
|
|
3
|
-
|
|
4
|
-
export const borders = {
|
|
5
|
-
// Border characters for ASCII boxes
|
|
6
|
-
horizontal: "─",
|
|
7
|
-
vertical: "│",
|
|
8
|
-
topLeft: "┌",
|
|
9
|
-
topRight: "┐",
|
|
10
|
-
bottomLeft: "└",
|
|
11
|
-
bottomRight: "┘",
|
|
12
|
-
leftT: "├",
|
|
13
|
-
rightT: "┤",
|
|
14
|
-
topT: "┬",
|
|
15
|
-
bottomT: "┴",
|
|
16
|
-
cross: "┼",
|
|
17
|
-
|
|
18
|
-
// Double line (for emphasis)
|
|
19
|
-
doubleHorizontal: "═",
|
|
20
|
-
doubleVertical: "║",
|
|
21
|
-
doubleTopLeft: "╔",
|
|
22
|
-
doubleTopRight: "╗",
|
|
23
|
-
doubleBottomLeft: "╚",
|
|
24
|
-
doubleBottomRight: "╝",
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
// Box drawing utilities
|
|
28
|
-
export function drawBox(content: string[], width: number, title?: string): string {
|
|
29
|
-
const { topLeft, topRight, bottomLeft, bottomRight, horizontal, vertical } = borders;
|
|
30
|
-
|
|
31
|
-
const lines: string[] = [];
|
|
32
|
-
|
|
33
|
-
// Top border
|
|
34
|
-
if (title) {
|
|
35
|
-
const titleStr = ` ${title} `;
|
|
36
|
-
const sideWidth = Math.floor((width - titleStr.length - 2) / 2);
|
|
37
|
-
const leftSide = horizontal.repeat(sideWidth);
|
|
38
|
-
const rightSide = horizontal.repeat(width - titleStr.length - 2 - sideWidth);
|
|
39
|
-
lines.push(`${topLeft}${leftSide}${titleStr}${rightSide}${topRight}`);
|
|
40
|
-
} else {
|
|
41
|
-
lines.push(`${topLeft}${horizontal.repeat(width - 2)}${topRight}`);
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
// Content
|
|
45
|
-
for (const line of content) {
|
|
46
|
-
const padded = line.padEnd(width - 2, " ").slice(0, width - 2);
|
|
47
|
-
lines.push(`${vertical}${padded}${vertical}`);
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
// Bottom border
|
|
51
|
-
lines.push(`${bottomLeft}${horizontal.repeat(width - 2)}${bottomRight}`);
|
|
52
|
-
|
|
53
|
-
return lines.join("\n");
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
export function drawSeparator(width: number, title?: string): string {
|
|
57
|
-
const { leftT, rightT, horizontal } = borders;
|
|
58
|
-
|
|
59
|
-
if (title) {
|
|
60
|
-
const titleStr = ` ${title} `;
|
|
61
|
-
const sideWidth = Math.floor((width - titleStr.length - 2) / 2);
|
|
62
|
-
const leftSide = horizontal.repeat(sideWidth);
|
|
63
|
-
const rightSide = horizontal.repeat(width - titleStr.length - 2 - sideWidth);
|
|
64
|
-
return `${leftT}${leftSide}${titleStr}${rightSide}${rightT}`;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
return `${leftT}${horizontal.repeat(width - 2)}${rightT}`;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
export function drawProgressBar(percent: number, width: number = 20): string {
|
|
71
|
-
const filled = Math.floor((percent / 100) * width);
|
|
72
|
-
const empty = width - filled;
|
|
73
|
-
return "█".repeat(filled) + "░".repeat(empty);
|
|
74
|
-
}
|
package/src/hub/styles/colors.ts
DELETED
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
// RAXFLOW Design System - Colors
|
|
2
|
-
// Based on cli-design.md specifications
|
|
3
|
-
|
|
4
|
-
export const colors = {
|
|
5
|
-
// Backgrounds
|
|
6
|
-
background: "#050505",
|
|
7
|
-
surface: "#0a0a0a",
|
|
8
|
-
surfaceElev: "#0d0d0d",
|
|
9
|
-
|
|
10
|
-
// Primary
|
|
11
|
-
primary: "#f97316", // Orange vif
|
|
12
|
-
primaryGlow: "rgba(249, 115, 22, 0.3)",
|
|
13
|
-
primaryGlowHover: "rgba(249, 115, 22, 0.5)",
|
|
14
|
-
|
|
15
|
-
// Text
|
|
16
|
-
textPrimary: "#ffffff",
|
|
17
|
-
textSecondary: "#a1a1aa",
|
|
18
|
-
textTertiary: "#71717a",
|
|
19
|
-
textQuaternary: "#3f3f46",
|
|
20
|
-
|
|
21
|
-
// Status
|
|
22
|
-
success: "#22c55e",
|
|
23
|
-
warning: "#f59e0b",
|
|
24
|
-
error: "#ef4444",
|
|
25
|
-
|
|
26
|
-
// Borders
|
|
27
|
-
border: "#27272a",
|
|
28
|
-
|
|
29
|
-
// Mutations
|
|
30
|
-
mutation: "#f59e0b",
|
|
31
|
-
mutationGlow: "rgba(245, 158, 11, 0.4)",
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
// ANSI color codes for terminal
|
|
35
|
-
export const ansiColors = {
|
|
36
|
-
reset: "\x1b[0m",
|
|
37
|
-
bright: "\x1b[1m",
|
|
38
|
-
dim: "\x1b[2m",
|
|
39
|
-
|
|
40
|
-
// Foreground colors
|
|
41
|
-
black: "\x1b[30m",
|
|
42
|
-
red: "\x1b[31m",
|
|
43
|
-
green: "\x1b[32m",
|
|
44
|
-
yellow: "\x1b[33m",
|
|
45
|
-
blue: "\x1b[34m",
|
|
46
|
-
magenta: "\x1b[35m",
|
|
47
|
-
cyan: "\x1b[36m",
|
|
48
|
-
white: "\x1b[37m",
|
|
49
|
-
gray: "\x1b[90m",
|
|
50
|
-
|
|
51
|
-
// Bright colors
|
|
52
|
-
brightRed: "\x1b[91m",
|
|
53
|
-
brightGreen: "\x1b[92m",
|
|
54
|
-
brightYellow: "\x1b[93m",
|
|
55
|
-
brightBlue: "\x1b[94m",
|
|
56
|
-
brightMagenta: "\x1b[95m",
|
|
57
|
-
brightCyan: "\x1b[96m",
|
|
58
|
-
brightWhite: "\x1b[97m",
|
|
59
|
-
|
|
60
|
-
// Background colors
|
|
61
|
-
bgBlack: "\x1b[40m",
|
|
62
|
-
bgRed: "\x1b[41m",
|
|
63
|
-
bgGreen: "\x1b[42m",
|
|
64
|
-
bgYellow: "\x1b[43m",
|
|
65
|
-
bgBlue: "\x1b[44m",
|
|
66
|
-
bgMagenta: "\x1b[45m",
|
|
67
|
-
bgCyan: "\x1b[46m",
|
|
68
|
-
bgWhite: "\x1b[47m",
|
|
69
|
-
bgGray: "\x1b[100m",
|
|
70
|
-
};
|
|
71
|
-
|
|
72
|
-
// Status indicators
|
|
73
|
-
export const statusIndicators = {
|
|
74
|
-
online: "●",
|
|
75
|
-
offline: "○",
|
|
76
|
-
running: "▶",
|
|
77
|
-
loading: "◐",
|
|
78
|
-
mutation: "◆",
|
|
79
|
-
checkpoint: "■",
|
|
80
|
-
pending: "○",
|
|
81
|
-
done: "✓",
|
|
82
|
-
};
|
|
83
|
-
|
|
84
|
-
// Provider indicators
|
|
85
|
-
export const providerIndicators: Record<string, string> = {
|
|
86
|
-
host: "[H]",
|
|
87
|
-
claude: "[C]",
|
|
88
|
-
opencode: "[O]",
|
|
89
|
-
kilo: "[K]",
|
|
90
|
-
anthropic: "[A]",
|
|
91
|
-
gemini: "[G]",
|
|
92
|
-
mistral: "[M]",
|
|
93
|
-
groq: "[Q]",
|
|
94
|
-
openai: "[O]",
|
|
95
|
-
};
|
|
96
|
-
|
|
97
|
-
// Utility functions
|
|
98
|
-
export function colorize(text: string, color: keyof typeof ansiColors): string {
|
|
99
|
-
return `${ansiColors[color]}${text}${ansiColors.reset}`;
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
export function statusColor(status: string): string {
|
|
103
|
-
switch (status.toLowerCase()) {
|
|
104
|
-
case "online":
|
|
105
|
-
case "ready":
|
|
106
|
-
case "active":
|
|
107
|
-
case "done":
|
|
108
|
-
case "success":
|
|
109
|
-
return ansiColors.green;
|
|
110
|
-
case "running":
|
|
111
|
-
case "busy":
|
|
112
|
-
return ansiColors.yellow;
|
|
113
|
-
case "error":
|
|
114
|
-
case "failed":
|
|
115
|
-
return ansiColors.red;
|
|
116
|
-
case "queued":
|
|
117
|
-
case "pending":
|
|
118
|
-
case "idle":
|
|
119
|
-
return ansiColors.gray;
|
|
120
|
-
default:
|
|
121
|
-
return ansiColors.reset;
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
export function formatStatus(status: string): string {
|
|
126
|
-
const indicator = statusIndicators[status.toLowerCase() as keyof typeof statusIndicators] || "○";
|
|
127
|
-
const color = statusColor(status);
|
|
128
|
-
return `${color}${indicator}${ansiColors.reset}`;
|
|
129
|
-
}
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
// RAXFLOW Design System - Typography
|
|
2
|
-
// Space Grotesk for titles, Space Mono for system text
|
|
3
|
-
|
|
4
|
-
export const typography = {
|
|
5
|
-
// Font families
|
|
6
|
-
primary: "Space Grotesk",
|
|
7
|
-
monospace: "Space Mono",
|
|
8
|
-
|
|
9
|
-
// Font weights
|
|
10
|
-
weights: {
|
|
11
|
-
light: 300,
|
|
12
|
-
regular: 400,
|
|
13
|
-
medium: 500,
|
|
14
|
-
bold: 700,
|
|
15
|
-
},
|
|
16
|
-
|
|
17
|
-
// Sizes (in terminal columns roughly)
|
|
18
|
-
sizes: {
|
|
19
|
-
hero: 4, // text-4xl
|
|
20
|
-
section: 2, // text-2xl
|
|
21
|
-
label: 0, // text-[10px]
|
|
22
|
-
body: 1, // text-sm
|
|
23
|
-
code: 0, // text-xs
|
|
24
|
-
status: -1, // text-[9px]
|
|
25
|
-
agent: 0, // text-xs
|
|
26
|
-
provider: -1, // text-[9px]
|
|
27
|
-
},
|
|
28
|
-
|
|
29
|
-
// Tracking (letter-spacing)
|
|
30
|
-
tracking: {
|
|
31
|
-
none: "",
|
|
32
|
-
tight: "",
|
|
33
|
-
normal: "",
|
|
34
|
-
wide: " ",
|
|
35
|
-
label: " ", // 0.15em equivalent in monospace
|
|
36
|
-
},
|
|
37
|
-
};
|
|
38
|
-
|
|
39
|
-
// Text formatting utilities for terminal
|
|
40
|
-
export function upperCase(text: string): string {
|
|
41
|
-
return text.toUpperCase();
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
export function padCenter(text: string, width: number): string {
|
|
45
|
-
const padding = Math.max(0, width - text.length);
|
|
46
|
-
const leftPad = Math.floor(padding / 2);
|
|
47
|
-
const rightPad = padding - leftPad;
|
|
48
|
-
return " ".repeat(leftPad) + text + " ".repeat(rightPad);
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
export function padRight(text: string, width: number): string {
|
|
52
|
-
const padding = Math.max(0, width - text.length);
|
|
53
|
-
return text + " ".repeat(padding);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
export function padLeft(text: string, width: number): string {
|
|
57
|
-
const padding = Math.max(0, width - text.length);
|
|
58
|
-
return " ".repeat(padding) + text;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
export function truncate(text: string, maxLength: number): string {
|
|
62
|
-
if (text.length <= maxLength) return text;
|
|
63
|
-
return text.slice(0, maxLength - 3) + "...";
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
export function formatLabel(text: string): string {
|
|
67
|
-
return upperCase(text).split("").join(" ");
|
|
68
|
-
}
|
package/src/hub/types.ts
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
export interface HubOptions {
|
|
2
|
-
cwd: string;
|
|
3
|
-
config?: HubConfig;
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
export interface HubConfig {
|
|
7
|
-
project?: string;
|
|
8
|
-
providers?: string[];
|
|
9
|
-
theme?: 'industrial' | 'minimal' | 'high-contrast';
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
export interface Command {
|
|
13
|
-
name: string;
|
|
14
|
-
args: string[];
|
|
15
|
-
flags: Record<string, string | boolean>;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
export interface HubContext {
|
|
19
|
-
currentWorkflow?: string;
|
|
20
|
-
currentRun?: string;
|
|
21
|
-
config: HubConfig;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
export type CommandHandler = (args: string[], flags: Record<string, string | boolean>, context: HubContext) => Promise<void>;
|
|
25
|
-
|
|
26
|
-
export interface CommandDefinition {
|
|
27
|
-
name: string;
|
|
28
|
-
description: string;
|
|
29
|
-
handler: CommandHandler;
|
|
30
|
-
aliases?: string[];
|
|
31
|
-
}
|