@probelabs/visor 0.1.129 → 0.1.130-ee

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 (216) hide show
  1. package/README.md +23 -0
  2. package/dist/cli-main.d.ts.map +1 -1
  3. package/dist/config.d.ts +4 -0
  4. package/dist/config.d.ts.map +1 -1
  5. package/dist/docs/author-permissions.md +20 -0
  6. package/dist/docs/enterprise-policy.md +1325 -0
  7. package/dist/docs/index.md +10 -0
  8. package/dist/docs/scheduler-storage.md +433 -0
  9. package/dist/docs/scheduler.md +12 -2
  10. package/dist/enterprise/license/validator.d.ts +39 -0
  11. package/dist/enterprise/license/validator.d.ts.map +1 -0
  12. package/dist/enterprise/loader.d.ts +25 -0
  13. package/dist/enterprise/loader.d.ts.map +1 -0
  14. package/dist/enterprise/policy/opa-compiler.d.ts +37 -0
  15. package/dist/enterprise/policy/opa-compiler.d.ts.map +1 -0
  16. package/dist/enterprise/policy/opa-http-evaluator.d.ts +36 -0
  17. package/dist/enterprise/policy/opa-http-evaluator.d.ts.map +1 -0
  18. package/dist/enterprise/policy/opa-policy-engine.d.ts +48 -0
  19. package/dist/enterprise/policy/opa-policy-engine.d.ts.map +1 -0
  20. package/dist/enterprise/policy/opa-wasm-evaluator.d.ts +34 -0
  21. package/dist/enterprise/policy/opa-wasm-evaluator.d.ts.map +1 -0
  22. package/dist/enterprise/policy/policy-input-builder.d.ts +120 -0
  23. package/dist/enterprise/policy/policy-input-builder.d.ts.map +1 -0
  24. package/dist/enterprise/scheduler/knex-store.d.ts +41 -0
  25. package/dist/enterprise/scheduler/knex-store.d.ts.map +1 -0
  26. package/dist/examples/README.md +23 -0
  27. package/dist/examples/enterprise-policy/README.md +344 -0
  28. package/dist/examples/enterprise-policy/policies/capability_resolve.rego +29 -0
  29. package/dist/examples/enterprise-policy/policies/capability_resolve_test.rego +230 -0
  30. package/dist/examples/enterprise-policy/policies/check_execute.rego +71 -0
  31. package/dist/examples/enterprise-policy/policies/check_execute_test.rego +321 -0
  32. package/dist/examples/enterprise-policy/policies/deploy_production.rego +33 -0
  33. package/dist/examples/enterprise-policy/policies/deploy_production_test.rego +29 -0
  34. package/dist/examples/enterprise-policy/policies/slack_channel_gate.rego +17 -0
  35. package/dist/examples/enterprise-policy/policies/slack_tool_restrict.rego +16 -0
  36. package/dist/examples/enterprise-policy/policies/tool_invoke.rego +24 -0
  37. package/dist/examples/enterprise-policy/policies/tool_invoke_test.rego +227 -0
  38. package/dist/examples/enterprise-policy/visor.yaml +64 -0
  39. package/dist/failure-condition-evaluator.d.ts +18 -0
  40. package/dist/failure-condition-evaluator.d.ts.map +1 -1
  41. package/dist/frontends/slack-frontend.d.ts +1 -0
  42. package/dist/frontends/slack-frontend.d.ts.map +1 -1
  43. package/dist/generated/config-schema.d.ts +139 -0
  44. package/dist/generated/config-schema.d.ts.map +1 -1
  45. package/dist/index.js +13821 -7172
  46. package/dist/liquid-extensions.d.ts.map +1 -1
  47. package/dist/policy/default-engine.d.ts +17 -0
  48. package/dist/policy/default-engine.d.ts.map +1 -0
  49. package/dist/policy/index.d.ts +4 -0
  50. package/dist/policy/index.d.ts.map +1 -0
  51. package/dist/policy/policy-check-command.d.ts +65 -0
  52. package/dist/policy/policy-check-command.d.ts.map +1 -0
  53. package/dist/policy/types.d.ts +81 -0
  54. package/dist/policy/types.d.ts.map +1 -0
  55. package/dist/providers/ai-check-provider.d.ts.map +1 -1
  56. package/dist/providers/check-provider.interface.d.ts +2 -0
  57. package/dist/providers/check-provider.interface.d.ts.map +1 -1
  58. package/dist/providers/claude-code-check-provider.d.ts.map +1 -1
  59. package/dist/providers/mcp-check-provider.d.ts.map +1 -1
  60. package/dist/providers/mcp-custom-sse-server.d.ts.map +1 -1
  61. package/dist/providers/workflow-check-provider.d.ts.map +1 -1
  62. package/dist/scheduler/index.d.ts +2 -0
  63. package/dist/scheduler/index.d.ts.map +1 -1
  64. package/dist/scheduler/schedule-store.d.ts +33 -59
  65. package/dist/scheduler/schedule-store.d.ts.map +1 -1
  66. package/dist/scheduler/schedule-tool.d.ts.map +1 -1
  67. package/dist/scheduler/scheduler.d.ts +24 -3
  68. package/dist/scheduler/scheduler.d.ts.map +1 -1
  69. package/dist/scheduler/store/index.d.ts +7 -0
  70. package/dist/scheduler/store/index.d.ts.map +1 -0
  71. package/dist/scheduler/store/json-migrator.d.ts +10 -0
  72. package/dist/scheduler/store/json-migrator.d.ts.map +1 -0
  73. package/dist/scheduler/store/sqlite-store.d.ts +32 -0
  74. package/dist/scheduler/store/sqlite-store.d.ts.map +1 -0
  75. package/dist/scheduler/store/types.d.ts +127 -0
  76. package/dist/scheduler/store/types.d.ts.map +1 -0
  77. package/dist/sdk/check-provider-registry-PANIXYRB.mjs +28 -0
  78. package/dist/sdk/check-provider-registry-S7DKTEM6.mjs +28 -0
  79. package/dist/sdk/{chunk-D5KI4YQ4.mjs → chunk-DIND4ZCV.mjs} +2 -2
  80. package/dist/sdk/{chunk-XDLQ3UNF.mjs → chunk-GEW6LS32.mjs} +2 -2
  81. package/dist/sdk/{chunk-N7HO6KKC.mjs → chunk-HOKQOO3G.mjs} +11 -6
  82. package/dist/sdk/chunk-HOKQOO3G.mjs.map +1 -0
  83. package/dist/sdk/{chunk-XR7XXGL7.mjs → chunk-JL7JXCET.mjs} +2 -2
  84. package/dist/sdk/{chunk-6W75IMDC.mjs → chunk-LG4AUKHB.mjs} +2 -2
  85. package/dist/sdk/{chunk-BDGUM6BA.mjs → chunk-S6CD7GFM.mjs} +1463 -568
  86. package/dist/sdk/chunk-S6CD7GFM.mjs.map +1 -0
  87. package/dist/sdk/{chunk-PO7X5XI7.mjs → chunk-SZXICFQ3.mjs} +2 -2
  88. package/dist/sdk/{chunk-DGZPPGJJ.mjs → chunk-TQ4D3YOF.mjs} +1463 -568
  89. package/dist/sdk/chunk-TQ4D3YOF.mjs.map +1 -0
  90. package/dist/sdk/{chunk-HEX3RL32.mjs → chunk-UCMJJ3IM.mjs} +5 -2
  91. package/dist/sdk/{chunk-HEX3RL32.mjs.map → chunk-UCMJJ3IM.mjs.map} +1 -1
  92. package/dist/sdk/{chunk-7YSOINAQ.mjs → chunk-UCNT3PDT.mjs} +342 -5
  93. package/dist/sdk/chunk-UCNT3PDT.mjs.map +1 -0
  94. package/dist/sdk/{chunk-R5Z7YWPB.mjs → chunk-V2IV3ILA.mjs} +7 -5
  95. package/dist/sdk/chunk-V2IV3ILA.mjs.map +1 -0
  96. package/dist/sdk/{chunk-SGS2VMEL.mjs → chunk-VMLORODQ.mjs} +107 -20
  97. package/dist/sdk/chunk-VMLORODQ.mjs.map +1 -0
  98. package/dist/sdk/{chunk-2KB35MB7.mjs → chunk-VPC3QSPW.mjs} +2 -2
  99. package/dist/sdk/{chunk-J5RGJQ53.mjs → chunk-YJRBN3XS.mjs} +2 -2
  100. package/dist/sdk/{command-executor-DVVXERLR.mjs → command-executor-TOYBBE7S.mjs} +4 -4
  101. package/dist/sdk/{config-7VTT64SQ.mjs → config-OGOS4ZU4.mjs} +4 -4
  102. package/dist/sdk/failure-condition-evaluator-HC3M5377.mjs +17 -0
  103. package/dist/sdk/{github-frontend-3N2NLO66.mjs → github-frontend-E2KJSC3Y.mjs} +7 -7
  104. package/dist/sdk/{host-ONVMEHAA.mjs → host-EE6EJ2FM.mjs} +4 -4
  105. package/dist/sdk/host-OUSD2OIQ.mjs +63 -0
  106. package/dist/sdk/host-OUSD2OIQ.mjs.map +1 -0
  107. package/dist/sdk/knex-store-HPXJILBL.mjs +411 -0
  108. package/dist/sdk/knex-store-HPXJILBL.mjs.map +1 -0
  109. package/dist/sdk/lazy-otel-5NH4ZJJM.mjs +24 -0
  110. package/dist/sdk/{liquid-extensions-5IZLTFSZ.mjs → liquid-extensions-E4EUOCES.mjs} +5 -5
  111. package/dist/sdk/loader-ID5LMXOW.mjs +89 -0
  112. package/dist/sdk/loader-ID5LMXOW.mjs.map +1 -0
  113. package/dist/sdk/memory-store-AAPL2MTE.mjs +12 -0
  114. package/dist/sdk/{metrics-GXQ2EDXA.mjs → metrics-I6A7IHG4.mjs} +3 -3
  115. package/dist/sdk/opa-policy-engine-UUPFN5CL.mjs +655 -0
  116. package/dist/sdk/opa-policy-engine-UUPFN5CL.mjs.map +1 -0
  117. package/dist/sdk/{prompt-state-YHGXB2OA.mjs → prompt-state-VAKKC773.mjs} +4 -4
  118. package/dist/sdk/{renderer-schema-CMXOLNIG.mjs → renderer-schema-HXEW6BRJ.mjs} +3 -3
  119. package/dist/sdk/{routing-S3Y7T2X3.mjs → routing-OZQWAGAI.mjs} +9 -8
  120. package/dist/sdk/schedule-tool-handler-B7TMSG6A.mjs +38 -0
  121. package/dist/sdk/schedule-tool-handler-EBNKDUJC.mjs +38 -0
  122. package/dist/sdk/sdk.d.mts +134 -4
  123. package/dist/sdk/sdk.d.ts +134 -4
  124. package/dist/sdk/sdk.js +3787 -1105
  125. package/dist/sdk/sdk.js.map +1 -1
  126. package/dist/sdk/sdk.mjs +14 -14
  127. package/dist/sdk/{slack-frontend-R3M2CACB.mjs → slack-frontend-LAY45IBR.mjs} +119 -29
  128. package/dist/sdk/slack-frontend-LAY45IBR.mjs.map +1 -0
  129. package/dist/sdk/{trace-helpers-YHNPC7MR.mjs → trace-helpers-PP3YHTAM.mjs} +3 -3
  130. package/dist/sdk/{tui-frontend-S546M7A7.mjs → tui-frontend-T56PZB67.mjs} +25 -16
  131. package/dist/sdk/tui-frontend-T56PZB67.mjs.map +1 -0
  132. package/dist/sdk/validator-XTZJZZJH.mjs +134 -0
  133. package/dist/sdk/validator-XTZJZZJH.mjs.map +1 -0
  134. package/dist/sdk/workflow-check-provider-E7YPEZ45.mjs +28 -0
  135. package/dist/sdk/workflow-check-provider-E7YPEZ45.mjs.map +1 -0
  136. package/dist/sdk/workflow-check-provider-HB4XTD4Z.mjs +28 -0
  137. package/dist/sdk/workflow-check-provider-HB4XTD4Z.mjs.map +1 -0
  138. package/dist/sdk/workflow-registry-AAD37XKZ.mjs +12 -0
  139. package/dist/sdk/workflow-registry-AAD37XKZ.mjs.map +1 -0
  140. package/dist/slack/client.d.ts +12 -0
  141. package/dist/slack/client.d.ts.map +1 -1
  142. package/dist/slack/slack-output-adapter.d.ts.map +1 -1
  143. package/dist/slack/socket-runner.d.ts.map +1 -1
  144. package/dist/state-machine/dispatch/execution-invoker.d.ts.map +1 -1
  145. package/dist/state-machine/dispatch/policy-gate.d.ts +28 -0
  146. package/dist/state-machine/dispatch/policy-gate.d.ts.map +1 -0
  147. package/dist/state-machine/states/level-dispatch.d.ts.map +1 -1
  148. package/dist/state-machine/states/routing.d.ts.map +1 -1
  149. package/dist/state-machine/states/wave-planning.d.ts.map +1 -1
  150. package/dist/state-machine-execution-engine.d.ts.map +1 -1
  151. package/dist/test-runner/core/flow-stage.d.ts.map +1 -1
  152. package/dist/test-runner/validator.d.ts.map +1 -1
  153. package/dist/tui/chat-runner.d.ts.map +1 -1
  154. package/dist/tui/chat-state.d.ts +1 -0
  155. package/dist/tui/chat-state.d.ts.map +1 -1
  156. package/dist/tui/chat-tui.d.ts +3 -2
  157. package/dist/tui/chat-tui.d.ts.map +1 -1
  158. package/dist/tui/components/chat-box.d.ts +9 -0
  159. package/dist/tui/components/chat-box.d.ts.map +1 -1
  160. package/dist/tui/components/input-bar.d.ts +18 -1
  161. package/dist/tui/components/input-bar.d.ts.map +1 -1
  162. package/dist/tui/components/status-bar.d.ts +5 -2
  163. package/dist/tui/components/status-bar.d.ts.map +1 -1
  164. package/dist/tui/components/trace-viewer.d.ts +1 -0
  165. package/dist/tui/components/trace-viewer.d.ts.map +1 -1
  166. package/dist/tui/tui-frontend.d.ts.map +1 -1
  167. package/dist/types/config.d.ts +107 -3
  168. package/dist/types/config.d.ts.map +1 -1
  169. package/dist/types/engine.d.ts +5 -0
  170. package/dist/types/engine.d.ts.map +1 -1
  171. package/dist/types/execution.d.ts +1 -1
  172. package/dist/types/execution.d.ts.map +1 -1
  173. package/package.json +14 -4
  174. package/dist/output/traces/run-2026-02-08T18-16-04-160Z.ndjson +0 -138
  175. package/dist/output/traces/run-2026-02-08T18-16-51-253Z.ndjson +0 -1357
  176. package/dist/sdk/check-provider-registry-ACRGIYOB.mjs +0 -28
  177. package/dist/sdk/check-provider-registry-VYHKFHK2.mjs +0 -28
  178. package/dist/sdk/chunk-7YSOINAQ.mjs.map +0 -1
  179. package/dist/sdk/chunk-BDGUM6BA.mjs.map +0 -1
  180. package/dist/sdk/chunk-DGZPPGJJ.mjs.map +0 -1
  181. package/dist/sdk/chunk-N7HO6KKC.mjs.map +0 -1
  182. package/dist/sdk/chunk-R5Z7YWPB.mjs.map +0 -1
  183. package/dist/sdk/chunk-SGS2VMEL.mjs.map +0 -1
  184. package/dist/sdk/failure-condition-evaluator-4WMDF4Q3.mjs +0 -17
  185. package/dist/sdk/memory-store-3N4AZCYB.mjs +0 -12
  186. package/dist/sdk/slack-frontend-R3M2CACB.mjs.map +0 -1
  187. package/dist/sdk/tui-frontend-S546M7A7.mjs.map +0 -1
  188. package/dist/sdk/workflow-check-provider-4F3432ZP.mjs +0 -28
  189. package/dist/sdk/workflow-check-provider-A44PBPG2.mjs +0 -28
  190. package/dist/sdk/workflow-registry-ZAYYXLEP.mjs +0 -12
  191. package/dist/traces/run-2026-02-08T18-16-04-160Z.ndjson +0 -138
  192. package/dist/traces/run-2026-02-08T18-16-51-253Z.ndjson +0 -1357
  193. /package/dist/sdk/{check-provider-registry-ACRGIYOB.mjs.map → check-provider-registry-PANIXYRB.mjs.map} +0 -0
  194. /package/dist/sdk/{check-provider-registry-VYHKFHK2.mjs.map → check-provider-registry-S7DKTEM6.mjs.map} +0 -0
  195. /package/dist/sdk/{chunk-D5KI4YQ4.mjs.map → chunk-DIND4ZCV.mjs.map} +0 -0
  196. /package/dist/sdk/{chunk-XDLQ3UNF.mjs.map → chunk-GEW6LS32.mjs.map} +0 -0
  197. /package/dist/sdk/{chunk-XR7XXGL7.mjs.map → chunk-JL7JXCET.mjs.map} +0 -0
  198. /package/dist/sdk/{chunk-6W75IMDC.mjs.map → chunk-LG4AUKHB.mjs.map} +0 -0
  199. /package/dist/sdk/{chunk-PO7X5XI7.mjs.map → chunk-SZXICFQ3.mjs.map} +0 -0
  200. /package/dist/sdk/{chunk-2KB35MB7.mjs.map → chunk-VPC3QSPW.mjs.map} +0 -0
  201. /package/dist/sdk/{chunk-J5RGJQ53.mjs.map → chunk-YJRBN3XS.mjs.map} +0 -0
  202. /package/dist/sdk/{command-executor-DVVXERLR.mjs.map → command-executor-TOYBBE7S.mjs.map} +0 -0
  203. /package/dist/sdk/{config-7VTT64SQ.mjs.map → config-OGOS4ZU4.mjs.map} +0 -0
  204. /package/dist/sdk/{failure-condition-evaluator-4WMDF4Q3.mjs.map → failure-condition-evaluator-HC3M5377.mjs.map} +0 -0
  205. /package/dist/sdk/{github-frontend-3N2NLO66.mjs.map → github-frontend-E2KJSC3Y.mjs.map} +0 -0
  206. /package/dist/sdk/{host-ONVMEHAA.mjs.map → host-EE6EJ2FM.mjs.map} +0 -0
  207. /package/dist/sdk/{liquid-extensions-5IZLTFSZ.mjs.map → lazy-otel-5NH4ZJJM.mjs.map} +0 -0
  208. /package/dist/sdk/{memory-store-3N4AZCYB.mjs.map → liquid-extensions-E4EUOCES.mjs.map} +0 -0
  209. /package/dist/sdk/{metrics-GXQ2EDXA.mjs.map → memory-store-AAPL2MTE.mjs.map} +0 -0
  210. /package/dist/sdk/{prompt-state-YHGXB2OA.mjs.map → metrics-I6A7IHG4.mjs.map} +0 -0
  211. /package/dist/sdk/{routing-S3Y7T2X3.mjs.map → prompt-state-VAKKC773.mjs.map} +0 -0
  212. /package/dist/sdk/{renderer-schema-CMXOLNIG.mjs.map → renderer-schema-HXEW6BRJ.mjs.map} +0 -0
  213. /package/dist/sdk/{trace-helpers-YHNPC7MR.mjs.map → routing-OZQWAGAI.mjs.map} +0 -0
  214. /package/dist/sdk/{workflow-check-provider-4F3432ZP.mjs.map → schedule-tool-handler-B7TMSG6A.mjs.map} +0 -0
  215. /package/dist/sdk/{workflow-check-provider-A44PBPG2.mjs.map → schedule-tool-handler-EBNKDUJC.mjs.map} +0 -0
  216. /package/dist/sdk/{workflow-registry-ZAYYXLEP.mjs.map → trace-helpers-PP3YHTAM.mjs.map} +0 -0
