@probelabs/visor 0.1.113 → 0.1.122

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 (120) hide show
  1. package/defaults/workflow-builder.tests.yaml +363 -0
  2. package/defaults/workflow-builder.yaml +720 -0
  3. package/dist/ai-review-service.d.ts.map +1 -1
  4. package/dist/cli-main.d.ts.map +1 -1
  5. package/dist/cli.d.ts.map +1 -1
  6. package/dist/defaults/workflow-builder.tests.yaml +363 -0
  7. package/dist/defaults/workflow-builder.yaml +720 -0
  8. package/dist/docs/workflow-creation-guide.md +1274 -0
  9. package/dist/frontends/slack-frontend.d.ts +3 -0
  10. package/dist/frontends/slack-frontend.d.ts.map +1 -1
  11. package/dist/generated/config-schema.d.ts +14 -6
  12. package/dist/generated/config-schema.d.ts.map +1 -1
  13. package/dist/generated/config-schema.json +14 -6
  14. package/dist/index.js +36879 -13895
  15. package/dist/logger.d.ts +9 -0
  16. package/dist/logger.d.ts.map +1 -1
  17. package/dist/mcp-server.d.ts +4 -4
  18. package/dist/output/traces/{run-2026-01-21T12-31-10-108Z.ndjson → run-2026-01-28T13-56-32-263Z.ndjson} +84 -84
  19. package/dist/output/traces/run-2026-01-28T13-57-13-140Z.ndjson +1357 -0
  20. package/dist/providers/ai-check-provider.d.ts.map +1 -1
  21. package/dist/providers/check-provider.interface.d.ts +15 -1
  22. package/dist/providers/check-provider.interface.d.ts.map +1 -1
  23. package/dist/providers/command-check-provider.d.ts.map +1 -1
  24. package/dist/providers/git-checkout-provider.d.ts.map +1 -1
  25. package/dist/sdk/{check-provider-registry-534KL5HT.mjs → check-provider-registry-JMNLGIMJ.mjs} +11 -11
  26. package/dist/sdk/{chunk-AIVFBIS4.mjs → chunk-35NT3725.mjs} +30 -10
  27. package/dist/sdk/chunk-35NT3725.mjs.map +1 -0
  28. package/dist/sdk/{chunk-AGIZJ4UZ.mjs → chunk-3NMLT3YS.mjs} +42 -8
  29. package/dist/sdk/chunk-3NMLT3YS.mjs.map +1 -0
  30. package/dist/sdk/{chunk-AK6BVWIT.mjs → chunk-7GUAFV6L.mjs} +2 -2
  31. package/dist/sdk/{chunk-QY2XYPEV.mjs → chunk-CUNPH6TR.mjs} +18 -10
  32. package/dist/sdk/chunk-CUNPH6TR.mjs.map +1 -0
  33. package/dist/sdk/{chunk-HTOKWMPO.mjs → chunk-HQL734ZI.mjs} +2 -2
  34. package/dist/sdk/{chunk-7UK3NIIT.mjs → chunk-IHZOSIF4.mjs} +2 -2
  35. package/dist/sdk/{chunk-AUT26LHW.mjs → chunk-J2QWVDXK.mjs} +2 -2
  36. package/dist/sdk/{chunk-QR7MOMJH.mjs → chunk-J6EVEXC2.mjs} +2 -2
  37. package/dist/sdk/{chunk-SIWNBRTK.mjs → chunk-SWEEZ5D5.mjs} +3 -3
  38. package/dist/sdk/{chunk-23L3QRYX.mjs → chunk-VPEQOQ7G.mjs} +279 -70
  39. package/dist/sdk/chunk-VPEQOQ7G.mjs.map +1 -0
  40. package/dist/sdk/{command-executor-TYUV6HUS.mjs → command-executor-Q7MHJKZJ.mjs} +3 -3
  41. package/dist/sdk/{config-YNC2EOOT.mjs → config-MK4XTU45.mjs} +3 -3
  42. package/dist/sdk/{failure-condition-evaluator-YGTF2GHG.mjs → failure-condition-evaluator-HB35XRLZ.mjs} +4 -4
  43. package/dist/sdk/{github-frontend-SIAEOCON.mjs → github-frontend-6Q4BISZX.mjs} +4 -4
  44. package/dist/sdk/{host-DXUYTNMU.mjs → host-P5NQICP7.mjs} +3 -3
  45. package/dist/sdk/{liquid-extensions-PKWCKK7E.mjs → liquid-extensions-DFDEBMUI.mjs} +4 -4
  46. package/dist/sdk/{memory-store-XGBB7LX7.mjs → memory-store-RW5N2NGJ.mjs} +3 -3
  47. package/dist/sdk/{prompt-state-YRJY6QAL.mjs → prompt-state-EZYOUG75.mjs} +3 -3
  48. package/dist/sdk/{renderer-schema-LPKN5UJS.mjs → renderer-schema-CKFB5NDB.mjs} +2 -2
  49. package/dist/sdk/{routing-6N45MJ4F.mjs → routing-KZ345OFG.mjs} +5 -5
  50. package/dist/sdk/sdk.d.mts +19 -1
  51. package/dist/sdk/sdk.d.ts +19 -1
  52. package/dist/sdk/sdk.js +421 -75
  53. package/dist/sdk/sdk.js.map +1 -1
  54. package/dist/sdk/sdk.mjs +35 -18
  55. package/dist/sdk/sdk.mjs.map +1 -1
  56. package/dist/sdk/{slack-frontend-BVKW3GD5.mjs → slack-frontend-J442FJWZ.mjs} +61 -3
  57. package/dist/sdk/slack-frontend-J442FJWZ.mjs.map +1 -0
  58. package/dist/sdk/{workflow-registry-R6KSACFR.mjs → workflow-registry-6LZKCWHP.mjs} +3 -3
  59. package/dist/state-machine/context/build-engine-context.d.ts.map +1 -1
  60. package/dist/state-machine/dispatch/history-snapshot.d.ts.map +1 -1
  61. package/dist/state-machine/runner.d.ts.map +1 -1
  62. package/dist/state-machine/states/level-dispatch.d.ts.map +1 -1
  63. package/dist/state-machine/states/routing.d.ts.map +1 -1
  64. package/dist/state-machine/states/wave-planning.d.ts.map +1 -1
  65. package/dist/ter-u14b.json +17826 -0
  66. package/dist/ter-u14n.json +17826 -0
  67. package/dist/test-runner/index.d.ts.map +1 -1
  68. package/dist/traces/{run-2026-01-21T12-31-10-108Z.ndjson → run-2026-01-28T13-56-32-263Z.ndjson} +84 -84
  69. package/dist/traces/run-2026-01-28T13-57-13-140Z.ndjson +1357 -0
  70. package/dist/tui.d.ts +51 -0
  71. package/dist/tui.d.ts.map +1 -0
  72. package/dist/types/cli.d.ts +10 -0
  73. package/dist/types/cli.d.ts.map +1 -1
  74. package/dist/types/config.d.ts +4 -0
  75. package/dist/types/config.d.ts.map +1 -1
  76. package/dist/types/engine.d.ts +3 -0
  77. package/dist/types/engine.d.ts.map +1 -1
  78. package/dist/usr/fonts/AUTHORS +1 -0
  79. package/dist/usr/fonts/LICENSE +94 -0
  80. package/dist/usr/fonts/README +340 -0
  81. package/dist/usr/fonts/ter-u14b.json +17826 -0
  82. package/dist/usr/fonts/ter-u14n.json +17826 -0
  83. package/dist/usr/linux +0 -0
  84. package/dist/usr/windows-ansi +0 -0
  85. package/dist/usr/xterm +0 -0
  86. package/dist/usr/xterm-256color +0 -0
  87. package/dist/usr/xterm.termcap +243 -0
  88. package/dist/usr/xterm.terminfo +1977 -0
  89. package/dist/utils/workspace-manager.d.ts +2 -0
  90. package/dist/utils/workspace-manager.d.ts.map +1 -1
  91. package/dist/utils/worktree-manager.d.ts +5 -0
  92. package/dist/utils/worktree-manager.d.ts.map +1 -1
  93. package/dist/xterm +0 -0
  94. package/dist/xterm.termcap +243 -0
  95. package/package.json +9 -7
  96. package/dist/output/traces/run-2026-01-21T12-32-04-510Z.ndjson +0 -1067
  97. package/dist/sdk/chunk-23L3QRYX.mjs.map +0 -1
  98. package/dist/sdk/chunk-AGIZJ4UZ.mjs.map +0 -1
  99. package/dist/sdk/chunk-AIVFBIS4.mjs.map +0 -1
  100. package/dist/sdk/chunk-QY2XYPEV.mjs.map +0 -1
  101. package/dist/sdk/slack-frontend-BVKW3GD5.mjs.map +0 -1
  102. package/dist/traces/run-2026-01-21T12-32-04-510Z.ndjson +0 -1067
  103. /package/dist/sdk/{check-provider-registry-534KL5HT.mjs.map → check-provider-registry-JMNLGIMJ.mjs.map} +0 -0
  104. /package/dist/sdk/{chunk-AK6BVWIT.mjs.map → chunk-7GUAFV6L.mjs.map} +0 -0
  105. /package/dist/sdk/{chunk-HTOKWMPO.mjs.map → chunk-HQL734ZI.mjs.map} +0 -0
  106. /package/dist/sdk/{chunk-7UK3NIIT.mjs.map → chunk-IHZOSIF4.mjs.map} +0 -0
  107. /package/dist/sdk/{chunk-AUT26LHW.mjs.map → chunk-J2QWVDXK.mjs.map} +0 -0
  108. /package/dist/sdk/{chunk-QR7MOMJH.mjs.map → chunk-J6EVEXC2.mjs.map} +0 -0
  109. /package/dist/sdk/{chunk-SIWNBRTK.mjs.map → chunk-SWEEZ5D5.mjs.map} +0 -0
  110. /package/dist/sdk/{command-executor-TYUV6HUS.mjs.map → command-executor-Q7MHJKZJ.mjs.map} +0 -0
  111. /package/dist/sdk/{config-YNC2EOOT.mjs.map → config-MK4XTU45.mjs.map} +0 -0
  112. /package/dist/sdk/{failure-condition-evaluator-YGTF2GHG.mjs.map → failure-condition-evaluator-HB35XRLZ.mjs.map} +0 -0
  113. /package/dist/sdk/{github-frontend-SIAEOCON.mjs.map → github-frontend-6Q4BISZX.mjs.map} +0 -0
  114. /package/dist/sdk/{host-DXUYTNMU.mjs.map → host-P5NQICP7.mjs.map} +0 -0
  115. /package/dist/sdk/{liquid-extensions-PKWCKK7E.mjs.map → liquid-extensions-DFDEBMUI.mjs.map} +0 -0
  116. /package/dist/sdk/{memory-store-XGBB7LX7.mjs.map → memory-store-RW5N2NGJ.mjs.map} +0 -0
  117. /package/dist/sdk/{prompt-state-YRJY6QAL.mjs.map → prompt-state-EZYOUG75.mjs.map} +0 -0
  118. /package/dist/sdk/{renderer-schema-LPKN5UJS.mjs.map → renderer-schema-CKFB5NDB.mjs.map} +0 -0
  119. /package/dist/sdk/{routing-6N45MJ4F.mjs.map → routing-KZ345OFG.mjs.map} +0 -0
  120. /package/dist/sdk/{workflow-registry-R6KSACFR.mjs.map → workflow-registry-6LZKCWHP.mjs.map} +0 -0
