@probelabs/visor 0.1.127 → 0.1.129

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 (255) hide show
  1. package/README.md +31 -1
  2. package/defaults/.visor.yaml +420 -0
  3. package/dist/ai-review-service.d.ts +1 -0
  4. package/dist/ai-review-service.d.ts.map +1 -1
  5. package/dist/cli-main.d.ts.map +1 -1
  6. package/dist/config.d.ts +4 -0
  7. package/dist/config.d.ts.map +1 -1
  8. package/dist/daemon.js +19 -0
  9. package/dist/defaults/.visor.yaml +420 -0
  10. package/dist/docs/commands.md +1 -1
  11. package/dist/docs/debugging.md +133 -0
  12. package/dist/docs/dev-playbook.md +10 -0
  13. package/dist/docs/index.md +1 -0
  14. package/dist/docs/scheduler.md +503 -0
  15. package/dist/docs/slack-integration.md +21 -0
  16. package/dist/docs/timeouts.md +1 -1
  17. package/dist/docs/workflow-creation-guide.md +39 -0
  18. package/dist/examples/README.md +30 -0
  19. package/dist/examples/calculator-config.yaml +4 -4
  20. package/dist/examples/sandbox-basic.yaml +18 -0
  21. package/dist/examples/sandbox-cache.yaml +32 -0
  22. package/dist/examples/sandbox-dockerfile-inline.yaml +22 -0
  23. package/dist/examples/sandbox-env-passthrough.yaml +26 -0
  24. package/dist/examples/sandbox-multi-env.yaml +27 -0
  25. package/dist/examples/sandbox-read-only.yaml +33 -0
  26. package/dist/examples/scheduler-example.yaml +118 -0
  27. package/dist/frontends/host.d.ts.map +1 -1
  28. package/dist/frontends/slack-frontend.d.ts.map +1 -1
  29. package/dist/generated/config-schema.d.ts +230 -9
  30. package/dist/generated/config-schema.d.ts.map +1 -1
  31. package/dist/index.js +13676 -1604
  32. package/dist/mcp-server.d.ts +8 -8
  33. package/dist/{traces/run-2026-02-01T09-59-08-165Z.ndjson → output/traces/run-2026-02-08T18-16-04-160Z.ndjson} +84 -84
  34. package/dist/{traces/run-2026-02-01T09-59-52-595Z.ndjson → output/traces/run-2026-02-08T18-16-51-253Z.ndjson} +1029 -1029
  35. package/dist/providers/ai-check-provider.d.ts +16 -0
  36. package/dist/providers/ai-check-provider.d.ts.map +1 -1
  37. package/dist/providers/check-provider.interface.d.ts +5 -0
  38. package/dist/providers/check-provider.interface.d.ts.map +1 -1
  39. package/dist/providers/command-check-provider.d.ts.map +1 -1
  40. package/dist/providers/log-check-provider.d.ts.map +1 -1
  41. package/dist/providers/mcp-check-provider.d.ts +3 -0
  42. package/dist/providers/mcp-check-provider.d.ts.map +1 -1
  43. package/dist/providers/mcp-custom-sse-server.d.ts +22 -2
  44. package/dist/providers/mcp-custom-sse-server.d.ts.map +1 -1
  45. package/dist/providers/workflow-check-provider.d.ts.map +1 -1
  46. package/dist/providers/workflow-tool-executor.d.ts +2 -0
  47. package/dist/providers/workflow-tool-executor.d.ts.map +1 -1
  48. package/dist/sandbox/cache-volume-manager.d.ts +48 -0
  49. package/dist/sandbox/cache-volume-manager.d.ts.map +1 -0
  50. package/dist/sandbox/check-runner.d.ts +25 -0
  51. package/dist/sandbox/check-runner.d.ts.map +1 -0
  52. package/dist/sandbox/docker-compose-sandbox.d.ts +25 -0
  53. package/dist/sandbox/docker-compose-sandbox.d.ts.map +1 -0
  54. package/dist/sandbox/docker-image-sandbox.d.ts +32 -0
  55. package/dist/sandbox/docker-image-sandbox.d.ts.map +1 -0
  56. package/dist/sandbox/env-filter.d.ts +19 -0
  57. package/dist/sandbox/env-filter.d.ts.map +1 -0
  58. package/dist/sandbox/index.d.ts +9 -0
  59. package/dist/sandbox/index.d.ts.map +1 -0
  60. package/dist/sandbox/sandbox-manager.d.ts +39 -0
  61. package/dist/sandbox/sandbox-manager.d.ts.map +1 -0
  62. package/dist/sandbox/sandbox-telemetry.d.ts +9 -0
  63. package/dist/sandbox/sandbox-telemetry.d.ts.map +1 -0
  64. package/dist/sandbox/trace-ingester.d.ts +19 -0
  65. package/dist/sandbox/trace-ingester.d.ts.map +1 -0
  66. package/dist/sandbox/types.d.ts +149 -0
  67. package/dist/sandbox/types.d.ts.map +1 -0
  68. package/dist/scheduler/cli-handler.d.ts +6 -0
  69. package/dist/scheduler/cli-handler.d.ts.map +1 -0
  70. package/dist/scheduler/index.d.ts +14 -0
  71. package/dist/scheduler/index.d.ts.map +1 -0
  72. package/dist/scheduler/schedule-parser.d.ts +34 -0
  73. package/dist/scheduler/schedule-parser.d.ts.map +1 -0
  74. package/dist/scheduler/schedule-store.d.ts +182 -0
  75. package/dist/scheduler/schedule-store.d.ts.map +1 -0
  76. package/dist/scheduler/schedule-tool.d.ts +137 -0
  77. package/dist/scheduler/schedule-tool.d.ts.map +1 -0
  78. package/dist/scheduler/scheduler.d.ts +195 -0
  79. package/dist/scheduler/scheduler.d.ts.map +1 -0
  80. package/dist/sdk/check-provider-registry-ACRGIYOB.mjs +28 -0
  81. package/dist/sdk/check-provider-registry-VYHKFHK2.mjs +28 -0
  82. package/dist/sdk/{chunk-CNX7V5JK.mjs → chunk-25IC7KXZ.mjs} +2 -2
  83. package/dist/sdk/{chunk-IHZOSIF4.mjs → chunk-2KB35MB7.mjs} +3 -3
  84. package/dist/sdk/{chunk-HQL734ZI.mjs → chunk-6W75IMDC.mjs} +3 -3
  85. package/dist/sdk/{chunk-XWJPT5KQ.mjs → chunk-7YSOINAQ.mjs} +392 -18
  86. package/dist/sdk/chunk-7YSOINAQ.mjs.map +1 -0
  87. package/dist/sdk/{chunk-3OMWVM6J.mjs → chunk-B7BVQM5K.mjs} +2 -2
  88. package/dist/sdk/chunk-BDGUM6BA.mjs +38825 -0
  89. package/dist/sdk/chunk-BDGUM6BA.mjs.map +1 -0
  90. package/dist/sdk/{chunk-VW2GBXQT.mjs → chunk-D5KI4YQ4.mjs} +3 -3
  91. package/dist/sdk/chunk-DGZPPGJJ.mjs +38825 -0
  92. package/dist/sdk/chunk-DGZPPGJJ.mjs.map +1 -0
  93. package/dist/sdk/chunk-H5BOW5CR.mjs +91 -0
  94. package/dist/sdk/chunk-H5BOW5CR.mjs.map +1 -0
  95. package/dist/sdk/{chunk-YSN4G6CI.mjs → chunk-HEX3RL32.mjs} +81 -3
  96. package/dist/sdk/{chunk-YSN4G6CI.mjs.map → chunk-HEX3RL32.mjs.map} +1 -1
  97. package/dist/sdk/{chunk-ZYAUYXSW.mjs → chunk-J5RGJQ53.mjs} +14 -3
  98. package/dist/sdk/{chunk-ZYAUYXSW.mjs.map → chunk-J5RGJQ53.mjs.map} +1 -1
  99. package/dist/sdk/{chunk-WMJKH4XE.mjs → chunk-J7LXIPZS.mjs} +16 -1
  100. package/dist/sdk/{chunk-EXFGO4FX.mjs → chunk-KFKHU6CM.mjs} +2 -2
  101. package/dist/sdk/{chunk-MPS4HVQI.mjs → chunk-N7HO6KKC.mjs} +8 -8
  102. package/dist/sdk/{chunk-O5EZDNYL.mjs → chunk-NCWIZVOT.mjs} +2 -2
  103. package/dist/sdk/{chunk-3NMLT3YS.mjs → chunk-PO7X5XI7.mjs} +3 -3
  104. package/dist/sdk/{chunk-BHOKBQPB.mjs → chunk-R5Z7YWPB.mjs} +5 -5
  105. package/dist/sdk/{chunk-EORMDOZU.mjs → chunk-SGS2VMEL.mjs} +7 -7
  106. package/dist/sdk/{chunk-BOVFH3LI.mjs → chunk-VF6XIUE4.mjs} +21 -10
  107. package/dist/sdk/chunk-VF6XIUE4.mjs.map +1 -0
  108. package/dist/sdk/{chunk-J2QWVDXK.mjs → chunk-XDLQ3UNF.mjs} +3 -3
  109. package/dist/sdk/{chunk-S2RUE2RG.mjs → chunk-XR7XXGL7.mjs} +3 -3
  110. package/dist/sdk/{chunk-NAW3DB3I.mjs → chunk-XXAEN5KU.mjs} +3 -3
  111. package/dist/sdk/command-executor-DVVXERLR.mjs +14 -0
  112. package/dist/sdk/config-7VTT64SQ.mjs +16 -0
  113. package/dist/sdk/config-merger-RKCZJQ44.mjs +10 -0
  114. package/dist/sdk/event-bus-5K3Y2FCS.mjs +43 -0
  115. package/dist/sdk/{event-bus-5BEVPQ6T.mjs.map → event-bus-5K3Y2FCS.mjs.map} +1 -1
  116. package/dist/sdk/failure-condition-evaluator-4WMDF4Q3.mjs +17 -0
  117. package/dist/sdk/git-repository-analyzer-QFMW6WIS.mjs +471 -0
  118. package/dist/sdk/git-repository-analyzer-QFMW6WIS.mjs.map +1 -0
  119. package/dist/sdk/{github-frontend-5PCKKHVC.mjs → github-frontend-3N2NLO66.mjs} +520 -588
  120. package/dist/sdk/github-frontend-3N2NLO66.mjs.map +1 -0
  121. package/dist/sdk/host-ONVMEHAA.mjs +63 -0
  122. package/dist/sdk/host-ONVMEHAA.mjs.map +1 -0
  123. package/dist/sdk/{liquid-extensions-I7O7KMHF.mjs → liquid-extensions-5IZLTFSZ.mjs} +8 -8
  124. package/dist/sdk/memory-store-3N4AZCYB.mjs +12 -0
  125. package/dist/sdk/{metrics-7PP3EJUH.mjs → metrics-GXQ2EDXA.mjs} +4 -4
  126. package/dist/sdk/ndjson-sink-FD2PSXGD.mjs +52 -0
  127. package/dist/sdk/{ndjson-sink-B4V4NTAQ.mjs.map → ndjson-sink-FD2PSXGD.mjs.map} +1 -1
  128. package/dist/sdk/{prompt-state-EZYOUG75.mjs → prompt-state-YHGXB2OA.mjs} +5 -5
  129. package/dist/sdk/{renderer-schema-CKFB5NDB.mjs → renderer-schema-CMXOLNIG.mjs} +4 -4
  130. package/dist/sdk/routing-S3Y7T2X3.mjs +24 -0
  131. package/dist/sdk/sdk.d.mts +212 -4
  132. package/dist/sdk/sdk.d.ts +212 -4
  133. package/dist/sdk/sdk.js +26927 -6264
  134. package/dist/sdk/sdk.js.map +1 -1
  135. package/dist/sdk/sdk.mjs +23 -1278
  136. package/dist/sdk/sdk.mjs.map +1 -1
  137. package/dist/sdk/session-registry-6PV6SGEJ.mjs +10 -0
  138. package/dist/sdk/slack-frontend-R3M2CACB.mjs +899 -0
  139. package/dist/sdk/slack-frontend-R3M2CACB.mjs.map +1 -0
  140. package/dist/sdk/{trace-helpers-VP6QYVBX.mjs → trace-helpers-YHNPC7MR.mjs} +4 -4
  141. package/dist/sdk/tracer-init-XPRWKMZT.mjs +10 -0
  142. package/dist/sdk/tui-frontend-S546M7A7.mjs +281 -0
  143. package/dist/sdk/tui-frontend-S546M7A7.mjs.map +1 -0
  144. package/dist/sdk/workflow-check-provider-4F3432ZP.mjs +28 -0
  145. package/dist/sdk/workflow-check-provider-A44PBPG2.mjs +28 -0
  146. package/dist/sdk/workflow-check-provider-A44PBPG2.mjs.map +1 -0
  147. package/dist/sdk/workflow-registry-ZAYYXLEP.mjs +12 -0
  148. package/dist/sdk/workflow-registry-ZAYYXLEP.mjs.map +1 -0
  149. package/dist/slack/client.d.ts +28 -0
  150. package/dist/slack/client.d.ts.map +1 -1
  151. package/dist/slack/schedule-tool-handler.d.ts +46 -0
  152. package/dist/slack/schedule-tool-handler.d.ts.map +1 -0
  153. package/dist/slack/slack-output-adapter.d.ts +44 -0
  154. package/dist/slack/slack-output-adapter.d.ts.map +1 -0
  155. package/dist/slack/socket-runner.d.ts +22 -0
  156. package/dist/slack/socket-runner.d.ts.map +1 -1
  157. package/dist/state-machine/dispatch/execution-invoker.d.ts.map +1 -1
  158. package/dist/state-machine/dispatch/foreach-processor.d.ts.map +1 -1
  159. package/dist/state-machine/dispatch/sandbox-routing.d.ts +21 -0
  160. package/dist/state-machine/dispatch/sandbox-routing.d.ts.map +1 -0
  161. package/dist/state-machine/states/level-dispatch.d.ts.map +1 -1
  162. package/dist/state-machine-execution-engine.d.ts.map +1 -1
  163. package/dist/test-runner/index.d.ts +5 -0
  164. package/dist/test-runner/index.d.ts.map +1 -1
  165. package/dist/{output/traces/run-2026-02-01T09-59-08-165Z.ndjson → traces/run-2026-02-08T18-16-04-160Z.ndjson} +84 -84
  166. package/dist/{output/traces/run-2026-02-01T09-59-52-595Z.ndjson → traces/run-2026-02-08T18-16-51-253Z.ndjson} +1029 -1029
  167. package/dist/tui/chat-runner.d.ts +39 -0
  168. package/dist/tui/chat-runner.d.ts.map +1 -0
  169. package/dist/tui/chat-state.d.ts +56 -0
  170. package/dist/tui/chat-state.d.ts.map +1 -0
  171. package/dist/tui/chat-tui.d.ts +69 -0
  172. package/dist/tui/chat-tui.d.ts.map +1 -0
  173. package/dist/tui/components/chat-box.d.ts +33 -0
  174. package/dist/tui/components/chat-box.d.ts.map +1 -0
  175. package/dist/tui/components/input-bar.d.ts +50 -0
  176. package/dist/tui/components/input-bar.d.ts.map +1 -0
  177. package/dist/tui/components/status-bar.d.ts +31 -0
  178. package/dist/tui/components/status-bar.d.ts.map +1 -0
  179. package/dist/tui/components/trace-viewer.d.ts +73 -0
  180. package/dist/tui/components/trace-viewer.d.ts.map +1 -0
  181. package/dist/tui/index.d.ts +14 -0
  182. package/dist/tui/index.d.ts.map +1 -0
  183. package/dist/tui/tui-frontend.d.ts +29 -0
  184. package/dist/tui/tui-frontend.d.ts.map +1 -0
  185. package/dist/types/bot.d.ts +35 -0
  186. package/dist/types/bot.d.ts.map +1 -1
  187. package/dist/types/config.d.ts +152 -3
  188. package/dist/types/config.d.ts.map +1 -1
  189. package/dist/types/engine.d.ts +3 -0
  190. package/dist/types/engine.d.ts.map +1 -1
  191. package/dist/utils/sandbox.d.ts.map +1 -1
  192. package/dist/utils/workspace-manager.d.ts +22 -2
  193. package/dist/utils/workspace-manager.d.ts.map +1 -1
  194. package/dist/utils/worktree-manager.d.ts +2 -1
  195. package/dist/utils/worktree-manager.d.ts.map +1 -1
  196. package/package.json +4 -2
  197. package/dist/docs/NPM_USAGE.md +0 -281
  198. package/dist/generated/config-schema.json +0 -2161
  199. package/dist/sdk/check-provider-registry-CVUONJ5A.mjs +0 -28
  200. package/dist/sdk/chunk-BOVFH3LI.mjs.map +0 -1
  201. package/dist/sdk/chunk-TS6BUNAI.mjs +0 -17722
  202. package/dist/sdk/chunk-TS6BUNAI.mjs.map +0 -1
  203. package/dist/sdk/chunk-XWJPT5KQ.mjs.map +0 -1
  204. package/dist/sdk/command-executor-Q7MHJKZJ.mjs +0 -14
  205. package/dist/sdk/config-DXX64GD3.mjs +0 -16
  206. package/dist/sdk/config-merger-PX3WIT57.mjs +0 -10
  207. package/dist/sdk/event-bus-5BEVPQ6T.mjs +0 -35
  208. package/dist/sdk/failure-condition-evaluator-G4HMJPXF.mjs +0 -17
  209. package/dist/sdk/git-repository-analyzer-HJC4MYW4.mjs +0 -458
  210. package/dist/sdk/git-repository-analyzer-HJC4MYW4.mjs.map +0 -1
  211. package/dist/sdk/github-frontend-5PCKKHVC.mjs.map +0 -1
  212. package/dist/sdk/host-H3AWNZ2F.mjs +0 -52
  213. package/dist/sdk/host-H3AWNZ2F.mjs.map +0 -1
  214. package/dist/sdk/memory-store-RW5N2NGJ.mjs +0 -12
  215. package/dist/sdk/ndjson-sink-B4V4NTAQ.mjs +0 -44
  216. package/dist/sdk/routing-QHTGDIXF.mjs +0 -24
  217. package/dist/sdk/session-registry-4E6YRQ77.mjs +0 -10
  218. package/dist/sdk/slack-frontend-JUT3TYVC.mjs +0 -821
  219. package/dist/sdk/slack-frontend-JUT3TYVC.mjs.map +0 -1
  220. package/dist/sdk/tracer-init-GSLPPLCD.mjs +0 -10
  221. package/dist/sdk/workflow-check-provider-3IWBAZP7.mjs +0 -28
  222. package/dist/sdk/workflow-registry-KFWSDSLM.mjs +0 -12
  223. package/dist/tui.d.ts +0 -51
  224. package/dist/tui.d.ts.map +0 -1
  225. /package/dist/sdk/{check-provider-registry-CVUONJ5A.mjs.map → check-provider-registry-ACRGIYOB.mjs.map} +0 -0
  226. /package/dist/sdk/{chunk-WMJKH4XE.mjs.map → check-provider-registry-VYHKFHK2.mjs.map} +0 -0
  227. /package/dist/sdk/{chunk-CNX7V5JK.mjs.map → chunk-25IC7KXZ.mjs.map} +0 -0
  228. /package/dist/sdk/{chunk-IHZOSIF4.mjs.map → chunk-2KB35MB7.mjs.map} +0 -0
  229. /package/dist/sdk/{chunk-HQL734ZI.mjs.map → chunk-6W75IMDC.mjs.map} +0 -0
  230. /package/dist/sdk/{chunk-3OMWVM6J.mjs.map → chunk-B7BVQM5K.mjs.map} +0 -0
  231. /package/dist/sdk/{chunk-VW2GBXQT.mjs.map → chunk-D5KI4YQ4.mjs.map} +0 -0
  232. /package/dist/sdk/{command-executor-Q7MHJKZJ.mjs.map → chunk-J7LXIPZS.mjs.map} +0 -0
  233. /package/dist/sdk/{chunk-EXFGO4FX.mjs.map → chunk-KFKHU6CM.mjs.map} +0 -0
  234. /package/dist/sdk/{chunk-MPS4HVQI.mjs.map → chunk-N7HO6KKC.mjs.map} +0 -0
  235. /package/dist/sdk/{chunk-O5EZDNYL.mjs.map → chunk-NCWIZVOT.mjs.map} +0 -0
  236. /package/dist/sdk/{chunk-3NMLT3YS.mjs.map → chunk-PO7X5XI7.mjs.map} +0 -0
  237. /package/dist/sdk/{chunk-BHOKBQPB.mjs.map → chunk-R5Z7YWPB.mjs.map} +0 -0
  238. /package/dist/sdk/{chunk-EORMDOZU.mjs.map → chunk-SGS2VMEL.mjs.map} +0 -0
  239. /package/dist/sdk/{chunk-J2QWVDXK.mjs.map → chunk-XDLQ3UNF.mjs.map} +0 -0
  240. /package/dist/sdk/{chunk-S2RUE2RG.mjs.map → chunk-XR7XXGL7.mjs.map} +0 -0
  241. /package/dist/sdk/{chunk-NAW3DB3I.mjs.map → chunk-XXAEN5KU.mjs.map} +0 -0
  242. /package/dist/sdk/{config-DXX64GD3.mjs.map → command-executor-DVVXERLR.mjs.map} +0 -0
  243. /package/dist/sdk/{config-merger-PX3WIT57.mjs.map → config-7VTT64SQ.mjs.map} +0 -0
  244. /package/dist/sdk/{failure-condition-evaluator-G4HMJPXF.mjs.map → config-merger-RKCZJQ44.mjs.map} +0 -0
  245. /package/dist/sdk/{liquid-extensions-I7O7KMHF.mjs.map → failure-condition-evaluator-4WMDF4Q3.mjs.map} +0 -0
  246. /package/dist/sdk/{memory-store-RW5N2NGJ.mjs.map → liquid-extensions-5IZLTFSZ.mjs.map} +0 -0
  247. /package/dist/sdk/{metrics-7PP3EJUH.mjs.map → memory-store-3N4AZCYB.mjs.map} +0 -0
  248. /package/dist/sdk/{prompt-state-EZYOUG75.mjs.map → metrics-GXQ2EDXA.mjs.map} +0 -0
  249. /package/dist/sdk/{routing-QHTGDIXF.mjs.map → prompt-state-YHGXB2OA.mjs.map} +0 -0
  250. /package/dist/sdk/{renderer-schema-CKFB5NDB.mjs.map → renderer-schema-CMXOLNIG.mjs.map} +0 -0
  251. /package/dist/sdk/{session-registry-4E6YRQ77.mjs.map → routing-S3Y7T2X3.mjs.map} +0 -0
  252. /package/dist/sdk/{trace-helpers-VP6QYVBX.mjs.map → session-registry-6PV6SGEJ.mjs.map} +0 -0
  253. /package/dist/sdk/{tracer-init-GSLPPLCD.mjs.map → trace-helpers-YHNPC7MR.mjs.map} +0 -0
  254. /package/dist/sdk/{workflow-check-provider-3IWBAZP7.mjs.map → tracer-init-XPRWKMZT.mjs.map} +0 -0
  255. /package/dist/sdk/{workflow-registry-KFWSDSLM.mjs.map → workflow-check-provider-4F3432ZP.mjs.map} +0 -0
