@probelabs/visor 0.1.183-ee → 0.1.184-ee

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (241) hide show
  1. package/dist/agent-protocol/task-live-update-slack.d.ts +24 -0
  2. package/dist/agent-protocol/task-live-update-slack.d.ts.map +1 -0
  3. package/dist/agent-protocol/task-live-update-teams.d.ts +25 -0
  4. package/dist/agent-protocol/task-live-update-teams.d.ts.map +1 -0
  5. package/dist/agent-protocol/task-live-update-telegram.d.ts +25 -0
  6. package/dist/agent-protocol/task-live-update-telegram.d.ts.map +1 -0
  7. package/dist/agent-protocol/task-live-updates.d.ts +102 -0
  8. package/dist/agent-protocol/task-live-updates.d.ts.map +1 -0
  9. package/dist/agent-protocol/task-progress-tool.d.ts.map +1 -1
  10. package/dist/agent-protocol/task-trace-resolution.d.ts +11 -0
  11. package/dist/agent-protocol/task-trace-resolution.d.ts.map +1 -0
  12. package/dist/agent-protocol/trace-serializer.d.ts.map +1 -1
  13. package/dist/agent-protocol/track-execution.d.ts +8 -0
  14. package/dist/agent-protocol/track-execution.d.ts.map +1 -1
  15. package/dist/cli-main.d.ts.map +1 -1
  16. package/dist/cli.d.ts.map +1 -1
  17. package/dist/config.d.ts.map +1 -1
  18. package/dist/frontends/slack-frontend.d.ts +2 -0
  19. package/dist/frontends/slack-frontend.d.ts.map +1 -1
  20. package/dist/frontends/teams-frontend.d.ts.map +1 -1
  21. package/dist/frontends/telegram-frontend.d.ts.map +1 -1
  22. package/dist/generated/config-schema.d.ts +110 -6
  23. package/dist/generated/config-schema.d.ts.map +1 -1
  24. package/dist/index.js +2239 -261
  25. package/dist/logger.d.ts +4 -1
  26. package/dist/logger.d.ts.map +1 -1
  27. package/dist/mcp-job-manager.d.ts +70 -0
  28. package/dist/mcp-job-manager.d.ts.map +1 -0
  29. package/dist/mcp-server.d.ts +6 -0
  30. package/dist/mcp-server.d.ts.map +1 -1
  31. package/dist/runners/mcp-server-runner.d.ts +4 -0
  32. package/dist/runners/mcp-server-runner.d.ts.map +1 -1
  33. package/dist/runners/runner-factory.d.ts.map +1 -1
  34. package/dist/sdk/{a2a-frontend-5YDHFQXD.mjs → a2a-frontend-OI4OVSKC.mjs} +4 -4
  35. package/dist/sdk/check-provider-registry-RITJW67U.mjs +32 -0
  36. package/dist/sdk/check-provider-registry-ZZ6N4GDP.mjs +32 -0
  37. package/dist/sdk/{chunk-4BN2XI4X.mjs → chunk-4HIWZA6M.mjs} +2 -2
  38. package/dist/sdk/{chunk-RI4ONH5X.mjs → chunk-4MHHELVZ.mjs} +2 -2
  39. package/dist/sdk/{chunk-J27D43HS.mjs → chunk-4ZLYHSN4.mjs} +2 -2
  40. package/dist/sdk/{chunk-ZPYODGYA.mjs → chunk-6E625R3C.mjs} +19 -4
  41. package/dist/sdk/chunk-6E625R3C.mjs.map +1 -0
  42. package/dist/sdk/{chunk-GA2TYKSR.mjs → chunk-7XKHFRPN.mjs} +4 -4
  43. package/dist/sdk/{chunk-6C3R6E42.mjs → chunk-IY5PQ5EN.mjs} +30 -6
  44. package/dist/sdk/chunk-IY5PQ5EN.mjs.map +1 -0
  45. package/dist/sdk/{chunk-MFXPJUUE.mjs → chunk-PUHU6UY6.mjs} +4 -3
  46. package/dist/sdk/chunk-PUHU6UY6.mjs.map +1 -0
  47. package/dist/sdk/{chunk-XOAEKFKB.mjs → chunk-QLT42TX7.mjs} +2 -2
  48. package/dist/sdk/chunk-SRU5TFNY.mjs +620 -0
  49. package/dist/sdk/chunk-SRU5TFNY.mjs.map +1 -0
  50. package/dist/sdk/{chunk-P2K4VOMU.mjs → chunk-TSX3YS3F.mjs} +3 -3
  51. package/dist/sdk/{chunk-WKLJ57WF.mjs → chunk-UM7LGO2P.mjs} +6 -6
  52. package/dist/sdk/{chunk-7VTZDC2X.mjs → chunk-VPPBOKBQ.mjs} +2 -2
  53. package/dist/sdk/chunk-WZQMTD7W.mjs +33 -0
  54. package/dist/sdk/chunk-WZQMTD7W.mjs.map +1 -0
  55. package/dist/sdk/{chunk-ZOF5QT6U.mjs → chunk-YBXNG75V.mjs} +118 -10
  56. package/dist/sdk/chunk-YBXNG75V.mjs.map +1 -0
  57. package/dist/sdk/{chunk-UXB4XWEE.mjs → chunk-YYFSAAD6.mjs} +53 -51
  58. package/dist/sdk/chunk-YYFSAAD6.mjs.map +1 -0
  59. package/dist/sdk/{chunk-RHKPFJLG.mjs → chunk-ZNKL6ESZ.mjs} +2 -2
  60. package/dist/sdk/{chunk-IDL3AA3G.mjs → chunk-ZYDRR6PZ.mjs} +1150 -403
  61. package/dist/sdk/chunk-ZYDRR6PZ.mjs.map +1 -0
  62. package/dist/sdk/{command-executor-YNJOS77A.mjs → command-executor-LHUW77GR.mjs} +3 -3
  63. package/dist/sdk/{config-PCP6O6Y6.mjs → config-TVU5RWR5.mjs} +3 -3
  64. package/dist/sdk/{dist-3UGGEZB3.mjs → dist-PN5UHL6A.mjs} +429 -429
  65. package/dist/sdk/dist-PN5UHL6A.mjs.map +1 -0
  66. package/dist/sdk/{email-frontend-WSNADJPI.mjs → email-frontend-ECHQCFTR.mjs} +2 -2
  67. package/dist/sdk/{failure-condition-evaluator-IRFKTYZD.mjs → failure-condition-evaluator-USY3ISVA.mjs} +6 -6
  68. package/dist/sdk/{github-auth-BJQBLK2V.mjs → github-auth-UO4DMNCC.mjs} +2 -2
  69. package/dist/sdk/{github-frontend-DECYOBRN.mjs → github-frontend-2T5PWYD5.mjs} +6 -6
  70. package/dist/sdk/{host-CFM2ASDI.mjs → host-OJSMCLKK.mjs} +6 -6
  71. package/dist/sdk/{host-T4LNVU2H.mjs → host-RM6UJEPP.mjs} +7 -7
  72. package/dist/sdk/{knex-store-OEWSZEBY.mjs → knex-store-KCMFAMH5.mjs} +2 -2
  73. package/dist/sdk/{liquid-extensions-E3AKRX7P.mjs → liquid-extensions-KZIRR4OY.mjs} +4 -4
  74. package/dist/sdk/{loader-WRGI244P.mjs → loader-35YWX5UQ.mjs} +4 -4
  75. package/dist/sdk/{memory-store-OHUIXCWJ.mjs → memory-store-3JONK7AF.mjs} +3 -3
  76. package/dist/sdk/{opa-policy-engine-IVMCGVNA.mjs → opa-policy-engine-FY5D45YS.mjs} +2 -2
  77. package/dist/sdk/{prompt-state-LN57DQF3.mjs → prompt-state-VVJMONT3.mjs} +3 -3
  78. package/dist/sdk/{renderer-schema-BT2IXMLW.mjs → renderer-schema-JZRRU5CW.mjs} +2 -2
  79. package/dist/sdk/{routing-H2PQ57OA.mjs → routing-NNQQSLWA.mjs} +8 -8
  80. package/dist/sdk/{schedule-tool-2DPNSU63.mjs → schedule-tool-ADZ2ON4I.mjs} +15 -14
  81. package/dist/sdk/schedule-tool-EMNF3FPQ.mjs +38 -0
  82. package/dist/sdk/{schedule-tool-handler-NBEO46RV.mjs → schedule-tool-handler-3R3IC6VA.mjs} +15 -14
  83. package/dist/sdk/{schedule-tool-handler-KLHE2SOW.mjs → schedule-tool-handler-F76ZD2WU.mjs} +17 -16
  84. package/dist/sdk/sdk.d.mts +40 -0
  85. package/dist/sdk/sdk.d.ts +40 -0
  86. package/dist/sdk/sdk.js +1154 -176
  87. package/dist/sdk/sdk.js.map +1 -1
  88. package/dist/sdk/sdk.mjs +14 -13
  89. package/dist/sdk/sdk.mjs.map +1 -1
  90. package/dist/sdk/{slack-frontend-DF5VL4OF.mjs → slack-frontend-K3TPGERM.mjs} +65 -9
  91. package/dist/sdk/slack-frontend-K3TPGERM.mjs.map +1 -0
  92. package/dist/sdk/{task-evaluator-OVMG7S56.mjs → task-evaluator-H3BXC7SE.mjs} +3 -3
  93. package/dist/sdk/{teams-frontend-DNW5GZP3.mjs → teams-frontend-6RRW533K.mjs} +54 -1
  94. package/dist/sdk/teams-frontend-6RRW533K.mjs.map +1 -0
  95. package/dist/sdk/{telegram-frontend-GA7OLADB.mjs → telegram-frontend-5UA77YAT.mjs} +48 -1
  96. package/dist/sdk/telegram-frontend-5UA77YAT.mjs.map +1 -0
  97. package/dist/sdk/{trace-helpers-26ZCAE2V.mjs → trace-helpers-OMF4C24T.mjs} +3 -3
  98. package/dist/sdk/{trace-serializer-KKBJHM7J.mjs → trace-serializer-EBHTHZYT.mjs} +3 -3
  99. package/dist/sdk/track-execution-3CHMGEPH.mjs +249 -0
  100. package/dist/sdk/track-execution-3CHMGEPH.mjs.map +1 -0
  101. package/dist/sdk/{utcp-check-provider-WI3QZ3W6.mjs → utcp-check-provider-Q4PD5EP2.mjs} +5 -5
  102. package/dist/sdk/workflow-check-provider-TC2G33WF.mjs +32 -0
  103. package/dist/sdk/workflow-check-provider-U4UXZ5YS.mjs +32 -0
  104. package/dist/sdk/{workflow-registry-YCZ3FCJC.mjs → workflow-registry-K56UTX36.mjs} +3 -3
  105. package/dist/slack/client.d.ts +14 -0
  106. package/dist/slack/client.d.ts.map +1 -1
  107. package/dist/slack/socket-runner.d.ts.map +1 -1
  108. package/dist/teams/client.d.ts +16 -0
  109. package/dist/teams/client.d.ts.map +1 -1
  110. package/dist/teams/webhook-runner.d.ts.map +1 -1
  111. package/dist/telegram/client.d.ts +17 -0
  112. package/dist/telegram/client.d.ts.map +1 -1
  113. package/dist/telegram/polling-runner.d.ts.map +1 -1
  114. package/dist/types/cli.d.ts +2 -0
  115. package/dist/types/cli.d.ts.map +1 -1
  116. package/dist/types/config.d.ts +40 -0
  117. package/dist/types/config.d.ts.map +1 -1
  118. package/package.json +4 -3
  119. package/dist/generated/config-schema.json +0 -4027
  120. package/dist/sdk/a2a-frontend-6LWBIPMS.mjs +0 -1734
  121. package/dist/sdk/a2a-frontend-6LWBIPMS.mjs.map +0 -1
  122. package/dist/sdk/check-provider-registry-WSEVHJEV.mjs +0 -31
  123. package/dist/sdk/check-provider-registry-YRADEEQY.mjs +0 -31
  124. package/dist/sdk/chunk-34QX63WK.mjs +0 -244
  125. package/dist/sdk/chunk-34QX63WK.mjs.map +0 -1
  126. package/dist/sdk/chunk-54KOAC4W.mjs +0 -665
  127. package/dist/sdk/chunk-6C3R6E42.mjs.map +0 -1
  128. package/dist/sdk/chunk-7W5QCO4Y.mjs +0 -5943
  129. package/dist/sdk/chunk-7W5QCO4Y.mjs.map +0 -1
  130. package/dist/sdk/chunk-7XRSCOKE.mjs +0 -825
  131. package/dist/sdk/chunk-FT3I25QV.mjs +0 -251
  132. package/dist/sdk/chunk-FT3I25QV.mjs.map +0 -1
  133. package/dist/sdk/chunk-G7GSN3SK.mjs +0 -390
  134. package/dist/sdk/chunk-G7GSN3SK.mjs.map +0 -1
  135. package/dist/sdk/chunk-IDL3AA3G.mjs.map +0 -1
  136. package/dist/sdk/chunk-J27D43HS.mjs.map +0 -1
  137. package/dist/sdk/chunk-MEB2TTIE.mjs +0 -157
  138. package/dist/sdk/chunk-MEB2TTIE.mjs.map +0 -1
  139. package/dist/sdk/chunk-MFXPJUUE.mjs.map +0 -1
  140. package/dist/sdk/chunk-NPSLGKXB.mjs +0 -1502
  141. package/dist/sdk/chunk-P2K4VOMU.mjs.map +0 -1
  142. package/dist/sdk/chunk-PQWZ6NFL.mjs +0 -459
  143. package/dist/sdk/chunk-PQWZ6NFL.mjs.map +0 -1
  144. package/dist/sdk/chunk-S5FSRHMY.mjs +0 -139
  145. package/dist/sdk/chunk-S5FSRHMY.mjs.map +0 -1
  146. package/dist/sdk/chunk-TFUQ2D5L.mjs +0 -307
  147. package/dist/sdk/chunk-TFUQ2D5L.mjs.map +0 -1
  148. package/dist/sdk/chunk-UCMJJ3IM.mjs +0 -227
  149. package/dist/sdk/chunk-UCMJJ3IM.mjs.map +0 -1
  150. package/dist/sdk/chunk-UFHOIB3R.mjs +0 -482
  151. package/dist/sdk/chunk-UFHOIB3R.mjs.map +0 -1
  152. package/dist/sdk/chunk-UXB4XWEE.mjs.map +0 -1
  153. package/dist/sdk/chunk-V45TITKX.mjs +0 -739
  154. package/dist/sdk/chunk-V45TITKX.mjs.map +0 -1
  155. package/dist/sdk/chunk-WKLJ57WF.mjs.map +0 -1
  156. package/dist/sdk/chunk-ZOF5QT6U.mjs.map +0 -1
  157. package/dist/sdk/chunk-ZPYODGYA.mjs.map +0 -1
  158. package/dist/sdk/command-executor-3AHGIYQG.mjs +0 -14
  159. package/dist/sdk/config-JE4HKTWW.mjs +0 -16
  160. package/dist/sdk/dist-3UGGEZB3.mjs.map +0 -1
  161. package/dist/sdk/failure-condition-evaluator-H3PBFBYT.mjs +0 -18
  162. package/dist/sdk/github-auth-27SZGPEC.mjs +0 -196
  163. package/dist/sdk/github-auth-BJQBLK2V.mjs.map +0 -1
  164. package/dist/sdk/github-frontend-TZRBOQCN.mjs +0 -1394
  165. package/dist/sdk/github-frontend-TZRBOQCN.mjs.map +0 -1
  166. package/dist/sdk/lazy-otel-5NH4ZJJM.mjs +0 -24
  167. package/dist/sdk/liquid-extensions-P6KDYILF.mjs +0 -25
  168. package/dist/sdk/memory-store-K5N7MC7U.mjs +0 -12
  169. package/dist/sdk/metrics-JTOG2HNO.mjs +0 -41
  170. package/dist/sdk/prompt-state-YPICX7PI.mjs +0 -16
  171. package/dist/sdk/renderer-schema-KOIH75RZ.mjs +0 -51
  172. package/dist/sdk/renderer-schema-KOIH75RZ.mjs.map +0 -1
  173. package/dist/sdk/routing-JMZ7HDCC.mjs +0 -26
  174. package/dist/sdk/schedule-tool-4M45RK3E.mjs +0 -37
  175. package/dist/sdk/schedule-tool-4M45RK3E.mjs.map +0 -1
  176. package/dist/sdk/schedule-tool-handler-KLHE2SOW.mjs.map +0 -1
  177. package/dist/sdk/schedule-tool-handler-NBEO46RV.mjs.map +0 -1
  178. package/dist/sdk/slack-frontend-BPWXNIHE.mjs +0 -929
  179. package/dist/sdk/slack-frontend-BPWXNIHE.mjs.map +0 -1
  180. package/dist/sdk/slack-frontend-DF5VL4OF.mjs.map +0 -1
  181. package/dist/sdk/task-evaluator-GQYDOSGT.mjs +0 -1392
  182. package/dist/sdk/task-evaluator-GQYDOSGT.mjs.map +0 -1
  183. package/dist/sdk/teams-frontend-DNW5GZP3.mjs.map +0 -1
  184. package/dist/sdk/telegram-frontend-GA7OLADB.mjs.map +0 -1
  185. package/dist/sdk/trace-helpers-26ZCAE2V.mjs.map +0 -1
  186. package/dist/sdk/trace-helpers-XV5GAX5L.mjs +0 -29
  187. package/dist/sdk/trace-helpers-XV5GAX5L.mjs.map +0 -1
  188. package/dist/sdk/trace-serializer-KKBJHM7J.mjs.map +0 -1
  189. package/dist/sdk/track-execution-3EC24C2X.mjs +0 -163
  190. package/dist/sdk/track-execution-3EC24C2X.mjs.map +0 -1
  191. package/dist/sdk/track-execution-66RLL6QT.mjs +0 -143
  192. package/dist/sdk/track-execution-66RLL6QT.mjs.map +0 -1
  193. package/dist/sdk/utcp-check-provider-JLIYF5HH.mjs +0 -16
  194. package/dist/sdk/utcp-check-provider-JLIYF5HH.mjs.map +0 -1
  195. package/dist/sdk/utcp-check-provider-WI3QZ3W6.mjs.map +0 -1
  196. package/dist/sdk/workflow-check-provider-X2UREEH7.mjs +0 -31
  197. package/dist/sdk/workflow-check-provider-X2UREEH7.mjs.map +0 -1
  198. package/dist/sdk/workflow-check-provider-YXALZNAQ.mjs +0 -31
  199. package/dist/sdk/workflow-check-provider-YXALZNAQ.mjs.map +0 -1
  200. package/dist/sdk/workflow-registry-X2IPY35M.mjs +0 -12
  201. package/dist/sdk/workflow-registry-X2IPY35M.mjs.map +0 -1
  202. package/dist/sdk/workflow-registry-YCZ3FCJC.mjs.map +0 -1
  203. /package/dist/sdk/{a2a-frontend-5YDHFQXD.mjs.map → a2a-frontend-OI4OVSKC.mjs.map} +0 -0
  204. /package/dist/sdk/{check-provider-registry-WSEVHJEV.mjs.map → check-provider-registry-RITJW67U.mjs.map} +0 -0
  205. /package/dist/sdk/{check-provider-registry-YRADEEQY.mjs.map → check-provider-registry-ZZ6N4GDP.mjs.map} +0 -0
  206. /package/dist/sdk/{chunk-4BN2XI4X.mjs.map → chunk-4HIWZA6M.mjs.map} +0 -0
  207. /package/dist/sdk/{chunk-RI4ONH5X.mjs.map → chunk-4MHHELVZ.mjs.map} +0 -0
  208. /package/dist/sdk/{chunk-54KOAC4W.mjs.map → chunk-4ZLYHSN4.mjs.map} +0 -0
  209. /package/dist/sdk/{chunk-GA2TYKSR.mjs.map → chunk-7XKHFRPN.mjs.map} +0 -0
  210. /package/dist/sdk/{chunk-XOAEKFKB.mjs.map → chunk-QLT42TX7.mjs.map} +0 -0
  211. /package/dist/sdk/{chunk-7XRSCOKE.mjs.map → chunk-TSX3YS3F.mjs.map} +0 -0
  212. /package/dist/sdk/{chunk-NPSLGKXB.mjs.map → chunk-UM7LGO2P.mjs.map} +0 -0
  213. /package/dist/sdk/{chunk-7VTZDC2X.mjs.map → chunk-VPPBOKBQ.mjs.map} +0 -0
  214. /package/dist/sdk/{chunk-RHKPFJLG.mjs.map → chunk-ZNKL6ESZ.mjs.map} +0 -0
  215. /package/dist/sdk/{command-executor-3AHGIYQG.mjs.map → command-executor-LHUW77GR.mjs.map} +0 -0
  216. /package/dist/sdk/{command-executor-YNJOS77A.mjs.map → config-TVU5RWR5.mjs.map} +0 -0
  217. /package/dist/sdk/{email-frontend-WSNADJPI.mjs.map → email-frontend-ECHQCFTR.mjs.map} +0 -0
  218. /package/dist/sdk/{config-JE4HKTWW.mjs.map → failure-condition-evaluator-USY3ISVA.mjs.map} +0 -0
  219. /package/dist/sdk/{github-auth-27SZGPEC.mjs.map → github-auth-UO4DMNCC.mjs.map} +0 -0
  220. /package/dist/sdk/{github-frontend-DECYOBRN.mjs.map → github-frontend-2T5PWYD5.mjs.map} +0 -0
  221. /package/dist/sdk/{host-CFM2ASDI.mjs.map → host-OJSMCLKK.mjs.map} +0 -0
  222. /package/dist/sdk/{host-T4LNVU2H.mjs.map → host-RM6UJEPP.mjs.map} +0 -0
  223. /package/dist/sdk/{knex-store-OEWSZEBY.mjs.map → knex-store-KCMFAMH5.mjs.map} +0 -0
  224. /package/dist/sdk/{config-PCP6O6Y6.mjs.map → liquid-extensions-KZIRR4OY.mjs.map} +0 -0
  225. /package/dist/sdk/{loader-WRGI244P.mjs.map → loader-35YWX5UQ.mjs.map} +0 -0
  226. /package/dist/sdk/{failure-condition-evaluator-H3PBFBYT.mjs.map → memory-store-3JONK7AF.mjs.map} +0 -0
  227. /package/dist/sdk/{opa-policy-engine-IVMCGVNA.mjs.map → opa-policy-engine-FY5D45YS.mjs.map} +0 -0
  228. /package/dist/sdk/{failure-condition-evaluator-IRFKTYZD.mjs.map → prompt-state-VVJMONT3.mjs.map} +0 -0
  229. /package/dist/sdk/{renderer-schema-BT2IXMLW.mjs.map → renderer-schema-JZRRU5CW.mjs.map} +0 -0
  230. /package/dist/sdk/{lazy-otel-5NH4ZJJM.mjs.map → routing-NNQQSLWA.mjs.map} +0 -0
  231. /package/dist/sdk/{liquid-extensions-E3AKRX7P.mjs.map → schedule-tool-ADZ2ON4I.mjs.map} +0 -0
  232. /package/dist/sdk/{liquid-extensions-P6KDYILF.mjs.map → schedule-tool-EMNF3FPQ.mjs.map} +0 -0
  233. /package/dist/sdk/{memory-store-K5N7MC7U.mjs.map → schedule-tool-handler-3R3IC6VA.mjs.map} +0 -0
  234. /package/dist/sdk/{memory-store-OHUIXCWJ.mjs.map → schedule-tool-handler-F76ZD2WU.mjs.map} +0 -0
  235. /package/dist/sdk/{task-evaluator-OVMG7S56.mjs.map → task-evaluator-H3BXC7SE.mjs.map} +0 -0
  236. /package/dist/sdk/{metrics-JTOG2HNO.mjs.map → trace-helpers-OMF4C24T.mjs.map} +0 -0
  237. /package/dist/sdk/{prompt-state-LN57DQF3.mjs.map → trace-serializer-EBHTHZYT.mjs.map} +0 -0
  238. /package/dist/sdk/{prompt-state-YPICX7PI.mjs.map → utcp-check-provider-Q4PD5EP2.mjs.map} +0 -0
  239. /package/dist/sdk/{routing-H2PQ57OA.mjs.map → workflow-check-provider-TC2G33WF.mjs.map} +0 -0
  240. /package/dist/sdk/{routing-JMZ7HDCC.mjs.map → workflow-check-provider-U4UXZ5YS.mjs.map} +0 -0
  241. /package/dist/sdk/{schedule-tool-2DPNSU63.mjs.map → workflow-registry-K56UTX36.mjs.map} +0 -0