@@ -2,8 +2,8 @@ import {
2
2
  CommandExecutor,
3
3
  commandExecutor,
4
4
  init_command_executor
5
- } from "./chunk-AUT26LHW.mjs";
6
- import "./chunk-AGIZJ4UZ.mjs";
5
+ } from "./chunk-J2QWVDXK.mjs";
6
+ import "./chunk-3NMLT3YS.mjs";
7
7
  import "./chunk-YSN4G6CI.mjs";
8
8
  import "./chunk-WMJKH4XE.mjs";
9
9
  init_command_executor();
@@ -11,4 +11,4 @@ export {
11
11
  CommandExecutor,
12
12
  commandExecutor
13
13
  };
14
- //# sourceMappingURL=command-executor-TYUV6HUS.mjs.map
14
+ //# sourceMappingURL=command-executor-Q7MHJKZJ.mjs.map
@@ -2,10 +2,10 @@ import {
2
2
  ConfigManager,
3
3
  VALID_EVENT_TRIGGERS,
4
4
  init_config
5
- } from "./chunk-QY2XYPEV.mjs";
5
+ } from "./chunk-CUNPH6TR.mjs";
6
6
  import "./chunk-O5EZDNYL.mjs";
7
7
  import "./chunk-BOVFH3LI.mjs";
