@probelabs/visor 0.1.132 → 0.1.137-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 (139) hide show
  1. package/dist/config/config-reloader.d.ts +1 -0
  2. package/dist/config/config-reloader.d.ts.map +1 -1
  3. package/dist/config/config-watcher.d.ts +1 -0
  4. package/dist/config/config-watcher.d.ts.map +1 -1
  5. package/dist/config.d.ts +4 -0
  6. package/dist/config.d.ts.map +1 -1
  7. package/dist/docs/ai-custom-tools-usage.md +37 -0
  8. package/dist/docs/ai-custom-tools.md +43 -1
  9. package/dist/docs/custom-tools.md +70 -1
  10. package/dist/docs/script.md +542 -27
  11. package/dist/docs/testing/cookbook.md +47 -0
  12. package/dist/examples/README.md +4 -0
  13. package/dist/examples/api-tools-ai-example.yaml +63 -0
  14. package/dist/examples/api-tools-inline-overlay-example.yaml +126 -0
  15. package/dist/examples/api-tools-library.yaml +18 -0
  16. package/dist/examples/api-tools-mcp-example.yaml +55 -0
  17. package/dist/examples/openapi/profiles-overlay-rename.yaml +3 -0
  18. package/dist/examples/openapi/users-api.json +91 -0
  19. package/dist/examples/openapi/users-overlay-rename.yaml +3 -0
  20. package/dist/generated/config-schema.d.ts +223 -74
  21. package/dist/generated/config-schema.d.ts.map +1 -1
  22. package/dist/generated/config-schema.json +251 -79
  23. package/dist/index.js +50111 -28287
  24. package/dist/providers/ai-check-provider.d.ts.map +1 -1
  25. package/dist/providers/api-tool-executor.d.ts +43 -0
  26. package/dist/providers/api-tool-executor.d.ts.map +1 -0
  27. package/dist/providers/command-check-provider.d.ts.map +1 -1
  28. package/dist/providers/custom-tool-executor.d.ts +21 -0
  29. package/dist/providers/custom-tool-executor.d.ts.map +1 -1
  30. package/dist/providers/mcp-check-provider.d.ts.map +1 -1
  31. package/dist/providers/mcp-custom-sse-server.d.ts.map +1 -1
  32. package/dist/providers/script-check-provider.d.ts +18 -2
  33. package/dist/providers/script-check-provider.d.ts.map +1 -1
  34. package/dist/sdk/{check-provider-registry-7TCA3NSG.mjs → check-provider-registry-SCL4KP55.mjs} +9 -8
  35. package/dist/sdk/{check-provider-registry-RRUZHGJI.mjs → check-provider-registry-ULZRI3TC.mjs} +10 -9
  36. package/dist/sdk/{chunk-27RV5RR2.mjs → chunk-BRD36I43.mjs} +3 -3
  37. package/dist/sdk/{chunk-UBDHAGYY.mjs → chunk-E2N3U5HU.mjs} +5 -5
  38. package/dist/sdk/{chunk-XGI47XIH.mjs → chunk-F4K5WFSM.mjs} +1896 -1762
  39. package/dist/sdk/chunk-F4K5WFSM.mjs.map +1 -0
  40. package/dist/sdk/{chunk-5VY5QJTY.mjs → chunk-HQIVGUSV.mjs} +1901 -1767
  41. package/dist/sdk/chunk-HQIVGUSV.mjs.map +1 -0
  42. package/dist/sdk/{chunk-U3BLLEW3.mjs → chunk-KPRFDKQX.mjs} +329 -80
  43. package/dist/sdk/chunk-KPRFDKQX.mjs.map +1 -0
  44. package/dist/sdk/{chunk-VF6XIUE4.mjs → chunk-LW3INISN.mjs} +32 -1
  45. package/dist/sdk/{chunk-VF6XIUE4.mjs.map → chunk-LW3INISN.mjs.map} +1 -1
  46. package/dist/sdk/{chunk-VG7FWDC2.mjs → chunk-QUEWQWDX.mjs} +11 -4
  47. package/dist/sdk/{chunk-VG7FWDC2.mjs.map → chunk-QUEWQWDX.mjs.map} +1 -1
  48. package/dist/sdk/chunk-XKCER23W.mjs +1490 -0
  49. package/dist/sdk/chunk-XKCER23W.mjs.map +1 -0
  50. package/dist/sdk/{chunk-XJQKTK6V.mjs → chunk-ZUEQNCKB.mjs} +2 -2
  51. package/dist/sdk/{config-FMIIATKX.mjs → config-3UIU4TMP.mjs} +3 -3
  52. package/dist/sdk/{failure-condition-evaluator-PNONVBXD.mjs → failure-condition-evaluator-B5JJFYKU.mjs} +4 -4
  53. package/dist/sdk/{github-frontend-DWF6BLZH.mjs → github-frontend-VAWVSCNX.mjs} +4 -4
  54. package/dist/sdk/{host-S3LSWESP.mjs → host-67XTJ3BN.mjs} +2 -2
  55. package/dist/sdk/{host-U7V54J2H.mjs → host-TEQ7HKKH.mjs} +2 -2
  56. package/dist/sdk/knex-store-HPXJILBL.mjs +411 -0
  57. package/dist/sdk/knex-store-HPXJILBL.mjs.map +1 -0
  58. package/dist/sdk/{liquid-extensions-YDIIH33Q.mjs → liquid-extensions-PLBOMRLI.mjs} +3 -3
  59. package/dist/sdk/loader-ZC5G3JGJ.mjs +89 -0
  60. package/dist/sdk/loader-ZC5G3JGJ.mjs.map +1 -0
  61. package/dist/sdk/opa-policy-engine-S2S2ULEI.mjs +655 -0
  62. package/dist/sdk/opa-policy-engine-S2S2ULEI.mjs.map +1 -0
  63. package/dist/sdk/{routing-MVDVJDYJ.mjs → routing-SEQYM4N6.mjs} +6 -6
  64. package/dist/sdk/schedule-tool-2COUUTF7.mjs +18 -0
  65. package/dist/sdk/{schedule-tool-handler-FRN3KKRM.mjs → schedule-tool-handler-5BDMLHS5.mjs} +9 -8
  66. package/dist/sdk/{schedule-tool-handler-VFES42DD.mjs → schedule-tool-handler-D7XX7WM4.mjs} +10 -9
  67. package/dist/sdk/sdk.d.mts +55 -2
  68. package/dist/sdk/sdk.d.ts +55 -2
  69. package/dist/sdk/sdk.js +3790 -647
  70. package/dist/sdk/sdk.js.map +1 -1
  71. package/dist/sdk/sdk.mjs +9 -8
  72. package/dist/sdk/sdk.mjs.map +1 -1
  73. package/dist/sdk/{trace-helpers-RDPXIN4S.mjs → trace-helpers-FAAGLXBI.mjs} +2 -2
  74. package/dist/sdk/validator-XTZJZZJH.mjs +134 -0
  75. package/dist/sdk/validator-XTZJZZJH.mjs.map +1 -0
  76. package/dist/sdk/{workflow-check-provider-BMVJ6X7N.mjs → workflow-check-provider-K4MQQOYQ.mjs} +10 -9
  77. package/dist/sdk/{workflow-check-provider-CPGIRZMH.mjs → workflow-check-provider-WLA7LO56.mjs} +9 -8
  78. package/dist/state-machine/dispatch/execution-invoker.d.ts.map +1 -1
  79. package/dist/state-machine-execution-engine.d.ts.map +1 -1
  80. package/dist/test-runner/core/test-execution-wrapper.d.ts.map +1 -1
  81. package/dist/test-runner/index.d.ts.map +1 -1
  82. package/dist/test-runner/validator.d.ts.map +1 -1
  83. package/dist/types/config.d.ts +55 -2
  84. package/dist/types/config.d.ts.map +1 -1
  85. package/dist/utils/config-loader.d.ts +5 -0
  86. package/dist/utils/config-loader.d.ts.map +1 -1
  87. package/dist/utils/sandbox.d.ts +8 -0
  88. package/dist/utils/sandbox.d.ts.map +1 -1
  89. package/dist/utils/script-tool-environment.d.ts +90 -0
  90. package/dist/utils/script-tool-environment.d.ts.map +1 -0
  91. package/dist/utils/tool-resolver.d.ts +18 -0
  92. package/dist/utils/tool-resolver.d.ts.map +1 -0
  93. package/package.json +11 -4
  94. package/dist/output/traces/run-2026-02-18T11-06-48-673Z.ndjson +0 -138
  95. package/dist/output/traces/run-2026-02-18T11-07-37-310Z.ndjson +0 -1357
  96. package/dist/sdk/check-provider-registry-4WLTLPMU.mjs +0 -28
  97. package/dist/sdk/chunk-5VY5QJTY.mjs.map +0 -1
  98. package/dist/sdk/chunk-BGBXLPLL.mjs +0 -1502
  99. package/dist/sdk/chunk-BOGVSF57.mjs +0 -40101
  100. package/dist/sdk/chunk-BOGVSF57.mjs.map +0 -1
  101. package/dist/sdk/chunk-FAKITJ3J.mjs +0 -739
  102. package/dist/sdk/chunk-FAKITJ3J.mjs.map +0 -1
  103. package/dist/sdk/chunk-LMJNI6RM.mjs +0 -436
  104. package/dist/sdk/chunk-LMJNI6RM.mjs.map +0 -1
  105. package/dist/sdk/chunk-U3BLLEW3.mjs.map +0 -1
  106. package/dist/sdk/chunk-UBDHAGYY.mjs.map +0 -1
  107. package/dist/sdk/chunk-XGI47XIH.mjs.map +0 -1
  108. package/dist/sdk/failure-condition-evaluator-MUUAK7MN.mjs +0 -17
  109. package/dist/sdk/github-frontend-WR4S3NG5.mjs +0 -1356
  110. package/dist/sdk/github-frontend-WR4S3NG5.mjs.map +0 -1
  111. package/dist/sdk/routing-F4FOWVKF.mjs +0 -25
  112. package/dist/sdk/schedule-tool-handler-7DNEGDZC.mjs +0 -38
  113. package/dist/sdk/trace-helpers-KSPGA24B.mjs +0 -25
  114. package/dist/sdk/trace-helpers-KSPGA24B.mjs.map +0 -1
  115. package/dist/sdk/trace-helpers-RDPXIN4S.mjs.map +0 -1
  116. package/dist/sdk/workflow-check-provider-4NFWH6YO.mjs +0 -28
  117. package/dist/sdk/workflow-check-provider-4NFWH6YO.mjs.map +0 -1
  118. package/dist/sdk/workflow-check-provider-BMVJ6X7N.mjs.map +0 -1
  119. package/dist/sdk/workflow-check-provider-CPGIRZMH.mjs.map +0 -1
  120. package/dist/traces/run-2026-02-18T11-06-48-673Z.ndjson +0 -138
  121. package/dist/traces/run-2026-02-18T11-07-37-310Z.ndjson +0 -1357
  122. /package/dist/sdk/{check-provider-registry-4WLTLPMU.mjs.map → check-provider-registry-SCL4KP55.mjs.map} +0 -0
  123. /package/dist/sdk/{check-provider-registry-7TCA3NSG.mjs.map → check-provider-registry-ULZRI3TC.mjs.map} +0 -0
  124. /package/dist/sdk/{chunk-27RV5RR2.mjs.map → chunk-BRD36I43.mjs.map} +0 -0
  125. /package/dist/sdk/{chunk-BGBXLPLL.mjs.map → chunk-E2N3U5HU.mjs.map} +0 -0
  126. /package/dist/sdk/{chunk-XJQKTK6V.mjs.map → chunk-ZUEQNCKB.mjs.map} +0 -0
  127. /package/dist/sdk/{check-provider-registry-RRUZHGJI.mjs.map → config-3UIU4TMP.mjs.map} +0 -0
  128. /package/dist/sdk/{config-FMIIATKX.mjs.map → failure-condition-evaluator-B5JJFYKU.mjs.map} +0 -0
  129. /package/dist/sdk/{github-frontend-DWF6BLZH.mjs.map → github-frontend-VAWVSCNX.mjs.map} +0 -0
  130. /package/dist/sdk/{host-S3LSWESP.mjs.map → host-67XTJ3BN.mjs.map} +0 -0
  131. /package/dist/sdk/{host-U7V54J2H.mjs.map → host-TEQ7HKKH.mjs.map} +0 -0
  132. /package/dist/sdk/{failure-condition-evaluator-MUUAK7MN.mjs.map → liquid-extensions-PLBOMRLI.mjs.map} +0 -0
  133. /package/dist/sdk/{failure-condition-evaluator-PNONVBXD.mjs.map → routing-SEQYM4N6.mjs.map} +0 -0
  134. /package/dist/sdk/{liquid-extensions-YDIIH33Q.mjs.map → schedule-tool-2COUUTF7.mjs.map} +0 -0
  135. /package/dist/sdk/{routing-F4FOWVKF.mjs.map → schedule-tool-handler-5BDMLHS5.mjs.map} +0 -0
  136. /package/dist/sdk/{routing-MVDVJDYJ.mjs.map → schedule-tool-handler-D7XX7WM4.mjs.map} +0 -0
  137. /package/dist/sdk/{schedule-tool-handler-7DNEGDZC.mjs.map → trace-helpers-FAAGLXBI.mjs.map} +0 -0
  138. /package/dist/sdk/{schedule-tool-handler-FRN3KKRM.mjs.map → workflow-check-provider-K4MQQOYQ.mjs.map} +0 -0
  139. /package/dist/sdk/{schedule-tool-handler-VFES42DD.mjs.map → workflow-check-provider-WLA7LO56.mjs.map} +0 -0