package/dist/logger.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  export type LogLevel = 'silent' | 'error' | 'warn' | 'info' | 'verbose' | 'debug';
2
2
  declare class Logger {
3
+ private readonly taskContextStorage;
3
4
  private level;
4
5
  private isJsonLike;
5
6
  private isTTY;
@@ -23,7 +24,9 @@ declare class Logger {
23
24
  onError?: (error: unknown) => void;
24
25
  }): void;
25
26
  private shouldLog;
26
- private getTraceSuffix;
27
+ withTaskContext<T>(taskId: string, fn: () => T): T;
28
+ getCurrentTaskId(): string | undefined;
29
+ private getContextSuffix;
27
30
  private emitOtelLog;
28
31
  private write;
29
32
  info(msg: string): void;
@@ -1 +1 @@
1
- {"version":3,"file":"","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/logger.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;AA6BlF,cAAM,MAAM;IACV,OAAO,CAAC,KAAK,CAAoB;IACjC,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,KAAK,CAA4E;IACzF,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,IAAI,CAAC,CAAyC;IACtD,OAAO,CAAC,eAAe,CAAiB;IACxC,OAAO,CAAC,aAAa,CAAwC;IAC7D,OAAO,CAAC,gBAAgB,CAAC,CAA2B;IACpD,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,mBAAmB,CAAkB;IAE7C,SAAS,CACP,IAAI,GAAE;QACJ,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,KAAK,CAAC,EAAE,QAAQ,CAAC;QACjB,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,KAAK,CAAC,EAAE,OAAO,CAAC;KACZ,GACL,IAAI;IAyBP,OAAO,CACL,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,KAAK,IAAI,EAC7C,IAAI,GAAE;QACJ,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;QACxC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;KAC/B,GACL,IAAI;IAOP,OAAO,CAAC,SAAS;IAgBjB,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,WAAW;IA+BnB,OAAO,CAAC,KAAK;IA4Eb,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAIvB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAIvB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAIxB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAI1B,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAIxB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAKvB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;CAG3B;AAGD,eAAO,MAAM,MAAM,QAAe,CAAC;AAGnC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE;IAC9C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,GAAG,IAAI,CAkBP"}
1
+ {"version":3,"file":"","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/logger.ts"],"names":[],"mappings":"AASA,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;AA6BlF,cAAM,MAAM;IACV,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAgD;IACnF,OAAO,CAAC,KAAK,CAAoB;IACjC,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,KAAK,CAA4E;IACzF,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,IAAI,CAAC,CAAyC;IACtD,OAAO,CAAC,eAAe,CAAiB;IACxC,OAAO,CAAC,aAAa,CAAwC;IAC7D,OAAO,CAAC,gBAAgB,CAAC,CAA2B;IACpD,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,mBAAmB,CAAkB;IAE7C,SAAS,CACP,IAAI,GAAE;QACJ,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,KAAK,CAAC,EAAE,QAAQ,CAAC;QACjB,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,KAAK,CAAC,EAAE,OAAO,CAAC;KACZ,GACL,IAAI;IAyBP,OAAO,CACL,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,KAAK,IAAI,EAC7C,IAAI,GAAE;QACJ,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;QACxC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;KAC/B,GACL,IAAI;IAOP,OAAO,CAAC,SAAS;IAgBjB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC;IAKlD,gBAAgB,IAAI,MAAM,GAAG,SAAS;IAItC,OAAO,CAAC,gBAAgB;IAsBxB,OAAO,CAAC,WAAW;IAiCnB,OAAO,CAAC,KAAK;IA4Eb,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAIvB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAIvB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAIxB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAI1B,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAIxB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAKvB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;CAG3B;AAGD,eAAO,MAAM,MAAM,QAAe,CAAC;AAGnC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE;IAC9C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,GAAG,IAAI,CAkBP"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * MCP Job Manager — async job pattern for long-running MCP tool calls.
3
+ *
4
+ * Claude Code and other MCP clients have timeout issues with long-running tools.
5
+ * This module provides a `start_job` / `get_job` pattern: the tool call returns
6
+ * immediately with a job_id, and the client polls `get_job` until done.
7
+ *
8
+ * This is a thin wrapper over the existing TaskStore — jobs are persisted as
9
+ * regular Visor tasks (visible via `visor tasks list`, `visor tasks show`).
10
+ */
11
+ import type { TaskStore } from './agent-protocol/task-store';
12
+ /** Job status values exposed to MCP clients. */
13
+ export type JobStatus = 'queued' | 'running' | 'completed' | 'failed' | 'expired';
14
+ /** Response shape returned by both start_job and get_job. */
15
+ export interface JobResponse {
16
+ job_id: string;
17
+ status: JobStatus;
18
+ done: boolean;
19
+ progress: {
20
+ percent: number | null;
21
+ step: string;
22
+ message: string;
23
+ };
24
+ polling: {
25
+ recommended_next_action: 'get_job' | 'none';
26
+ recommended_delay_seconds: number;
27
+ };
28
+ result: any;
29
+ error: {
30
+ code: string;
31
+ message: string;
32
+ retryable: boolean;
33
+ } | null;
34
+ user_message: string;
35
+ next_instruction_for_model: string;
36
+ }
37
+ /**
38
+ * Manages async jobs for MCP tool calls, backed by the existing TaskStore.
39
+ *
40
+ * Jobs created here are visible via `visor tasks list` and `visor tasks show`.
41
+ */
42
+ export declare class JobManager {
43
+ private taskStore;
44
+ private longPollTimeoutMs;
45
+ constructor(taskStore: TaskStore, opts?: {
46
+ longPollTimeoutMs?: number;
47
+ });
48
+ /**
49
+ * Start a new async job. Creates a task, runs the handler in the background,
50
+ * and returns immediately with the task ID.
51
+ */
52
+ startJob(handler: () => Promise<any>, opts: {
53
+ messageText: string;
54
+ workflowId?: string;
55
+ configPath?: string;
56
+ metadata?: Record<string, unknown>;
57
+ }): JobResponse;
58
+ /**
59
+ * Get the current state of a job by ID (supports both short and full IDs).
60
+ *
61
+ * Uses long polling: if the job is still running, waits up to 59 seconds
62
+ * for it to finish before responding. Returns immediately if the job is
63
+ * already in a terminal state (completed/failed).
64
+ */
65
+ getJob(jobId: string): Promise<JobResponse>;
66
+ /**
67
+ * Resolve a task by full UUID or short ID prefix.
68
+ */
69
+ private resolveTask;
70
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/mcp-job-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAG7D,gDAAgD;AAChD,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;AAElF,6DAA6D;AAC7D,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,SAAS,CAAC;IAClB,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE;QACR,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,OAAO,EAAE;QACP,uBAAuB,EAAE,SAAS,GAAG,MAAM,CAAC;QAC5C,yBAAyB,EAAE,MAAM,CAAC;KACnC,CAAC;IACF,MAAM,EAAE,GAAG,CAAC;IACZ,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;IACpE,YAAY,EAAE,MAAM,CAAC;IACrB,0BAA0B,EAAE,MAAM,CAAC;CACpC;AA2ID;;;;GAIG;AACH,qBAAa,UAAU;IAInB,OAAO,CAAC,SAAS;IAHnB,OAAO,CAAC,iBAAiB,CAAS;gBAGxB,SAAS,EAAE,SAAS,EAC5B,IAAI,CAAC,EAAE;QAAE,iBAAiB,CAAC,EAAE,MAAM,CAAA;KAAE;IAKvC;;;OAGG;IACH,QAAQ,CACN,OAAO,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,EAC3B,IAAI,EAAE;QACJ,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACpC,GACA,WAAW;IAiHd;;;;;;OAMG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAuCjD;;OAEG;IACH,OAAO,CAAC,WAAW;CAYpB"}
@@ -70,6 +70,12 @@ export interface McpServerOptions {
70
70
  tlsCert?: string;
71
71
  /** Path to TLS private key PEM file. */
72
72
  tlsKey?: string;
73
+ /** Enable async job mode (start_job/get_job instead of blocking tool). */
74
+ asyncMode?: boolean;
75
+ /** Long poll timeout in seconds for get_job (default: 59). */
76
+ longPollTimeout?: number;
77
+ /** TaskStore for async job mode persistence. If not provided, one will be created. */
78
+ taskStore?: import('./agent-protocol/task-store').TaskStore;
73
79
  }
74
80
  /**
75
81
  * Available default workflows bundled with Visor.
@@ -1 +1 @@
1
- {"version":3,"file":"","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/mcp-server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAKH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAI7B;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,qEAAqE;IACrE,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAE7B,+CAA+C;IAC/C,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,iEAAiE;IACjE,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,6DAA6D;IAC7D,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,wCAAwC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,wCAAwC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,sEAKpB,CAAC;AAiBX;;GAEG;AACH,eAAO,MAAM,WAAW;;;;CAUvB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB,QAKwC,CAAC;AAmB9E;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CA2E5D;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,GACpC,MAAM,CA+DR;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;EAkC5B,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAEhE;;;;;GAKG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,eAAe,GACpB,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CA4ChF;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;EA0B9B,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEpE;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,iBAAiB,EACvB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAyChF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAU7F;AAwBD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,IAAI,IAAI,CAAC;CACf;AAED;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,CAyC7F;AA2KD;;;;;;;;;GASG;AACH,wBAAsB,cAAc,CAAC,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4ElF"}
1
+ {"version":3,"file":"","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/mcp-server.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,10 @@ export interface McpFrontendOptions {
19
19
  toolName?: string;
20
20
  /** Tool description. */
21
21
  toolDescription?: string;
22
+ /** Enable async job mode (start_job/get_job instead of blocking tool). */
23
+ asyncMode?: boolean;
24
+ /** Long poll timeout in seconds for get_job (default: 59). */
25
+ longPollTimeout?: number;
22
26
  }
