@probelabs/visor 0.1.97 → 0.1.100

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 (110) hide show
  1. package/README.md +16 -15
  2. package/action.yml +7 -2
  3. package/defaults/.visor.yaml +7 -6
  4. package/dist/action-cli-bridge.d.ts +1 -0
  5. package/dist/action-cli-bridge.d.ts.map +1 -1
  6. package/dist/ai-review-service.d.ts.map +1 -1
  7. package/dist/check-execution-engine.d.ts +8 -2
  8. package/dist/check-execution-engine.d.ts.map +1 -1
  9. package/dist/cli-main.d.ts.map +1 -1
  10. package/dist/cli.d.ts.map +1 -1
  11. package/dist/config.d.ts +5 -0
  12. package/dist/config.d.ts.map +1 -1
  13. package/dist/debug-visualizer/debug-span-exporter.d.ts +47 -0
  14. package/dist/debug-visualizer/debug-span-exporter.d.ts.map +1 -0
  15. package/dist/debug-visualizer/trace-reader.d.ts +117 -0
  16. package/dist/debug-visualizer/trace-reader.d.ts.map +1 -0
  17. package/dist/debug-visualizer/ui/index.html +2568 -0
  18. package/dist/debug-visualizer/ws-server.d.ts +99 -0
  19. package/dist/debug-visualizer/ws-server.d.ts.map +1 -0
  20. package/dist/defaults/.visor.yaml +7 -6
  21. package/dist/failure-condition-evaluator.d.ts.map +1 -1
  22. package/dist/generated/config-schema.d.ts +7 -3
  23. package/dist/generated/config-schema.d.ts.map +1 -1
  24. package/dist/generated/config-schema.json +7 -3
  25. package/dist/git-repository-analyzer.d.ts +1 -7
  26. package/dist/git-repository-analyzer.d.ts.map +1 -1
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +17668 -1760
  29. package/dist/liquid-extensions.d.ts +1 -1
  30. package/dist/liquid-extensions.d.ts.map +1 -1
  31. package/dist/output/code-review/schema.json +2 -2
  32. package/dist/output/traces/run-2025-10-22T10-40-34-055Z.ndjson +218 -0
  33. package/dist/pr-analyzer.d.ts +2 -1
  34. package/dist/pr-analyzer.d.ts.map +1 -1
  35. package/dist/providers/ai-check-provider.d.ts.map +1 -1
  36. package/dist/providers/check-provider-registry.d.ts.map +1 -1
  37. package/dist/providers/check-provider.interface.d.ts +17 -6
  38. package/dist/providers/check-provider.interface.d.ts.map +1 -1
  39. package/dist/providers/command-check-provider.d.ts.map +1 -1
  40. package/dist/providers/github-ops-provider.d.ts.map +1 -1
  41. package/dist/providers/http-check-provider.d.ts.map +1 -1
  42. package/dist/providers/human-input-check-provider.d.ts +78 -0
  43. package/dist/providers/human-input-check-provider.d.ts.map +1 -0
  44. package/dist/providers/index.d.ts +2 -1
  45. package/dist/providers/index.d.ts.map +1 -1
  46. package/dist/providers/mcp-check-provider.d.ts.map +1 -1
  47. package/dist/providers/memory-check-provider.d.ts.map +1 -1
  48. package/dist/sdk/check-execution-engine-F3662LY7.mjs +11 -0
  49. package/dist/sdk/{chunk-I3GQJIR7.mjs → chunk-B5QBV2QJ.mjs} +2 -2
  50. package/dist/sdk/chunk-B5QBV2QJ.mjs.map +1 -0
  51. package/dist/sdk/{chunk-IG3BFIIN.mjs → chunk-FVS5CJ5S.mjs} +30 -1
  52. package/dist/sdk/chunk-FVS5CJ5S.mjs.map +1 -0
  53. package/dist/sdk/{chunk-YXOWIDEF.mjs → chunk-TUTOLSFV.mjs} +15 -3
  54. package/dist/sdk/chunk-TUTOLSFV.mjs.map +1 -0
  55. package/dist/sdk/{chunk-4VK6WTYU.mjs → chunk-X2JKUOE5.mjs} +1375 -570
  56. package/dist/sdk/chunk-X2JKUOE5.mjs.map +1 -0
  57. package/dist/sdk/{liquid-extensions-GMEGEGC3.mjs → liquid-extensions-KVL4MKRH.mjs} +2 -2
  58. package/dist/sdk/{mermaid-telemetry-4DUEYCLE.mjs → mermaid-telemetry-FBF6D35S.mjs} +2 -2
  59. package/dist/sdk/sdk.d.mts +62 -4
  60. package/dist/sdk/sdk.d.ts +62 -4
  61. package/dist/sdk/sdk.js +1658 -723
  62. package/dist/sdk/sdk.js.map +1 -1
  63. package/dist/sdk/sdk.mjs +60 -15
  64. package/dist/sdk/sdk.mjs.map +1 -1
  65. package/dist/sdk/{tracer-init-RJGAIOBP.mjs → tracer-init-WC75N5NW.mjs} +2 -2
  66. package/dist/sdk.d.ts +5 -2
  67. package/dist/sdk.d.ts.map +1 -1
  68. package/dist/telemetry/file-span-exporter.d.ts.map +1 -1
  69. package/dist/telemetry/opentelemetry.d.ts +2 -0
  70. package/dist/telemetry/opentelemetry.d.ts.map +1 -1
  71. package/dist/telemetry/state-capture.d.ts +53 -0
  72. package/dist/telemetry/state-capture.d.ts.map +1 -0
  73. package/dist/telemetry/trace-helpers.d.ts.map +1 -1
  74. package/dist/traces/run-2025-10-22T10-40-34-055Z.ndjson +218 -0
  75. package/dist/types/cli.d.ts +6 -0
  76. package/dist/types/cli.d.ts.map +1 -1
  77. package/dist/types/config.d.ts +44 -3
  78. package/dist/types/config.d.ts.map +1 -1
  79. package/dist/utils/config-loader.d.ts +5 -0
  80. package/dist/utils/config-loader.d.ts.map +1 -1
  81. package/dist/utils/file-exclusion.d.ts +50 -0
  82. package/dist/utils/file-exclusion.d.ts.map +1 -0
  83. package/dist/utils/interactive-prompt.d.ts +26 -0
  84. package/dist/utils/interactive-prompt.d.ts.map +1 -0
  85. package/dist/utils/sandbox.d.ts +26 -0
  86. package/dist/utils/sandbox.d.ts.map +1 -0
  87. package/dist/utils/stdin-reader.d.ts +22 -0
  88. package/dist/utils/stdin-reader.d.ts.map +1 -0
  89. package/dist/utils/tracer-init.d.ts +0 -5
  90. package/dist/utils/tracer-init.d.ts.map +1 -1
  91. package/package.json +8 -4
  92. package/dist/output/traces/run-2025-10-19T14-24-36-341Z.ndjson +0 -40
  93. package/dist/output/traces/run-2025-10-19T14-24-48-674Z.ndjson +0 -40
  94. package/dist/output/traces/run-2025-10-19T14-24-49-238Z.ndjson +0 -40
  95. package/dist/output/traces/run-2025-10-19T14-24-49-761Z.ndjson +0 -40
  96. package/dist/output/traces/run-2025-10-19T14-24-50-279Z.ndjson +0 -12
  97. package/dist/sdk/check-execution-engine-S7BFPVWA.mjs +0 -11
  98. package/dist/sdk/chunk-4VK6WTYU.mjs.map +0 -1
  99. package/dist/sdk/chunk-I3GQJIR7.mjs.map +0 -1
  100. package/dist/sdk/chunk-IG3BFIIN.mjs.map +0 -1
  101. package/dist/sdk/chunk-YXOWIDEF.mjs.map +0 -1
  102. package/dist/traces/run-2025-10-19T14-24-36-341Z.ndjson +0 -40
  103. package/dist/traces/run-2025-10-19T14-24-48-674Z.ndjson +0 -40
  104. package/dist/traces/run-2025-10-19T14-24-49-238Z.ndjson +0 -40
  105. package/dist/traces/run-2025-10-19T14-24-49-761Z.ndjson +0 -40
  106. package/dist/traces/run-2025-10-19T14-24-50-279Z.ndjson +0 -12
  107. /package/dist/sdk/{check-execution-engine-S7BFPVWA.mjs.map → check-execution-engine-F3662LY7.mjs.map} +0 -0
  108. /package/dist/sdk/{liquid-extensions-GMEGEGC3.mjs.map → liquid-extensions-KVL4MKRH.mjs.map} +0 -0
  109. /package/dist/sdk/{mermaid-telemetry-4DUEYCLE.mjs.map → mermaid-telemetry-FBF6D35S.mjs.map} +0 -0
  110. /package/dist/sdk/{tracer-init-RJGAIOBP.mjs.map → tracer-init-WC75N5NW.mjs.map} +0 -0
