visionclaw 0.1.193 → 0.1.194-dev.feat-backup-progress-reporting.1

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 (352) hide show
  1. package/dist/agent/backup-uploader.d.ts +44 -0
  2. package/dist/agent/backup-uploader.d.ts.map +1 -0
  3. package/dist/agent/backup-uploader.js +83 -0
  4. package/dist/agent/backup-uploader.js.map +1 -0
  5. package/dist/agent/backup.d.ts +7 -1
  6. package/dist/agent/backup.d.ts.map +1 -1
  7. package/dist/agent/backup.js +337 -52
  8. package/dist/agent/backup.js.map +1 -1
  9. package/dist/agent/command-handlers.d.ts +2 -0
  10. package/dist/agent/command-handlers.d.ts.map +1 -1
  11. package/dist/agent/command-handlers.js +29 -3
  12. package/dist/agent/command-handlers.js.map +1 -1
  13. package/dist/agent/context.d.ts +2 -0
  14. package/dist/agent/context.d.ts.map +1 -1
  15. package/dist/agent/context.js +11 -1
  16. package/dist/agent/context.js.map +1 -1
  17. package/dist/agent/data-collector.d.ts.map +1 -1
  18. package/dist/agent/data-collector.js +23 -38
  19. package/dist/agent/data-collector.js.map +1 -1
  20. package/dist/agent/loop.d.ts +3 -0
  21. package/dist/agent/loop.d.ts.map +1 -1
  22. package/dist/agent/loop.js +48 -0
  23. package/dist/agent/loop.js.map +1 -1
  24. package/dist/agent/message-format.d.ts.map +1 -1
  25. package/dist/agent/message-format.js +3 -0
  26. package/dist/agent/message-format.js.map +1 -1
  27. package/dist/agent/status.d.ts.map +1 -1
  28. package/dist/agent/status.js +2 -1
  29. package/dist/agent/status.js.map +1 -1
  30. package/dist/backup.d.ts +4 -1
  31. package/dist/backup.d.ts.map +1 -1
  32. package/dist/backup.js +86 -3
  33. package/dist/backup.js.map +1 -1
  34. package/dist/calendar/google-calendar.d.ts +2 -0
  35. package/dist/calendar/google-calendar.d.ts.map +1 -1
  36. package/dist/calendar/google-calendar.js +3 -0
  37. package/dist/calendar/google-calendar.js.map +1 -1
  38. package/dist/channels/interface.d.ts +9 -0
  39. package/dist/channels/interface.d.ts.map +1 -1
  40. package/dist/channels/manager.d.ts +7 -1
  41. package/dist/channels/manager.d.ts.map +1 -1
  42. package/dist/channels/manager.js +12 -0
  43. package/dist/channels/manager.js.map +1 -1
  44. package/dist/channels/telegram.d.ts.map +1 -1
  45. package/dist/channels/telegram.js +5 -0
  46. package/dist/channels/telegram.js.map +1 -1
  47. package/dist/cli/index.d.ts +1 -0
  48. package/dist/cli/index.d.ts.map +1 -1
  49. package/dist/cli/index.js +42 -2
  50. package/dist/cli/index.js.map +1 -1
  51. package/dist/config/types.d.ts +9 -0
  52. package/dist/config/types.d.ts.map +1 -1
  53. package/dist/config/types.js +6 -0
  54. package/dist/config/types.js.map +1 -1
  55. package/dist/drive/google-drive.d.ts +1 -0
  56. package/dist/drive/google-drive.d.ts.map +1 -1
  57. package/dist/drive/google-drive.js +5 -0
  58. package/dist/drive/google-drive.js.map +1 -1
  59. package/dist/i18n/messages.d.ts +4 -0
  60. package/dist/i18n/messages.d.ts.map +1 -1
  61. package/dist/i18n/messages.js +7 -2
  62. package/dist/i18n/messages.js.map +1 -1
  63. package/dist/index.js.map +1 -1
  64. package/dist/obs/server.d.ts +7 -0
  65. package/dist/obs/server.d.ts.map +1 -1
  66. package/dist/obs/server.js +22 -0
  67. package/dist/obs/server.js.map +1 -1
  68. package/dist/onboarding/bot-profile.d.ts.map +1 -1
  69. package/dist/onboarding/bot-profile.js +1 -0
  70. package/dist/onboarding/bot-profile.js.map +1 -1
  71. package/dist/onboarding/index.d.ts.map +1 -1
  72. package/dist/onboarding/index.js +5 -0
  73. package/dist/onboarding/index.js.map +1 -1
  74. package/dist/onboarding/prepare-mac.d.ts +1 -0
  75. package/dist/onboarding/prepare-mac.d.ts.map +1 -1
  76. package/dist/onboarding/prepare-mac.js +32 -15
  77. package/dist/onboarding/prepare-mac.js.map +1 -1
  78. package/dist/onboarding/setup-shared.d.ts.map +1 -1
  79. package/dist/onboarding/setup-shared.js +6 -0
  80. package/dist/onboarding/setup-shared.js.map +1 -1
  81. package/dist/onboarding/setup-steps.d.ts.map +1 -1
  82. package/dist/onboarding/setup-steps.js +8 -0
  83. package/dist/onboarding/setup-steps.js.map +1 -1
  84. package/dist/realtime/agent-bridge.d.ts +7 -0
  85. package/dist/realtime/agent-bridge.d.ts.map +1 -0
  86. package/dist/realtime/agent-bridge.js +31 -0
  87. package/dist/realtime/agent-bridge.js.map +1 -0
  88. package/dist/realtime/assets/index.html +1058 -0
  89. package/dist/realtime/assets/samples/alloy.mp3 +0 -0
  90. package/dist/realtime/assets/samples/ash.mp3 +0 -0
  91. package/dist/realtime/assets/samples/ballad.mp3 +0 -0
  92. package/dist/realtime/assets/samples/cedar.mp3 +0 -0
  93. package/dist/realtime/assets/samples/coral.mp3 +0 -0
  94. package/dist/realtime/assets/samples/echo.mp3 +0 -0
  95. package/dist/realtime/assets/samples/marin.mp3 +0 -0
  96. package/dist/realtime/assets/samples/sage.mp3 +0 -0
  97. package/dist/realtime/assets/samples/shimmer.mp3 +0 -0
  98. package/dist/realtime/assets/samples/verse.mp3 +0 -0
  99. package/dist/realtime/context.d.ts +14 -0
  100. package/dist/realtime/context.d.ts.map +1 -0
  101. package/dist/realtime/context.js +153 -0
  102. package/dist/realtime/context.js.map +1 -0
  103. package/dist/realtime/http-helpers.d.ts +5 -0
  104. package/dist/realtime/http-helpers.d.ts.map +1 -0
  105. package/dist/realtime/http-helpers.js +29 -0
  106. package/dist/realtime/http-helpers.js.map +1 -0
  107. package/dist/realtime/index.d.ts +62 -0
  108. package/dist/realtime/index.d.ts.map +1 -0
  109. package/dist/realtime/index.js +94 -0
  110. package/dist/realtime/index.js.map +1 -0
  111. package/dist/realtime/server.d.ts +6 -0
  112. package/dist/realtime/server.d.ts.map +1 -0
  113. package/dist/realtime/server.js +476 -0
  114. package/dist/realtime/server.js.map +1 -0
  115. package/dist/realtime/telegram-auth.d.ts +2 -0
  116. package/dist/realtime/telegram-auth.d.ts.map +1 -0
  117. package/dist/realtime/telegram-auth.js +24 -0
  118. package/dist/realtime/telegram-auth.js.map +1 -0
  119. package/dist/realtime/tools.d.ts +829 -0
  120. package/dist/realtime/tools.d.ts.map +1 -0
  121. package/dist/realtime/tools.js +630 -0
  122. package/dist/realtime/tools.js.map +1 -0
  123. package/dist/realtime/types.d.ts +62 -0
  124. package/dist/realtime/types.d.ts.map +1 -0
  125. package/dist/realtime/types.js +3 -0
  126. package/dist/realtime/types.js.map +1 -0
  127. package/dist/realtime/voice-summarizer.d.ts +4 -0
  128. package/dist/realtime/voice-summarizer.d.ts.map +1 -0
  129. package/dist/realtime/voice-summarizer.js +129 -0
  130. package/dist/realtime/voice-summarizer.js.map +1 -0
  131. package/dist/restore.d.ts +5 -0
  132. package/dist/restore.d.ts.map +1 -1
  133. package/dist/restore.js +132 -16
  134. package/dist/restore.js.map +1 -1
  135. package/dist/tools/email.d.ts +1 -1
  136. package/dist/tools/memory.d.ts +13 -0
  137. package/dist/tools/memory.d.ts.map +1 -1
  138. package/dist/tools/memory.js +43 -43
  139. package/dist/tools/memory.js.map +1 -1
  140. package/dist/tools/stock-data.d.ts +16 -0
  141. package/dist/tools/stock-data.d.ts.map +1 -1
  142. package/dist/tools/stock-data.js +36 -38
  143. package/dist/tools/stock-data.js.map +1 -1
  144. package/dist/tools/web-fetch.d.ts +4 -0
  145. package/dist/tools/web-fetch.d.ts.map +1 -1
  146. package/dist/tools/web-fetch.js +95 -23
  147. package/dist/tools/web-fetch.js.map +1 -1
  148. package/dist/tos-storage.d.ts +45 -0
  149. package/dist/tos-storage.d.ts.map +1 -0
  150. package/dist/tos-storage.js +134 -0
  151. package/dist/tos-storage.js.map +1 -0
  152. package/dist-agent/bundle.cjs +170934 -167547
  153. package/package.json +3 -2
  154. package/dist/agent/applied-credential-signature.d.ts +0 -53
  155. package/dist/agent/applied-credential-signature.d.ts.map +0 -1
  156. package/dist/agent/applied-credential-signature.js +0 -137
  157. package/dist/agent/applied-credential-signature.js.map +0 -1
  158. package/dist/agent/engines/claude/cli-resolver.d.ts +0 -16
  159. package/dist/agent/engines/claude/cli-resolver.d.ts.map +0 -1
  160. package/dist/agent/engines/claude/cli-resolver.js +0 -83
  161. package/dist/agent/engines/claude/cli-resolver.js.map +0 -1
  162. package/dist/agent/engines/claude/session-browser-policy.d.ts +0 -9
  163. package/dist/agent/engines/claude/session-browser-policy.d.ts.map +0 -1
  164. package/dist/agent/engines/claude/session-browser-policy.js +0 -49
  165. package/dist/agent/engines/claude/session-browser-policy.js.map +0 -1
  166. package/dist/agent/engines/claude/session.d.ts +0 -291
  167. package/dist/agent/engines/claude/session.d.ts.map +0 -1
  168. package/dist/agent/engines/claude/session.js +0 -1177
  169. package/dist/agent/engines/claude/session.js.map +0 -1
  170. package/dist/agent/engines/client-factory.d.ts +0 -63
  171. package/dist/agent/engines/client-factory.d.ts.map +0 -1
  172. package/dist/agent/engines/client-factory.js +0 -382
  173. package/dist/agent/engines/client-factory.js.map +0 -1
  174. package/dist/agent/engines/engine.d.ts +0 -8
  175. package/dist/agent/engines/engine.d.ts.map +0 -1
  176. package/dist/agent/engines/engine.js +0 -15
  177. package/dist/agent/engines/engine.js.map +0 -1
  178. package/dist/agent/engines/openai/file-session.d.ts +0 -49
  179. package/dist/agent/engines/openai/file-session.d.ts.map +0 -1
  180. package/dist/agent/engines/openai/file-session.js +0 -108
  181. package/dist/agent/engines/openai/file-session.js.map +0 -1
  182. package/dist/agent/engines/openai/file-tools.d.ts +0 -35
  183. package/dist/agent/engines/openai/file-tools.d.ts.map +0 -1
  184. package/dist/agent/engines/openai/file-tools.js +0 -194
  185. package/dist/agent/engines/openai/file-tools.js.map +0 -1
  186. package/dist/agent/engines/openai/session.d.ts +0 -190
  187. package/dist/agent/engines/openai/session.d.ts.map +0 -1
  188. package/dist/agent/engines/openai/session.js +0 -1066
  189. package/dist/agent/engines/openai/session.js.map +0 -1
  190. package/dist/agent/engines/openai/tools.d.ts +0 -13
  191. package/dist/agent/engines/openai/tools.d.ts.map +0 -1
  192. package/dist/agent/engines/openai/tools.js +0 -248
  193. package/dist/agent/engines/openai/tools.js.map +0 -1
  194. package/dist/agent/engines/session-types.d.ts +0 -146
  195. package/dist/agent/engines/session-types.d.ts.map +0 -1
  196. package/dist/agent/engines/session-types.js +0 -2
  197. package/dist/agent/engines/session-types.js.map +0 -1
  198. package/dist/agent/engines/system-prompt-log.d.ts +0 -9
  199. package/dist/agent/engines/system-prompt-log.d.ts.map +0 -1
  200. package/dist/agent/engines/system-prompt-log.js +0 -46
  201. package/dist/agent/engines/system-prompt-log.js.map +0 -1
  202. package/dist/agent/transcript/transcript-backfill.d.ts +0 -54
  203. package/dist/agent/transcript/transcript-backfill.d.ts.map +0 -1
  204. package/dist/agent/transcript/transcript-backfill.js +0 -604
  205. package/dist/agent/transcript/transcript-backfill.js.map +0 -1
  206. package/dist/agent/transcript/transcript-indexer.d.ts +0 -273
  207. package/dist/agent/transcript/transcript-indexer.d.ts.map +0 -1
  208. package/dist/agent/transcript/transcript-indexer.js +0 -1217
  209. package/dist/agent/transcript/transcript-indexer.js.map +0 -1
  210. package/dist/agent/transcript/transcript-memory-migrations.d.ts +0 -25
  211. package/dist/agent/transcript/transcript-memory-migrations.d.ts.map +0 -1
  212. package/dist/agent/transcript/transcript-memory-migrations.js +0 -87
  213. package/dist/agent/transcript/transcript-memory-migrations.js.map +0 -1
  214. package/dist/agent/transcript-memory-migrations.d.ts +0 -25
  215. package/dist/agent/transcript-memory-migrations.d.ts.map +0 -1
  216. package/dist/agent/transcript-memory-migrations.js +0 -87
  217. package/dist/agent/transcript-memory-migrations.js.map +0 -1
  218. package/dist/agent/tunnel-credential-handler.d.ts +0 -90
  219. package/dist/agent/tunnel-credential-handler.d.ts.map +0 -1
  220. package/dist/agent/tunnel-credential-handler.js +0 -162
  221. package/dist/agent/tunnel-credential-handler.js.map +0 -1
  222. package/dist/agent/usage/usage-backfill-handler.d.ts +0 -18
  223. package/dist/agent/usage/usage-backfill-handler.d.ts.map +0 -1
  224. package/dist/agent/usage/usage-backfill-handler.js +0 -69
  225. package/dist/agent/usage/usage-backfill-handler.js.map +0 -1
  226. package/dist/agent/usage/usage-gate.d.ts +0 -25
  227. package/dist/agent/usage/usage-gate.d.ts.map +0 -1
  228. package/dist/agent/usage/usage-gate.js +0 -83
  229. package/dist/agent/usage/usage-gate.js.map +0 -1
  230. package/dist/agent/usage/usage-handler.d.ts +0 -7
  231. package/dist/agent/usage/usage-handler.d.ts.map +0 -1
  232. package/dist/agent/usage/usage-handler.js +0 -28
  233. package/dist/agent/usage/usage-handler.js.map +0 -1
  234. package/dist/agent/usage/usage-report-builder.d.ts +0 -26
  235. package/dist/agent/usage/usage-report-builder.d.ts.map +0 -1
  236. package/dist/agent/usage/usage-report-builder.js +0 -80
  237. package/dist/agent/usage/usage-report-builder.js.map +0 -1
  238. package/dist/agent/usage/usage-report-queue.d.ts +0 -26
  239. package/dist/agent/usage/usage-report-queue.d.ts.map +0 -1
  240. package/dist/agent/usage/usage-report-queue.js +0 -199
  241. package/dist/agent/usage/usage-report-queue.js.map +0 -1
  242. package/dist/agent/usage/usage-report-types.d.ts +0 -41
  243. package/dist/agent/usage/usage-report-types.d.ts.map +0 -1
  244. package/dist/agent/usage/usage-report-types.js +0 -2
  245. package/dist/agent/usage/usage-report-types.js.map +0 -1
  246. package/dist/agent/usage/usage-reporter.d.ts +0 -31
  247. package/dist/agent/usage/usage-reporter.d.ts.map +0 -1
  248. package/dist/agent/usage/usage-reporter.js +0 -102
  249. package/dist/agent/usage/usage-reporter.js.map +0 -1
  250. package/dist/agent/usage-backfill-handler.d.ts +0 -18
  251. package/dist/agent/usage-backfill-handler.d.ts.map +0 -1
  252. package/dist/agent/usage-backfill-handler.js +0 -69
  253. package/dist/agent/usage-backfill-handler.js.map +0 -1
  254. package/dist/agent/usage-gate.d.ts +0 -25
  255. package/dist/agent/usage-gate.d.ts.map +0 -1
  256. package/dist/agent/usage-gate.js +0 -83
  257. package/dist/agent/usage-gate.js.map +0 -1
  258. package/dist/agent/usage-report-builder.d.ts +0 -26
  259. package/dist/agent/usage-report-builder.d.ts.map +0 -1
  260. package/dist/agent/usage-report-builder.js +0 -80
  261. package/dist/agent/usage-report-builder.js.map +0 -1
  262. package/dist/agent/usage-report-queue.d.ts +0 -26
  263. package/dist/agent/usage-report-queue.d.ts.map +0 -1
  264. package/dist/agent/usage-report-queue.js +0 -199
  265. package/dist/agent/usage-report-queue.js.map +0 -1
  266. package/dist/agent/usage-report-types.d.ts +0 -41
  267. package/dist/agent/usage-report-types.d.ts.map +0 -1
  268. package/dist/agent/usage-report-types.js +0 -2
  269. package/dist/agent/usage-report-types.js.map +0 -1
  270. package/dist/agent/usage-reporter.d.ts +0 -31
  271. package/dist/agent/usage-reporter.d.ts.map +0 -1
  272. package/dist/agent/usage-reporter.js +0 -102
  273. package/dist/agent/usage-reporter.js.map +0 -1
  274. package/dist/agent/wake-cycle-tool-tracker.d.ts +0 -39
  275. package/dist/agent/wake-cycle-tool-tracker.d.ts.map +0 -1
  276. package/dist/agent/wake-cycle-tool-tracker.js +0 -72
  277. package/dist/agent/wake-cycle-tool-tracker.js.map +0 -1
  278. package/dist/billing/payg-handler.d.ts +0 -29
  279. package/dist/billing/payg-handler.d.ts.map +0 -1
  280. package/dist/billing/payg-handler.js +0 -92
  281. package/dist/billing/payg-handler.js.map +0 -1
  282. package/dist/billing/payment-handler.d.ts +0 -24
  283. package/dist/billing/payment-handler.d.ts.map +0 -1
  284. package/dist/billing/payment-handler.js +0 -101
  285. package/dist/billing/payment-handler.js.map +0 -1
  286. package/dist/builtin-skills/catalog/phone-adb-automation/SKILL.md +0 -412
  287. package/dist/builtin-skills/catalog/phone-adb-automation/phone_input.sh +0 -132
  288. package/dist/builtin-skills/catalog/phone-adb-automation/phone_launch.sh +0 -166
  289. package/dist/builtin-skills/catalog/phone-adb-automation/phone_screenshot.sh +0 -87
  290. package/dist/builtin-skills/catalog/phone-adb-automation/phone_security_kbd.py +0 -174
  291. package/dist/builtin-skills/catalog/phone-adb-automation/phone_setup.sh +0 -274
  292. package/dist/builtin-skills/catalog/phone-adb-automation/phone_swipe.sh +0 -111
  293. package/dist/builtin-skills/catalog/phone-adb-automation/phone_tap.sh +0 -87
  294. package/dist/builtin-skills/catalog/phone-adb-automation/phone_ui_parse.py +0 -176
  295. package/dist/builtin-skills/catalog/phone-adb-automation/phone_wake_unlock.sh +0 -67
  296. package/dist/builtin-skills/transcribe-audio/SKILL.md +0 -122
  297. package/dist/data-processing/convert-demo-cli.d.ts +0 -7
  298. package/dist/data-processing/convert-demo-cli.d.ts.map +0 -1
  299. package/dist/data-processing/convert-demo-cli.js +0 -30
  300. package/dist/data-processing/convert-demo-cli.js.map +0 -1
  301. package/dist/data-processing/convert-demo.d.ts +0 -26
  302. package/dist/data-processing/convert-demo.d.ts.map +0 -1
  303. package/dist/data-processing/convert-demo.js +0 -233
  304. package/dist/data-processing/convert-demo.js.map +0 -1
  305. package/dist/obs/rdp/icons/icons/app_windows.svg +0 -4
  306. package/dist/obs/rdp/icons/icons/clip_get.svg +0 -4
  307. package/dist/obs/rdp/icons/icons/clip_send.svg +0 -4
  308. package/dist/obs/rdp/icons/icons/clip_shared.svg +0 -4
  309. package/dist/obs/rdp/icons/icons/clipboard.svg +0 -4
  310. package/dist/obs/rdp/icons/icons/clipboard_shared.svg +0 -4
  311. package/dist/obs/rdp/icons/icons/control.svg +0 -4
  312. package/dist/obs/rdp/icons/icons/desktop.svg +0 -4
  313. package/dist/obs/rdp/icons/icons/display.svg +0 -4
  314. package/dist/obs/rdp/icons/icons/launchpad.svg +0 -4
  315. package/dist/obs/rdp/icons/icons/mission_control.svg +0 -4
  316. package/dist/obs/rdp/icons/icons/screenshot.svg +0 -4
  317. package/dist/obs/rdp/icons/icons/zoom_actual.svg +0 -4
  318. package/dist/obs/rdp/icons/icons/zoom_fit.svg +0 -4
  319. package/dist/obs/rdp/icons/icons/zoom_in.svg +0 -4
  320. package/dist/obs/rdp/icons/icons/zoom_out.svg +0 -4
  321. package/dist/obs/tunnel-telemetry.d.ts +0 -46
  322. package/dist/obs/tunnel-telemetry.d.ts.map +0 -1
  323. package/dist/obs/tunnel-telemetry.js +0 -70
  324. package/dist/obs/tunnel-telemetry.js.map +0 -1
  325. package/dist/onboarding/cloudflared-cert.d.ts +0 -15
  326. package/dist/onboarding/cloudflared-cert.d.ts.map +0 -1
  327. package/dist/onboarding/cloudflared-cert.js +0 -57
  328. package/dist/onboarding/cloudflared-cert.js.map +0 -1
  329. package/dist/onboarding/playwriter-extension.d.ts +0 -19
  330. package/dist/onboarding/playwriter-extension.d.ts.map +0 -1
  331. package/dist/onboarding/playwriter-extension.js +0 -246
  332. package/dist/onboarding/playwriter-extension.js.map +0 -1
  333. package/dist/service/gbox-tun.d.ts +0 -14
  334. package/dist/service/gbox-tun.d.ts.map +0 -1
  335. package/dist/service/gbox-tun.js +0 -315
  336. package/dist/service/gbox-tun.js.map +0 -1
  337. package/dist/skills/installed.d.ts +0 -11
  338. package/dist/skills/installed.d.ts.map +0 -1
  339. package/dist/skills/installed.js +0 -35
  340. package/dist/skills/installed.js.map +0 -1
  341. package/dist/tools/coordinate-resolver.d.ts +0 -30
  342. package/dist/tools/coordinate-resolver.d.ts.map +0 -1
  343. package/dist/tools/coordinate-resolver.js +0 -104
  344. package/dist/tools/coordinate-resolver.js.map +0 -1
  345. package/dist/utils/playwriter-relay.d.ts +0 -9
  346. package/dist/utils/playwriter-relay.d.ts.map +0 -1
  347. package/dist/utils/playwriter-relay.js +0 -77
  348. package/dist/utils/playwriter-relay.js.map +0 -1
  349. package/dist/utils/wechat-monitor.d.ts +0 -21
  350. package/dist/utils/wechat-monitor.d.ts.map +0 -1
  351. package/dist/utils/wechat-monitor.js +0 -88
  352. package/dist/utils/wechat-monitor.js.map +0 -1