23
27
  /**
24
28
  * MCP Frontend Runner — exposes the Visor assistant as an MCP tool.
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server-runner.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/runners/mcp-server-runner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;AAWrF,MAAM,WAAW,kBAAkB;IACjC,+CAA+C;IAC/C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8CAA8C;IAC9C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uCAAuC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gDAAgD;IAChD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mCAAmC;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mCAAmC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wBAAwB;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAwBD;;;;;;;GAOG;AACH,qBAAa,eAAgB,YAAW,MAAM;IAU1C,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,OAAO;IAXjB,QAAQ,CAAC,IAAI,SAAS;IACtB,OAAO,CAAC,UAAU,CAA2C;IAC7D,OAAO,CAAC,UAAU,CAAoD;IACtE,OAAO,CAAC,SAAS,CAAC,CAAY;IAC9B,OAAO,CAAC,UAAU,CAAC,CAAS;IAC5B,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,QAAQ,CAAS;gBAGf,MAAM,EAAE,2BAA2B,EACnC,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,kBAAkB;IAG/B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA4L5B;;;OAGG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAgBpC;;;OAGG;IACG,KAAK,CAAC,SAAS,SAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBnC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAW3B,YAAY,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI;IAIpC,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI;IAKzD;;;OAGG;YACW,aAAa;IA+J3B;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,mBAAmB;CAsD5B"}
1
+ {"version":3,"file":"mcp-server-runner.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/runners/mcp-server-runner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;AAWrF,MAAM,WAAW,kBAAkB;IACjC,+CAA+C;IAC/C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8CAA8C;IAC9C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uCAAuC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gDAAgD;IAChD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mCAAmC;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mCAAmC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wBAAwB;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,0EAA0E;IAC1E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,8DAA8D;IAC9D,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAwBD;;;;;;;GAOG;AACH,qBAAa,eAAgB,YAAW,MAAM;IAU1C,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,OAAO;IAXjB,QAAQ,CAAC,IAAI,SAAS;IACtB,OAAO,CAAC,UAAU,CAA2C;IAC7D,OAAO,CAAC,UAAU,CAAoD;IACtE,OAAO,CAAC,SAAS,CAAC,CAAY;IAC9B,OAAO,CAAC,UAAU,CAAC,CAAS;IAC5B,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,QAAQ,CAAS;gBAGf,MAAM,EAAE,2BAA2B,EACnC,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,kBAAkB;IAG/B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAyP5B;;;OAGG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAgBpC;;;OAGG;IACG,KAAK,CAAC,SAAS,SAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBnC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAW3B,YAAY,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI;IAIpC,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI;IAKzD;;;OAGG;YACW,aAAa;IA+J3B;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,mBAAmB;CAsD5B"}
@@ -1 +1 @@
1
- {"version":3,"file":"runner-factory.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/runners/runner-factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;AAErF;;;;;GAKG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,2BAA2B,EACnC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,UAAU,GAClB,OAAO,CAAC,MAAM,CAAC,CA8IjB"}
1
+ {"version":3,"file":"runner-factory.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/runners/runner-factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;AAErF;;;;;GAKG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,2BAA2B,EACnC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,UAAU,GAClB,OAAO,CAAC,MAAM,CAAC,CAoJjB"}
@@ -12,13 +12,13 @@ import {
12
12
  import {
13
13
  init_trace_helpers,
14
14
  withActiveSpan
15
- } from "./chunk-XOAEKFKB.mjs";
16
- import "./chunk-G7GSN3SK.mjs";
15
+ } from "./chunk-QLT42TX7.mjs";
16
+ import "./chunk-PUHU6UY6.mjs";
17
17
  import "./chunk-FWWLD555.mjs";
18
18
  import {
19
19
  init_logger,
20
20
  logger
21
- } from "./chunk-ZPYODGYA.mjs";
21
+ } from "./chunk-6E625R3C.mjs";
22
22
  import "./chunk-B2OUZAWY.mjs";
23
23
  import {
24
24
  __esm,
@@ -1746,4 +1746,4 @@ export {
1746
1746
  messageToWorkflowInput,
1747
1747
  resultToArtifacts
1748
1748
  };
1749
- //# sourceMappingURL=a2a-frontend-5YDHFQXD.mjs.map
1749
+ //# sourceMappingURL=a2a-frontend-OI4OVSKC.mjs.map
@@ -0,0 +1,32 @@
1
+ import {
2
+ CheckProviderRegistry,
3
+ init_check_provider_registry
4
+ } from "./chunk-YYFSAAD6.mjs";
5
+ import "./chunk-YSOIR46P.mjs";
6
+ import "./chunk-PDQTEBOJ.mjs";
7
+ import "./chunk-WZQMTD7W.mjs";
8
+ import "./chunk-TSX3YS3F.mjs";
9
+ import "./chunk-VPPBOKBQ.mjs";
10
+ import "./chunk-B7BVQM5K.mjs";
11
+ import "./chunk-XXAEN5KU.mjs";
12
+ import "./chunk-ZNKL6ESZ.mjs";
13
+ import "./chunk-4ZLYHSN4.mjs";
14
+ import "./chunk-YBXNG75V.mjs";
15
+ import "./chunk-KWTCTEFT.mjs";
16
+ import "./chunk-UM7LGO2P.mjs";
17
+ import "./chunk-7XKHFRPN.mjs";
18
+ import "./chunk-QLT42TX7.mjs";
19
+ import "./chunk-PUHU6UY6.mjs";
20
+ import "./chunk-FWWLD555.mjs";
21
+ import "./chunk-4HIWZA6M.mjs";
22
+ import "./chunk-25IC7KXZ.mjs";
23
+ import "./chunk-LW3INISN.mjs";
24
+ import "./chunk-4MHHELVZ.mjs";
25
+ import "./chunk-6E625R3C.mjs";
26
+ import "./chunk-B2OUZAWY.mjs";
27
+ import "./chunk-J7LXIPZS.mjs";
28
+ init_check_provider_registry();
29
+ export {
30
+ CheckProviderRegistry
31
+ };
32
+ //# sourceMappingURL=check-provider-registry-RITJW67U.mjs.map
@@ -0,0 +1,32 @@
1
+ import {
2
+ CheckProviderRegistry,
3
+ init_check_provider_registry
4
+ } from "./chunk-ZYDRR6PZ.mjs";
5
+ import "./chunk-YSOIR46P.mjs";
6
+ import "./chunk-PDQTEBOJ.mjs";
7
+ import "./chunk-WZQMTD7W.mjs";
8
+ import "./chunk-TSX3YS3F.mjs";
9
+ import "./chunk-VPPBOKBQ.mjs";
10
+ import "./chunk-B7BVQM5K.mjs";
11
+ import "./chunk-XXAEN5KU.mjs";
12
+ import "./chunk-ZNKL6ESZ.mjs";
13
+ import "./chunk-4ZLYHSN4.mjs";
14
+ import "./chunk-YBXNG75V.mjs";
15
+ import "./chunk-KWTCTEFT.mjs";
16
+ import "./chunk-UM7LGO2P.mjs";
17
+ import "./chunk-7XKHFRPN.mjs";
18
+ import "./chunk-QLT42TX7.mjs";
19
+ import "./chunk-PUHU6UY6.mjs";
20
+ import "./chunk-FWWLD555.mjs";
21
+ import "./chunk-4HIWZA6M.mjs";
22
+ import "./chunk-25IC7KXZ.mjs";
23
+ import "./chunk-LW3INISN.mjs";
24
+ import "./chunk-4MHHELVZ.mjs";
25
+ import "./chunk-6E625R3C.mjs";
26
+ import "./chunk-B2OUZAWY.mjs";
27
+ import "./chunk-J7LXIPZS.mjs";
28
+ init_check_provider_registry();
29
+ export {
30
+ CheckProviderRegistry
31
+ };
32
+ //# sourceMappingURL=check-provider-registry-ZZ6N4GDP.mjs.map
@@ -16,7 +16,7 @@ import {
16
16
  import {
17
17
  MemoryStore,
18
18
  init_memory_store
19
- } from "./chunk-RI4ONH5X.mjs";
19
+ } from "./chunk-4MHHELVZ.mjs";
20
20
  import {
21
21
  __esm,
22
22
  __require
@@ -456,4 +456,4 @@ export {
456
456
  createExtendedLiquid,
457
457
  init_liquid_extensions
458
458
  };
459
- //# sourceMappingURL=chunk-4BN2XI4X.mjs.map
459
+ //# sourceMappingURL=chunk-4HIWZA6M.mjs.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  init_logger,
3
3
  logger
4
- } from "./chunk-ZPYODGYA.mjs";
4
+ } from "./chunk-6E625R3C.mjs";
5
5
  import {
6
6
  __esm,
7
7
  __export
@@ -479,4 +479,4 @@ export {
479
479
  memory_store_exports,
480
480
  init_memory_store
481
481
  };
482
- //# sourceMappingURL=chunk-RI4ONH5X.mjs.map
482
+ //# sourceMappingURL=chunk-4MHHELVZ.mjs.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  init_logger,
3
3
  logger
4
- } from "./chunk-FT3I25QV.mjs";
4
+ } from "./chunk-6E625R3C.mjs";
5
5
  import {
6
6
  __esm
7
7
  } from "./chunk-J7LXIPZS.mjs";
@@ -662,4 +662,4 @@ export {
662
662
  WorkflowRegistry,
663
663
  init_workflow_registry
664
664
  };
665
- //# sourceMappingURL=chunk-J27D43HS.mjs.map
665
+ //# sourceMappingURL=chunk-4ZLYHSN4.mjs.map
@@ -15,6 +15,7 @@ __export(logger_exports, {
15
15
  configureLoggerFromCli: () => configureLoggerFromCli,
16
16
  logger: () => logger
17
17
  });
18
+ import { AsyncLocalStorage } from "async_hooks";
18
19
  function levelToNumber(level) {
19
20
  switch (level) {
20
21
  case "silent":
@@ -65,6 +66,7 @@ var init_logger = __esm({
65
66
  // DEBUG
66
67
  };
67
68
  Logger = class {
69
+ taskContextStorage = new AsyncLocalStorage();
68
70
  level = "info";
69
71
  isJsonLike = false;
70
72
  isTTY = typeof process !== "undefined" ? !!process.stderr.isTTY : false;
@@ -111,9 +113,20 @@ var init_logger = __esm({
111
113
  }
112
114
  return true;
113
115
  }
114
- getTraceSuffix(msg) {
116
+ withTaskContext(taskId, fn) {
117
+ const current = this.taskContextStorage.getStore() || {};
118
+ return this.taskContextStorage.run({ ...current, taskId }, fn);
119
+ }
120
+ getCurrentTaskId() {
121
+ return this.taskContextStorage.getStore()?.taskId;
122
+ }
123
+ getContextSuffix(msg) {
115
124
  if (!msg) return "";
116
- if (msg.includes("trace_id=") || msg.includes("trace_id:")) return "";
125
+ if (msg.includes("task_id=") || msg.includes("task_id:") || msg.includes("trace_id=") || msg.includes("trace_id:")) {
126
+ return "";
127
+ }
128
+ const taskId = this.getCurrentTaskId();
129
+ if (taskId) return ` [task_id=${taskId}]`;
117
130
  try {
118
131
  const span = trace.getSpan(context.active()) || trace.getActiveSpan();
119
132
  const ctx = span?.spanContext?.();
@@ -138,12 +151,14 @@ var init_logger = __esm({
138
151
  if (!this.otelLogger) return;
139
152
  const span = trace.getSpan(context.active()) || trace.getActiveSpan();
140
153
  const spanCtx = span?.spanContext?.();
154
+ const taskId = this.getCurrentTaskId();
141
155
  this.otelLogger.emit({
142
156
  severityNumber: OTEL_SEVERITY[level] || 9,
143
157
  severityText: level.toUpperCase(),
144
158
  body: msg,
145
159
  attributes: {
146
160
  "visor.logger": true,
161
+ ...taskId ? { task_id: taskId } : {},
147
162
  ...spanCtx?.traceId ? { trace_id: spanCtx.traceId, span_id: spanCtx.spanId } : {}
148
163
  }
149
164
  });
@@ -151,7 +166,7 @@ var init_logger = __esm({
151
166
  }
152
167
  }
153
168
  write(msg, level) {
154
- const suffix = this.getTraceSuffix(msg);
169
+ const suffix = this.getContextSuffix(msg);
155
170
  const decoratedMsg = suffix ? `${msg}${suffix}` : msg;
156
171
  const lvl = level || "info";
157
172
  this.emitOtelLog(msg, lvl);
@@ -248,4 +263,4 @@ export {
248
263
  logger_exports,
249
264
  init_logger
250
265
  };
251
- //# sourceMappingURL=chunk-ZPYODGYA.mjs.map
266
+ //# sourceMappingURL=chunk-6E625R3C.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/logger.ts"],"sourcesContent":["/*\n * Centralized logger for Visor CLI and Action modes.\n * - Respects output format (suppresses info in JSON/SARIF unless debug)\n * - Supports levels: silent < error < warn < info < verbose < debug\n * - Routes logs to stderr to keep stdout clean for machine-readable output\n */\nimport { AsyncLocalStorage } from 'node:async_hooks';\nimport { context as otContext, trace } from './telemetry/lazy-otel';\n\nexport type LogLevel = 'silent' | 'error' | 'warn' | 'info' | 'verbose' | 'debug';\n\nfunction levelToNumber(level: LogLevel): number {\n switch (level) {\n case 'silent':\n return 0;\n case 'error':\n return 10;\n case 'warn':\n return 20;\n case 'info':\n return 30;\n case 'verbose':\n return 40;\n case 'debug':\n return 50;\n }\n}\n\n// OTel severity mapping (OpenTelemetry SeverityNumber values)\nconst OTEL_SEVERITY: Record<LogLevel, number> = {\n silent: 0,\n error: 17, // ERROR\n warn: 13, // WARN\n info: 9, // INFO\n verbose: 5, // DEBUG\n debug: 5, // DEBUG\n};\n\nclass Logger {\n private readonly taskContextStorage = new AsyncLocalStorage<{ taskId?: string }>();\n private level: LogLevel = 'info';\n private isJsonLike: boolean = false;\n private isTTY: boolean = typeof process !== 'undefined' ? !!process.stderr.isTTY : false;\n private showTimestamps: boolean = true; // default: always show timestamps\n private sink?: (msg: string, level: LogLevel) => void;\n private sinkPassthrough: boolean = true;\n private sinkErrorMode: 'throw' | 'warn' | 'silent' = 'throw';\n private sinkErrorHandler?: (error: unknown) => void;\n private otelLogger: any = null;\n private otelLoggerAttempted: boolean = false;\n\n configure(\n opts: {\n outputFormat?: string;\n level?: LogLevel;\n debug?: boolean;\n verbose?: boolean;\n quiet?: boolean;\n } = {}\n ): void {\n // Determine base level\n let lvl: LogLevel = 'info';\n\n if (opts.debug || process.env.VISOR_DEBUG === 'true') {\n lvl = 'debug';\n } else if (opts.verbose || process.env.VISOR_LOG_LEVEL === 'verbose') {\n lvl = 'verbose';\n } else if (opts.quiet || process.env.VISOR_LOG_LEVEL === 'quiet') {\n lvl = 'warn';\n } else if (opts.level) {\n lvl = opts.level;\n } else if (process.env.VISOR_LOG_LEVEL) {\n const envLvl = process.env.VISOR_LOG_LEVEL as LogLevel;\n if (['silent', 'error', 'warn', 'info', 'verbose', 'debug'].includes(envLvl)) {\n lvl = envLvl as LogLevel;\n }\n }\n\n this.level = lvl;\n const output = opts.outputFormat || process.env.VISOR_OUTPUT_FORMAT || 'table';\n // In JSON/SARIF we suppress non-error logs unless explicitly verbose/debug\n this.isJsonLike = output === 'json' || output === 'sarif';\n }\n\n setSink(\n sink?: (msg: string, level: LogLevel) => void,\n opts: {\n passthrough?: boolean;\n errorMode?: 'throw' | 'warn' | 'silent';\n onError?: (error: unknown) => void;\n } = {}\n ): void {\n this.sink = sink;\n this.sinkPassthrough = opts.passthrough !== undefined ? opts.passthrough : true;\n this.sinkErrorMode = opts.errorMode || 'throw';\n this.sinkErrorHandler = opts.onError;\n }\n\n private shouldLog(level: LogLevel): boolean {\n const desired = levelToNumber(level);\n const current = levelToNumber(this.level);\n if (desired > current) return false;\n if (\n this.isJsonLike &&\n desired < levelToNumber('error') &&\n this.level !== 'debug' &&\n this.level !== 'verbose'\n ) {\n // In JSON/SARIF, hide info/warn unless explicitly verbose/debug\n return false;\n }\n return true;\n }\n\n withTaskContext<T>(taskId: string, fn: () => T): T {\n const current = this.taskContextStorage.getStore() || {};\n return this.taskContextStorage.run({ ...current, taskId }, fn);\n }\n\n getCurrentTaskId(): string | undefined {\n return this.taskContextStorage.getStore()?.taskId;\n }\n\n private getContextSuffix(msg: string): string {\n if (!msg) return '';\n if (\n msg.includes('task_id=') ||\n msg.includes('task_id:') ||\n msg.includes('trace_id=') ||\n msg.includes('trace_id:')\n ) {\n return '';\n }\n const taskId = this.getCurrentTaskId();\n if (taskId) return ` [task_id=${taskId}]`;\n try {\n const span = trace.getSpan(otContext.active()) || trace.getActiveSpan();\n const ctx = span?.spanContext?.();\n if (!ctx?.traceId) return '';\n return ` [trace_id=${ctx.traceId} span_id=${ctx.spanId}]`;\n } catch {\n return '';\n }\n }\n\n private emitOtelLog(msg: string, level: LogLevel): void {\n try {\n if (!this.otelLoggerAttempted) {\n this.otelLoggerAttempted = true;\n try {\n const { logs } = (function (name: string) {\n return require(name);\n })('@opentelemetry/api-logs');\n this.otelLogger = logs.getLogger('visor');\n } catch {\n // @opentelemetry/api-logs not installed\n }\n }\n if (!this.otelLogger) return;\n\n const span = trace.getSpan(otContext.active()) || trace.getActiveSpan();\n const spanCtx = span?.spanContext?.();\n const taskId = this.getCurrentTaskId();\n this.otelLogger.emit({\n severityNumber: OTEL_SEVERITY[level] || 9,\n severityText: level.toUpperCase(),\n body: msg,\n attributes: {\n 'visor.logger': true,\n ...(taskId ? { task_id: taskId } : {}),\n ...(spanCtx?.traceId ? { trace_id: spanCtx.traceId, span_id: spanCtx.spanId } : {}),\n },\n });\n } catch {\n // OTel logs not available; ignore\n }\n }\n\n private write(msg: string, level?: LogLevel): void {\n // Always route to stderr to keep stdout clean for results\n const suffix = this.getContextSuffix(msg);\n const decoratedMsg = suffix ? `${msg}${suffix}` : msg;\n const lvl = level || 'info';\n\n // Emit to OTel Logs pipeline (non-blocking, best-effort)\n this.emitOtelLog(msg, lvl);\n\n if (this.sink) {\n try {\n this.sink(decoratedMsg, lvl);\n } catch (error) {\n if (this.sinkErrorMode === 'warn') {\n try {\n if (this.sinkErrorHandler) {\n this.sinkErrorHandler(error);\n } else {\n const errMsg = error instanceof Error ? error.message : String(error);\n process.stderr.write(`[logger] sink failed: ${errMsg}\\n`);\n }\n } catch {\n // ignore secondary failures\n }\n }\n if (this.sinkErrorMode === 'throw') {\n throw error;\n }\n return;\n }\n if (!this.sinkPassthrough) return;\n }\n\n try {\n if (this.showTimestamps) {\n const ts = new Date().toISOString();\n const lvl = level ? level : undefined;\n\n let tsToken = `[${ts}]`;\n let lvlToken = lvl ? `[${lvl}]` : '';\n\n // Add simple ANSI colour when running in a TTY and not emitting\n // JSON/SARIF. Colours are intentionally minimal and only applied\n // to the prefix markers, not the full line.\n if (this.isTTY && !this.isJsonLike) {\n const reset = '\\x1b[0m';\n const dim = '\\x1b[2m';\n const colours: Record<LogLevel, string> = {\n silent: '',\n error: '\\x1b[31m', // red\n warn: '\\x1b[33m', // yellow\n info: '\\x1b[36m', // cyan\n verbose: '\\x1b[35m', // magenta\n debug: '\\x1b[90m', // bright black / gray\n };\n\n tsToken = `${dim}${tsToken}${reset}`;\n\n if (lvl) {\n const colour = colours[lvl] || '';\n if (colour) {\n lvlToken = `${colour}${lvlToken}${reset}`;\n }\n }\n }\n\n const prefix = lvl ? `${tsToken} ${lvlToken}` : tsToken;\n process.stderr.write(`${prefix} ${decoratedMsg}\\n`);\n } else {\n process.stderr.write(decoratedMsg + '\\n');\n }\n } catch {\n // Ignore write errors\n }\n }\n\n info(msg: string): void {\n if (this.shouldLog('info')) this.write(msg, 'info');\n }\n\n warn(msg: string): void {\n if (this.shouldLog('warn')) this.write(msg, 'warn');\n }\n\n error(msg: string): void {\n if (this.shouldLog('error')) this.write(msg, 'error');\n }\n\n verbose(msg: string): void {\n if (this.shouldLog('verbose')) this.write(msg, 'verbose');\n }\n\n debug(msg: string): void {\n if (this.shouldLog('debug')) this.write(msg, 'debug');\n }\n\n step(msg: string): void {\n // High-level phase indicator\n if (this.shouldLog('info')) this.write(`▶ ${msg}`, 'info');\n }\n\n success(msg: string): void {\n if (this.shouldLog('info')) this.write(`✔ ${msg}`, 'info');\n }\n}\n\n// Singleton instance\nexport const logger = new Logger();\n\n// Helper to configure from CLI options in a single place\nexport function configureLoggerFromCli(options: {\n output?: string;\n debug?: boolean;\n verbose?: boolean;\n quiet?: boolean;\n}): void {\n logger.configure({\n outputFormat: options.output,\n debug: options.debug,\n verbose: options.verbose,\n quiet: options.quiet,\n });\n\n // Expose output format and debug to process env for modules that need to gate\n // stdout emissions without plumbing the value through every call site.\n try {\n if (options.output) process.env.VISOR_OUTPUT_FORMAT = String(options.output);\n if (typeof options.debug === 'boolean') {\n process.env.VISOR_DEBUG = options.debug ? 'true' : 'false';\n }\n } catch {\n // ignore\n }\n}\n"],"mappings":"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","names":["lvl"]}
@@ -3,7 +3,7 @@ import {
3
3
  fallback_ndjson_exports,
4
4
  init_fallback_ndjson,
5
5
  init_trace_helpers
6
- } from "./chunk-XOAEKFKB.mjs";
6
+ } from "./chunk-QLT42TX7.mjs";
7
7
  import {
8
8
  addFailIfTriggered,
9
9
  init_metrics
@@ -20,11 +20,11 @@ import {
20
20
  import {
21
21
  MemoryStore,
22
22
  init_memory_store
23
- } from "./chunk-RI4ONH5X.mjs";
23
+ } from "./chunk-4MHHELVZ.mjs";
24
24
  import {
25
25
  init_logger,
26
26
  logger_exports
27
- } from "./chunk-ZPYODGYA.mjs";
27
+ } from "./chunk-6E625R3C.mjs";
28
28
  import {
29
29
  __esm,
30
30
  __export,
@@ -736,4 +736,4 @@ export {
736
736
  failure_condition_evaluator_exports,
737
737
  init_failure_condition_evaluator
738
738
  };
739
- //# sourceMappingURL=chunk-GA2TYKSR.mjs.map
739
+ //# sourceMappingURL=chunk-7XKHFRPN.mjs.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  init_logger,
3
3
  logger
4
- } from "./chunk-ZPYODGYA.mjs";
4
+ } from "./chunk-6E625R3C.mjs";
5
5
  import {
6
6
  __esm
7
7
  } from "./chunk-J7LXIPZS.mjs";
