rax-flow 0.1.5 → 0.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (223) hide show
  1. package/LICENSE +21 -0
  2. package/dist/bin.js +27 -3
  3. package/dist/bin.js.map +1 -1
  4. package/dist/hub/__tests__/commands.test.d.ts.map +1 -0
  5. package/dist/hub/__tests__/commands.test.js +72 -0
  6. package/dist/hub/__tests__/commands.test.js.map +1 -0
  7. package/dist/hub/__tests__/history.test.d.ts.map +1 -0
  8. package/dist/hub/__tests__/history.test.js +119 -0
  9. package/dist/hub/__tests__/history.test.js.map +1 -0
  10. package/dist/hub/__tests__/parser.test.d.ts.map +1 -0
  11. package/dist/hub/__tests__/parser.test.js +92 -0
  12. package/dist/hub/__tests__/parser.test.js.map +1 -0
  13. package/dist/hub/chat/ChatApp.d.ts +2 -0
  14. package/dist/hub/chat/ChatApp.d.ts.map +1 -0
  15. package/dist/hub/chat/ChatApp.js +146 -0
  16. package/dist/hub/chat/ChatApp.js.map +1 -0
  17. package/dist/hub/chat/components/ChatInput.d.ts +9 -0
  18. package/dist/hub/chat/components/ChatInput.d.ts.map +1 -0
  19. package/dist/hub/chat/components/ChatInput.js +19 -0
  20. package/dist/hub/chat/components/ChatInput.js.map +1 -0
  21. package/dist/hub/chat/components/MessageList.d.ts +7 -0
  22. package/dist/hub/chat/components/MessageList.d.ts.map +1 -0
  23. package/dist/hub/chat/components/MessageList.js +6 -0
  24. package/dist/hub/chat/components/MessageList.js.map +1 -0
  25. package/dist/hub/chat/context.d.ts.map +1 -0
  26. package/dist/hub/chat/context.js +42 -0
  27. package/dist/hub/chat/context.js.map +1 -0
  28. package/dist/hub/chat/hooks/useChatHistory.d.ts +7 -0
  29. package/dist/hub/chat/hooks/useChatHistory.d.ts.map +1 -0
  30. package/dist/hub/chat/hooks/useChatHistory.js +31 -0
  31. package/dist/hub/chat/hooks/useChatHistory.js.map +1 -0
  32. package/dist/hub/chat/index.d.ts.map +1 -0
  33. package/dist/hub/chat/index.js +7 -0
  34. package/dist/hub/chat/index.js.map +1 -0
  35. package/dist/hub/chat/intent-parser.d.ts.map +1 -0
  36. package/dist/hub/chat/intent-parser.js +48 -0
  37. package/dist/hub/chat/intent-parser.js.map +1 -0
  38. package/dist/hub/chat/types.d.ts.map +1 -0
  39. package/dist/hub/chat/types.js +2 -0
  40. package/dist/hub/chat/types.js.map +1 -0
  41. package/dist/hub/commands/agents.d.ts.map +1 -0
  42. package/dist/hub/commands/agents.js +36 -0
  43. package/dist/hub/commands/agents.js.map +1 -0
  44. package/dist/hub/commands/index.d.ts.map +1 -0
  45. package/dist/hub/commands/index.js +120 -0
  46. package/dist/hub/commands/index.js.map +1 -0
  47. package/dist/hub/commands/logs.d.ts.map +1 -0
  48. package/dist/hub/commands/logs.js +53 -0
  49. package/dist/hub/commands/logs.js.map +1 -0
  50. package/dist/hub/commands/memory.d.ts.map +1 -0
  51. package/dist/hub/commands/memory.js +40 -0
  52. package/dist/hub/commands/memory.js.map +1 -0
  53. package/dist/hub/commands/metrics.d.ts.map +1 -0
  54. package/dist/hub/commands/metrics.js +35 -0
  55. package/dist/hub/commands/metrics.js.map +1 -0
  56. package/dist/hub/commands/providers.d.ts.map +1 -0
  57. package/dist/hub/commands/providers.js +26 -0
  58. package/dist/hub/commands/providers.js.map +1 -0
  59. package/dist/hub/commands/run.d.ts.map +1 -0
  60. package/dist/hub/commands/run.js +31 -0
  61. package/dist/hub/commands/run.js.map +1 -0
  62. package/dist/hub/commands/status.d.ts.map +1 -0
  63. package/dist/hub/commands/status.js +61 -0
  64. package/dist/hub/commands/status.js.map +1 -0
  65. package/dist/hub/commands/workflows.d.ts.map +1 -0
  66. package/dist/hub/commands/workflows.js +45 -0
  67. package/dist/hub/commands/workflows.js.map +1 -0
  68. package/dist/hub/config-loader.d.ts.map +1 -0
  69. package/dist/hub/config-loader.js +27 -0
  70. package/dist/hub/config-loader.js.map +1 -0
  71. package/dist/hub/event-listener.d.ts.map +1 -0
  72. package/dist/hub/event-listener.js +8 -0
  73. package/dist/hub/event-listener.js.map +1 -0
  74. package/dist/hub/history.d.ts.map +1 -0
  75. package/dist/hub/history.js +59 -0
  76. package/dist/hub/history.js.map +1 -0
  77. package/dist/hub/index.d.ts.map +1 -0
  78. package/dist/hub/index.js +102 -0
  79. package/dist/hub/index.js.map +1 -0
  80. package/dist/hub/parser.d.ts.map +1 -0
  81. package/dist/hub/parser.js +98 -0
  82. package/dist/hub/parser.js.map +1 -0
  83. package/dist/hub/styles/borders.d.ts.map +1 -0
  84. package/dist/hub/styles/borders.js +64 -0
  85. package/dist/hub/styles/borders.js.map +1 -0
  86. package/dist/hub/styles/colors.d.ts.map +1 -0
  87. package/dist/hub/styles/colors.js +115 -0
  88. package/dist/hub/styles/colors.js.map +1 -0
  89. package/dist/hub/styles/typography.d.ts.map +1 -0
  90. package/dist/hub/styles/typography.js +60 -0
  91. package/dist/hub/styles/typography.js.map +1 -0
  92. package/dist/hub/tui/App.d.ts +2 -0
  93. package/dist/hub/tui/App.d.ts.map +1 -0
  94. package/dist/hub/tui/App.js +53 -0
  95. package/dist/hub/tui/App.js.map +1 -0
  96. package/dist/hub/tui/components/AgentQueue.d.ts +6 -0
  97. package/dist/hub/tui/components/AgentQueue.d.ts.map +1 -0
  98. package/dist/hub/tui/components/AgentQueue.js +20 -0
  99. package/dist/hub/tui/components/AgentQueue.js.map +1 -0
  100. package/dist/hub/tui/components/DAGPanel.d.ts +16 -0
  101. package/dist/hub/tui/components/DAGPanel.d.ts.map +1 -0
  102. package/dist/hub/tui/components/DAGPanel.js +51 -0
  103. package/dist/hub/tui/components/DAGPanel.js.map +1 -0
  104. package/dist/hub/tui/components/Header.d.ts +7 -0
  105. package/dist/hub/tui/components/Header.d.ts.map +1 -0
  106. package/dist/hub/tui/components/Header.js +17 -0
  107. package/dist/hub/tui/components/Header.js.map +1 -0
  108. package/dist/hub/tui/components/LogsPanel.d.ts +6 -0
  109. package/dist/hub/tui/components/LogsPanel.d.ts.map +1 -0
  110. package/dist/hub/tui/components/LogsPanel.js +26 -0
  111. package/dist/hub/tui/components/LogsPanel.js.map +1 -0
  112. package/dist/hub/tui/components/StatusBar.d.ts +8 -0
  113. package/dist/hub/tui/components/StatusBar.d.ts.map +1 -0
  114. package/dist/hub/tui/components/StatusBar.js +7 -0
  115. package/dist/hub/tui/components/StatusBar.js.map +1 -0
  116. package/dist/hub/tui/hooks/useEvents.d.ts +2 -0
  117. package/dist/hub/tui/hooks/useEvents.d.ts.map +1 -0
  118. package/dist/hub/tui/hooks/useEvents.js +13 -0
  119. package/dist/hub/tui/hooks/useEvents.js.map +1 -0
  120. package/dist/hub/tui/index.d.ts.map +1 -0
  121. package/dist/hub/tui/index.js +7 -0
  122. package/dist/hub/tui/index.js.map +1 -0
  123. package/dist/hub/tui/types.d.ts.map +1 -0
  124. package/dist/hub/tui/types.js +2 -0
  125. package/dist/hub/tui/types.js.map +1 -0
  126. package/dist/hub/types.d.ts.map +1 -0
  127. package/dist/hub/types.js +2 -0
  128. package/dist/hub/types.js.map +1 -0
  129. package/dist/tui/App.d.ts +2 -0
  130. package/dist/tui/App.d.ts.map +1 -0
  131. package/dist/tui/App.js +31 -0
  132. package/dist/tui/App.js.map +1 -0
  133. package/dist/tui/components/ChatPanel.d.ts +14 -0
  134. package/dist/tui/components/ChatPanel.d.ts.map +1 -0
  135. package/dist/tui/components/ChatPanel.js +30 -0
  136. package/dist/tui/components/ChatPanel.js.map +1 -0
  137. package/dist/tui/components/Header.d.ts +9 -0
  138. package/dist/tui/components/Header.d.ts.map +1 -0
  139. package/dist/tui/components/Header.js +17 -0
  140. package/dist/tui/components/Header.js.map +1 -0
  141. package/dist/tui/components/InputBar.d.ts +8 -0
  142. package/dist/tui/components/InputBar.d.ts.map +1 -0
  143. package/dist/tui/components/InputBar.js +16 -0
  144. package/dist/tui/components/InputBar.js.map +1 -0
  145. package/dist/tui/components/StatusPanel.d.ts +20 -0
  146. package/dist/tui/components/StatusPanel.d.ts.map +1 -0
  147. package/dist/tui/components/StatusPanel.js +20 -0
  148. package/dist/tui/components/StatusPanel.js.map +1 -0
  149. package/dist/tui/hooks/useAppState.d.ts +38 -0
  150. package/dist/tui/hooks/useAppState.d.ts.map +1 -0
  151. package/dist/tui/hooks/useAppState.js +127 -0
  152. package/dist/tui/hooks/useAppState.js.map +1 -0
  153. package/dist/tui/index.d.ts +3 -0
  154. package/dist/tui/index.d.ts.map +1 -0
  155. package/dist/tui/index.js +8 -0
  156. package/dist/tui/index.js.map +1 -0
  157. package/package.json +17 -11
  158. package/src/bin.ts +29 -3
  159. package/src/hub/__tests__/commands.test.ts +84 -0
  160. package/src/hub/__tests__/history.test.ts +137 -0
  161. package/src/hub/__tests__/parser.test.ts +105 -0
  162. package/src/hub/commands/agents.ts +53 -0
  163. package/src/hub/commands/index.ts +137 -0
  164. package/src/hub/commands/logs.ts +70 -0
  165. package/src/hub/commands/memory.ts +47 -0
  166. package/src/hub/commands/metrics.ts +49 -0
  167. package/src/hub/commands/providers.ts +39 -0
  168. package/src/hub/commands/run.ts +37 -0
  169. package/src/hub/commands/status.ts +69 -0
  170. package/src/hub/commands/workflows.ts +64 -0
  171. package/src/hub/config-loader.ts +37 -0
  172. package/src/hub/event-listener.ts +13 -0
  173. package/src/hub/history.ts +66 -0
  174. package/src/hub/index.ts +120 -0
  175. package/src/hub/parser.ts +107 -0
  176. package/src/hub/styles/borders.ts +74 -0
  177. package/src/hub/styles/colors.ts +129 -0
  178. package/src/hub/styles/typography.ts +68 -0
  179. package/src/hub/types.ts +31 -0
  180. package/src/tui/App.tsx +61 -0
  181. package/src/tui/components/ChatPanel.tsx +79 -0
  182. package/src/tui/components/Header.tsx +53 -0
  183. package/src/tui/components/InputBar.tsx +55 -0
  184. package/src/tui/components/StatusPanel.tsx +85 -0
  185. package/src/tui/hooks/useAppState.ts +168 -0
  186. package/src/tui/index.ts +9 -0
  187. package/tsconfig.json +19 -3
  188. package/tsconfig.tsbuildinfo +1 -0
  189. package/dist/benchmark.d.ts +0 -10
  190. package/dist/bin.d.ts +0 -3
  191. package/dist/bootstrap.d.ts +0 -8
  192. package/dist/bridge-adapter-templates.d.ts +0 -4
  193. package/dist/bridge-test.d.ts +0 -7
  194. package/dist/dashboard.d.ts +0 -4
  195. package/dist/doctor.d.ts +0 -6
  196. package/dist/evolve.d.ts +0 -7
  197. package/dist/host-init-templates.d.ts +0 -16
  198. package/dist/index.d.ts +0 -11
  199. package/dist/init-host.d.ts +0 -10
  200. package/dist/install.d.ts +0 -8
  201. package/dist/run.d.ts +0 -16
  202. package/dist/styles.d.ts +0 -12
  203. package/dist/vendor-manifests.d.ts +0 -22
  204. package/package/dashboard/index.html +0 -420
  205. package/package/package.json +0 -28
  206. package/package/src/benchmark.ts +0 -156
  207. package/package/src/bin.ts +0 -127
  208. package/package/src/bootstrap.ts +0 -36
  209. package/package/src/bridge-adapter-templates.ts +0 -181
  210. package/package/src/bridge-test.ts +0 -107
  211. package/package/src/dashboard.ts +0 -51
  212. package/package/src/doctor.ts +0 -92
  213. package/package/src/evolve.ts +0 -74
  214. package/package/src/host-init-templates.ts +0 -134
  215. package/package/src/index.ts +0 -10
  216. package/package/src/init-host.ts +0 -285
  217. package/package/src/install.ts +0 -118
  218. package/package/src/run.ts +0 -317
  219. package/package/src/styles.ts +0 -12
  220. package/package/src/vendor-manifests.ts +0 -113
  221. package/package/src/ws-relay.ts +0 -156
  222. package/package/tsconfig.json +0 -12
  223. package/rax-flow-0.1.1.tgz +0 -0