8
- import "./chunk-AGIZJ4UZ.mjs";
8
+ import "./chunk-3NMLT3YS.mjs";
9
9
  import "./chunk-YSN4G6CI.mjs";
10
10
  import "./chunk-WMJKH4XE.mjs";
11
11
  init_config();
@@ -13,4 +13,4 @@ export {
13
13
  ConfigManager,
14
14
  VALID_EVENT_TRIGGERS
15
15
  };
16
- //# sourceMappingURL=config-YNC2EOOT.mjs.map
16
+ //# sourceMappingURL=config-MK4XTU45.mjs.map
@@ -1,17 +1,17 @@
1
1
  import {
2
2
  FailureConditionEvaluator,
3
3
  init_failure_condition_evaluator
4
- } from "./chunk-SIWNBRTK.mjs";
4
+ } from "./chunk-SWEEZ5D5.mjs";
5
5
  import "./chunk-BOVFH3LI.mjs";
6
6
  import "./chunk-ZYAUYXSW.mjs";
7
7
  import "./chunk-S2RUE2RG.mjs";
8
8
  import "./chunk-CNX7V5JK.mjs";
9
- import "./chunk-7UK3NIIT.mjs";
10
- import "./chunk-AGIZJ4UZ.mjs";
9
+ import "./chunk-IHZOSIF4.mjs";
10
+ import "./chunk-3NMLT3YS.mjs";
11
11
  import "./chunk-YSN4G6CI.mjs";