@@ -0,0 +1,134 @@
1
+ import {
2
+ __esm
3
+ } from "./chunk-J7LXIPZS.mjs";
4
+
5
+ // src/enterprise/license/validator.ts
6
+ import * as crypto from "crypto";
7
+ import * as fs from "fs";
8
+ import * as path from "path";
9
+ var LicenseValidator;
10
+ var init_validator = __esm({
11
+ "src/enterprise/license/validator.ts"() {
12
+ LicenseValidator = class _LicenseValidator {
13
+ /** Ed25519 public key for license verification (PEM format). */
14
+ static PUBLIC_KEY = "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAI/Zd08EFmgIdrDm/HXd0l3/5GBt7R1PrdvhdmEXhJlU=\n-----END PUBLIC KEY-----\n";
15
+ cache = null;
16
+ static CACHE_TTL = 5 * 60 * 1e3;
17
+ // 5 minutes
18
+ static GRACE_PERIOD = 72 * 3600 * 1e3;
19
+ // 72 hours after expiry
20
+ /**
21
+ * Load and validate license from environment or file.
22
+ *
23
+ * Resolution order:
24
+ * 1. VISOR_LICENSE env var (JWT string)
25
+ * 2. VISOR_LICENSE_FILE env var (path to file)
26
+ * 3. .visor-license in project root (cwd)
27
+ * 4. .visor-license in ~/.config/visor/
28
+ */
29
+ async loadAndValidate() {
30
+ if (this.cache && Date.now() - this.cache.validatedAt < _LicenseValidator.CACHE_TTL) {
31
+ return this.cache.payload;
32
+ }
33
+ const token = this.resolveToken();
34
+ if (!token) return null;
35
+ const payload = this.verifyAndDecode(token);
36
+ if (!payload) return null;
37
+ this.cache = { payload, validatedAt: Date.now() };
38
+ return payload;
39
+ }
40
+ /** Check if a specific feature is licensed */
41
+ hasFeature(feature) {
42
+ if (!this.cache) return false;
43
+ return this.cache.payload.features.includes(feature);
44
+ }
45
+ /** Check if license is valid (with grace period) */
46
+ isValid() {
47
+ if (!this.cache) return false;
48
+ const now = Date.now();
49
+ const expiryMs = this.cache.payload.exp * 1e3;
50
+ return now < expiryMs + _LicenseValidator.GRACE_PERIOD;
51
+ }
52
+ /** Check if the license is within its grace period (expired but still valid) */
53
+ isInGracePeriod() {
54
+ if (!this.cache) return false;
55
+ const now = Date.now();
56
+ const expiryMs = this.cache.payload.exp * 1e3;
57
+ return now >= expiryMs && now < expiryMs + _LicenseValidator.GRACE_PERIOD;
58
+ }
59
+ resolveToken() {
60
+ if (process.env.VISOR_LICENSE) {
61
+ return process.env.VISOR_LICENSE.trim();
62
+ }
63
+ if (process.env.VISOR_LICENSE_FILE) {
64
+ const resolved = path.resolve(process.env.VISOR_LICENSE_FILE);
65
+ const home2 = process.env.HOME || process.env.USERPROFILE || "";
66
+ const allowedPrefixes = [path.normalize(process.cwd())];
67
+ if (home2) allowedPrefixes.push(path.normalize(path.join(home2, ".config", "visor")));
68
+ let realPath;
69
+ try {
70
+ realPath = fs.realpathSync(resolved);
71
+ } catch {
72
+ return null;
73
+ }
74
+ const isSafe = allowedPrefixes.some(
75
+ (prefix) => realPath === prefix || realPath.startsWith(prefix + path.sep)
76
+ );
77
+ if (!isSafe) return null;
78
+ return this.readFile(realPath);
79
+ }
80
+ const cwdPath = path.join(process.cwd(), ".visor-license");
81
+ const cwdToken = this.readFile(cwdPath);
82
+ if (cwdToken) return cwdToken;
83
+ const home = process.env.HOME || process.env.USERPROFILE || "";
84
+ if (home) {
85
+ const configPath = path.join(home, ".config", "visor", ".visor-license");
86
+ const configToken = this.readFile(configPath);
87
+ if (configToken) return configToken;
88
+ }
89
+ return null;
90
+ }
91
+ readFile(filePath) {
92
+ try {
93
+ return fs.readFileSync(filePath, "utf-8").trim();
94
+ } catch {
95
+ return null;
96
+ }
97
+ }
98
+ verifyAndDecode(token) {
99
+ try {
100
+ const parts = token.split(".");
101
+ if (parts.length !== 3) return null;
102
+ const [headerB64, payloadB64, signatureB64] = parts;
103
+ const header = JSON.parse(Buffer.from(headerB64, "base64url").toString());
104
+ if (header.alg !== "EdDSA") return null;
105
+ const data = `${headerB64}.${payloadB64}`;
106
+ const signature = Buffer.from(signatureB64, "base64url");
107
+ const publicKey = crypto.createPublicKey(_LicenseValidator.PUBLIC_KEY);
108
+ if (publicKey.asymmetricKeyType !== "ed25519") {
109
+ return null;
110
+ }
111
+ const isValid = crypto.verify(null, Buffer.from(data), publicKey, signature);
112
+ if (!isValid) return null;
113
+ const payload = JSON.parse(Buffer.from(payloadB64, "base64url").toString());
114
+ if (!payload.org || !Array.isArray(payload.features) || typeof payload.exp !== "number" || typeof payload.iat !== "number" || !payload.sub) {
115
+ return null;
116
+ }
117
+ const now = Date.now();
118
+ const expiryMs = payload.exp * 1e3;
119
+ if (now >= expiryMs + _LicenseValidator.GRACE_PERIOD) {
120
+ return null;
121
+ }
122
+ return payload;
123
+ } catch {
124
+ return null;
125
+ }
126
+ }
127
+ };
128
+ }
129
+ });
130
+ init_validator();
131
+ export {
132
+ LicenseValidator
133
+ };
134
+ //# sourceMappingURL=validator-XTZJZZJH.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/enterprise/license/validator.ts"],"sourcesContent":["/**\n * Copyright (c) ProbeLabs. All rights reserved.\n * Licensed under the Elastic License 2.0; you may not use this file except\n * in compliance with the Elastic License 2.0.\n */\n\nimport * as crypto from 'crypto';\nimport * as fs from 'fs';\nimport * as path from 'path';\n\nexport interface LicensePayload {\n org: string;\n features: string[];\n exp: number;\n iat: number;\n sub: string;\n}\n\nexport class LicenseValidator {\n /** Ed25519 public key for license verification (PEM format). */\n private static PUBLIC_KEY =\n '-----BEGIN PUBLIC KEY-----\\n' +\n 'MCowBQYDK2VwAyEAI/Zd08EFmgIdrDm/HXd0l3/5GBt7R1PrdvhdmEXhJlU=\\n' +\n '-----END PUBLIC KEY-----\\n';\n\n private cache: { payload: LicensePayload; validatedAt: number } | null = null;\n private static CACHE_TTL = 5 * 60 * 1000; // 5 minutes\n private static GRACE_PERIOD = 72 * 3600 * 1000; // 72 hours after expiry\n\n /**\n * Load and validate license from environment or file.\n *\n * Resolution order:\n * 1. VISOR_LICENSE env var (JWT string)\n * 2. VISOR_LICENSE_FILE env var (path to file)\n * 3. .visor-license in project root (cwd)\n * 4. .visor-license in ~/.config/visor/\n */\n async loadAndValidate(): Promise<LicensePayload | null> {\n // Return cached result if still fresh\n if (this.cache && Date.now() - this.cache.validatedAt < LicenseValidator.CACHE_TTL) {\n return this.cache.payload;\n }\n\n const token = this.resolveToken();\n if (!token) return null;\n\n const payload = this.verifyAndDecode(token);\n if (!payload) return null;\n\n this.cache = { payload, validatedAt: Date.now() };\n return payload;\n }\n\n /** Check if a specific feature is licensed */\n hasFeature(feature: string): boolean {\n if (!this.cache) return false;\n return this.cache.payload.features.includes(feature);\n }\n\n /** Check if license is valid (with grace period) */\n isValid(): boolean {\n if (!this.cache) return false;\n const now = Date.now();\n const expiryMs = this.cache.payload.exp * 1000;\n return now < expiryMs + LicenseValidator.GRACE_PERIOD;\n }\n\n /** Check if the license is within its grace period (expired but still valid) */\n isInGracePeriod(): boolean {\n if (!this.cache) return false;\n const now = Date.now();\n const expiryMs = this.cache.payload.exp * 1000;\n return now >= expiryMs && now < expiryMs + LicenseValidator.GRACE_PERIOD;\n }\n\n private resolveToken(): string | null {\n // 1. Direct env var\n if (process.env.VISOR_LICENSE) {\n return process.env.VISOR_LICENSE.trim();\n }\n\n // 2. File path from env (validate against path traversal)\n if (process.env.VISOR_LICENSE_FILE) {\n // path.resolve() produces an absolute path with all '..' segments resolved,\n // so a separate resolved.includes('..') check is unnecessary.\n const resolved = path.resolve(process.env.VISOR_LICENSE_FILE);\n const home = process.env.HOME || process.env.USERPROFILE || '';\n const allowedPrefixes = [path.normalize(process.cwd())];\n if (home) allowedPrefixes.push(path.normalize(path.join(home, '.config', 'visor')));\n\n // Resolve symlinks so an attacker cannot create a symlink inside an\n // allowed prefix that points to an arbitrary file outside it.\n let realPath: string;\n try {\n realPath = fs.realpathSync(resolved);\n } catch {\n return null; // File doesn't exist or isn't accessible\n }\n\n const isSafe = allowedPrefixes.some(\n prefix => realPath === prefix || realPath.startsWith(prefix + path.sep)\n );\n if (!isSafe) return null;\n return this.readFile(realPath);\n }\n\n // 3. .visor-license in cwd\n const cwdPath = path.join(process.cwd(), '.visor-license');\n const cwdToken = this.readFile(cwdPath);\n if (cwdToken) return cwdToken;\n\n // 4. ~/.config/visor/.visor-license\n const home = process.env.HOME || process.env.USERPROFILE || '';\n if (home) {\n const configPath = path.join(home, '.config', 'visor', '.visor-license');\n const configToken = this.readFile(configPath);\n if (configToken) return configToken;\n }\n\n return null;\n }\n\n private readFile(filePath: string): string | null {\n try {\n return fs.readFileSync(filePath, 'utf-8').trim();\n } catch {\n return null;\n }\n }\n\n private verifyAndDecode(token: string): LicensePayload | null {\n try {\n const parts = token.split('.');\n if (parts.length !== 3) return null;\n\n const [headerB64, payloadB64, signatureB64] = parts;\n\n // Decode header to verify algorithm\n const header = JSON.parse(Buffer.from(headerB64, 'base64url').toString());\n if (header.alg !== 'EdDSA') return null;\n\n // Verify signature\n const data = `${headerB64}.${payloadB64}`;\n const signature = Buffer.from(signatureB64, 'base64url');\n\n const publicKey = crypto.createPublicKey(LicenseValidator.PUBLIC_KEY);\n\n // Validate that the loaded public key is actually Ed25519 (OID 1.3.101.112).\n // This prevents algorithm-confusion attacks if the embedded key were ever\n // swapped to a different type.\n if (publicKey.asymmetricKeyType !== 'ed25519') {\n return null;\n }\n\n // Ed25519 verification: algorithm must be null because EdDSA performs its\n // own internal hashing (SHA-512) — passing a digest algorithm here would\n // cause Node.js to throw. The key type is validated above.\n const isValid = crypto.verify(null, Buffer.from(data), publicKey, signature);\n if (!isValid) return null;\n\n // Decode payload\n const payload: LicensePayload = JSON.parse(Buffer.from(payloadB64, 'base64url').toString());\n\n // Validate required fields\n if (\n !payload.org ||\n !Array.isArray(payload.features) ||\n typeof payload.exp !== 'number' ||\n typeof payload.iat !== 'number' ||\n !payload.sub\n ) {\n return null;\n }\n\n // Check expiry (with grace period)\n const now = Date.now();\n const expiryMs = payload.exp * 1000;\n if (now >= expiryMs + LicenseValidator.GRACE_PERIOD) {\n return null;\n }\n\n return payload;\n } catch {\n return null;\n }\n }\n}\n"],"mappings":"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","names":["home"]}
@@ -0,0 +1,28 @@
1
+ import {
2
+ WorkflowCheckProvider,
3
+ init_workflow_check_provider
4
+ } from "./chunk-TQ4D3YOF.mjs";
5
+ import "./chunk-KFKHU6CM.mjs";
6
+ import "./chunk-LG4AUKHB.mjs";
7
+ import "./chunk-B7BVQM5K.mjs";
8
+ import "./chunk-XXAEN5KU.mjs";
9
+ import "./chunk-GEW6LS32.mjs";
10
+ import "./chunk-DIND4ZCV.mjs";
11
+ import "./chunk-UCNT3PDT.mjs";
12
+ import "./chunk-NCWIZVOT.mjs";
13
+ import "./chunk-VMLORODQ.mjs";
14
+ import "./chunk-HOKQOO3G.mjs";
15
+ import "./chunk-YJRBN3XS.mjs";
16
+ import "./chunk-JL7JXCET.mjs";
17
+ import "./chunk-V2IV3ILA.mjs";
18
+ import "./chunk-25IC7KXZ.mjs";
19
+ import "./chunk-VF6XIUE4.mjs";
20
+ import "./chunk-VPC3QSPW.mjs";
21
+ import "./chunk-SZXICFQ3.mjs";
22
+ import "./chunk-UCMJJ3IM.mjs";
23
+ import "./chunk-J7LXIPZS.mjs";
24
+ init_workflow_check_provider();
25
+ export {
26
+ WorkflowCheckProvider
27
+ };
28
+ //# sourceMappingURL=workflow-check-provider-E7YPEZ45.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,28 @@
1
+ import {
2
+ WorkflowCheckProvider,
3
+ init_workflow_check_provider
4
+ } from "./chunk-S6CD7GFM.mjs";
5
+ import "./chunk-LG4AUKHB.mjs";
6
+ import "./chunk-KFKHU6CM.mjs";
7
+ import "./chunk-B7BVQM5K.mjs";
8
+ import "./chunk-XXAEN5KU.mjs";
9
+ import "./chunk-GEW6LS32.mjs";
10
+ import "./chunk-DIND4ZCV.mjs";
11
+ import "./chunk-UCNT3PDT.mjs";
12
+ import "./chunk-NCWIZVOT.mjs";
13
+ import "./chunk-VMLORODQ.mjs";
14
+ import "./chunk-HOKQOO3G.mjs";
15
+ import "./chunk-YJRBN3XS.mjs";
16
+ import "./chunk-JL7JXCET.mjs";
17
+ import "./chunk-V2IV3ILA.mjs";
18
+ import "./chunk-25IC7KXZ.mjs";
19
+ import "./chunk-VF6XIUE4.mjs";
20
+ import "./chunk-VPC3QSPW.mjs";
21
+ import "./chunk-SZXICFQ3.mjs";
22
+ import "./chunk-UCMJJ3IM.mjs";
23
+ import "./chunk-J7LXIPZS.mjs";
24
+ init_workflow_check_provider();
25
+ export {
26
+ WorkflowCheckProvider
27
+ };
28
+ //# sourceMappingURL=workflow-check-provider-HB4XTD4Z.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,12 @@
1
+ import {
2
+ WorkflowRegistry,
3
+ init_workflow_registry
4
+ } from "./chunk-DIND4ZCV.mjs";
5
+ import "./chunk-SZXICFQ3.mjs";
6
+ import "./chunk-UCMJJ3IM.mjs";
7
+ import "./chunk-J7LXIPZS.mjs";
8
+ init_workflow_registry();
9
+ export {
10
+ WorkflowRegistry
11
+ };
12
+ //# sourceMappingURL=workflow-registry-AAD37XKZ.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -27,9 +27,17 @@ export declare class SlackClient {
27
27
  text: string;