@@ -1,108 +0,0 @@
1
- import fs from "node:fs";
2
- import path from "node:path";
3
- import { randomUUID } from "node:crypto";
4
- import { getOpenAISessionsDir } from "../../../config/index.js";
5
- /**
6
- * File-backed implementation of the OpenAI Agents SDK `Session` interface.
7
- *
8
- * Each session is persisted as a single JSON file named after the session id
9
- * (e.g. `openai-sessions/<sessionId>.json`). This makes session rollover
10
- * after compaction trivial: we mint a new id, write the compacted items into
11
- * a new file, and rename the old file to `<oldId>.compacted-<iso>.json` for
12
- * archival.
13
- *
14
- * The constructor accepts an explicit directory so tests can supply a
15
- * temporary location without monkey-patching `getOpenAISessionsDir()`.
16
- */
17
- export class OpenAIFileSession {
18
- dir;
19
- filePath;
20
- sessionId;
21
- items;
22
- constructor(options = {}) {
23
- this.dir = options.dir ?? getOpenAISessionsDir();
24
- this.sessionId = options.sessionId ?? randomUUID();
25
- this.filePath = path.join(this.dir, `${this.sessionId}.json`);
26
- const existing = this.load();
27
- if (existing) {
28
- // Trust the on-disk file: use its sessionId so the filename and the
29
- // stored sessionId can never disagree.
30
- this.sessionId = existing.sessionId;
31
- this.filePath = path.join(this.dir, `${this.sessionId}.json`);
32
- this.items = existing.items;
33
- }
34
- else {
35
- this.items = options.seedItems ? structuredClone(options.seedItems) : [];
36
- this.persist();
37
- }
38
- }
39
- getSessionId() {
40
- return Promise.resolve(this.sessionId);
41
- }
42
- getSessionIdSync() {
43
- return this.sessionId;
44
- }
45
- getFilePath() {
46
- return this.filePath;
47
- }
48
- getDir() {
49
- return this.dir;
50
- }
51
- getAllItemsSync() {
52
- return structuredClone(this.items);
53
- }
54
- getItems(limit) {
55
- const items = limit && limit > 0 ? this.items.slice(-limit) : this.items;
56
- return Promise.resolve(structuredClone(items));
57
- }
58
- addItems(items) {
59
- if (items.length === 0) {
60
- return Promise.resolve();
61
- }
62
- this.items.push(...structuredClone(items));
63
- this.persist();
64
- return Promise.resolve();
65
- }
66
- popItem() {
67
- const item = this.items.pop();
68
- this.persist();
69
- return Promise.resolve(item ? structuredClone(item) : undefined);
70
- }
71
- clearSession() {
72
- this.items = [];
73
- this.persist();
74
- return Promise.resolve();
75
- }
76
- load() {
77
- if (!fs.existsSync(this.filePath)) {
78
- return null;
79
- }
80
- try {
81
- const raw = JSON.parse(fs.readFileSync(this.filePath, "utf-8"));
82
- if (!raw || typeof raw !== "object" || Array.isArray(raw)) {
83
- return null;
84
- }
85
- const parsed = raw;
86
- if (!parsed.sessionId || !Array.isArray(parsed.items)) {
87
- return null;
88
- }
89
- return {
90
- sessionId: parsed.sessionId,
91
- items: parsed.items,
92
- updatedAt: typeof parsed.updatedAt === "string" ? parsed.updatedAt : new Date().toISOString(),
93
- };
94
- }
95
- catch {
96
- return null;
97
- }
98
- }
99
- persist() {
100
- fs.mkdirSync(path.dirname(this.filePath), { recursive: true });
101
- fs.writeFileSync(this.filePath, JSON.stringify({
102
- sessionId: this.sessionId,
103
- items: this.items,
104
- updatedAt: new Date().toISOString(),
105
- }, null, 2), "utf-8");
106
- }
107
- }
108
- //# sourceMappingURL=file-session.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"file-session.js","sourceRoot":"","sources":["../../../../src/agent/engines/openai/file-session.ts"],"names":[],"mappings":"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"}
@@ -1,35 +0,0 @@
1
- /**
2
- * Local Shell and Editor adapters for the OpenAI Agents SDK's `shellTool`
3
- * and `applyPatchTool`.
4
- *
5
- * VisionClaw runs autonomously and Claude already has broad local tool
6
- * access, so these adapters intentionally allow broad filesystem scope
7
- * (bounded only by OS/user permissions). They still apply practical
8
- * runtime limits (timeout + output truncation) and log every invocation
9
- * so we have an audit trail.
10
- */
11
- import { type ApplyPatchOperation, type ApplyPatchResult, type Editor, type Shell, type ShellAction, type ShellResult } from "@openai/agents-core";
12
- /**
13
- * Local Shell adapter: executes each command sequentially, capturing
14
- * stdout/stderr with a per-command timeout and output cap.
15
- */
16
- export declare class LocalShell implements Shell {
17
- run(action: ShellAction): Promise<ShellResult>;
18
- }
19
- /**
20
- * Local Editor adapter: handles `create_file`, `update_file`, and
21
- * `delete_file` ApplyPatch operations using the SDK's `applyDiff` helper
22
- * for V4A patch semantics.
23
- */
24
- export declare class LocalEditor implements Editor {
25
- createFile(operation: Extract<ApplyPatchOperation, {
26
- type: "create_file";
27
- }>): Promise<ApplyPatchResult>;
28
- updateFile(operation: Extract<ApplyPatchOperation, {
29
- type: "update_file";
30
- }>): Promise<ApplyPatchResult>;
31
- deleteFile(operation: Extract<ApplyPatchOperation, {
32
- type: "delete_file";
33
- }>): Promise<ApplyPatchResult>;
34
- }
35
- //# sourceMappingURL=file-tools.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"file-tools.d.ts","sourceRoot":"","sources":["../../../../src/agent/engines/openai/file-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,MAAM,EACX,KAAK,KAAK,EACV,KAAK,WAAW,EAEhB,KAAK,WAAW,EACjB,MAAM,qBAAqB,CAAC;AAuH7B;;;GAGG;AACH,qBAAa,UAAW,YAAW,KAAK;IAChC,GAAG,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;CAgBrD;AAED;;;;GAIG;AACH,qBAAa,WAAY,YAAW,MAAM;IAClC,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,mBAAmB,EAAE;QAAE,IAAI,EAAE,aAAa,CAAA;KAAE,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAoBvG,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,mBAAmB,EAAE;QAAE,IAAI,EAAE,aAAa,CAAA;KAAE,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAcvG,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,mBAAmB,EAAE;QAAE,IAAI,EAAE,aAAa,CAAA;KAAE,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAW9G"}
@@ -1,194 +0,0 @@
1
- /**
2
- * Local Shell and Editor adapters for the OpenAI Agents SDK's `shellTool`
3
- * and `applyPatchTool`.
4
- *
5
- * VisionClaw runs autonomously and Claude already has broad local tool
6
- * access, so these adapters intentionally allow broad filesystem scope
7
- * (bounded only by OS/user permissions). They still apply practical
8
- * runtime limits (timeout + output truncation) and log every invocation
9
- * so we have an audit trail.
10
- */
11
- import { spawn } from "node:child_process";
12
- import fs from "node:fs/promises";
13
- import path from "node:path";
14
- import { applyDiff, } from "@openai/agents-core";
15
- import { logger } from "../../../logger.js";
16
- /**
17
- * Hard ceiling for a single shell tool call regardless of what the model
18
- * requests. Prevents the agent from hanging the turn on a runaway command.
19
- */
20
- const SHELL_DEFAULT_TIMEOUT_MS = 60_000;
21
- const SHELL_MAX_TIMEOUT_MS = 5 * 60_000;
22
- /**
23
- * Hard ceiling on stdout/stderr length per command. Anything beyond this
24
- * gets a truncation marker so the model is aware. Keeps a runaway command
25
- * from blowing the context window.
26
- */
27
- const SHELL_DEFAULT_MAX_OUTPUT = 16_000;
28
- const SHELL_MAX_OUTPUT_HARD = 64_000;
29
- function clampNumber(value, fallback, max) {
30
- if (typeof value !== "number" || !Number.isFinite(value) || value <= 0) {
31
- return fallback;
32
- }
33
- return Math.min(value, max);
34
- }
35
- function truncate(text, max) {
36
- if (text.length <= max)
37
- return text;
38
- const head = text.slice(0, max);
39
- const dropped = text.length - max;
40
- return `${head}\n…[truncated ${dropped} bytes]`;
41
- }
42
- function isFileExistsError(err) {
43
- return Boolean(err && typeof err === "object" && err.code === "EEXIST");
44
- }
45
- /**
46
- * Run a single shell command line via `/bin/sh -c <cmd>` and capture its
47
- * stdout/stderr. Returns the SDK-shaped `ShellOutputResult`.
48
- */
49
- async function runOne(command, timeoutMs, maxOutputLength) {
50
- return new Promise((resolve) => {
51
- // `detached: true` puts the child shell in its own process group, so on
52
- // timeout we can SIGKILL the whole group (`-pid`) and clean up any
53
- // descendants the model spawned (e.g. backgrounded servers, pipelines).
54
- const child = spawn("/bin/sh", ["-c", command], {
55
- cwd: process.cwd(),
56
- env: process.env,
57
- stdio: ["ignore", "pipe", "pipe"],
58
- detached: true,
59
- });
60
- let stdout = "";
61
- let stderr = "";
62
- let timedOut = false;
63
- const killGroup = () => {
64
- if (typeof child.pid !== "number") {
65
- return;
66
- }
67
- try {
68
- // Negative pid => signal the entire process group.
69
- process.kill(-child.pid, "SIGKILL");
70
- }
71
- catch {
72
- // Group already gone (or never created on this platform). Fall
73
- // back to killing just the immediate child.
74
- try {
75
- child.kill("SIGKILL");
76
- }
77
- catch {
78
- // ignore — process already gone
79
- }
80
- }
81
- };
82
- const timer = setTimeout(() => {
83
- timedOut = true;
84
- killGroup();
85
- }, timeoutMs);
86
- child.stdout.setEncoding("utf-8");
87
- child.stderr.setEncoding("utf-8");
88
- child.stdout.on("data", (chunk) => {
89
- if (stdout.length < maxOutputLength)
90
- stdout += chunk;
91
- });
92
- child.stderr.on("data", (chunk) => {
93
- if (stderr.length < maxOutputLength)
94
- stderr += chunk;
95
- });
96
- child.on("error", (err) => {
97
- clearTimeout(timer);
98
- resolve({
99
- stdout: truncate(stdout, maxOutputLength),
100
- stderr: truncate(stderr + (stderr ? "\n" : "") + (err instanceof Error ? err.message : String(err)), maxOutputLength),
101
- outcome: { type: "exit", exitCode: null },
102
- });
103
- });
104
- child.on("close", (code, signal) => {
105
- clearTimeout(timer);
106
- if (timedOut) {
107
- resolve({
108
- stdout: truncate(stdout, maxOutputLength),
109
- stderr: truncate(stderr + (stderr ? "\n" : "") + `Command timed out after ${timeoutMs}ms (signal=${signal ?? "SIGKILL"})`, maxOutputLength),
110
- outcome: { type: "timeout" },
111
- });
112
- return;
113
- }
114
- resolve({
115
- stdout: truncate(stdout, maxOutputLength),
116
- stderr: truncate(stderr, maxOutputLength),
117
- outcome: { type: "exit", exitCode: typeof code === "number" ? code : null },
118
- });
119
- });
120
- });
121
- }
122
- /**
123
- * Local Shell adapter: executes each command sequentially, capturing
124
- * stdout/stderr with a per-command timeout and output cap.
125
- */
126
- export class LocalShell {
127
- async run(action) {
128
- const timeoutMs = clampNumber(action.timeoutMs, SHELL_DEFAULT_TIMEOUT_MS, SHELL_MAX_TIMEOUT_MS);
129
- const maxOutputLength = clampNumber(action.maxOutputLength, SHELL_DEFAULT_MAX_OUTPUT, SHELL_MAX_OUTPUT_HARD);
130
- const output = [];
131
- for (const command of action.commands) {
132
- logger.info(`[openai/shell] $ ${command}`);
133
- const result = await runOne(command, timeoutMs, maxOutputLength);
134
- const exitCode = result.outcome.type === "exit" ? result.outcome.exitCode : "timeout";
135
- logger.info(`[openai/shell] exit=${String(exitCode)} stdout=${result.stdout.length}B stderr=${result.stderr.length}B`);
136
- output.push(result);
137
- }
138
- return { output, maxOutputLength };
139
- }
140
- }
141
- /**
142
- * Local Editor adapter: handles `create_file`, `update_file`, and
143
- * `delete_file` ApplyPatch operations using the SDK's `applyDiff` helper
144
- * for V4A patch semantics.
145
- */
146
- export class LocalEditor {
147
- async createFile(operation) {
148
- const target = path.resolve(process.cwd(), operation.path);
149
- logger.info(`[openai/apply_patch] create ${target}`);
150
- try {
151
- await fs.mkdir(path.dirname(target), { recursive: true });
152
- const content = applyDiff("", operation.diff, "create");
153
- // `wx` => fail if the file already exists. V4A `create_file` is meant
154
- // for new files; if the target exists the model should use
155
- // `update_file` instead so we don't silently clobber data.
156
- await fs.writeFile(target, content, { encoding: "utf-8", flag: "wx" });
157
- return { status: "completed", output: `Created ${operation.path}` };
158
- }
159
- catch (err) {
160
- const message = err instanceof Error ? err.message : String(err);
161
- const detail = isFileExistsError(err)
162
- ? `${operation.path} already exists; use update_file to modify it`
163
- : message;
164
- return { status: "failed", output: `Failed to create ${operation.path}: ${detail}` };
165
- }
166
- }
167
- async updateFile(operation) {
168
- const target = path.resolve(process.cwd(), operation.path);
169
- logger.info(`[openai/apply_patch] update ${target}`);
170
- try {
171
- const original = await fs.readFile(target, "utf-8");
172
- const updated = applyDiff(original, operation.diff, "default");
173
- await fs.writeFile(target, updated, "utf-8");
174
- return { status: "completed", output: `Updated ${operation.path}` };
175
- }
176
- catch (err) {
177
- const message = err instanceof Error ? err.message : String(err);
178
- return { status: "failed", output: `Failed to update ${operation.path}: ${message}` };
179
- }
180
- }
181
- async deleteFile(operation) {
182
- const target = path.resolve(process.cwd(), operation.path);
183
- logger.info(`[openai/apply_patch] delete ${target}`);
184
- try {
185
- await fs.unlink(target);
186
- return { status: "completed", output: `Deleted ${operation.path}` };
187
- }
188
- catch (err) {
189
- const message = err instanceof Error ? err.message : String(err);
190
- return { status: "failed", output: `Failed to delete ${operation.path}: ${message}` };
191
- }
192
- }
193
- }
194
- //# sourceMappingURL=file-tools.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"file-tools.js","sourceRoot":"","sources":["../../../../src/agent/engines/openai/file-tools.ts"],"names":[],"mappings":"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"}
@@ -1,190 +0,0 @@
1
- import { type AgentInputItem, type RunStreamEvent } from "@openai/agents";
2
- import type { MessageParam } from "@anthropic-ai/sdk/resources";
3
- import type { SessionMode } from "../../mailbox.js";
4
- import type { AgentSessionConstructorArgs, AgentSessionLike, AgentStreamMessage, CurrentQueryLike, InjectMessageOptions, SendAndStreamOptions, UsageSnapshot } from "../session-types.js";
5
- export declare class OpenAIAgentSession implements AgentSessionLike {
6
- private readonly config;
7
- private readonly buildSystemPrompt;
8
- private readonly runtimeSurface;
9
- private readonly getDualSessionEnabled;
10
- private readonly getAndroidUseEnabled;
11
- private dynamicMcpServers;
12
- private readonly client;
13
- private readonly runner;
14
- private readonly underlyingSession;
15
- private readonly session;
16
- private abortController;
17
- private inputClosed;
18
- private stopRequested;
19
- private lastUsageSnapshot;
20
- private currentRun;
21
- private sessionId;
22
- private compactInFlight;
23
- private lastCompactRequestAtMs;
24
- private pendingInjections;
25
- private interruptArmed;
26
- private resumeRequested;
27
- private finishDetected;
28
- readonly mode: SessionMode;
29
- constructor({ config, buildSystemPrompt, runtimeSurface, sessionContext, }: AgentSessionConstructorArgs);
30
- warmUp(): Promise<void>;
31
- discardWarmQuery(): void;
32
- sendAndStream(content: MessageParam["content"], _options?: SendAndStreamOptions): AsyncIterable<AgentStreamMessage>;
33
- /**
34
- * Queue `content` as the next turn's input.
35
- *
36
- * If a run is active, this also *arms a soft interrupt*: the streaming
37
- * loop in `streamMessages` watches for a safe SDK boundary (a
38
- * `tool_output` event — at which point the tool call + tool result are
39
- * already persisted to the session) and aborts the in-flight run as soon
40
- * as one arrives. The resume loop then immediately starts a follow-up
41
- * `runner.run()` with the queued items as input, against the same
42
- * session, so the model perceives the new user message just like it
43
- * would in the Claude path.
44
- *
45
- * If no run is active, the items sit in the queue until the next
46
- * `sendAndStream` consumes them (or, if the session is already torn
47
- * down, are reported as orphans by `hasOrphanedInjections`).
48
- *
49
- * Returns `true` whenever the message has been accepted (queued). Returns
50
- * `false` only when the session is fully closed and no run is or will be
51
- * active — in that case the caller should re-queue the message for the
52
- * next wake cycle.
53
- */
54
- injectMessage(content: MessageParam["content"], _options?: InjectMessageOptions): boolean;
55
- /**
56
- * Mark the session as no longer accepting fresh `sendAndStream` invocations
57
- * and stop the resume loop from looping into another `runner.run()`.
58
- *
59
- * **We deliberately do NOT clear `pendingInjections` here.**
60
- *
61
- * `closeInput()` is called by the stream handler from many places, including
62
- * mid-stream when it observes the `finish` tool block. At that point the
63
- * resume loop hasn't yet had a chance to consume any messages that
64
- * `injectMessage()` queued during the run. Dropping the buffer here would
65
- * silently lose those user messages — exactly the bug we hit when an
66
- * interrupt landed during a memory-view turn that ended in `finish`.
67
- *
68
- * Instead, leftover messages stay in `pendingInjections` until either:
69
- * - the resume loop picks them up (when it's still allowed to run), or
70
- * - the wake-cycle runner sees `hasOrphanedInjections` and re-queues the
71
- * original `CommandMessage` batch for the next wake cycle.
72
- *
73
- * Hard teardowns that really do want the buffer wiped (e.g. `/stop`,
74
- * watchdog timeout, owner-initiated shutdown) call `requestStop()` which
75
- * clears it explicitly.
76
- */
77
- /**
78
- * Mark the session as no longer accepting fresh `sendAndStream` invocations
79
- * and stop the resume loop from looping into another `runner.run()`.
80
- *
81
- * **We deliberately do NOT clear `pendingInjections` here.**
82
- *
83
- * `closeInput()` is called by the stream handler from many places, including
84
- * mid-stream when it observes the `finish` tool block. At that point the
85
- * resume loop hasn't yet had a chance to consume any messages that
86
- * `injectMessage()` queued during the run. Dropping the buffer here would
87
- * silently lose those user messages — exactly the bug we hit when an
88
- * interrupt landed during a memory-view turn that ended in `finish`.
89
- *
90
- * Instead, leftover messages stay in `pendingInjections` until either:
91
- * - the resume loop picks them up (when it's still allowed to run), or
92
- * - the wake-cycle runner sees `hasOrphanedInjections` and re-queues the
93
- * original `CommandMessage` batch for the next wake cycle.
94
- *
95
- * Hard teardowns that really do want the buffer wiped (e.g. `/stop`,
96
- * watchdog timeout, owner-initiated shutdown) call `requestStop()` which
97
- * clears it explicitly.
98
- */
99
- closeInput(): void;
100
- /**
101
- * Signal that the agent has called the `finish` tool. The stream loop
102
- * will abort the run at the next safe `tool_output` boundary (where
103
- * `stream.rawResponses` is already populated) instead of waiting for
104
- * `stream.completed` — which can idle for 30s+ in the OpenAI SDK.
105
- */
106
- signalFinish(): void;
107
- requestStop(): void;
108
- clearStop(): void;
109
- isStopRequested(): boolean;
110
- /**
111
- * Update the persisted session ID.
112
- *
113
- * Only saves on first capture (null/empty → id). Once set, a different ID
114
- * from the SDK is ignored — it means the resume failed and the SDK created
115
- * a throwaway conversation.
116
- */
117
- captureSessionId(id: string | undefined): void;
118
- captureUsageSnapshot(snapshot: UsageSnapshot): void;
119
- capturePostCompactionSnapshot(_postCompactionTokens: number): void;
120
- /**
121
- * Force the OpenAI Responses API compaction path, archiving the
122
- * pre-compaction transcript to disk for audit/debugging.
123
- *
124
- * **The session id is invariant across compactions**, matching the
125
- * Claude engine's behavior (see `captureSessionId` in the Claude
126
- * session — it ignores the SDK's post-`/compact` `session_id` echo
127
- * because the id "should remain the same"). Keeping it stable means:
128
- *
129
- * - `session.json` never needs rewriting on compaction.
130
- * - The active transcript file path (`<sessionId>.json`) is also
131
- * stable, so no in-memory references (`this.underlyingSession`,
132
- * `this.session`) need to be rebuilt.
133
- * - Only the **contents** of the transcript change; the SDK's
134
- * `runCompaction` rewrites them in place via clearSession + addItems.
135
- *
136
- * Sequence:
137
- *
138
- * 1. Snapshot the active session file to
139
- * `<sessionId>.compacted-<iso>.json` — freezes pre-compaction state.
140
- * 2. `runCompaction({ force: true })` — the SDK clears the underlying
141
- * session and writes the compacted item set into the same file.
142
- *
143
- * If step 1 fails (e.g. the file doesn't exist yet because no items have
144
- * been persisted) we still attempt step 2 — losing the archive is
145
- * preferable to skipping the actual compaction.
146
- */
147
- requestCompaction(): Promise<void>;
148
- private archivePathForCurrent;
149
- private buildCompactionSession;
150
- /**
151
- * Token-usage-driven compaction trigger, called from the wake-cycle
152
- * runner on heartbeat.
153
- *
154
- * Mirrors Claude's behavior: re-entrancy guard + cooldown + threshold
155
- * check, then delegates to {@link requestCompaction} which archives
156
- * and runs the actual SDK compaction. We deliberately do NOT use the
157
- * SDK's auto-compaction path (`shouldTriggerCompaction`) because it
158
- * compacts purely by item count and skips the archive — see the
159
- * comment on {@link buildCompactionSession}.
160
- *
161
- * The default threshold (70%) is calibrated for the GPT-5.x 1M-token
162
- * context window. Lower if you want more aggressive trimming, raise
163
- * if cross-turn context fidelity matters more than latency.
164
- */
165
- maybeCompact(options?: {
166
- usedPctThreshold?: number;
167
- cooldownMs?: number;
168
- imageThreshold?: number;
169
- }): Promise<void>;
170
- getSessionId(): string | null;
171
- getTranscriptPath(): string | null;
172
- getTranscriptItems(): AgentInputItem[];
173
- getUsageSnapshot(): UsageSnapshot | null;
174
- getCurrentQuery(): CurrentQueryLike | null;
175
- setDynamicMcpServers(servers: Record<string, Record<string, unknown>>): void;
176
- getDynamicMcpServers(): Record<string, Record<string, unknown>>;
177
- get isInputClosed(): boolean;
178
- /**
179
- * True when injected messages have been queued but the session is no
180
- * longer running. The agent loop checks this after `streamMessages`
181
- * finishes to re-queue messages instead of dropping them. We deliberately
182
- * ignore `resumeRequested` here: if `pendingInjections` is non-empty and
183
- * there is no active abortController, the messages are by definition
184
- * orphaned regardless of any stale resume flag.
185
- */
186
- get hasOrphanedInjections(): boolean;
187
- private streamMessages;
188
- }
189
- export declare function normalizeOpenAIRunEventForTest(event: RunStreamEvent, sessionId: string): AgentStreamMessage | null;
190
- //# sourceMappingURL=session.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../../src/agent/engines/openai/session.ts"],"names":[],"mappings":"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"}