@probelabs/visor 0.1.126 → 0.1.128

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 (178) hide show
  1. package/dist/ai-review-service.d.ts +2 -0
  2. package/dist/ai-review-service.d.ts.map +1 -1
  3. package/dist/docs/ai-configuration.md +23 -0
  4. package/dist/docs/commands.md +1 -1
  5. package/dist/docs/timeouts.md +1 -1
  6. package/dist/docs/workflows.md +30 -1
  7. package/dist/failure-condition-evaluator.d.ts.map +1 -1
  8. package/dist/generated/config-schema.d.ts +63 -9
  9. package/dist/generated/config-schema.d.ts.map +1 -1
  10. package/dist/generated/config-schema.json +67 -11
  11. package/dist/index.js +11476 -6945
  12. package/dist/liquid-extensions.d.ts.map +1 -1
  13. package/dist/output/traces/{run-2026-01-31T16-37-22-321Z.ndjson → run-2026-02-05T13-36-03-279Z.ndjson} +84 -84
  14. package/dist/output/traces/{run-2026-01-31T16-38-06-031Z.ndjson → run-2026-02-05T13-36-48-767Z.ndjson} +839 -1059
  15. package/dist/output/traces/run-2026-02-05T13-36-58-960Z.ndjson +17 -0
  16. package/dist/output/traces/run-2026-02-05T13-37-00-184Z.ndjson +205 -0
  17. package/dist/providers/ai-check-provider.d.ts +16 -0
  18. package/dist/providers/ai-check-provider.d.ts.map +1 -1
  19. package/dist/providers/command-check-provider.d.ts.map +1 -1
  20. package/dist/providers/custom-tool-executor.d.ts.map +1 -1
  21. package/dist/providers/http-client-provider.d.ts.map +1 -1
  22. package/dist/providers/mcp-check-provider.d.ts +3 -0
  23. package/dist/providers/mcp-check-provider.d.ts.map +1 -1
  24. package/dist/providers/mcp-custom-sse-server.d.ts +22 -2
  25. package/dist/providers/mcp-custom-sse-server.d.ts.map +1 -1
  26. package/dist/providers/memory-check-provider.d.ts.map +1 -1
  27. package/dist/providers/workflow-check-provider.d.ts.map +1 -1
  28. package/dist/providers/workflow-tool-executor.d.ts +2 -0
  29. package/dist/providers/workflow-tool-executor.d.ts.map +1 -1
  30. package/dist/sdk/check-provider-registry-OB5FEBJU.mjs +28 -0
  31. package/dist/sdk/check-provider-registry-UC2LPSB4.mjs +28 -0
  32. package/dist/sdk/{chunk-CNX7V5JK.mjs → chunk-25IC7KXZ.mjs} +2 -2
  33. package/dist/sdk/{chunk-YSN4G6CI.mjs → chunk-4HVFUUNB.mjs} +2 -2
  34. package/dist/sdk/{chunk-3OMWVM6J.mjs → chunk-B7BVQM5K.mjs} +2 -2
  35. package/dist/sdk/{chunk-5LI6T4O3.mjs → chunk-D55IQCUP.mjs} +71 -17
  36. package/dist/sdk/chunk-D55IQCUP.mjs.map +1 -0
  37. package/dist/sdk/{chunk-BOVFH3LI.mjs → chunk-EJN6Q4D3.mjs} +16 -7
  38. package/dist/sdk/chunk-EJN6Q4D3.mjs.map +1 -0
  39. package/dist/sdk/{chunk-WMJKH4XE.mjs → chunk-J7LXIPZS.mjs} +16 -1
  40. package/dist/sdk/{chunk-EXFGO4FX.mjs → chunk-KFKHU6CM.mjs} +2 -2
  41. package/dist/sdk/{chunk-7GUAFV6L.mjs → chunk-LMJSJQPP.mjs} +18 -13
  42. package/dist/sdk/chunk-LMJSJQPP.mjs.map +1 -0
  43. package/dist/sdk/{chunk-VW2GBXQT.mjs → chunk-N7IVCCGH.mjs} +3 -3
  44. package/dist/sdk/{chunk-O5EZDNYL.mjs → chunk-NCWIZVOT.mjs} +2 -2
  45. package/dist/sdk/{chunk-3NMLT3YS.mjs → chunk-P6YFV6N2.mjs} +3 -3
  46. package/dist/sdk/{chunk-HQL734ZI.mjs → chunk-QRXSDDYN.mjs} +3 -3
  47. package/dist/sdk/{chunk-J2QWVDXK.mjs → chunk-SIMCSNXO.mjs} +3 -3
  48. package/dist/sdk/{chunk-IHZOSIF4.mjs → chunk-UEWXVJ6C.mjs} +3 -3
  49. package/dist/sdk/{chunk-SWEEZ5D5.mjs → chunk-UKG5UP5U.mjs} +17 -83
  50. package/dist/sdk/chunk-UKG5UP5U.mjs.map +1 -0
  51. package/dist/sdk/chunk-UPKHRMUA.mjs +35108 -0
  52. package/dist/sdk/chunk-UPKHRMUA.mjs.map +1 -0
  53. package/dist/sdk/chunk-V7RIRPO7.mjs +35108 -0
  54. package/dist/sdk/chunk-V7RIRPO7.mjs.map +1 -0
  55. package/dist/sdk/{chunk-2CPMMNIX.mjs → chunk-VEROLBCD.mjs} +21 -65
  56. package/dist/sdk/{chunk-2CPMMNIX.mjs.map → chunk-VEROLBCD.mjs.map} +1 -1
  57. package/dist/sdk/{chunk-ZYAUYXSW.mjs → chunk-WVNQ56DO.mjs} +3 -3
  58. package/dist/sdk/{chunk-NAW3DB3I.mjs → chunk-XXAEN5KU.mjs} +3 -3
  59. package/dist/sdk/{chunk-S2RUE2RG.mjs → chunk-YCUWMIV5.mjs} +3 -3
  60. package/dist/sdk/command-executor-C4DGIQ4Q.mjs +14 -0
  61. package/dist/sdk/config-GYTBTHRZ.mjs +16 -0
  62. package/dist/sdk/config-merger-RKCZJQ44.mjs +10 -0
  63. package/dist/sdk/{event-bus-5BEVPQ6T.mjs → event-bus-XV2TOQFU.mjs} +2 -2
  64. package/dist/sdk/failure-condition-evaluator-KRFY4OLQ.mjs +17 -0
  65. package/dist/sdk/{git-repository-analyzer-HJC4MYW4.mjs → git-repository-analyzer-VO7OZMTM.mjs} +2 -2
  66. package/dist/sdk/{github-frontend-BZ4N3BFZ.mjs → github-frontend-UC326PMS.mjs} +11 -11
  67. package/dist/sdk/{host-NYWXLIFC.mjs → host-H7MKML2H.mjs} +5 -5
  68. package/dist/sdk/{liquid-extensions-DFDEBMUI.mjs → liquid-extensions-WJAC7QKG.mjs} +8 -7
  69. package/dist/sdk/memory-store-LPOZWQ5E.mjs +12 -0
  70. package/dist/sdk/{metrics-7PP3EJUH.mjs → metrics-CSBGJEWW.mjs} +4 -4
  71. package/dist/sdk/{ndjson-sink-B4V4NTAQ.mjs → ndjson-sink-JQ2INHTS.mjs} +2 -2
  72. package/dist/sdk/{prompt-state-EZYOUG75.mjs → prompt-state-X2WDGSEM.mjs} +5 -5
  73. package/dist/sdk/{renderer-schema-CKFB5NDB.mjs → renderer-schema-FRCLA6KH.mjs} +4 -4
  74. package/dist/sdk/routing-745DOEKR.mjs +24 -0
  75. package/dist/sdk/sdk.d.mts +65 -3
  76. package/dist/sdk/sdk.d.ts +65 -3
  77. package/dist/sdk/sdk.js +17945 -540
  78. package/dist/sdk/sdk.js.map +1 -1
  79. package/dist/sdk/sdk.mjs +107 -34
  80. package/dist/sdk/sdk.mjs.map +1 -1
  81. package/dist/sdk/session-registry-6PV6SGEJ.mjs +10 -0
  82. package/dist/sdk/{slack-frontend-JUT3TYVC.mjs → slack-frontend-UPYUYCUQ.mjs} +5 -5
  83. package/dist/sdk/{trace-helpers-VP6QYVBX.mjs → trace-helpers-LUCR52GY.mjs} +4 -4
  84. package/dist/sdk/tracer-init-XPRWKMZT.mjs +10 -0
  85. package/dist/sdk/workflow-check-provider-AA3VNYUY.mjs +28 -0
  86. package/dist/sdk/workflow-check-provider-LQNQZUN5.mjs +28 -0
  87. package/dist/sdk/workflow-registry-W7IEH7GK.mjs +12 -0
  88. package/dist/state-machine/states/routing.d.ts.map +1 -1
  89. package/dist/test-runner/index.d.ts +5 -0
  90. package/dist/test-runner/index.d.ts.map +1 -1
  91. package/dist/test-runner/validator.d.ts.map +1 -1
  92. package/dist/traces/{run-2026-01-31T16-37-22-321Z.ndjson → run-2026-02-05T13-36-03-279Z.ndjson} +84 -84
  93. package/dist/traces/{run-2026-01-31T16-38-06-031Z.ndjson → run-2026-02-05T13-36-48-767Z.ndjson} +839 -1059
  94. package/dist/traces/run-2026-02-05T13-36-58-960Z.ndjson +17 -0
  95. package/dist/traces/run-2026-02-05T13-37-00-184Z.ndjson +205 -0
  96. package/dist/types/config.d.ts +65 -3
  97. package/dist/types/config.d.ts.map +1 -1
  98. package/dist/utils/sandbox.d.ts.map +1 -1
  99. package/dist/utils/workspace-manager.d.ts +22 -2
  100. package/dist/utils/workspace-manager.d.ts.map +1 -1
  101. package/dist/utils/worktree-manager.d.ts +2 -1
  102. package/dist/utils/worktree-manager.d.ts.map +1 -1
  103. package/package.json +6 -7
  104. package/dist/sdk/check-provider-registry-3KI5RKXT.mjs +0 -28
  105. package/dist/sdk/check-provider-registry-IYILYY35.mjs +0 -28
  106. package/dist/sdk/chunk-5LI6T4O3.mjs.map +0 -1
  107. package/dist/sdk/chunk-7GUAFV6L.mjs.map +0 -1
  108. package/dist/sdk/chunk-A4PGHURG.mjs +0 -17667
  109. package/dist/sdk/chunk-A4PGHURG.mjs.map +0 -1
  110. package/dist/sdk/chunk-BOVFH3LI.mjs.map +0 -1
  111. package/dist/sdk/chunk-J6EVEXC2.mjs +0 -558
  112. package/dist/sdk/chunk-J6EVEXC2.mjs.map +0 -1
  113. package/dist/sdk/chunk-PJ7K5UFC.mjs +0 -17732
  114. package/dist/sdk/chunk-PJ7K5UFC.mjs.map +0 -1
  115. package/dist/sdk/chunk-PXFIALUH.mjs +0 -1458
  116. package/dist/sdk/chunk-PXFIALUH.mjs.map +0 -1
  117. package/dist/sdk/chunk-RTKJXNZS.mjs +0 -3591
  118. package/dist/sdk/chunk-RTKJXNZS.mjs.map +0 -1
  119. package/dist/sdk/chunk-SWEEZ5D5.mjs.map +0 -1
  120. package/dist/sdk/command-executor-Q7MHJKZJ.mjs +0 -14
  121. package/dist/sdk/config-5AUYQFHE.mjs +0 -16
  122. package/dist/sdk/config-6CUVEH7H.mjs +0 -16
  123. package/dist/sdk/config-merger-PX3WIT57.mjs +0 -10
  124. package/dist/sdk/failure-condition-evaluator-HB35XRLZ.mjs +0 -17
  125. package/dist/sdk/host-4MT3EW2I.mjs +0 -52
  126. package/dist/sdk/host-NYWXLIFC.mjs.map +0 -1
  127. package/dist/sdk/memory-store-RW5N2NGJ.mjs +0 -12
  128. package/dist/sdk/routing-6R42GXUO.mjs +0 -24
  129. package/dist/sdk/routing-7FXPULTO.mjs +0 -24
  130. package/dist/sdk/session-registry-4E6YRQ77.mjs +0 -10
  131. package/dist/sdk/slack-frontend-J442FJWZ.mjs +0 -793
  132. package/dist/sdk/slack-frontend-J442FJWZ.mjs.map +0 -1
  133. package/dist/sdk/tracer-init-GSLPPLCD.mjs +0 -10
  134. package/dist/sdk/workflow-check-provider-H3CUOLUD.mjs +0 -28
  135. package/dist/sdk/workflow-check-provider-YUNNF4KC.mjs +0 -28
  136. package/dist/sdk/workflow-check-provider-YUNNF4KC.mjs.map +0 -1
  137. package/dist/sdk/workflow-registry-6LZKCWHP.mjs +0 -12
  138. package/dist/sdk/workflow-registry-6LZKCWHP.mjs.map +0 -1
  139. package/dist/sdk/workflow-registry-KFWSDSLM.mjs +0 -12
  140. package/dist/sdk/workflow-registry-KFWSDSLM.mjs.map +0 -1
  141. /package/dist/sdk/{check-provider-registry-3KI5RKXT.mjs.map → check-provider-registry-OB5FEBJU.mjs.map} +0 -0
  142. /package/dist/sdk/{check-provider-registry-IYILYY35.mjs.map → check-provider-registry-UC2LPSB4.mjs.map} +0 -0
  143. /package/dist/sdk/{chunk-CNX7V5JK.mjs.map → chunk-25IC7KXZ.mjs.map} +0 -0
  144. /package/dist/sdk/{chunk-YSN4G6CI.mjs.map → chunk-4HVFUUNB.mjs.map} +0 -0
  145. /package/dist/sdk/{chunk-3OMWVM6J.mjs.map → chunk-B7BVQM5K.mjs.map} +0 -0
  146. /package/dist/sdk/{chunk-WMJKH4XE.mjs.map → chunk-J7LXIPZS.mjs.map} +0 -0
  147. /package/dist/sdk/{chunk-EXFGO4FX.mjs.map → chunk-KFKHU6CM.mjs.map} +0 -0
  148. /package/dist/sdk/{chunk-VW2GBXQT.mjs.map → chunk-N7IVCCGH.mjs.map} +0 -0
  149. /package/dist/sdk/{chunk-O5EZDNYL.mjs.map → chunk-NCWIZVOT.mjs.map} +0 -0
  150. /package/dist/sdk/{chunk-3NMLT3YS.mjs.map → chunk-P6YFV6N2.mjs.map} +0 -0
  151. /package/dist/sdk/{chunk-HQL734ZI.mjs.map → chunk-QRXSDDYN.mjs.map} +0 -0
  152. /package/dist/sdk/{chunk-J2QWVDXK.mjs.map → chunk-SIMCSNXO.mjs.map} +0 -0
  153. /package/dist/sdk/{chunk-IHZOSIF4.mjs.map → chunk-UEWXVJ6C.mjs.map} +0 -0
  154. /package/dist/sdk/{chunk-ZYAUYXSW.mjs.map → chunk-WVNQ56DO.mjs.map} +0 -0
  155. /package/dist/sdk/{chunk-NAW3DB3I.mjs.map → chunk-XXAEN5KU.mjs.map} +0 -0
  156. /package/dist/sdk/{chunk-S2RUE2RG.mjs.map → chunk-YCUWMIV5.mjs.map} +0 -0
  157. /package/dist/sdk/{command-executor-Q7MHJKZJ.mjs.map → command-executor-C4DGIQ4Q.mjs.map} +0 -0
  158. /package/dist/sdk/{config-5AUYQFHE.mjs.map → config-GYTBTHRZ.mjs.map} +0 -0
  159. /package/dist/sdk/{config-6CUVEH7H.mjs.map → config-merger-RKCZJQ44.mjs.map} +0 -0
  160. /package/dist/sdk/{event-bus-5BEVPQ6T.mjs.map → event-bus-XV2TOQFU.mjs.map} +0 -0
  161. /package/dist/sdk/{config-merger-PX3WIT57.mjs.map → failure-condition-evaluator-KRFY4OLQ.mjs.map} +0 -0
  162. /package/dist/sdk/{git-repository-analyzer-HJC4MYW4.mjs.map → git-repository-analyzer-VO7OZMTM.mjs.map} +0 -0
  163. /package/dist/sdk/{github-frontend-BZ4N3BFZ.mjs.map → github-frontend-UC326PMS.mjs.map} +0 -0
  164. /package/dist/sdk/{host-4MT3EW2I.mjs.map → host-H7MKML2H.mjs.map} +0 -0
  165. /package/dist/sdk/{failure-condition-evaluator-HB35XRLZ.mjs.map → liquid-extensions-WJAC7QKG.mjs.map} +0 -0
  166. /package/dist/sdk/{liquid-extensions-DFDEBMUI.mjs.map → memory-store-LPOZWQ5E.mjs.map} +0 -0
  167. /package/dist/sdk/{memory-store-RW5N2NGJ.mjs.map → metrics-CSBGJEWW.mjs.map} +0 -0
  168. /package/dist/sdk/{ndjson-sink-B4V4NTAQ.mjs.map → ndjson-sink-JQ2INHTS.mjs.map} +0 -0
  169. /package/dist/sdk/{metrics-7PP3EJUH.mjs.map → prompt-state-X2WDGSEM.mjs.map} +0 -0
  170. /package/dist/sdk/{renderer-schema-CKFB5NDB.mjs.map → renderer-schema-FRCLA6KH.mjs.map} +0 -0
  171. /package/dist/sdk/{prompt-state-EZYOUG75.mjs.map → routing-745DOEKR.mjs.map} +0 -0
  172. /package/dist/sdk/{routing-6R42GXUO.mjs.map → session-registry-6PV6SGEJ.mjs.map} +0 -0
  173. /package/dist/sdk/{slack-frontend-JUT3TYVC.mjs.map → slack-frontend-UPYUYCUQ.mjs.map} +0 -0
  174. /package/dist/sdk/{routing-7FXPULTO.mjs.map → trace-helpers-LUCR52GY.mjs.map} +0 -0
  175. /package/dist/sdk/{session-registry-4E6YRQ77.mjs.map → tracer-init-XPRWKMZT.mjs.map} +0 -0
  176. /package/dist/sdk/{trace-helpers-VP6QYVBX.mjs.map → workflow-check-provider-AA3VNYUY.mjs.map} +0 -0
  177. /package/dist/sdk/{tracer-init-GSLPPLCD.mjs.map → workflow-check-provider-LQNQZUN5.mjs.map} +0 -0
  178. /package/dist/sdk/{workflow-check-provider-H3CUOLUD.mjs.map → workflow-registry-W7IEH7GK.mjs.map} +0 -0