28
28
  thread_ts?: string;
29
29
  }) => Promise<{
30
+ ok: false;
31
+ ts: undefined;
32
+ message: undefined;
33
+ data: any;
34
+ error: any;
35
+ } | {
36
+ ok: true;
30
37
  ts: any;
31
38
  message: any;
32
39
  data: any;
40
+ error: undefined;
33
41
  }>;
34
42
  update: ({ channel, ts, text }: {
35
43
  channel: string;
@@ -38,9 +46,13 @@ export declare class SlackClient {
38
46
  }) => Promise<{
39
47
  ok: false;
40
48
  ts: string;
49
+ error: any;
50
+ data: any;
41
51
  } | {
42
52
  ok: true;
43
53
  ts: any;
54
+ error: undefined;
55
+ data: any;
44
56
  }>;
45
57
  };
46
58
  getBotUserId(): Promise<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/slack/client.ts"],"names":[],"mappings":"AAGA,qBAAa,WAAW;IACtB,OAAO,CAAC,KAAK,CAAS;gBAEV,QAAQ,EAAE,MAAM;IAO5B,SAAgB,SAAS;6CAKpB;YACD,OAAO,EAAE,MAAM,CAAC;YAChB,SAAS,EAAE,MAAM,CAAC;YAClB,IAAI,EAAE,MAAM,CAAC;SACd;;;;;gDAcE;YACD,OAAO,EAAE,MAAM,CAAC;YAChB,SAAS,EAAE,MAAM,CAAC;YAClB,IAAI,EAAE,MAAM,CAAC;SACd;;;;;MASD;IAEF,SAAgB,IAAI;qDAKf;YACD,OAAO,EAAE,MAAM,CAAC;YAChB,IAAI,EAAE,MAAM,CAAC;YACb,SAAS,CAAC,EAAE,MAAM,CAAC;SACpB;;;;;wCAkBqC;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,EAAE,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE;;;;;;;MASnF;IAEI,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IASrC;;;OAGG;IACG,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QACzC,EAAE,EAAE,OAAO,CAAC;QACZ,IAAI,CAAC,EAAE;YACL,EAAE,EAAE,MAAM,CAAC;YACX,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,aAAa,CAAC,EAAE,OAAO,CAAC;YACxB,mBAAmB,CAAC,EAAE,OAAO,CAAC;YAC9B,MAAM,CAAC,EAAE,OAAO,CAAC;YACjB,WAAW,CAAC,EAAE,OAAO,CAAC;YACtB,OAAO,CAAC,EAAE,OAAO,CAAC;YAClB,EAAE,CAAC,EAAE,MAAM,CAAC;YACZ,SAAS,CAAC,EAAE,MAAM,CAAC;SACpB,CAAC;KACH,CAAC;IA4BF;;;OAGG;IACG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAgBlE,kBAAkB,CACtB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,KAAK,GAAE,MAAW,GACjB,OAAO,CACR,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CACzF;IAwCD,SAAgB,KAAK;QACnB;;;WAGG;uFAQA;YACD,OAAO,EAAE,MAAM,CAAC;YAChB,QAAQ,EAAE,MAAM,CAAC;YACjB,OAAO,EAAE,MAAM,CAAC;YAChB,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,eAAe,CAAC,EAAE,MAAM,CAAC;SAC1B,KAAG,OAAO,CAAC;YAAE,EAAE,EAAE,OAAO,CAAC;YAAC,IAAI,CAAC,EAAE;gBAAE,EAAE,EAAE,MAAM,CAAC;gBAAC,SAAS,CAAC,EAAE,MAAM,CAAA;aAAE,CAAA;SAAE,CAAC;MA+CvE;IAEF,YAAY,IAAI,GAAG;YAaL,GAAG;CAYlB"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/slack/client.ts"],"names":[],"mappings":"AAGA,qBAAa,WAAW;IACtB,OAAO,CAAC,KAAK,CAAS;gBAEV,QAAQ,EAAE,MAAM;IAO5B,SAAgB,SAAS;6CAKpB;YACD,OAAO,EAAE,MAAM,CAAC;YAChB,SAAS,EAAE,MAAM,CAAC;YAClB,IAAI,EAAE,MAAM,CAAC;SACd;;;;;gDAcE;YACD,OAAO,EAAE,MAAM,CAAC;YAChB,SAAS,EAAE,MAAM,CAAC;YAClB,IAAI,EAAE,MAAM,CAAC;SACd;;;;;MASD;IAEF,SAAgB,IAAI;qDAKf;YACD,OAAO,EAAE,MAAM,CAAC;YAChB,IAAI,EAAE,MAAM,CAAC;YACb,SAAS,CAAC,EAAE,MAAM,CAAC;SACpB;;;;;;;;;;;;;wCA4CqC;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,EAAE,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE;;;;;;;;;;;MA8BnF;IAEI,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IASrC;;;OAGG;IACG,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QACzC,EAAE,EAAE,OAAO,CAAC;QACZ,IAAI,CAAC,EAAE;YACL,EAAE,EAAE,MAAM,CAAC;YACX,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,aAAa,CAAC,EAAE,OAAO,CAAC;YACxB,mBAAmB,CAAC,EAAE,OAAO,CAAC;YAC9B,MAAM,CAAC,EAAE,OAAO,CAAC;YACjB,WAAW,CAAC,EAAE,OAAO,CAAC;YACtB,OAAO,CAAC,EAAE,OAAO,CAAC;YAClB,EAAE,CAAC,EAAE,MAAM,CAAC;YACZ,SAAS,CAAC,EAAE,MAAM,CAAC;SACpB,CAAC;KACH,CAAC;IA4BF;;;OAGG;IACG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAgBlE,kBAAkB,CACtB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,KAAK,GAAE,MAAW,GACjB,OAAO,CACR,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CACzF;IAwCD,SAAgB,KAAK;QACnB;;;WAGG;uFAQA;YACD,OAAO,EAAE,MAAM,CAAC;YAChB,QAAQ,EAAE,MAAM,CAAC;YACjB,OAAO,EAAE,MAAM,CAAC;YAChB,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,eAAe,CAAC,EAAE,MAAM,CAAC;SAC1B,KAAG,OAAO,CAAC;YAAE,EAAE,EAAE,OAAO,CAAC;YAAC,IAAI,CAAC,EAAE;gBAAE,EAAE,EAAE,MAAM,CAAC;gBAAC,SAAS,CAAC,EAAE,MAAM,CAAA;aAAE,CAAA;SAAE,CAAC;MA+CvE;IAEF,YAAY,IAAI,GAAG;YAaL,GAAG;CAYlB"}