@@ -0,0 +1,39 @@
1
+ import type { VisorConfig } from '../types/config';
2
+ import { StateMachineExecutionEngine } from '../state-machine-execution-engine';
3
+ import { ChatTUI } from './chat-tui';
4
+ import { ChatStateManager } from './chat-state';
5
+ import { TuiFrontend } from './tui-frontend';
6
+ export interface TuiChatRunnerConfig {
7
+ engine?: StateMachineExecutionEngine;
8
+ config: VisorConfig;
9
+ stateManager?: ChatStateManager;
10
+ endpoint?: string;
11
+ debug?: boolean;
12
+ }
13
+ export declare class TuiChatRunner {
14
+ private cfg;
15
+ private stateManager;
16
+ private chatTui?;
17
+ private tuiFrontend?;
18
+ private endpoint;
19
+ private debug;
20
+ private messageCounter;
21
+ private isRunning;
22
+ private currentExecution?;
23
+ constructor(config: TuiChatRunnerConfig);
24
+ start(): Promise<void>;
25
+ stop(): Promise<void>;
26
+ getChatTUI(): ChatTUI | undefined;
27
+ getStateManager(): ChatStateManager;
28
+ getTuiFrontend(): TuiFrontend | undefined;
29
+ private handleUserMessage;
30
+ private resumeFromWaiting;
31
+ private executeWorkflow;
32
+ private prepareConfigForRun;
33
+ waitForExit(timeoutMs?: number): Promise<void>;
34
+ }
35
+ /**
36
+ * Create and start a TuiChatRunner with the given configuration.
37
+ */
38
+ export declare function startChatTUI(config: TuiChatRunnerConfig): Promise<TuiChatRunner>;
39
+ //# sourceMappingURL=chat-runner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-runner.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/tui/chat-runner.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;AAChF,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAuB,MAAM,cAAc,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,2BAA2B,CAAC;IACrC,MAAM,EAAE,WAAW,CAAC;IACpB,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,GAAG,CAAc;IACzB,OAAO,CAAC,YAAY,CAAmB;IACvC,OAAO,CAAC,OAAO,CAAC,CAAU;IAC1B,OAAO,CAAC,WAAW,CAAC,CAAc;IAClC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,KAAK,CAAU;IACvB,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,gBAAgB,CAAC,CAAgB;gBAE7B,MAAM,EAAE,mBAAmB;IAUjC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAwBtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAgB3B,UAAU,IAAI,OAAO,GAAG,SAAS;IAIjC,eAAe,IAAI,gBAAgB;IAInC,cAAc,IAAI,WAAW,GAAG,SAAS;YAI3B,iBAAiB;YAwBjB,iBAAiB;YAajB,eAAe;IAuG7B,OAAO,CAAC,mBAAmB;IAiBrB,WAAW,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAIrD;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,aAAa,CAAC,CAItF"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Chat State Manager for TUI
3
+ *
4
+ * Manages chat message history, processing state, and human-input waiting state.
5
+ */
6
+ export interface ChatMessage {
7
+ id: string;
8
+ role: 'user' | 'assistant' | 'system';
9
+ content: string;
10
+ timestamp: Date;
11
+ checkId?: string;
12
+ }
13
+ export interface WaitingState {
14
+ checkId: string;
15
+ prompt: string;
16
+ placeholder?: string;
17
+ multiline?: boolean;
18
+ timeout?: number;
19
+ defaultValue?: string;
20
+ allowEmpty?: boolean;
21
+ }
22
+ export interface ChatStateManagerOptions {
23
+ maxMessages?: number;
24
+ }
25
+ export declare class ChatStateManager {
26
+ private _history;
27
+ private _isProcessing;
28
+ private _waitingState?;
29
+ private _inputQueue;
30
+ private _maxMessages;
31
+ private _messageCounter;
32
+ private _statusText;
33
+ constructor(options?: ChatStateManagerOptions);
34
+ get history(): ChatMessage[];
35
+ get isProcessing(): boolean;
36
+ get isWaiting(): boolean;
37
+ get waitingState(): WaitingState | undefined;
38
+ get hasQueuedInput(): boolean;
39
+ get statusText(): string;
40
+ setStatus(text: string): void;
41
+ addMessage(role: 'user' | 'assistant' | 'system', content: string, checkId?: string): ChatMessage;
42
+ setProcessing(processing: boolean): void;
43
+ setWaiting(state: WaitingState | undefined): void;
44
+ clearWaiting(): void;
45
+ queueInput(input: string): void;
46
+ dequeueInput(): string | undefined;
47
+ clearQueue(): void;
48
+ clearHistory(): void;
49
+ getRecentMessages(count: number): ChatMessage[];
50
+ formatMessageForDisplay(message: ChatMessage): string;
51
+ formatHistoryForDisplay(): string;
52
+ }
53
+ export declare function getChatStateManager(): ChatStateManager;
54
+ export declare function setChatStateManager(manager: ChatStateManager): void;
55
+ export declare function resetChatStateManager(): void;
56
+ //# sourceMappingURL=chat-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-state.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/tui/chat-state.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,uBAAuB;IACtC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,aAAa,CAAC,CAAe;IACrC,OAAO,CAAC,WAAW,CAAgB;IACnC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,WAAW,CAAW;gBAElB,OAAO,GAAE,uBAA4B;IAIjD,IAAI,OAAO,IAAI,WAAW,EAAE,CAE3B;IAED,IAAI,YAAY,IAAI,OAAO,CAE1B;IAED,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,IAAI,YAAY,IAAI,YAAY,GAAG,SAAS,CAE3C;IAED,IAAI,cAAc,IAAI,OAAO,CAE5B;IAED,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI7B,UAAU,CACR,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,EACrC,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,GACf,WAAW;IAmBd,aAAa,CAAC,UAAU,EAAE,OAAO,GAAG,IAAI;IASxC,UAAU,CAAC,KAAK,EAAE,YAAY,GAAG,SAAS,GAAG,IAAI;IASjD,YAAY,IAAI,IAAI;IAOpB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI/B,YAAY,IAAI,MAAM,GAAG,SAAS;IAIlC,UAAU,IAAI,IAAI;IAIlB,YAAY,IAAI,IAAI;IAIpB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,EAAE;IAI/C,uBAAuB,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM;IAYrD,uBAAuB,IAAI,MAAM;CAQlC;AAKD,wBAAgB,mBAAmB,IAAI,gBAAgB,CAKtD;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAEnE;AAED,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C"}
@@ -0,0 +1,69 @@
1
+ import { ChatStateManager, ChatMessage } from './chat-state';
2
+ export interface ChatTUIOptions {
3
+ stateManager?: ChatStateManager;
4
+ onMessageSubmit?: (message: string) => void | Promise<void>;
5
+ onExit?: () => void;
6
+ traceFilePath?: string;
7
+ }
8
+ export declare class ChatTUI {
9
+ private screen?;
10
+ private mainPane?;
11
+ private logsPane?;
12
+ private tracesPane?;
13
+ private chatBox?;
14
+ private inputBar?;
15
+ private statusBar?;
16
+ private logsStatusBar?;
17
+ private tracesStatusBar?;
18
+ private logsBox?;
19
+ private traceViewer?;
20
+ private activeTab;
21
+ private stateManager;
22
+ private onMessageSubmit?;
23
+ private onExit?;
24
+ private traceFilePath?;
25
+ private consoleRestore?;
26
+ private consoleExitHandler?;
27
+ private processExitHandler?;
28
+ private abortHandler?;
29
+ private pendingLogs;
30
+ private running;
31
+ constructor(options?: ChatTUIOptions);
32
+ getStateManager(): ChatStateManager;
33
+ setTraceFile(path: string): void;
34
+ start(): void;
35
+ private setupKeyBindings;
36
+ stop(): void;
37
+ setRunning(running: boolean): void;
38
+ setProcessing(processing: boolean): void;
39
+ setWaiting(waiting: boolean, prompt?: string): void;
40
+ setStatus(text: string): void;
41
+ setAbortHandler(handler?: () => void): void;
42
+ addUserMessage(content: string): ChatMessage;
43
+ addAssistantMessage(content: string, checkId?: string): ChatMessage;
44
+ addSystemMessage(content: string): ChatMessage;
45
+ refreshChat(): void;
46
+ appendLog(line: string): void;
47
+ captureConsole(): () => void;
48
+ waitForExit(timeoutMs?: number): Promise<void>;
49
+ /**
50
+ * Prompt user for input and return the result.
51
+ * This is used for human-input checks that require a response.
52
+ */
53
+ promptUser(options: {
54
+ prompt: string;
55
+ placeholder?: string;
56
+ multiline?: boolean;
57
+ timeout?: number;
58
+ defaultValue?: string;
59
+ allowEmpty?: boolean;
60
+ }): Promise<string>;
61
+ private _originalSubmitHandler?;
62
+ private handleInputSubmit;
63
+ private handleInputEscape;
64
+ private toggleTab;
65
+ private setActiveTab;
66
+ private updateLayout;
67
+ private updateStatusBar;
68
+ }
69
+ //# sourceMappingURL=chat-tui.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-tui.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/tui/chat-tui.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * ChatBox Component
3
+ *
4
+ * Displays scrollable chat message history with user/assistant distinction.
5
+ */
6
+ import blessed from 'blessed';
7
+ import type { ChatMessage } from '../chat-state';
8
+ type Screen = blessed.Widgets.Screen;
9
+ type Box = blessed.Widgets.BoxElement;
10
+ export interface ChatBoxOptions {
11
+ parent: Box;
12
+ }
13
+ export declare class ChatBox {
14
+ private box;
15
+ private parent;
16
+ constructor(options: ChatBoxOptions);
17
+ getElement(): Box;
18
+ focus(): void;
19
+ setContent(content: string): void;
20
+ appendMessage(message: ChatMessage): void;
21
+ scrollToBottom(): void;
22
+ scrollUp(lines?: number): void;
23
+ scrollDown(lines?: number): void;
24
+ clear(): void;
25
+ show(): void;
26
+ hide(): void;
27
+ private formatMessage;
28
+ setHeight(height: number | string): void;
29
+ setTop(top: number | string): void;
30
+ render(screen: Screen): void;
31
+ }
32
+ export {};
33
+ //# sourceMappingURL=chat-box.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-box.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/tui/components/chat-box.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD,KAAK,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;AACrC,KAAK,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;AAEtC,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,GAAG,CAAC;CACb;AAED,qBAAa,OAAO;IAClB,OAAO,CAAC,GAAG,CAAM;IACjB,OAAO,CAAC,MAAM,CAAM;gBAER,OAAO,EAAE,cAAc;IA6BnC,UAAU,IAAI,GAAG;IAIjB,KAAK,IAAI,IAAI;IAIb,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAKjC,aAAa,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAQzC,cAAc,IAAI,IAAI;IAItB,QAAQ,CAAC,KAAK,SAAI,GAAG,IAAI;IAIzB,UAAU,CAAC,KAAK,SAAI,GAAG,IAAI;IAI3B,KAAK,IAAI,IAAI;IAIb,IAAI,IAAI,IAAI;IAIZ,IAAI,IAAI,IAAI;IAIZ,OAAO,CAAC,aAAa;IAcrB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAIxC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAIlC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;CAG7B"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * InputBar Component
3
+ *
4
+ * Persistent input bar at the bottom of the chat interface.
5
+ * Always visible, allows users to type messages at any time.
6
+ */
7
+ import blessed from 'blessed';
8
+ type Screen = blessed.Widgets.Screen;
9
+ type Box = blessed.Widgets.BoxElement;
10
+ export interface InputBarOptions {
11
+ parent: Box;
12
+ onSubmit?: (value: string) => void;
13
+ onEscape?: () => void;
14
+ onTab?: () => void;
15
+ onAbort?: () => void;
16
+ }
17
+ export declare class InputBar {
18
+ private container;
19
+ private input;
20
+ private placeholder;
21
+ private parent;
22
+ private _disabled;
23
+ private _placeholderText;
24
+ private _hasFocus;
25
+ private _lastActivation;
26
+ private onSubmit?;
27
+ private onEscape?;
28
+ private onTab?;
29
+ private onAbort?;
30
+ constructor(options: InputBarOptions);
31
+ private setupEventHandlers;
32
+ private _activateInput;
33
+ getElement(): Box;
34
+ focus(): void;
35
+ blur(): void;
36
+ clear(): void;
37
+ getValue(): string;
38
+ setValue(value: string): void;
39
+ setPlaceholder(text: string): void;
40
+ disable(): void;
41
+ enable(): void;
42
+ isDisabled(): boolean;
43
+ show(): void;
44
+ hide(): void;
45
+ setBottom(bottom: number | string): void;
46
+ render(screen: Screen): void;
47
+ destroy(): void;
48
+ }
49
+ export {};
50
+ //# sourceMappingURL=input-bar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-bar.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/tui/components/input-bar.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,KAAK,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;AACrC,KAAK,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;AAGtC,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,GAAG,CAAC;IACZ,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,qBAAa,QAAQ;IACnB,OAAO,CAAC,SAAS,CAAM;IACvB,OAAO,CAAC,KAAK,CAAU;IACvB,OAAO,CAAC,WAAW,CAAM;IACzB,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,gBAAgB,CAAuB;IAC/C,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,QAAQ,CAAC,CAA0B;IAC3C,OAAO,CAAC,QAAQ,CAAC,CAAa;IAC9B,OAAO,CAAC,KAAK,CAAC,CAAa;IAC3B,OAAO,CAAC,OAAO,CAAC,CAAa;gBAEjB,OAAO,EAAE,eAAe;IA6DpC,OAAO,CAAC,kBAAkB;IA2D1B,OAAO,CAAC,cAAc;IAgBtB,UAAU,IAAI,GAAG;IAIjB,KAAK,IAAI,IAAI;IAKb,IAAI,IAAI,IAAI;IASZ,KAAK,IAAI,IAAI;IAMb,QAAQ,IAAI,MAAM;IAIlB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAS7B,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKlC,OAAO,IAAI,IAAI;IAOf,MAAM,IAAI,IAAI;IAMd,UAAU,IAAI,OAAO;IAIrB,IAAI,IAAI,IAAI;IAIZ,IAAI,IAAI,IAAI;IAIZ,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAIxC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI5B,OAAO,IAAI,IAAI;CAKhB"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * StatusBar Component
3
+ *
4
+ * Status line at the very bottom showing mode indicators and keyboard hints.
5
+ */
6
+ import blessed from 'blessed';
7
+ type Screen = blessed.Widgets.Screen;
8
+ type Box = blessed.Widgets.BoxElement;
9
+ export type StatusMode = 'ready' | 'processing' | 'waiting' | 'error';
10
+ export interface StatusBarOptions {
11
+ parent: Box;
12
+ }
13
+ export declare class StatusBar {
14
+ private bar;
15
+ private parent;
16
+ private _mode;
17
+ private _statusText;
18
+ private _activeTab;
19
+ constructor(options: StatusBarOptions);
20
+ getElement(): Box;
21
+ setMode(mode: StatusMode): void;
22
+ setStatus(text: string): void;
23
+ setActiveTab(tab: 'chat' | 'logs' | 'traces'): void;
24
+ private render;
25
+ private getModeIndicatorStyled;
26
+ show(): void;
27
+ hide(): void;
28
+ update(screen: Screen): void;
29
+ }
30
+ export {};
31
+ //# sourceMappingURL=status-bar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status-bar.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/tui/components/status-bar.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,KAAK,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;AACrC,KAAK,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;AAEtC,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,YAAY,GAAG,SAAS,GAAG,OAAO,CAAC;AAEtE,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,GAAG,CAAC;CACb;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,GAAG,CAAM;IACjB,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,WAAW,CAAM;IACzB,OAAO,CAAC,UAAU,CAAsC;gBAE5C,OAAO,EAAE,gBAAgB;IAmBrC,UAAU,IAAI,GAAG;IAIjB,OAAO,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAK/B,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK7B,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,IAAI;IAKnD,OAAO,CAAC,MAAM;IAuBd,OAAO,CAAC,sBAAsB;IAe9B,IAAI,IAAI,IAAI;IAIZ,IAAI,IAAI,IAAI;IAIZ,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;CAI7B"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * TraceViewer - ASCII OpenTelemetry Trace Visualization
3
+ *
4
+ * Renders spans as an ASCII tree with timing information.
5
+ * Supports live updates by re-parsing the trace file.
6
+ */
7
+ import blessed from 'blessed';
8
+ type Box = blessed.Widgets.BoxElement;
9
+ export interface TraceViewerOptions {
10
+ parent: Box;
11
+ traceFilePath?: string;
12
+ }
13
+ export declare class TraceViewer {
14
+ private container;
15
+ private contentBox;
16
+ private traceFilePath?;
17
+ private spans;
18
+ private rootSpans;
19
+ private lastModified;
20
+ private watchInterval?;
21
+ private showEngineStates;
22
+ constructor(options: TraceViewerOptions);
23
+ setTraceFile(path: string): void;
24
+ /**
25
+ * Toggle visibility of engine state spans (WavePlanning, LevelDispatch, etc.)
26
+ */
27
+ toggleEngineStates(): void;
28
+ /**
29
+ * Get the current visibility setting for engine states
30
+ */
31
+ isShowingEngineStates(): boolean;
32
+ startWatching(): void;
33
+ stopWatching(): void;
34
+ private checkForUpdates;
35
+ private loadAndRender;
36
+ private parseTraceFile;
37
+ private convertSpan;
38
+ private truncate;
39
+ private timeToMillis;
40
+ private buildTree;
41
+ /**
42
+ * Build a logical tree when parentSpanId is not available.
43
+ * Creates a natural execution flow:
44
+ * - Workflow Execution (root)
45
+ * - LevelDispatch (wave 1)
46
+ * - check-1 (executed during this phase)
47
+ * - provider spans
48
+ * - check-with-foreach (parent)
49
+ * - [0] iteration 1
50
+ * - [1] iteration 2
51
+ * - LevelDispatch (wave 2)
52
+ * - check-3
53
+ */
54
+ private buildLogicalTree;
55
+ private render;
56
+ /**
57
+ * Get filtered root spans based on current settings.
58
+ * When showEngineStates is false, removes LevelDispatch and other state spans,
59
+ * promoting their children (checks) to be direct children of the root.
60
+ */
61
+ private getFilteredRootSpans;
62
+ /**
63
+ * Recursively filter out engine state spans while preserving their children.
64
+ */
65
+ private filterEngineStates;
66
+ private renderSpan;
67
+ private formatDuration;
68
+ private calculateTotalDuration;
69
+ focus(): void;
70
+ destroy(): void;
71
+ }
72
+ export {};
73
+ //# sourceMappingURL=trace-viewer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trace-viewer.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/tui/components/trace-viewer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,OAAO,MAAM,SAAS,CAAC;AAI9B,KAAK,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;AAyBtC,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,GAAG,CAAC;IACZ,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,SAAS,CAAM;IACvB,OAAO,CAAC,UAAU,CAAM;IACxB,OAAO,CAAC,aAAa,CAAC,CAAS;IAC/B,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,aAAa,CAAC,CAAiB;IACvC,OAAO,CAAC,gBAAgB,CAAS;gBAErB,OAAO,EAAE,kBAAkB;IAsCvC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKhC;;OAEG;IACH,kBAAkB,IAAI,IAAI;IAK1B;;OAEG;IACH,qBAAqB,IAAI,OAAO;IAIhC,aAAa,IAAI,IAAI;IAYrB,YAAY,IAAI,IAAI;YAON,eAAe;YAcf,aAAa;YAab,cAAc;IAwB5B,OAAO,CAAC,WAAW;IAoDnB,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,SAAS;IA4CjB;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,gBAAgB;IAiMxB,OAAO,CAAC,MAAM;IAgDd;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IAkB5B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAsC1B,OAAO,CAAC,UAAU;IAoDlB,OAAO,CAAC,cAAc;IActB,OAAO,CAAC,sBAAsB;IAc9B,KAAK,IAAI,IAAI;IAIb,OAAO,IAAI,IAAI;CAIhB"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * TUI Module - Persistent Chat Interface
3
+ *
4
+ * Exports all TUI-related components for use in CLI and other entry points.
5
+ */
6
+ export { ChatTUI, type ChatTUIOptions } from './chat-tui';
7
+ export { ChatStateManager, type ChatMessage, type WaitingState, type ChatStateManagerOptions, getChatStateManager, setChatStateManager, resetChatStateManager, } from './chat-state';
8
+ export { TuiChatRunner, type TuiChatRunnerConfig, startChatTUI } from './chat-runner';
9
+ export { TuiFrontend, type TuiFrontendConfig } from './tui-frontend';
10
+ export { ChatBox, type ChatBoxOptions } from './components/chat-box';
11
+ export { InputBar, type InputBarOptions } from './components/input-bar';
12
+ export { StatusBar, type StatusBarOptions, type StatusMode } from './components/status-bar';
13
+ export { TraceViewer, type TraceViewerOptions } from './components/trace-viewer';
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/tui/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;AAG1D,OAAO,EACL,gBAAgB,EAChB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,uBAAuB,EAC5B,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,aAAa,EAAE,KAAK,mBAAmB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAGtF,OAAO,EAAE,WAAW,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAGrE,OAAO,EAAE,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,SAAS,EAAE,KAAK,gBAAgB,EAAE,KAAK,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC5F,OAAO,EAAE,WAAW,EAAE,KAAK,kBAAkB,EAAE,MAAM,2BAA2B,CAAC"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * TUI Frontend for Visor workflows.
3
+ *
4
+ * Subscribes to EventBus events and updates the ChatTUI accordingly:
5
+ * - CheckCompleted → Display AI response in chat
6
+ * - HumanInputRequested → Set waiting state, update placeholder
7
+ * - StateTransition → Update status bar
8
+ * - CheckErrored → Display error message
9
+ */
10
+ import type { Frontend, FrontendContext } from '../frontends/host';
11
+ import { ChatTUI } from './chat-tui';
12
+ export interface TuiFrontendConfig {
13
+ chatTui?: ChatTUI;
14
+ }
15
+ export declare class TuiFrontend implements Frontend {
16
+ readonly name = "tui";
17
+ private subs;
18
+ private chatTui?;
19
+ constructor(config?: TuiFrontendConfig);
20
+ setChatTUI(tui: ChatTUI): void;
21
+ start(ctx: FrontendContext): void;
22
+ stop(): void;
23
+ private handleCheckCompleted;
24
+ private handleError;
25
+ private handleHumanInputRequested;
26
+ private handleStateTransition;
27
+ private handleShutdown;
28
+ }
29
+ //# sourceMappingURL=tui-frontend.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tui-frontend.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/tui/tui-frontend.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAIrC,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,qBAAa,WAAY,YAAW,QAAQ;IAC1C,SAAgB,IAAI,SAAS;IAC7B,OAAO,CAAC,IAAI,CAAsC;IAClD,OAAO,CAAC,OAAO,CAAC,CAAU;gBAEd,MAAM,CAAC,EAAE,iBAAiB;IAItC,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAI9B,KAAK,CAAC,GAAG,EAAE,eAAe,GAAG,IAAI;IAqDjC,IAAI,IAAI,IAAI;IAKZ,OAAO,CAAC,oBAAoB;IA0E5B,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,yBAAyB;IAiBjC,OAAO,CAAC,qBAAqB;IAgB7B,OAAO,CAAC,cAAc;CAKvB"}
@@ -74,6 +74,39 @@ export interface SlackRateLimitConfig {
74
74
  actions?: SlackRateLimitActionsConfig;
75
75
  storage?: SlackRateLimitStorageConfig;
76
76
  }