@@ -527,13 +527,19 @@ async function serializeTraceForPrompt(traceIdOrPath, maxChars, backendConfig, t
527
527
  const localTracePath = isFilePath ? traceIdOrPath : void 0;
528
528
  const remoteTraceId = fallbackTraceId || (!isFilePath ? traceIdOrPath : await readTraceIdFromFile(traceIdOrPath) || void 0);
529
529
  const preferLocalFirst = backendOrder[0] === "file";
530
+ logger.debug(
531
+ `[TraceSerializer] serializeTraceForPrompt ref=${traceIdOrPath} remoteTraceId=${remoteTraceId || "-"} backendOrder=${backendOrder.join(">")}`
532
+ );
530
533
  if (preferLocalFirst && localTracePath) {
534
+ logger.debug(`[TraceSerializer] Trying local trace file first: ${localTracePath}`);
531
535
  spans = await fetchTraceSpans(localTracePath, { ...cfg, type: "file" });
532
536
  }
533
537
  if (spans.length === 0 && remoteTraceId) {
538
+ logger.debug(`[TraceSerializer] Trying remote trace backends for trace_id=${remoteTraceId}`);
534
539
  spans = await fetchTraceSpans(remoteTraceId, cfg);
535
540
  }
536
541
  if (spans.length === 0 && localTracePath) {
542
+ logger.debug(`[TraceSerializer] Falling back to local trace file: ${localTracePath}`);
537
543
  spans = await fetchTraceSpans(localTracePath, { ...cfg, type: "file" });
538
544
  }
539
545
  if (spans.length === 0) {
@@ -623,6 +629,19 @@ function renderSpanYaml(tree, allSpans, opts) {
623
629
  }
624
630
  function renderYamlNode(node, indent, lines, dedup, renderContext, fallbackIntent, fullOutput, maxLen, parentSpan) {
625
631
  if (shouldSkipLifecycleSpan(node.span, renderContext)) {
632
+ for (const child of node.children) {
633
+ renderYamlNode(
634
+ child,
635
+ indent,
636
+ lines,
637
+ dedup,
638
+ renderContext,
639
+ fallbackIntent,
640
+ fullOutput,
641
+ maxLen,
642
+ parentSpan
643
+ );
644
+ }
626
645
  return;
627
646
  }
628
647
  const pad = " ".repeat(indent);
@@ -901,7 +920,7 @@ function renderYamlOutput(rawOutput, pad, label, spanName, dedup, lines, fullOut
901
920
  if (obj === null || obj === void 0 || typeof obj !== "object") return;
902
921
  if (typeof obj === "object" && !Array.isArray(obj)) {
903
922
  const keys = Object.keys(obj);
904
- if (keys.length === 1 && typeof obj[keys[0]] === "object" && obj[keys[0]] !== null) {
923
+ if (keys.length === 1 && typeof obj[keys[0]] === "object" && obj[keys[0]] !== null && !Array.isArray(obj[keys[0]])) {
905
924
  obj = obj[keys[0]];
906
925
  }
907
926
  const objKeys = Object.keys(obj);
@@ -1435,7 +1454,7 @@ function formatJsonPreview(obj, maxLen) {
1435
1454
  const parts = [];
1436
1455
  let len = 2;
1437
1456
  for (const [key, val] of Object.entries(obj)) {
1438
- if (key === "raw" || key === "skills" || key === "tags") continue;
1457
+ if (key === "raw" || key === "tags") continue;
1439
1458
  let valStr;
1440
1459
  if (val === null || val === void 0) continue;
1441
1460
  if (typeof val === "boolean") valStr = String(val);
@@ -1444,8 +1463,13 @@ function formatJsonPreview(obj, maxLen) {
1444
1463
  if (val.startsWith("{") || val.startsWith("[")) continue;
1445
1464
  const clean = val.replace(/\*\*/g, "").replace(/^#+\s*/gm, "").replace(/`/g, "").trim();
1446
1465
  valStr = `"${truncate(clean.split("\n")[0], Math.min(80, maxLen / 3))}"`;
1447
- } else if (Array.isArray(val)) valStr = `[${val.length}]`;
1448
- else if (typeof val === "object") valStr = `{${Object.keys(val).length} keys}`;
1466
+ } else if (Array.isArray(val)) {
1467
+ if (val.every((item) => typeof item === "string") && val.join(", ").length < Math.min(120, maxLen / 2)) {
1468
+ valStr = `[${val.join(", ")}]`;
1469
+ } else {
1470
+ valStr = `[${val.length}]`;
1471
+ }
1472
+ } else if (typeof val === "object") valStr = `{${Object.keys(val).length} keys}`;
1449
1473
  else valStr = "...";
1450
1474
  const part = `${key}: ${valStr}`;
1451
1475
  if (len + part.length + 2 > maxLen) {
@@ -1697,4 +1721,4 @@ export {
1697
1721
  renderSpanYaml,
1698
1722
  init_trace_serializer
1699
1723
  };
1700
- //# sourceMappingURL=chunk-6C3R6E42.mjs.map
1724
+ //# sourceMappingURL=chunk-IY5PQ5EN.mjs.map