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,159 +0,0 @@
1
- import fs from "node:fs";
2
- import { z } from "zod";
3
- const GoogleServiceAccountSchema = z.object({
4
- type: z.string().min(1),
5
- project_id: z.string().min(1),
6
- private_key_id: z.string().min(1),
7
- private_key: z.string().min(1),
8
- client_email: z.string().min(1),
9
- client_id: z.string().min(1),
10
- auth_uri: z.string().optional(),
11
- token_uri: z.string().min(1),
12
- });
13
- const GoogleWorkspaceConfigSchema = z.object({
14
- licenseSku: z.string().optional().nullable(),
15
- licenseProductId: z.string().optional().nullable(),
16
- delegatedAdminEmail: z.string().trim().min(1),
17
- adminSdkServiceAccount: GoogleServiceAccountSchema,
18
- });
19
- const GoogleOAuthConfigSchema = z.object({
20
- clientId: z.string().optional().nullable(),
21
- clientSecret: z.string().optional().nullable(),
22
- }).default({});
23
- // Optional as a whole: an agent can be created with no Telegram bot at all
24
- // (onboarding #1087), in which case the server omits this block entirely. The
25
- // inner `min(1)` stays strict on purpose — if a bot IS configured, a blank
26
- // token is a server bug we want to fail loudly on, not silently disable
27
- // Telegram. The owner can still land a bot later via self-registration (#544).
28
- const TelegramConfigSchema = z.object({
29
- botToken: z.string().min(1),
30
- botName: z.string().min(1),
31
- });
32
- const CloudflaredConfigSchema = z.object({
33
- enabled: z.boolean().default(false),
34
- tunnelName: z.string().optional().nullable(),
35
- tunnelHostname: z.string().optional().nullable(),
36
- }).default({ enabled: false });
37
- const GithubConfigSchema = z.object({
38
- enabled: z.boolean().default(false),
39
- createAccountIfMissing: z.boolean().default(true),
40
- pat: z.string().min(1).optional().nullable(),
41
- }).default({ enabled: false, createAccountIfMissing: true, pat: null });
42
- const OnboardingServiceConfigSchema = z.object({
43
- url: z.url(),
44
- apiKey: z.string().min(1),
45
- });
46
- export const ProvisioningSpecSchema = z.object({
47
- workspaceProvider: z.enum(["google", "zoho"]).default("google"),
48
- agentName: z.string().trim().min(1),
49
- emailUsername: z.string().trim().regex(/^[a-z0-9][a-z0-9._-]*$/i, {
50
- message: "emailUsername must be alphanumeric and may include . _ -",
51
- }),
52
- workspaceDomain: z.string().trim().min(1).default("visionclaw.dev"),
53
- gmailPassword: z.string().optional().nullable(),
54
- googleActivated: z.boolean().optional().default(false),
55
- systemPassword: z.string().optional().nullable(),
56
- serpApiKey: z.string().min(1),
57
- googleWorkspace: GoogleWorkspaceConfigSchema.optional(),
58
- googleOAuth: GoogleOAuthConfigSchema,
59
- telegram: TelegramConfigSchema.optional(),
60
- cloudflared: CloudflaredConfigSchema,
61
- github: GithubConfigSchema,
62
- installService: z.boolean().default(true),
63
- onboardingService: OnboardingServiceConfigSchema.optional(),
64
- geminiApiKey: z.string().optional().nullable(),
65
- });
66
- function isRemoteSource(source) {
67
- return /^https:\/\//i.test(source);
68
- }
69
- /**
70
- * An onboarding key is a 32-char hex string (the agent's API key).
71
- * It is used to fetch the provisioning spec from the onboarding service.
72
- * Defaults to https://onboarding.visionclaw.dev; override with VISIONCLAW_ONBOARDING_SERVICE_URL.
73
- */
74
- function isOnboardingKey(source) {
75
- return /^[0-9a-f]{32}$/i.test(source);
76
- }
77
- /**
78
- * A 6-digit numeric setup code, used as a shorter alternative to the full API key
79
- * for `visionclaw setup <code>`.
80
- */
81
- function isSetupCode(source) {
82
- return /^\d{6}$/.test(source);
83
- }
84
- function getOnboardingServiceBase() {
85
- const serviceUrl = process.env.VISIONCLAW_ONBOARDING_SERVICE_URL ?? "https://onboarding.visionclaw.dev";
86
- return serviceUrl.replace(/\/+$/, "");
87
- }
88
- async function fetchFromOnboardingService(url) {
89
- let response;
90
- try {
91
- response = await fetch(url, {
92
- signal: AbortSignal.timeout(30_000),
93
- });
94
- }
95
- catch (err) {
96
- throw new Error(`Cannot reach onboarding service at ${url} — ${err instanceof Error ? err.message : String(err)}\n` +
97
- `Set VISIONCLAW_ONBOARDING_SERVICE_URL if the service is running elsewhere.`);
98
- }
99
- if (!response.ok) {
100
- throw new Error(`Failed to fetch provisioning spec from ${url}: HTTP ${response.status}`);
101
- }
102
- return response.text();
103
- }
104
- async function readProvisioningSource(source) {
105
- console.log(`Resolving provisioning source: "${source}" (remote=${isRemoteSource(source)}, onboardingKey=${isOnboardingKey(source)}, setupCode=${isSetupCode(source)})`);
106
- if (isRemoteSource(source)) {
107
- const response = await fetch(source, {
108
- signal: AbortSignal.timeout(30_000),
109
- });
110
- if (!response.ok) {
111
- throw new Error(`Failed to fetch provisioning JSON: HTTP ${response.status}`);
112
- }
113
- return {
114
- sourceType: "remote",
115
- content: await response.text(),
116
- };
117
- }
118
- if (isSetupCode(source)) {
119
- const base = getOnboardingServiceBase();
120
- const url = `${base}/api/provisioning/setup-code/${source}`;
121
- console.log(`Fetching provisioning spec via setup code from: ${url}`);
122
- return {
123
- sourceType: "remote",
124
- content: await fetchFromOnboardingService(url),
125
- setupCode: source,
126
- };
127
- }
128
- if (isOnboardingKey(source)) {
129
- const base = getOnboardingServiceBase();
130
- const url = `${base}/api/provisioning/${source}`;
131
- console.log(`Fetching provisioning spec from: ${url}`);
132
- return {
133
- sourceType: "remote",
134
- content: await fetchFromOnboardingService(url),
135
- };
136
- }
137
- if (!fs.existsSync(source)) {
138
- throw new Error(`Provisioning JSON file not found: ${source}`);
139
- }
140
- return {
141
- sourceType: "local",
142
- content: fs.readFileSync(source, "utf-8"),
143
- };
144
- }
145
- export async function loadProvisioningSpec(source) {
146
- const trimmedSource = source.trim();
147
- if (!trimmedSource) {
148
- throw new Error("Provisioning source is required");
149
- }
150
- const { sourceType, content, setupCode } = await readProvisioningSource(trimmedSource);
151
- const parsed = JSON.parse(content);
152
- return {
153
- source: trimmedSource,
154
- sourceType,
155
- ...(setupCode ? { setupCode } : {}),
156
- spec: ProvisioningSpecSchema.parse(parsed),
157
- };
158
- }
159
- //# sourceMappingURL=provisioning-spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"provisioning-spec.js","sourceRoot":"","sources":["../../src/onboarding/provisioning-spec.ts"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- import type { VisionClawConfig, OwnerConfig } from "../config/types.js";
2
- import type { ChannelManager } from "../channels/manager.js";
3
- /**
4
- * Send identity credentials to the owner using two-channel delivery:
5
- * 1. Email: encrypted ZIP of identity.md (contains all agent credentials)
6
- * 2. Telegram: decryption password
7
- *
8
- * This ensures no single channel compromise exposes sensitive credentials.
9
- */
10
- export declare function sendIdentityCredentials(config: VisionClawConfig, ownerConfig: OwnerConfig, channelManager: ChannelManager): Promise<void>;
11
- //# sourceMappingURL=send-identity-credentials.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"send-identity-credentials.d.ts","sourceRoot":"","sources":["../../src/onboarding/send-identity-credentials.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAsC7D;;;;;;GAMG;AACH,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,gBAAgB,EACxB,WAAW,EAAE,WAAW,EACxB,cAAc,EAAE,cAAc,GAC7B,OAAO,CAAC,IAAI,CAAC,CA6Ef"}
@@ -1,110 +0,0 @@
1
- import crypto from "node:crypto";
2
- import fs from "node:fs";
3
- import os from "node:os";
4
- import path from "node:path";
5
- import { execFileSync } from "node:child_process";
6
- import { GmailEmailClient } from "../email/gmail-email.js";
7
- import { getMemoriesDir } from "../config/index.js";
8
- import { logger } from "../logger.js";
9
- /**
10
- * Generate a cryptographically secure random password.
11
- * Returns a 24-character alphanumeric string.
12
- */
13
- function generatePassword() {
14
- return crypto.randomBytes(18).toString("base64url").slice(0, 24);
15
- }
16
- /**
17
- * Create a password-protected ZIP of identity.md.
18
- *
19
- * @returns Path to the created ZIP file (in a temp directory).
20
- */
21
- function createEncryptedIdentityZip(identityPath, password) {
22
- const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), "visionclaw-identity-"));
23
- const zipFile = path.join(tmpDir, "identity.zip");
24
- execFileSync("zip", ["-j", "-P", password, zipFile, identityPath], {
25
- stdio: "pipe",
26
- });
27
- return zipFile;
28
- }
29
- /**
30
- * Extract the ETH wallet address from identity.md content.
31
- */
32
- function extractWalletAddress(content) {
33
- const match = /- Address:\s*(0x[0-9a-fA-F]+)/.exec(content);
34
- return match?.[1] ?? null;
35
- }
36
- /**
37
- * Send identity credentials to the owner using two-channel delivery:
38
- * 1. Email: encrypted ZIP of identity.md (contains all agent credentials)
39
- * 2. Telegram: decryption password
40
- *
41
- * This ensures no single channel compromise exposes sensitive credentials.
42
- */
43
- export async function sendIdentityCredentials(config, ownerConfig, channelManager) {
44
- const identityPath = path.join(getMemoriesDir(), "identity.md");
45
- if (!fs.existsSync(identityPath)) {
46
- logger.warn("No identity.md found — skipping two-channel delivery");
47
- return;
48
- }
49
- const identityContent = fs.readFileSync(identityPath, "utf-8");
50
- const walletAddress = extractWalletAddress(identityContent);
51
- const password = generatePassword();
52
- let zipFile;
53
- try {
54
- zipFile = createEncryptedIdentityZip(identityPath, password);
55
- // Channel 1: Send encrypted file via email
56
- const addressLine = walletAddress
57
- ? `\nETH wallet address: ${walletAddress}\n`
58
- : "";
59
- const emailBody = `Hi ${ownerConfig.ownerName || "there"},
60
-
61
- I'm sending you the credentials for my ETH wallet.
62
- ${addressLine}
63
- For your reference, the agent's identity file is attached as an encrypted archive (identity.zip).
64
- The decryption password has been sent to your Telegram account.
65
-
66
- Note: The agent retains these credentials for operations. This copy is for your records.
67
- - Open the encrypted file using the password from Telegram
68
- - Save the credentials in a secure location (e.g., password manager) if you wish
69
- - Never share private keys or recovery words with anyone
70
-
71
- — ${config.agentName}`;
72
- const emailClient = new GmailEmailClient(config);
73
- await emailClient.sendEmail({
74
- to: ownerConfig.ownerEmail,
75
- subject: `${config.agentName} — Your Agent Credentials`,
76
- body: emailBody,
77
- attachments: [
78
- {
79
- type: "file",
80
- localPath: zipFile,
81
- filename: "identity.zip",
82
- mimeType: "application/zip",
83
- },
84
- ],
85
- });
86
- logger.system(`Identity credentials email sent to ${ownerConfig.ownerEmail}`);
87
- // Channel 2: Send decryption password via Telegram
88
- if (ownerConfig.telegramChatId) {
89
- const telegramMessage = `Your VisionClaw instance has it's own ETH wallet address: ${walletAddress}
90
-
91
- The credentials for the wallet is sent to your email for your reference(the agent retains them for operations).
92
- The decryption password for the email attachment is:
93
- ${password}
94
- `;
95
- await channelManager.sendMessage("telegram", String(ownerConfig.telegramChatId), telegramMessage);
96
- logger.system("Credential decryption password sent via Telegram");
97
- }
98
- else {
99
- logger.warn("No Telegram chat ID — could not send decryption password. " +
100
- "Credential delivery incomplete!");
101
- }
102
- }
103
- finally {
104
- if (zipFile && fs.existsSync(zipFile)) {
105
- const tmpDir = path.dirname(zipFile);
106
- fs.rmSync(tmpDir, { recursive: true, force: true });
107
- }
108
- }
109
- }
110
- //# sourceMappingURL=send-identity-credentials.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"send-identity-credentials.js","sourceRoot":"","sources":["../../src/onboarding/send-identity-credentials.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- export interface ServerGoogleOAuthCredential {
2
- clientId: string;
3
- clientSecret: string;
4
- }
5
- export declare function applyServerGoogleOAuthTokensForSetup(setupCode: string): Promise<ServerGoogleOAuthCredential | false>;
6
- export declare function applyServerZohoOAuthTokensForSetup(setupCode: string): Promise<boolean>;
7
- //# sourceMappingURL=setup-credentials.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"setup-credentials.d.ts","sourceRoot":"","sources":["../../src/onboarding/setup-credentials.ts"],"names":[],"mappings":"AAiBA,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACtB;AAOD,wBAAsB,oCAAoC,CACxD,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,2BAA2B,GAAG,KAAK,CAAC,CAqB9C;AAED,wBAAsB,kCAAkC,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAU5F"}
@@ -1,44 +0,0 @@
1
- import { saveZohoTokens } from "../config/index.js";
2
- import { ZohoTokensSchema } from "../config/types.js";
3
- import { writeGoogleTokensJson } from "../google/token-file.js";
4
- function getOnboardingServiceBase() {
5
- const serviceUrl = process.env.VISIONCLAW_ONBOARDING_SERVICE_URL ?? "https://onboarding.visionclaw.dev";
6
- return serviceUrl.replace(/\/+$/, "");
7
- }
8
- export async function applyServerGoogleOAuthTokensForSetup(setupCode) {
9
- if (!/^\d{6}$/.test(setupCode))
10
- return false;
11
- const url = `${getOnboardingServiceBase()}/api/provisioning/setup-code/${setupCode}/credentials`;
12
- const response = await fetch(url, { signal: AbortSignal.timeout(30_000) });
13
- if (response.status === 404)
14
- return false;
15
- if (!response.ok) {
16
- throw new Error(`Failed to fetch setup credentials: HTTP ${response.status}`);
17
- }
18
- const body = await response.json();
19
- const tokensJson = body.google?.oauthTokensJson?.trim();
20
- if (!tokensJson)
21
- return false;
22
- const clientId = body.google?.clientId?.trim();
23
- const clientSecret = body.google?.clientSecret?.trim();
24
- if (!clientId || !clientSecret) {
25
- throw new Error("Google setup credentials are missing OAuth client credentials");
26
- }
27
- writeGoogleTokensJson(tokensJson);
28
- return { clientId, clientSecret };
29
- }
30
- export async function applyServerZohoOAuthTokensForSetup(setupCode) {
31
- if (!/^\d{6}$/.test(setupCode))
32
- return false;
33
- const url = `${getOnboardingServiceBase()}/api/provisioning/setup-code/${setupCode}/credentials`;
34
- const response = await fetch(url, { signal: AbortSignal.timeout(30_000) });
35
- if (!response.ok)
36
- return false;
37
- const body = await response.json();
38
- const tokensJson = body.zoho?.oauthTokensJson?.trim();
39
- if (!tokensJson)
40
- return false;
41
- saveZohoTokens(ZohoTokensSchema.parse(JSON.parse(tokensJson)));
42
- return true;
43
- }
44
- //# sourceMappingURL=setup-credentials.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"setup-credentials.js","sourceRoot":"","sources":["../../src/onboarding/setup-credentials.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAoBhE,SAAS,wBAAwB;IAC/B,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,iCAAiC,IAAI,mCAAmC,CAAC;IACxG,OAAO,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oCAAoC,CACxD,SAAiB;IAEjB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC;QAAE,OAAO,KAAK,CAAC;IAE7C,MAAM,GAAG,GAAG,GAAG,wBAAwB,EAAE,gCAAgC,SAAS,cAAc,CAAC;IACjG,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC3E,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG;QAAE,OAAO,KAAK,CAAC;IAC1C,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,2CAA2C,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAChF,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAA6B,CAAC;IAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;IACxD,IAAI,CAAC,UAAU;QAAE,OAAO,KAAK,CAAC;IAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC/C,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IACvD,IAAI,CAAC,QAAQ,IAAI,CAAC,YAAY,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;IACnF,CAAC;IAED,qBAAqB,CAAC,UAAU,CAAC,CAAC;IAClC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;AACpC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kCAAkC,CAAC,SAAiB;IACxE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7C,MAAM,GAAG,GAAG,GAAG,wBAAwB,EAAE,gCAAgC,SAAS,cAAc,CAAC;IACjG,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC3E,IAAI,CAAC,QAAQ,CAAC,EAAE;QAAE,OAAO,KAAK,CAAC;IAC/B,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAA6B,CAAC;IAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;IACtD,IAAI,CAAC,UAAU;QAAE,OAAO,KAAK,CAAC;IAC9B,cAAc,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAC/D,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1,30 +0,0 @@
1
- /**
2
- * Shared OpenAI API credentials.
3
- *
4
- * Two tiers, highest priority first:
5
- * 1. Shared in-memory heartbeat cache (`sharedKeys.openaiApiKey`),
6
- * populated by `applySharedKeysFromHeartbeat()` in
7
- * `agent/heartbeat-manager.ts`.
8
- * 2. Local `config.openaiApiKey` — manual fallback. The heartbeat path
9
- * seeds this on first delivery when the slot is empty, but never
10
- * overwrites an existing value.
11
- *
12
- * Mirrors `anthropic-credentials.ts` minus the bundle (tier-1) layer,
13
- * which OpenAI does not currently use — per-agent OpenAI keys are not
14
- * shipped via `credentialBundle.body.llm` today. If/when they are
15
- * (see design/llm_credentials_in_bundle_df9fdc89.plan.md), add a
16
- * `bundleOpenAIApiKey` here and check it first in `resolveOpenAIApiKey`.
17
- */
18
- import type { VisionClawConfig } from "./config/types.js";
19
- export declare function setSharedOpenAIApiKey(apiKey: string | undefined): boolean;
20
- /**
21
- * Resolve the OpenAI API key to use.
22
- *
23
- * Precedence: shared cache > local config. Mirrors the
24
- * `resolveAnthropicApiKey` precedence so a fresh key broadcast by the
25
- * onboarding service supersedes a stale manual value on disk for the
26
- * current process. The on-disk value is only written by the heartbeat
27
- * path when initially absent.
28
- */
29
- export declare function resolveOpenAIApiKey(config: VisionClawConfig): string | undefined;
30
- //# sourceMappingURL=openai-credentials.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"openai-credentials.d.ts","sourceRoot":"","sources":["../src/openai-credentials.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAI1D,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAIzE;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,GAAG,SAAS,CAEhF"}
@@ -1,37 +0,0 @@
1
- /**
2
- * Shared OpenAI API credentials.
3
- *
4
- * Two tiers, highest priority first:
5
- * 1. Shared in-memory heartbeat cache (`sharedKeys.openaiApiKey`),
6
- * populated by `applySharedKeysFromHeartbeat()` in
7
- * `agent/heartbeat-manager.ts`.
8
- * 2. Local `config.openaiApiKey` — manual fallback. The heartbeat path
9
- * seeds this on first delivery when the slot is empty, but never
10
- * overwrites an existing value.
11
- *
12
- * Mirrors `anthropic-credentials.ts` minus the bundle (tier-1) layer,
13
- * which OpenAI does not currently use — per-agent OpenAI keys are not
14
- * shipped via `credentialBundle.body.llm` today. If/when they are
15
- * (see design/llm_credentials_in_bundle_df9fdc89.plan.md), add a
16
- * `bundleOpenAIApiKey` here and check it first in `resolveOpenAIApiKey`.
17
- */
18
- let sharedOpenAIApiKey;
19
- export function setSharedOpenAIApiKey(apiKey) {
20
- if (sharedOpenAIApiKey === apiKey)
21
- return false;
22
- sharedOpenAIApiKey = apiKey;
23
- return true;
24
- }
25
- /**
26
- * Resolve the OpenAI API key to use.
27
- *
28
- * Precedence: shared cache > local config. Mirrors the
29
- * `resolveAnthropicApiKey` precedence so a fresh key broadcast by the
30
- * onboarding service supersedes a stale manual value on disk for the
31
- * current process. The on-disk value is only written by the heartbeat
32
- * path when initially absent.
33
- */
34
- export function resolveOpenAIApiKey(config) {
35
- return sharedOpenAIApiKey ?? config.openaiApiKey;
36
- }
37
- //# sourceMappingURL=openai-credentials.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"openai-credentials.js","sourceRoot":"","sources":["../src/openai-credentials.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,IAAI,kBAAsC,CAAC;AAE3C,MAAM,UAAU,qBAAqB,CAAC,MAA0B;IAC9D,IAAI,kBAAkB,KAAK,MAAM;QAAE,OAAO,KAAK,CAAC;IAChD,kBAAkB,GAAG,MAAM,CAAC;IAC5B,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAwB;IAC1D,OAAO,kBAAkB,IAAI,MAAM,CAAC,YAAY,CAAC;AACnD,CAAC"}
@@ -1,21 +0,0 @@
1
- /**
2
- * Phonecall MCP API credentials.
3
- *
4
- * Three tiers, highest priority first:
5
- * 1. Per-agent bundle — reserved (currently unused; symmetry with the
6
- * other credential modules).
7
- * 2. Shared in-memory heartbeat cache (`sharedKeys.phonecallApiKey`).
8
- * 3. Local `config.phonecallApiKey` — manual fallback. The heartbeat
9
- * shared-keys path seeds this on first delivery but never overwrites
10
- * an existing value.
11
- */
12
- import type { VisionClawConfig } from "./config/types.js";
13
- export declare function setBundlePhonecallApiKey(apiKey: string | undefined): boolean;
14
- export declare function setSharedPhonecallApiKey(apiKey: string | undefined): boolean;
15
- /**
16
- * Resolve the Phonecall MCP API key to use.
17
- *
18
- * Precedence: per-agent bundle > shared cache > local config (offline cache).
19
- */
20
- export declare function resolvePhonecallApiKey(config: VisionClawConfig): string | undefined;
21
- //# sourceMappingURL=phonecall-credentials.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"phonecall-credentials.d.ts","sourceRoot":"","sources":["../src/phonecall-credentials.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAK1D,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAI5E;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAI5E;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,GAAG,SAAS,CAEnF"}
@@ -1,34 +0,0 @@
1
- /**
2
- * Phonecall MCP API credentials.
3
- *
4
- * Three tiers, highest priority first:
5
- * 1. Per-agent bundle — reserved (currently unused; symmetry with the
6
- * other credential modules).
7
- * 2. Shared in-memory heartbeat cache (`sharedKeys.phonecallApiKey`).
8
- * 3. Local `config.phonecallApiKey` — manual fallback. The heartbeat
9
- * shared-keys path seeds this on first delivery but never overwrites
10
- * an existing value.
11
- */
12
- let bundlePhonecallApiKey;
13
- let sharedPhonecallApiKey;
14
- export function setBundlePhonecallApiKey(apiKey) {
15
- if (bundlePhonecallApiKey === apiKey)
16
- return false;
17
- bundlePhonecallApiKey = apiKey;
18
- return true;
19
- }
20
- export function setSharedPhonecallApiKey(apiKey) {
21
- if (sharedPhonecallApiKey === apiKey)
22
- return false;
23
- sharedPhonecallApiKey = apiKey;
24
- return true;
25
- }
26
- /**
27
- * Resolve the Phonecall MCP API key to use.
28
- *
29
- * Precedence: per-agent bundle > shared cache > local config (offline cache).
30
- */
31
- export function resolvePhonecallApiKey(config) {
32
- return bundlePhonecallApiKey ?? sharedPhonecallApiKey ?? config.phonecallApiKey;
33
- }
34
- //# sourceMappingURL=phonecall-credentials.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"phonecall-credentials.js","sourceRoot":"","sources":["../src/phonecall-credentials.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,IAAI,qBAAyC,CAAC;AAC9C,IAAI,qBAAyC,CAAC;AAE9C,MAAM,UAAU,wBAAwB,CAAC,MAA0B;IACjE,IAAI,qBAAqB,KAAK,MAAM;QAAE,OAAO,KAAK,CAAC;IACnD,qBAAqB,GAAG,MAAM,CAAC;IAC/B,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,MAA0B;IACjE,IAAI,qBAAqB,KAAK,MAAM;QAAE,OAAO,KAAK,CAAC;IACnD,qBAAqB,GAAG,MAAM,CAAC;IAC/B,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,MAAwB;IAC7D,OAAO,qBAAqB,IAAI,qBAAqB,IAAI,MAAM,CAAC,eAAe,CAAC;AAClF,CAAC"}
@@ -1,7 +0,0 @@
1
- import type { ChannelManager } from "../channels/manager.js";
2
- import type { RealtimeModuleHandle } from "./index.js";
3
- export declare function wireRealtimeToAgent(options: {
4
- realtimeHandle: RealtimeModuleHandle;
5
- channelManager: ChannelManager;
6
- }): void;
7
- //# sourceMappingURL=agent-bridge.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"agent-bridge.d.ts","sourceRoot":"","sources":["../../src/realtime/agent-bridge.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEvD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE;IAC3C,cAAc,EAAE,oBAAoB,CAAC;IACrC,cAAc,EAAE,cAAc,CAAC;CAChC,GAAG,IAAI,CA+BP"}
@@ -1,31 +0,0 @@
1
- import { logger } from "../logger.js";
2
- export function wireRealtimeToAgent(options) {
3
- const { realtimeHandle, channelManager } = options;
4
- realtimeHandle.onVoiceSessionFinished((event) => {
5
- if (event.summary.noActionable) {
6
- logger.system(`[Realtime] Voice session ${event.sessionId} has no actionable items; not enqueueing follow-up.`);
7
- return;
8
- }
9
- const text = event.summaryText || event.summary.headline || "Voice session ended.";
10
- const filename = `${event.sessionId}.json`;
11
- const msg = {
12
- id: `realtime_voice_${event.sessionId}`,
13
- channel: "system",
14
- sender: "realtime",
15
- text: `## Realtime Voice Session Completed\n${text}`,
16
- attachments: [],
17
- timestamp: event.endedAt,
18
- meta: {
19
- kind: "realtime-voice-followup",
20
- sessionId: event.sessionId,
21
- transcriptFilename: filename,
22
- },
23
- };
24
- channelManager.enqueueInternalMessage(msg);
25
- realtimeHandle.markTranscriptProcessed(filename).catch((err) => {
26
- logger.warn(`[Realtime] Failed to mark transcript processed after enqueue: ${err instanceof Error ? err.message : String(err)}`);
27
- });
28
- logger.system(`[Realtime] Enqueued voice follow-up through message path (session ${event.sessionId}).`);
29
- });
30
- }
31
- //# sourceMappingURL=agent-bridge.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"agent-bridge.js","sourceRoot":"","sources":["../../src/realtime/agent-bridge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAKtC,MAAM,UAAU,mBAAmB,CAAC,OAGnC;IACC,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;IAEnD,cAAc,CAAC,sBAAsB,CAAC,CAAC,KAAK,EAAE,EAAE;QAC9C,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;YAC/B,MAAM,CAAC,MAAM,CAAC,4BAA4B,KAAK,CAAC,SAAS,qDAAqD,CAAC,CAAC;YAChH,OAAO;QACT,CAAC;QAED,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,IAAI,sBAAsB,CAAC;QACnF,MAAM,QAAQ,GAAG,GAAG,KAAK,CAAC,SAAS,OAAO,CAAC;QAC3C,MAAM,GAAG,GAAmB;YAC1B,EAAE,EAAE,kBAAkB,KAAK,CAAC,SAAS,EAAE;YACvC,OAAO,EAAE,QAAQ;YACjB,MAAM,EAAE,UAAU;YAClB,IAAI,EAAE,wCAAwC,IAAI,EAAE;YACpD,WAAW,EAAE,EAAE;YACf,SAAS,EAAE,KAAK,CAAC,OAAO;YACxB,IAAI,EAAE;gBACJ,IAAI,EAAE,yBAAyB;gBAC/B,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,kBAAkB,EAAE,QAAQ;aAC7B;SACF,CAAC;QAEF,cAAc,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC;QAC3C,cAAc,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;YACtE,MAAM,CAAC,IAAI,CAAC,iEAAiE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACnI,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,qEAAqE,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC;IAC1G,CAAC,CAAC,CAAC;AACL,CAAC"}