77
+ /**
78
+ * Limits configuration for Slack reminders
79
+ */
80
+ export interface SlackReminderLimitsConfig {
81
+ /** Maximum reminders per user (default: 25) */
82
+ max_per_user?: number;
83
+ /** Maximum recurring reminders per user (default: 10) */
84
+ max_recurring_per_user?: number;
85
+ /** Maximum reminders per channel (default: 100) */
86
+ max_per_channel?: number;
87
+ /** Maximum total reminders (default: 1000) */
88
+ max_global?: number;
89
+ }
90
+ /**
91
+ * Storage configuration for Slack reminders
92
+ */
93
+ export interface SlackReminderStorageConfig {
94
+ /** Path to the reminders JSON file (default: .visor/reminders.json) */
95
+ path?: string;
96
+ }
97
+ /**
98
+ * Configuration for Slack reminders/scheduling feature
99
+ */
100
+ export interface SlackRemindersConfig {
101
+ /** Enable/disable reminders feature (default: true) */
102
+ enabled?: boolean;
103
+ /** Storage configuration */
104
+ storage?: SlackReminderStorageConfig;
105
+ /** Reminder limits */
106
+ limits?: SlackReminderLimitsConfig;
107
+ /** Default timezone for reminders (default: UTC) */
108
+ default_timezone?: string;
109
+ }
77
110
  export interface SlackBotConfig {
78
111
  id: string;
79
112
  endpoint: string;
@@ -105,5 +138,7 @@ export interface SlackConfig {
105
138
  cache_prewarming?: SlackCachePrewarmingConfig;
106
139
  rate_limiting?: SlackRateLimitConfig;
107
140
  workflow?: string;
141
+ /** Reminders/scheduling configuration */
142
+ reminders?: SlackRemindersConfig;
108
143
  }
109
144
  //# sourceMappingURL=bot.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bot.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/types/bot.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bot.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/types/bot.ts"],"names":[],"mappings":"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"}