12
12
  import "./chunk-WMJKH4XE.mjs";
13
13
  init_failure_condition_evaluator();
14
14
  export {
15
15
  FailureConditionEvaluator
16
16
  };
17
- //# sourceMappingURL=failure-condition-evaluator-YGTF2GHG.mjs.map
17
+ //# sourceMappingURL=failure-condition-evaluator-HB35XRLZ.mjs.map
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  failure_condition_evaluator_exports,
3
3
  init_failure_condition_evaluator
4
- } from "./chunk-SIWNBRTK.mjs";
4
+ } from "./chunk-SWEEZ5D5.mjs";
5
5
  import "./chunk-BOVFH3LI.mjs";
6
6
  import "./chunk-ZYAUYXSW.mjs";
7
7
  import "./chunk-S2RUE2RG.mjs";
8
8
  import "./chunk-CNX7V5JK.mjs";
9
- import "./chunk-7UK3NIIT.mjs";
9
+ import "./chunk-IHZOSIF4.mjs";
10
10
  import {
11
11
  init_logger,
12
12
  logger
13
- } from "./chunk-AGIZJ4UZ.mjs";
13
+ } from "./chunk-3NMLT3YS.mjs";
14
14
  import "./chunk-YSN4G6CI.mjs";
15
15
  import {
16
16
  __esm,
@@ -1417,4 +1417,4 @@ ${blocks}
1417
1417
  export {
1418
1418
  GitHubFrontend
1419
1419
  };
1420
- //# sourceMappingURL=github-frontend-SIAEOCON.mjs.map
1420
+ //# sourceMappingURL=github-frontend-6Q4BISZX.mjs.map
@@ -16,10 +16,10 @@ var FrontendsHost = class {
16
16
  const { NdjsonSink } = await import("./ndjson-sink-B4V4NTAQ.mjs");
17
17
  this.frontends.push(new NdjsonSink(spec.config));
18
18
  } else if (spec.name === "github") {
19
- const { GitHubFrontend } = await import("./github-frontend-SIAEOCON.mjs");
19
+ const { GitHubFrontend } = await import("./github-frontend-6Q4BISZX.mjs");
20
20
  this.frontends.push(new GitHubFrontend());
21
21
  } else if (spec.name === "slack") {
22
- const { SlackFrontend } = await import("./slack-frontend-BVKW3GD5.mjs");
22
+ const { SlackFrontend } = await import("./slack-frontend-J442FJWZ.mjs");
23
23
  this.frontends.push(new SlackFrontend(spec.config));
24
24
  } else {
25
25
  this.log.warn(`[FrontendsHost] Unknown frontend '${spec.name}', skipping`);
@@ -49,4 +49,4 @@ var FrontendsHost = class {
49
49
  export {
50
50
  FrontendsHost
51
51
  };
52
- //# sourceMappingURL=host-DXUYTNMU.mjs.map
52
+ //# sourceMappingURL=host-P5NQICP7.mjs.map
@@ -6,10 +6,10 @@ import {
6
6
  sanitizeLabel,
7
7
  sanitizeLabelList,
8
8
  withPermissionsContext
9
- } from "./chunk-AK6BVWIT.mjs";
9
+ } from "./chunk-7GUAFV6L.mjs";
10
10
  import "./chunk-CNX7V5JK.mjs";
11
- import "./chunk-7UK3NIIT.mjs";
12
- import "./chunk-AGIZJ4UZ.mjs";
11
+ import "./chunk-IHZOSIF4.mjs";
12
+ import "./chunk-3NMLT3YS.mjs";
13
13
  import "./chunk-YSN4G6CI.mjs";
14
14
  import "./chunk-WMJKH4XE.mjs";
15
15
  init_liquid_extensions();
@@ -21,4 +21,4 @@ export {
21
21
  sanitizeLabelList,
22
22
  withPermissionsContext
23
23
  };
24
- //# sourceMappingURL=liquid-extensions-PKWCKK7E.mjs.map
24
+ //# sourceMappingURL=liquid-extensions-DFDEBMUI.mjs.map
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  MemoryStore,
3
3
  init_memory_store
4
- } from "./chunk-7UK3NIIT.mjs";
5
- import "./chunk-AGIZJ4UZ.mjs";
4
+ } from "./chunk-IHZOSIF4.mjs";
5
+ import "./chunk-3NMLT3YS.mjs";
6
6
  import "./chunk-YSN4G6CI.mjs";