@@ -0,0 +1,6 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box, Text } from 'ink';
3
+ export function MessageList({ messages }) {
4
+ return (_jsx(Box, { flexDirection: "column", gap: 1, children: messages.map((message) => (_jsxs(Box, { flexDirection: "column", children: [_jsx(Box, { children: _jsx(Text, { bold: true, color: message.role === 'user' ? '#f97316' : '#22c55e', children: message.role === 'user' ? 'Vous:' : 'Bot:' }) }), _jsx(Box, { marginLeft: 2, children: _jsx(Text, { children: message.content }) })] }, message.id))) }));
5
+ }
6
+ //# sourceMappingURL=MessageList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MessageList.js","sourceRoot":"","sources":["../../../../src/hub/chat/components/MessageList.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAOhC,MAAM,UAAU,WAAW,CAAC,EAAE,QAAQ,EAAoB;IACxD,OAAO,CACL,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,GAAG,EAAE,CAAC,YAC/B,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CACzB,MAAC,GAAG,IAAkB,aAAa,EAAC,QAAQ,aAC1C,KAAC,GAAG,cACF,KAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAE,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,YAC9D,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,GACtC,GACH,EACN,KAAC,GAAG,IAAC,UAAU,EAAE,CAAC,YAChB,KAAC,IAAI,cAAE,OAAO,CAAC,OAAO,GAAQ,GAC1B,KARE,OAAO,CAAC,EAAE,CASd,CACP,CAAC,GACE,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/hub/chat/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,qBAAa,WAAW;IACtB,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,WAAW,CAAC,CAAS;IAE7B,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAS/D,UAAU,IAAI,OAAO,EAAE;IAIvB,iBAAiB,CAAC,KAAK,GAAE,MAAU,GAAG,OAAO,EAAE;IAI/C,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIlC,cAAc,IAAI,MAAM,GAAG,SAAS;IAIpC,gBAAgB,IAAI,IAAI;IAIxB,kBAAkB,IAAI,MAAM,EAAE;CAe/B"}
@@ -0,0 +1,42 @@
1
+ export class ChatContext {
2
+ history = [];
3
+ currentTask;
4
+ addToHistory(role, message) {
5
+ this.history.push({
6
+ id: `msg-${Date.now()}`,
7
+ role,
8
+ content: message,
9
+ timestamp: Date.now(),
10
+ });
11
+ }
12
+ getHistory() {
13
+ return [...this.history];
14
+ }
15
+ getRecentMessages(count = 5) {
16
+ return this.history.slice(-count);
17
+ }
18
+ setCurrentTask(task) {
19
+ this.currentTask = task;
20
+ }
21
+ getCurrentTask() {
22
+ return this.currentTask;
23
+ }
24
+ clearCurrentTask() {
25
+ this.currentTask = undefined;
26
+ }
27
+ suggestNextActions() {
28
+ const suggestions = [];
29
+ if (this.currentTask) {
30
+ suggestions.push('/status - Voir le statut');
31
+ suggestions.push('/workflow - Voir le workflow');
32
+ suggestions.push('Ajoute des tests');
33
+ }
34
+ else {
35
+ suggestions.push('Crée une API REST');
36
+ suggestions.push('Génère des tests unitaires');
37
+ suggestions.push('/agents - Voir les agents');
38
+ }
39
+ return suggestions;
40
+ }
41
+ }
42
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/hub/chat/context.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,WAAW;IACd,OAAO,GAAc,EAAE,CAAC;IACxB,WAAW,CAAU;IAE7B,YAAY,CAAC,IAA0B,EAAE,OAAe;QACtD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;YAChB,EAAE,EAAE,OAAO,IAAI,CAAC,GAAG,EAAE,EAAE;YACvB,IAAI;YACJ,OAAO,EAAE,OAAO;YAChB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC,CAAC;IACL,CAAC;IAED,UAAU;QACR,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAED,iBAAiB,CAAC,QAAgB,CAAC;QACjC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAED,cAAc,CAAC,IAAY;QACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;IAC/B,CAAC;IAED,kBAAkB;QAChB,MAAM,WAAW,GAAa,EAAE,CAAC;QAEjC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,WAAW,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YAC7C,WAAW,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;YACjD,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACvC,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACtC,WAAW,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;YAC/C,WAAW,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAChD,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;CACF"}
@@ -0,0 +1,7 @@
1
+ import type { Message } from '../types.js';
2
+ export declare function useChatHistory(): {
3
+ history: any;
4
+ addToHistory: (message: Message) => Promise<void>;
5
+ loadHistory: () => Promise<void>;
6
+ };
7
+ //# sourceMappingURL=useChatHistory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useChatHistory.d.ts","sourceRoot":"","sources":["../../../../src/hub/chat/hooks/useChatHistory.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAM3C,wBAAgB,cAAc;;4BAGS,OAAO;;EAwB7C"}
@@ -0,0 +1,31 @@
1
+ import { useState } from 'react';
2
+ import * as fs from 'fs/promises';
3
+ import * as path from 'path';
4
+ const HISTORY_FILE = '.rax/chat-history.json';
5
+ export function useChatHistory() {
6
+ const [history, setHistory] = useState([]);
7
+ const addToHistory = async (message) => {
8
+ const newHistory = [...history, message];
9
+ setHistory(newHistory);
10
+ try {
11
+ await fs.mkdir(path.dirname(HISTORY_FILE), { recursive: true });
12
+ await fs.writeFile(HISTORY_FILE, JSON.stringify(newHistory, null, 2));
13
+ }
14
+ catch {
15
+ // Silently fail if we can't save history
16
+ }
17
+ };
18
+ const loadHistory = async () => {
19
+ try {
20
+ const content = await fs.readFile(HISTORY_FILE, 'utf-8');
21
+ const parsed = JSON.parse(content);
22
+ setHistory(parsed);
23
+ }
24
+ catch {
25
+ // No history file yet
26
+ setHistory([]);
27
+ }
28
+ };
29
+ return { history, addToHistory, loadHistory };
30
+ }
31
+ //# sourceMappingURL=useChatHistory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useChatHistory.js","sourceRoot":"","sources":["../../../../src/hub/chat/hooks/useChatHistory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,MAAM,YAAY,GAAG,wBAAwB,CAAC;AAE9C,MAAM,UAAU,cAAc;IAC5B,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAY,EAAE,CAAC,CAAC;IAEtD,MAAM,YAAY,GAAG,KAAK,EAAE,OAAgB,EAAE,EAAE;QAC9C,MAAM,UAAU,GAAG,CAAC,GAAG,OAAO,EAAE,OAAO,CAAC,CAAC;QACzC,UAAU,CAAC,UAAU,CAAC,CAAC;QAEvB,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAChE,MAAM,EAAE,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACxE,CAAC;QAAC,MAAM,CAAC;YACP,yCAAyC;QAC3C,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,KAAK,IAAI,EAAE;QAC7B,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YACzD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACnC,UAAU,CAAC,MAAM,CAAC,CAAC;QACrB,CAAC;QAAC,MAAM,CAAC;YACP,sBAAsB;YACtB,UAAU,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC;AAChD,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hub/chat/index.ts"],"names":[],"mappings":"AAGA,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAG/C"}
@@ -0,0 +1,7 @@
1
+ import { render } from 'ink';
2
+ import { ChatApp } from './ChatApp.js';
3
+ export async function startChat() {
4
+ const { waitUntilExit } = render(ChatApp());
5
+ await waitUntilExit();
6
+ }
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hub/chat/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,MAAM,CAAC,KAAK,UAAU,SAAS;IAC7B,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5C,MAAM,aAAa,EAAE,CAAC;AACxB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intent-parser.d.ts","sourceRoot":"","sources":["../../../src/hub/chat/intent-parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAsDzD"}
@@ -0,0 +1,48 @@
1
+ export function parseUserIntent(input) {
2
+ const trimmed = input.trim();
3
+ // Check for slash commands
4
+ if (trimmed.startsWith('/')) {
5
+ const parts = trimmed.slice(1).split(' ');
6
+ return {
7
+ type: 'command',
8
+ command: parts[0],
9
+ args: parts.slice(1),
10
+ raw: trimmed,
11
+ };
12
+ }
13
+ // Check for follow-up indicators
14
+ const followupIndicators = ['et', 'ajoute', 'aussi', 'également', 'plus', 'ensuite', 'puis', 'and', 'also', 'add', 'then'];
15
+ const lowerInput = trimmed.toLowerCase();
16
+ if (followupIndicators.some(indicator => lowerInput.startsWith(indicator))) {
17
+ return {
18
+ type: 'followup',
19
+ args: [],
20
+ raw: trimmed,
21
+ };
22
+ }
23
+ // Check for question indicators
24
+ const questionIndicators = ['?', 'quoi', 'comment', 'pourquoi', 'qui', 'où', 'quand', 'quel', 'what', 'how', 'why', 'who', 'where', 'when', 'which'];
25
+ if (questionIndicators.some(indicator => lowerInput.includes(indicator))) {
26
+ return {
27
+ type: 'question',
28
+ args: [],
29
+ raw: trimmed,
30
+ };
31
+ }
32
+ // Check for task indicators (action verbs)
33
+ const taskIndicators = ['crée', 'génère', 'créer', 'générer', 'build', 'create', 'generate', 'make', 'write', 'code', 'implement'];
34
+ if (taskIndicators.some(indicator => lowerInput.startsWith(indicator))) {
35
+ return {
36
+ type: 'task',
37
+ args: [],
38
+ raw: trimmed,
39
+ };
40
+ }
41
+ // Default to unknown/question
42
+ return {
43
+ type: 'question',
44
+ args: [],
45
+ raw: trimmed,
46
+ };
47
+ }
48
+ //# sourceMappingURL=intent-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intent-parser.js","sourceRoot":"","sources":["../../../src/hub/chat/intent-parser.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAE7B,2BAA2B;IAC3B,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC1C,OAAO;YACL,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;YACjB,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;YACpB,GAAG,EAAE,OAAO;SACb,CAAC;IACJ,CAAC;IAED,iCAAiC;IACjC,MAAM,kBAAkB,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAC3H,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAEzC,IAAI,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;QAC3E,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,EAAE;YACR,GAAG,EAAE,OAAO;SACb,CAAC;IACJ,CAAC;IAED,gCAAgC;IAChC,MAAM,kBAAkB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAErJ,IAAI,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;QACzE,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,EAAE;YACR,GAAG,EAAE,OAAO;SACb,CAAC;IACJ,CAAC;IAED,2CAA2C;IAC3C,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IAEnI,IAAI,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;QACvE,OAAO;YACL,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,EAAE;YACR,GAAG,EAAE,OAAO;SACb,CAAC;IACJ,CAAC;IAED,8BAA8B;IAC9B,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,EAAE;QACR,GAAG,EAAE,OAAO;KACb,CAAC;AACJ,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/hub/chat/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,WAAW,CAAC;AAE/C,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,MAAM,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,CAAC;AAEtF,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;CACb"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/hub/chat/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../../src/hub/commands/agents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAczC,wBAAsB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,QAAQ,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAsC/H"}
@@ -0,0 +1,36 @@
1
+ import { drawBox } from "../styles/borders.js";
2
+ import { colorize, formatStatus, providerIndicators } from "../styles/colors.js";
3
+ import { padRight } from "../styles/typography.js";
4
+ export async function listAgents(_args, _flags, _context) {
5
+ const width = 75;
6
+ // Agent definitions from official-agents
7
+ const agents = [
8
+ { name: "IntentClassifier", role: "Classify user intent", status: "online", provider: "host", lastExecution: "2s ago", avgResponseTime: "45ms" },
9
+ { name: "Brainstorm", role: "Generate ideas", status: "online", provider: "host", lastExecution: "5m ago", avgResponseTime: "120ms" },
10
+ { name: "Spec", role: "Write specifications", status: "online", provider: "host", lastExecution: "1m ago", avgResponseTime: "89ms" },
11
+ { name: "Architecture", role: "Design architecture", status: "online", provider: "host", lastExecution: "3m ago", avgResponseTime: "156ms" },
12
+ { name: "TaskPlanner", role: "Decompose to DAG", status: "online", provider: "host", lastExecution: "2s ago", avgResponseTime: "34ms" },
13
+ { name: "CodeGenerator", role: "Generate code", status: "running", provider: "host", lastExecution: "running", avgResponseTime: "234ms" },
14
+ { name: "Test", role: "Run tests", status: "queued", provider: "host", lastExecution: "--", avgResponseTime: "--" },
15
+ { name: "Validator", role: "Validate outputs", status: "online", provider: "host", lastExecution: "1m ago", avgResponseTime: "67ms" },
16
+ { name: "Fix", role: "Patch defects", status: "online", provider: "host", lastExecution: "2m ago", avgResponseTime: "89ms" },
17
+ { name: "Optimizer", role: "Optimize performance", status: "idle", provider: "anthropic", lastExecution: "1h ago", avgResponseTime: "178ms" },
18
+ { name: "Documentation", role: "Generate docs", status: "online", provider: "host", lastExecution: "5m ago", avgResponseTime: "145ms" },
19
+ { name: "Benchmark", role: "Run benchmarks", status: "idle", provider: "host", lastExecution: "2h ago", avgResponseTime: "567ms" },
20
+ ];
21
+ const lines = [];
22
+ // Header
23
+ lines.push(` ${colorize("AGENT", "bright")} ${colorize("ROLE", "bright")} ${colorize("STATUS", "bright")} ${colorize("PROVIDER", "bright")} ${colorize("LAST RUN", "bright")}`);
24
+ lines.push(" " + "─".repeat(71));
25
+ // Agent list
26
+ for (const agent of agents) {
27
+ const indicator = formatStatus(agent.status);
28
+ const providerTag = providerIndicators[agent.provider] || "[?]";
29
+ const statusColor = agent.status === "running" ? "yellow" : agent.status === "queued" ? "gray" : "green";
30
+ 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")}`);
31
+ }
32
+ lines.push("");
33
+ lines.push(` ${colorize("Legend:", "bright")} ● online ○ idle ▶ running ◐ queued`);
34
+ console.log(drawBox(lines, width, "AGENTS"));
35
+ }
36
+ //# sourceMappingURL=agents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agents.js","sourceRoot":"","sources":["../../../src/hub/commands/agents.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hub/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAYhD,wBAAgB,eAAe,CAAC,GAAG,EAAE,iBAAiB,GAAG,IAAI,CAO5D;AAED,wBAAgB,kBAAkB,IAAI,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAEnE"}
@@ -0,0 +1,120 @@
1
+ import { showStatus } from "./status.js";
2
+ import { listAgents } from "./agents.js";
3
+ import { runWorkflow } from "./run.js";
4
+ import { listProviders } from "./providers.js";
5
+ import { listWorkflows } from "./workflows.js";
6
+ import { showLogs } from "./logs.js";
7
+ import { showMetrics } from "./metrics.js";
8
+ import { showMemory } from "./memory.js";
9
+ const commands = new Map();
10
+ export function registerCommand(def) {
11
+ commands.set(def.name, def);
12
+ if (def.aliases) {
13
+ for (const alias of def.aliases) {
14
+ commands.set(alias, def);
15
+ }
16
+ }
17
+ }
18
+ export function getCommandRegistry() {
19
+ return commands;
20
+ }
21
+ registerCommand({
22
+ name: "help",
23
+ aliases: ["?"],
24
+ description: "Affiche l'aide",
25
+ handler: async () => {
26
+ console.log(`
27
+ Commandes disponibles:
28
+ • run <prompt> : Exécuter un workflow
29
+ • status : Voir l'état du système
30
+ • agents : Liste des agents
31
+ • providers : État des providers
32
+ • workflows : Blueprints disponibles
33
+ • logs : Logs en temps réel
34
+ • metrics : Métriques de performance
35
+ • memory : Graph QSGM
36
+ • dashboard : Ouvrir dashboard web
37
+ • ui : Mode TUI plein écran
38
+ • chat : Mode conversationnel
39
+ • help : Cette aide
40
+ • exit : Quitter
41
+ `);
42
+ },
43
+ });
44
+ registerCommand({
45
+ name: "exit",
46
+ aliases: ["quit"],
47
+ description: "Quitte le hub",
48
+ handler: async () => {
49
+ },
50
+ });
51
+ registerCommand({
52
+ name: "status",
53
+ description: "Affiche le statut du système",
54
+ handler: showStatus,
55
+ });
56
+ registerCommand({
57
+ name: "agents",
58
+ description: "Liste les agents disponibles",
59
+ handler: listAgents,
60
+ });
61
+ registerCommand({
62
+ name: "providers",
63
+ description: "Liste les providers configurés",
64
+ handler: listProviders,
65
+ });
66
+ registerCommand({
67
+ name: "workflows",
68
+ description: "Liste les workflows disponibles",
69
+ handler: listWorkflows,
70
+ });
71
+ registerCommand({
72
+ name: "logs",
73
+ description: "Affiche les logs en temps réel",
74
+ handler: showLogs,
75
+ });
76
+ registerCommand({
77
+ name: "metrics",
78
+ description: "Affiche les métriques de performance",
79
+ handler: showMetrics,
80
+ });
81
+ registerCommand({
82
+ name: "memory",
83
+ description: "Affiche le statut de la mémoire",
84
+ handler: showMemory,
85
+ });
86
+ registerCommand({
87
+ name: "run",
88
+ description: "Exécute un workflow avec le prompt spécifié",
89
+ handler: runWorkflow,
90
+ });
91
+ registerCommand({
92
+ name: "ui",
93
+ description: "Lance le mode TUI plein écran",
94
+ handler: async () => {
95
+ console.log("⚠️ Mode TUI non disponible - nécessite l'installation de react et ink");
96
+ console.log(" npm install react ink");
97
+ },
98
+ });
99
+ registerCommand({
100
+ name: "chat",
101
+ description: "Lance le mode conversationnel",
102
+ handler: async () => {
103
+ console.log("⚠️ Mode Chat non disponible - nécessite l'installation de react et ink");
104
+ console.log(" npm install react ink");
105
+ },
106
+ });
107
+ const placeholderCommands = [
108
+ "install", "config", "doctor", "bridge-test", "benchmark",
109
+ "evolve", "dashboard"
110
+ ];
111
+ for (const cmd of placeholderCommands) {
112
+ registerCommand({
113
+ name: cmd,
114
+ description: `Commande ${cmd}`,
115
+ handler: async () => {
116
+ console.log(`⚠️ Commande '${cmd}' sera implémentée dans une phase ultérieure`);
117
+ },
118
+ });
119
+ }
120
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hub/commands/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logs.d.ts","sourceRoot":"","sources":["../../../src/hub/commands/logs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAWzC,wBAAsB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,QAAQ,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CA0D5H"}
@@ -0,0 +1,53 @@
1
+ import { drawBox } from "../styles/borders.js";
2
+ import { colorize } from "../styles/colors.js";
3
+ export async function showLogs(_args, flags, _context) {
4
+ const width = 85;
5
+ const followMode = flags["f"] === true || flags["follow"] === true;
6
+ const agentFilter = typeof flags["agent"] === "string" ? flags["agent"] : null;
7
+ const levelFilter = typeof flags["level"] === "string" ? flags["level"].toUpperCase() : null;
8
+ // Sample log entries
9
+ const logs = [
10
+ { timestamp: "14:23:07.123", level: "INFO", agent: "IntentClassifier", message: 'detected: "code_generation"' },
11
+ { timestamp: "14:23:07.456", level: "INFO", agent: "TaskPlanner", message: "decomposed into 5 tasks" },
12
+ { timestamp: "14:23:08.012", level: "SUCCESS", agent: "CodeGenerator", message: "generating auth module" },
13
+ { timestamp: "14:23:09.234", level: "SUCCESS", agent: "CodeGenerator", message: "artifacts: 3 files" },
14
+ { timestamp: "14:23:09.456", level: "INFO", agent: "TestAgent", message: "running test suite" },
15
+ { timestamp: "14:23:12.789", level: "WARN", agent: "TestAgent", message: "2 tests failed, triggering FixAgent" },
16
+ { timestamp: "14:23:13.012", level: "INFO", agent: "FixAgent", message: "patching auth/login.ts" },
17
+ { timestamp: "14:23:14.345", level: "SUCCESS", agent: "FixAgent", message: "patches applied" },
18
+ { timestamp: "14:23:14.567", level: "MUTATE", agent: "MutationAgent", message: "workflow optimized (+2 validation nodes)" },
19
+ ];
20
+ // Filter logs
21
+ let filteredLogs = logs;
22
+ if (agentFilter) {
23
+ filteredLogs = filteredLogs.filter(l => l.agent.toLowerCase().includes(agentFilter.toLowerCase()));
24
+ }
25
+ if (levelFilter) {
26
+ filteredLogs = filteredLogs.filter(l => l.level === levelFilter);
27
+ }
28
+ const lines = [];
29
+ // Header
30
+ lines.push(` ${colorize("TIME", "bright")} ${colorize("LEVEL", "bright")} ${colorize("AGENT", "bright")} ${colorize("MESSAGE", "bright")}`);
31
+ lines.push(" " + "─".repeat(81));
32
+ // Log entries
33
+ for (const log of filteredLogs) {
34
+ const levelColor = {
35
+ "INFO": "cyan",
36
+ "WARN": "yellow",
37
+ "ERROR": "red",
38
+ "SUCCESS": "green",
39
+ "MUTATE": "magenta",
40
+ };
41
+ lines.push(` ${log.timestamp} ${colorize(log.level.padEnd(8), levelColor[log.level] || "white")} ${log.agent.padEnd(18)} ${log.message}`);
42
+ }
43
+ if (followMode) {
44
+ lines.push("");
45
+ lines.push(colorize(" [Following... Press Ctrl+C to stop]", "gray"));
46
+ }
47
+ console.log(drawBox(lines, width, "LOGS"));
48
+ if (followMode) {
49
+ // In a real implementation, this would stream new logs
50
+ console.log(colorize("\n (Follow mode not yet implemented)", "gray"));
51
+ }
52
+ }
53
+ //# sourceMappingURL=logs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logs.js","sourceRoot":"","sources":["../../../src/hub/commands/logs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../src/hub/commands/memory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAIzC,wBAAsB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,QAAQ,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CA0C/H"}
@@ -0,0 +1,40 @@
1
+ import { drawBox } from "../styles/borders.js";
2
+ import { colorize, statusIndicators } from "../styles/colors.js";
3
+ export async function showMemory(_args, _flags, _context) {
4
+ const width = 70;
5
+ const stats = {
6
+ graphNodes: 247,
7
+ vectorStoreSize: "1.2 MB",
8
+ cacheEntries: 47,
9
+ lastAccess: "2s ago",
10
+ recentMutations: 3,
11
+ cacheHitRate: "94%",
12
+ };
13
+ const lines = [];
14
+ // Stats
15
+ lines.push(` ${colorize("Graph Memory Nodes:", "bright")} ${colorize(stats.graphNodes.toString(), "cyan")} ${statusIndicators.online}`);
16
+ lines.push(` ${colorize("Vector Store Size:", "bright")} ${colorize(stats.vectorStoreSize, "cyan")}`);
17
+ lines.push(` ${colorize("Cache Entries:", "bright")} ${colorize(stats.cacheEntries.toString(), "cyan")}`);
18
+ lines.push(` ${colorize("Last Access:", "bright")} ${colorize(stats.lastAccess, "gray")}`);
19
+ lines.push(` ${colorize("Recent Mutations:", "bright")} ${colorize(`+${stats.recentMutations}`, "yellow")} ${statusIndicators.mutation}`);
20
+ lines.push(` ${colorize("Cache Hit Rate:", "bright")} ${colorize(stats.cacheHitRate, "green")}`);
21
+ lines.push("");
22
+ lines.push(colorize(" Sample Graph Structure:", "bright"));
23
+ lines.push(" " + "─".repeat(66));
24
+ // Visual graph representation
25
+ lines.push("");
26
+ lines.push(` [action:code_gen]${statusIndicators.online}`);
27
+ lines.push(` │`);
28
+ lines.push(` ├───▶ [file:auth.ts]${statusIndicators.online}`);
29
+ lines.push(` │ │`);
30
+ lines.push(` │ ├───▶ [task:login]${statusIndicators.online}`);
31
+ lines.push(` │ │`);
32
+ lines.push(` │ └───▶ [test:auth]${statusIndicators.online}`);
33
+ lines.push(` │ │`);
34
+ lines.push(` │ │`);
35
+ lines.push(` └───────────────────────┴───▶ [fix:patch_001]${statusIndicators.mutation}`);
36
+ lines.push("");
37
+ lines.push(colorize(" // QUANTUM_SEMANTIC_GRAPH_MEMORY", "gray"));
38
+ console.log(drawBox(lines, width, "MEMORY"));
39
+ }
40
+ //# sourceMappingURL=memory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.js","sourceRoot":"","sources":["../../../src/hub/commands/memory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../../src/hub/commands/metrics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAWzC,wBAAsB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,QAAQ,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAqChI"}
@@ -0,0 +1,35 @@
1
+ import { drawBox, drawProgressBar } from "../styles/borders.js";
2
+ import { colorize } from "../styles/colors.js";
3
+ import { padRight } from "../styles/typography.js";
4
+ export async function showMetrics(_args, _flags, _context) {
5
+ const width = 65;
6
+ const metrics = [
7
+ { label: "Sessions", value: "12", trend: "↗" },
8
+ { label: "Avg Duration", value: "14.2s", trend: "▼ -12%" },
9
+ { label: "Success Rate", value: "96%", trend: "▲ +3%" },
10
+ { label: "Cost (USD)", value: "$0.002", trend: "→" },
11
+ { label: "Cache Savings", value: "67%", trend: "↗" },
12
+ ];
13
+ const topAgents = [
14
+ { name: "CodeGenerator", usage: 45 },
15
+ { name: "TestAgent", usage: 32 },
16
+ { name: "FixAgent", usage: 18 },
17
+ { name: "IntentClassifier", usage: 5 },
18
+ ];
19
+ const lines = [];
20
+ // General metrics
21
+ for (const metric of metrics) {
22
+ const trendColor = metric.trend?.includes("▲") ? "green" : metric.trend?.includes("▼") ? "green" : "gray";
23
+ lines.push(` ${padRight(metric.label, 15)} ${colorize(metric.value.padEnd(12), "cyan")} ${colorize(metric.trend || "", trendColor)}`);
24
+ }
25
+ lines.push("");
26
+ lines.push(colorize(" Top Agents:", "bright"));
27
+ lines.push(" " + "─".repeat(61));
28
+ // Top agents with progress bars
29
+ for (const agent of topAgents) {
30
+ const bar = drawProgressBar(agent.usage, 20);
31
+ lines.push(` ${padRight(agent.name, 18)} ${bar} ${colorize(`${agent.usage}%`, "yellow")}`);
32
+ }
33
+ console.log(drawBox(lines, width, "METRICS"));
34
+ }
35
+ //# sourceMappingURL=metrics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../../src/hub/commands/metrics.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAQnD,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,KAAe,EAAE,MAAwC,EAAE,QAAoB;IAC/G,MAAM,KAAK,GAAG,EAAE,CAAC;IAEjB,MAAM,OAAO,GAAiB;QAC5B,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE;QAC9C,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE;QAC1D,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE;QACvD,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE;QACpD,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE;KACrD,CAAC;IAEF,MAAM,SAAS,GAAG;QAChB,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,EAAE,EAAE;QACpC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,EAAE;QAChC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE;QAC/B,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC,EAAE;KACvC,CAAC;IAEF,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,kBAAkB;IAClB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;QAC1G,KAAK,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC;IACzI,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC,CAAC;IAChD,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAElC,gCAAgC;IAChC,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;QAC9B,MAAM,GAAG,GAAG,eAAe,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC7C,KAAK,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,IAAI,QAAQ,CAAC,GAAG,KAAK,CAAC,KAAK,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC9F,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;AAChD,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../../src/hub/commands/providers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAazC,wBAAsB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,QAAQ,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAyBlI"}
@@ -0,0 +1,26 @@
1
+ import { drawBox } from "../styles/borders.js";
2
+ import { colorize, formatStatus } from "../styles/colors.js";
3
+ import { padRight } from "../styles/typography.js";
4
+ export async function listProviders(_args, _flags, _context) {
5
+ const width = 65;
6
+ const providers = [
7
+ { name: "Host-Native", key: "[H]", status: "online", latency: "12ms", lastCall: "2s ago" },
8
+ { name: "Claude Code", key: "[C]", status: "online", latency: "8ms", lastCall: "5s ago" },
9
+ { name: "OpenCode", key: "[O]", status: "idle", latency: "--", lastCall: "1h ago" },
10
+ { name: "Anthropic API", key: "[A]", status: "online", latency: "45ms", lastCall: "1m ago" },
11
+ { name: "Gemini", key: "[G]", status: "idle", latency: "--", lastCall: "2h ago" },
12
+ { name: "Mistral", key: "[M]", status: "idle", latency: "--", lastCall: "3h ago" },
13
+ { name: "Groq", key: "[Q]", status: "idle", latency: "--", lastCall: "5h ago" },
14
+ { name: "OpenAI", key: "[O]", status: "idle", latency: "--", lastCall: "1d ago" },
15
+ ];
16
+ const lines = [];
17
+ lines.push(` ${colorize("PROVIDER", "bright")} ${colorize("STATUS", "bright")} ${colorize("LATENCY", "bright")} ${colorize("LAST CALL", "bright")}`);
18
+ lines.push(" " + "─".repeat(61));
19
+ for (const provider of providers) {
20
+ const indicator = formatStatus(provider.status);
21
+ const statusColor = provider.status === "online" ? "green" : "gray";
22
+ lines.push(` ${provider.key} ${padRight(provider.name, 14)} ${indicator} ${colorize(provider.status.toUpperCase().padEnd(8), statusColor)} ${padRight(provider.latency, 8)} ${colorize(provider.lastCall, "gray")}`);
23
+ }
24
+ console.log(drawBox(lines, width, "PROVIDERS"));
25
+ }
26
+ //# sourceMappingURL=providers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"providers.js","sourceRoot":"","sources":["../../../src/hub/commands/providers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/hub/commands/run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAiC7H"}