visionclaw 0.1.209 → 0.1.210-beta.2

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 (636) hide show
  1. package/dist/agent/backup.d.ts +10 -1
  2. package/dist/agent/backup.d.ts.map +1 -1
  3. package/dist/agent/backup.js +24 -1
  4. package/dist/agent/backup.js.map +1 -1
  5. package/dist/agent/browser-launcher.d.ts.map +1 -1
  6. package/dist/agent/browser-launcher.js +22 -20
  7. package/dist/agent/browser-launcher.js.map +1 -1
  8. package/dist/agent/context.d.ts +1 -1
  9. package/dist/agent/context.d.ts.map +1 -1
  10. package/dist/agent/context.js +28 -24
  11. package/dist/agent/context.js.map +1 -1
  12. package/dist/agent/engines/claude/session-browser-policy.d.ts.map +1 -1
  13. package/dist/agent/engines/claude/session-browser-policy.js +2 -16
  14. package/dist/agent/engines/claude/session-browser-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 +6 -9
  17. package/dist/agent/engines/claude/session.js.map +1 -1
  18. package/dist/agent/engines/pi/tools.d.ts +7 -0
  19. package/dist/agent/engines/pi/tools.d.ts.map +1 -1
  20. package/dist/agent/engines/pi/tools.js +5 -1
  21. package/dist/agent/engines/pi/tools.js.map +1 -1
  22. package/dist/agent/engines/pi-coding/session.d.ts.map +1 -1
  23. package/dist/agent/engines/pi-coding/session.js +2 -0
  24. package/dist/agent/engines/pi-coding/session.js.map +1 -1
  25. package/dist/agent/engines/pi-coding/tools.d.ts +1 -0
  26. package/dist/agent/engines/pi-coding/tools.d.ts.map +1 -1
  27. package/dist/agent/engines/pi-coding/tools.js.map +1 -1
  28. package/dist/agent/gather-context.d.ts.map +1 -1
  29. package/dist/agent/gather-context.js +3 -1
  30. package/dist/agent/gather-context.js.map +1 -1
  31. package/dist/agent/heartbeat-manager.d.ts +3 -1
  32. package/dist/agent/heartbeat-manager.d.ts.map +1 -1
  33. package/dist/agent/heartbeat-manager.js +21 -0
  34. package/dist/agent/heartbeat-manager.js.map +1 -1
  35. package/dist/agent/interrupt-handler.d.ts.map +1 -1
  36. package/dist/agent/interrupt-handler.js +7 -1
  37. package/dist/agent/interrupt-handler.js.map +1 -1
  38. package/dist/agent/loop.d.ts.map +1 -1
  39. package/dist/agent/loop.js +76 -23
  40. package/dist/agent/loop.js.map +1 -1
  41. package/dist/agent/onboarding-gate.d.ts +1 -1
  42. package/dist/agent/onboarding-gate.d.ts.map +1 -1
  43. package/dist/agent/onboarding-gate.js +3 -2
  44. package/dist/agent/onboarding-gate.js.map +1 -1
  45. package/dist/agent/owner-channel-resolver.d.ts +1 -1
  46. package/dist/agent/owner-channel-resolver.d.ts.map +1 -1
  47. package/dist/agent/owner-channel-resolver.js +12 -0
  48. package/dist/agent/owner-channel-resolver.js.map +1 -1
  49. package/dist/agent/runtime-surface.d.ts +2 -0
  50. package/dist/agent/runtime-surface.d.ts.map +1 -1
  51. package/dist/agent/runtime-surface.js +3 -0
  52. package/dist/agent/runtime-surface.js.map +1 -1
  53. package/dist/agent/session-manager.d.ts +1 -1
  54. package/dist/agent/session-manager.d.ts.map +1 -1
  55. package/dist/agent/session-manager.js +13 -5
  56. package/dist/agent/session-manager.js.map +1 -1
  57. package/dist/agent/state.d.ts +2 -0
  58. package/dist/agent/state.d.ts.map +1 -1
  59. package/dist/agent/state.js.map +1 -1
  60. package/dist/agent/status.d.ts +1 -1
  61. package/dist/agent/status.d.ts.map +1 -1
  62. package/dist/agent/status.js +45 -14
  63. package/dist/agent/status.js.map +1 -1
  64. package/dist/agent/system-prompt.d.ts +1 -1
  65. package/dist/agent/system-prompt.d.ts.map +1 -1
  66. package/dist/agent/system-prompt.js +29 -13
  67. package/dist/agent/system-prompt.js.map +1 -1
  68. package/dist/agent/usage/usage-gate.d.ts.map +1 -1
  69. package/dist/agent/usage/usage-gate.js +6 -10
  70. package/dist/agent/usage/usage-gate.js.map +1 -1
  71. package/dist/calendar/calendar-interrupt-poller.d.ts +1 -1
  72. package/dist/calendar/calendar-interrupt-poller.d.ts.map +1 -1
  73. package/dist/calendar/calendar-interrupt-poller.js +5 -0
  74. package/dist/calendar/calendar-interrupt-poller.js.map +1 -1
  75. package/dist/calendar/scheduler.d.ts +1 -1
  76. package/dist/calendar/scheduler.d.ts.map +1 -1
  77. package/dist/calendar/scheduler.js +3 -0
  78. package/dist/calendar/scheduler.js.map +1 -1
  79. package/dist/channels/gmail.d.ts +3 -2
  80. package/dist/channels/gmail.d.ts.map +1 -1
  81. package/dist/channels/gmail.js +1 -0
  82. package/dist/channels/gmail.js.map +1 -1
  83. package/dist/channels/manager.d.ts +1 -1
  84. package/dist/channels/manager.d.ts.map +1 -1
  85. package/dist/channels/manager.js +22 -11
  86. package/dist/channels/manager.js.map +1 -1
  87. package/dist/channels/queue.d.ts +4 -0
  88. package/dist/channels/queue.d.ts.map +1 -1
  89. package/dist/channels/queue.js +10 -0
  90. package/dist/channels/queue.js.map +1 -1
  91. package/dist/channels/tui.d.ts +24 -10
  92. package/dist/channels/tui.d.ts.map +1 -1
  93. package/dist/channels/tui.js +104 -15
  94. package/dist/channels/tui.js.map +1 -1
  95. package/dist/cli/index.d.ts +1 -1
  96. package/dist/cli/index.d.ts.map +1 -1
  97. package/dist/cli/index.js +19 -28
  98. package/dist/cli/index.js.map +1 -1
  99. package/dist/config/index.d.ts.map +1 -1
  100. package/dist/config/index.js +3 -1
  101. package/dist/config/index.js.map +1 -1
  102. package/dist/config/types.d.ts +32 -1
  103. package/dist/config/types.d.ts.map +1 -1
  104. package/dist/config/types.js +48 -1
  105. package/dist/config/types.js.map +1 -1
  106. package/dist/e2e/suites/google.d.ts.map +1 -1
  107. package/dist/e2e/suites/google.js +11 -3
  108. package/dist/e2e/suites/google.js.map +1 -1
  109. package/dist/index.js.map +1 -1
  110. package/dist/obs/rdp/backend.d.ts +12 -0
  111. package/dist/obs/rdp/backend.d.ts.map +1 -0
  112. package/dist/obs/rdp/backend.js +10 -0
  113. package/dist/obs/rdp/backend.js.map +1 -0
  114. package/dist/obs/rdp/linux-x11-backend.d.ts +25 -0
  115. package/dist/obs/rdp/linux-x11-backend.d.ts.map +1 -0
  116. package/dist/obs/rdp/linux-x11-backend.js +161 -0
  117. package/dist/obs/rdp/linux-x11-backend.js.map +1 -0
  118. package/dist/obs/rdp/macos-backend.d.ts +12 -0
  119. package/dist/obs/rdp/macos-backend.d.ts.map +1 -0
  120. package/dist/obs/rdp/macos-backend.js +39 -0
  121. package/dist/obs/rdp/macos-backend.js.map +1 -0
  122. package/dist/obs/rdp/stream-manager.d.ts +3 -0
  123. package/dist/obs/rdp/stream-manager.d.ts.map +1 -1
  124. package/dist/obs/rdp/stream-manager.js +23 -42
  125. package/dist/obs/rdp/stream-manager.js.map +1 -1
  126. package/dist/obs/server.d.ts +1 -1
  127. package/dist/obs/server.d.ts.map +1 -1
  128. package/dist/obs/server.js +8 -3
  129. package/dist/obs/server.js.map +1 -1
  130. package/dist/onboarding/bootstrap-client.d.ts +43 -18
  131. package/dist/onboarding/bootstrap-client.d.ts.map +1 -1
  132. package/dist/onboarding/bootstrap-client.js +11 -1
  133. package/dist/onboarding/bootstrap-client.js.map +1 -1
  134. package/dist/onboarding/generate-wallpaper.d.ts +29 -0
  135. package/dist/onboarding/generate-wallpaper.d.ts.map +1 -1
  136. package/dist/onboarding/generate-wallpaper.js +58 -38
  137. package/dist/onboarding/generate-wallpaper.js.map +1 -1
  138. package/dist/onboarding/host-resolver.d.ts +2 -0
  139. package/dist/onboarding/host-resolver.d.ts.map +1 -0
  140. package/dist/onboarding/host-resolver.js +18 -0
  141. package/dist/onboarding/host-resolver.js.map +1 -0
  142. package/dist/onboarding/index.d.ts.map +1 -1
  143. package/dist/onboarding/index.js +2 -17
  144. package/dist/onboarding/index.js.map +1 -1
  145. package/dist/onboarding/onboarding-service-client.d.ts +2 -0
  146. package/dist/onboarding/onboarding-service-client.d.ts.map +1 -1
  147. package/dist/onboarding/onboarding-service-client.js.map +1 -1
  148. package/dist/onboarding/prepare-linux.d.ts +9 -0
  149. package/dist/onboarding/prepare-linux.d.ts.map +1 -0
  150. package/dist/onboarding/prepare-linux.js +64 -0
  151. package/dist/onboarding/prepare-linux.js.map +1 -0
  152. package/dist/onboarding/send-invite.d.ts +1 -1
  153. package/dist/onboarding/send-invite.d.ts.map +1 -1
  154. package/dist/onboarding/send-invite.js +23 -7
  155. package/dist/onboarding/send-invite.js.map +1 -1
  156. package/dist/onboarding/setup-shared.d.ts +10 -2
  157. package/dist/onboarding/setup-shared.d.ts.map +1 -1
  158. package/dist/onboarding/setup-shared.js +37 -6
  159. package/dist/onboarding/setup-shared.js.map +1 -1
  160. package/dist/onboarding/setup-state.d.ts +1 -0
  161. package/dist/onboarding/setup-state.d.ts.map +1 -1
  162. package/dist/onboarding/setup-state.js +1 -0
  163. package/dist/onboarding/setup-state.js.map +1 -1
  164. package/dist/onboarding/setup-steps.d.ts.map +1 -1
  165. package/dist/onboarding/setup-steps.js +53 -18
  166. package/dist/onboarding/setup-steps.js.map +1 -1
  167. package/dist/onboarding/wallpaper-contract.d.ts +38 -0
  168. package/dist/onboarding/wallpaper-contract.d.ts.map +1 -0
  169. package/dist/onboarding/wallpaper-contract.js +2 -0
  170. package/dist/onboarding/wallpaper-contract.js.map +1 -0
  171. package/dist/onboarding/wallpaper-linux-x11.d.ts +8 -0
  172. package/dist/onboarding/wallpaper-linux-x11.d.ts.map +1 -0
  173. package/dist/onboarding/wallpaper-linux-x11.js +72 -0
  174. package/dist/onboarding/wallpaper-linux-x11.js.map +1 -0
  175. package/dist/onboarding/wallpaper-macos.d.ts +4 -0
  176. package/dist/onboarding/wallpaper-macos.d.ts.map +1 -0
  177. package/dist/onboarding/wallpaper-macos.js +32 -0
  178. package/dist/onboarding/wallpaper-macos.js.map +1 -0
  179. package/dist/onboarding/wallpaper-platform.d.ts +4 -0
  180. package/dist/onboarding/wallpaper-platform.d.ts.map +1 -0
  181. package/dist/onboarding/wallpaper-platform.js +41 -0
  182. package/dist/onboarding/wallpaper-platform.js.map +1 -0
  183. package/dist/reconfigure.d.ts.map +1 -1
  184. package/dist/reconfigure.js +16 -5
  185. package/dist/reconfigure.js.map +1 -1
  186. package/dist/reset.d.ts.map +1 -1
  187. package/dist/reset.js +7 -0
  188. package/dist/reset.js.map +1 -1
  189. package/dist/restore.d.ts +2 -0
  190. package/dist/restore.d.ts.map +1 -1
  191. package/dist/restore.js +25 -0
  192. package/dist/restore.js.map +1 -1
  193. package/dist/runtime/linux-baseline.d.ts +2 -0
  194. package/dist/runtime/linux-baseline.d.ts.map +1 -0
  195. package/dist/runtime/linux-baseline.js +21 -0
  196. package/dist/runtime/linux-baseline.js.map +1 -0
  197. package/dist/service/daemon.d.ts.map +1 -1
  198. package/dist/service/daemon.js +24 -0
  199. package/dist/service/daemon.js.map +1 -1
  200. package/dist/service/systemd.d.ts +11 -0
  201. package/dist/service/systemd.d.ts.map +1 -0
  202. package/dist/service/systemd.js +63 -0
  203. package/dist/service/systemd.js.map +1 -0
  204. package/dist/system/host-capabilities.d.ts +35 -0
  205. package/dist/system/host-capabilities.d.ts.map +1 -0
  206. package/dist/system/host-capabilities.js +107 -0
  207. package/dist/system/host-capabilities.js.map +1 -0
  208. package/dist/system/machine-identity.d.ts.map +1 -1
  209. package/dist/system/machine-identity.js +15 -0
  210. package/dist/system/machine-identity.js.map +1 -1
  211. package/dist/tools/computer-use.d.ts.map +1 -1
  212. package/dist/tools/computer-use.js +9 -2
  213. package/dist/tools/computer-use.js.map +1 -1
  214. package/dist/tools/desktop-executor-factory.d.ts.map +1 -1
  215. package/dist/tools/desktop-executor-factory.js +3 -0
  216. package/dist/tools/desktop-executor-factory.js.map +1 -1
  217. package/dist/tools/desktop-executor-linux.d.ts +19 -0
  218. package/dist/tools/desktop-executor-linux.d.ts.map +1 -0
  219. package/dist/tools/desktop-executor-linux.js +89 -0
  220. package/dist/tools/desktop-executor-linux.js.map +1 -0
  221. package/dist/tools/index.d.ts +10 -0
  222. package/dist/tools/index.d.ts.map +1 -1
  223. package/dist/tools/index.js +6 -3
  224. package/dist/tools/index.js.map +1 -1
  225. package/dist/tools/screenshot.js +7 -2
  226. package/dist/tools/screenshot.js.map +1 -1
  227. package/dist/tui/client.d.ts +46 -7
  228. package/dist/tui/client.d.ts.map +1 -1
  229. package/dist/tui/client.js +60 -16
  230. package/dist/tui/client.js.map +1 -1
  231. package/dist/tui/protocol.d.ts +40 -0
  232. package/dist/tui/protocol.d.ts.map +1 -0
  233. package/dist/tui/protocol.js +20 -0
  234. package/dist/tui/protocol.js.map +1 -0
  235. package/dist/tui/request-store.d.ts +40 -0
  236. package/dist/tui/request-store.d.ts.map +1 -0
  237. package/dist/tui/request-store.js +236 -0
  238. package/dist/tui/request-store.js.map +1 -0
  239. package/dist/tui/server.d.ts +3 -0
  240. package/dist/tui/server.d.ts.map +1 -1
  241. package/dist/tui/server.js +225 -36
  242. package/dist/tui/server.js.map +1 -1
  243. package/dist/workspace/google/gmail-email.d.ts +8 -2
  244. package/dist/workspace/google/gmail-email.d.ts.map +1 -1
  245. package/dist/workspace/google/gmail-email.js +6 -0
  246. package/dist/workspace/google/gmail-email.js.map +1 -1
  247. package/dist/workspace/provider-factory.d.ts +1 -1
  248. package/dist/workspace/provider-factory.d.ts.map +1 -1
  249. package/dist/workspace/provider-factory.js +27 -12
  250. package/dist/workspace/provider-factory.js.map +1 -1
  251. package/dist-agent/bundle.cjs +7037 -5329
  252. package/package.json +2 -2
  253. package/dist/agent/applied-credential-signature.d.ts +0 -53
  254. package/dist/agent/applied-credential-signature.d.ts.map +0 -1
  255. package/dist/agent/applied-credential-signature.js +0 -137
  256. package/dist/agent/applied-credential-signature.js.map +0 -1
  257. package/dist/agent/engines/client-factory.d.ts +0 -63
  258. package/dist/agent/engines/client-factory.d.ts.map +0 -1
  259. package/dist/agent/engines/client-factory.js +0 -382
  260. package/dist/agent/engines/client-factory.js.map +0 -1
  261. package/dist/agent/engines/engine.d.ts +0 -8
  262. package/dist/agent/engines/engine.d.ts.map +0 -1
  263. package/dist/agent/engines/engine.js +0 -15
  264. package/dist/agent/engines/engine.js.map +0 -1
  265. package/dist/agent/engines/openai/file-session.d.ts +0 -19
  266. package/dist/agent/engines/openai/file-session.d.ts.map +0 -1
  267. package/dist/agent/engines/openai/file-session.js +0 -78
  268. package/dist/agent/engines/openai/file-session.js.map +0 -1
  269. package/dist/agent/engines/openai/file-tools.d.ts +0 -35
  270. package/dist/agent/engines/openai/file-tools.d.ts.map +0 -1
  271. package/dist/agent/engines/openai/file-tools.js +0 -194
  272. package/dist/agent/engines/openai/file-tools.js.map +0 -1
  273. package/dist/agent/engines/openai/session.d.ts +0 -55
  274. package/dist/agent/engines/openai/session.d.ts.map +0 -1
  275. package/dist/agent/engines/openai/session.js +0 -447
  276. package/dist/agent/engines/openai/session.js.map +0 -1
  277. package/dist/agent/engines/openai/tools.d.ts +0 -15
  278. package/dist/agent/engines/openai/tools.d.ts.map +0 -1
  279. package/dist/agent/engines/openai/tools.js +0 -221
  280. package/dist/agent/engines/openai/tools.js.map +0 -1
  281. package/dist/agent/engines/pi/session.d.ts +0 -49
  282. package/dist/agent/engines/pi/session.d.ts.map +0 -1
  283. package/dist/agent/engines/pi/session.js +0 -309
  284. package/dist/agent/engines/pi/session.js.map +0 -1
  285. package/dist/agent/memory-preload.d.ts +0 -55
  286. package/dist/agent/memory-preload.d.ts.map +0 -1
  287. package/dist/agent/memory-preload.js +0 -166
  288. package/dist/agent/memory-preload.js.map +0 -1
  289. package/dist/agent/providers/claude/cli-resolver.d.ts +0 -16
  290. package/dist/agent/providers/claude/cli-resolver.d.ts.map +0 -1
  291. package/dist/agent/providers/claude/cli-resolver.js +0 -83
  292. package/dist/agent/providers/claude/cli-resolver.js.map +0 -1
  293. package/dist/agent/providers/claude/session-browser-policy.d.ts +0 -9
  294. package/dist/agent/providers/claude/session-browser-policy.d.ts.map +0 -1
  295. package/dist/agent/providers/claude/session-browser-policy.js +0 -49
  296. package/dist/agent/providers/claude/session-browser-policy.js.map +0 -1
  297. package/dist/agent/providers/claude/session.d.ts +0 -304
  298. package/dist/agent/providers/claude/session.d.ts.map +0 -1
  299. package/dist/agent/providers/claude/session.js +0 -1236
  300. package/dist/agent/providers/claude/session.js.map +0 -1
  301. package/dist/agent/providers/client-factory.d.ts +0 -60
  302. package/dist/agent/providers/client-factory.d.ts.map +0 -1
  303. package/dist/agent/providers/client-factory.js +0 -400
  304. package/dist/agent/providers/client-factory.js.map +0 -1
  305. package/dist/agent/providers/openai/file-session.d.ts +0 -19
  306. package/dist/agent/providers/openai/file-session.d.ts.map +0 -1
  307. package/dist/agent/providers/openai/file-session.js +0 -78
  308. package/dist/agent/providers/openai/file-session.js.map +0 -1
  309. package/dist/agent/providers/openai/session.d.ts +0 -55
  310. package/dist/agent/providers/openai/session.d.ts.map +0 -1
  311. package/dist/agent/providers/openai/session.js +0 -447
  312. package/dist/agent/providers/openai/session.js.map +0 -1
  313. package/dist/agent/providers/openai/tools.d.ts +0 -15
  314. package/dist/agent/providers/openai/tools.d.ts.map +0 -1
  315. package/dist/agent/providers/openai/tools.js +0 -229
  316. package/dist/agent/providers/openai/tools.js.map +0 -1
  317. package/dist/agent/providers/session-types.d.ts +0 -153
  318. package/dist/agent/providers/session-types.d.ts.map +0 -1
  319. package/dist/agent/providers/session-types.js +0 -2
  320. package/dist/agent/providers/session-types.js.map +0 -1
  321. package/dist/agent/providers/system-prompt-log.d.ts +0 -9
  322. package/dist/agent/providers/system-prompt-log.d.ts.map +0 -1
  323. package/dist/agent/providers/system-prompt-log.js +0 -46
  324. package/dist/agent/providers/system-prompt-log.js.map +0 -1
  325. package/dist/agent/qq-claim-signal.d.ts +0 -9
  326. package/dist/agent/qq-claim-signal.d.ts.map +0 -1
  327. package/dist/agent/qq-claim-signal.js +0 -38
  328. package/dist/agent/qq-claim-signal.js.map +0 -1
  329. package/dist/agent/transcript-backfill.d.ts +0 -54
  330. package/dist/agent/transcript-backfill.d.ts.map +0 -1
  331. package/dist/agent/transcript-backfill.js +0 -604
  332. package/dist/agent/transcript-backfill.js.map +0 -1
  333. package/dist/agent/transcript-indexer.d.ts +0 -200
  334. package/dist/agent/transcript-indexer.d.ts.map +0 -1
  335. package/dist/agent/transcript-indexer.js +0 -775
  336. package/dist/agent/transcript-indexer.js.map +0 -1
  337. package/dist/agent/transcript-memory-migrations.d.ts +0 -25
  338. package/dist/agent/transcript-memory-migrations.d.ts.map +0 -1
  339. package/dist/agent/transcript-memory-migrations.js +0 -87
  340. package/dist/agent/transcript-memory-migrations.js.map +0 -1
  341. package/dist/agent/tunnel-credential-handler.d.ts +0 -90
  342. package/dist/agent/tunnel-credential-handler.d.ts.map +0 -1
  343. package/dist/agent/tunnel-credential-handler.js +0 -162
  344. package/dist/agent/tunnel-credential-handler.js.map +0 -1
  345. package/dist/agent/usage-backfill-handler.d.ts +0 -18
  346. package/dist/agent/usage-backfill-handler.d.ts.map +0 -1
  347. package/dist/agent/usage-backfill-handler.js +0 -69
  348. package/dist/agent/usage-backfill-handler.js.map +0 -1
  349. package/dist/agent/usage-gate.d.ts +0 -25
  350. package/dist/agent/usage-gate.d.ts.map +0 -1
  351. package/dist/agent/usage-gate.js +0 -83
  352. package/dist/agent/usage-gate.js.map +0 -1
  353. package/dist/agent/usage-handler.d.ts +0 -7
  354. package/dist/agent/usage-handler.d.ts.map +0 -1
  355. package/dist/agent/usage-handler.js +0 -28
  356. package/dist/agent/usage-handler.js.map +0 -1
  357. package/dist/agent/usage-report-builder.d.ts +0 -26
  358. package/dist/agent/usage-report-builder.d.ts.map +0 -1
  359. package/dist/agent/usage-report-builder.js +0 -80
  360. package/dist/agent/usage-report-builder.js.map +0 -1
  361. package/dist/agent/usage-report-queue.d.ts +0 -26
  362. package/dist/agent/usage-report-queue.d.ts.map +0 -1
  363. package/dist/agent/usage-report-queue.js +0 -199
  364. package/dist/agent/usage-report-queue.js.map +0 -1
  365. package/dist/agent/usage-report-types.d.ts +0 -41
  366. package/dist/agent/usage-report-types.d.ts.map +0 -1
  367. package/dist/agent/usage-report-types.js +0 -2
  368. package/dist/agent/usage-report-types.js.map +0 -1
  369. package/dist/agent/usage-reporter.d.ts +0 -31
  370. package/dist/agent/usage-reporter.d.ts.map +0 -1
  371. package/dist/agent/usage-reporter.js +0 -102
  372. package/dist/agent/usage-reporter.js.map +0 -1
  373. package/dist/agent/wake-cycle-tool-tracker.d.ts +0 -39
  374. package/dist/agent/wake-cycle-tool-tracker.d.ts.map +0 -1
  375. package/dist/agent/wake-cycle-tool-tracker.js +0 -72
  376. package/dist/agent/wake-cycle-tool-tracker.js.map +0 -1
  377. package/dist/anthropic-credentials.d.ts +0 -24
  378. package/dist/anthropic-credentials.d.ts.map +0 -1
  379. package/dist/anthropic-credentials.js +0 -37
  380. package/dist/anthropic-credentials.js.map +0 -1
  381. package/dist/billing/payg-handler.d.ts +0 -29
  382. package/dist/billing/payg-handler.d.ts.map +0 -1
  383. package/dist/billing/payg-handler.js +0 -92
  384. package/dist/billing/payg-handler.js.map +0 -1
  385. package/dist/billing/payment-handler.d.ts +0 -24
  386. package/dist/billing/payment-handler.d.ts.map +0 -1
  387. package/dist/billing/payment-handler.js +0 -101
  388. package/dist/billing/payment-handler.js.map +0 -1
  389. package/dist/builtin-skills/catalog/phone-adb-automation/SKILL.md +0 -412
  390. package/dist/builtin-skills/catalog/phone-adb-automation/phone_input.sh +0 -132
  391. package/dist/builtin-skills/catalog/phone-adb-automation/phone_launch.sh +0 -166
  392. package/dist/builtin-skills/catalog/phone-adb-automation/phone_screenshot.sh +0 -87
  393. package/dist/builtin-skills/catalog/phone-adb-automation/phone_security_kbd.py +0 -174
  394. package/dist/builtin-skills/catalog/phone-adb-automation/phone_setup.sh +0 -274
  395. package/dist/builtin-skills/catalog/phone-adb-automation/phone_swipe.sh +0 -111
  396. package/dist/builtin-skills/catalog/phone-adb-automation/phone_tap.sh +0 -87
  397. package/dist/builtin-skills/catalog/phone-adb-automation/phone_ui_parse.py +0 -176
  398. package/dist/builtin-skills/catalog/phone-adb-automation/phone_wake_unlock.sh +0 -67
  399. package/dist/builtin-skills/transcribe-audio/SKILL.md +0 -122
  400. package/dist/calendar/google-calendar.d.ts +0 -54
  401. package/dist/calendar/google-calendar.d.ts.map +0 -1
  402. package/dist/calendar/google-calendar.js +0 -156
  403. package/dist/calendar/google-calendar.js.map +0 -1
  404. package/dist/channels/web.d.ts +0 -40
  405. package/dist/channels/web.d.ts.map +0 -1
  406. package/dist/channels/web.js +0 -137
  407. package/dist/channels/web.js.map +0 -1
  408. package/dist/config/models.d.ts +0 -32
  409. package/dist/config/models.d.ts.map +0 -1
  410. package/dist/config/models.js +0 -57
  411. package/dist/config/models.js.map +0 -1
  412. package/dist/data-processing/convert-demo-cli.d.ts +0 -7
  413. package/dist/data-processing/convert-demo-cli.d.ts.map +0 -1
  414. package/dist/data-processing/convert-demo-cli.js +0 -30
  415. package/dist/data-processing/convert-demo-cli.js.map +0 -1
  416. package/dist/data-processing/convert-demo.d.ts +0 -26
  417. package/dist/data-processing/convert-demo.d.ts.map +0 -1
  418. package/dist/data-processing/convert-demo.js +0 -233
  419. package/dist/data-processing/convert-demo.js.map +0 -1
  420. package/dist/drive/google-drive.d.ts +0 -83
  421. package/dist/drive/google-drive.d.ts.map +0 -1
  422. package/dist/drive/google-drive.js +0 -219
  423. package/dist/drive/google-drive.js.map +0 -1
  424. package/dist/email/gmail-email.d.ts +0 -64
  425. package/dist/email/gmail-email.d.ts.map +0 -1
  426. package/dist/email/gmail-email.js +0 -167
  427. package/dist/email/gmail-email.js.map +0 -1
  428. package/dist/factcheck/agent.d.ts +0 -50
  429. package/dist/factcheck/agent.d.ts.map +0 -1
  430. package/dist/factcheck/agent.js +0 -508
  431. package/dist/factcheck/agent.js.map +0 -1
  432. package/dist/factcheck/financial-verifier.d.ts +0 -49
  433. package/dist/factcheck/financial-verifier.d.ts.map +0 -1
  434. package/dist/factcheck/financial-verifier.js +0 -109
  435. package/dist/factcheck/financial-verifier.js.map +0 -1
  436. package/dist/factcheck/setup.d.ts +0 -32
  437. package/dist/factcheck/setup.d.ts.map +0 -1
  438. package/dist/factcheck/setup.js +0 -70
  439. package/dist/factcheck/setup.js.map +0 -1
  440. package/dist/factcheck/sidecar.d.ts +0 -131
  441. package/dist/factcheck/sidecar.d.ts.map +0 -1
  442. package/dist/factcheck/sidecar.js +0 -348
  443. package/dist/factcheck/sidecar.js.map +0 -1
  444. package/dist/factcheck/store.d.ts +0 -111
  445. package/dist/factcheck/store.d.ts.map +0 -1
  446. package/dist/factcheck/store.js +0 -246
  447. package/dist/factcheck/store.js.map +0 -1
  448. package/dist/factcheck/web-searcher.d.ts +0 -22
  449. package/dist/factcheck/web-searcher.d.ts.map +0 -1
  450. package/dist/factcheck/web-searcher.js +0 -90
  451. package/dist/factcheck/web-searcher.js.map +0 -1
  452. package/dist/obs/auth.d.ts +0 -45
  453. package/dist/obs/auth.d.ts.map +0 -1
  454. package/dist/obs/auth.js +0 -181
  455. package/dist/obs/auth.js.map +0 -1
  456. package/dist/obs/mini-app/tasks.d.ts +0 -2
  457. package/dist/obs/mini-app/tasks.d.ts.map +0 -1
  458. package/dist/obs/mini-app/tasks.js +0 -506
  459. package/dist/obs/mini-app/tasks.js.map +0 -1
  460. package/dist/obs/rdp/icons/icons/app_windows.svg +0 -4
  461. package/dist/obs/rdp/icons/icons/clip_get.svg +0 -4
  462. package/dist/obs/rdp/icons/icons/clip_send.svg +0 -4
  463. package/dist/obs/rdp/icons/icons/clip_shared.svg +0 -4
  464. package/dist/obs/rdp/icons/icons/clipboard.svg +0 -4
  465. package/dist/obs/rdp/icons/icons/clipboard_shared.svg +0 -4
  466. package/dist/obs/rdp/icons/icons/control.svg +0 -4
  467. package/dist/obs/rdp/icons/icons/desktop.svg +0 -4
  468. package/dist/obs/rdp/icons/icons/display.svg +0 -4
  469. package/dist/obs/rdp/icons/icons/launchpad.svg +0 -4
  470. package/dist/obs/rdp/icons/icons/mission_control.svg +0 -4
  471. package/dist/obs/rdp/icons/icons/screenshot.svg +0 -4
  472. package/dist/obs/rdp/icons/icons/zoom_actual.svg +0 -4
  473. package/dist/obs/rdp/icons/icons/zoom_fit.svg +0 -4
  474. package/dist/obs/rdp/icons/icons/zoom_in.svg +0 -4
  475. package/dist/obs/rdp/icons/icons/zoom_out.svg +0 -4
  476. package/dist/obs/tunnel-telemetry.d.ts +0 -46
  477. package/dist/obs/tunnel-telemetry.d.ts.map +0 -1
  478. package/dist/obs/tunnel-telemetry.js +0 -70
  479. package/dist/obs/tunnel-telemetry.js.map +0 -1
  480. package/dist/onboarding/cloudflared-cert.d.ts +0 -15
  481. package/dist/onboarding/cloudflared-cert.d.ts.map +0 -1
  482. package/dist/onboarding/cloudflared-cert.js +0 -57
  483. package/dist/onboarding/cloudflared-cert.js.map +0 -1
  484. package/dist/onboarding/gh-auth-browser.d.ts +0 -10
  485. package/dist/onboarding/gh-auth-browser.d.ts.map +0 -1
  486. package/dist/onboarding/gh-auth-browser.js +0 -70
  487. package/dist/onboarding/gh-auth-browser.js.map +0 -1
  488. package/dist/onboarding/provision-eth-wallet.d.ts +0 -7
  489. package/dist/onboarding/provision-eth-wallet.d.ts.map +0 -1
  490. package/dist/onboarding/provision-eth-wallet.js +0 -14
  491. package/dist/onboarding/provision-eth-wallet.js.map +0 -1
  492. package/dist/onboarding/provision-workspace-account.d.ts +0 -14
  493. package/dist/onboarding/provision-workspace-account.d.ts.map +0 -1
  494. package/dist/onboarding/provision-workspace-account.js +0 -165
  495. package/dist/onboarding/provision-workspace-account.js.map +0 -1
  496. package/dist/onboarding/provisioning-spec.d.ts +0 -62
  497. package/dist/onboarding/provisioning-spec.d.ts.map +0 -1
  498. package/dist/onboarding/provisioning-spec.js +0 -159
  499. package/dist/onboarding/provisioning-spec.js.map +0 -1
  500. package/dist/onboarding/send-identity-credentials.d.ts +0 -11
  501. package/dist/onboarding/send-identity-credentials.d.ts.map +0 -1
  502. package/dist/onboarding/send-identity-credentials.js +0 -110
  503. package/dist/onboarding/send-identity-credentials.js.map +0 -1
  504. package/dist/onboarding/setup-credentials.d.ts +0 -7
  505. package/dist/onboarding/setup-credentials.d.ts.map +0 -1
  506. package/dist/onboarding/setup-credentials.js +0 -44
  507. package/dist/onboarding/setup-credentials.js.map +0 -1
  508. package/dist/openai-credentials.d.ts +0 -30
  509. package/dist/openai-credentials.d.ts.map +0 -1
  510. package/dist/openai-credentials.js +0 -37
  511. package/dist/openai-credentials.js.map +0 -1
  512. package/dist/phonecall-credentials.d.ts +0 -21
  513. package/dist/phonecall-credentials.d.ts.map +0 -1
  514. package/dist/phonecall-credentials.js +0 -34
  515. package/dist/phonecall-credentials.js.map +0 -1
  516. package/dist/realtime/agent-bridge.d.ts +0 -7
  517. package/dist/realtime/agent-bridge.d.ts.map +0 -1
  518. package/dist/realtime/agent-bridge.js +0 -31
  519. package/dist/realtime/agent-bridge.js.map +0 -1
  520. package/dist/realtime/assets/index.html +0 -1058
  521. package/dist/realtime/assets/samples/alloy.mp3 +0 -0
  522. package/dist/realtime/assets/samples/ash.mp3 +0 -0
  523. package/dist/realtime/assets/samples/ballad.mp3 +0 -0
  524. package/dist/realtime/assets/samples/cedar.mp3 +0 -0
  525. package/dist/realtime/assets/samples/coral.mp3 +0 -0
  526. package/dist/realtime/assets/samples/echo.mp3 +0 -0
  527. package/dist/realtime/assets/samples/marin.mp3 +0 -0
  528. package/dist/realtime/assets/samples/sage.mp3 +0 -0
  529. package/dist/realtime/assets/samples/shimmer.mp3 +0 -0
  530. package/dist/realtime/assets/samples/verse.mp3 +0 -0
  531. package/dist/realtime/context.d.ts +0 -14
  532. package/dist/realtime/context.d.ts.map +0 -1
  533. package/dist/realtime/context.js +0 -153
  534. package/dist/realtime/context.js.map +0 -1
  535. package/dist/realtime/http-helpers.d.ts +0 -5
  536. package/dist/realtime/http-helpers.d.ts.map +0 -1
  537. package/dist/realtime/http-helpers.js +0 -29
  538. package/dist/realtime/http-helpers.js.map +0 -1
  539. package/dist/realtime/index.d.ts +0 -62
  540. package/dist/realtime/index.d.ts.map +0 -1
  541. package/dist/realtime/index.js +0 -94
  542. package/dist/realtime/index.js.map +0 -1
  543. package/dist/realtime/server.d.ts +0 -6
  544. package/dist/realtime/server.d.ts.map +0 -1
  545. package/dist/realtime/server.js +0 -479
  546. package/dist/realtime/server.js.map +0 -1
  547. package/dist/realtime/telegram-auth.d.ts +0 -2
  548. package/dist/realtime/telegram-auth.d.ts.map +0 -1
  549. package/dist/realtime/telegram-auth.js +0 -24
  550. package/dist/realtime/telegram-auth.js.map +0 -1
  551. package/dist/realtime/tools.d.ts +0 -829
  552. package/dist/realtime/tools.d.ts.map +0 -1
  553. package/dist/realtime/tools.js +0 -611
  554. package/dist/realtime/tools.js.map +0 -1
  555. package/dist/realtime/types.d.ts +0 -62
  556. package/dist/realtime/types.d.ts.map +0 -1
  557. package/dist/realtime/types.js +0 -3
  558. package/dist/realtime/types.js.map +0 -1
  559. package/dist/realtime/voice-summarizer.d.ts +0 -4
  560. package/dist/realtime/voice-summarizer.d.ts.map +0 -1
  561. package/dist/realtime/voice-summarizer.js +0 -123
  562. package/dist/realtime/voice-summarizer.js.map +0 -1
  563. package/dist/realtime/websocket.d.ts +0 -7
  564. package/dist/realtime/websocket.d.ts.map +0 -1
  565. package/dist/realtime/websocket.js +0 -65
  566. package/dist/realtime/websocket.js.map +0 -1
  567. package/dist/service/gbox-tun.d.ts +0 -14
  568. package/dist/service/gbox-tun.d.ts.map +0 -1
  569. package/dist/service/gbox-tun.js +0 -315
  570. package/dist/service/gbox-tun.js.map +0 -1
  571. package/dist/skills/installed.d.ts +0 -11
  572. package/dist/skills/installed.d.ts.map +0 -1
  573. package/dist/skills/installed.js +0 -35
  574. package/dist/skills/installed.js.map +0 -1
  575. package/dist/tools/card.d.ts +0 -11
  576. package/dist/tools/card.d.ts.map +0 -1
  577. package/dist/tools/card.js +0 -87
  578. package/dist/tools/card.js.map +0 -1
  579. package/dist/tools/coordinate-resolver.d.ts +0 -30
  580. package/dist/tools/coordinate-resolver.d.ts.map +0 -1
  581. package/dist/tools/coordinate-resolver.js +0 -104
  582. package/dist/tools/coordinate-resolver.js.map +0 -1
  583. package/dist/tools/sms.d.ts +0 -16
  584. package/dist/tools/sms.d.ts.map +0 -1
  585. package/dist/tools/sms.js +0 -78
  586. package/dist/tools/sms.js.map +0 -1
  587. package/dist/tools/stock-data.d.ts +0 -70
  588. package/dist/tools/stock-data.d.ts.map +0 -1
  589. package/dist/tools/stock-data.js +0 -596
  590. package/dist/tools/stock-data.js.map +0 -1
  591. package/dist/tools/webapp.d.ts +0 -30
  592. package/dist/tools/webapp.d.ts.map +0 -1
  593. package/dist/tools/webapp.js +0 -114
  594. package/dist/tools/webapp.js.map +0 -1
  595. package/dist/utils/wechat-monitor.d.ts +0 -21
  596. package/dist/utils/wechat-monitor.d.ts.map +0 -1
  597. package/dist/utils/wechat-monitor.js +0 -88
  598. package/dist/utils/wechat-monitor.js.map +0 -1
  599. package/dist/webapp/index.d.ts +0 -28
  600. package/dist/webapp/index.d.ts.map +0 -1
  601. package/dist/webapp/index.js +0 -75
  602. package/dist/webapp/index.js.map +0 -1
  603. package/dist/webapp/server.d.ts +0 -32
  604. package/dist/webapp/server.d.ts.map +0 -1
  605. package/dist/webapp/server.js +0 -375
  606. package/dist/webapp/server.js.map +0 -1
  607. package/dist/webapp/storage.d.ts +0 -64
  608. package/dist/webapp/storage.d.ts.map +0 -1
  609. package/dist/webapp/storage.js +0 -103
  610. package/dist/webapp/storage.js.map +0 -1
  611. package/dist/webapp/ui.d.ts +0 -2
  612. package/dist/webapp/ui.d.ts.map +0 -1
  613. package/dist/webapp/ui.js +0 -319
  614. package/dist/webapp/ui.js.map +0 -1
  615. package/dist-agent/assets/index.html +0 -1058
  616. package/dist-agent/assets/samples/alloy.mp3 +0 -0
  617. package/dist-agent/assets/samples/ash.mp3 +0 -0
  618. package/dist-agent/assets/samples/ballad.mp3 +0 -0
  619. package/dist-agent/assets/samples/cedar.mp3 +0 -0
  620. package/dist-agent/assets/samples/coral.mp3 +0 -0
  621. package/dist-agent/assets/samples/echo.mp3 +0 -0
  622. package/dist-agent/assets/samples/marin.mp3 +0 -0
  623. package/dist-agent/assets/samples/sage.mp3 +0 -0
  624. package/dist-agent/assets/samples/shimmer.mp3 +0 -0
  625. package/dist-agent/assets/samples/verse.mp3 +0 -0
  626. package/dist-agent/realtime/assets/index.html +0 -1058
  627. package/dist-agent/realtime/assets/samples/alloy.mp3 +0 -0
  628. package/dist-agent/realtime/assets/samples/ash.mp3 +0 -0
  629. package/dist-agent/realtime/assets/samples/ballad.mp3 +0 -0
  630. package/dist-agent/realtime/assets/samples/cedar.mp3 +0 -0
  631. package/dist-agent/realtime/assets/samples/coral.mp3 +0 -0
  632. package/dist-agent/realtime/assets/samples/echo.mp3 +0 -0
  633. package/dist-agent/realtime/assets/samples/marin.mp3 +0 -0
  634. package/dist-agent/realtime/assets/samples/sage.mp3 +0 -0
  635. package/dist-agent/realtime/assets/samples/shimmer.mp3 +0 -0
  636. package/dist-agent/realtime/assets/samples/verse.mp3 +0 -0