7
7
  import "./chunk-WMJKH4XE.mjs";
8
8
  init_memory_store();
9
9
  export {
10
10
  MemoryStore
11
11
  };
12
- //# sourceMappingURL=memory-store-XGBB7LX7.mjs.map
12
+ //# sourceMappingURL=memory-store-RW5N2NGJ.mjs.map
@@ -3,8 +3,8 @@ import {
3
3
  getPromptStateManager,
4
4
  init_prompt_state,
5
5
  resetPromptStateManager
6
- } from "./chunk-HTOKWMPO.mjs";
7
- import "./chunk-AGIZJ4UZ.mjs";
6
+ } from "./chunk-HQL734ZI.mjs";
7
+ import "./chunk-3NMLT3YS.mjs";
8
8
  import "./chunk-YSN4G6CI.mjs";
9
9
  import "./chunk-WMJKH4XE.mjs";
10
10
  init_prompt_state();
@@ -13,4 +13,4 @@ export {
13
13
  getPromptStateManager,
14
14
  resetPromptStateManager
15
15
  };
16
- //# sourceMappingURL=prompt-state-YRJY6QAL.mjs.map
16
+ //# sourceMappingURL=prompt-state-EZYOUG75.mjs.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  init_logger,
3
3
  logger
4
- } from "./chunk-AGIZJ4UZ.mjs";
4
+ } from "./chunk-3NMLT3YS.mjs";
5
5
  import "./chunk-YSN4G6CI.mjs";
6
6
  import {
7
7
  __esm
@@ -48,4 +48,4 @@ init_renderer_schema();
48
48
  export {
49
49
  loadRendererSchema
50
50
  };
51
- //# sourceMappingURL=renderer-schema-LPKN5UJS.mjs.map
51
+ //# sourceMappingURL=renderer-schema-CKFB5NDB.mjs.map
@@ -4,14 +4,14 @@ import {
4
4
  evaluateTransitions,
5
5
  handleRouting,
6
6
  init_routing
7
- } from "./chunk-AIVFBIS4.mjs";
8
- import "./chunk-SIWNBRTK.mjs";
7
+ } from "./chunk-35NT3725.mjs";
8
+ import "./chunk-SWEEZ5D5.mjs";
9
9
  import "./chunk-BOVFH3LI.mjs";
10
10
  import "./chunk-ZYAUYXSW.mjs";
11
11
  import "./chunk-S2RUE2RG.mjs";
12
12
  import "./chunk-CNX7V5JK.mjs";
13
- import "./chunk-7UK3NIIT.mjs";
14
- import "./chunk-AGIZJ4UZ.mjs";
13
+ import "./chunk-IHZOSIF4.mjs";
14
+ import "./chunk-3NMLT3YS.mjs";
15
15
  import "./chunk-YSN4G6CI.mjs";