@@ -5,7 +5,7 @@ import {
5
5
  sanitizeLabel,
6
6
  sanitizeLabelList,
7
7
  withPermissionsContext
8
- } from "./chunk-I3GQJIR7.mjs";
8
+ } from "./chunk-B5QBV2QJ.mjs";
9
9
  import "./chunk-WMJKH4XE.mjs";
10
10
  export {
11
11
  ReadFileTag,
@@ -15,4 +15,4 @@ export {
15
15
  sanitizeLabelList,
16
16
  withPermissionsContext
17
17
  };
18
- //# sourceMappingURL=liquid-extensions-GMEGEGC3.mjs.map
18
+ //# sourceMappingURL=liquid-extensions-KVL4MKRH.mjs.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  addDiagramBlock,
3
3
  addEvent
4
- } from "./chunk-IG3BFIIN.mjs";
4
+ } from "./chunk-FVS5CJ5S.mjs";
5
5
  import "./chunk-WMJKH4XE.mjs";
6
6
 
7
7
  // src/utils/mermaid-telemetry.ts
@@ -58,4 +58,4 @@ function emitMermaidFromMarkdown(checkName, markdown, origin) {
58
58
  export {
59
59
  emitMermaidFromMarkdown
60
60
  };
61
- //# sourceMappingURL=mermaid-telemetry-4DUEYCLE.mjs.map
61
+ //# sourceMappingURL=mermaid-telemetry-FBF6D35S.mjs.map
@@ -120,7 +120,7 @@ interface FailureConditionResult {
120
120
  /**
121
121
  * Valid check types in configuration
122
122
  */
123
- type ConfigCheckType = 'ai' | 'command' | 'http' | 'http_input' | 'http_client' | 'noop' | 'log' | 'memory' | 'github' | 'claude-code' | 'mcp';
123
+ type ConfigCheckType = 'ai' | 'command' | 'http' | 'http_input' | 'http_client' | 'noop' | 'log' | 'memory' | 'github' | 'claude-code' | 'mcp' | 'human-input';
124
124
  /**
125
125
  * Valid event triggers for checks
126
126
  */
@@ -325,6 +325,17 @@ interface CheckConfig {
325
325
  argsTransform?: string;
326
326
  /** Session ID for HTTP transport (optional, server may generate one) */
327
327
  sessionId?: string;
328
+ /**
329
+ * Human input provider specific options (optional, only used when type === 'human-input').
330
+ */
331
+ /** Placeholder text to show in input field */
332
+ placeholder?: string;
333
+ /** Allow empty input (default: false) */
334
+ allow_empty?: boolean;
335
+ /** Support multiline input (default: false) */
336
+ multiline?: boolean;
337
+ /** Default value if timeout occurs or empty input when allow_empty is true */
338
+ default?: string;
328
339
  }
329
340
  /**
330
341
  * Backoff policy for retries
@@ -530,6 +541,32 @@ interface MemoryConfig {
530
541
  /** Auto-save after operations (default: true if storage: file) */
531
542
  auto_save?: boolean;
532
543
  }
544
+ /**
545
+ * Human input request passed to hooks
546
+ */
547
+ interface HumanInputRequest {
548
+ /** Check ID requesting input */
549
+ checkId: string;
550
+ /** Prompt to display to user */
551
+ prompt: string;
552
+ /** Placeholder text (optional) */
553
+ placeholder?: string;
554
+ /** Whether empty input is allowed */
555
+ allowEmpty: boolean;
556
+ /** Whether multiline input is supported */
557
+ multiline: boolean;
558
+ /** Timeout in milliseconds (optional) */
559
+ timeout?: number;
560
+ /** Default value if timeout or empty (optional) */
561
+ default?: string;
562
+ }
563
+ /**
564
+ * Hooks for runtime integration (SDK mode)
565
+ */
566
+ interface VisorHooks {
567
+ /** Called when human input is required */
568
+ onHumanInput?: (request: HumanInputRequest) => Promise<string>;
569
+ }
533
570
  /**
534
571
  * Main Visor configuration
535
572
  */
@@ -538,14 +575,18 @@ interface VisorConfig {
538
575
  version: string;
539
576
  /** Extends from other configurations - can be file path, HTTP(S) URL, or "default" */
540
577
  extends?: string | string[];
541
- /** Check configurations */
542
- checks: Record<string, CheckConfig>;
578
+ /** Step configurations (recommended) */
579
+ steps?: Record<string, CheckConfig>;
580
+ /** Check configurations (legacy, use 'steps' instead) - always populated after normalization */
581
+ checks?: Record<string, CheckConfig>;
543
582
  /** Output configuration */
544
583
  output: OutputConfig;
545
584
  /** HTTP server configuration for receiving webhooks */
546
585
  http_server?: HttpServerConfig;
547
586
  /** Memory storage configuration */
548
587
  memory?: MemoryConfig;
588
+ /** Runtime hooks for SDK integration */
589
+ hooks?: VisorHooks;
549
590
  /** Global environment variables */
550
591
  env?: EnvConfig;
551
592
  /** Global AI model setting */
@@ -568,6 +609,21 @@ interface VisorConfig {
568
609
  routing?: RoutingDefaults;
569
610
  }
570
611
 
612
+ /**
613
+ * Execution context passed to check providers
614
+ */
615
+ interface ExecutionContext {
616
+ /** Session information for AI session reuse */
617
+ parentSessionId?: string;
618
+ reuseSession?: boolean;
619
+ /** CLI message value (from --message argument) */
620
+ cliMessage?: string;
621
+ /** SDK hooks for human input */
622
+ hooks?: {
623
+ onHumanInput?: (request: HumanInputRequest) => Promise<string>;
624
+ };
625
+ }
626
+
571
627
  /**
572
628
  * Statistics for a single check execution
573
629
  */
@@ -672,6 +728,8 @@ interface RunOptions extends VisorOptions {
672
728
  };
673
729
  /** Strict mode: treat config warnings (like unknown keys) as errors (default: false) */
674
730
  strictValidation?: boolean;
731
+ /** Execution context for providers (CLI message, hooks, etc.) */
732
+ executionContext?: ExecutionContext;
675
733
  }
676
734
  /**
677
735
  * Load and validate a Visor config.
@@ -690,4 +748,4 @@ declare function resolveChecks(checkIds: string[], config: VisorConfig | undefin
690
748
  */
691
749
  declare function runChecks(opts?: RunOptions): Promise<AnalysisResult>;
692
750
 
693
- export { type RunOptions, type TagFilter, type VisorConfig, type VisorOptions, loadConfig, resolveChecks, runChecks };
751
+ export { type ExecutionContext, type HumanInputRequest, type RunOptions, type TagFilter, type VisorConfig, type VisorOptions, loadConfig, resolveChecks, runChecks };
package/dist/sdk/sdk.d.ts CHANGED
@@ -120,7 +120,7 @@ interface FailureConditionResult {
120
120
  /**
121
121
  * Valid check types in configuration
122
122
  */
123
- type ConfigCheckType = 'ai' | 'command' | 'http' | 'http_input' | 'http_client' | 'noop' | 'log' | 'memory' | 'github' | 'claude-code' | 'mcp';
123
+ type ConfigCheckType = 'ai' | 'command' | 'http' | 'http_input' | 'http_client' | 'noop' | 'log' | 'memory' | 'github' | 'claude-code' | 'mcp' | 'human-input';
124
124
  /**
125
125
  * Valid event triggers for checks
126
126
  */
@@ -325,6 +325,17 @@ interface CheckConfig {
325
325
  argsTransform?: string;
326
326
  /** Session ID for HTTP transport (optional, server may generate one) */
327
327
  sessionId?: string;
328
+ /**
329
+ * Human input provider specific options (optional, only used when type === 'human-input').
330
+ */
331
+ /** Placeholder text to show in input field */
332
+ placeholder?: string;
333
+ /** Allow empty input (default: false) */
334
+ allow_empty?: boolean;
335
+ /** Support multiline input (default: false) */
336
+ multiline?: boolean;
337
+ /** Default value if timeout occurs or empty input when allow_empty is true */
338
+ default?: string;
328
339
  }
329
340
  /**
330
341
  * Backoff policy for retries
@@ -530,6 +541,32 @@ interface MemoryConfig {
530
541
  /** Auto-save after operations (default: true if storage: file) */
531
542
  auto_save?: boolean;
532
543
  }
544
+ /**
545
+ * Human input request passed to hooks
546
+ */
547
+ interface HumanInputRequest {
548
+ /** Check ID requesting input */
549
+ checkId: string;
550
+ /** Prompt to display to user */
551
+ prompt: string;
552
+ /** Placeholder text (optional) */
553
+ placeholder?: string;
554
+ /** Whether empty input is allowed */
555
+ allowEmpty: boolean;
556
+ /** Whether multiline input is supported */
557
+ multiline: boolean;
558
+ /** Timeout in milliseconds (optional) */
559
+ timeout?: number;
560
+ /** Default value if timeout or empty (optional) */
561
+ default?: string;
562
+ }
563
+ /**
564
+ * Hooks for runtime integration (SDK mode)
565
+ */
566
+ interface VisorHooks {
567
+ /** Called when human input is required */
568
+ onHumanInput?: (request: HumanInputRequest) => Promise<string>;
569
+ }
533
570
  /**
534
571
  * Main Visor configuration
535
572
  */
@@ -538,14 +575,18 @@ interface VisorConfig {
538
575
  version: string;
539
576
  /** Extends from other configurations - can be file path, HTTP(S) URL, or "default" */
540
577
  extends?: string | string[];
541
- /** Check configurations */
542
- checks: Record<string, CheckConfig>;
578
+ /** Step configurations (recommended) */
579
+ steps?: Record<string, CheckConfig>;
580
+ /** Check configurations (legacy, use 'steps' instead) - always populated after normalization */
581
+ checks?: Record<string, CheckConfig>;
543
582
  /** Output configuration */
544
583
  output: OutputConfig;
545
584
  /** HTTP server configuration for receiving webhooks */
546
585
  http_server?: HttpServerConfig;
547
586
  /** Memory storage configuration */
548
587
  memory?: MemoryConfig;
588
+ /** Runtime hooks for SDK integration */
589
+ hooks?: VisorHooks;
549
590
  /** Global environment variables */
550
591
  env?: EnvConfig;
551
592
  /** Global AI model setting */
@@ -568,6 +609,21 @@ interface VisorConfig {
568
609
  routing?: RoutingDefaults;
569
610
  }
570
611
 
612
+ /**
613
+ * Execution context passed to check providers
614
+ */
615
+ interface ExecutionContext {
616
+ /** Session information for AI session reuse */
617
+ parentSessionId?: string;
618
+ reuseSession?: boolean;
619
+ /** CLI message value (from --message argument) */
620
+ cliMessage?: string;
621
+ /** SDK hooks for human input */
622
+ hooks?: {
623
+ onHumanInput?: (request: HumanInputRequest) => Promise<string>;
624
+ };
625
+ }
626
+
571
627
  /**
572
628
  * Statistics for a single check execution
573
629
  */
@@ -672,6 +728,8 @@ interface RunOptions extends VisorOptions {
672
728
  };
673
729
  /** Strict mode: treat config warnings (like unknown keys) as errors (default: false) */
674
730
  strictValidation?: boolean;
731
+ /** Execution context for providers (CLI message, hooks, etc.) */
732
+ executionContext?: ExecutionContext;
675
733
  }
676
734
  /**
677
735
  * Load and validate a Visor config.
@@ -690,4 +748,4 @@ declare function resolveChecks(checkIds: string[], config: VisorConfig | undefin
690
748
  */
691
749
  declare function runChecks(opts?: RunOptions): Promise<AnalysisResult>;
692
750
 
693
- export { type RunOptions, type TagFilter, type VisorConfig, type VisorOptions, loadConfig, resolveChecks, runChecks };
751
+ export { type ExecutionContext, type HumanInputRequest, type RunOptions, type TagFilter, type VisorConfig, type VisorOptions, loadConfig, resolveChecks, runChecks };