@@ -1,348 +0,0 @@
1
- /**
2
- * Async Fact-Check Sidecar (issue #530).
3
- *
4
- * Decoupled from the main agent turn, this sidecar audits the agent's recent
5
- * *assertions* (its reasoning, prose, and notify_user messages — not tool
6
- * inputs/results), then surfaces corrections before the next reasoning step. It
7
- * runs in-process (matching the EventTriggerSidecar / CalendarInterruptPoller
8
- * pattern) but every audit executes asynchronously off the agent's critical
9
- * path.
10
- *
11
- * Triggers (any fires an audit):
12
- * 1. Counter-based: N consecutive whitelisted tool calls (config N, default
13
- * 5) *arm* the trigger; the audit fires on the next agent assertion so the
14
- * snapshot contains the claim the tool results produced, not the
15
- * pre-tool-call state.
16
- * 2. Compaction: context compaction detected → force audit + reset counter.
17
- * 3. Engine switch: engine change detected → force audit + reset counter.
18
- * 4. Turn end: the agent finished its turn → audit any not-yet-audited
19
- * assertions, so the final user-facing claim (often a blacklisted
20
- * notify_user that never trips the counter) is still checked.
21
- *
22
- * Concurrency: strictly serial. While an audit runs, at most one further
23
- * trigger is held pending (coalesced); it runs immediately after the current
24
- * audit completes. This keeps the corrections file write conflict-free and the
25
- * behaviour predictable.
26
- */
27
- import { logger } from "../logger.js";
28
- import { runFactCheckAudit } from "./agent.js";
29
- import { appendAuditLog, appendPendingCorrections } from "./store.js";
30
- /**
31
- * Tool names (bare, sans `mcp__visionclaw__` prefix) that do NOT count toward
32
- * the audit trigger. Matched against the suffix of the fully qualified tool
33
- * name (see {@link isBlacklisted}).
34
- *
35
- * Design: the counter trigger is a *blacklist*, not a whitelist — any tool we
36
- * don't recognise (e.g. third-party MCP servers, Playwright `browser_*`, file
37
- * reads) is assumed to do external work that could surface a fact, so it
38
- * counts. We only exclude tools that, by construction, introduce no new
39
- * verifiable fact:
40
- *
41
- * - Control flow / turn management: finish, wait, switch_session, upgrade.
42
- * - Messaging / notifications: notify_user (also covered by the turn-end
43
- * trigger, which audits the final user-facing claim).
44
- * - Bookkeeping / configuration (no external data): memory, TaskCreate/
45
- * Update/List, manage_skills, manage_mcp_servers, manage_event_trigger,
46
- * manage_totp, manage_calendar, manage_email, remote_desktop.
47
- * - Pure GUI/device *actions* (operate, don't observe): the computer_use_* /
48
- * android_use_* click/move/scroll/drag/type/key/press/long_press/open
49
- * family. Their matching *_screenshot variants are intentionally NOT
50
- * blacklisted — a screenshot surfaces new on-screen facts the agent may
51
- * then assert.
52
- *
53
- * Note: since the counter only *arms* the trigger and the audit fires on the
54
- * next agent assertion (with the turn-end trigger as a backstop), this list
55
- * just needs to be roughly right — an over/under-count shifts an audit's
56
- * timing, it never drops the final claim.
57
- */
58
- const BLACKLIST = new Set([
59
- // Control flow / turn management
60
- "finish",
61
- "wait",
62
- "switch_session",
63
- "upgrade",
64
- // Messaging / notifications
65
- "notify_user",
66
- // Bookkeeping / configuration (introduce no external fact)
67
- "memory",
68
- "TaskCreate",
69
- "TaskUpdate",
70
- "TaskList",
71
- "manage_email",
72
- "manage_calendar",
73
- "manage_totp",
74
- "manage_skills",
75
- "manage_mcp_servers",
76
- "manage_event_trigger",
77
- "remote_desktop",
78
- // Pure GUI/device actions (operate, don't observe). The *_screenshot
79
- // variants are deliberately omitted so on-screen facts still count.
80
- "computer_use_click",
81
- "computer_use_move",
82
- "computer_use_scroll",
83
- "computer_use_drag",
84
- "computer_use_type",
85
- "computer_use_key",
86
- "android_use_click",
87
- "android_use_long_press",
88
- "android_use_type",
89
- "android_use_scroll",
90
- "android_use_drag",
91
- "android_use_press",
92
- "android_use_open",
93
- ]);
94
- export class FactCheckSidecar {
95
- config;
96
- deps;
97
- whitelistCount = 0;
98
- running = false;
99
- stopped = false;
100
- /**
101
- * The counter threshold has been reached but we are waiting for the agent's
102
- * next assertion before auditing — so the snapshot contains the claim the
103
- * tool results produced rather than the stale pre-tool-call state.
104
- */
105
- counterArmed = false;
106
- /**
107
- * An assertion has been recorded since the last audit started. Gates the
108
- * turn-end trigger so an idle/empty turn doesn't fire a pointless audit, and
109
- * ensures the final user-facing claim is always covered by at least one audit.
110
- */
111
- hasUnauditedAssertions = false;
112
- /** At most one coalesced pending trigger while an audit is in flight. */
113
- pendingTrigger = null;
114
- /**
115
- * AbortController for the currently-running audit, if any. Lets {@link stop}
116
- * cancel in-flight LLM/MCP work so a disabled sidecar doesn't keep burning
117
- * tokens or persist stale findings after the user toggles it off.
118
- */
119
- activeController = null;
120
- constructor(deps) {
121
- this.config = deps.config;
122
- this.deps = deps;
123
- }
124
- get enabled() {
125
- return this.config.factCheck.enabled;
126
- }
127
- get threshold() {
128
- return this.config.factCheck.triggerEveryNToolCalls;
129
- }
130
- /** Returns true when the sidecar is active for this profile. */
131
- start() {
132
- if (!this.enabled) {
133
- logger.debug("[factcheck] sidecar disabled");
134
- return false;
135
- }
136
- this.stopped = false;
137
- this.whitelistCount = 0;
138
- this.counterArmed = false;
139
- this.hasUnauditedAssertions = false;
140
- logger.system(`[factcheck] sidecar started (trigger every ${this.threshold} whitelisted tool call(s))`);
141
- return true;
142
- }
143
- stop() {
144
- this.stopped = true;
145
- // Cancel any in-flight audit so it doesn't keep running (and persisting
146
- // findings) after the feature has been toggled off. The audit's own
147
- // catch/finally handles the abort; we just need the signal to fire.
148
- this.activeController?.abort();
149
- }
150
- /**
151
- * Observe a single top-level tool call. Increments the whitelist counter for
152
- * non-blacklisted tools; when the threshold is reached it *arms* the counter
153
- * trigger rather than auditing immediately. The audit fires on the next
154
- * agent assertion ({@link recordAssertion}) so the snapshot reflects the
155
- * claim the tool results produced, not the pre-tool-call state. Safe to call
156
- * on the agent's hot path — it never blocks.
157
- */
158
- recordToolCall(toolName) {
159
- if (!this.enabled || this.stopped)
160
- return;
161
- if (isBlacklisted(toolName))
162
- return;
163
- this.whitelistCount += 1;
164
- if (this.whitelistCount >= this.threshold) {
165
- this.whitelistCount = 0;
166
- this.counterArmed = true;
167
- }
168
- }
169
- /**
170
- * Observe a top-level agent assertion (reasoning / prose / notify_user). This
171
- * is where the verifiable claims live, so it both (a) fires an armed counter
172
- * audit now that the claim exists in the snapshot, and (b) marks that there
173
- * is fresh content for a turn-end audit to cover.
174
- */
175
- recordAssertion() {
176
- if (!this.enabled || this.stopped)
177
- return;
178
- this.hasUnauditedAssertions = true;
179
- if (this.counterArmed) {
180
- this.counterArmed = false;
181
- this.fire("counter");
182
- }
183
- }
184
- /**
185
- * The agent finished its turn. Audit any assertions not yet covered by an
186
- * audit — notably the final notify_user answer, which is blacklisted from the
187
- * counter and would otherwise never be checked.
188
- */
189
- onTurnEnd() {
190
- if (!this.enabled || this.stopped)
191
- return;
192
- if (!this.hasUnauditedAssertions)
193
- return;
194
- this.fire("turn_end");
195
- }
196
- /** Force an audit on context compaction, resetting the counter. */
197
- onCompaction() {
198
- if (!this.enabled || this.stopped)
199
- return;
200
- this.whitelistCount = 0;
201
- this.counterArmed = false;
202
- this.fire("compaction");
203
- }
204
- /** Force an audit on engine switch, resetting the counter. */
205
- onEngineSwitch() {
206
- if (!this.enabled || this.stopped)
207
- return;
208
- this.whitelistCount = 0;
209
- this.counterArmed = false;
210
- this.fire("engine_switch");
211
- }
212
- /**
213
- * Schedule an audit. If one is already running, record (coalesce) the
214
- * trigger and return — it will run once the current audit finishes. Counter
215
- * triggers never overwrite a higher-priority forced trigger that is already
216
- * pending.
217
- */
218
- fire(trigger) {
219
- if (this.running) {
220
- // Coalesce: keep a forced trigger over a counter trigger if both queue up.
221
- if (this.pendingTrigger === null || (this.pendingTrigger === "counter" && trigger !== "counter")) {
222
- this.pendingTrigger = trigger;
223
- }
224
- logger.debug(`[factcheck] audit in flight; coalesced trigger=${trigger}`);
225
- return;
226
- }
227
- void this.runAudit(trigger);
228
- }
229
- async runAudit(trigger) {
230
- this.running = true;
231
- // Hard-bound the audit with an AbortController. On timeout we abort the
232
- // in-flight work (LLM + MCP/HTTP calls observe the signal) AND we await the
233
- // audit promise to actually settle before releasing the serial lock — so a
234
- // slow audit can never overlap the next one (#2). The same controller is
235
- // also aborted by {@link stop}, so a disabled sidecar cancels its running
236
- // audit instead of letting it finish (and persist stale findings) detached.
237
- const controller = new AbortController();
238
- this.activeController = controller;
239
- const timer = setTimeout(() => {
240
- logger.warn(`[factcheck] audit exceeded ${this.config.factCheck.auditTimeoutMs}ms; aborting`);
241
- controller.abort();
242
- }, this.config.factCheck.auditTimeoutMs);
243
- timer.unref();
244
- try {
245
- const snapshot = this.deps.getSnapshot();
246
- // The snapshot now covers the current assertions, so clear the turn-end
247
- // gate. Assertions recorded after this point re-arm it for a later audit.
248
- this.hasUnauditedAssertions = false;
249
- logger.debug(`[factcheck] starting audit (trigger=${trigger}, ${snapshot.length} chars)`);
250
- const { findings, claimResults } = await runFactCheckAudit({
251
- config: this.config,
252
- snapshot,
253
- financialVerification: this.config.factCheck.financialVerification,
254
- signal: controller.signal,
255
- });
256
- // Record the full audit (every claim + outcome) to the operator-facing
257
- // append-only history, regardless of how findings are delivered. Skip
258
- // when stopped so a disabled sidecar leaves no trailing records. This is
259
- // independent of corrections.json (which is read-then-deleted).
260
- if (claimResults.length > 0 && !this.stopped) {
261
- await appendAuditLog({
262
- at: new Date().toISOString(),
263
- trigger,
264
- claims: claimResults,
265
- });
266
- }
267
- if (findings.length > 0) {
268
- // Try the live path first. Persist as the durable backstop only when it
269
- // was not handled live (idle / injection failed / handler threw), so a
270
- // correction is delivered exactly once and never lost. The
271
- // `!this.stopped && this.enabled` guard also covers the race where the
272
- // audit settled (e.g. timed out then resolved) right after `stop()`:
273
- // we don't want a disabled sidecar to write findings that would later
274
- // surface out of context when the feature is re-enabled.
275
- //
276
- // A `turn_end` audit deliberately skips the live path: the turn it
277
- // covers is already over, so mid-turn injection is conceptually wrong
278
- // and racy (the input generator is closing). Route it straight to the
279
- // durable backstop, which the next wake cycle injects when idle.
280
- let handledLive = false;
281
- if (!this.stopped && trigger !== "turn_end") {
282
- try {
283
- handledLive = await this.deps.onFindings(findings);
284
- }
285
- catch (err) {
286
- logger.warn(`[factcheck] onFindings handler threw: ${err instanceof Error ? err.message : String(err)}`);
287
- }
288
- }
289
- if (!handledLive && !this.stopped && this.enabled) {
290
- await appendPendingCorrections({
291
- generatedAt: Date.now(),
292
- trigger,
293
- findings,
294
- });
295
- // A persisted (not live-injected) batch only reaches the agent on
296
- // the next wake. If it contains a hard factual error, proactively
297
- // wake the idle agent so it reconciles the contradiction promptly
298
- // rather than waiting for the next message/heartbeat. Warnings
299
- // (unverifiable) are low-signal and never wake — they ride along on
300
- // the next natural wake. The handler itself re-checks agent state, so
301
- // we don't re-check stopped/enabled here (a stop() racing the persist
302
- // await at worst yields one harmless extra wake into an empty cycle).
303
- if (findings.some((f) => f.severity === "error")) {
304
- try {
305
- this.deps.onPersistedError?.();
306
- }
307
- catch (err) {
308
- logger.warn(`[factcheck] onPersistedError handler threw: ${err instanceof Error ? err.message : String(err)}`);
309
- }
310
- }
311
- }
312
- }
313
- }
314
- catch (err) {
315
- logger.warn(`[factcheck] audit failed: ${err instanceof Error ? err.message : String(err)}`);
316
- }
317
- finally {
318
- clearTimeout(timer);
319
- this.running = false;
320
- if (this.activeController === controller) {
321
- this.activeController = null;
322
- }
323
- // Drain a coalesced trigger, if any, immediately after completion. Skip
324
- // when stopped so a disabled sidecar doesn't kick off follow-up audits.
325
- const next = this.pendingTrigger;
326
- this.pendingTrigger = null;
327
- if (next && !this.stopped) {
328
- void this.runAudit(next);
329
- }
330
- }
331
- }
332
- }
333
- /**
334
- * Whether a tool call is excluded from the counter trigger. Tool names arrive
335
- * fully qualified (e.g. `mcp__visionclaw__notify_user`); we match against the
336
- * bare suffix so the blacklist stays engine- and prefix-agnostic. Unknown
337
- * tools (third-party MCP, browser, file reads) are NOT blacklisted — see
338
- * {@link BLACKLIST}.
339
- */
340
- export function isBlacklisted(toolName) {
341
- if (BLACKLIST.has(toolName))
342
- return true;
343
- const lastSegment = toolName.includes("__")
344
- ? toolName.slice(toolName.lastIndexOf("__") + 2)
345
- : toolName;
346
- return BLACKLIST.has(lastSegment);
347
- }
348
- //# sourceMappingURL=sidecar.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sidecar.js","sourceRoot":"","sources":["../../src/factcheck/sidecar.ts"],"names":[],"mappings":"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"}
@@ -1,111 +0,0 @@
1
- /**
2
- * File-backed store for the Async Fact-Check Sidecar (issue #530).
3
- *
4
- * The sidecar keeps durable state under the active profile directory
5
- * (`~/.visionclaw/profiles/<profile>/factcheck/`):
6
- *
7
- * - `corrections.json` — pending corrections produced by the most recent
8
- * audit(s) that have not yet been consumed by the main agent. The main
9
- * agent reads + clears this at the start of each wake cycle (or as soon
10
- * as an active turn picks them up mid-turn). This is transient: read-then-
11
- * delete.
12
- * - `audit-log.jsonl` — append-only history of every completed audit (its
13
- * trigger + every claim checked and that claim's outcome/detail), so an
14
- * operator can review what the fact-checker examined and concluded long
15
- * after the corrections themselves were consumed. Size-rotated; never read
16
- * back by the agent.
17
- *
18
- * The whitelist tool-call counter intentionally lives in-process (not on
19
- * disk): it is a transient signal that resets whenever the process restarts,
20
- * and writing it on every tool call would be wasteful.
21
- *
22
- * All file access is best-effort and resilient to a missing/corrupt file —
23
- * a fact-check store failure must never take down the agent.
24
- */
25
- import { z } from "zod";
26
- /** Severity of a single fact-check finding. */
27
- export type FactCheckSeverity = "warning" | "error";
28
- declare const FactCheckFindingSchema: z.ZodObject<{
29
- severity: z.ZodEnum<{
30
- error: "error";
31
- warning: "warning";
32
- }>;
33
- claim: z.ZodString;
34
- detail: z.ZodString;
35
- }, z.core.$strip>;
36
- declare const PendingCorrectionsSchema: z.ZodObject<{
37
- generatedAt: z.ZodNumber;
38
- trigger: z.ZodString;
39
- findings: z.ZodArray<z.ZodObject<{
40
- severity: z.ZodEnum<{
41
- error: "error";
42
- warning: "warning";
43
- }>;
44
- claim: z.ZodString;
45
- detail: z.ZodString;
46
- }, z.core.$strip>>;
47
- }, z.core.$strip>;
48
- /** One finding produced by an audit. */
49
- export type FactCheckFinding = z.infer<typeof FactCheckFindingSchema>;
50
- /**
51
- * Compact severity breakdown for logs, e.g. `1 error, 2 warning`. Lets
52
- * operators tell at a glance whether an audit surfaced a hard contradiction
53
- * (error) or just an unverifiable note (warning) without opening
54
- * corrections.json. Returns `0 findings` when empty.
55
- */
56
- export declare function summarizeFindings(findings: readonly FactCheckFinding[]): string;
57
- /** A batch of corrections from a single completed audit. */
58
- export type PendingCorrections = z.infer<typeof PendingCorrectionsSchema>;
59
- /**
60
- * Append a batch of findings to the pending-corrections file. Multiple audits
61
- * may complete before the main agent consumes them, so findings accumulate.
62
- * No-op when `findings` is empty.
63
- */
64
- export declare function appendPendingCorrections(batch: PendingCorrections): Promise<void>;
65
- /**
66
- * Read all pending correction batches. Returns `[]` when the file is missing,
67
- * unreadable, or fails schema validation (so a partially-written or corrupt
68
- * file can never surface malformed findings to the injector).
69
- */
70
- export declare function readPendingCorrections(): Promise<PendingCorrections[]>;
71
- /**
72
- * Atomically read + clear pending corrections. Used by the main agent at the
73
- * point it injects them so the same findings are never injected twice.
74
- */
75
- export declare function consumePendingCorrections(): Promise<PendingCorrections[]>;
76
- export declare function clearPendingCorrections(): Promise<void>;
77
- /** Outcome of verifying a single claim. */
78
- export type FactCheckOutcome = "verified" | "unverifiable" | "contradicted";
79
- /** Per-claim result captured in the audit log (includes verified claims). */
80
- export interface FactCheckClaimResult {
81
- claim: string;
82
- outcome: FactCheckOutcome;
83
- /** Why it was contradicted/unverifiable; empty for verified. */
84
- detail: string;
85
- isFinancial: boolean;
86
- symbols: string[];
87
- }
88
- /** One completed-audit record, appended to `audit-log.jsonl`. */
89
- export interface FactCheckAuditRecord {
90
- /** ISO-8601 timestamp of when the audit completed. */
91
- at: string;
92
- /** What triggered the audit (counter / compaction / engine_switch / turn_end). */
93
- trigger: string;
94
- /** Every claim the audit checked, with its outcome. Empty if none extracted. */
95
- claims: FactCheckClaimResult[];
96
- }
97
- /**
98
- * Append one completed-audit record to the append-only `audit-log.jsonl`.
99
- * Best-effort and never throws: an audit-log failure must not affect the audit
100
- * itself. Independent of the corrections file — this is operator-facing history
101
- * and is never consumed/cleared by the agent.
102
- */
103
- export declare function appendAuditLog(record: FactCheckAuditRecord): Promise<void>;
104
- /**
105
- * Render pending corrections as an engine-agnostic plain-text block, matching
106
- * the `[FACT-CHECK ALERT]` format described in the issue. Returns `null` when
107
- * there is nothing to render.
108
- */
109
- export declare function formatCorrections(batches: PendingCorrections[]): string | null;
110
- export {};
111
- //# sourceMappingURL=store.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/factcheck/store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAIH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,+CAA+C;AAC/C,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,OAAO,CAAC;AAEpD,QAAA,MAAM,sBAAsB;;;;;;;iBAS1B,CAAC;AAEH,QAAA,MAAM,wBAAwB;;;;;;;;;;;iBAM5B,CAAC;AAIH,wCAAwC;AACxC,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,SAAS,gBAAgB,EAAE,GAAG,MAAM,CAY/E;AAED,4DAA4D;AAC5D,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAuC1E;;;;GAIG;AACH,wBAAsB,wBAAwB,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBvF;AAED;;;;GAIG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAE5E;AAqBD;;;GAGG;AACH,wBAAsB,yBAAyB,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAQ/E;AAED,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC,CAE7D;AAUD,2CAA2C;AAC3C,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,cAAc,GAAG,cAAc,CAAC;AAE5E,6EAA6E;AAC7E,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,gBAAgB,CAAC;IAC1B,gEAAgE;IAChE,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,iEAAiE;AACjE,MAAM,WAAW,oBAAoB;IACnC,sDAAsD;IACtD,EAAE,EAAE,MAAM,CAAC;IACX,kFAAkF;IAClF,OAAO,EAAE,MAAM,CAAC;IAChB,gFAAgF;IAChF,MAAM,EAAE,oBAAoB,EAAE,CAAC;CAChC;AAQD;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAYhF;AAuBD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,EAAE,GAAG,MAAM,GAAG,IAAI,CAkB9E"}