16
16
  import "./chunk-WMJKH4XE.mjs";
17
17
  init_routing();
@@ -21,4 +21,4 @@ export {
21
21
  evaluateTransitions,
22
22
  handleRouting
23
23
  };
24
- //# sourceMappingURL=routing-6N45MJ4F.mjs.map
24
+ //# sourceMappingURL=routing-KZ345OFG.mjs.map
@@ -1036,6 +1036,10 @@ interface WorkspaceConfig {
1036
1036
  enabled?: boolean;
1037
1037
  /** Base path for workspaces (default: /tmp/visor-workspaces) */
1038
1038
  base_path?: string;
1039
+ /** Workspace directory name (defaults to session id) */
1040
+ name?: string;
1041
+ /** Main project folder name inside the workspace (defaults to original directory name) */
1042
+ main_project_name?: string;
1039
1043
  /** Clean up workspace on exit (default: true) */
1040
1044
  cleanup_on_exit?: boolean;
1041
1045
  }
@@ -1201,7 +1205,7 @@ interface ExecutionContext {
1201
1205
  workflowInputs?: Record<string, unknown>;
1202
1206
  /** Custom arguments passed from on_init 'with' directive */
1203
1207
  args?: Record<string, unknown>;
1204
- /** SDK hooks for human input */
1208
+ /** SDK hooks for human input and check completion */
1205
1209
  hooks?: {
1206
1210
  onHumanInput?: (request: HumanInputRequest) => Promise<string>;
1207
1211
  onPromptCaptured?: (info: {
@@ -1210,6 +1214,20 @@ interface ExecutionContext {
1210
1214
  prompt: string;
1211
1215
  }) => void;
1212
1216
  mockForStep?: (step: string) => unknown | undefined;
1217
+ /** Called when a check completes - useful for streaming TUI updates */
1218
+ onCheckComplete?: (info: {
1219
+ checkId: string;
1220
+ result: {
1221
+ output?: unknown;
1222
+ content?: string;
1223
+ };
1224
+ checkConfig?: {
1225
+ type?: string;
1226
+ group?: string;
1227
+ criticality?: string;
1228
+ schema?: unknown;
1229
+ };
1230
+ }) => void;
1213
1231
  };
1214
1232
  /**
1215
1233
  * Optional execution mode hints. The core engine does not read environment
package/dist/sdk/sdk.d.ts CHANGED
@@ -1036,6 +1036,10 @@ interface WorkspaceConfig {
1036
1036
  enabled?: boolean;
1037
1037
  /** Base path for workspaces (default: /tmp/visor-workspaces) */
1038
1038
  base_path?: string;
1039
+ /** Workspace directory name (defaults to session id) */
1040
+ name?: string;
1041
+ /** Main project folder name inside the workspace (defaults to original directory name) */
1042
+ main_project_name?: string;
1039
1043
  /** Clean up workspace on exit (default: true) */
1040
1044
  cleanup_on_exit?: boolean;
1041
1045
  }
@@ -1201,7 +1205,7 @@ interface ExecutionContext {
1201
1205
  workflowInputs?: Record<string, unknown>;
1202
1206
  /** Custom arguments passed from on_init 'with' directive */
1203
1207
  args?: Record<string, unknown>;
1204
- /** SDK hooks for human input */
1208
+ /** SDK hooks for human input and check completion */
1205
1209
  hooks?: {
1206
1210
  onHumanInput?: (request: HumanInputRequest) => Promise<string>;
1207
1211
  onPromptCaptured?: (info: {
@@ -1210,6 +1214,20 @@ interface ExecutionContext {
1210
1214
  prompt: string;
1211
1215
  }) => void;
1212
1216
  mockForStep?: (step: string) => unknown | undefined;
1217
+ /** Called when a check completes - useful for streaming TUI updates */
1218
+ onCheckComplete?: (info: {
1219
+ checkId: string;
1220
+ result: {
1221
+ output?: unknown;
1222
+ content?: string;
1223
+ };
1224
+ checkConfig?: {
1225
+ type?: string;
1226
+ group?: string;
1227
+ criticality?: string;
1228
+ schema?: unknown;
1229
+ };
1230
+ }) => void;
1213
1231
  };
1214
1232
  /**
1215
1233
  * Optional execution mode hints. The core engine does not read environment