@@ -1 +1 @@
1
- {"version":3,"file":"slack-output-adapter.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/slack/slack-output-adapter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,KAAK,EAAE,QAAQ,EAAyB,MAAM,6BAA6B,CAAC;AACnF,OAAO,KAAK,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAG7F;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,0DAA0D;IAC1D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kDAAkD;IAClD,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,iDAAiD;IACjD,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED;;GAEG;AACH,qBAAa,kBAAmB,YAAW,qBAAqB;IAC9D,QAAQ,CAAC,IAAI,EAAG,OAAO,CAAU;IACjC,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,MAAM,CAA2B;gBAE7B,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,wBAAwB;IAKlE;;OAEG;IACG,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC;IA4CpF;;OAEG;YACW,aAAa;IAsC3B;;OAEG;IACH,OAAO,CAAC,YAAY;CAuDrB;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,WAAW,EACnB,MAAM,CAAC,EAAE,wBAAwB,GAChC,kBAAkB,CAEpB"}
1
+ {"version":3,"file":"slack-output-adapter.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/slack/slack-output-adapter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,KAAK,EAAE,QAAQ,EAAyB,MAAM,6BAA6B,CAAC;AACnF,OAAO,KAAK,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAG7F;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,0DAA0D;IAC1D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kDAAkD;IAClD,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,iDAAiD;IACjD,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED;;GAEG;AACH,qBAAa,kBAAmB,YAAW,qBAAqB;IAC9D,QAAQ,CAAC,IAAI,EAAG,OAAO,CAAU;IACjC,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,MAAM,CAA2B;gBAE7B,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,wBAAwB;IAKlE;;OAEG;IACG,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC;IAuDpF;;OAEG;YACW,aAAa;IAsC3B;;OAEG;IACH,OAAO,CAAC,YAAY;CAuDrB;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,WAAW,EACnB,MAAM,CAAC,EAAE,wBAAwB,GAChC,kBAAkB,CAEpB"}
@@ -1 +1 @@
1
- {"version":3,"file":"socket-runner.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/slack/socket-runner.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAmB,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;AAOhF,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAGnD,KAAK,iBAAiB,GAAG;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC;IAC5B,OAAO,CAAC,EAAE,UAAU,GAAG,KAAK,CAAC;IAC7B,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAA8B;IAC9C,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,EAAE,CAAC,CAAY;IACvB,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,GAAG,CAAc;IACzB,OAAO,CAAC,MAAM,CAAC,CAAc;IAC7B,OAAO,CAAC,OAAO,CAAC,CAAc;IAC9B,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,gBAAgB,CAAkB;IAC1C,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,aAAa,CAAkC;IACvD,OAAO,CAAC,aAAa,CASP;IACd,OAAO,CAAC,OAAO,CAAC,CAAe;IAC/B,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,gBAAgB,CAAC,CAAY;gBAEzB,MAAM,EAAE,2BAA2B,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,iBAAiB;IAqB1F;;;OAGG;YACW,YAAY;IAYpB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YA0Ed,cAAc;YAiBd,OAAO;YAgBP,OAAO;IAerB,OAAO,CAAC,IAAI;IAMZ,OAAO,CAAC,gBAAgB;IAQxB;;;OAGG;YACW,aAAa;IAyC3B;;OAEG;YACW,WAAW;YAKX,aAAa;IAkS3B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAyB3B;;OAEG;IACH,YAAY,IAAI,SAAS,GAAG,SAAS;IAIrC,0FAA0F;IAC1F,OAAO,CAAC,eAAe;CA+BxB"}
1
+ {"version":3,"file":"socket-runner.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/slack/socket-runner.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAmB,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;AAOhF,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAGnD,KAAK,iBAAiB,GAAG;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC;IAC5B,OAAO,CAAC,EAAE,UAAU,GAAG,KAAK,CAAC;IAC7B,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAA8B;IAC9C,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,EAAE,CAAC,CAAY;IACvB,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,GAAG,CAAc;IACzB,OAAO,CAAC,MAAM,CAAC,CAAc;IAC7B,OAAO,CAAC,OAAO,CAAC,CAAc;IAC9B,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,gBAAgB,CAAkB;IAC1C,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,aAAa,CAAkC;IACvD,OAAO,CAAC,aAAa,CASP;IACd,OAAO,CAAC,OAAO,CAAC,CAAe;IAC/B,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,gBAAgB,CAAC,CAAY;gBAEzB,MAAM,EAAE,2BAA2B,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,iBAAiB;IAqB1F;;;OAGG;YACW,YAAY;IAYpB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YA0Ed,cAAc;YAiBd,OAAO;YAgBP,OAAO;IAerB,OAAO,CAAC,IAAI;IAMZ,OAAO,CAAC,gBAAgB;IAQxB;;;OAGG;YACW,aAAa;IAyC3B;;OAEG;YACW,WAAW;YAKX,aAAa;IA6S3B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAyB3B;;OAEG;IACH,YAAY,IAAI,SAAS,GAAG,SAAS;IAIrC,0FAA0F;IAC1F,OAAO,CAAC,eAAe;CA+BxB"}
@@ -1 +1 @@
1
- {"version":3,"file":"execution-invoker.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/state-machine/dispatch/execution-invoker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC5F,OAAO,KAAK,EAAe,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAiRtD;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,aAAa,EACtB,KAAK,EAAE,QAAQ,EACf,SAAS,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,EACvC,UAAU,EAAE,CAAC,QAAQ,EAAE,WAAW,KAAK,IAAI,EAC3C,UAAU,EAAE,CACV,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,aAAa,EACtB,KAAK,EAAE,QAAQ,KACZ,OAAO,CAAC,OAAO,CAAC,EACrB,aAAa,CAAC,EAAE,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,GACtD,OAAO,CAAC,aAAa,CAAC,CAomBxB"}
1
+ {"version":3,"file":"execution-invoker.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/state-machine/dispatch/execution-invoker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC5F,OAAO,KAAK,EAAe,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAkRtD;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,aAAa,EACtB,KAAK,EAAE,QAAQ,EACf,SAAS,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,EACvC,UAAU,EAAE,CAAC,QAAQ,EAAE,WAAW,KAAK,IAAI,EAC3C,UAAU,EAAE,CACV,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,aAAa,EACtB,KAAK,EAAE,QAAQ,KACZ,OAAO,CAAC,OAAO,CAAC,EACrB,aAAa,CAAC,EAAE,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,GACtD,OAAO,CAAC,aAAa,CAAC,CA+oBxB"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Shared policy engine gating logic.
3
+ *
4
+ * Used by both execution-invoker and level-dispatch to evaluate whether
5
+ * a check is allowed to run according to the policy engine.
6
+ */
7
+ import type { PolicyEngine } from '../../policy/types';
8
+ export interface PolicyGateResult {
9
+ /** Whether the check should be skipped (policy denied and not in warn-only mode) */
10
+ skip: boolean;
11
+ /** Human-readable reason for the decision */
12
+ reason?: string;
13
+ /** Whether a warn/audit message was emitted (allowed but flagged) */
14
+ warn?: boolean;
15
+ /** The audit reason string when warn is true */
16
+ auditReason?: string;
17
+ }
18
+ /**
19
+ * Evaluate the policy engine for a given check and return a gating result.
20
+ *
21
+ * This function:
22
+ * - Calls policyEngine.evaluateCheckExecution
23
+ * - On evaluation error, treats the check as denied
24
+ * - Logs audit warnings when decision.warn is true
25
+ * - Returns a simple result indicating skip/allow and any audit info
26
+ */
27
+ export declare function applyPolicyGate(checkId: string, checkConfig: unknown, policyEngine: PolicyEngine): Promise<PolicyGateResult>;
28
+ //# sourceMappingURL=policy-gate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy-gate.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/state-machine/dispatch/policy-gate.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAkB,MAAM,oBAAoB,CAAC;AAGvE,MAAM,WAAW,gBAAgB;IAC/B,oFAAoF;IACpF,IAAI,EAAE,OAAO,CAAC;IACd,6CAA6C;IAC7C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qEAAqE;IACrE,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,gDAAgD;IAChD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,OAAO,EACpB,YAAY,EAAE,YAAY,GACzB,OAAO,CAAC,gBAAgB,CAAC,CA+B3B"}
@@ -1 +1 @@
1
- {"version":3,"file":"level-dispatch.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/state-machine/states/level-dispatch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EACV,aAAa,EACb,QAAQ,EACR,WAAW,EACX,WAAW,EAEZ,MAAM,oBAAoB,CAAC;AA4O5B,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,aAAa,EACtB,KAAK,EAAE,QAAQ,EACf,UAAU,EAAE,CAAC,QAAQ,EAAE,WAAW,KAAK,IAAI,EAC3C,SAAS,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,GACtC,OAAO,CAAC,IAAI,CAAC,CAyFf"}
1
+ {"version":3,"file":"level-dispatch.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/state-machine/states/level-dispatch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EACV,aAAa,EACb,QAAQ,EACR,WAAW,EACX,WAAW,EAEZ,MAAM,oBAAoB,CAAC;AAsR5B,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,aAAa,EACtB,KAAK,EAAE,QAAQ,EACf,UAAU,EAAE,CAAC,QAAQ,EAAE,WAAW,KAAK,IAAI,EAC3C,SAAS,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,GACtC,OAAO,CAAC,IAAI,CAAC,CAyFf"}
@@ -1 +1 @@
1
- {"version":3,"file":"routing.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/state-machine/states/routing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC5F,OAAO,KAAK,EAAE,aAAa,EAAe,MAAM,gBAAgB,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAgB,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAuGpF;;GAEG;AACH,UAAU,cAAc;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,MAAM,EAAE,aAAa,CAAC;IACtB,WAAW,EAAE,WAAW,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;CAClB;AA0ED;;;GAGG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,aAAa,EACtB,KAAK,EAAE,QAAQ,EACf,UAAU,EAAE,CAAC,QAAQ,EAAE,WAAW,KAAK,IAAI,EAC3C,SAAS,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,EACvC,cAAc,EAAE,cAAc,GAC7B,OAAO,CAAC,OAAO,CAAC,CA2ElB;AA6cD;;GAEG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,aAAa,EACtB,KAAK,EAAE,QAAQ,EACf,MAAM,EAAE,YAAY,GAAG,SAAS,GAAG,WAAW,EAC9C,MAAM,EAAE,KAAK,GAAG,MAAM,GACrB,OAAO,CAUT;AAytBD;;GAEG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,QAAQ,GACf,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAuJxB;AAID;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,cAAc,EAAE,GAAG,SAAS,EACzC,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,QAAQ,GACf,OAAO,CACR;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,oBAAoB,EAAE,YAAY,CAAA;CAAE,GAAG,IAAI,GAAG,SAAS,CAC1F,CA0FA"}
1
+ {"version":3,"file":"routing.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/state-machine/states/routing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC5F,OAAO,KAAK,EAAE,aAAa,EAAe,MAAM,gBAAgB,CAAC;AACjE,OAAO,KAAK,EACV,WAAW,EAEX,cAAc,EAIf,MAAM,oBAAoB,CAAC;AA2K5B;;GAEG;AACH,UAAU,cAAc;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,MAAM,EAAE,aAAa,CAAC;IACtB,WAAW,EAAE,WAAW,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;CAClB;AA0ED;;;GAGG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,aAAa,EACtB,KAAK,EAAE,QAAQ,EACf,UAAU,EAAE,CAAC,QAAQ,EAAE,WAAW,KAAK,IAAI,EAC3C,SAAS,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,EACvC,cAAc,EAAE,cAAc,GAC7B,OAAO,CAAC,OAAO,CAAC,CA2ElB;AAmdD;;GAEG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,aAAa,EACtB,KAAK,EAAE,QAAQ,EACf,MAAM,EAAE,YAAY,GAAG,SAAS,GAAG,WAAW,EAC9C,MAAM,EAAE,KAAK,GAAG,MAAM,GACrB,OAAO,CAUT;AAgxBD;;GAEG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,QAAQ,GACf,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAuJxB;AAID;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,cAAc,EAAE,GAAG,SAAS,EACzC,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,QAAQ,GACf,OAAO,CACR;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,oBAAoB,EAAE,YAAY,CAAA;CAAE,GAAG,IAAI,GAAG,SAAS,CAC1F,CA0FA"}
@@ -1 +1 @@
1
- {"version":3,"file":"wave-planning.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/state-machine/states/wave-planning.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,WAAW,EAAe,MAAM,oBAAoB,CAAC;AAI5F,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,aAAa,EACtB,KAAK,EAAE,QAAQ,EACf,UAAU,EAAE,CAAC,QAAQ,EAAE,WAAW,KAAK,IAAI,GAC1C,OAAO,CAAC,IAAI,CAAC,CAscf"}
1
+ {"version":3,"file":"wave-planning.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/state-machine/states/wave-planning.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,WAAW,EAAe,MAAM,oBAAoB,CAAC;AAI5F,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,aAAa,EACtB,KAAK,EAAE,QAAQ,EACf,UAAU,EAAE,CAAC,QAAQ,EAAE,WAAW,KAAK,IAAI,GAC1C,OAAO,CAAC,IAAI,CAAC,CAodf"}
@@ -1 +1 @@
1
- {"version":3,"file":"","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/state-machine-execution-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/state-machine-execution-engine.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"flow-stage.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/test-runner/core/flow-stage.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,2BAA2B,EAAE,MAAM,sCAAsC,CAAC;AACnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAQhE,KAAK,aAAa,GAAG,CACnB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,MAAM,KACb,IAAI,CAAC;AACV,KAAK,aAAa,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;AAChD,KAAK,UAAU,GAAG,CAAC,WAAW,CAAC,EAAE,MAAM,KAAK,OAAO,oBAAoB,EAAE,YAAY,CAAC;AACtF,KAAK,eAAe,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,MAAM,EAAE,CAAC;AACpF,KAAK,cAAc,GAAG,CACpB,KAAK,EAAE,mBAAmB,EAC1B,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC3B,IAAI,CAAC;AAEV,qBAAa,SAAS;IAElB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,uBAAuB;IACxC,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IACpC,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IACtC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IACpC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IACpC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC;gBAbjB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,2BAA2B,EACnC,QAAQ,EAAE,gBAAgB,EAC1B,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EACjC,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,uBAAuB,EAAE,UAAU,EACnC,kBAAkB,EAAE,eAAe,EACnC,gBAAgB,EAAE,aAAa,EAC/B,mBAAmB,EAAE,aAAa,EAClC,qBAAqB,EAAE,cAAc,EACrC,kBAAkB,CAAC,EAAE,MAAM,EAAE,YAAA,EAC7B,kBAAkB,CAAC,EAAE,MAAM,EAAE,YAAA,EAC7B,gBAAgB,CAAC,EAAE,GAAG,EAAE,YAAA;IAGrC,GAAG,CACP,KAAK,EAAE,GAAG,EACV,QAAQ,EAAE,GAAG,EACb,MAAM,EAAE,OAAO,GACd,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,CAAC,EAAE,mBAAmB,CAAA;KAAE,CAAC;CAkgB7E"}
1
+ {"version":3,"file":"flow-stage.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/test-runner/core/flow-stage.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,2BAA2B,EAAE,MAAM,sCAAsC,CAAC;AACnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAQhE,KAAK,aAAa,GAAG,CACnB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,MAAM,KACb,IAAI,CAAC;AACV,KAAK,aAAa,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;AAChD,KAAK,UAAU,GAAG,CAAC,WAAW,CAAC,EAAE,MAAM,KAAK,OAAO,oBAAoB,EAAE,YAAY,CAAC;AACtF,KAAK,eAAe,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,MAAM,EAAE,CAAC;AACpF,KAAK,cAAc,GAAG,CACpB,KAAK,EAAE,mBAAmB,EAC1B,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC3B,IAAI,CAAC;AAEV,qBAAa,SAAS;IAElB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,uBAAuB;IACxC,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IACpC,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IACtC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IACpC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IACpC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC;gBAbjB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,2BAA2B,EACnC,QAAQ,EAAE,gBAAgB,EAC1B,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EACjC,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,uBAAuB,EAAE,UAAU,EACnC,kBAAkB,EAAE,eAAe,EACnC,gBAAgB,EAAE,aAAa,EAC/B,mBAAmB,EAAE,aAAa,EAClC,qBAAqB,EAAE,cAAc,EACrC,kBAAkB,CAAC,EAAE,MAAM,EAAE,YAAA,EAC7B,kBAAkB,CAAC,EAAE,MAAM,EAAE,YAAA,EAC7B,gBAAgB,CAAC,EAAE,GAAG,EAAE,YAAA;IAGrC,GAAG,CACP,KAAK,EAAE,GAAG,EACV,QAAQ,EAAE,GAAG,EACb,MAAM,EAAE,OAAO,GACd,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,CAAC,EAAE,mBAAmB,CAAA;KAAE,CAAC;CAwgB7E"}
@@ -1 +1 @@
1
- {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/test-runner/validator.ts"],"names":[],"mappings":"AA2fA,MAAM,MAAM,gBAAgB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAE9E,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB,CAS/D"}
1
+ {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/test-runner/validator.ts"],"names":[],"mappings":"AAigBA,MAAM,MAAM,gBAAgB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAE9E,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB,CAS/D"}
@@ -1 +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"}
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;IAmH7B,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"}
@@ -48,6 +48,7 @@ export declare class ChatStateManager {
48
48
  clearHistory(): void;
49
49
  getRecentMessages(count: number): ChatMessage[];
50
50
  formatMessageForDisplay(message: ChatMessage): string;
51
+ private escapeTags;
51
52
  formatHistoryForDisplay(): string;
52
53
  }
53
54
  export declare function getChatStateManager(): ChatStateManager;
@@ -1 +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"}
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;IA6BrD,OAAO,CAAC,UAAU;IAIlB,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"}
@@ -13,8 +13,6 @@ export declare class ChatTUI {
13
13
  private chatBox?;
14
14
  private inputBar?;
15
15
  private statusBar?;
16
- private logsStatusBar?;
17
- private tracesStatusBar?;
18
16
  private logsBox?;
19
17
  private traceViewer?;
20
18
  private activeTab;
@@ -28,6 +26,7 @@ export declare class ChatTUI {
28
26
  private abortHandler?;
29
27
  private pendingLogs;
30
28
  private running;
29
+ private mouseEnabled;
31
30
  constructor(options?: ChatTUIOptions);
32
31
  getStateManager(): ChatStateManager;
33
32
  setTraceFile(path: string): void;
@@ -35,6 +34,7 @@ export declare class ChatTUI {
35
34
  private setupKeyBindings;
36
35
  stop(): void;
37
36
  setRunning(running: boolean): void;
37
+ private toggleMouseMode;
38
38
  setProcessing(processing: boolean): void;
39
39
  setWaiting(waiting: boolean, prompt?: string): void;
40
40
  setStatus(text: string): void;
@@ -63,6 +63,7 @@ export declare class ChatTUI {
63
63
  private handleInputEscape;
64
64
  private toggleTab;
65
65
  private setActiveTab;
66
+ private _flushPendingLogs;
66
67
  private updateLayout;
67
68
  private updateStatusBar;
68
69
  }
@@ -1 +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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"}
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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"}
@@ -13,11 +13,19 @@ export interface ChatBoxOptions {
13
13
  export declare class ChatBox {
14
14
  private box;
15
15
  private parent;
16
+ private _progressTimer?;
17
+ private _elapsedSeconds;
18
+ private _baseContent;
16
19
  constructor(options: ChatBoxOptions);
17
20
  getElement(): Box;
18
21
  focus(): void;
19
22
  setContent(content: string): void;
20
23
  appendMessage(message: ChatMessage): void;
24
+ showProgress(): void;
25
+ hideProgress(): void;
26
+ private _isProgressing;
27
+ private _progressLine;
28
+ private _renderProgress;
21
29
  scrollToBottom(): void;
22
30
  scrollUp(lines?: number): void;
23
31
  scrollDown(lines?: number): void;
@@ -25,6 +33,7 @@ export declare class ChatBox {
25
33
  show(): void;
26
34
  hide(): void;
27
35
  private formatMessage;
36
+ private escapeTags;
28
37
  setHeight(height: number | string): void;
29
38
  setTop(top: number | string): void;
30
39
  render(screen: Screen): void;
@@ -1 +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"}
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;AAKD,qBAAa,OAAO;IAClB,OAAO,CAAC,GAAG,CAAM;IACjB,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,cAAc,CAAC,CAAiC;IACxD,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,YAAY,CAAM;gBAEd,OAAO,EAAE,cAAc;IA0BnC,UAAU,IAAI,GAAG;IAIjB,KAAK,IAAI,IAAI;IAIb,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAMjC,aAAa,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAUzC,YAAY,IAAI,IAAI;IAapB,YAAY,IAAI,IAAI;IAYpB,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,eAAe;IAMvB,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;IAgCrB,OAAO,CAAC,UAAU;IAKlB,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"}
@@ -2,7 +2,8 @@
2
2
  * InputBar Component
3
3
  *
4
4
  * Persistent input bar at the bottom of the chat interface.
5
- * Always visible, allows users to type messages at any time.
5
+ * Features a top border separator, multiline textarea with auto-grow,
6
+ * Enter to submit, and Shift+Enter for newline.
6
7
  */
7
8
  import blessed from 'blessed';
8
9
  type Screen = blessed.Widgets.Screen;
@@ -13,9 +14,12 @@ export interface InputBarOptions {
13
14
  onEscape?: () => void;
14
15
  onTab?: () => void;
15
16
  onAbort?: () => void;
17
+ onResize?: (height: number) => void;
16
18
  }
17
19
  export declare class InputBar {
18
20
  private container;
21
+ private topBorder;
22
+ private bottomBorder;
19
23
  private input;
20
24
  private placeholder;
21
25
  private parent;
@@ -23,14 +27,26 @@ export declare class InputBar {
23
27
  private _placeholderText;
24
28
  private _hasFocus;
25
29
  private _lastActivation;
30
+ private _currentHeight;
26
31
  private onSubmit?;
27
32
  private onEscape?;
28
33
  private onTab?;
29
34
  private onAbort?;
35
+ private onResize?;
30
36
  constructor(options: InputBarOptions);
37
+ private _updateBorders;
38
+ private _overrideInputListener;
31
39
  private setupEventHandlers;
40
+ private _autoGrow;
41
+ private _resetHeight;
32
42
  private _activateInput;
43
+ /**
44
+ * Re-acquire focus if the input was previously active.
45
+ * Call this when the terminal window regains focus.
46
+ */
47
+ refocus(): void;
33
48
  getElement(): Box;
49
+ getHeight(): number;
34
50
  focus(): void;
35
51
  blur(): void;
36
52
  clear(): void;
@@ -39,6 +55,7 @@ export declare class InputBar {
39
55
  setPlaceholder(text: string): void;
40
56
  disable(): void;
41
57
  enable(): void;
58
+ hasFocus(): boolean;
42
59
  isDisabled(): boolean;
43
60
  show(): void;
44
61
  hide(): void;
@@ -1 +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"}
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;;;;;;GAMG;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;AAMtC,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;IACrB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC;AAED,qBAAa,QAAQ;IACnB,OAAO,CAAC,SAAS,CAAM;IACvB,OAAO,CAAC,SAAS,CAAM;IACvB,OAAO,CAAC,YAAY,CAAM;IAC1B,OAAO,CAAC,KAAK,CAAW;IACxB,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,cAAc,CAAc;IACpC,OAAO,CAAC,QAAQ,CAAC,CAA0B;IAC3C,OAAO,CAAC,QAAQ,CAAC,CAAa;IAC9B,OAAO,CAAC,KAAK,CAAC,CAAa;IAC3B,OAAO,CAAC,OAAO,CAAC,CAAa;IAC7B,OAAO,CAAC,QAAQ,CAAC,CAA2B;gBAEhC,OAAO,EAAE,eAAe;IA2FpC,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,sBAAsB;IAmB9B,OAAO,CAAC,kBAAkB;IAiF1B,OAAO,CAAC,SAAS;IAejB,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,cAAc;IA0BtB;;;OAGG;IACH,OAAO,IAAI,IAAI;IAQf,UAAU,IAAI,GAAG;IAIjB,SAAS,IAAI,MAAM;IAInB,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;IAOd,QAAQ,IAAI,OAAO;IAInB,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"}
@@ -1,14 +1,15 @@
1
1
  /**
2
2
  * StatusBar Component
3
3
  *
4
- * Status line at the very bottom showing mode indicators and keyboard hints.
4
+ * Status line at the very bottom showing mode indicator, current view name,
5
+ * and a hint for tab cycling. No background color — minimal design.
5
6
  */
6
7
  import blessed from 'blessed';
7
8
  type Screen = blessed.Widgets.Screen;
8
9
  type Box = blessed.Widgets.BoxElement;
9
10
  export type StatusMode = 'ready' | 'processing' | 'waiting' | 'error';
10
11
  export interface StatusBarOptions {
11
- parent: Box;
12
+ parent: Box | Screen;
12
13
  }
13
14
  export declare class StatusBar {
14
15
  private bar;
@@ -22,9 +23,11 @@ export declare class StatusBar {
22
23
  setStatus(text: string): void;
23
24
  setActiveTab(tab: 'chat' | 'logs' | 'traces'): void;
24
25
  private render;
26
+ private getViewLabel;
25
27
  private getModeIndicatorStyled;
26
28
  show(): void;
27
29
  hide(): void;
30
+ destroy(): void;
28
31
  update(screen: Screen): void;
29
32
  }
30
33
  export {};
@@ -1 +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"}
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;;;;;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;AAEtC,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,YAAY,GAAG,SAAS,GAAG,OAAO,CAAC;AAEtE,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,GAAG,GAAG,MAAM,CAAC;CACtB;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,GAAG,CAAM;IACjB,OAAO,CAAC,MAAM,CAAe;IAC7B,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;IAYd,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,sBAAsB;IAe9B,IAAI,IAAI,IAAI;IAIZ,IAAI,IAAI,IAAI;IAIZ,OAAO,IAAI,IAAI;IAIf,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;CAI7B"}