@@ -33,4 +33,12 @@ export declare function createSecureSandbox(): Sandbox;
33
33
  * global scope clean.
34
34
  */
35
35
  export declare function compileAndRun<T = unknown>(sandbox: Sandbox, userCode: string, scope: Record<string, unknown>, opts?: CompileOptions): T;
36
+ /**
37
+ * Compile and execute user-provided JS with async support.
38
+ *
39
+ * Uses sandbox.compileAsync() + .run() (same pattern as Probe's DSL runtime).
40
+ * The code must already be transformed (async IIFE wrapped) by the caller —
41
+ * this function does NOT apply wrapping heuristics like compileAndRun does.
42
+ */
43
+ export declare function compileAndRunAsync<T = unknown>(sandbox: Sandbox, transformedCode: string, scope: Record<string, unknown>, opts?: CompileOptions): Promise<T>;
36
44
  //# sourceMappingURL=sandbox.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/utils/sandbox.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,mBAAmB,CAAC;AAExC;;;;;GAKG;AAEH,MAAM,WAAW,cAAc;IAC7B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,wBAAwB,CAkCvE;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAyJ7C;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,CAAC,GAAG,OAAO,EACvC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,IAAI,GAAE,cAAgF,GACrF,CAAC,CA8EH"}
1
+ {"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/utils/sandbox.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,mBAAmB,CAAC;AAExC;;;;;GAKG;AAEH,MAAM,WAAW,cAAc;IAC7B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,wBAAwB,CAkCvE;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAyJ7C;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,CAAC,GAAG,OAAO,EACvC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,IAAI,GAAE,cAAgF,GACrF,CAAC,CA8EH;AAED;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CAAC,CAAC,GAAG,OAAO,EAClD,OAAO,EAAE,OAAO,EAChB,eAAe,EAAE,MAAM,EACvB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,IAAI,GAAE,cAAkE,GACvE,OAAO,CAAC,CAAC,CAAC,CAsCZ"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * Script Tool Environment
3
+ *
4
+ * Bridges tools into the SandboxJS execution environment for script checks.
5
+ * Pattern ported from Probe's execute_plan DSL runtime:
6
+ *
7
+ * 1. Each tool is exposed as a raw async function (by name) in sandbox globals
8
+ * 2. AST transformer auto-injects `await` before async tool calls
9
+ * 3. Code is wrapped in an async IIFE so compileAsync() can handle it
10
+ * 4. Errors are returned as "ERROR: ..." strings (never thrown — SandboxJS
11
+ * has unreliable try/catch for async errors)
12
+ */
13
+ import { CustomToolDefinition } from '../types/config';
14
+ import { WorkflowToolContext } from '../providers/workflow-tool-executor';
15
+ import type { Client } from '@modelcontextprotocol/sdk/client/index.js';
16
+ export interface TransformOptions {
17
+ /** All known global names in the sandbox (for linting unknown calls) */
18
+ knownGlobals?: Set<string>;
19
+ /** Gated builtins that exist but are disabled (e.g., bash without enable_bash) */
20
+ disabledBuiltins?: Map<string, string>;
21
+ }
22
+ /**
23
+ * Transform script code by auto-injecting `await` before async tool calls
24
+ * and wrapping in an async IIFE.
25
+ *
26
+ * Also performs static analysis:
27
+ * - Pretty syntax error messages with code snippets
28
+ * - Warnings for unknown function calls with "did you mean?" suggestions
29
+ * - Errors for calling gated builtins that are disabled
30
+ *
31
+ * Port of Probe's transformer.js. Uses offset-based string insertion
32
+ * (not AST regeneration) to preserve original code structure.
33
+ */
34
+ export declare function transformScriptForAsync(code: string, asyncFunctionNames: Set<string>, opts?: TransformOptions): string;
35
+ export interface McpClientEntry {
36
+ client: Client;
37
+ serverName: string;
38
+ tools: Array<{
39
+ name: string;
40
+ description?: string;
41
+ inputSchema?: Record<string, unknown>;
42
+ }>;
43
+ }
44
+ export interface BuildToolGlobalsOptions {
45
+ resolvedTools: Map<string, CustomToolDefinition>;
46
+ mcpClients?: McpClientEntry[];
47
+ toolContext: {
48
+ pr?: {
49
+ number: number;
50
+ title: string;
51
+ author: string;
52
+ branch: string;
53
+ base: string;
54
+ };
55
+ files?: unknown[];
56
+ outputs?: Record<string, unknown>;
57
+ env?: Record<string, string>;
58
+ };
59
+ workflowContext?: WorkflowToolContext;
60
+ }
61
+ export interface ToolGlobalsResult {
62
+ globals: Record<string, unknown>;
63
+ asyncFunctionNames: Set<string>;
64
+ }
65
+ /**
66
+ * Build sandbox globals for tool functions.
67
+ *
68
+ * Each tool is exposed as a raw async function by its name.
69
+ * MCP tools are namespaced as `{serverName}_{toolName}`.
70
+ * Errors are returned as "ERROR: ..." strings (never thrown).
71
+ */
72
+ export declare function buildToolGlobals(opts: BuildToolGlobalsOptions): ToolGlobalsResult;
73
+ export interface BuildBuiltinGlobalsOptions {
74
+ config: Record<string, unknown>;
75
+ prInfo: {
76
+ number?: number;
77
+ [k: string]: unknown;
78
+ };
79
+ sessionInfo?: Record<string, unknown>;
80
+ }
81
+ /**
82
+ * Build built-in async functions for the script sandbox.
83
+ *
84
+ * Always available: schedule()
85
+ * Context-dependent: github() — only when octokit is in eventContext
86
+ * Gated: fetch() — requires enable_fetch: true
87
+ * bash() — requires enable_bash: true
88
+ */
89
+ export declare function buildBuiltinGlobals(opts: BuildBuiltinGlobalsOptions): ToolGlobalsResult;
90
+ //# sourceMappingURL=script-tool-environment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"script-tool-environment.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/utils/script-tool-environment.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAEvD,OAAO,EAGL,mBAAmB,EACpB,MAAM,qCAAqC,CAAC;AAE7C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAIxE,MAAM,WAAW,gBAAgB;IAC/B,wEAAwE;IACxE,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3B,kFAAkF;IAClF,gBAAgB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACxC;AAyDD;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,MAAM,EACZ,kBAAkB,EAAE,GAAG,CAAC,MAAM,CAAC,EAC/B,IAAI,CAAC,EAAE,gBAAgB,GACtB,MAAM,CA4HR;AA8JD,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC,CAAC;CAC7F;AAED,MAAM,WAAW,uBAAuB;IACtC,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IACjD,UAAU,CAAC,EAAE,cAAc,EAAE,CAAC;IAC9B,WAAW,EAAE;QACX,EAAE,CAAC,EAAE;YACH,MAAM,EAAE,MAAM,CAAC;YACf,KAAK,EAAE,MAAM,CAAC;YACd,MAAM,EAAE,MAAM,CAAC;YACf,MAAM,EAAE,MAAM,CAAC;YACf,IAAI,EAAE,MAAM,CAAC;SACd,CAAC;QACF,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAClC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAC9B,CAAC;IACF,eAAe,CAAC,EAAE,mBAAmB,CAAC;CACvC;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,kBAAkB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACjC;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,uBAAuB,GAAG,iBAAiB,CAqGjF;AAID,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,MAAM,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IAClD,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACvC;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,0BAA0B,GAAG,iBAAiB,CAmLvF"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Shared tool resolution utility.
3
+ *
4
+ * Resolves a list of tool references (string names or workflow references)
5
+ * to a Map of CustomToolDefinition objects. Used by both the AI and script
6
+ * check providers.
7
+ */
8
+ import { CustomToolDefinition } from '../types/config';
9
+ import { WorkflowToolReference } from '../providers/workflow-tool-executor';
10
+ /**
11
+ * Resolve tool items to CustomToolDefinition instances.
12
+ *
13
+ * Resolution order per item:
14
+ * 1. Try workflow registry (via resolveWorkflowToolFromItem)
15
+ * 2. Fall back to globalTools record
16
+ */
17
+ export declare function resolveTools(toolItems: Array<string | WorkflowToolReference>, globalTools?: Record<string, CustomToolDefinition>, logPrefix?: string): Map<string, CustomToolDefinition>;
18
+ //# sourceMappingURL=tool-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-resolver.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/utils/tool-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAGL,qBAAqB,EACtB,MAAM,qCAAqC,CAAC;AAG7C;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,SAAS,EAAE,KAAK,CAAC,MAAM,GAAG,qBAAqB,CAAC,EAChD,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,EAClD,SAAS,SAAmB,GAC3B,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAkCnC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@probelabs/visor",
3
- "version": "0.1.132",
3
+ "version": "0.1.137-ee",
4
4
  "main": "dist/index.js",
5
5
  "bin": {
6
6
  "visor": "./dist/index.js"
@@ -47,9 +47,10 @@
47
47
  "format": "prettier --write src tests",
48
48
  "format:check": "prettier --check src tests",
49
49
  "clean": "",
50
+ "clean:traces": "node scripts/clean-traces.js",
50
51
  "prebuild": "npm run clean && node scripts/generate-config-schema.js",
51
- "pretest": "node scripts/generate-config-schema.js && npm run build:cli",
52
- "pretest:unit": "node scripts/generate-config-schema.js && npm run build:cli",
52
+ "pretest": "npm run clean:traces && node scripts/generate-config-schema.js && npm run build:cli",
53
+ "pretest:unit": "npm run clean:traces && node scripts/generate-config-schema.js && npm run build:cli",
53
54
  "test:with-build": "npm run build:cli && jest",
54
55
  "test:yaml": "node dist/index.js test --progress compact",
55
56
  "test:yaml:parallel": "node dist/index.js test --progress compact --max-parallel 4",
@@ -96,25 +97,31 @@
96
97
  "homepage": "https://github.com/probelabs/visor#readme",
97
98
  "dependencies": {
98
99
  "@actions/core": "^1.11.1",
100
+ "@apidevtools/swagger-parser": "^12.1.0",
99
101
  "@modelcontextprotocol/sdk": "^1.25.3",
100
102
  "@nyariv/sandboxjs": "github:probelabs/SandboxJS#f1c13b8eee98734a8ea024061eada4aa9a9ff2e9",
101
103
  "@octokit/action": "^8.0.2",
102
104
  "@octokit/auth-app": "^8.1.0",
103
105
  "@octokit/core": "^7.0.3",
104
106
  "@octokit/rest": "^22.0.0",
105
- "@probelabs/probe": "^0.6.0-rc245",
107
+ "@probelabs/probe": "^0.6.0-rc255",
106
108
  "@types/commander": "^2.12.0",
107
109
  "@types/uuid": "^10.0.0",
110
+ "acorn": "^8.16.0",
111
+ "acorn-walk": "^8.3.5",
108
112
  "ajv": "^8.17.1",
109
113
  "ajv-formats": "^3.0.1",
110
114
  "better-sqlite3": "^11.0.0",
111
115
  "blessed": "^0.1.81",
112
116
  "cli-table3": "^0.6.5",
113
117
  "commander": "^14.0.0",
118
+ "deepmerge": "^4.3.1",
114
119
  "dotenv": "^17.2.3",
115
120
  "ignore": "^7.0.5",
116
121
  "js-yaml": "^4.1.0",
122
+ "jsonpath-plus": "^10.4.0",
117
123
  "liquidjs": "^10.21.1",
124
+ "minimatch": "^10.2.2",
118
125
  "node-cron": "^3.0.3",
119
126
  "open": "^9.1.0",
120
127
  "simple-git": "^3.28.0",
@@ -1,138 +0,0 @@
1
- {"name":"visor.run","attributes":{"started":true}}
2
- {"name":"visor.run","attributes":{"started":true}}
3
- {"name":"visor.run","attributes":{"started":true}}
4
- {"name":"visor.run","attributes":{"started":true}}
5
- {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"Init","state_to":"PlanReady","engine_mode":"state-machine","wave":0,"session_id":"warm-cat-ht4u"}}]}
6
- {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"PlanReady","state_to":"WavePlanning","engine_mode":"state-machine","wave":0,"session_id":"warm-cat-ht4u"}}]}
7
- {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"LevelDispatch","engine_mode":"state-machine","wave":1,"session_id":"warm-cat-ht4u"}}]}
8
- {"name":"visor.provider","attributes":{"visor.check.id":"overview","visor.provider.type":"ai"}}
9
- {"name":"visor.check","attributes":{"visor.check.id":"overview","visor.check.input.context":"{\"pr\":{\"number\":0,\"title\":\"Local Analysis: unknown (No changes)\",\"author\":\"unknown\",\"branch\":\"unknown\",\"base\":\"main\"},\"files\":[],\"outputs\":{},\"args\":{}}"},"events":[]}
10
- {"name":"visor.check","attributes":{"visor.check.id":"overview","visor.check.output":"{\"issues\":[],\"text\":\"{\\\"issues\\\":[]}\"}"},"events":[]}
11
- {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"LevelDispatch","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"warm-cat-ht4u"}}]}
12
- {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"warm-cat-ht4u"}}]}
13
- {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"LevelDispatch","engine_mode":"state-machine","wave":1,"session_id":"warm-cat-ht4u"}}]}
14
- {"name":"visor.provider","attributes":{"visor.check.id":"security","visor.provider.type":"ai"}}
15
- {"name":"visor.check","attributes":{"visor.check.id":"security","visor.check.input.context":"{\"pr\":{\"number\":0,\"title\":\"Local Analysis: unknown (No changes)\",\"author\":\"unknown\",\"branch\":\"unknown\",\"base\":\"main\"},\"files\":[],\"outputs\":{\"overview\":{\"issues\":[],\"text\":\"{\\\"issues\\\":[]}\",\"ts\":1771412809610}},\"args\":{}}"},"events":[]}
16
- {"name":"visor.provider","attributes":{"visor.check.id":"architecture","visor.provider.type":"ai"}}
17
- {"name":"visor.check","attributes":{"visor.check.id":"architecture","visor.check.input.context":"{\"pr\":{\"number\":0,\"title\":\"Local Analysis: unknown (No changes)\",\"author\":\"unknown\",\"branch\":\"unknown\",\"base\":\"main\"},\"files\":[],\"outputs\":{\"overview\":{\"issues\":[],\"text\":\"{\\\"issues\\\":[]}\",\"ts\":1771412809610}},\"args\":{}}"},"events":[]}
18
- {"name":"visor.provider","attributes":{"visor.check.id":"performance","visor.provider.type":"ai"}}
19
- {"name":"visor.check","attributes":{"visor.check.id":"performance","visor.check.input.context":"{\"pr\":{\"number\":0,\"title\":\"Local Analysis: unknown (No changes)\",\"author\":\"unknown\",\"branch\":\"unknown\",\"base\":\"main\"},\"files\":[],\"outputs\":{\"overview\":{\"issues\":[],\"text\":\"{\\\"issues\\\":[]}\",\"ts\":1771412809610}},\"args\":{}}"},"events":[]}
20
- {"name":"visor.provider","attributes":{"visor.check.id":"quality","visor.provider.type":"ai"}}
21
- {"name":"visor.check","attributes":{"visor.check.id":"quality","visor.check.input.context":"{\"pr\":{\"number\":0,\"title\":\"Local Analysis: unknown (No changes)\",\"author\":\"unknown\",\"branch\":\"unknown\",\"base\":\"main\"},\"files\":[],\"outputs\":{\"overview\":{\"issues\":[],\"text\":\"{\\\"issues\\\":[]}\",\"ts\":1771412809610}},\"args\":{}}"},"events":[]}
22
- {"name":"visor.check","attributes":{"visor.check.id":"security","visor.check.output":"{\"issues\":[],\"sessionId\":\"visor-2026-02-18T11-06-49-614Z-security\"}"},"events":[]}
23
- {"name":"visor.check","attributes":{"visor.check.id":"architecture","visor.check.output":"{\"issues\":[],\"sessionId\":\"visor-2026-02-18T11-06-49-614Z-architecture\"}"},"events":[]}
24
- {"name":"visor.check","attributes":{"visor.check.id":"performance","visor.check.output":"{\"issues\":[],\"sessionId\":\"visor-2026-02-18T11-06-49-614Z-performance\"}"},"events":[]}
25
- {"name":"visor.check","attributes":{"visor.check.id":"quality","visor.check.output":"{\"issues\":[],\"sessionId\":\"visor-2026-02-18T11-06-49-615Z-quality\"}"},"events":[]}
26
- {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"LevelDispatch","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"warm-cat-ht4u"}}]}
27
- {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"warm-cat-ht4u"}}]}
28
- {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"warm-cat-ht4u"}}]}
29
- {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"warm-cat-ht4u"}}]}
30
- {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"warm-cat-ht4u"}}]}
31
- {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"Completed","engine_mode":"state-machine","wave":1,"session_id":"warm-cat-ht4u"}}]}
32
- {"name":"visor.run","attributes":{"started":true}}
33
- {"name":"visor.run","attributes":{"started":true}}
34
- {"name":"visor.run","attributes":{"started":true}}
35
- {"name":"visor.run","attributes":{"started":true}}
36
- {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"Init","state_to":"PlanReady","engine_mode":"state-machine","wave":0,"session_id":"loud-duck-y4za"}}]}
37
- {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"PlanReady","state_to":"WavePlanning","engine_mode":"state-machine","wave":0,"session_id":"loud-duck-y4za"}}]}
38
- {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"LevelDispatch","engine_mode":"state-machine","wave":1,"session_id":"loud-duck-y4za"}}]}
39
- {"name":"visor.provider","attributes":{"visor.check.id":"overview","visor.provider.type":"ai"}}
40
- {"name":"visor.check","attributes":{"visor.check.id":"overview","visor.check.input.context":"{\"pr\":{\"number\":0,\"title\":\"Local Analysis: unknown (No changes)\",\"author\":\"unknown\",\"branch\":\"unknown\",\"base\":\"main\"},\"files\":[],\"outputs\":{},\"args\":{}}"},"events":[]}
41
- {"name":"visor.check","attributes":{"visor.check.id":"overview","visor.check.output":"{\"issues\":[],\"text\":\"{\\\"issues\\\":[]}\"}"},"events":[]}
42
- {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"LevelDispatch","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"loud-duck-y4za"}}]}
43
- {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"loud-duck-y4za"}}]}
44
- {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"LevelDispatch","engine_mode":"state-machine","wave":1,"session_id":"loud-duck-y4za"}}]}
45
- {"name":"visor.provider","attributes":{"visor.check.id":"security","visor.provider.type":"ai"}}
46
- {"name":"visor.check","attributes":{"visor.check.id":"security","visor.check.input.context":"{\"pr\":{\"number\":0,\"title\":\"Local Analysis: unknown (No changes)\",\"author\":\"unknown\",\"branch\":\"unknown\",\"base\":\"main\"},\"files\":[],\"outputs\":{\"overview\":{\"issues\":[],\"text\":\"{\\\"issues\\\":[]}\",\"ts\":1771412810377}},\"args\":{}}"},"events":[]}
47
- {"name":"visor.provider","attributes":{"visor.check.id":"architecture","visor.provider.type":"ai"}}
48
- {"name":"visor.check","attributes":{"visor.check.id":"architecture","visor.check.input.context":"{\"pr\":{\"number\":0,\"title\":\"Local Analysis: unknown (No changes)\",\"author\":\"unknown\",\"branch\":\"unknown\",\"base\":\"main\"},\"files\":[],\"outputs\":{\"overview\":{\"issues\":[],\"text\":\"{\\\"issues\\\":[]}\",\"ts\":1771412810377}},\"args\":{}}"},"events":[]}
49
- {"name":"visor.provider","attributes":{"visor.check.id":"performance","visor.provider.type":"ai"}}
50
- {"name":"visor.check","attributes":{"visor.check.id":"performance","visor.check.input.context":"{\"pr\":{\"number\":0,\"title\":\"Local Analysis: unknown (No changes)\",\"author\":\"unknown\",\"branch\":\"unknown\",\"base\":\"main\"},\"files\":[],\"outputs\":{\"overview\":{\"issues\":[],\"text\":\"{\\\"issues\\\":[]}\",\"ts\":1771412810377}},\"args\":{}}"},"events":[]}
51
- {"name":"visor.provider","attributes":{"visor.check.id":"quality","visor.provider.type":"ai"}}
52
- {"name":"visor.check","attributes":{"visor.check.id":"quality","visor.check.input.context":"{\"pr\":{\"number\":0,\"title\":\"Local Analysis: unknown (No changes)\",\"author\":\"unknown\",\"branch\":\"unknown\",\"base\":\"main\"},\"files\":[],\"outputs\":{\"overview\":{\"issues\":[],\"text\":\"{\\\"issues\\\":[]}\",\"ts\":1771412810377}},\"args\":{}}"},"events":[]}
53
- {"name":"visor.check","attributes":{"visor.check.id":"security","visor.check.output":"{\"issues\":[],\"sessionId\":\"visor-2026-02-18T11-06-50-381Z-security\"}"},"events":[]}
54
- {"name":"visor.check","attributes":{"visor.check.id":"performance","visor.check.output":"{\"issues\":[],\"sessionId\":\"visor-2026-02-18T11-06-50-381Z-performance\"}"},"events":[]}
55
- {"name":"visor.check","attributes":{"visor.check.id":"architecture","visor.check.output":"{\"issues\":[],\"sessionId\":\"visor-2026-02-18T11-06-50-381Z-architecture\"}"},"events":[]}
56
- {"name":"visor.check","attributes":{"visor.check.id":"quality","visor.check.output":"{\"issues\":[],\"sessionId\":\"visor-2026-02-18T11-06-50-381Z-quality\"}"},"events":[]}
57
- {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"LevelDispatch","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"loud-duck-y4za"}}]}
58
- {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"loud-duck-y4za"}}]}
59
- {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"loud-duck-y4za"}}]}
60
- {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"loud-duck-y4za"}}]}
61
- {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"loud-duck-y4za"}}]}
62
- {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"Completed","engine_mode":"state-machine","wave":1,"session_id":"loud-duck-y4za"}}]}
63
- {"name":"visor.run","attributes":{"started":true}}
64
- {"name":"visor.run","attributes":{"started":true}}
65
- {"name":"visor.run","attributes":{"started":true}}
66
- {"name":"visor.run","attributes":{"started":true}}
67
- {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"Init","state_to":"PlanReady","engine_mode":"state-machine","wave":0,"session_id":"neat-wasp-jbp8"}}]}
68
- {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"PlanReady","state_to":"WavePlanning","engine_mode":"state-machine","wave":0,"session_id":"neat-wasp-jbp8"}}]}
69
- {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"LevelDispatch","engine_mode":"state-machine","wave":1,"session_id":"neat-wasp-jbp8"}}]}
70
- {"name":"visor.provider","attributes":{"visor.check.id":"overview","visor.provider.type":"ai"}}
71
- {"name":"visor.check","attributes":{"visor.check.id":"overview","visor.check.input.context":"{\"pr\":{\"number\":0,\"title\":\"Local Analysis: unknown (No changes)\",\"author\":\"unknown\",\"branch\":\"unknown\",\"base\":\"main\"},\"files\":[],\"outputs\":{},\"args\":{}}"},"events":[]}
72
- {"name":"visor.check","attributes":{"visor.check.id":"overview","visor.check.output":"{\"issues\":[],\"text\":\"{\\\"issues\\\":[]}\"}"},"events":[]}
73
- {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"LevelDispatch","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"neat-wasp-jbp8"}}]}
74
- {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"neat-wasp-jbp8"}}]}
75
- {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"LevelDispatch","engine_mode":"state-machine","wave":1,"session_id":"neat-wasp-jbp8"}}]}
76
- {"name":"visor.provider","attributes":{"visor.check.id":"security","visor.provider.type":"ai"}}
77
- {"name":"visor.check","attributes":{"visor.check.id":"security","visor.check.input.context":"{\"pr\":{\"number\":0,\"title\":\"Local Analysis: unknown (No changes)\",\"author\":\"unknown\",\"branch\":\"unknown\",\"base\":\"main\"},\"files\":[],\"outputs\":{\"overview\":{\"issues\":[],\"text\":\"{\\\"issues\\\":[]}\",\"ts\":1771412811113}},\"args\":{}}"},"events":[]}
78
- {"name":"visor.provider","attributes":{"visor.check.id":"architecture","visor.provider.type":"ai"}}
79
- {"name":"visor.check","attributes":{"visor.check.id":"architecture","visor.check.input.context":"{\"pr\":{\"number\":0,\"title\":\"Local Analysis: unknown (No changes)\",\"author\":\"unknown\",\"branch\":\"unknown\",\"base\":\"main\"},\"files\":[],\"outputs\":{\"overview\":{\"issues\":[],\"text\":\"{\\\"issues\\\":[]}\",\"ts\":1771412811113}},\"args\":{}}"},"events":[]}
80
- {"name":"visor.provider","attributes":{"visor.check.id":"performance","visor.provider.type":"ai"}}
81
- {"name":"visor.check","attributes":{"visor.check.id":"performance","visor.check.input.context":"{\"pr\":{\"number\":0,\"title\":\"Local Analysis: unknown (No changes)\",\"author\":\"unknown\",\"branch\":\"unknown\",\"base\":\"main\"},\"files\":[],\"outputs\":{\"overview\":{\"issues\":[],\"text\":\"{\\\"issues\\\":[]}\",\"ts\":1771412811113}},\"args\":{}}"},"events":[]}
82
- {"name":"visor.provider","attributes":{"visor.check.id":"quality","visor.provider.type":"ai"}}
83
- {"name":"visor.check","attributes":{"visor.check.id":"quality","visor.check.input.context":"{\"pr\":{\"number\":0,\"title\":\"Local Analysis: unknown (No changes)\",\"author\":\"unknown\",\"branch\":\"unknown\",\"base\":\"main\"},\"files\":[],\"outputs\":{\"overview\":{\"issues\":[],\"text\":\"{\\\"issues\\\":[]}\",\"ts\":1771412811113}},\"args\":{}}"},"events":[]}
84
- {"name":"visor.check","attributes":{"visor.check.id":"security","visor.check.output":"{\"issues\":[],\"sessionId\":\"visor-2026-02-18T11-06-51-115Z-security\"}"},"events":[]}
85
- {"name":"visor.check","attributes":{"visor.check.id":"architecture","visor.check.output":"{\"issues\":[],\"sessionId\":\"visor-2026-02-18T11-06-51-115Z-architecture\"}"},"events":[]}
86
- {"name":"visor.check","attributes":{"visor.check.id":"performance","visor.check.output":"{\"issues\":[],\"sessionId\":\"visor-2026-02-18T11-06-51-115Z-performance\"}"},"events":[]}
87
- {"name":"visor.check","attributes":{"visor.check.id":"quality","visor.check.output":"{\"issues\":[],\"sessionId\":\"visor-2026-02-18T11-06-51-115Z-quality\"}"},"events":[]}
88
- {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"LevelDispatch","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"neat-wasp-jbp8"}}]}
89
- {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"neat-wasp-jbp8"}}]}
90
- {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"neat-wasp-jbp8"}}]}
91
- {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"neat-wasp-jbp8"}}]}
92
- {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"neat-wasp-jbp8"}}]}
93
- {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"Completed","engine_mode":"state-machine","wave":1,"session_id":"neat-wasp-jbp8"}}]}
94
- {"name":"visor.run","attributes":{"started":true}}
95
- {"name":"visor.run","attributes":{"started":true}}
96
- {"name":"visor.run","attributes":{"started":true}}
97
- {"name":"visor.run","attributes":{"started":true}}
98
- {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"Init","state_to":"PlanReady","engine_mode":"state-machine","wave":0,"session_id":"green-toad-xhfm"}}]}
99
- {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"PlanReady","state_to":"WavePlanning","engine_mode":"state-machine","wave":0,"session_id":"green-toad-xhfm"}}]}
100
- {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"LevelDispatch","engine_mode":"state-machine","wave":1,"session_id":"green-toad-xhfm"}}]}
101
- {"name":"visor.provider","attributes":{"visor.check.id":"overview","visor.provider.type":"ai"}}
102
- {"name":"visor.check","attributes":{"visor.check.id":"overview","visor.check.input.context":"{\"pr\":{\"number\":0,\"title\":\"Local Analysis: unknown (No changes)\",\"author\":\"unknown\",\"branch\":\"unknown\",\"base\":\"main\"},\"files\":[],\"outputs\":{},\"args\":{}}"},"events":[]}
103
- {"name":"visor.check","attributes":{"visor.check.id":"overview","visor.check.output":"{\"issues\":[],\"text\":\"{\\\"issues\\\":[]}\"}"},"events":[]}
104
- {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"LevelDispatch","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"green-toad-xhfm"}}]}
105
- {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"green-toad-xhfm"}}]}
106
- {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"LevelDispatch","engine_mode":"state-machine","wave":1,"session_id":"green-toad-xhfm"}}]}
107
- {"name":"visor.provider","attributes":{"visor.check.id":"performance","visor.provider.type":"ai"}}
108
- {"name":"visor.check","attributes":{"visor.check.id":"performance","visor.check.input.context":"{\"pr\":{\"number\":0,\"title\":\"Local Analysis: unknown (No changes)\",\"author\":\"unknown\",\"branch\":\"unknown\",\"base\":\"main\"},\"files\":[],\"outputs\":{\"overview\":{\"issues\":[],\"text\":\"{\\\"issues\\\":[]}\",\"ts\":1771412811848}},\"args\":{}}"},"events":[]}
109
- {"name":"visor.check","attributes":{"visor.check.id":"performance","visor.check.output":"{\"issues\":[],\"sessionId\":\"visor-2026-02-18T11-06-51-849Z-performance\"}"},"events":[]}
110
- {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"LevelDispatch","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"green-toad-xhfm"}}]}
111
- {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"green-toad-xhfm"}}]}
112
- {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"Completed","engine_mode":"state-machine","wave":1,"session_id":"green-toad-xhfm"}}]}
113
- {"name":"visor.run","attributes":{"started":true}}
114
- {"name":"visor.run","attributes":{"started":true}}
115
- {"name":"visor.run","attributes":{"started":true}}
116
- {"name":"visor.run","attributes":{"started":true}}
117
- {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"Init","state_to":"PlanReady","engine_mode":"state-machine","wave":0,"session_id":"neat-puma-53sw"}}]}
118
- {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"PlanReady","state_to":"WavePlanning","engine_mode":"state-machine","wave":0,"session_id":"neat-puma-53sw"}}]}
119
- {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"LevelDispatch","engine_mode":"state-machine","wave":1,"session_id":"neat-puma-53sw"}}]}
120
- {"name":"visor.provider","attributes":{"visor.check.id":"invalid-type","visor.provider.type":"ai"}}
121
- {"name":"visor.check","attributes":{"visor.check.id":"invalid-type","visor.check.input.context":"{\"pr\":{\"number\":0,\"title\":\"Local Analysis: unknown (No changes)\",\"author\":\"unknown\",\"branch\":\"unknown\",\"base\":\"main\"},\"files\":[],\"outputs\":{},\"args\":{}}"},"events":[]}
122
- {"name":"visor.check","attributes":{"visor.check.id":"invalid-type","visor.check.output":"{\"text\":\"{\\\"issues\\\":[]}\"}"},"events":[]}
123
- {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"LevelDispatch","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"neat-puma-53sw"}}]}
124
- {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"neat-puma-53sw"}}]}
125
- {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"Completed","engine_mode":"state-machine","wave":1,"session_id":"neat-puma-53sw"}}]}
126
- {"name":"visor.run","attributes":{"started":true}}
127
- {"name":"visor.run","attributes":{"started":true}}
128
- {"name":"visor.run","attributes":{"started":true}}
129
- {"name":"visor.run","attributes":{"started":true}}
130
- {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"Init","state_to":"PlanReady","engine_mode":"state-machine","wave":0,"session_id":"grand-crow-bmbw"}}]}
131
- {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"PlanReady","state_to":"WavePlanning","engine_mode":"state-machine","wave":0,"session_id":"grand-crow-bmbw"}}]}
132
- {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"LevelDispatch","engine_mode":"state-machine","wave":1,"session_id":"grand-crow-bmbw"}}]}
133
- {"name":"visor.provider","attributes":{"visor.check.id":"performance","visor.provider.type":"ai"}}
134
- {"name":"visor.check","attributes":{"visor.check.id":"performance","visor.check.input.context":"{\"pr\":{\"number\":0,\"title\":\"Local Analysis: unknown (No changes)\",\"author\":\"unknown\",\"branch\":\"unknown\",\"base\":\"main\"},\"files\":[],\"outputs\":{},\"args\":{}}"},"events":[]}
135
- {"name":"visor.check","attributes":{"visor.check.id":"performance","visor.check.output":"{\"issues\":[],\"sessionId\":\"visor-2026-02-18T11-06-53-137Z-performance\"}"},"events":[]}
136
- {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"LevelDispatch","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"grand-crow-bmbw"}}]}
137
- {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"grand-crow-bmbw"}}]}
138
- {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"Completed","engine_mode":"state-machine","wave":1,"session_id":"grand-crow-bmbw"}}]}