@@ -0,0 +1,17 @@
1
+ {"name":"visor.run","attributes":{"started":true}}
2
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"Init","state_to":"PlanReady","engine_mode":"state-machine","wave":0,"session_id":"fast-bat-hm4d"}}]}
3
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"PlanReady","state_to":"WavePlanning","engine_mode":"state-machine","wave":0,"session_id":"fast-bat-hm4d"}}]}
4
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"LevelDispatch","engine_mode":"state-machine","wave":1,"session_id":"fast-bat-hm4d"}}]}
5
+ {"name":"visor.provider","attributes":{"visor.check.id":"overview","visor.provider.type":"ai"}}
6
+ {"name":"visor.check","attributes":{"visor.check.id":"overview","visor.check.input.context":"{\"pr\":{\"number\":1,\"title\":\"feat: add user search\",\"author\":\"test-user\",\"branch\":\"feature/test\",\"base\":\"main\"},\"files\":[{\"filename\":\"src/search.ts\",\"additions\":3,\"deletions\":0,\"changes\":3,\"status\":\"added\",\"patch\":\"@@\\n+export function search(q: string) {\\n return []\\n}\\n\"}],\"outputs\":{},\"args\":{}}"},"events":[]}
7
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"LevelDispatch","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"fast-bat-hm4d"}}]}
8
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"fast-bat-hm4d"}}]}
9
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"LevelDispatch","engine_mode":"state-machine","wave":1,"session_id":"fast-bat-hm4d"}}]}
10
+ {"name":"visor.provider","attributes":{"visor.check.id":"security","visor.provider.type":"ai"}}
11
+ {"name":"visor.check","attributes":{"visor.check.id":"security","visor.check.input.context":"{\"pr\":{\"number\":1,\"title\":\"feat: add user search\",\"author\":\"test-user\",\"branch\":\"feature/test\",\"base\":\"main\"},\"files\":[{\"filename\":\"src/search.ts\",\"additions\":3,\"deletions\":0,\"changes\":3,\"status\":\"added\",\"patch\":\"@@\\n+export function search(q: string) {\\n return []\\n}\\n\"}],\"outputs\":{\"overview\":{\"text\":\"Overview body\",\"tags\":{\"label\":\"feature\",\"review-effort\":2},\"ts\":1770298619390}},\"args\":{}}"},"events":[]}
12
+ {"name":"visor.provider","attributes":{"visor.check.id":"readability","visor.provider.type":"ai"}}
13
+ {"name":"visor.check","attributes":{"visor.check.id":"readability","visor.check.input.context":"{\"pr\":{\"number\":1,\"title\":\"feat: add user search\",\"author\":\"test-user\",\"branch\":\"feature/test\",\"base\":\"main\"},\"files\":[{\"filename\":\"src/search.ts\",\"additions\":3,\"deletions\":0,\"changes\":3,\"status\":\"added\",\"patch\":\"@@\\n+export function search(q: string) {\\n return []\\n}\\n\"}],\"outputs\":{\"overview\":{\"text\":\"Overview body\",\"tags\":{\"label\":\"feature\",\"review-effort\":2},\"ts\":1770298619390}},\"args\":{}}"},"events":[]}
14
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"LevelDispatch","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"fast-bat-hm4d"}}]}
15
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"fast-bat-hm4d"}}]}
16
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"fast-bat-hm4d"}}]}
17
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"Completed","engine_mode":"state-machine","wave":1,"session_id":"fast-bat-hm4d"}}]}
@@ -0,0 +1,205 @@
1
+ {"name":"visor.run","attributes":{"started":true}}
2
+ {"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-horse-yhw3"}}]}
3
+ {"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-horse-yhw3"}}]}
4
+ {"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-horse-yhw3"}}]}
5
+ {"name":"visor.provider","attributes":{"visor.check.id":"multi-tool-preprocessing","visor.provider.type":"command"}}
6
+ {"name":"visor.check","attributes":{"visor.check.id":"multi-tool-preprocessing","visor.check.input.context":"{\"pr\":{\"number\":1,\"title\":\"feat: add user search\",\"author\":\"test-user\",\"branch\":\"feature/test\",\"base\":\"main\"},\"files\":[{\"filename\":\"src/search.ts\",\"additions\":3,\"deletions\":0,\"changes\":3,\"status\":\"added\",\"patch\":\"@@\\n+export function search(q: string) {\\n return []\\n}\\n\"}],\"fileCount\":1,\"outputs\":{\"history\":{}},\"outputs_history\":{},\"outputs_history_stage\":{},\"outputs_raw\":{},\"inputs\":{},\"args\":{},\"env\":{\"GITHUB_STATE\":\"/home/runner/work/_temp/_runner_file_commands/save_state_c9c51a1e-b429-4311-98c6-3dd5e64a11a2\",\"DOTNET_NOLOGO\":\"1\",\"USER\":\"runner\",\"npm_config_always_auth\":\"[REDACTED]\",\"npm_config_user_agent\":\"npm/11.6.2 node/v24.13.0 linux x64 workspaces/false ci/github-actions\",\"CI\":\"true\",\"RUNNER_ENVIRONMENT\":\"github-hosted\",\"GITHUB_ENV\":\"/home/runner/work/_temp/_runner_file_commands/set_env_c9c51a1e-b429-4311-98c6-3dd5e64a11a2\",\"PIPX_HOME\":\"/opt/pipx\",\"npm_node_execpath\":\"/opt/hostedtoolcache/node/24.13.0/x64/bin/node\",\"JAVA_HOME_8_X64\":\"/usr/lib/jvm/temurin-8-jdk-amd64\",\"SHLVL\":\"1\",\"npm_config_noproxy\":\"\",\"HOME\":\"/home/runner\",\"RUNNER_TEMP\":\"/home/runner/work/_temp\",\"GITHUB_EVENT_PATH\":\"/home/runner/work/_temp/_github_workflow/event.json\",\"npm_package_json\":\"/home/runner/work/visor/visor/package.json\",\"JAVA_HOME_11_X64\":\"/usr/lib/jvm/temurin-11-jdk-amd64\",\"PIPX_BIN_DIR\":\"/opt/pipx_bin\",\"GITHUB_REPOSITORY_OWNER\":\"probelabs\",\"NODE_OPTIONS\":\"--max-old-space-size=6144\",\"GRADLE_HOME\":\"/usr/share/gradle-9.3.0\",\"ANDROID_NDK_LATEST_HOME\":\"/usr/local/lib/android/sdk/ndk/29.0.14206865\",\"JAVA_HOME_21_X64\":\"/usr/lib/jvm/temurin-21-jdk-amd64\",\"GITHUB_RETENTION_DAYS\":\"90\",\"GITHUB_REPOSITORY_OWNER_ID\":\"226675185\",\"POWERSHELL_DISTRIBUTION_CHANNEL\":\"GitHub-Actions-ubuntu24\",\"AZURE_EXTENSION_DIR\":\"/opt/az/azcliextensions\",\"GITHUB_HEAD_REF\":\"\",\"npm_config_local_prefix\":\"/home/runner/work/visor/visor\",\"SYSTEMD_EXEC_PID\":\"2034\",\"ACTIONS_ORCHESTRATION_ID\":\"3605b281-5d31-482f-b138-1e51bdb5fde2.release-npm.__default\",\"GITHUB_GRAPHQL_URL\":\"https://api.github.com/graphql\",\"COLOR\":\"0\",\"JAVA_HOME_25_X64\":\"/usr/lib/jvm/temurin-25-jdk-amd64\",\"NVM_DIR\":\"/home/runner/.nvm\",\"DOTNET_SKIP_FIRST_TIME_EXPERIENCE\":\"1\",\"JAVA_HOME_17_X64\":\"/usr/lib/jvm/temurin-17-jdk-amd64\",\"ImageVersion\":\"20260126.10.1\",\"LOGNAME\":\"runner\",\"RUNNER_OS\":\"Linux\",\"GITHUB_API_URL\":\"https://api.github.com\",\"GOROOT_1_22_X64\":\"/opt/hostedtoolcache/go/1.22.12/x64\",\"SWIFT_PATH\":\"/usr/share/swift/usr/bin\",\"CHROMEWEBDRIVER\":\"/usr/local/share/chromedriver-linux64\",\"GOROOT_1_23_X64\":\"/opt/hostedtoolcache/go/1.23.12/x64\",\"JOURNAL_STREAM\":\"9:14556\",\"GITHUB_WORKFLOW\":\"Release\",\"_\":\"/opt/hostedtoolcache/node/24.13.0/x64/bin/npm\",\"npm_config_prefix\":\"/opt/hostedtoolcache/node/24.13.0/x64\",\"npm_config_npm_version\":\"11.6.2\",\"MEMORY_PRESSURE_WATCH\":\"/sys/fs/cgroup/system.slice/hosted-compute-agent.service/memory.pressure\",\"GOROOT_1_24_X64\":\"/opt/hostedtoolcache/go/1.24.12/x64\",\"ACTIONS_RUNNER_ACTION_ARCHIVE_CACHE\":\"/opt/actionarchivecache\",\"GOROOT_1_25_X64\":\"/opt/hostedtoolcache/go/1.25.6/x64\",\"GITHUB_RUN_ID\":\"21713448139\",\"npm_config_cache\":\"/home/runner/.npm\",\"GITHUB_REF_TYPE\":\"tag\",\"BOOTSTRAP_HASKELL_NONINTERACTIVE\":\"1\",\"GITHUB_WORKFLOW_SHA\":\"db07b6f9a3bf553f78291db432d26ffaabfe73a2\",\"GITHUB_BASE_REF\":\"\",\"ImageOS\":\"ubuntu24\",\"GITHUB_WORKFLOW_REF\":\"probelabs/visor/.github/workflows/release.yml@refs/tags/v0.1.128\",\"GITHUB_ACTION_REPOSITORY\":\"\",\"ENABLE_RUNNER_TRACING\":\"true\",\"npm_config_node_gyp\":\"/opt/hostedtoolcache/node/24.13.0/x64/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js\",\"PATH\":\"/home/runner/work/visor/visor/node_modules/.bin:/home/runner/work/visor/node_modules/.bin:/home/runner/work/node_modules/.bin:/home/runner/node_modules/.bin:/home/node_modules/.bin:/node_modules/.bin:/opt/hostedtoolcache/node/24.13.0/x64/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin:/home/runner/work/visor/visor/node_modules/.bin:/home/runner/work/visor/node_modules/.bin:/home/runner/work/node_modules/.bin:/home/runner/node_modules/.bin:/home/node_modules/.bin:/node_modules/.bin:/opt/hostedtoolcache/node/24.13.0/x64/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin:/opt/hostedtoolcache/node/24.13.0/x64/bin:/snap/bin:/home/runner/.local/bin:/opt/pipx_bin:/home/runner/.cargo/bin:/home/runner/.config/composer/vendor/bin:/usr/local/.ghcup/bin:/home/runner/.dotnet/tools:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin\",\"ANT_HOME\":\"/usr/share/ant\",\"DOTNET_MULTILEVEL_LOOKUP\":\"0\",\"RUNNER_TRACKING_ID\":\"github_be790921-1607-4670-9968-c7f9f22fa336\",\"INVOCATION_ID\":\"7e6e43fd6d694270b22c561a1fa4ac0d\",\"NPM_CONFIG_USERCONFIG\":\"/home/runner/work/_temp/.npmrc\",\"RUNNER_TOOL_CACHE\":\"/opt/hostedtoolcache\",\"NODE\":\"/opt/hostedtoolcache/node/24.13.0/x64/bin/node\",\"npm_package_name\":\"@probelabs/visor\",\"GITHUB_ACTION\":\"__run_2\",\"GITHUB_RUN_NUMBER\":\"145\",\"GITHUB_TRIGGERING_ACTOR\":\"buger\",\"RUNNER_ARCH\":\"X64\",\"XDG_RUNTIME_DIR\":\"/run/user/1001\",\"AGENT_TOOLSDIRECTORY\":\"/opt/hostedtoolcache\",\"LANG\":\"C.UTF-8\",\"VCPKG_INSTALLATION_ROOT\":\"/usr/local/share/vcpkg\",\"CONDA\":\"/usr/share/miniconda\",\"RUNNER_NAME\":\"GitHub Actions 1000027218\",\"XDG_CONFIG_HOME\":\"/home/runner/.config\",\"GITHUB_REF_NAME\":\"v0.1.128\",\"GITHUB_REPOSITORY\":\"probelabs/visor\",\"npm_lifecycle_script\":\"node dist/index.js test --progress compact defaults/ && node dist/index.js test --progress compact tests/ && node dist/index.js test --progress compact examples/\",\"ANDROID_NDK_ROOT\":\"/usr/local/lib/android/sdk/ndk/27.3.13750724\",\"GITHUB_ACTION_REF\":\"\",\"DEBIAN_FRONTEND\":\"noninteractive\",\"SHELL\":\"/bin/bash\",\"GITHUB_REPOSITORY_ID\":\"1050672780\",\"GITHUB_ACTIONS\":\"true\",\"npm_package_version\":\"0.1.42\",\"npm_lifecycle_event\":\"test:yaml\",\"GITHUB_REF_PROTECTED\":\"false\",\"GITHUB_WORKSPACE\":\"/home/runner/work/visor/visor\",\"ACCEPT_EULA\":\"Y\",\"GITHUB_JOB\":\"release-npm\",\"npm_package_bin_visor\":\"dist/index.js\",\"GITHUB_SHA\":\"db07b6f9a3bf553f78291db432d26ffaabfe73a2\",\"GITHUB_RUN_ATTEMPT\":\"1\",\"GITHUB_REF\":\"refs/tags/v0.1.128\",\"GITHUB_ACTOR\":\"buger\",\"ANDROID_SDK_ROOT\":\"/usr/local/lib/android/sdk\",\"npm_config_globalconfig\":\"/opt/hostedtoolcache/node/24.13.0/x64/etc/npmrc\",\"npm_config_init_module\":\"/home/runner/.npm-init.js\",\"GITHUB_PATH\":\"/home/runner/work/_temp/_runner_file_commands/add_path_c9c51a1e-b429-4311-98c6-3dd5e64a11a2\",\"JAVA_HOME\":\"/usr/lib/jvm/temurin-17-jdk-amd64\",\"PWD\":\"/home/runner/work/visor/visor\",\"GITHUB_ACTOR_ID\":\"14009\",\"RUNNER_WORKSPACE\":\"/home/runner/work/visor\",\"npm_execpath\":\"/opt/hostedtoolcache/node/24.13.0/x64/lib/node_modules/npm/bin/npm-cli.js\",\"HOMEBREW_CLEANUP_PERIODIC_FULL_DAYS\":\"3650\",\"GITHUB_EVENT_NAME\":\"push\",\"HOMEBREW_NO_AUTO_UPDATE\":\"1\",\"ANDROID_HOME\":\"/usr/local/lib/android/sdk\",\"GITHUB_SERVER_URL\":\"https://github.com\",\"GECKOWEBDRIVER\":\"/usr/local/share/gecko_driver\",\"ACTIONS_ID_TOKEN_REQUEST_URL\":\"[REDACTED]\",\"GHCUP_INSTALL_BASE_PREFIX\":\"/usr/local\",\"GITHUB_OUTPUT\":\"/home/runner/work/_temp/_runner_file_commands/set_output_c9c51a1e-b429-4311-98c6-3dd5e64a11a2\",\"npm_config_global_prefix\":\"/opt/hostedtoolcache/node/24.13.0/x64\",\"EDGEWEBDRIVER\":\"/usr/local/share/edge_driver\",\"npm_command\":\"run\",\"ANDROID_NDK\":\"/usr/local/lib/android/sdk/ndk/27.3.13750724\",\"SGX_AESM_ADDR\":\"1\",\"PSModulePath\":\"/root/.local/share/powershell/Modules:/usr/local/share/powershell/Modules:/opt/microsoft/powershell/7/Modules:/usr/share/az_14.6.0\",\"CHROME_BIN\":\"/usr/bin/google-chrome\",\"SELENIUM_JAR_PATH\":\"/usr/share/java/selenium-server.jar\",\"MEMORY_PRESSURE_WRITE\":\"c29tZSAyMDAwMDAgMjAwMDAwMAA=\",\"ANDROID_NDK_HOME\":\"/usr/local/lib/android/sdk/ndk/27.3.13750724\",\"GITHUB_STEP_SUMMARY\":\"/home/runner/work/_temp/_runner_file_commands/step_summary_c9c51a1e-b429-4311-98c6-3dd5e64a11a2\",\"INIT_CWD\":\"/home/runner/work/visor/visor\",\"EDITOR\":\"vi\",\"VISOR_VERSION\":\"0.1.128\",\"PROBE_VERSION\":\"0.6.0-rc224\",\"VISOR_COMMIT_SHA\":\"db07b6f9a3bf553f78291db432d26ffaabfe73a2\",\"VISOR_COMMIT_SHORT\":\"db07b6f\",\"VISOR_FALLBACK_TRACE_FILE\":\"/home/runner/work/visor/visor/output/traces/run-2026-02-05T13-37-00-184Z.ndjson\",\"VISOR_OUTPUT_FORMAT\":\"table\",\"VISOR_DEBUG\":\"false\",\"VISOR_TEST_MODE\":\"true\",\"VISOR_TEST_PROMPT_MAX_CHARS\":\"4000\",\"VISOR_TEST_HISTORY_LIMIT\":\"200\",\"VISOR_STRICT_ERRORS\":\"true\",\"VISOR_WORKSPACE_ROOT\":\"/tmp/visor-workspaces/warm-horse-yhw3\",\"VISOR_WORKSPACE_MAIN_PROJECT\":\"/tmp/visor-workspaces/warm-horse-yhw3/visor\",\"VISOR_WORKSPACE_MAIN_PROJECT_NAME\":\"visor\",\"VISOR_ORIGINAL_WORKDIR\":\"/home/runner/work/visor/visor\"}}"},"events":[{"name":"check.started"},{"name":"check.completed"}]}
7
+ {"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-horse-yhw3"}}]}
8
+ {"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-horse-yhw3"}}]}
9
+ {"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-horse-yhw3"}}]}
10
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"Init","state_to":"PlanReady","engine_mode":"state-machine","wave":0,"session_id":"soft-duck-5tup"}}]}
11
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"PlanReady","state_to":"WavePlanning","engine_mode":"state-machine","wave":0,"session_id":"soft-duck-5tup"}}]}
12
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"LevelDispatch","engine_mode":"state-machine","wave":1,"session_id":"soft-duck-5tup"}}]}
13
+ {"name":"visor.provider","attributes":{"visor.check.id":"seed","visor.provider.type":"script"}}
14
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"LevelDispatch","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"soft-duck-5tup"}}]}
15
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"soft-duck-5tup"}}]}
16
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"LevelDispatch","engine_mode":"state-machine","wave":1,"session_id":"soft-duck-5tup"}}]}
17
+ {"name":"visor.provider","attributes":{"visor.check.id":"convo","visor.provider.type":"ai"}}
18
+ {"name":"visor.check","attributes":{"visor.check.id":"convo","visor.check.input.context":"{\"pr\":{\"number\":1,\"title\":\"feat: add user search\",\"author\":\"test-user\",\"branch\":\"feature/test\",\"base\":\"main\"},\"files\":[],\"outputs\":{\"seed\":{\"text\":\"hello from seed\",\"ts\":1770298620660}},\"args\":{}}"},"events":[]}
19
+ {"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-deer-qdwv"}}]}
20
+ {"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-deer-qdwv"}}]}
21
+ {"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-deer-qdwv"}}]}
22
+ {"name":"visor.provider","attributes":{"visor.check.id":"ask","visor.provider.type":"human-input"}}
23
+ {"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-deer-qdwv"}}]}
24
+ {"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-deer-qdwv"}}]}
25
+ {"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-deer-qdwv"}}]}
26
+ {"name":"visor.provider","attributes":{"visor.check.id":"route-intent","visor.provider.type":"ai"}}
27
+ {"name":"visor.check","attributes":{"visor.check.id":"route-intent","visor.check.input.context":"{\"pr\":{\"number\":1,\"title\":\"feat: add user search\",\"author\":\"test-user\",\"branch\":\"feature/test\",\"base\":\"main\"},\"files\":[],\"outputs\":{\"ask\":{\"text\":\"Hello 1\",\"ts\":1770298620673}},\"args\":{}}"},"events":[]}
28
+ {"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-deer-qdwv"}}]}
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-deer-qdwv"}}]}
30
+ {"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-deer-qdwv"}}]}
31
+ {"name":"visor.provider","attributes":{"visor.check.id":"chat-answer","visor.provider.type":"ai"}}
32
+ {"name":"visor.check","attributes":{"visor.check.id":"chat-answer","visor.check.input.context":"{\"pr\":{\"number\":1,\"title\":\"feat: add user search\",\"author\":\"test-user\",\"branch\":\"feature/test\",\"base\":\"main\"},\"files\":[],\"outputs\":{\"route-intent\":{\"intent\":\"chat\",\"ts\":1770298620690},\"ask\":{\"text\":\"Hello 1\",\"ts\":1770298620673}},\"args\":{}}"},"events":[]}
33
+ {"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-deer-qdwv"}}]}
34
+ {"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-deer-qdwv"}}]}
35
+ {"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-deer-qdwv"}}]}
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":"glad-duck-b5xv"}}]}
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":"glad-duck-b5xv"}}]}
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":"glad-duck-b5xv"}}]}
39
+ {"name":"visor.provider","attributes":{"visor.check.id":"workflow-preprocessing","visor.provider.type":"command"}}
40
+ {"name":"visor.check","attributes":{"visor.check.id":"workflow-preprocessing","visor.check.input.context":"{\"pr\":{\"number\":1,\"title\":\"feat: add user search\",\"author\":\"test-user\",\"branch\":\"feature/test\",\"base\":\"main\"},\"files\":[{\"filename\":\"src/search.ts\",\"additions\":3,\"deletions\":0,\"changes\":3,\"status\":\"added\",\"patch\":\"@@\\n+export function search(q: string) {\\n return []\\n}\\n\"}],\"fileCount\":1,\"outputs\":{\"history\":{}},\"outputs_history\":{},\"outputs_history_stage\":{},\"outputs_raw\":{},\"inputs\":{},\"args\":{},\"env\":{\"GITHUB_STATE\":\"/home/runner/work/_temp/_runner_file_commands/save_state_c9c51a1e-b429-4311-98c6-3dd5e64a11a2\",\"DOTNET_NOLOGO\":\"1\",\"USER\":\"runner\",\"npm_config_always_auth\":\"[REDACTED]\",\"npm_config_user_agent\":\"npm/11.6.2 node/v24.13.0 linux x64 workspaces/false ci/github-actions\",\"CI\":\"true\",\"RUNNER_ENVIRONMENT\":\"github-hosted\",\"GITHUB_ENV\":\"/home/runner/work/_temp/_runner_file_commands/set_env_c9c51a1e-b429-4311-98c6-3dd5e64a11a2\",\"PIPX_HOME\":\"/opt/pipx\",\"npm_node_execpath\":\"/opt/hostedtoolcache/node/24.13.0/x64/bin/node\",\"JAVA_HOME_8_X64\":\"/usr/lib/jvm/temurin-8-jdk-amd64\",\"SHLVL\":\"1\",\"npm_config_noproxy\":\"\",\"HOME\":\"/home/runner\",\"RUNNER_TEMP\":\"/home/runner/work/_temp\",\"GITHUB_EVENT_PATH\":\"/home/runner/work/_temp/_github_workflow/event.json\",\"npm_package_json\":\"/home/runner/work/visor/visor/package.json\",\"JAVA_HOME_11_X64\":\"/usr/lib/jvm/temurin-11-jdk-amd64\",\"PIPX_BIN_DIR\":\"/opt/pipx_bin\",\"GITHUB_REPOSITORY_OWNER\":\"probelabs\",\"NODE_OPTIONS\":\"--max-old-space-size=6144\",\"GRADLE_HOME\":\"/usr/share/gradle-9.3.0\",\"ANDROID_NDK_LATEST_HOME\":\"/usr/local/lib/android/sdk/ndk/29.0.14206865\",\"JAVA_HOME_21_X64\":\"/usr/lib/jvm/temurin-21-jdk-amd64\",\"GITHUB_RETENTION_DAYS\":\"90\",\"GITHUB_REPOSITORY_OWNER_ID\":\"226675185\",\"POWERSHELL_DISTRIBUTION_CHANNEL\":\"GitHub-Actions-ubuntu24\",\"AZURE_EXTENSION_DIR\":\"/opt/az/azcliextensions\",\"GITHUB_HEAD_REF\":\"\",\"npm_config_local_prefix\":\"/home/runner/work/visor/visor\",\"SYSTEMD_EXEC_PID\":\"2034\",\"ACTIONS_ORCHESTRATION_ID\":\"3605b281-5d31-482f-b138-1e51bdb5fde2.release-npm.__default\",\"GITHUB_GRAPHQL_URL\":\"https://api.github.com/graphql\",\"COLOR\":\"0\",\"JAVA_HOME_25_X64\":\"/usr/lib/jvm/temurin-25-jdk-amd64\",\"NVM_DIR\":\"/home/runner/.nvm\",\"DOTNET_SKIP_FIRST_TIME_EXPERIENCE\":\"1\",\"JAVA_HOME_17_X64\":\"/usr/lib/jvm/temurin-17-jdk-amd64\",\"ImageVersion\":\"20260126.10.1\",\"LOGNAME\":\"runner\",\"RUNNER_OS\":\"Linux\",\"GITHUB_API_URL\":\"https://api.github.com\",\"GOROOT_1_22_X64\":\"/opt/hostedtoolcache/go/1.22.12/x64\",\"SWIFT_PATH\":\"/usr/share/swift/usr/bin\",\"CHROMEWEBDRIVER\":\"/usr/local/share/chromedriver-linux64\",\"GOROOT_1_23_X64\":\"/opt/hostedtoolcache/go/1.23.12/x64\",\"JOURNAL_STREAM\":\"9:14556\",\"GITHUB_WORKFLOW\":\"Release\",\"_\":\"/opt/hostedtoolcache/node/24.13.0/x64/bin/npm\",\"npm_config_prefix\":\"/opt/hostedtoolcache/node/24.13.0/x64\",\"npm_config_npm_version\":\"11.6.2\",\"MEMORY_PRESSURE_WATCH\":\"/sys/fs/cgroup/system.slice/hosted-compute-agent.service/memory.pressure\",\"GOROOT_1_24_X64\":\"/opt/hostedtoolcache/go/1.24.12/x64\",\"ACTIONS_RUNNER_ACTION_ARCHIVE_CACHE\":\"/opt/actionarchivecache\",\"GOROOT_1_25_X64\":\"/opt/hostedtoolcache/go/1.25.6/x64\",\"GITHUB_RUN_ID\":\"21713448139\",\"npm_config_cache\":\"/home/runner/.npm\",\"GITHUB_REF_TYPE\":\"tag\",\"BOOTSTRAP_HASKELL_NONINTERACTIVE\":\"1\",\"GITHUB_WORKFLOW_SHA\":\"db07b6f9a3bf553f78291db432d26ffaabfe73a2\",\"GITHUB_BASE_REF\":\"\",\"ImageOS\":\"ubuntu24\",\"GITHUB_WORKFLOW_REF\":\"probelabs/visor/.github/workflows/release.yml@refs/tags/v0.1.128\",\"GITHUB_ACTION_REPOSITORY\":\"\",\"ENABLE_RUNNER_TRACING\":\"true\",\"npm_config_node_gyp\":\"/opt/hostedtoolcache/node/24.13.0/x64/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js\",\"PATH\":\"/home/runner/work/visor/visor/node_modules/.bin:/home/runner/work/visor/node_modules/.bin:/home/runner/work/node_modules/.bin:/home/runner/node_modules/.bin:/home/node_modules/.bin:/node_modules/.bin:/opt/hostedtoolcache/node/24.13.0/x64/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin:/home/runner/work/visor/visor/node_modules/.bin:/home/runner/work/visor/node_modules/.bin:/home/runner/work/node_modules/.bin:/home/runner/node_modules/.bin:/home/node_modules/.bin:/node_modules/.bin:/opt/hostedtoolcache/node/24.13.0/x64/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin:/opt/hostedtoolcache/node/24.13.0/x64/bin:/snap/bin:/home/runner/.local/bin:/opt/pipx_bin:/home/runner/.cargo/bin:/home/runner/.config/composer/vendor/bin:/usr/local/.ghcup/bin:/home/runner/.dotnet/tools:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin\",\"ANT_HOME\":\"/usr/share/ant\",\"DOTNET_MULTILEVEL_LOOKUP\":\"0\",\"RUNNER_TRACKING_ID\":\"github_be790921-1607-4670-9968-c7f9f22fa336\",\"INVOCATION_ID\":\"7e6e43fd6d694270b22c561a1fa4ac0d\",\"NPM_CONFIG_USERCONFIG\":\"/home/runner/work/_temp/.npmrc\",\"RUNNER_TOOL_CACHE\":\"/opt/hostedtoolcache\",\"NODE\":\"/opt/hostedtoolcache/node/24.13.0/x64/bin/node\",\"npm_package_name\":\"@probelabs/visor\",\"GITHUB_ACTION\":\"__run_2\",\"GITHUB_RUN_NUMBER\":\"145\",\"GITHUB_TRIGGERING_ACTOR\":\"buger\",\"RUNNER_ARCH\":\"X64\",\"XDG_RUNTIME_DIR\":\"/run/user/1001\",\"AGENT_TOOLSDIRECTORY\":\"/opt/hostedtoolcache\",\"LANG\":\"C.UTF-8\",\"VCPKG_INSTALLATION_ROOT\":\"/usr/local/share/vcpkg\",\"CONDA\":\"/usr/share/miniconda\",\"RUNNER_NAME\":\"GitHub Actions 1000027218\",\"XDG_CONFIG_HOME\":\"/home/runner/.config\",\"GITHUB_REF_NAME\":\"v0.1.128\",\"GITHUB_REPOSITORY\":\"probelabs/visor\",\"npm_lifecycle_script\":\"node dist/index.js test --progress compact defaults/ && node dist/index.js test --progress compact tests/ && node dist/index.js test --progress compact examples/\",\"ANDROID_NDK_ROOT\":\"/usr/local/lib/android/sdk/ndk/27.3.13750724\",\"GITHUB_ACTION_REF\":\"\",\"DEBIAN_FRONTEND\":\"noninteractive\",\"SHELL\":\"/bin/bash\",\"GITHUB_REPOSITORY_ID\":\"1050672780\",\"GITHUB_ACTIONS\":\"true\",\"npm_package_version\":\"0.1.42\",\"npm_lifecycle_event\":\"test:yaml\",\"GITHUB_REF_PROTECTED\":\"false\",\"GITHUB_WORKSPACE\":\"/home/runner/work/visor/visor\",\"ACCEPT_EULA\":\"Y\",\"GITHUB_JOB\":\"release-npm\",\"npm_package_bin_visor\":\"dist/index.js\",\"GITHUB_SHA\":\"db07b6f9a3bf553f78291db432d26ffaabfe73a2\",\"GITHUB_RUN_ATTEMPT\":\"1\",\"GITHUB_REF\":\"refs/tags/v0.1.128\",\"GITHUB_ACTOR\":\"buger\",\"ANDROID_SDK_ROOT\":\"/usr/local/lib/android/sdk\",\"npm_config_globalconfig\":\"/opt/hostedtoolcache/node/24.13.0/x64/etc/npmrc\",\"npm_config_init_module\":\"/home/runner/.npm-init.js\",\"GITHUB_PATH\":\"/home/runner/work/_temp/_runner_file_commands/add_path_c9c51a1e-b429-4311-98c6-3dd5e64a11a2\",\"JAVA_HOME\":\"/usr/lib/jvm/temurin-17-jdk-amd64\",\"PWD\":\"/home/runner/work/visor/visor\",\"GITHUB_ACTOR_ID\":\"14009\",\"RUNNER_WORKSPACE\":\"/home/runner/work/visor\",\"npm_execpath\":\"/opt/hostedtoolcache/node/24.13.0/x64/lib/node_modules/npm/bin/npm-cli.js\",\"HOMEBREW_CLEANUP_PERIODIC_FULL_DAYS\":\"3650\",\"GITHUB_EVENT_NAME\":\"push\",\"HOMEBREW_NO_AUTO_UPDATE\":\"1\",\"ANDROID_HOME\":\"/usr/local/lib/android/sdk\",\"GITHUB_SERVER_URL\":\"https://github.com\",\"GECKOWEBDRIVER\":\"/usr/local/share/gecko_driver\",\"ACTIONS_ID_TOKEN_REQUEST_URL\":\"[REDACTED]\",\"GHCUP_INSTALL_BASE_PREFIX\":\"/usr/local\",\"GITHUB_OUTPUT\":\"/home/runner/work/_temp/_runner_file_commands/set_output_c9c51a1e-b429-4311-98c6-3dd5e64a11a2\",\"npm_config_global_prefix\":\"/opt/hostedtoolcache/node/24.13.0/x64\",\"EDGEWEBDRIVER\":\"/usr/local/share/edge_driver\",\"npm_command\":\"run\",\"ANDROID_NDK\":\"/usr/local/lib/android/sdk/ndk/27.3.13750724\",\"SGX_AESM_ADDR\":\"1\",\"PSModulePath\":\"/root/.local/share/powershell/Modules:/usr/local/share/powershell/Modules:/opt/microsoft/powershell/7/Modules:/usr/share/az_14.6.0\",\"CHROME_BIN\":\"/usr/bin/google-chrome\",\"SELENIUM_JAR_PATH\":\"/usr/share/java/selenium-server.jar\",\"MEMORY_PRESSURE_WRITE\":\"c29tZSAyMDAwMDAgMjAwMDAwMAA=\",\"ANDROID_NDK_HOME\":\"/usr/local/lib/android/sdk/ndk/27.3.13750724\",\"GITHUB_STEP_SUMMARY\":\"/home/runner/work/_temp/_runner_file_commands/step_summary_c9c51a1e-b429-4311-98c6-3dd5e64a11a2\",\"INIT_CWD\":\"/home/runner/work/visor/visor\",\"EDITOR\":\"vi\",\"VISOR_VERSION\":\"0.1.128\",\"PROBE_VERSION\":\"0.6.0-rc224\",\"VISOR_COMMIT_SHA\":\"db07b6f9a3bf553f78291db432d26ffaabfe73a2\",\"VISOR_COMMIT_SHORT\":\"db07b6f\",\"VISOR_FALLBACK_TRACE_FILE\":\"/home/runner/work/visor/visor/output/traces/run-2026-02-05T13-37-00-184Z.ndjson\",\"VISOR_OUTPUT_FORMAT\":\"table\",\"VISOR_DEBUG\":\"false\",\"VISOR_TEST_MODE\":\"true\",\"VISOR_TEST_PROMPT_MAX_CHARS\":\"4000\",\"VISOR_TEST_HISTORY_LIMIT\":\"200\",\"VISOR_WORKSPACE_ROOT\":\"/tmp/visor-workspaces/glad-duck-b5xv\",\"VISOR_WORKSPACE_MAIN_PROJECT\":\"/tmp/visor-workspaces/glad-duck-b5xv/visor\",\"VISOR_WORKSPACE_MAIN_PROJECT_NAME\":\"visor\",\"VISOR_ORIGINAL_WORKDIR\":\"/home/runner/work/visor/visor\",\"VISOR_STRICT_ERRORS\":\"true\"}}"},"events":[{"name":"check.started"},{"name":"check.completed"}]}
41
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"LevelDispatch","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"glad-duck-b5xv"}}]}
42
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"glad-duck-b5xv"}}]}
43
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"Completed","engine_mode":"state-machine","wave":1,"session_id":"glad-duck-b5xv"}}]}
44
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"Init","state_to":"PlanReady","engine_mode":"state-machine","wave":0,"session_id":"crisp-bird-6vbx"}}]}
45
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"PlanReady","state_to":"WavePlanning","engine_mode":"state-machine","wave":0,"session_id":"crisp-bird-6vbx"}}]}
46
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"LevelDispatch","engine_mode":"state-machine","wave":1,"session_id":"crisp-bird-6vbx"}}]}
47
+ {"name":"visor.provider","attributes":{"visor.check.id":"ask","visor.provider.type":"human-input"}}
48
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"LevelDispatch","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"crisp-bird-6vbx"}}]}
49
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"crisp-bird-6vbx"}}]}
50
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"LevelDispatch","engine_mode":"state-machine","wave":1,"session_id":"crisp-bird-6vbx"}}]}
51
+ {"name":"visor.provider","attributes":{"visor.check.id":"route-intent","visor.provider.type":"ai"}}
52
+ {"name":"visor.check","attributes":{"visor.check.id":"route-intent","visor.check.input.context":"{\"pr\":{\"number\":1,\"title\":\"feat: add user search\",\"author\":\"test-user\",\"branch\":\"feature/test\",\"base\":\"main\"},\"files\":[],\"outputs\":{\"ask\":{\"text\":\"What can you do?\",\"ts\":1770298620969}},\"args\":{}}"},"events":[]}
53
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"LevelDispatch","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"crisp-bird-6vbx"}}]}
54
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"crisp-bird-6vbx"}}]}
55
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"LevelDispatch","engine_mode":"state-machine","wave":1,"session_id":"crisp-bird-6vbx"}}]}
56
+ {"name":"visor.provider","attributes":{"visor.check.id":"capabilities-answer","visor.provider.type":"ai"}}
57
+ {"name":"visor.check","attributes":{"visor.check.id":"capabilities-answer","visor.check.input.context":"{\"pr\":{\"number\":1,\"title\":\"feat: add user search\",\"author\":\"test-user\",\"branch\":\"feature/test\",\"base\":\"main\"},\"files\":[],\"outputs\":{\"route-intent\":{\"intent\":\"capabilities\",\"ts\":1770298620984},\"ask\":{\"text\":\"What can you do?\",\"ts\":1770298620969}},\"args\":{}}"},"events":[]}
58
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"LevelDispatch","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"crisp-bird-6vbx"}}]}
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":"crisp-bird-6vbx"}}]}
60
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"Completed","engine_mode":"state-machine","wave":1,"session_id":"crisp-bird-6vbx"}}]}
61
+ {"name":"visor.check","attributes":{"visor.check.id":"convo","visor.check.output":"{\"text\":\"{\\\"content\\\":\\\"{\\\\\\\"issues\\\\\\\":[],\\\\\\\"summary\\\\\\\":{\\\\\\\"totalIssues\\\\\\\":0}}\\\"}\"}"},"events":[]}
62
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"LevelDispatch","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"soft-duck-5tup"}}]}
63
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"soft-duck-5tup"}}]}
64
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"Completed","engine_mode":"state-machine","wave":1,"session_id":"soft-duck-5tup"}}]}
65
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"Init","state_to":"PlanReady","engine_mode":"state-machine","wave":0,"session_id":"sleek-sloth-dvtc"}}]}
66
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"PlanReady","state_to":"WavePlanning","engine_mode":"state-machine","wave":0,"session_id":"sleek-sloth-dvtc"}}]}
67
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"LevelDispatch","engine_mode":"state-machine","wave":1,"session_id":"sleek-sloth-dvtc"}}]}
68
+ {"name":"visor.provider","attributes":{"visor.check.id":"chain-tools-and-workflows","visor.provider.type":"command"}}
69
+ {"name":"visor.check","attributes":{"visor.check.id":"chain-tools-and-workflows","visor.check.input.context":"{\"pr\":{\"number\":1,\"title\":\"feat: add user search\",\"author\":\"test-user\",\"branch\":\"feature/test\",\"base\":\"main\"},\"files\":[{\"filename\":\"src/search.ts\",\"additions\":3,\"deletions\":0,\"changes\":3,\"status\":\"added\",\"patch\":\"@@\\n+export function search(q: string) {\\n return []\\n}\\n\"}],\"fileCount\":1,\"outputs\":{\"history\":{}},\"outputs_history\":{},\"outputs_history_stage\":{},\"outputs_raw\":{},\"inputs\":{},\"args\":{},\"env\":{\"GITHUB_STATE\":\"/home/runner/work/_temp/_runner_file_commands/save_state_c9c51a1e-b429-4311-98c6-3dd5e64a11a2\",\"DOTNET_NOLOGO\":\"1\",\"USER\":\"runner\",\"npm_config_always_auth\":\"[REDACTED]\",\"npm_config_user_agent\":\"npm/11.6.2 node/v24.13.0 linux x64 workspaces/false ci/github-actions\",\"CI\":\"true\",\"RUNNER_ENVIRONMENT\":\"github-hosted\",\"GITHUB_ENV\":\"/home/runner/work/_temp/_runner_file_commands/set_env_c9c51a1e-b429-4311-98c6-3dd5e64a11a2\",\"PIPX_HOME\":\"/opt/pipx\",\"npm_node_execpath\":\"/opt/hostedtoolcache/node/24.13.0/x64/bin/node\",\"JAVA_HOME_8_X64\":\"/usr/lib/jvm/temurin-8-jdk-amd64\",\"SHLVL\":\"1\",\"npm_config_noproxy\":\"\",\"HOME\":\"/home/runner\",\"RUNNER_TEMP\":\"/home/runner/work/_temp\",\"GITHUB_EVENT_PATH\":\"/home/runner/work/_temp/_github_workflow/event.json\",\"npm_package_json\":\"/home/runner/work/visor/visor/package.json\",\"JAVA_HOME_11_X64\":\"/usr/lib/jvm/temurin-11-jdk-amd64\",\"PIPX_BIN_DIR\":\"/opt/pipx_bin\",\"GITHUB_REPOSITORY_OWNER\":\"probelabs\",\"NODE_OPTIONS\":\"--max-old-space-size=6144\",\"GRADLE_HOME\":\"/usr/share/gradle-9.3.0\",\"ANDROID_NDK_LATEST_HOME\":\"/usr/local/lib/android/sdk/ndk/29.0.14206865\",\"JAVA_HOME_21_X64\":\"/usr/lib/jvm/temurin-21-jdk-amd64\",\"GITHUB_RETENTION_DAYS\":\"90\",\"GITHUB_REPOSITORY_OWNER_ID\":\"226675185\",\"POWERSHELL_DISTRIBUTION_CHANNEL\":\"GitHub-Actions-ubuntu24\",\"AZURE_EXTENSION_DIR\":\"/opt/az/azcliextensions\",\"GITHUB_HEAD_REF\":\"\",\"npm_config_local_prefix\":\"/home/runner/work/visor/visor\",\"SYSTEMD_EXEC_PID\":\"2034\",\"ACTIONS_ORCHESTRATION_ID\":\"3605b281-5d31-482f-b138-1e51bdb5fde2.release-npm.__default\",\"GITHUB_GRAPHQL_URL\":\"https://api.github.com/graphql\",\"COLOR\":\"0\",\"JAVA_HOME_25_X64\":\"/usr/lib/jvm/temurin-25-jdk-amd64\",\"NVM_DIR\":\"/home/runner/.nvm\",\"DOTNET_SKIP_FIRST_TIME_EXPERIENCE\":\"1\",\"JAVA_HOME_17_X64\":\"/usr/lib/jvm/temurin-17-jdk-amd64\",\"ImageVersion\":\"20260126.10.1\",\"LOGNAME\":\"runner\",\"RUNNER_OS\":\"Linux\",\"GITHUB_API_URL\":\"https://api.github.com\",\"GOROOT_1_22_X64\":\"/opt/hostedtoolcache/go/1.22.12/x64\",\"SWIFT_PATH\":\"/usr/share/swift/usr/bin\",\"CHROMEWEBDRIVER\":\"/usr/local/share/chromedriver-linux64\",\"GOROOT_1_23_X64\":\"/opt/hostedtoolcache/go/1.23.12/x64\",\"JOURNAL_STREAM\":\"9:14556\",\"GITHUB_WORKFLOW\":\"Release\",\"_\":\"/opt/hostedtoolcache/node/24.13.0/x64/bin/npm\",\"npm_config_prefix\":\"/opt/hostedtoolcache/node/24.13.0/x64\",\"npm_config_npm_version\":\"11.6.2\",\"MEMORY_PRESSURE_WATCH\":\"/sys/fs/cgroup/system.slice/hosted-compute-agent.service/memory.pressure\",\"GOROOT_1_24_X64\":\"/opt/hostedtoolcache/go/1.24.12/x64\",\"ACTIONS_RUNNER_ACTION_ARCHIVE_CACHE\":\"/opt/actionarchivecache\",\"GOROOT_1_25_X64\":\"/opt/hostedtoolcache/go/1.25.6/x64\",\"GITHUB_RUN_ID\":\"21713448139\",\"npm_config_cache\":\"/home/runner/.npm\",\"GITHUB_REF_TYPE\":\"tag\",\"BOOTSTRAP_HASKELL_NONINTERACTIVE\":\"1\",\"GITHUB_WORKFLOW_SHA\":\"db07b6f9a3bf553f78291db432d26ffaabfe73a2\",\"GITHUB_BASE_REF\":\"\",\"ImageOS\":\"ubuntu24\",\"GITHUB_WORKFLOW_REF\":\"probelabs/visor/.github/workflows/release.yml@refs/tags/v0.1.128\",\"GITHUB_ACTION_REPOSITORY\":\"\",\"ENABLE_RUNNER_TRACING\":\"true\",\"npm_config_node_gyp\":\"/opt/hostedtoolcache/node/24.13.0/x64/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js\",\"PATH\":\"/home/runner/work/visor/visor/node_modules/.bin:/home/runner/work/visor/node_modules/.bin:/home/runner/work/node_modules/.bin:/home/runner/node_modules/.bin:/home/node_modules/.bin:/node_modules/.bin:/opt/hostedtoolcache/node/24.13.0/x64/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin:/home/runner/work/visor/visor/node_modules/.bin:/home/runner/work/visor/node_modules/.bin:/home/runner/work/node_modules/.bin:/home/runner/node_modules/.bin:/home/node_modules/.bin:/node_modules/.bin:/opt/hostedtoolcache/node/24.13.0/x64/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin:/opt/hostedtoolcache/node/24.13.0/x64/bin:/snap/bin:/home/runner/.local/bin:/opt/pipx_bin:/home/runner/.cargo/bin:/home/runner/.config/composer/vendor/bin:/usr/local/.ghcup/bin:/home/runner/.dotnet/tools:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin\",\"ANT_HOME\":\"/usr/share/ant\",\"DOTNET_MULTILEVEL_LOOKUP\":\"0\",\"RUNNER_TRACKING_ID\":\"github_be790921-1607-4670-9968-c7f9f22fa336\",\"INVOCATION_ID\":\"7e6e43fd6d694270b22c561a1fa4ac0d\",\"NPM_CONFIG_USERCONFIG\":\"/home/runner/work/_temp/.npmrc\",\"RUNNER_TOOL_CACHE\":\"/opt/hostedtoolcache\",\"NODE\":\"/opt/hostedtoolcache/node/24.13.0/x64/bin/node\",\"npm_package_name\":\"@probelabs/visor\",\"GITHUB_ACTION\":\"__run_2\",\"GITHUB_RUN_NUMBER\":\"145\",\"GITHUB_TRIGGERING_ACTOR\":\"buger\",\"RUNNER_ARCH\":\"X64\",\"XDG_RUNTIME_DIR\":\"/run/user/1001\",\"AGENT_TOOLSDIRECTORY\":\"/opt/hostedtoolcache\",\"LANG\":\"C.UTF-8\",\"VCPKG_INSTALLATION_ROOT\":\"/usr/local/share/vcpkg\",\"CONDA\":\"/usr/share/miniconda\",\"RUNNER_NAME\":\"GitHub Actions 1000027218\",\"XDG_CONFIG_HOME\":\"/home/runner/.config\",\"GITHUB_REF_NAME\":\"v0.1.128\",\"GITHUB_REPOSITORY\":\"probelabs/visor\",\"npm_lifecycle_script\":\"node dist/index.js test --progress compact defaults/ && node dist/index.js test --progress compact tests/ && node dist/index.js test --progress compact examples/\",\"ANDROID_NDK_ROOT\":\"/usr/local/lib/android/sdk/ndk/27.3.13750724\",\"GITHUB_ACTION_REF\":\"\",\"DEBIAN_FRONTEND\":\"noninteractive\",\"SHELL\":\"/bin/bash\",\"GITHUB_REPOSITORY_ID\":\"1050672780\",\"GITHUB_ACTIONS\":\"true\",\"npm_package_version\":\"0.1.42\",\"npm_lifecycle_event\":\"test:yaml\",\"GITHUB_REF_PROTECTED\":\"false\",\"GITHUB_WORKSPACE\":\"/home/runner/work/visor/visor\",\"ACCEPT_EULA\":\"Y\",\"GITHUB_JOB\":\"release-npm\",\"npm_package_bin_visor\":\"dist/index.js\",\"GITHUB_SHA\":\"db07b6f9a3bf553f78291db432d26ffaabfe73a2\",\"GITHUB_RUN_ATTEMPT\":\"1\",\"GITHUB_REF\":\"refs/tags/v0.1.128\",\"GITHUB_ACTOR\":\"buger\",\"ANDROID_SDK_ROOT\":\"/usr/local/lib/android/sdk\",\"npm_config_globalconfig\":\"/opt/hostedtoolcache/node/24.13.0/x64/etc/npmrc\",\"npm_config_init_module\":\"/home/runner/.npm-init.js\",\"GITHUB_PATH\":\"/home/runner/work/_temp/_runner_file_commands/add_path_c9c51a1e-b429-4311-98c6-3dd5e64a11a2\",\"JAVA_HOME\":\"/usr/lib/jvm/temurin-17-jdk-amd64\",\"PWD\":\"/home/runner/work/visor/visor\",\"GITHUB_ACTOR_ID\":\"14009\",\"RUNNER_WORKSPACE\":\"/home/runner/work/visor\",\"npm_execpath\":\"/opt/hostedtoolcache/node/24.13.0/x64/lib/node_modules/npm/bin/npm-cli.js\",\"HOMEBREW_CLEANUP_PERIODIC_FULL_DAYS\":\"3650\",\"GITHUB_EVENT_NAME\":\"push\",\"HOMEBREW_NO_AUTO_UPDATE\":\"1\",\"ANDROID_HOME\":\"/usr/local/lib/android/sdk\",\"GITHUB_SERVER_URL\":\"https://github.com\",\"GECKOWEBDRIVER\":\"/usr/local/share/gecko_driver\",\"ACTIONS_ID_TOKEN_REQUEST_URL\":\"[REDACTED]\",\"GHCUP_INSTALL_BASE_PREFIX\":\"/usr/local\",\"GITHUB_OUTPUT\":\"/home/runner/work/_temp/_runner_file_commands/set_output_c9c51a1e-b429-4311-98c6-3dd5e64a11a2\",\"npm_config_global_prefix\":\"/opt/hostedtoolcache/node/24.13.0/x64\",\"EDGEWEBDRIVER\":\"/usr/local/share/edge_driver\",\"npm_command\":\"run\",\"ANDROID_NDK\":\"/usr/local/lib/android/sdk/ndk/27.3.13750724\",\"SGX_AESM_ADDR\":\"1\",\"PSModulePath\":\"/root/.local/share/powershell/Modules:/usr/local/share/powershell/Modules:/opt/microsoft/powershell/7/Modules:/usr/share/az_14.6.0\",\"CHROME_BIN\":\"/usr/bin/google-chrome\",\"SELENIUM_JAR_PATH\":\"/usr/share/java/selenium-server.jar\",\"MEMORY_PRESSURE_WRITE\":\"c29tZSAyMDAwMDAgMjAwMDAwMAA=\",\"ANDROID_NDK_HOME\":\"/usr/local/lib/android/sdk/ndk/27.3.13750724\",\"GITHUB_STEP_SUMMARY\":\"/home/runner/work/_temp/_runner_file_commands/step_summary_c9c51a1e-b429-4311-98c6-3dd5e64a11a2\",\"INIT_CWD\":\"/home/runner/work/visor/visor\",\"EDITOR\":\"vi\",\"VISOR_VERSION\":\"0.1.128\",\"PROBE_VERSION\":\"0.6.0-rc224\",\"VISOR_COMMIT_SHA\":\"db07b6f9a3bf553f78291db432d26ffaabfe73a2\",\"VISOR_COMMIT_SHORT\":\"db07b6f\",\"VISOR_FALLBACK_TRACE_FILE\":\"/home/runner/work/visor/visor/output/traces/run-2026-02-05T13-37-00-184Z.ndjson\",\"VISOR_OUTPUT_FORMAT\":\"table\",\"VISOR_DEBUG\":\"false\",\"VISOR_TEST_MODE\":\"true\",\"VISOR_TEST_PROMPT_MAX_CHARS\":\"4000\",\"VISOR_TEST_HISTORY_LIMIT\":\"200\",\"VISOR_WORKSPACE_ROOT\":\"/tmp/visor-workspaces/sleek-sloth-dvtc\",\"VISOR_WORKSPACE_MAIN_PROJECT\":\"/tmp/visor-workspaces/sleek-sloth-dvtc/visor\",\"VISOR_WORKSPACE_MAIN_PROJECT_NAME\":\"visor\",\"VISOR_ORIGINAL_WORKDIR\":\"/home/runner/work/visor/visor\",\"VISOR_STRICT_ERRORS\":\"true\"}}"},"events":[{"name":"check.started"},{"name":"check.completed"}]}
70
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"LevelDispatch","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"sleek-sloth-dvtc"}}]}
71
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"sleek-sloth-dvtc"}}]}
72
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"Completed","engine_mode":"state-machine","wave":1,"session_id":"sleek-sloth-dvtc"}}]}
73
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"Init","state_to":"PlanReady","engine_mode":"state-machine","wave":0,"session_id":"cool-bull-k825"}}]}
74
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"PlanReady","state_to":"WavePlanning","engine_mode":"state-machine","wave":0,"session_id":"cool-bull-k825"}}]}
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":"cool-bull-k825"}}]}
76
+ {"name":"visor.provider","attributes":{"visor.check.id":"ask","visor.provider.type":"human-input"}}
77
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"LevelDispatch","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"cool-bull-k825"}}]}
78
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"cool-bull-k825"}}]}
79
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"LevelDispatch","engine_mode":"state-machine","wave":1,"session_id":"cool-bull-k825"}}]}
80
+ {"name":"visor.provider","attributes":{"visor.check.id":"route-intent","visor.provider.type":"ai"}}
81
+ {"name":"visor.check","attributes":{"visor.check.id":"route-intent","visor.check.input.context":"{\"pr\":{\"number\":1,\"title\":\"feat: add user search\",\"author\":\"test-user\",\"branch\":\"feature/test\",\"base\":\"main\"},\"files\":[],\"outputs\":{\"ask\":{\"text\":\"Summarize the discussion\",\"ts\":1770298621259}},\"args\":{}}"},"events":[]}
82
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"LevelDispatch","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"cool-bull-k825"}}]}
83
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"cool-bull-k825"}}]}
84
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"LevelDispatch","engine_mode":"state-machine","wave":1,"session_id":"cool-bull-k825"}}]}
85
+ {"name":"visor.provider","attributes":{"visor.check.id":"summarize-thread","visor.provider.type":"ai"}}
86
+ {"name":"visor.check","attributes":{"visor.check.id":"summarize-thread","visor.check.input.context":"{\"pr\":{\"number\":1,\"title\":\"feat: add user search\",\"author\":\"test-user\",\"branch\":\"feature/test\",\"base\":\"main\"},\"files\":[],\"outputs\":{\"route-intent\":{\"intent\":\"thread_summary\",\"ts\":1770298621271},\"ask\":{\"text\":\"Summarize the discussion\",\"ts\":1770298621259}},\"args\":{}}"},"events":[]}
87
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"LevelDispatch","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"cool-bull-k825"}}]}
88
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"cool-bull-k825"}}]}
89
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"Completed","engine_mode":"state-machine","wave":1,"session_id":"cool-bull-k825"}}]}
90
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"Init","state_to":"PlanReady","engine_mode":"state-machine","wave":0,"session_id":"swift-yak-japt"}}]}
91
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"PlanReady","state_to":"WavePlanning","engine_mode":"state-machine","wave":0,"session_id":"swift-yak-japt"}}]}
92
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"LevelDispatch","engine_mode":"state-machine","wave":1,"session_id":"swift-yak-japt"}}]}
93
+ {"name":"visor.provider","attributes":{"visor.check.id":"repeated-tool-usage","visor.provider.type":"command"}}
94
+ {"name":"visor.check","attributes":{"visor.check.id":"repeated-tool-usage","visor.check.input.context":"{\"pr\":{\"number\":1,\"title\":\"feat: add user search\",\"author\":\"test-user\",\"branch\":\"feature/test\",\"base\":\"main\"},\"files\":[{\"filename\":\"src/search.ts\",\"additions\":3,\"deletions\":0,\"changes\":3,\"status\":\"added\",\"patch\":\"@@\\n+export function search(q: string) {\\n return []\\n}\\n\"}],\"fileCount\":1,\"outputs\":{\"history\":{}},\"outputs_history\":{},\"outputs_history_stage\":{},\"outputs_raw\":{},\"inputs\":{},\"args\":{},\"env\":{\"GITHUB_STATE\":\"/home/runner/work/_temp/_runner_file_commands/save_state_c9c51a1e-b429-4311-98c6-3dd5e64a11a2\",\"DOTNET_NOLOGO\":\"1\",\"USER\":\"runner\",\"npm_config_always_auth\":\"[REDACTED]\",\"npm_config_user_agent\":\"npm/11.6.2 node/v24.13.0 linux x64 workspaces/false ci/github-actions\",\"CI\":\"true\",\"RUNNER_ENVIRONMENT\":\"github-hosted\",\"GITHUB_ENV\":\"/home/runner/work/_temp/_runner_file_commands/set_env_c9c51a1e-b429-4311-98c6-3dd5e64a11a2\",\"PIPX_HOME\":\"/opt/pipx\",\"npm_node_execpath\":\"/opt/hostedtoolcache/node/24.13.0/x64/bin/node\",\"JAVA_HOME_8_X64\":\"/usr/lib/jvm/temurin-8-jdk-amd64\",\"SHLVL\":\"1\",\"npm_config_noproxy\":\"\",\"HOME\":\"/home/runner\",\"RUNNER_TEMP\":\"/home/runner/work/_temp\",\"GITHUB_EVENT_PATH\":\"/home/runner/work/_temp/_github_workflow/event.json\",\"npm_package_json\":\"/home/runner/work/visor/visor/package.json\",\"JAVA_HOME_11_X64\":\"/usr/lib/jvm/temurin-11-jdk-amd64\",\"PIPX_BIN_DIR\":\"/opt/pipx_bin\",\"GITHUB_REPOSITORY_OWNER\":\"probelabs\",\"NODE_OPTIONS\":\"--max-old-space-size=6144\",\"GRADLE_HOME\":\"/usr/share/gradle-9.3.0\",\"ANDROID_NDK_LATEST_HOME\":\"/usr/local/lib/android/sdk/ndk/29.0.14206865\",\"JAVA_HOME_21_X64\":\"/usr/lib/jvm/temurin-21-jdk-amd64\",\"GITHUB_RETENTION_DAYS\":\"90\",\"GITHUB_REPOSITORY_OWNER_ID\":\"226675185\",\"POWERSHELL_DISTRIBUTION_CHANNEL\":\"GitHub-Actions-ubuntu24\",\"AZURE_EXTENSION_DIR\":\"/opt/az/azcliextensions\",\"GITHUB_HEAD_REF\":\"\",\"npm_config_local_prefix\":\"/home/runner/work/visor/visor\",\"SYSTEMD_EXEC_PID\":\"2034\",\"ACTIONS_ORCHESTRATION_ID\":\"3605b281-5d31-482f-b138-1e51bdb5fde2.release-npm.__default\",\"GITHUB_GRAPHQL_URL\":\"https://api.github.com/graphql\",\"COLOR\":\"0\",\"JAVA_HOME_25_X64\":\"/usr/lib/jvm/temurin-25-jdk-amd64\",\"NVM_DIR\":\"/home/runner/.nvm\",\"DOTNET_SKIP_FIRST_TIME_EXPERIENCE\":\"1\",\"JAVA_HOME_17_X64\":\"/usr/lib/jvm/temurin-17-jdk-amd64\",\"ImageVersion\":\"20260126.10.1\",\"LOGNAME\":\"runner\",\"RUNNER_OS\":\"Linux\",\"GITHUB_API_URL\":\"https://api.github.com\",\"GOROOT_1_22_X64\":\"/opt/hostedtoolcache/go/1.22.12/x64\",\"SWIFT_PATH\":\"/usr/share/swift/usr/bin\",\"CHROMEWEBDRIVER\":\"/usr/local/share/chromedriver-linux64\",\"GOROOT_1_23_X64\":\"/opt/hostedtoolcache/go/1.23.12/x64\",\"JOURNAL_STREAM\":\"9:14556\",\"GITHUB_WORKFLOW\":\"Release\",\"_\":\"/opt/hostedtoolcache/node/24.13.0/x64/bin/npm\",\"npm_config_prefix\":\"/opt/hostedtoolcache/node/24.13.0/x64\",\"npm_config_npm_version\":\"11.6.2\",\"MEMORY_PRESSURE_WATCH\":\"/sys/fs/cgroup/system.slice/hosted-compute-agent.service/memory.pressure\",\"GOROOT_1_24_X64\":\"/opt/hostedtoolcache/go/1.24.12/x64\",\"ACTIONS_RUNNER_ACTION_ARCHIVE_CACHE\":\"/opt/actionarchivecache\",\"GOROOT_1_25_X64\":\"/opt/hostedtoolcache/go/1.25.6/x64\",\"GITHUB_RUN_ID\":\"21713448139\",\"npm_config_cache\":\"/home/runner/.npm\",\"GITHUB_REF_TYPE\":\"tag\",\"BOOTSTRAP_HASKELL_NONINTERACTIVE\":\"1\",\"GITHUB_WORKFLOW_SHA\":\"db07b6f9a3bf553f78291db432d26ffaabfe73a2\",\"GITHUB_BASE_REF\":\"\",\"ImageOS\":\"ubuntu24\",\"GITHUB_WORKFLOW_REF\":\"probelabs/visor/.github/workflows/release.yml@refs/tags/v0.1.128\",\"GITHUB_ACTION_REPOSITORY\":\"\",\"ENABLE_RUNNER_TRACING\":\"true\",\"npm_config_node_gyp\":\"/opt/hostedtoolcache/node/24.13.0/x64/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js\",\"PATH\":\"/home/runner/work/visor/visor/node_modules/.bin:/home/runner/work/visor/node_modules/.bin:/home/runner/work/node_modules/.bin:/home/runner/node_modules/.bin:/home/node_modules/.bin:/node_modules/.bin:/opt/hostedtoolcache/node/24.13.0/x64/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin:/home/runner/work/visor/visor/node_modules/.bin:/home/runner/work/visor/node_modules/.bin:/home/runner/work/node_modules/.bin:/home/runner/node_modules/.bin:/home/node_modules/.bin:/node_modules/.bin:/opt/hostedtoolcache/node/24.13.0/x64/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin:/opt/hostedtoolcache/node/24.13.0/x64/bin:/snap/bin:/home/runner/.local/bin:/opt/pipx_bin:/home/runner/.cargo/bin:/home/runner/.config/composer/vendor/bin:/usr/local/.ghcup/bin:/home/runner/.dotnet/tools:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin\",\"ANT_HOME\":\"/usr/share/ant\",\"DOTNET_MULTILEVEL_LOOKUP\":\"0\",\"RUNNER_TRACKING_ID\":\"github_be790921-1607-4670-9968-c7f9f22fa336\",\"INVOCATION_ID\":\"7e6e43fd6d694270b22c561a1fa4ac0d\",\"NPM_CONFIG_USERCONFIG\":\"/home/runner/work/_temp/.npmrc\",\"RUNNER_TOOL_CACHE\":\"/opt/hostedtoolcache\",\"NODE\":\"/opt/hostedtoolcache/node/24.13.0/x64/bin/node\",\"npm_package_name\":\"@probelabs/visor\",\"GITHUB_ACTION\":\"__run_2\",\"GITHUB_RUN_NUMBER\":\"145\",\"GITHUB_TRIGGERING_ACTOR\":\"buger\",\"RUNNER_ARCH\":\"X64\",\"XDG_RUNTIME_DIR\":\"/run/user/1001\",\"AGENT_TOOLSDIRECTORY\":\"/opt/hostedtoolcache\",\"LANG\":\"C.UTF-8\",\"VCPKG_INSTALLATION_ROOT\":\"/usr/local/share/vcpkg\",\"CONDA\":\"/usr/share/miniconda\",\"RUNNER_NAME\":\"GitHub Actions 1000027218\",\"XDG_CONFIG_HOME\":\"/home/runner/.config\",\"GITHUB_REF_NAME\":\"v0.1.128\",\"GITHUB_REPOSITORY\":\"probelabs/visor\",\"npm_lifecycle_script\":\"node dist/index.js test --progress compact defaults/ && node dist/index.js test --progress compact tests/ && node dist/index.js test --progress compact examples/\",\"ANDROID_NDK_ROOT\":\"/usr/local/lib/android/sdk/ndk/27.3.13750724\",\"GITHUB_ACTION_REF\":\"\",\"DEBIAN_FRONTEND\":\"noninteractive\",\"SHELL\":\"/bin/bash\",\"GITHUB_REPOSITORY_ID\":\"1050672780\",\"GITHUB_ACTIONS\":\"true\",\"npm_package_version\":\"0.1.42\",\"npm_lifecycle_event\":\"test:yaml\",\"GITHUB_REF_PROTECTED\":\"false\",\"GITHUB_WORKSPACE\":\"/home/runner/work/visor/visor\",\"ACCEPT_EULA\":\"Y\",\"GITHUB_JOB\":\"release-npm\",\"npm_package_bin_visor\":\"dist/index.js\",\"GITHUB_SHA\":\"db07b6f9a3bf553f78291db432d26ffaabfe73a2\",\"GITHUB_RUN_ATTEMPT\":\"1\",\"GITHUB_REF\":\"refs/tags/v0.1.128\",\"GITHUB_ACTOR\":\"buger\",\"ANDROID_SDK_ROOT\":\"/usr/local/lib/android/sdk\",\"npm_config_globalconfig\":\"/opt/hostedtoolcache/node/24.13.0/x64/etc/npmrc\",\"npm_config_init_module\":\"/home/runner/.npm-init.js\",\"GITHUB_PATH\":\"/home/runner/work/_temp/_runner_file_commands/add_path_c9c51a1e-b429-4311-98c6-3dd5e64a11a2\",\"JAVA_HOME\":\"/usr/lib/jvm/temurin-17-jdk-amd64\",\"PWD\":\"/home/runner/work/visor/visor\",\"GITHUB_ACTOR_ID\":\"14009\",\"RUNNER_WORKSPACE\":\"/home/runner/work/visor\",\"npm_execpath\":\"/opt/hostedtoolcache/node/24.13.0/x64/lib/node_modules/npm/bin/npm-cli.js\",\"HOMEBREW_CLEANUP_PERIODIC_FULL_DAYS\":\"3650\",\"GITHUB_EVENT_NAME\":\"push\",\"HOMEBREW_NO_AUTO_UPDATE\":\"1\",\"ANDROID_HOME\":\"/usr/local/lib/android/sdk\",\"GITHUB_SERVER_URL\":\"https://github.com\",\"GECKOWEBDRIVER\":\"/usr/local/share/gecko_driver\",\"ACTIONS_ID_TOKEN_REQUEST_URL\":\"[REDACTED]\",\"GHCUP_INSTALL_BASE_PREFIX\":\"/usr/local\",\"GITHUB_OUTPUT\":\"/home/runner/work/_temp/_runner_file_commands/set_output_c9c51a1e-b429-4311-98c6-3dd5e64a11a2\",\"npm_config_global_prefix\":\"/opt/hostedtoolcache/node/24.13.0/x64\",\"EDGEWEBDRIVER\":\"/usr/local/share/edge_driver\",\"npm_command\":\"run\",\"ANDROID_NDK\":\"/usr/local/lib/android/sdk/ndk/27.3.13750724\",\"SGX_AESM_ADDR\":\"1\",\"PSModulePath\":\"/root/.local/share/powershell/Modules:/usr/local/share/powershell/Modules:/opt/microsoft/powershell/7/Modules:/usr/share/az_14.6.0\",\"CHROME_BIN\":\"/usr/bin/google-chrome\",\"SELENIUM_JAR_PATH\":\"/usr/share/java/selenium-server.jar\",\"MEMORY_PRESSURE_WRITE\":\"c29tZSAyMDAwMDAgMjAwMDAwMAA=\",\"ANDROID_NDK_HOME\":\"/usr/local/lib/android/sdk/ndk/27.3.13750724\",\"GITHUB_STEP_SUMMARY\":\"/home/runner/work/_temp/_runner_file_commands/step_summary_c9c51a1e-b429-4311-98c6-3dd5e64a11a2\",\"INIT_CWD\":\"/home/runner/work/visor/visor\",\"EDITOR\":\"vi\",\"VISOR_VERSION\":\"0.1.128\",\"PROBE_VERSION\":\"0.6.0-rc224\",\"VISOR_COMMIT_SHA\":\"db07b6f9a3bf553f78291db432d26ffaabfe73a2\",\"VISOR_COMMIT_SHORT\":\"db07b6f\",\"VISOR_FALLBACK_TRACE_FILE\":\"/home/runner/work/visor/visor/output/traces/run-2026-02-05T13-37-00-184Z.ndjson\",\"VISOR_OUTPUT_FORMAT\":\"table\",\"VISOR_DEBUG\":\"false\",\"VISOR_TEST_MODE\":\"true\",\"VISOR_TEST_PROMPT_MAX_CHARS\":\"4000\",\"VISOR_TEST_HISTORY_LIMIT\":\"200\",\"VISOR_WORKSPACE_ROOT\":\"/tmp/visor-workspaces/swift-yak-japt\",\"VISOR_WORKSPACE_MAIN_PROJECT\":\"/tmp/visor-workspaces/swift-yak-japt/visor\",\"VISOR_WORKSPACE_MAIN_PROJECT_NAME\":\"visor\",\"VISOR_ORIGINAL_WORKDIR\":\"/home/runner/work/visor/visor\",\"VISOR_STRICT_ERRORS\":\"true\"}}"},"events":[{"name":"check.started"},{"name":"check.completed"}]}
95
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"LevelDispatch","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"swift-yak-japt"}}]}
96
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"swift-yak-japt"}}]}
97
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"Completed","engine_mode":"state-machine","wave":1,"session_id":"swift-yak-japt"}}]}
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":"dark-seal-tgcc"}}]}
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":"dark-seal-tgcc"}}]}
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":"dark-seal-tgcc"}}]}
101
+ {"name":"visor.provider","attributes":{"visor.check.id":"ask","visor.provider.type":"human-input"}}
102
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"LevelDispatch","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"dark-seal-tgcc"}}]}
103
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"dark-seal-tgcc"}}]}
104
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"LevelDispatch","engine_mode":"state-machine","wave":1,"session_id":"dark-seal-tgcc"}}]}
105
+ {"name":"visor.provider","attributes":{"visor.check.id":"route-intent","visor.provider.type":"ai"}}
106
+ {"name":"visor.check","attributes":{"visor.check.id":"route-intent","visor.check.input.context":"{\"pr\":{\"number\":1,\"title\":\"feat: add user search\",\"author\":\"test-user\",\"branch\":\"feature/test\",\"base\":\"main\"},\"files\":[],\"outputs\":{\"ask\":{\"text\":\"What is the status of checkout-service?\",\"ts\":1770298621542}},\"args\":{}}"},"events":[]}
107
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"LevelDispatch","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"dark-seal-tgcc"}}]}
108
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"dark-seal-tgcc"}}]}
109
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"LevelDispatch","engine_mode":"state-machine","wave":1,"session_id":"dark-seal-tgcc"}}]}
110
+ {"name":"visor.provider","attributes":{"visor.check.id":"project-intent","visor.provider.type":"ai"}}
111
+ {"name":"visor.check","attributes":{"visor.check.id":"project-intent","visor.check.input.context":"{\"pr\":{\"number\":1,\"title\":\"feat: add user search\",\"author\":\"test-user\",\"branch\":\"feature/test\",\"base\":\"main\"},\"files\":[],\"outputs\":{\"route-intent\":{\"intent\":\"project_help\",\"ts\":1770298621553},\"ask\":{\"text\":\"What is the status of checkout-service?\",\"ts\":1770298621542}},\"args\":{}}"},"events":[]}
112
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"LevelDispatch","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"dark-seal-tgcc"}}]}
113
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"dark-seal-tgcc"}}]}
114
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"LevelDispatch","engine_mode":"state-machine","wave":1,"session_id":"dark-seal-tgcc"}}]}
115
+ {"name":"visor.provider","attributes":{"visor.check.id":"project-status-fetch","visor.provider.type":"script"}}
116
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"LevelDispatch","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"dark-seal-tgcc"}}]}
117
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"dark-seal-tgcc"}}]}
118
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"LevelDispatch","engine_mode":"state-machine","wave":1,"session_id":"dark-seal-tgcc"}}]}
119
+ {"name":"visor.provider","attributes":{"visor.check.id":"project-status-answer","visor.provider.type":"ai"}}
120
+ {"name":"visor.check","attributes":{"visor.check.id":"project-status-answer","visor.check.input.context":"{\"pr\":{\"number\":1,\"title\":\"feat: add user search\",\"author\":\"test-user\",\"branch\":\"feature/test\",\"base\":\"main\"},\"files\":[],\"outputs\":{\"project-intent\":{\"project\":\"checkout-service\",\"kind\":\"status\",\"ts\":1770298621564},\"project-status-fetch\":{\"project\":\"checkout-service\",\"status\":\"green\",\"last_deploy\":\"2025-11-20T12:00:00Z\",\"ts\":1770298621573},\"ask\":{\"text\":\"What is the status of checkout-service?\",\"ts\":1770298621542},\"route-intent\":{\"intent\":\"project_help\",\"ts\":1770298621553}},\"args\":{}}"},"events":[]}
121
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"LevelDispatch","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"dark-seal-tgcc"}}]}
122
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"dark-seal-tgcc"}}]}
123
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"Completed","engine_mode":"state-machine","wave":1,"session_id":"dark-seal-tgcc"}}]}
124
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"Init","state_to":"PlanReady","engine_mode":"state-machine","wave":0,"session_id":"smart-wren-cvae"}}]}
125
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"PlanReady","state_to":"WavePlanning","engine_mode":"state-machine","wave":0,"session_id":"smart-wren-cvae"}}]}
126
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"LevelDispatch","engine_mode":"state-machine","wave":1,"session_id":"smart-wren-cvae"}}]}
127
+ {"name":"visor.provider","attributes":{"visor.check.id":"ask","visor.provider.type":"human-input"}}
128
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"LevelDispatch","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"smart-wren-cvae"}}]}
129
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"smart-wren-cvae"}}]}
130
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"LevelDispatch","engine_mode":"state-machine","wave":1,"session_id":"smart-wren-cvae"}}]}
131
+ {"name":"visor.provider","attributes":{"visor.check.id":"route-intent","visor.provider.type":"ai"}}
132
+ {"name":"visor.check","attributes":{"visor.check.id":"route-intent","visor.check.input.context":"{\"pr\":{\"number\":1,\"title\":\"feat: add user search\",\"author\":\"test-user\",\"branch\":\"feature/test\",\"base\":\"main\"},\"files\":[],\"outputs\":{\"ask\":{\"text\":\"Help me deploy service\",\"ts\":1770298621828}},\"args\":{}}"},"events":[]}
133
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"LevelDispatch","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"smart-wren-cvae"}}]}
134
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"smart-wren-cvae"}}]}
135
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"LevelDispatch","engine_mode":"state-machine","wave":1,"session_id":"smart-wren-cvae"}}]}
136
+ {"name":"visor.provider","attributes":{"visor.check.id":"project-intent","visor.provider.type":"ai"}}
137
+ {"name":"visor.check","attributes":{"visor.check.id":"project-intent","visor.check.input.context":"{\"pr\":{\"number\":1,\"title\":\"feat: add user search\",\"author\":\"test-user\",\"branch\":\"feature/test\",\"base\":\"main\"},\"files\":[],\"outputs\":{\"route-intent\":{\"intent\":\"project_help\",\"ts\":1770298621836},\"ask\":{\"text\":\"Help me deploy service\",\"ts\":1770298621828}},\"args\":{}}"},"events":[]}
138
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"LevelDispatch","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"smart-wren-cvae"}}]}
139
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"smart-wren-cvae"}}]}
140
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"LevelDispatch","engine_mode":"state-machine","wave":1,"session_id":"smart-wren-cvae"}}]}
141
+ {"name":"visor.provider","attributes":{"visor.check.id":"deployment-progress-log","visor.provider.type":"log"}}
142
+ {"name":"visor.provider","attributes":{"visor.check.id":"project-status-fetch","visor.provider.type":"script"}}
143
+ {"name":"visor.provider","attributes":{"visor.check.id":"project-deploy-log","visor.provider.type":"script"}}
144
+ {"name":"visor.provider","attributes":{"visor.check.id":"project-deploy-confirm","visor.provider.type":"human-input"}}
145
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"LevelDispatch","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"smart-wren-cvae"}}]}
146
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"smart-wren-cvae"}}]}
147
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"smart-wren-cvae"}}]}
148
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"smart-wren-cvae"}}]}
149
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"smart-wren-cvae"}}]}
150
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"LevelDispatch","engine_mode":"state-machine","wave":1,"session_id":"smart-wren-cvae"}}]}
151
+ {"name":"visor.provider","attributes":{"visor.check.id":"project-deploy-answer","visor.provider.type":"ai"}}
152
+ {"name":"visor.check","attributes":{"visor.check.id":"project-deploy-answer","visor.check.input.context":"{\"pr\":{\"number\":1,\"title\":\"feat: add user search\",\"author\":\"test-user\",\"branch\":\"feature/test\",\"base\":\"main\"},\"files\":[],\"outputs\":{\"project-intent\":{\"project\":\"svc-api\",\"kind\":\"deployment\",\"ts\":1770298621845},\"project-deploy-confirm\":{\"text\":\"How do I deploy?\",\"ts\":1770298621862},\"ask\":{\"text\":\"Help me deploy service\",\"ts\":1770298621828},\"route-intent\":{\"intent\":\"project_help\",\"ts\":1770298621836},\"deployment-progress-log\":{\"text\":\"Preparing deployment helper for svc-api…\\n\",\"ts\":1770298621862},\"project-status-fetch\":{\"status\":\"green\",\"last_deploy\":\"2025-11-20T12:00:00Z\",\"ts\":1770298621865},\"project-deploy-log\":{\"recorded\":true,\"ts\":1770298621866}},\"args\":{}}"},"events":[]}
153
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"LevelDispatch","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"smart-wren-cvae"}}]}
154
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"smart-wren-cvae"}}]}
155
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"Completed","engine_mode":"state-machine","wave":1,"session_id":"smart-wren-cvae"}}]}
156
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"Init","state_to":"PlanReady","engine_mode":"state-machine","wave":0,"session_id":"proud-shark-59ec"}}]}
157
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"PlanReady","state_to":"WavePlanning","engine_mode":"state-machine","wave":0,"session_id":"proud-shark-59ec"}}]}
158
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"LevelDispatch","engine_mode":"state-machine","wave":1,"session_id":"proud-shark-59ec"}}]}
159
+ {"name":"visor.provider","attributes":{"visor.check.id":"ask","visor.provider.type":"human-input"}}
160
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"LevelDispatch","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"proud-shark-59ec"}}]}
161
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"proud-shark-59ec"}}]}
162
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"LevelDispatch","engine_mode":"state-machine","wave":1,"session_id":"proud-shark-59ec"}}]}
163
+ {"name":"visor.provider","attributes":{"visor.check.id":"route-intent","visor.provider.type":"ai"}}
164
+ {"name":"visor.check","attributes":{"visor.check.id":"route-intent","visor.check.input.context":"{\"pr\":{\"number\":1,\"title\":\"feat: add user search\",\"author\":\"test-user\",\"branch\":\"feature/test\",\"base\":\"main\"},\"files\":[],\"outputs\":{\"ask\":{\"text\":\"What can you do?\",\"ts\":1770298622120}},\"args\":{}}"},"events":[]}
165
+ {"name":"visor.event","attributes":{},"events":[{"name":"visor.routing","attrs":{"check_id":"route-intent","trigger":"on_success","action":"goto","target":"capabilities-answer","source":"transitions"}}]}
166
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"LevelDispatch","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"proud-shark-59ec"}}]}
167
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"WavePlanning","engine_mode":"state-machine","wave":1,"session_id":"proud-shark-59ec"}}]}
168
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"LevelDispatch","engine_mode":"state-machine","wave":2,"session_id":"proud-shark-59ec"}}]}
169
+ {"name":"visor.provider","attributes":{"visor.check.id":"capabilities-answer","visor.provider.type":"ai"}}
170
+ {"name":"visor.check","attributes":{"visor.check.id":"capabilities-answer","visor.check.input.context":"{\"pr\":{\"number\":1,\"title\":\"feat: add user search\",\"author\":\"test-user\",\"branch\":\"feature/test\",\"base\":\"main\"},\"files\":[],\"outputs\":{\"route-intent\":{\"intent\":\"capabilities\",\"ts\":1770298622128},\"ask\":{\"text\":\"What can you do?\",\"ts\":1770298622120}},\"args\":{}}"},"events":[]}
171
+ {"name":"visor.event","attributes":{},"events":[{"name":"visor.routing","attrs":{"check_id":"capabilities-answer","trigger":"on_success","action":"goto","target":"ask","source":"goto"}}]}
172
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"LevelDispatch","state_to":"WavePlanning","engine_mode":"state-machine","wave":2,"session_id":"proud-shark-59ec"}}]}
173
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"WavePlanning","engine_mode":"state-machine","wave":2,"session_id":"proud-shark-59ec"}}]}
174
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"LevelDispatch","engine_mode":"state-machine","wave":3,"session_id":"proud-shark-59ec"}}]}
175
+ {"name":"visor.provider","attributes":{"visor.check.id":"ask","visor.provider.type":"human-input"}}
176
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"LevelDispatch","state_to":"WavePlanning","engine_mode":"state-machine","wave":3,"session_id":"proud-shark-59ec"}}]}
177
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"WavePlanning","engine_mode":"state-machine","wave":3,"session_id":"proud-shark-59ec"}}]}
178
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"LevelDispatch","engine_mode":"state-machine","wave":3,"session_id":"proud-shark-59ec"}}]}
179
+ {"name":"visor.provider","attributes":{"visor.check.id":"route-intent","visor.provider.type":"ai"}}
180
+ {"name":"visor.check","attributes":{"visor.check.id":"route-intent","visor.check.input.context":"{\"pr\":{\"number\":1,\"title\":\"feat: add user search\",\"author\":\"test-user\",\"branch\":\"feature/test\",\"base\":\"main\"},\"files\":[],\"outputs\":{\"ask\":{\"text\":\"What can you do?\",\"ts\":1770298622139},\"route-intent\":{\"intent\":\"capabilities\",\"ts\":1770298622128},\"capabilities-answer\":{\"text\":\"I can help with summaries and project questions.\",\"ts\":1770298622138}},\"args\":{}}"},"events":[]}
181
+ {"name":"visor.event","attributes":{},"events":[{"name":"visor.routing","attrs":{"check_id":"route-intent","trigger":"on_success","action":"goto","target":"capabilities-answer","source":"transitions"}}]}
182
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"LevelDispatch","state_to":"WavePlanning","engine_mode":"state-machine","wave":3,"session_id":"proud-shark-59ec"}}]}
183
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"WavePlanning","engine_mode":"state-machine","wave":3,"session_id":"proud-shark-59ec"}}]}
184
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"LevelDispatch","engine_mode":"state-machine","wave":4,"session_id":"proud-shark-59ec"}}]}
185
+ {"name":"visor.provider","attributes":{"visor.check.id":"capabilities-answer","visor.provider.type":"ai"}}
186
+ {"name":"visor.check","attributes":{"visor.check.id":"capabilities-answer","visor.check.input.context":"{\"pr\":{\"number\":1,\"title\":\"feat: add user search\",\"author\":\"test-user\",\"branch\":\"feature/test\",\"base\":\"main\"},\"files\":[],\"outputs\":{\"route-intent\":{\"intent\":\"capabilities\",\"ts\":1770298622146},\"ask\":{\"text\":\"What can you do?\",\"ts\":1770298622139},\"capabilities-answer\":{\"text\":\"I can help with summaries and project questions.\",\"ts\":1770298622138}},\"args\":{}}"},"events":[]}
187
+ {"name":"visor.event","attributes":{},"events":[{"name":"visor.routing","attrs":{"check_id":"capabilities-answer","trigger":"on_success","action":"goto","target":"ask","source":"goto"}}]}
188
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"LevelDispatch","state_to":"WavePlanning","engine_mode":"state-machine","wave":4,"session_id":"proud-shark-59ec"}}]}
189
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"WavePlanning","engine_mode":"state-machine","wave":4,"session_id":"proud-shark-59ec"}}]}
190
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"LevelDispatch","engine_mode":"state-machine","wave":5,"session_id":"proud-shark-59ec"}}]}
191
+ {"name":"visor.provider","attributes":{"visor.check.id":"ask","visor.provider.type":"human-input"}}
192
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"LevelDispatch","state_to":"WavePlanning","engine_mode":"state-machine","wave":5,"session_id":"proud-shark-59ec"}}]}
193
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"WavePlanning","engine_mode":"state-machine","wave":5,"session_id":"proud-shark-59ec"}}]}
194
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"LevelDispatch","engine_mode":"state-machine","wave":5,"session_id":"proud-shark-59ec"}}]}
195
+ {"name":"visor.provider","attributes":{"visor.check.id":"route-intent","visor.provider.type":"ai"}}
196
+ {"name":"visor.check","attributes":{"visor.check.id":"route-intent","visor.check.input.context":"{\"pr\":{\"number\":1,\"title\":\"feat: add user search\",\"author\":\"test-user\",\"branch\":\"feature/test\",\"base\":\"main\"},\"files\":[],\"outputs\":{\"ask\":{\"text\":\"What can you do?\",\"ts\":1770298622160},\"route-intent\":{\"intent\":\"capabilities\",\"ts\":1770298622146},\"capabilities-answer\":{\"text\":\"I can help with summaries and project questions.\",\"ts\":1770298622159}},\"args\":{}}"},"events":[]}
197
+ {"name":"visor.event","attributes":{},"events":[{"name":"visor.routing","attrs":{"check_id":"route-intent","trigger":"on_success","action":"goto","target":"capabilities-answer","source":"transitions"}}]}
198
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"LevelDispatch","state_to":"WavePlanning","engine_mode":"state-machine","wave":5,"session_id":"proud-shark-59ec"}}]}
199
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"WavePlanning","engine_mode":"state-machine","wave":5,"session_id":"proud-shark-59ec"}}]}
200
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"LevelDispatch","engine_mode":"state-machine","wave":6,"session_id":"proud-shark-59ec"}}]}
201
+ {"name":"visor.provider","attributes":{"visor.check.id":"capabilities-answer","visor.provider.type":"ai"}}
202
+ {"name":"visor.check","attributes":{"visor.check.id":"capabilities-answer","visor.check.input.context":"{\"pr\":{\"number\":1,\"title\":\"feat: add user search\",\"author\":\"test-user\",\"branch\":\"feature/test\",\"base\":\"main\"},\"files\":[],\"outputs\":{\"route-intent\":{\"intent\":\"capabilities\",\"ts\":1770298622171},\"ask\":{\"text\":\"What can you do?\",\"ts\":1770298622160},\"capabilities-answer\":{\"text\":\"I can help with summaries and project questions.\",\"ts\":1770298622159}},\"args\":{}}"},"events":[]}
203
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"LevelDispatch","state_to":"WavePlanning","engine_mode":"state-machine","wave":6,"session_id":"proud-shark-59ec"}}]}
204
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"WavePlanning","engine_mode":"state-machine","wave":6,"session_id":"proud-shark-59ec"}}]}
205
+ {"name":"visor.event","attributes":{},"events":[{"name":"engine.state_transition","attrs":{"state_from":"WavePlanning","state_to":"Completed","engine_mode":"state-machine","wave":6,"session_id":"proud-shark-59ec"}}]}
@@ -278,6 +278,8 @@ export interface AIProviderConfig {
278
278
  apiKey?: string;
279
279
  /** Request timeout in milliseconds */
280
280
  timeout?: number;
281
+ /** Maximum tool iterations for ProbeAgent */
282
+ max_iterations?: number;
281
283
  /** Enable debug mode */
282
284
  debug?: boolean;
283
285
  /** Probe promptType to use (e.g., engineer, code-review, architect) */
@@ -301,6 +303,8 @@ export interface AIProviderConfig {
301
303
  mcpServers?: Record<string, McpServerConfig>;
302
304
  /** Enable the delegate tool for task distribution to subagents */
303
305
  enableDelegate?: boolean;
306
+ /** Enable task management for tracking multi-goal requests */
307
+ enableTasks?: boolean;
304
308
  /** Retry configuration for this provider */
305
309
  retry?: AIRetryConfig;
306
310
  /** Fallback configuration for provider failures */
@@ -319,15 +323,35 @@ export interface AIProviderConfig {
319
323
  completion_prompt?: string;
320
324
  }
321
325
  /**
322
- * MCP Server configuration
326
+ * Unified MCP server/tool entry - type detected by which properties are present
327
+ *
328
+ * Detection logic (priority order):
329
+ * 1. Has `command` → stdio MCP server (external process)
330
+ * 2. Has `url` → SSE/HTTP MCP server (external endpoint)
331
+ * 3. Has `workflow` → workflow tool reference
332
+ * 4. Empty `{}` or just key → auto-detect from `tools:` section
323
333
  */
324
334
  export interface McpServerConfig {
325
- /** Command to execute for the MCP server */
326
- command: string;
335
+ /** Command to execute (presence indicates stdio server) */
336
+ command?: string;
327
337
  /** Arguments to pass to the command */
328
338
  args?: string[];
329
339
  /** Environment variables for the MCP server */
330
340
  env?: Record<string, string>;
341
+ /** URL endpoint (presence indicates external server) */
342
+ url?: string;
343
+ /** Transport type */
344
+ transport?: 'stdio' | 'sse' | 'http';
345
+ /** Workflow ID or path (presence indicates workflow tool) */
346
+ workflow?: string;
347
+ /** Inputs to pass to workflow */
348
+ inputs?: Record<string, unknown>;
349
+ /** Tool description for AI */
350
+ description?: string;
351
+ /** Whitelist specific methods from this MCP server (supports wildcards like "search_*") */
352
+ allowedMethods?: string[];
353
+ /** Block specific methods from this MCP server (supports wildcards like "*_delete") */
354
+ blockedMethods?: string[];
331
355
  }
332
356
  /**
333
357
  * Claude Code configuration
@@ -405,14 +429,52 @@ export interface CheckConfig {
405
429
  ai_persona?: string;
406
430
  /** Probe promptType for this check (underscore style) */
407
431
  ai_prompt_type?: string;
432
+ /** Maximum tool iterations for ProbeAgent (underscore style) */
433
+ ai_max_iterations?: number;
408
434
  /** System prompt for this check (underscore style) */
409
435
  ai_system_prompt?: string;
410
436
  /** Legacy customPrompt (underscore style) — deprecated, use ai_system_prompt */
411
437
  ai_custom_prompt?: string;
412
438
  /** MCP servers for this AI check - overrides global setting */
413
439
  ai_mcp_servers?: Record<string, McpServerConfig>;
440
+ /**
441
+ * JavaScript expression to dynamically compute MCP servers for this AI check.
442
+ * Expression has access to: outputs, inputs, pr, files, env, memory
443
+ * Must return an object mapping server names to McpServerConfig objects.
444
+ *
445
+ * Example:
446
+ * ```
447
+ * const servers = {};
448
+ * const tags = outputs['route-intent']?.tags || [];
449
+ * if (tags.includes('jira')) {
450
+ * servers.jira = {
451
+ * command: "npx",
452
+ * args: ["-y", "@aashari/mcp-server-atlassian-jira"],
453
+ * env: { ATLASSIAN_SITE_NAME: "mysite" }
454
+ * };
455
+ * }
456
+ * return servers;
457
+ * ```
458
+ */
459
+ ai_mcp_servers_js?: string;
414
460
  /** List of custom tool names to expose to this AI check via ephemeral SSE MCP server */
415
461
  ai_custom_tools?: string[];
462
+ /**
463
+ * JavaScript expression to dynamically compute custom tools for this AI check.
464
+ * Expression has access to: outputs, inputs, pr, files, env, memory
465
+ * Must return an array of tool names (strings) or WorkflowToolReference objects
466
+ * ({ workflow: string, args?: Record<string, unknown> })
467
+ *
468
+ * Example:
469
+ * ```
470
+ * const tools = [];
471
+ * if (outputs['route-intent'].intent === 'engineer') {
472
+ * tools.push({ workflow: 'engineer', args: { projects: ['tyk'] } });
473
+ * }
474
+ * return tools;
475
+ * ```
476
+ */
477
+ ai_custom_tools_js?: string;
416
478
  /** Claude Code configuration (for claude-code type checks) */
417
479
  claude_code?: ClaudeCodeConfig;
418
480
  /** Environment variables for this check */