visionclaw 0.1.200-beta.4 → 0.1.200-beta.6

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 (331) hide show
  1. package/dist/agent/activity-tracker.d.ts +25 -0
  2. package/dist/agent/activity-tracker.d.ts.map +1 -1
  3. package/dist/agent/activity-tracker.js +69 -0
  4. package/dist/agent/activity-tracker.js.map +1 -1
  5. package/dist/agent/applied-credential-signature.d.ts +53 -0
  6. package/dist/agent/applied-credential-signature.d.ts.map +1 -0
  7. package/dist/agent/applied-credential-signature.js +137 -0
  8. package/dist/agent/applied-credential-signature.js.map +1 -0
  9. package/dist/agent/command-handlers.d.ts.map +1 -1
  10. package/dist/agent/command-handlers.js +40 -0
  11. package/dist/agent/command-handlers.js.map +1 -1
  12. package/dist/agent/engines/browser-tool-policy.d.ts +2 -1
  13. package/dist/agent/engines/browser-tool-policy.d.ts.map +1 -1
  14. package/dist/agent/engines/browser-tool-policy.js.map +1 -1
  15. package/dist/agent/engines/claude/session.d.ts.map +1 -1
  16. package/dist/agent/engines/claude/session.js +18 -3
  17. package/dist/agent/engines/claude/session.js.map +1 -1
  18. package/dist/agent/engines/client-factory.d.ts +63 -0
  19. package/dist/agent/engines/client-factory.d.ts.map +1 -0
  20. package/dist/agent/engines/client-factory.js +382 -0
  21. package/dist/agent/engines/client-factory.js.map +1 -0
  22. package/dist/agent/engines/engine.d.ts +8 -0
  23. package/dist/agent/engines/engine.d.ts.map +1 -0
  24. package/dist/agent/engines/engine.js +15 -0
  25. package/dist/agent/engines/engine.js.map +1 -0
  26. package/dist/agent/engines/openai/file-session.d.ts +19 -0
  27. package/dist/agent/engines/openai/file-session.d.ts.map +1 -0
  28. package/dist/agent/engines/openai/file-session.js +78 -0
  29. package/dist/agent/engines/openai/file-session.js.map +1 -0
  30. package/dist/agent/engines/openai/file-tools.d.ts +35 -0
  31. package/dist/agent/engines/openai/file-tools.d.ts.map +1 -0
  32. package/dist/agent/engines/openai/file-tools.js +194 -0
  33. package/dist/agent/engines/openai/file-tools.js.map +1 -0
  34. package/dist/agent/engines/openai/session.d.ts +55 -0
  35. package/dist/agent/engines/openai/session.d.ts.map +1 -0
  36. package/dist/agent/engines/openai/session.js +447 -0
  37. package/dist/agent/engines/openai/session.js.map +1 -0
  38. package/dist/agent/engines/openai/tools.d.ts +15 -0
  39. package/dist/agent/engines/openai/tools.d.ts.map +1 -0
  40. package/dist/agent/engines/openai/tools.js +221 -0
  41. package/dist/agent/engines/openai/tools.js.map +1 -0
  42. package/dist/agent/engines/pi/session.d.ts +49 -0
  43. package/dist/agent/engines/pi/session.d.ts.map +1 -0
  44. package/dist/agent/engines/pi/session.js +309 -0
  45. package/dist/agent/engines/pi/session.js.map +1 -0
  46. package/dist/agent/engines/pi/tools.d.ts.map +1 -1
  47. package/dist/agent/engines/pi/tools.js +2 -1
  48. package/dist/agent/engines/pi/tools.js.map +1 -1
  49. package/dist/agent/engines/pi-coding/session.js +5 -4
  50. package/dist/agent/engines/pi-coding/session.js.map +1 -1
  51. package/dist/agent/loop.d.ts.map +1 -1
  52. package/dist/agent/loop.js +39 -0
  53. package/dist/agent/loop.js.map +1 -1
  54. package/dist/agent/memory-preload.d.ts +55 -0
  55. package/dist/agent/memory-preload.d.ts.map +1 -0
  56. package/dist/agent/memory-preload.js +166 -0
  57. package/dist/agent/memory-preload.js.map +1 -0
  58. package/dist/agent/model-provider.d.ts +3 -1
  59. package/dist/agent/model-provider.d.ts.map +1 -1
  60. package/dist/agent/model-provider.js +9 -1
  61. package/dist/agent/model-provider.js.map +1 -1
  62. package/dist/agent/providers/claude/cli-resolver.d.ts +16 -0
  63. package/dist/agent/providers/claude/cli-resolver.d.ts.map +1 -0
  64. package/dist/agent/providers/claude/cli-resolver.js +83 -0
  65. package/dist/agent/providers/claude/cli-resolver.js.map +1 -0
  66. package/dist/agent/providers/claude/session-browser-policy.d.ts +9 -0
  67. package/dist/agent/providers/claude/session-browser-policy.d.ts.map +1 -0
  68. package/dist/agent/providers/claude/session-browser-policy.js +49 -0
  69. package/dist/agent/providers/claude/session-browser-policy.js.map +1 -0
  70. package/dist/agent/providers/claude/session.d.ts +304 -0
  71. package/dist/agent/providers/claude/session.d.ts.map +1 -0
  72. package/dist/agent/providers/claude/session.js +1236 -0
  73. package/dist/agent/providers/claude/session.js.map +1 -0
  74. package/dist/agent/providers/client-factory.d.ts +60 -0
  75. package/dist/agent/providers/client-factory.d.ts.map +1 -0
  76. package/dist/agent/providers/client-factory.js +400 -0
  77. package/dist/agent/providers/client-factory.js.map +1 -0
  78. package/dist/agent/providers/openai/file-session.d.ts +19 -0
  79. package/dist/agent/providers/openai/file-session.d.ts.map +1 -0
  80. package/dist/agent/providers/openai/file-session.js +78 -0
  81. package/dist/agent/providers/openai/file-session.js.map +1 -0
  82. package/dist/agent/providers/openai/session.d.ts +55 -0
  83. package/dist/agent/providers/openai/session.d.ts.map +1 -0
  84. package/dist/agent/providers/openai/session.js +447 -0
  85. package/dist/agent/providers/openai/session.js.map +1 -0
  86. package/dist/agent/providers/openai/tools.d.ts +15 -0
  87. package/dist/agent/providers/openai/tools.d.ts.map +1 -0
  88. package/dist/agent/providers/openai/tools.js +229 -0
  89. package/dist/agent/providers/openai/tools.js.map +1 -0
  90. package/dist/agent/providers/session-types.d.ts +153 -0
  91. package/dist/agent/providers/session-types.d.ts.map +1 -0
  92. package/dist/agent/providers/session-types.js +2 -0
  93. package/dist/agent/providers/session-types.js.map +1 -0
  94. package/dist/agent/providers/system-prompt-log.d.ts +9 -0
  95. package/dist/agent/providers/system-prompt-log.d.ts.map +1 -0
  96. package/dist/agent/providers/system-prompt-log.js +46 -0
  97. package/dist/agent/providers/system-prompt-log.js.map +1 -0
  98. package/dist/agent/runtime-surface.d.ts +25 -0
  99. package/dist/agent/runtime-surface.d.ts.map +1 -1
  100. package/dist/agent/runtime-surface.js +18 -27
  101. package/dist/agent/runtime-surface.js.map +1 -1
  102. package/dist/agent/session-manager.d.ts +3 -1
  103. package/dist/agent/session-manager.d.ts.map +1 -1
  104. package/dist/agent/session-manager.js +4 -0
  105. package/dist/agent/session-manager.js.map +1 -1
  106. package/dist/agent/state.d.ts +17 -0
  107. package/dist/agent/state.d.ts.map +1 -1
  108. package/dist/agent/state.js.map +1 -1
  109. package/dist/agent/status.d.ts.map +1 -1
  110. package/dist/agent/status.js +1 -0
  111. package/dist/agent/status.js.map +1 -1
  112. package/dist/agent/stream-handler.d.ts.map +1 -1
  113. package/dist/agent/stream-handler.js +65 -5
  114. package/dist/agent/stream-handler.js.map +1 -1
  115. package/dist/agent/tool-call-watchdog.d.ts +3 -1
  116. package/dist/agent/tool-call-watchdog.d.ts.map +1 -1
  117. package/dist/agent/tool-call-watchdog.js +4 -2
  118. package/dist/agent/tool-call-watchdog.js.map +1 -1
  119. package/dist/agent/transcript-backfill.d.ts +54 -0
  120. package/dist/agent/transcript-backfill.d.ts.map +1 -0
  121. package/dist/agent/transcript-backfill.js +604 -0
  122. package/dist/agent/transcript-backfill.js.map +1 -0
  123. package/dist/agent/transcript-indexer.d.ts +200 -0
  124. package/dist/agent/transcript-indexer.d.ts.map +1 -0
  125. package/dist/agent/transcript-indexer.js +775 -0
  126. package/dist/agent/transcript-indexer.js.map +1 -0
  127. package/dist/agent/transcript-memory-migrations.d.ts +25 -0
  128. package/dist/agent/transcript-memory-migrations.d.ts.map +1 -0
  129. package/dist/agent/transcript-memory-migrations.js +87 -0
  130. package/dist/agent/transcript-memory-migrations.js.map +1 -0
  131. package/dist/agent/tunnel-credential-handler.d.ts +90 -0
  132. package/dist/agent/tunnel-credential-handler.d.ts.map +1 -0
  133. package/dist/agent/tunnel-credential-handler.js +162 -0
  134. package/dist/agent/tunnel-credential-handler.js.map +1 -0
  135. package/dist/agent/usage-backfill-handler.d.ts +18 -0
  136. package/dist/agent/usage-backfill-handler.d.ts.map +1 -0
  137. package/dist/agent/usage-backfill-handler.js +69 -0
  138. package/dist/agent/usage-backfill-handler.js.map +1 -0
  139. package/dist/agent/usage-gate.d.ts +25 -0
  140. package/dist/agent/usage-gate.d.ts.map +1 -0
  141. package/dist/agent/usage-gate.js +83 -0
  142. package/dist/agent/usage-gate.js.map +1 -0
  143. package/dist/agent/usage-handler.d.ts +7 -0
  144. package/dist/agent/usage-handler.d.ts.map +1 -0
  145. package/dist/agent/usage-handler.js +28 -0
  146. package/dist/agent/usage-handler.js.map +1 -0
  147. package/dist/agent/usage-report-builder.d.ts +26 -0
  148. package/dist/agent/usage-report-builder.d.ts.map +1 -0
  149. package/dist/agent/usage-report-builder.js +80 -0
  150. package/dist/agent/usage-report-builder.js.map +1 -0
  151. package/dist/agent/usage-report-queue.d.ts +26 -0
  152. package/dist/agent/usage-report-queue.d.ts.map +1 -0
  153. package/dist/agent/usage-report-queue.js +199 -0
  154. package/dist/agent/usage-report-queue.js.map +1 -0
  155. package/dist/agent/usage-report-types.d.ts +41 -0
  156. package/dist/agent/usage-report-types.d.ts.map +1 -0
  157. package/dist/agent/usage-report-types.js +2 -0
  158. package/dist/agent/usage-report-types.js.map +1 -0
  159. package/dist/agent/usage-reporter.d.ts +31 -0
  160. package/dist/agent/usage-reporter.d.ts.map +1 -0
  161. package/dist/agent/usage-reporter.js +102 -0
  162. package/dist/agent/usage-reporter.js.map +1 -0
  163. package/dist/agent/wake-cycle-runner.d.ts.map +1 -1
  164. package/dist/agent/wake-cycle-runner.js +12 -1
  165. package/dist/agent/wake-cycle-runner.js.map +1 -1
  166. package/dist/agent/wake-cycle-tool-tracker.d.ts +39 -0
  167. package/dist/agent/wake-cycle-tool-tracker.d.ts.map +1 -0
  168. package/dist/agent/wake-cycle-tool-tracker.js +72 -0
  169. package/dist/agent/wake-cycle-tool-tracker.js.map +1 -0
  170. package/dist/billing/payg-handler.d.ts +29 -0
  171. package/dist/billing/payg-handler.d.ts.map +1 -0
  172. package/dist/billing/payg-handler.js +92 -0
  173. package/dist/billing/payg-handler.js.map +1 -0
  174. package/dist/billing/payment-handler.d.ts +24 -0
  175. package/dist/billing/payment-handler.d.ts.map +1 -0
  176. package/dist/billing/payment-handler.js +101 -0
  177. package/dist/billing/payment-handler.js.map +1 -0
  178. package/dist/builtin-skills/catalog/phone-adb-automation/SKILL.md +412 -0
  179. package/dist/builtin-skills/catalog/phone-adb-automation/phone_input.sh +132 -0
  180. package/dist/builtin-skills/catalog/phone-adb-automation/phone_launch.sh +166 -0
  181. package/dist/builtin-skills/catalog/phone-adb-automation/phone_screenshot.sh +87 -0
  182. package/dist/builtin-skills/catalog/phone-adb-automation/phone_security_kbd.py +174 -0
  183. package/dist/builtin-skills/catalog/phone-adb-automation/phone_setup.sh +274 -0
  184. package/dist/builtin-skills/catalog/phone-adb-automation/phone_swipe.sh +111 -0
  185. package/dist/builtin-skills/catalog/phone-adb-automation/phone_tap.sh +87 -0
  186. package/dist/builtin-skills/catalog/phone-adb-automation/phone_ui_parse.py +176 -0
  187. package/dist/builtin-skills/catalog/phone-adb-automation/phone_wake_unlock.sh +67 -0
  188. package/dist/builtin-skills/transcribe-audio/SKILL.md +122 -0
  189. package/dist/channels/interface.d.ts +10 -0
  190. package/dist/channels/interface.d.ts.map +1 -1
  191. package/dist/channels/manager.d.ts.map +1 -1
  192. package/dist/channels/manager.js +3 -0
  193. package/dist/channels/manager.js.map +1 -1
  194. package/dist/channels/telegram.d.ts.map +1 -1
  195. package/dist/channels/telegram.js +8 -1
  196. package/dist/channels/telegram.js.map +1 -1
  197. package/dist/channels/web.d.ts +40 -0
  198. package/dist/channels/web.d.ts.map +1 -0
  199. package/dist/channels/web.js +137 -0
  200. package/dist/channels/web.js.map +1 -0
  201. package/dist/config/types.d.ts +6 -13
  202. package/dist/config/types.d.ts.map +1 -1
  203. package/dist/config/types.js +22 -2
  204. package/dist/config/types.js.map +1 -1
  205. package/dist/data-processing/convert-demo-cli.d.ts +7 -0
  206. package/dist/data-processing/convert-demo-cli.d.ts.map +1 -0
  207. package/dist/data-processing/convert-demo-cli.js +30 -0
  208. package/dist/data-processing/convert-demo-cli.js.map +1 -0
  209. package/dist/data-processing/convert-demo.d.ts +26 -0
  210. package/dist/data-processing/convert-demo.d.ts.map +1 -0
  211. package/dist/data-processing/convert-demo.js +233 -0
  212. package/dist/data-processing/convert-demo.js.map +1 -0
  213. package/dist/e2e/suites/browser-detection.d.ts.map +1 -1
  214. package/dist/e2e/suites/browser-detection.js +7 -3
  215. package/dist/e2e/suites/browser-detection.js.map +1 -1
  216. package/dist/factcheck/agent.d.ts +50 -0
  217. package/dist/factcheck/agent.d.ts.map +1 -0
  218. package/dist/factcheck/agent.js +434 -0
  219. package/dist/factcheck/agent.js.map +1 -0
  220. package/dist/factcheck/financial-verifier.d.ts +32 -0
  221. package/dist/factcheck/financial-verifier.d.ts.map +1 -0
  222. package/dist/factcheck/financial-verifier.js +96 -0
  223. package/dist/factcheck/financial-verifier.js.map +1 -0
  224. package/dist/factcheck/setup.d.ts +32 -0
  225. package/dist/factcheck/setup.d.ts.map +1 -0
  226. package/dist/factcheck/setup.js +70 -0
  227. package/dist/factcheck/setup.js.map +1 -0
  228. package/dist/factcheck/sidecar.d.ts +131 -0
  229. package/dist/factcheck/sidecar.d.ts.map +1 -0
  230. package/dist/factcheck/sidecar.js +349 -0
  231. package/dist/factcheck/sidecar.js.map +1 -0
  232. package/dist/factcheck/store.d.ts +111 -0
  233. package/dist/factcheck/store.d.ts.map +1 -0
  234. package/dist/factcheck/store.js +246 -0
  235. package/dist/factcheck/store.js.map +1 -0
  236. package/dist/factcheck/web-searcher.d.ts +22 -0
  237. package/dist/factcheck/web-searcher.d.ts.map +1 -0
  238. package/dist/factcheck/web-searcher.js +91 -0
  239. package/dist/factcheck/web-searcher.js.map +1 -0
  240. package/dist/i18n/messages.d.ts +8 -0
  241. package/dist/i18n/messages.d.ts.map +1 -1
  242. package/dist/i18n/messages.js +9 -0
  243. package/dist/i18n/messages.js.map +1 -1
  244. package/dist/obs/auth.d.ts +45 -0
  245. package/dist/obs/auth.d.ts.map +1 -0
  246. package/dist/obs/auth.js +181 -0
  247. package/dist/obs/auth.js.map +1 -0
  248. package/dist/obs/rdp/icons/icons/app_windows.svg +4 -0
  249. package/dist/obs/rdp/icons/icons/clip_get.svg +4 -0
  250. package/dist/obs/rdp/icons/icons/clip_send.svg +4 -0
  251. package/dist/obs/rdp/icons/icons/clip_shared.svg +4 -0
  252. package/dist/obs/rdp/icons/icons/clipboard.svg +4 -0
  253. package/dist/obs/rdp/icons/icons/clipboard_shared.svg +4 -0
  254. package/dist/obs/rdp/icons/icons/control.svg +4 -0
  255. package/dist/obs/rdp/icons/icons/desktop.svg +4 -0
  256. package/dist/obs/rdp/icons/icons/display.svg +4 -0
  257. package/dist/obs/rdp/icons/icons/launchpad.svg +4 -0
  258. package/dist/obs/rdp/icons/icons/mission_control.svg +4 -0
  259. package/dist/obs/rdp/icons/icons/screenshot.svg +4 -0
  260. package/dist/obs/rdp/icons/icons/zoom_actual.svg +4 -0
  261. package/dist/obs/rdp/icons/icons/zoom_fit.svg +4 -0
  262. package/dist/obs/rdp/icons/icons/zoom_in.svg +4 -0
  263. package/dist/obs/rdp/icons/icons/zoom_out.svg +4 -0
  264. package/dist/obs/tunnel-telemetry.d.ts +46 -0
  265. package/dist/obs/tunnel-telemetry.d.ts.map +1 -0
  266. package/dist/obs/tunnel-telemetry.js +70 -0
  267. package/dist/obs/tunnel-telemetry.js.map +1 -0
  268. package/dist/onboarding/cloudflared-cert.d.ts +15 -0
  269. package/dist/onboarding/cloudflared-cert.d.ts.map +1 -0
  270. package/dist/onboarding/cloudflared-cert.js +57 -0
  271. package/dist/onboarding/cloudflared-cert.js.map +1 -0
  272. package/dist/onboarding/setup-shared.d.ts.map +1 -1
  273. package/dist/onboarding/setup-shared.js +6 -1
  274. package/dist/onboarding/setup-shared.js.map +1 -1
  275. package/dist/realtime/websocket.d.ts +7 -0
  276. package/dist/realtime/websocket.d.ts.map +1 -0
  277. package/dist/realtime/websocket.js +65 -0
  278. package/dist/realtime/websocket.js.map +1 -0
  279. package/dist/service/gbox-tun.d.ts +14 -0
  280. package/dist/service/gbox-tun.d.ts.map +1 -0
  281. package/dist/service/gbox-tun.js +315 -0
  282. package/dist/service/gbox-tun.js.map +1 -0
  283. package/dist/skills/installed.d.ts +11 -0
  284. package/dist/skills/installed.d.ts.map +1 -0
  285. package/dist/skills/installed.js +35 -0
  286. package/dist/skills/installed.js.map +1 -0
  287. package/dist/tools/coordinate-resolver.d.ts +30 -0
  288. package/dist/tools/coordinate-resolver.d.ts.map +1 -0
  289. package/dist/tools/coordinate-resolver.js +104 -0
  290. package/dist/tools/coordinate-resolver.js.map +1 -0
  291. package/dist/tools/stock-data.d.ts +70 -0
  292. package/dist/tools/stock-data.d.ts.map +1 -0
  293. package/dist/tools/stock-data.js +596 -0
  294. package/dist/tools/stock-data.js.map +1 -0
  295. package/dist/tools/webapp.d.ts +30 -0
  296. package/dist/tools/webapp.d.ts.map +1 -0
  297. package/dist/tools/webapp.js +114 -0
  298. package/dist/tools/webapp.js.map +1 -0
  299. package/dist/utils/wechat-monitor.d.ts +21 -0
  300. package/dist/utils/wechat-monitor.d.ts.map +1 -0
  301. package/dist/utils/wechat-monitor.js +88 -0
  302. package/dist/utils/wechat-monitor.js.map +1 -0
  303. package/dist/webapp/index.d.ts +28 -0
  304. package/dist/webapp/index.d.ts.map +1 -0
  305. package/dist/webapp/index.js +75 -0
  306. package/dist/webapp/index.js.map +1 -0
  307. package/dist/webapp/server.d.ts +32 -0
  308. package/dist/webapp/server.d.ts.map +1 -0
  309. package/dist/webapp/server.js +375 -0
  310. package/dist/webapp/server.js.map +1 -0
  311. package/dist/webapp/storage.d.ts +64 -0
  312. package/dist/webapp/storage.d.ts.map +1 -0
  313. package/dist/webapp/storage.js +103 -0
  314. package/dist/webapp/storage.js.map +1 -0
  315. package/dist/webapp/ui.d.ts +2 -0
  316. package/dist/webapp/ui.d.ts.map +1 -0
  317. package/dist/webapp/ui.js +319 -0
  318. package/dist/webapp/ui.js.map +1 -0
  319. package/dist-agent/bundle.cjs +5227 -4018
  320. package/dist-agent/realtime/assets/index.html +1058 -0
  321. package/dist-agent/realtime/assets/samples/alloy.mp3 +0 -0
  322. package/dist-agent/realtime/assets/samples/ash.mp3 +0 -0
  323. package/dist-agent/realtime/assets/samples/ballad.mp3 +0 -0
  324. package/dist-agent/realtime/assets/samples/cedar.mp3 +0 -0
  325. package/dist-agent/realtime/assets/samples/coral.mp3 +0 -0
  326. package/dist-agent/realtime/assets/samples/echo.mp3 +0 -0
  327. package/dist-agent/realtime/assets/samples/marin.mp3 +0 -0
  328. package/dist-agent/realtime/assets/samples/sage.mp3 +0 -0
  329. package/dist-agent/realtime/assets/samples/shimmer.mp3 +0 -0
  330. package/dist-agent/realtime/assets/samples/verse.mp3 +0 -0
  331. package/package.json +1 -1
@@ -115,6 +115,8 @@ export declare class ActivityTracker {
115
115
  private taskStartedAt;
116
116
  private lastTodos;
117
117
  private recentExchanges;
118
+ /** Rolling buffer of the agent's own assertions, for the fact-check sidecar. */
119
+ private recentAssertions;
118
120
  private streamingActivity;
119
121
  /**
120
122
  * Ordered map of in-flight + recently-completed subagent runs keyed by
@@ -154,6 +156,18 @@ export declare class ActivityTracker {
154
156
  startTask(description: string): void;
155
157
  recordUserMessage(text: string): void;
156
158
  recordAssistantText(text: string): void;
159
+ /**
160
+ * Record a notify_user message the agent sent to the owner. Captured as an
161
+ * assertion (the agent's stated facts to the user) for the fact-check
162
+ * sidecar, distinct from a plain assistant text block.
163
+ */
164
+ recordNotifyUser(text: string): void;
165
+ /**
166
+ * Record a top-level reasoning ("thinking") block. Not surfaced to the fast
167
+ * responder (kept out of recentExchanges) but fed to the fact-check sidecar,
168
+ * since the agent's reasoning is where hallucinated figures first appear.
169
+ */
170
+ recordThinking(text: string): void;
157
171
  recordToolCall(name: string, inputSummary: string): void;
158
172
  recordToolResult(name: string, outputSummary: string): void;
159
173
  recordTodos(todos: TodoItem[]): void;
@@ -255,6 +269,16 @@ export declare class ActivityTracker {
255
269
  * simply be empty.
256
270
  */
257
271
  getMemoryStatus(): MemoryStatus;
272
+ /**
273
+ * Produce a context snapshot for the Async Fact-Check Sidecar (issue #530).
274
+ *
275
+ * This deliberately contains only the agent's own *assertions* — its
276
+ * reasoning (thinking), prose it emitted, and messages it sent the owner —
277
+ * because those carry the claims worth verifying. Tool inputs/results are
278
+ * intentionally excluded: they are external data/actions, not the agent's
279
+ * opinions, and the sidecar gathers its own live evidence to check against.
280
+ */
281
+ getFactCheckSnapshot(): string;
258
282
  getTaskDescription(): string;
259
283
  getTaskElapsedMs(): number | null;
260
284
  getRecentActions(): string[];
@@ -265,6 +289,7 @@ export declare class ActivityTracker {
265
289
  getSummary(): string;
266
290
  clear(): void;
267
291
  private push;
292
+ private pushAssertion;
268
293
  private pushExchange;
269
294
  /**
270
295
  * Bound the subagent map. Running subagents are never evicted — only
@@ -1 +1 @@
1
- {"version":3,"file":"activity-tracker.d.ts","sourceRoot":"","sources":["../../src/agent/activity-tracker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"activity-tracker.d.ts","sourceRoot":"","sources":["../../src/agent/activity-tracker.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,14 @@
1
1
  import { logger } from "../logger.js";
2
2
  const MAX_EXCHANGES = 10;
3
3
  const EXCHANGE_TEXT_LIMIT = 200;
4
+ /**
5
+ * How many recent agent assertions (thinking / assistant / notify_user) to
6
+ * retain for the fact-check sidecar, and the per-entry char cap. Sized so a
7
+ * full audit snapshot stays bounded while still capturing the salient claims
8
+ * from a multi-step turn.
9
+ */
10
+ const MAX_ASSERTIONS = 24;
11
+ const ASSERTION_TEXT_LIMIT = 4000;
4
12
  const SUBAGENT_ACTIVITY_LIMIT = 120;
5
13
  /** Minimum interval (ms) between streaming activity updates to avoid thrash. */
6
14
  const STREAM_ACTIVITY_INTERVAL_MS = 5_000;
@@ -30,6 +38,8 @@ export class ActivityTracker {
30
38
  taskStartedAt = null;
31
39
  lastTodos = [];
32
40
  recentExchanges = [];
41
+ /** Rolling buffer of the agent's own assertions, for the fact-check sidecar. */
42
+ recentAssertions = [];
33
43
  streamingActivity = null;
34
44
  /**
35
45
  * Ordered map of in-flight + recently-completed subagent runs keyed by
@@ -71,6 +81,7 @@ export class ActivityTracker {
71
81
  this.currentTaskDescription = description;
72
82
  this.recentActions = [];
73
83
  this.lastAssistantText = "";
84
+ this.recentAssertions = [];
74
85
  this.taskStartedAt = Date.now();
75
86
  this.streamingActivity = null;
76
87
  this.subagents.clear();
@@ -82,6 +93,25 @@ export class ActivityTracker {
82
93
  recordAssistantText(text) {
83
94
  this.lastAssistantText = text;
84
95
  this.pushExchange({ role: "assistant", text });
96
+ this.pushAssertion({ kind: "assistant", text });
97
+ }
98
+ /**
99
+ * Record a notify_user message the agent sent to the owner. Captured as an
100
+ * assertion (the agent's stated facts to the user) for the fact-check
101
+ * sidecar, distinct from a plain assistant text block.
102
+ */
103
+ recordNotifyUser(text) {
104
+ this.lastAssistantText = text;
105
+ this.pushExchange({ role: "assistant", text });
106
+ this.pushAssertion({ kind: "notify_user", text });
107
+ }
108
+ /**
109
+ * Record a top-level reasoning ("thinking") block. Not surfaced to the fast
110
+ * responder (kept out of recentExchanges) but fed to the fact-check sidecar,
111
+ * since the agent's reasoning is where hallucinated figures first appear.
112
+ */
113
+ recordThinking(text) {
114
+ this.pushAssertion({ kind: "thinking", text });
85
115
  }
86
116
  recordToolCall(name, inputSummary) {
87
117
  const truncated = inputSummary.length > 120
@@ -307,6 +337,36 @@ export class ActivityTracker {
307
337
  recentRecalls: this.memoryRecallEvents.slice(),
308
338
  };
309
339
  }
340
+ /**
341
+ * Produce a context snapshot for the Async Fact-Check Sidecar (issue #530).
342
+ *
343
+ * This deliberately contains only the agent's own *assertions* — its
344
+ * reasoning (thinking), prose it emitted, and messages it sent the owner —
345
+ * because those carry the claims worth verifying. Tool inputs/results are
346
+ * intentionally excluded: they are external data/actions, not the agent's
347
+ * opinions, and the sidecar gathers its own live evidence to check against.
348
+ */
349
+ getFactCheckSnapshot() {
350
+ if (this.recentAssertions.length === 0)
351
+ return "";
352
+ const lines = [];
353
+ if (this.currentTaskDescription) {
354
+ lines.push(`Current task: ${this.currentTaskDescription}`, "");
355
+ }
356
+ lines.push("Agent's recent statements (verify these):");
357
+ const labelFor = {
358
+ thinking: "Reasoning",
359
+ assistant: "Said",
360
+ notify_user: "Told user",
361
+ };
362
+ for (const a of this.recentAssertions) {
363
+ const text = a.text.length > ASSERTION_TEXT_LIMIT
364
+ ? a.text.slice(0, ASSERTION_TEXT_LIMIT) + "…"
365
+ : a.text;
366
+ lines.push(` [${labelFor[a.kind]}] ${text}`);
367
+ }
368
+ return lines.join("\n").trim();
369
+ }
310
370
  getTaskDescription() {
311
371
  return this.currentTaskDescription;
312
372
  }
@@ -383,6 +443,15 @@ export class ActivityTracker {
383
443
  this.recentActions.shift();
384
444
  }
385
445
  }
446
+ pushAssertion(entry) {
447
+ const text = entry.text.trim();
448
+ if (!text)
449
+ return;
450
+ this.recentAssertions.push({ kind: entry.kind, text });
451
+ if (this.recentAssertions.length > MAX_ASSERTIONS) {
452
+ this.recentAssertions.shift();
453
+ }
454
+ }
386
455
  pushExchange(entry) {
387
456
  this.recentExchanges.push(entry);
388
457
  if (this.recentExchanges.length > MAX_EXCHANGES) {
@@ -1 +1 @@
1
- {"version":3,"file":"activity-tracker.js","sourceRoot":"","sources":["../../src/agent/activity-tracker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"activity-tracker.js","sourceRoot":"","sources":["../../src/agent/activity-tracker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Applied-credential signature manifest.
3
+ *
4
+ * Persisted alongside materialised tunnel credentials at
5
+ * `<profileTunnelDir>/.applied-signature.json`. Records the signature
6
+ * the server handed us with the last bundle we successfully applied.
7
+ *
8
+ * The manifest is the *only* piece of state the agent has to remember
9
+ * across process restarts about credential bundles — everything else
10
+ * (creds JSON, config.yml) is reconstructable from a fresh server
11
+ * delivery. The signature is opaque to us; we just echo it back on the
12
+ * next heartbeat so the server can decide whether to re-ship the body.
13
+ *
14
+ * Self-healing properties (intentional):
15
+ * - Manifest missing on disk → no signature sent → server sends
16
+ * bundle → we re-apply and rewrite the manifest. Recovers any
17
+ * install where the manifest was deleted but credentials weren't,
18
+ * or vice versa.
19
+ * - Manifest present but probe says no live tunnel files → we treat
20
+ * the manifest as unusable (return null from `loadIfValid`), the
21
+ * next heartbeat goes signature-free, the server re-ships the
22
+ * bundle, and we land back in a coherent state.
23
+ * - Process restart with everything intact → manifest signature is
24
+ * sent on the startup heartbeat, server replies with no
25
+ * `credentialBundle`, no disk writes, no tunnel restart.
26
+ */
27
+ /**
28
+ * Read the persisted signature, if any. Returns `null` when the file
29
+ * does not exist, fails to parse, has the wrong shape, or refers to a
30
+ * tunnel state that no longer matches what's on disk.
31
+ *
32
+ * The on-disk-coherence check (`probeLocalTunnelCredential()`) is what
33
+ * gives us self-healing: a stranded manifest from a wiped tunnel dir
34
+ * gets ignored, forcing a fresh bundle on the next heartbeat.
35
+ */
36
+ export declare function loadAppliedSignatureIfValid(): string | null;
37
+ /**
38
+ * Persist the signature for the most recently applied bundle. Best-
39
+ * effort: a write failure is logged but does not throw, since the
40
+ * worst case is just an extra full-bundle delivery on the next
41
+ * heartbeat.
42
+ *
43
+ * The file is written with 0o600 to match the credentials sitting next
44
+ * to it; the directory itself is already 0o700 from
45
+ * `runtime-credentials.ts`.
46
+ */
47
+ export declare function writeAppliedSignature(signature: string): void;
48
+ /**
49
+ * Forget the persisted signature. Used by tests; production code never
50
+ * needs to delete it explicitly because writes overwrite in place.
51
+ */
52
+ export declare function __clearAppliedSignatureForTests(): void;
53
+ //# sourceMappingURL=applied-credential-signature.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"applied-credential-signature.d.ts","sourceRoot":"","sources":["../../src/agent/applied-credential-signature.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAwBH;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B,IAAI,MAAM,GAAG,IAAI,CA2C3D;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAgC7D;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,IAAI,IAAI,CAMtD"}
@@ -0,0 +1,137 @@
1
+ /**
2
+ * Applied-credential signature manifest.
3
+ *
4
+ * Persisted alongside materialised tunnel credentials at
5
+ * `<profileTunnelDir>/.applied-signature.json`. Records the signature
6
+ * the server handed us with the last bundle we successfully applied.
7
+ *
8
+ * The manifest is the *only* piece of state the agent has to remember
9
+ * across process restarts about credential bundles — everything else
10
+ * (creds JSON, config.yml) is reconstructable from a fresh server
11
+ * delivery. The signature is opaque to us; we just echo it back on the
12
+ * next heartbeat so the server can decide whether to re-ship the body.
13
+ *
14
+ * Self-healing properties (intentional):
15
+ * - Manifest missing on disk → no signature sent → server sends
16
+ * bundle → we re-apply and rewrite the manifest. Recovers any
17
+ * install where the manifest was deleted but credentials weren't,
18
+ * or vice versa.
19
+ * - Manifest present but probe says no live tunnel files → we treat
20
+ * the manifest as unusable (return null from `loadIfValid`), the
21
+ * next heartbeat goes signature-free, the server re-ships the
22
+ * bundle, and we land back in a coherent state.
23
+ * - Process restart with everything intact → manifest signature is
24
+ * sent on the startup heartbeat, server replies with no
25
+ * `credentialBundle`, no disk writes, no tunnel restart.
26
+ */
27
+ import fs from "node:fs";
28
+ import path from "node:path";
29
+ import { getProfileTunnelDir } from "../config/index.js";
30
+ import { probeLocalTunnelCredential } from "./runtime-credentials.js";
31
+ import { logger } from "../logger.js";
32
+ const MANIFEST_FILENAME = ".applied-signature.json";
33
+ const MANIFEST_VERSION = 1;
34
+ function getManifestPath() {
35
+ return path.join(getProfileTunnelDir(), MANIFEST_FILENAME);
36
+ }
37
+ /**
38
+ * Read the persisted signature, if any. Returns `null` when the file
39
+ * does not exist, fails to parse, has the wrong shape, or refers to a
40
+ * tunnel state that no longer matches what's on disk.
41
+ *
42
+ * The on-disk-coherence check (`probeLocalTunnelCredential()`) is what
43
+ * gives us self-healing: a stranded manifest from a wiped tunnel dir
44
+ * gets ignored, forcing a fresh bundle on the next heartbeat.
45
+ */
46
+ export function loadAppliedSignatureIfValid() {
47
+ const manifestPath = getManifestPath();
48
+ if (!fs.existsSync(manifestPath))
49
+ return null;
50
+ let raw;
51
+ try {
52
+ raw = fs.readFileSync(manifestPath, "utf-8");
53
+ }
54
+ catch (err) {
55
+ logger.warn(`Applied-signature manifest unreadable: ${err instanceof Error ? err.message : String(err)}`);
56
+ return null;
57
+ }
58
+ let parsed;
59
+ try {
60
+ parsed = JSON.parse(raw);
61
+ }
62
+ catch {
63
+ logger.warn(`Applied-signature manifest malformed; ignoring`);
64
+ return null;
65
+ }
66
+ if (!parsed ||
67
+ typeof parsed !== "object" ||
68
+ !("signature" in parsed) ||
69
+ typeof parsed.signature !== "string" ||
70
+ parsed.signature.trim() === "") {
71
+ return null;
72
+ }
73
+ const signature = parsed.signature.trim();
74
+ // Coherence: a manifest is only meaningful when the credentials it
75
+ // refers to actually still exist on disk. If the tunnel files were
76
+ // wiped (e.g. operator deleted `~/.visionclaw/profiles/default/tunnel`)
77
+ // the stored signature lies about our state, so pretend we have none
78
+ // and let the server reissue the bundle.
79
+ if (probeLocalTunnelCredential() === null) {
80
+ return null;
81
+ }
82
+ return signature;
83
+ }
84
+ /**
85
+ * Persist the signature for the most recently applied bundle. Best-
86
+ * effort: a write failure is logged but does not throw, since the
87
+ * worst case is just an extra full-bundle delivery on the next
88
+ * heartbeat.
89
+ *
90
+ * The file is written with 0o600 to match the credentials sitting next
91
+ * to it; the directory itself is already 0o700 from
92
+ * `runtime-credentials.ts`.
93
+ */
94
+ export function writeAppliedSignature(signature) {
95
+ if (typeof signature !== "string" || signature.trim() === "")
96
+ return;
97
+ const manifestPath = getManifestPath();
98
+ const dir = path.dirname(manifestPath);
99
+ try {
100
+ fs.mkdirSync(dir, { recursive: true });
101
+ }
102
+ catch {
103
+ // best-effort; the credential apply path will have created it
104
+ }
105
+ const payload = {
106
+ version: MANIFEST_VERSION,
107
+ signature: signature.trim(),
108
+ appliedAt: new Date().toISOString(),
109
+ };
110
+ try {
111
+ fs.writeFileSync(manifestPath, JSON.stringify(payload, null, 2), "utf-8");
112
+ if (process.platform !== "win32") {
113
+ try {
114
+ fs.chmodSync(manifestPath, 0o600);
115
+ }
116
+ catch {
117
+ // best-effort; directory perms still protect
118
+ }
119
+ }
120
+ }
121
+ catch (err) {
122
+ logger.warn(`Failed to persist applied-signature manifest: ${err instanceof Error ? err.message : String(err)}`);
123
+ }
124
+ }
125
+ /**
126
+ * Forget the persisted signature. Used by tests; production code never
127
+ * needs to delete it explicitly because writes overwrite in place.
128
+ */
129
+ export function __clearAppliedSignatureForTests() {
130
+ try {
131
+ fs.rmSync(getManifestPath(), { force: true });
132
+ }
133
+ catch {
134
+ // ignore
135
+ }
136
+ }
137
+ //# sourceMappingURL=applied-credential-signature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"applied-credential-signature.js","sourceRoot":"","sources":["../../src/agent/applied-credential-signature.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"command-handlers.d.ts","sourceRoot":"","sources":["../../src/agent/command-handlers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAgCxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,KAAK,UAAU,EAAuB,MAAM,YAAY,CAAC;AAqBlE,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,UAAU,CAAC;IACvB,cAAc,EAAE,cAAc,CAAC;IAC/B,YAAY,EAAE,YAAY,CAAC;IAC3B,OAAO,EAAE,cAAc,CAAC;IACxB,MAAM,EAAE,gBAAgB,CAAC;IACzB,WAAW,EAAE,WAAW,CAAC;IACzB,SAAS,EAAE,gBAAgB,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACrC;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,kBAAkB,GAAG,IAAI,CAsnCtE"}
1
+ {"version":3,"file":"command-handlers.d.ts","sourceRoot":"","sources":["../../src/agent/command-handlers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAiCxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,KAAK,UAAU,EAAuB,MAAM,YAAY,CAAC;AAqBlE,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,UAAU,CAAC;IACvB,cAAc,EAAE,cAAc,CAAC;IAC/B,YAAY,EAAE,YAAY,CAAC;IAC3B,OAAO,EAAE,cAAc,CAAC;IACxB,MAAM,EAAE,gBAAgB,CAAC;IACzB,WAAW,EAAE,WAAW,CAAC;IACzB,SAAS,EAAE,gBAAgB,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACrC;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,kBAAkB,GAAG,IAAI,CA4qCtE"}
@@ -735,6 +735,46 @@ export function registerCommandHandlers(deps) {
735
735
  }
736
736
  })();
737
737
  });
738
+ channelManager.on("fact_check_request", (req) => {
739
+ const emoji = req.enabled ? "🔎" : "🚫";
740
+ const state = req.enabled ? t("common.on", getLocale()) : t("common.off", getLocale());
741
+ void (async () => {
742
+ try {
743
+ const prev = config.factCheck.enabled;
744
+ // Mutate the shared in-memory config so the running sidecar + startup
745
+ // gate see the new value immediately, then persist to disk.
746
+ config.factCheck.enabled = req.enabled;
747
+ const freshConfig = loadConfig();
748
+ freshConfig.factCheck.enabled = req.enabled;
749
+ saveConfig(freshConfig);
750
+ logger.system(`Fact-check toggled from ${prev} to ${req.enabled} by ${req.sender} via ${req.channel}`);
751
+ // Apply at runtime without a restart: start or stop the sidecar.
752
+ const { setupFactCheckSidecar } = await import("../factcheck/setup.js");
753
+ if (req.enabled) {
754
+ setupFactCheckSidecar({
755
+ config,
756
+ agentState,
757
+ session,
758
+ activityTracker: agentState.activityTracker,
759
+ });
760
+ }
761
+ else if (agentState.factCheckSidecar) {
762
+ agentState.factCheckSidecar.stop();
763
+ agentState.factCheckSidecar = undefined;
764
+ }
765
+ await channelManager.sendMessage(req.channel, req.sender, t("cmd.fact_check.toggle", getLocale(), emoji, state));
766
+ }
767
+ catch (err) {
768
+ const errMsg = err instanceof Error ? err.message : String(err);
769
+ logger.warn(`Failed to toggle fact-check: ${errMsg}`);
770
+ await channelManager
771
+ .sendMessage(req.channel, req.sender, t("cmd.fact_check.error", getLocale(), emoji, state, errMsg))
772
+ .catch((_sendErr) => {
773
+ logger.warn(`Failed to send fact-check error reply: ${_sendErr instanceof Error ? _sendErr.message : String(_sendErr)}`);
774
+ });
775
+ }
776
+ })();
777
+ });
738
778
  channelManager.on("set_request", (req) => {
739
779
  logger.system(`Settings menu requested by ${req.sender} via ${req.channel}`);
740
780
  channelManager