@xopcai/xopc 0.0.6 → 0.0.11

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 (412) hide show
  1. package/dist/extensions/weixin/src/api/api.js +1 -1
  2. package/dist/extensions/weixin/src/cdn/upload.js +1 -1
  3. package/dist/extensions/weixin/src/media/data-url.js +1 -1
  4. package/dist/extensions/weixin/src/messaging/process-message.js +1 -1
  5. package/dist/gateway/static/root/assets/{agents-B6s2BvpH.js → agents-BdC4Y-HX.js} +2 -2
  6. package/dist/gateway/static/root/assets/agents-BdC4Y-HX.js.map +1 -0
  7. package/dist/gateway/static/root/assets/{apps-page-BtsZ5ZPx.js → apps-page-C-oaSHkm.js} +2 -2
  8. package/dist/gateway/static/root/assets/{apps-page-BtsZ5ZPx.js.map → apps-page-C-oaSHkm.js.map} +1 -1
  9. package/dist/gateway/static/root/assets/attachment-load-BDDlItdE.js +1 -0
  10. package/dist/gateway/static/root/assets/{channels-settings-BUfWBEVU.js → channels-settings-BqEUppPO.js} +2 -2
  11. package/dist/gateway/static/root/assets/{channels-settings-BUfWBEVU.js.map → channels-settings-BqEUppPO.js.map} +1 -1
  12. package/dist/gateway/static/root/assets/{chat-agents-api-BR30M2YQ.js → chat-agents-api-BhqjQ7iL.js} +2 -2
  13. package/dist/gateway/static/root/assets/{chat-agents-api-BR30M2YQ.js.map → chat-agents-api-BhqjQ7iL.js.map} +1 -1
  14. package/dist/gateway/static/root/assets/{cron-page-CMTx0Mjz.js → cron-page-Cli49RKR.js} +2 -2
  15. package/dist/gateway/static/root/assets/{cron-page-CMTx0Mjz.js.map → cron-page-Cli49RKR.js.map} +1 -1
  16. package/dist/gateway/static/root/assets/{cron-utils-BJma9IcD.js → cron-utils-Dkj-Ldpf.js} +2 -2
  17. package/dist/gateway/static/root/assets/{cron-utils-BJma9IcD.js.map → cron-utils-Dkj-Ldpf.js.map} +1 -1
  18. package/dist/gateway/static/root/assets/electron-env-BDtJw9AY.js +2 -0
  19. package/dist/gateway/static/root/assets/electron-env-BDtJw9AY.js.map +1 -0
  20. package/dist/gateway/static/root/assets/{extension-debug-page-BCVoNSo6.js → extension-debug-page-BMcZlaxF.js} +2 -2
  21. package/dist/gateway/static/root/assets/{extension-debug-page-BCVoNSo6.js.map → extension-debug-page-BMcZlaxF.js.map} +1 -1
  22. package/dist/gateway/static/root/assets/{extension-iframe-host-PWB-Pw2d.js → extension-iframe-host-D5HEF0KR.js} +2 -2
  23. package/dist/gateway/static/root/assets/{extension-iframe-host-PWB-Pw2d.js.map → extension-iframe-host-D5HEF0KR.js.map} +1 -1
  24. package/dist/gateway/static/root/assets/{extension-page-D2tTklsD.js → extension-page-CXdCSSPl.js} +2 -2
  25. package/dist/gateway/static/root/assets/{extension-page-D2tTklsD.js.map → extension-page-CXdCSSPl.js.map} +1 -1
  26. package/dist/gateway/static/root/assets/{extension-provider-BpHodVRj.js → extension-provider-DZCZgQE2.js} +2 -2
  27. package/dist/gateway/static/root/assets/{extension-provider-BpHodVRj.js.map → extension-provider-DZCZgQE2.js.map} +1 -1
  28. package/dist/gateway/static/root/assets/{extension-settings-page-BEu6Xw1Z.js → extension-settings-page-CX6STpx3.js} +2 -2
  29. package/dist/gateway/static/root/assets/{extension-settings-page-BEu6Xw1Z.js.map → extension-settings-page-CX6STpx3.js.map} +1 -1
  30. package/dist/gateway/static/root/assets/{gateway-config-swr-C7ZFPhNj.js → gateway-config-swr-Cph02QZn.js} +2 -2
  31. package/dist/gateway/static/root/assets/{gateway-config-swr-C7ZFPhNj.js.map → gateway-config-swr-Cph02QZn.js.map} +1 -1
  32. package/dist/gateway/static/root/assets/index-Bty3m0mS.css +2 -0
  33. package/dist/gateway/static/root/assets/index-iTUyfzNr.js +16 -0
  34. package/dist/gateway/static/root/assets/index-iTUyfzNr.js.map +1 -0
  35. package/dist/gateway/static/root/assets/{logs-page-BpsxYdcL.js → logs-page-B9O5l3I8.js} +2 -2
  36. package/dist/gateway/static/root/assets/{logs-page-BpsxYdcL.js.map → logs-page-B9O5l3I8.js.map} +1 -1
  37. package/dist/gateway/static/root/assets/{model-selector-BiiDq8Pk.js → model-selector-BLiY_O25.js} +2 -2
  38. package/dist/gateway/static/root/assets/{model-selector-BiiDq8Pk.js.map → model-selector-BLiY_O25.js.map} +1 -1
  39. package/dist/gateway/static/root/assets/navigation-DB9S-C6S.js +2 -0
  40. package/dist/gateway/static/root/assets/navigation-DB9S-C6S.js.map +1 -0
  41. package/dist/gateway/static/root/assets/page-header-store-BFpnFTed.js +2 -0
  42. package/dist/gateway/static/root/assets/{page-header-store-HcRZK5CZ.js.map → page-header-store-BFpnFTed.js.map} +1 -1
  43. package/dist/gateway/static/root/assets/{session-api-DxNaAkmX.js → session-api-DEhQXWJg.js} +2 -2
  44. package/dist/gateway/static/root/assets/{session-api-DxNaAkmX.js.map → session-api-DEhQXWJg.js.map} +1 -1
  45. package/dist/gateway/static/root/assets/{session-working-directory-control-CDH-Wk4E.js → session-working-directory-control-DKOtWs3-.js} +3 -3
  46. package/dist/gateway/static/root/assets/{session-working-directory-control-CDH-Wk4E.js.map → session-working-directory-control-DKOtWs3-.js.map} +1 -1
  47. package/dist/gateway/static/root/assets/{sessions-page-5PK75r1n.js → sessions-page-BYlWP1ep.js} +2 -2
  48. package/dist/gateway/static/root/assets/{sessions-page-5PK75r1n.js.map → sessions-page-BYlWP1ep.js.map} +1 -1
  49. package/dist/gateway/static/root/assets/settings-page-oCnIavdg.js +2 -0
  50. package/dist/gateway/static/root/assets/settings-page-oCnIavdg.js.map +1 -0
  51. package/dist/gateway/static/root/assets/{skill-api-CxbNlOD_.js → skill-api-DWrn8Az0.js} +2 -2
  52. package/dist/gateway/static/root/assets/{skill-api-CxbNlOD_.js.map → skill-api-DWrn8Az0.js.map} +1 -1
  53. package/dist/gateway/static/root/assets/{skills-page-Dd8ZzYJb.js → skills-page-C59WQpM1.js} +2 -2
  54. package/dist/gateway/static/root/assets/{skills-page-Dd8ZzYJb.js.map → skills-page-C59WQpM1.js.map} +1 -1
  55. package/dist/gateway/static/root/assets/{theme-store-CPTH77BE.js → theme-store-CywXkKml.js} +2 -2
  56. package/dist/gateway/static/root/assets/{theme-store-CPTH77BE.js.map → theme-store-CywXkKml.js.map} +1 -1
  57. package/dist/gateway/static/root/assets/url-D7yWllI8.js +2 -0
  58. package/dist/gateway/static/root/assets/url-D7yWllI8.js.map +1 -0
  59. package/dist/gateway/static/root/assets/{useTranslation-BEUWOMuh.js → useTranslation-CACj0DBJ.js} +2 -2
  60. package/dist/gateway/static/root/assets/{useTranslation-BEUWOMuh.js.map → useTranslation-CACj0DBJ.js.map} +1 -1
  61. package/dist/gateway/static/root/index.html +16 -16
  62. package/dist/package.js +1 -1
  63. package/dist/src/agent/agent-manager.d.ts +1 -0
  64. package/dist/src/agent/agent-manager.js +17 -9
  65. package/dist/src/agent/agent-manager.js.map +1 -1
  66. package/dist/src/agent/background-review/run-background-review.js +2 -0
  67. package/dist/src/agent/background-review/run-background-review.js.map +1 -1
  68. package/dist/src/agent/child-agent-factory.js +2 -0
  69. package/dist/src/agent/child-agent-factory.js.map +1 -1
  70. package/dist/src/agent/context/expand-at-file-mentions.d.ts +4 -0
  71. package/dist/src/agent/context/expand-at-file-mentions.js +69 -0
  72. package/dist/src/agent/context/expand-at-file-mentions.js.map +1 -0
  73. package/dist/src/agent/context/workspace-seed.js +1 -1
  74. package/dist/src/agent/image/index.d.ts +0 -1
  75. package/dist/src/agent/image/index.js +1 -2
  76. package/dist/src/agent/image/understanding/pi-ai-provider.js.map +1 -1
  77. package/dist/src/agent/ipc/inbox.js +1 -1
  78. package/dist/src/agent/ipc/socket.js +1 -1
  79. package/dist/src/agent/memory/compaction.d.ts +1 -1
  80. package/dist/src/agent/memory/compaction.js +38 -11
  81. package/dist/src/agent/memory/compaction.js.map +1 -1
  82. package/dist/src/agent/memory/plugin-discovery.js +1 -1
  83. package/dist/src/agent/messaging/command-handler.d.ts +13 -0
  84. package/dist/src/agent/messaging/command-handler.js +14 -2
  85. package/dist/src/agent/messaging/command-handler.js.map +1 -1
  86. package/dist/src/agent/orchestration/agent-orchestrator.js +6 -1
  87. package/dist/src/agent/orchestration/agent-orchestrator.js.map +1 -1
  88. package/dist/src/agent/service.d.ts +16 -1
  89. package/dist/src/agent/service.js +175 -17
  90. package/dist/src/agent/service.js.map +1 -1
  91. package/dist/src/agent/skills/format-skills-prompt.js.map +1 -1
  92. package/dist/src/agent/skills/hub-hash.js +1 -1
  93. package/dist/src/agent/skills/hub-pull.js +1 -1
  94. package/dist/src/agent/skills/scanner.js +1 -1
  95. package/dist/src/agent/skills/skill-manage-ops.js +1 -1
  96. package/dist/src/agent/skills/skill-manage-ops.js.map +1 -1
  97. package/dist/src/agent/tools/browser/tools.js +2 -2
  98. package/dist/src/agent/tools/browser/tools.js.map +1 -1
  99. package/dist/src/agent/tools/image-generate-tool.js +1 -1
  100. package/dist/src/agent/tools/image-tool.js +2 -2
  101. package/dist/src/agent/tools/image-tool.js.map +1 -1
  102. package/dist/src/agent/tools/index.d.ts +1 -1
  103. package/dist/src/agent/tools/index.js +2 -2
  104. package/dist/src/agent/tools/read.d.ts +0 -2
  105. package/dist/src/agent/tools/read.js +1 -3
  106. package/dist/src/agent/tools/read.js.map +1 -1
  107. package/dist/src/agent/tools/skill-manage-tool.js +1 -1
  108. package/dist/src/agent/tools/write.js +1 -1
  109. package/dist/src/auth/credentials.js +2 -2
  110. package/dist/src/channels/attachments/inbound-persist.js +1 -1
  111. package/dist/src/channels/attachments/outbound-tts-persist.js +1 -1
  112. package/dist/src/channels/index.d.ts +1 -1
  113. package/dist/src/channels/index.js +2 -2
  114. package/dist/src/channels/pipeline.d.ts +8 -1
  115. package/dist/src/channels/pipeline.js +49 -4
  116. package/dist/src/channels/pipeline.js.map +1 -1
  117. package/dist/src/channels/plugin-types.d.ts +14 -0
  118. package/dist/src/chat-commands/builtins/config.d.ts +4 -0
  119. package/dist/src/chat-commands/builtins/config.js +197 -0
  120. package/dist/src/chat-commands/builtins/config.js.map +1 -0
  121. package/dist/src/chat-commands/builtins/context.d.ts +4 -0
  122. package/dist/src/chat-commands/builtins/context.js +44 -0
  123. package/dist/src/chat-commands/builtins/context.js.map +1 -0
  124. package/dist/src/chat-commands/builtins/session.js +111 -0
  125. package/dist/src/chat-commands/builtins/session.js.map +1 -1
  126. package/dist/src/chat-commands/builtins/thinking.js +49 -21
  127. package/dist/src/chat-commands/builtins/thinking.js.map +1 -1
  128. package/dist/src/chat-commands/config-paths.d.ts +10 -0
  129. package/dist/src/chat-commands/config-paths.js +45 -0
  130. package/dist/src/chat-commands/config-paths.js.map +1 -0
  131. package/dist/src/chat-commands/config-value.d.ts +12 -0
  132. package/dist/src/chat-commands/config-value.js +53 -0
  133. package/dist/src/chat-commands/config-value.js.map +1 -0
  134. package/dist/src/chat-commands/context.d.ts +24 -1
  135. package/dist/src/chat-commands/context.js +41 -0
  136. package/dist/src/chat-commands/context.js.map +1 -1
  137. package/dist/src/chat-commands/index.d.ts +2 -0
  138. package/dist/src/chat-commands/index.js +5 -1
  139. package/dist/src/chat-commands/index.js.map +1 -1
  140. package/dist/src/chat-commands/types.d.ts +33 -1
  141. package/dist/src/cli/commands/agent/interactive.js +1 -1
  142. package/dist/src/cli/commands/agent/interactive.js.map +1 -1
  143. package/dist/src/cli/commands/agent.js +21 -9
  144. package/dist/src/cli/commands/agent.js.map +1 -1
  145. package/dist/src/cli/commands/auth.js.map +1 -1
  146. package/dist/src/cli/commands/doctor/checks/channel-config.d.ts +2 -0
  147. package/dist/src/cli/commands/doctor/checks/channel-config.js +113 -0
  148. package/dist/src/cli/commands/doctor/checks/channel-config.js.map +1 -0
  149. package/dist/src/cli/commands/doctor/checks/channel-plugins.d.ts +2 -0
  150. package/dist/src/cli/commands/doctor/checks/channel-plugins.js +47 -0
  151. package/dist/src/cli/commands/doctor/checks/channel-plugins.js.map +1 -0
  152. package/dist/src/cli/commands/doctor/checks/config-health.d.ts +2 -0
  153. package/dist/src/cli/commands/doctor/checks/config-health.js +82 -0
  154. package/dist/src/cli/commands/doctor/checks/config-health.js.map +1 -0
  155. package/dist/src/cli/commands/doctor/checks/cron-health.d.ts +2 -0
  156. package/dist/src/cli/commands/doctor/checks/cron-health.js +116 -0
  157. package/dist/src/cli/commands/doctor/checks/cron-health.js.map +1 -0
  158. package/dist/src/cli/commands/doctor/checks/gateway-health.d.ts +2 -0
  159. package/dist/src/cli/commands/doctor/checks/gateway-health.js +64 -0
  160. package/dist/src/cli/commands/doctor/checks/gateway-health.js.map +1 -0
  161. package/dist/src/cli/commands/doctor/checks/gateway-service.d.ts +2 -0
  162. package/dist/src/cli/commands/doctor/checks/gateway-service.js +64 -0
  163. package/dist/src/cli/commands/doctor/checks/gateway-service.js.map +1 -0
  164. package/dist/src/cli/commands/doctor/checks/node-version.d.ts +2 -0
  165. package/dist/src/cli/commands/doctor/checks/node-version.js +33 -0
  166. package/dist/src/cli/commands/doctor/checks/node-version.js.map +1 -0
  167. package/dist/src/cli/commands/doctor/checks/provider-auth.d.ts +2 -0
  168. package/dist/src/cli/commands/doctor/checks/provider-auth.js +91 -0
  169. package/dist/src/cli/commands/doctor/checks/provider-auth.js.map +1 -0
  170. package/dist/src/cli/commands/doctor/checks/security-audit.d.ts +2 -0
  171. package/dist/src/cli/commands/doctor/checks/security-audit.js +85 -0
  172. package/dist/src/cli/commands/doctor/checks/security-audit.js.map +1 -0
  173. package/dist/src/cli/commands/doctor/checks/session-integrity.d.ts +2 -0
  174. package/dist/src/cli/commands/doctor/checks/session-integrity.js +118 -0
  175. package/dist/src/cli/commands/doctor/checks/session-integrity.js.map +1 -0
  176. package/dist/src/cli/commands/doctor/checks/state-integrity.d.ts +2 -0
  177. package/dist/src/cli/commands/doctor/checks/state-integrity.js +99 -0
  178. package/dist/src/cli/commands/doctor/checks/state-integrity.js.map +1 -0
  179. package/dist/src/cli/commands/doctor/checks/version-check.d.ts +2 -0
  180. package/dist/src/cli/commands/doctor/checks/version-check.js +71 -0
  181. package/dist/src/cli/commands/doctor/checks/version-check.js.map +1 -0
  182. package/dist/src/cli/commands/doctor/checks/workspace-status.d.ts +2 -0
  183. package/dist/src/cli/commands/doctor/checks/workspace-status.js +73 -0
  184. package/dist/src/cli/commands/doctor/checks/workspace-status.js.map +1 -0
  185. package/dist/src/cli/commands/doctor/flow.d.ts +9 -0
  186. package/dist/src/cli/commands/doctor/flow.js +51 -0
  187. package/dist/src/cli/commands/doctor/flow.js.map +1 -0
  188. package/dist/src/cli/commands/doctor/format.d.ts +6 -0
  189. package/dist/src/cli/commands/doctor/format.js +61 -0
  190. package/dist/src/cli/commands/doctor/format.js.map +1 -0
  191. package/dist/src/cli/commands/doctor/index.js +44 -0
  192. package/dist/src/cli/commands/doctor/index.js.map +1 -0
  193. package/dist/src/cli/commands/doctor/types.d.ts +20 -0
  194. package/dist/src/cli/commands/doctor/types.js +1 -0
  195. package/dist/src/cli/commands/extension.js +10 -0
  196. package/dist/src/cli/commands/extension.js.map +1 -1
  197. package/dist/src/cli/commands/init.js +1 -2
  198. package/dist/src/cli/commands/init.js.map +1 -1
  199. package/dist/src/cli/commands/session/utils.js.map +1 -1
  200. package/dist/src/cli/commands/update.d.ts +1 -0
  201. package/dist/src/cli/commands/update.js +171 -0
  202. package/dist/src/cli/commands/update.js.map +1 -0
  203. package/dist/src/cli/index.d.ts +2 -2
  204. package/dist/src/cli/index.js +4 -2
  205. package/dist/src/cli/index.js.map +1 -1
  206. package/dist/src/cli/utils/init-workspace.js +1 -1
  207. package/dist/src/config/index.d.ts +1 -0
  208. package/dist/src/config/index.js +4 -3
  209. package/dist/src/config/index.js.map +1 -1
  210. package/dist/src/config/loader.js +1 -1
  211. package/dist/src/config/models-json.d.ts +15 -15
  212. package/dist/src/config/paths.js.map +1 -1
  213. package/dist/src/config/profile.js +1 -1
  214. package/dist/src/config/runtime-overrides.d.ts +8 -0
  215. package/dist/src/config/runtime-overrides.js +40 -0
  216. package/dist/src/config/runtime-overrides.js.map +1 -0
  217. package/dist/src/config/schema.d.ts +34 -104
  218. package/dist/src/config/schema.js +18 -39
  219. package/dist/src/config/schema.js.map +1 -1
  220. package/dist/src/cron/persistence.js +1 -1
  221. package/dist/src/cron/run-log-store.js +1 -1
  222. package/dist/src/daemon/launchd.js +2 -2
  223. package/dist/src/daemon/launchd.js.map +1 -1
  224. package/dist/src/daemon/systemd.js +2 -2
  225. package/dist/src/daemon/systemd.js.map +1 -1
  226. package/dist/src/extensions/health.js +1 -1
  227. package/dist/src/extensions/loader.d.ts +1 -1
  228. package/dist/src/extensions/loader.js +5 -8
  229. package/dist/src/extensions/loader.js.map +1 -1
  230. package/dist/src/extensions/lockfile.js +1 -1
  231. package/dist/src/extensions/sdk/index.js +6 -1
  232. package/dist/src/extensions/sdk/index.js.map +1 -0
  233. package/dist/src/gateway/agents-admin.js +1 -1
  234. package/dist/src/gateway/agents-admin.js.map +1 -1
  235. package/dist/src/gateway/hono/lib/static-ui.js +1 -1
  236. package/dist/src/gateway/hono/oauth.js +1 -1
  237. package/dist/src/gateway/hono/routes/config.js +1 -1
  238. package/dist/src/gateway/hono/routes/doctor.d.ts +3 -0
  239. package/dist/src/gateway/hono/routes/doctor.js +35 -0
  240. package/dist/src/gateway/hono/routes/doctor.js.map +1 -0
  241. package/dist/src/gateway/hono/routes/index.js +4 -0
  242. package/dist/src/gateway/hono/routes/index.js.map +1 -1
  243. package/dist/src/gateway/hono/routes/models.js +64 -11
  244. package/dist/src/gateway/hono/routes/models.js.map +1 -1
  245. package/dist/src/gateway/hono/routes/public-gateway.js +10 -0
  246. package/dist/src/gateway/hono/routes/public-gateway.js.map +1 -1
  247. package/dist/src/gateway/hono/routes/update.d.ts +3 -0
  248. package/dist/src/gateway/hono/routes/update.js +141 -0
  249. package/dist/src/gateway/hono/routes/update.js.map +1 -0
  250. package/dist/src/gateway/hono/routes/workspace.js +82 -2
  251. package/dist/src/gateway/hono/routes/workspace.js.map +1 -1
  252. package/dist/src/gateway/lock.js +1 -1
  253. package/dist/src/gateway/ports.js +98 -3
  254. package/dist/src/gateway/ports.js.map +1 -1
  255. package/dist/src/gateway/service.d.ts +1 -4
  256. package/dist/src/gateway/service.js +13 -20
  257. package/dist/src/gateway/service.js.map +1 -1
  258. package/dist/src/gateway/workspace-fs-file-list.d.ts +5 -0
  259. package/dist/src/gateway/workspace-fs-file-list.js +56 -0
  260. package/dist/src/gateway/workspace-fs-file-list.js.map +1 -0
  261. package/dist/src/gateway/workspace-heartbeat-path.js +1 -1
  262. package/dist/src/gateway/workspace-ripgrep.d.ts +5 -0
  263. package/dist/src/gateway/workspace-ripgrep.js +88 -4
  264. package/dist/src/gateway/workspace-ripgrep.js.map +1 -1
  265. package/dist/src/infra/update-channels.d.ts +14 -0
  266. package/dist/src/infra/update-channels.js +30 -0
  267. package/dist/src/infra/update-channels.js.map +1 -0
  268. package/dist/src/infra/update-check.d.ts +53 -0
  269. package/dist/src/infra/update-check.js +155 -0
  270. package/dist/src/infra/update-check.js.map +1 -0
  271. package/dist/src/infra/update-runner.d.ts +18 -0
  272. package/dist/src/infra/update-runner.js +112 -0
  273. package/dist/src/infra/update-runner.js.map +1 -0
  274. package/dist/src/infra/update-startup.d.ts +20 -0
  275. package/dist/src/infra/update-startup.js +246 -0
  276. package/dist/src/infra/update-startup.js.map +1 -0
  277. package/dist/src/providers/extension-stream-bridge.d.ts +3 -0
  278. package/dist/src/providers/extension-stream-bridge.js +239 -0
  279. package/dist/src/providers/extension-stream-bridge.js.map +1 -0
  280. package/dist/src/providers/index.d.ts +7 -2
  281. package/dist/src/providers/index.js +77 -14
  282. package/dist/src/providers/index.js.map +1 -1
  283. package/dist/src/providers/model-registry.js +1 -1
  284. package/dist/src/providers/plugin-registry.js +92 -87
  285. package/dist/src/providers/plugin-registry.js.map +1 -1
  286. package/dist/src/routing/bindings.js +1 -1
  287. package/dist/src/routing/index.d.ts +1 -1
  288. package/dist/src/routing/index.js +2 -2
  289. package/dist/src/routing/index.js.map +1 -1
  290. package/dist/src/routing/resolve-route.js +1 -1
  291. package/dist/src/routing/session-key.d.ts +0 -5
  292. package/dist/src/routing/session-key.js +1 -27
  293. package/dist/src/routing/session-key.js.map +1 -1
  294. package/dist/src/session/chat-export.d.ts +5 -0
  295. package/dist/src/session/chat-export.js +35 -0
  296. package/dist/src/session/chat-export.js.map +1 -0
  297. package/dist/src/session/config-store.js +1 -1
  298. package/dist/src/session/manager.d.ts +1 -1
  299. package/dist/src/session/manager.js +2 -2
  300. package/dist/src/session/manager.js.map +1 -1
  301. package/dist/src/session/store.d.ts +1 -1
  302. package/dist/src/session/store.js +3 -7
  303. package/dist/src/session/store.js.map +1 -1
  304. package/dist/src/session/types.d.ts +0 -10
  305. package/dist/src/session/types.js.map +1 -1
  306. package/dist/src/utils/logger/audit.js +1 -1
  307. package/dist/src/utils/logger/log-store.js +1 -1
  308. package/dist/src/utils/logger/rotation.js +1 -1
  309. package/dist/src/voice/tts/audio.js +1 -1
  310. package/package.json +2 -2
  311. package/dist/gateway/static/root/assets/agents-B6s2BvpH.js.map +0 -1
  312. package/dist/gateway/static/root/assets/attachment-load-6pRlDPZ8.js +0 -1
  313. package/dist/gateway/static/root/assets/index-DBZ5eXW5.js +0 -16
  314. package/dist/gateway/static/root/assets/index-DBZ5eXW5.js.map +0 -1
  315. package/dist/gateway/static/root/assets/index-KsVMH-Jo.css +0 -2
  316. package/dist/gateway/static/root/assets/navigation-BpLKd2Ca.js +0 -2
  317. package/dist/gateway/static/root/assets/navigation-BpLKd2Ca.js.map +0 -1
  318. package/dist/gateway/static/root/assets/page-header-store-HcRZK5CZ.js +0 -2
  319. package/dist/gateway/static/root/assets/preference-select-fields-B4AJBqUY.js +0 -2
  320. package/dist/gateway/static/root/assets/preference-select-fields-B4AJBqUY.js.map +0 -1
  321. package/dist/gateway/static/root/assets/settings-page-BvSj0JqX.js +0 -2
  322. package/dist/gateway/static/root/assets/settings-page-BvSj0JqX.js.map +0 -1
  323. package/dist/gateway/static/root/assets/url-QmwQTJ-j.js +0 -2
  324. package/dist/gateway/static/root/assets/url-QmwQTJ-j.js.map +0 -1
  325. package/dist/src/acp/commands.d.ts +0 -11
  326. package/dist/src/acp/commands.js +0 -17
  327. package/dist/src/acp/commands.js.map +0 -1
  328. package/dist/src/acp/control-plane/identity-reconcile.d.ts +0 -36
  329. package/dist/src/acp/control-plane/identity-reconcile.js +0 -124
  330. package/dist/src/acp/control-plane/identity-reconcile.js.map +0 -1
  331. package/dist/src/acp/control-plane/index.d.ts +0 -10
  332. package/dist/src/acp/control-plane/index.js +0 -6
  333. package/dist/src/acp/control-plane/manager.d.ts +0 -86
  334. package/dist/src/acp/control-plane/manager.js +0 -502
  335. package/dist/src/acp/control-plane/manager.js.map +0 -1
  336. package/dist/src/acp/control-plane/manager.types.d.ts +0 -125
  337. package/dist/src/acp/control-plane/manager.types.js +0 -14
  338. package/dist/src/acp/control-plane/manager.types.js.map +0 -1
  339. package/dist/src/acp/control-plane/manager.utils.d.ts +0 -29
  340. package/dist/src/acp/control-plane/manager.utils.js +0 -46
  341. package/dist/src/acp/control-plane/manager.utils.js.map +0 -1
  342. package/dist/src/acp/control-plane/runtime-cache-manager.d.ts +0 -49
  343. package/dist/src/acp/control-plane/runtime-cache-manager.js +0 -155
  344. package/dist/src/acp/control-plane/runtime-cache-manager.js.map +0 -1
  345. package/dist/src/acp/control-plane/runtime-cache.d.ts +0 -45
  346. package/dist/src/acp/control-plane/runtime-cache.js +0 -58
  347. package/dist/src/acp/control-plane/runtime-cache.js.map +0 -1
  348. package/dist/src/acp/control-plane/runtime-options.d.ts +0 -30
  349. package/dist/src/acp/control-plane/runtime-options.js +0 -92
  350. package/dist/src/acp/control-plane/runtime-options.js.map +0 -1
  351. package/dist/src/acp/control-plane/session-actor-queue.d.ts +0 -22
  352. package/dist/src/acp/control-plane/session-actor-queue.js +0 -70
  353. package/dist/src/acp/control-plane/session-actor-queue.js.map +0 -1
  354. package/dist/src/acp/control-plane/session-lifecycle-manager.d.ts +0 -59
  355. package/dist/src/acp/control-plane/session-lifecycle-manager.js +0 -209
  356. package/dist/src/acp/control-plane/session-lifecycle-manager.js.map +0 -1
  357. package/dist/src/acp/control-plane/session-store.d.ts +0 -39
  358. package/dist/src/acp/control-plane/session-store.js +0 -149
  359. package/dist/src/acp/control-plane/session-store.js.map +0 -1
  360. package/dist/src/acp/control-plane/turn-manager.d.ts +0 -40
  361. package/dist/src/acp/control-plane/turn-manager.js +0 -134
  362. package/dist/src/acp/control-plane/turn-manager.js.map +0 -1
  363. package/dist/src/acp/event-mapper.d.ts +0 -48
  364. package/dist/src/acp/event-mapper.js +0 -94
  365. package/dist/src/acp/event-mapper.js.map +0 -1
  366. package/dist/src/acp/index.d.ts +0 -10
  367. package/dist/src/acp/index.js +0 -5
  368. package/dist/src/acp/meta.d.ts +0 -15
  369. package/dist/src/acp/meta.js +0 -36
  370. package/dist/src/acp/meta.js.map +0 -1
  371. package/dist/src/acp/routing-integration.d.ts +0 -37
  372. package/dist/src/acp/routing-integration.js +0 -58
  373. package/dist/src/acp/routing-integration.js.map +0 -1
  374. package/dist/src/acp/runtime/backends/index.d.ts +0 -4
  375. package/dist/src/acp/runtime/backends/index.js +0 -2
  376. package/dist/src/acp/runtime/backends/local.d.ts +0 -136
  377. package/dist/src/acp/runtime/backends/local.js +0 -603
  378. package/dist/src/acp/runtime/backends/local.js.map +0 -1
  379. package/dist/src/acp/runtime/error-text.d.ts +0 -16
  380. package/dist/src/acp/runtime/error-text.js +0 -40
  381. package/dist/src/acp/runtime/error-text.js.map +0 -1
  382. package/dist/src/acp/runtime/errors.d.ts +0 -31
  383. package/dist/src/acp/runtime/errors.js +0 -47
  384. package/dist/src/acp/runtime/errors.js.map +0 -1
  385. package/dist/src/acp/runtime/index.d.ts +0 -7
  386. package/dist/src/acp/runtime/index.js +0 -4
  387. package/dist/src/acp/runtime/registry.d.ts +0 -35
  388. package/dist/src/acp/runtime/registry.js +0 -85
  389. package/dist/src/acp/runtime/registry.js.map +0 -1
  390. package/dist/src/acp/runtime/session-identity.d.ts +0 -35
  391. package/dist/src/acp/runtime/session-identity.js +0 -134
  392. package/dist/src/acp/runtime/session-identity.js.map +0 -1
  393. package/dist/src/acp/runtime/types.d.ts +0 -214
  394. package/dist/src/acp/secret-file.d.ts +0 -7
  395. package/dist/src/acp/secret-file.js +0 -19
  396. package/dist/src/acp/secret-file.js.map +0 -1
  397. package/dist/src/acp/server.d.ts +0 -48
  398. package/dist/src/acp/server.js +0 -300
  399. package/dist/src/acp/server.js.map +0 -1
  400. package/dist/src/acp/session.d.ts +0 -29
  401. package/dist/src/acp/session.js +0 -30
  402. package/dist/src/acp/session.js.map +0 -1
  403. package/dist/src/acp/types.d.ts +0 -39
  404. package/dist/src/acp/types.js +0 -13
  405. package/dist/src/acp/types.js.map +0 -1
  406. package/dist/src/agent/image/describe-images.d.ts +0 -18
  407. package/dist/src/agent/image/describe-images.js +0 -19
  408. package/dist/src/agent/image/describe-images.js.map +0 -1
  409. package/dist/src/cli/commands/acp.d.ts +0 -4
  410. package/dist/src/cli/commands/acp.js +0 -200
  411. package/dist/src/cli/commands/acp.js.map +0 -1
  412. /package/dist/src/{acp/runtime/types.js → cli/commands/doctor/index.d.ts} +0 -0
@@ -1,214 +0,0 @@
1
- /**
2
- * ACP Runtime Types
3
- *
4
- * Core type definitions for Agent Control Protocol runtime abstraction.
5
- */
6
- /** ACP prompt mode */
7
- export type AcpRuntimePromptMode = "prompt" | "steer";
8
- /** ACP session mode */
9
- export type AcpRuntimeSessionMode = "persistent" | "oneshot";
10
- /** ACP session update tag */
11
- export type AcpSessionUpdateTag = "agent_message_chunk" | "agent_thought_chunk" | "tool_call" | "tool_call_update" | "usage_update" | "available_commands_update" | "current_mode_update" | "config_option_update" | "session_info_update" | "plan" | (string & {});
12
- /** ACP runtime control capability */
13
- export type AcpRuntimeControl = "session/set_mode" | "session/set_config_option" | "session/status" | "session/reset";
14
- /** ACP runtime handle (session reference) */
15
- export type AcpRuntimeHandle = {
16
- sessionKey: string;
17
- backend: string;
18
- runtimeSessionName: string;
19
- /** Effective working directory */
20
- cwd?: string;
21
- /** Local backend record id */
22
- acpxRecordId?: string;
23
- /** Backend-level ACP session id */
24
- backendSessionId?: string;
25
- /** Upstream harness session id */
26
- agentSessionId?: string;
27
- };
28
- /** ACP session ensure / init input */
29
- export type AcpRuntimeEnsureInput = {
30
- sessionKey: string;
31
- agent: string;
32
- mode: AcpRuntimeSessionMode;
33
- resumeSessionId?: string;
34
- cwd?: string;
35
- env?: Record<string, string>;
36
- };
37
- /** ACP turn attachment */
38
- export type AcpRuntimeTurnAttachment = {
39
- mediaType: string;
40
- data: string;
41
- };
42
- /** ACP turn input */
43
- export type AcpRuntimeTurnInput = {
44
- handle: AcpRuntimeHandle;
45
- text: string;
46
- attachments?: AcpRuntimeTurnAttachment[];
47
- mode: AcpRuntimePromptMode;
48
- requestId: string;
49
- signal?: AbortSignal;
50
- };
51
- /** ACP runtime capabilities */
52
- export type AcpRuntimeCapabilities = {
53
- controls: AcpRuntimeControl[];
54
- /**
55
- * Optional advertised config option keys.
56
- * Empty/omitted means the backend accepts keys without a fixed list.
57
- */
58
- configOptionKeys?: string[];
59
- /** Optional tool names supported by the backend */
60
- toolNames?: string[];
61
- };
62
- /** ACP runtime status snapshot */
63
- export type AcpRuntimeStatus = {
64
- summary?: string;
65
- /** Local backend record id */
66
- acpxRecordId?: string;
67
- /** Backend-level ACP session id */
68
- backendSessionId?: string;
69
- /** Upstream harness session id */
70
- agentSessionId?: string;
71
- details?: Record<string, unknown>;
72
- };
73
- /** ACP doctor (health) report */
74
- export type AcpRuntimeDoctorReport = {
75
- ok: boolean;
76
- code?: string;
77
- message: string;
78
- installCommand?: string;
79
- details?: string[];
80
- };
81
- /** ACP runtime event */
82
- export type AcpRuntimeEvent = {
83
- type: "text_delta";
84
- text: string;
85
- stream?: "output" | "thought";
86
- tag?: AcpSessionUpdateTag;
87
- } | {
88
- type: "status";
89
- text: string;
90
- tag?: AcpSessionUpdateTag;
91
- used?: number;
92
- size?: number;
93
- } | {
94
- type: "tool_call";
95
- text: string;
96
- tag?: AcpSessionUpdateTag;
97
- toolCallId?: string;
98
- status?: "start" | "progress" | "end" | "error";
99
- title?: string;
100
- input?: Record<string, unknown>;
101
- output?: string;
102
- error?: string;
103
- } | {
104
- type: "done";
105
- stopReason?: string;
106
- } | {
107
- type: "error";
108
- message: string;
109
- code?: string;
110
- retryable?: boolean;
111
- };
112
- /** ACP runtime implementation */
113
- export interface AcpRuntime {
114
- /** Ensure a session exists (create or resume) */
115
- ensureSession(input: AcpRuntimeEnsureInput): Promise<AcpRuntimeHandle>;
116
- /** Run one turn */
117
- runTurn(input: AcpRuntimeTurnInput): AsyncIterable<AcpRuntimeEvent>;
118
- /** Advertised capabilities */
119
- getCapabilities?(input: {
120
- handle?: AcpRuntimeHandle;
121
- }): Promise<AcpRuntimeCapabilities> | AcpRuntimeCapabilities;
122
- /** Current status */
123
- getStatus?(input: {
124
- handle: AcpRuntimeHandle;
125
- signal?: AbortSignal;
126
- }): Promise<AcpRuntimeStatus>;
127
- /** Set session mode */
128
- setMode?(input: {
129
- handle: AcpRuntimeHandle;
130
- mode: string;
131
- }): Promise<void>;
132
- /** Set a config option */
133
- setConfigOption?(input: {
134
- handle: AcpRuntimeHandle;
135
- key: string;
136
- value: string;
137
- }): Promise<void>;
138
- /** Reset session */
139
- resetSession?(input: {
140
- handle: AcpRuntimeHandle;
141
- }): Promise<void>;
142
- /** Health check */
143
- doctor?(): Promise<AcpRuntimeDoctorReport>;
144
- /** Cancel in-flight work */
145
- cancel(input: {
146
- handle: AcpRuntimeHandle;
147
- reason?: string;
148
- }): Promise<void>;
149
- /** Close session */
150
- close(input: {
151
- handle: AcpRuntimeHandle;
152
- reason: string;
153
- }): Promise<void>;
154
- }
155
- /** ACP session metadata */
156
- export type SessionAcpMeta = {
157
- backend: string;
158
- agent: string;
159
- runtimeSessionName: string;
160
- identity?: SessionIdentity;
161
- mode: AcpRuntimeSessionMode;
162
- runtimeOptions?: AcpSessionRuntimeOptions;
163
- cwd?: string;
164
- state: "idle" | "running" | "error";
165
- lastActivityAt: number;
166
- lastError?: string;
167
- };
168
- /** Session identity source */
169
- export type SessionIdentitySource = "ensure" | "status" | "event";
170
- /** Session identity */
171
- export type SessionIdentity = {
172
- state: "resolved" | "pending";
173
- source: SessionIdentitySource;
174
- /** Local backend record id (acpx record id) */
175
- acpxRecordId?: string;
176
- /** Backend-level ACP session id */
177
- acpxSessionId?: string;
178
- /** Upstream harness session id */
179
- agentSessionId?: string;
180
- lastUpdatedAt: number;
181
- };
182
- /** ACP session runtime options */
183
- export type AcpSessionRuntimeOptions = {
184
- cwd?: string;
185
- runtimeMode?: string;
186
- [key: string]: unknown;
187
- };
188
- /** ACP session status (control plane) */
189
- export type AcpSessionStatus = {
190
- sessionKey: string;
191
- backend: string;
192
- agent: string;
193
- identity?: SessionIdentity;
194
- state: "idle" | "running" | "error";
195
- mode: AcpRuntimeSessionMode;
196
- runtimeOptions?: AcpSessionRuntimeOptions;
197
- capabilities?: AcpRuntimeCapabilities;
198
- runtimeStatus?: AcpRuntimeStatus;
199
- lastActivityAt: number;
200
- lastError?: string;
201
- };
202
- /** ACP session resolution outcome */
203
- export type AcpSessionResolution = {
204
- kind: "ready";
205
- sessionKey: string;
206
- meta: SessionAcpMeta;
207
- } | {
208
- kind: "stale";
209
- sessionKey: string;
210
- error: Error;
211
- } | {
212
- kind: "none";
213
- sessionKey: string;
214
- };
@@ -1,7 +0,0 @@
1
- /**
2
- * ACP Secret File Reader
3
- */
4
- /**
5
- * Read secret from file
6
- */
7
- export declare function readSecretFromFile(path: string, name: string): string;
@@ -1,19 +0,0 @@
1
- import { readFileSync } from "node:fs";
2
- //#region src/acp/secret-file.ts
3
- /**
4
- * ACP Secret File Reader
5
- */
6
- /**
7
- * Read secret from file
8
- */
9
- function readSecretFromFile(path, name) {
10
- try {
11
- return readFileSync(path, { encoding: "utf-8" }).trim();
12
- } catch (error) {
13
- throw new Error(`Failed to read ${name} from file "${path}": ${error instanceof Error ? error.message : String(error)}`);
14
- }
15
- }
16
- //#endregion
17
- export { readSecretFromFile };
18
-
19
- //# sourceMappingURL=secret-file.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"secret-file.js","names":[],"sources":["../../../src/acp/secret-file.ts"],"sourcesContent":["/**\n * ACP Secret File Reader\n */\n\nimport { readFileSync } from \"node:fs\";\n\n/**\n * Read secret from file\n */\nexport function readSecretFromFile(path: string, name: string): string {\n try {\n const content = readFileSync(path, { encoding: \"utf-8\" });\n return content.trim();\n } catch (error) {\n throw new Error(`Failed to read ${name} from file \"${path}\": ${error instanceof Error ? error.message : String(error)}`);\n }\n}\n"],"mappings":";;;;;;;;AASA,SAAgB,mBAAmB,MAAc,MAAsB;AACrE,KAAI;AAEF,SADgB,aAAa,MAAM,EAAE,UAAU,SAAS,CAAC,CAC1C,MAAM;UACd,OAAO;AACd,QAAM,IAAI,MAAM,kBAAkB,KAAK,cAAc,KAAK,KAAK,iBAAiB,QAAQ,MAAM,UAAU,OAAO,MAAM,GAAG"}
@@ -1,48 +0,0 @@
1
- /**
2
- * ACP Gateway Server - Full Implementation
3
- *
4
- * CLI server that bridges ACP protocol to xopc's AgentService.
5
- * Implements the Agent interface from @agentclientprotocol/sdk.
6
- */
7
- import { AgentSideConnection } from "@agentclientprotocol/sdk";
8
- import type { Agent } from "@agentclientprotocol/sdk";
9
- import type { AcpServerOptions } from "./types.js";
10
- /**
11
- * ACP Server - implements Agent interface from @agentclientprotocol/sdk
12
- *
13
- * Note: Uses type casting to handle SDK type complexity
14
- */
15
- declare class AcpServer implements Agent {
16
- private readonly opts;
17
- private readonly state;
18
- private connection;
19
- constructor(opts?: AcpServerOptions);
20
- /**
21
- * Set the connection (called by AgentSideConnection)
22
- */
23
- setConnection(conn: AgentSideConnection): void;
24
- /**
25
- * Send session update notification to client
26
- */
27
- private sendSessionUpdate;
28
- initialize(params: any): Promise<any>;
29
- authenticate(_params: any): Promise<any>;
30
- newSession(params: any): Promise<any>;
31
- loadSession(params: any): Promise<any>;
32
- listSessions(_params: any): Promise<any>;
33
- prompt(params: any): Promise<any>;
34
- /**
35
- * Handle turn event and send to client
36
- */
37
- private handleTurnEvent;
38
- cancel(params: any): Promise<void>;
39
- /**
40
- * Extract text content from prompt blocks
41
- */
42
- private extractTextFromPrompt;
43
- }
44
- /**
45
- * Main entry point
46
- */
47
- export declare function main(): Promise<void>;
48
- export { AcpServer };
@@ -1,300 +0,0 @@
1
- import { AcpRuntimeError, normalizeAcpErrorCode } from "./runtime/errors.js";
2
- import { init_loader, loadConfig } from "../config/loader.js";
3
- import { getAcpSessionManager } from "./control-plane/manager.js";
4
- import { isMainModule } from "../infra/is-main.js";
5
- import { randomUUID } from "node:crypto";
6
- import { Readable, Writable } from "node:stream";
7
- import { fileURLToPath } from "node:url";
8
- import { AgentSideConnection, ndJsonStream } from "@agentclientprotocol/sdk";
9
- //#region src/acp/server.ts
10
- /**
11
- * ACP Gateway Server - Full Implementation
12
- *
13
- * CLI server that bridges ACP protocol to xopc's AgentService.
14
- * Implements the Agent interface from @agentclientprotocol/sdk.
15
- */
16
- init_loader();
17
- const MAX_PROMPT_BYTES = 2 * 1024 * 1024;
18
- /**
19
- * ACP Server - implements Agent interface from @agentclientprotocol/sdk
20
- *
21
- * Note: Uses type casting to handle SDK type complexity
22
- */
23
- var AcpServer = class {
24
- state = {
25
- activeSessionKey: null,
26
- sessions: /* @__PURE__ */ new Map()
27
- };
28
- connection = null;
29
- constructor(opts = {}) {
30
- this.opts = opts;
31
- }
32
- /**
33
- * Set the connection (called by AgentSideConnection)
34
- */
35
- setConnection(conn) {
36
- this.connection = conn;
37
- }
38
- /**
39
- * Send session update notification to client
40
- */
41
- async sendSessionUpdate(sessionId, update) {
42
- if (!this.connection) return;
43
- await this.connection.sessionUpdate({
44
- sessionId,
45
- update
46
- });
47
- }
48
- async initialize(params) {
49
- return {
50
- protocolVersion: params.protocolVersion || 1,
51
- agentCapabilities: {
52
- tools: true,
53
- multiModal: true,
54
- attachments: true,
55
- idle: true,
56
- commands: [{
57
- name: "session.reset",
58
- description: "Reset the session"
59
- }, {
60
- name: "session.status",
61
- description: "Get session status"
62
- }],
63
- envVars: true
64
- },
65
- agentInfo: {
66
- name: "xopc-acp",
67
- version: "1.0.0"
68
- }
69
- };
70
- }
71
- async authenticate(_params) {
72
- return { authenticated: true };
73
- }
74
- async newSession(params) {
75
- const sessionKey = `acp:${randomUUID()}`;
76
- const agent = "main";
77
- const mode = "persistent";
78
- const cfg = loadConfig();
79
- try {
80
- await getAcpSessionManager().initializeSession({
81
- cfg,
82
- sessionKey,
83
- agent,
84
- mode,
85
- cwd: params.cwd
86
- });
87
- this.state.sessions.set(sessionKey, {
88
- agent,
89
- mode
90
- });
91
- this.state.activeSessionKey = sessionKey;
92
- return {
93
- sessionId: sessionKey,
94
- configOptions: []
95
- };
96
- } catch (error) {
97
- throw new AcpRuntimeError(normalizeAcpErrorCode("ACP_SESSION_INIT_FAILED"), error instanceof Error ? error.message : "Failed to create session");
98
- }
99
- }
100
- async loadSession(params) {
101
- const sessionKey = params.sessionId;
102
- const cfg = loadConfig();
103
- try {
104
- if ((await getAcpSessionManager().resolveSession({
105
- cfg,
106
- sessionKey
107
- })).kind !== "ready") throw new AcpRuntimeError(normalizeAcpErrorCode("ACP_SESSION_NOT_FOUND"), `Session ${sessionKey} not found`);
108
- this.state.activeSessionKey = sessionKey;
109
- return {
110
- sessionId: sessionKey,
111
- configOptions: []
112
- };
113
- } catch (error) {
114
- throw new AcpRuntimeError(normalizeAcpErrorCode("ACP_SESSION_NOT_FOUND"), error instanceof Error ? error.message : "Failed to load session");
115
- }
116
- }
117
- async listSessions(_params) {
118
- return { sessions: Array.from(this.state.sessions.keys()).map((sessionId) => ({
119
- sessionId,
120
- cwd: "/tmp",
121
- title: sessionId,
122
- lastActiveAt: Date.now()
123
- })) };
124
- }
125
- async prompt(params) {
126
- const sessionKey = params.sessionId || this.state.activeSessionKey;
127
- if (!sessionKey) throw new AcpRuntimeError(normalizeAcpErrorCode("ACP_TURN_FAILED"), "No active session");
128
- const text = this.extractTextFromPrompt(params.prompt);
129
- const promptBytes = Buffer.byteLength(text, "utf-8");
130
- if (promptBytes > MAX_PROMPT_BYTES) throw new AcpRuntimeError(normalizeAcpErrorCode("ACP_PROMPT_TOO_LARGE"), `Prompt size ${promptBytes} exceeds maximum ${MAX_PROMPT_BYTES}`);
131
- const cfg = loadConfig();
132
- const manager = getAcpSessionManager();
133
- if ((await manager.resolveSession({
134
- cfg,
135
- sessionKey
136
- })).kind !== "ready") throw new AcpRuntimeError(normalizeAcpErrorCode("ACP_SESSION_NOT_FOUND"), `Session ${sessionKey} not found`);
137
- const requestId = params.messageId || randomUUID();
138
- let stopReason = "end_turn";
139
- try {
140
- await manager.runTurn({
141
- cfg,
142
- sessionKey,
143
- text,
144
- mode: "prompt",
145
- requestId,
146
- onEvent: async (event) => {
147
- await this.handleTurnEvent(sessionKey, event);
148
- }
149
- });
150
- } catch (error) {
151
- stopReason = "cancelled";
152
- await this.sendSessionUpdate(sessionKey, { agentMessageChunk: { content: [{
153
- type: "text",
154
- text: `Error: ${error instanceof Error ? error.message : String(error)}`
155
- }] } });
156
- }
157
- return {
158
- stopReason,
159
- usage: {
160
- inputTokens: 0,
161
- outputTokens: 0,
162
- totalTokens: 0
163
- }
164
- };
165
- }
166
- /**
167
- * Handle turn event and send to client
168
- */
169
- async handleTurnEvent(sessionKey, event) {
170
- switch (event.type) {
171
- case "text_delta":
172
- if (event.stream === "thought") await this.sendSessionUpdate(sessionKey, { agentThoughtChunk: { content: [{
173
- type: "text",
174
- text: event.text
175
- }] } });
176
- else await this.sendSessionUpdate(sessionKey, { agentMessageChunk: { content: [{
177
- type: "text",
178
- text: event.text
179
- }] } });
180
- break;
181
- case "status":
182
- await this.sendSessionUpdate(sessionKey, { agentMessageChunk: { content: [{
183
- type: "text",
184
- text: event.text
185
- }] } });
186
- break;
187
- case "tool_call": {
188
- const toolCallUpdate = {
189
- toolCallId: event.toolCallId || randomUUID(),
190
- kind: "interactive",
191
- name: event.title || "tool",
192
- input: event.input || {}
193
- };
194
- if ((event.status === "end" || event.status === "error") && event.output) toolCallUpdate.output = event.output;
195
- if (event.status === "error") toolCallUpdate.error = event.error || "Tool execution failed";
196
- await this.sendSessionUpdate(sessionKey, { toolCall: toolCallUpdate });
197
- break;
198
- }
199
- case "error":
200
- await this.sendSessionUpdate(sessionKey, { agentMessageChunk: { content: [{
201
- type: "text",
202
- text: `Error: ${event.message}`
203
- }] } });
204
- break;
205
- case "done": break;
206
- }
207
- }
208
- async cancel(params) {
209
- const sessionKey = params.sessionId || this.state.activeSessionKey;
210
- if (!sessionKey) return;
211
- const cfg = loadConfig();
212
- await getAcpSessionManager().cancelSession({
213
- cfg,
214
- sessionKey,
215
- reason: "cancelled by client"
216
- });
217
- }
218
- /**
219
- * Extract text content from prompt blocks
220
- */
221
- extractTextFromPrompt(prompt) {
222
- const texts = [];
223
- for (const block of prompt) if (block.text && typeof block.text === "string") texts.push(block.text);
224
- return texts.join("\n");
225
- }
226
- };
227
- /**
228
- * Parse command line arguments
229
- */
230
- function parseArgs(args) {
231
- const opts = {};
232
- for (let i = 0; i < args.length; i += 1) {
233
- const arg = args[i];
234
- if (arg === "--session") {
235
- opts.defaultSessionKey = args[i + 1];
236
- i += 1;
237
- continue;
238
- }
239
- if (arg === "--session-label") {
240
- opts.defaultSessionLabel = args[i + 1];
241
- i += 1;
242
- continue;
243
- }
244
- if (arg === "--require-existing") {
245
- opts.requireExistingSession = true;
246
- continue;
247
- }
248
- if (arg === "--reset-session") {
249
- opts.resetSession = true;
250
- continue;
251
- }
252
- if (arg === "--verbose" || arg === "-v") {
253
- opts.verbose = true;
254
- continue;
255
- }
256
- if (arg === "--help" || arg === "-h") {
257
- printHelp();
258
- process.exit(0);
259
- }
260
- }
261
- return opts;
262
- }
263
- /**
264
- * Print help message
265
- */
266
- function printHelp() {
267
- console.log(`Usage: xopc acp serve [options]
268
-
269
- ACP server for IDE integration.
270
-
271
- Options:
272
- --session <key> Default session key (e.g. "agent:main:main")
273
- --session-label <label> Default session label to resolve
274
- --require-existing Fail if the session key/label does not exist
275
- --reset-session Reset the session key before first use
276
- --verbose, -v Verbose logging to stderr
277
- --help, -h Show this help message
278
- `);
279
- }
280
- /**
281
- * Main entry point
282
- */
283
- async function main() {
284
- const opts = parseArgs(process.argv.slice(2));
285
- const stream = ndJsonStream(Writable.toWeb(process.stdout), Readable.toWeb(process.stdin));
286
- const server = new AcpServer(opts);
287
- new AgentSideConnection((conn) => {
288
- server.setConnection(conn);
289
- return server;
290
- }, stream);
291
- await new Promise(() => {});
292
- }
293
- if (isMainModule({ currentFile: fileURLToPath(import.meta.url) })) main().catch((err) => {
294
- console.error(String(err));
295
- process.exit(1);
296
- });
297
- //#endregion
298
- export { AcpServer, main };
299
-
300
- //# sourceMappingURL=server.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"server.js","names":[],"sources":["../../../src/acp/server.ts"],"sourcesContent":["/**\n * ACP Gateway Server - Full Implementation\n * \n * CLI server that bridges ACP protocol to xopc's AgentService.\n * Implements the Agent interface from @agentclientprotocol/sdk.\n */\n\nimport { randomUUID } from \"node:crypto\";\nimport { Readable, Writable } from \"node:stream\";\nimport { fileURLToPath } from \"node:url\";\nimport { AgentSideConnection, ndJsonStream } from \"@agentclientprotocol/sdk\";\nimport type { Agent } from \"@agentclientprotocol/sdk\";\nimport { loadConfig } from \"../config/loader.js\";\nimport { isMainModule } from \"../infra/is-main.js\";\nimport { AcpRuntimeError, normalizeAcpErrorCode } from \"./runtime/errors.js\";\nimport { getAcpSessionManager } from \"./control-plane/manager.js\";\n// Re-export for Gateway integration\n// import { registerAcpRuntimeBackend } from \"./runtime/registry.js\";\n// import { createLocalAcpRuntimeBackend } from \"./runtime/backends/local.js\";\nimport type { AcpServerOptions } from \"./types.js\";\nimport type { AcpRuntimeEvent } from \"./runtime/types.js\";\n\n// Maximum allowed prompt size (2MB)\nconst MAX_PROMPT_BYTES = 2 * 1024 * 1024;\n\n/**\n * ACP Server State\n */\ninterface AcpServerState {\n activeSessionKey: string | null;\n sessions: Map<string, {\n agent: string;\n mode: \"persistent\" | \"oneshot\";\n }>;\n}\n\n/**\n * ACP Server - implements Agent interface from @agentclientprotocol/sdk\n * \n * Note: Uses type casting to handle SDK type complexity\n */\nclass AcpServer implements Agent {\n private readonly state: AcpServerState = {\n activeSessionKey: null,\n sessions: new Map(),\n };\n private connection: AgentSideConnection | null = null;\n\n constructor(private readonly opts: AcpServerOptions = {}) {}\n\n /**\n * Set the connection (called by AgentSideConnection)\n */\n setConnection(conn: AgentSideConnection): void {\n this.connection = conn;\n }\n\n /**\n * Send session update notification to client\n */\n private async sendSessionUpdate(sessionId: string, update: any): Promise<void> {\n if (!this.connection) {\n return;\n }\n await this.connection.sessionUpdate({\n sessionId,\n update,\n });\n }\n\n // ============== Agent Interface Implementation ==============\n\n async initialize(params: any): Promise<any> {\n return {\n protocolVersion: params.protocolVersion || 1,\n agentCapabilities: {\n tools: true,\n multiModal: true,\n attachments: true,\n idle: true,\n commands: [\n { name: \"session.reset\", description: \"Reset the session\" },\n { name: \"session.status\", description: \"Get session status\" },\n ],\n envVars: true,\n },\n agentInfo: {\n name: \"xopc-acp\",\n version: \"1.0.0\",\n },\n };\n }\n\n async authenticate(_params: any): Promise<any> {\n // xopc uses Gateway-level auth, ACP layer is always authenticated\n return { authenticated: true };\n }\n\n async newSession(params: any): Promise<any> {\n const sessionKey = `acp:${randomUUID()}`;\n const agent = \"main\";\n const mode = \"persistent\";\n const cfg = loadConfig();\n \n try {\n const manager = getAcpSessionManager();\n await manager.initializeSession({\n cfg,\n sessionKey,\n agent,\n mode,\n cwd: params.cwd,\n });\n\n this.state.sessions.set(sessionKey, { agent, mode });\n this.state.activeSessionKey = sessionKey;\n\n return { \n sessionId: sessionKey,\n configOptions: [],\n };\n } catch (error) {\n throw new AcpRuntimeError(\n normalizeAcpErrorCode(\"ACP_SESSION_INIT_FAILED\"),\n error instanceof Error ? error.message : \"Failed to create session\"\n );\n }\n }\n\n async loadSession(params: any): Promise<any> {\n const sessionKey = params.sessionId;\n const cfg = loadConfig();\n \n try {\n const manager = getAcpSessionManager();\n const resolution = await manager.resolveSession({ cfg, sessionKey });\n\n if (resolution.kind !== \"ready\") {\n throw new AcpRuntimeError(normalizeAcpErrorCode(\"ACP_SESSION_NOT_FOUND\"), `Session ${sessionKey} not found`);\n }\n\n this.state.activeSessionKey = sessionKey;\n return { \n sessionId: sessionKey,\n configOptions: [],\n };\n } catch (error) {\n throw new AcpRuntimeError(\n normalizeAcpErrorCode(\"ACP_SESSION_NOT_FOUND\"),\n error instanceof Error ? error.message : \"Failed to load session\"\n );\n }\n }\n\n async listSessions(_params: any): Promise<any> {\n return {\n sessions: Array.from(this.state.sessions.keys()).map((sessionId) => ({ \n sessionId,\n cwd: \"/tmp\",\n title: sessionId,\n lastActiveAt: Date.now(),\n })),\n };\n }\n\n async prompt(params: any): Promise<any> {\n const sessionKey = params.sessionId || this.state.activeSessionKey;\n if (!sessionKey) {\n throw new AcpRuntimeError(normalizeAcpErrorCode(\"ACP_TURN_FAILED\"), \"No active session\");\n }\n\n // Extract text from prompt blocks\n const text = this.extractTextFromPrompt(params.prompt);\n \n // Validate prompt size\n const promptBytes = Buffer.byteLength(text, \"utf-8\");\n if (promptBytes > MAX_PROMPT_BYTES) {\n throw new AcpRuntimeError(normalizeAcpErrorCode(\"ACP_PROMPT_TOO_LARGE\"), `Prompt size ${promptBytes} exceeds maximum ${MAX_PROMPT_BYTES}`);\n }\n\n const cfg = loadConfig();\n const manager = getAcpSessionManager();\n\n // Get session status first\n const resolution = await manager.resolveSession({ cfg, sessionKey });\n if (resolution.kind !== \"ready\") {\n throw new AcpRuntimeError(normalizeAcpErrorCode(\"ACP_SESSION_NOT_FOUND\"), `Session ${sessionKey} not found`);\n }\n\n // Run the turn with event callback for streaming updates\n const requestId = params.messageId || randomUUID();\n let stopReason = \"end_turn\";\n\n try {\n // Execute turn with onEvent callback for streaming\n await manager.runTurn({\n cfg,\n sessionKey,\n text,\n mode: \"prompt\",\n requestId,\n onEvent: async (event: AcpRuntimeEvent) => {\n await this.handleTurnEvent(sessionKey, event);\n },\n });\n } catch (error) {\n stopReason = \"cancelled\";\n await this.sendSessionUpdate(sessionKey, {\n agentMessageChunk: { content: [{ type: \"text\", text: `Error: ${error instanceof Error ? error.message : String(error)}` }] },\n });\n }\n\n return {\n stopReason,\n usage: {\n inputTokens: 0,\n outputTokens: 0,\n totalTokens: 0,\n },\n };\n }\n\n /**\n * Handle turn event and send to client\n */\n private async handleTurnEvent(sessionKey: string, event: AcpRuntimeEvent): Promise<void> {\n switch (event.type) {\n case \"text_delta\": {\n const isThought = event.stream === \"thought\";\n if (isThought) {\n await this.sendSessionUpdate(sessionKey, {\n agentThoughtChunk: { content: [{ type: \"text\", text: event.text }] },\n });\n } else {\n await this.sendSessionUpdate(sessionKey, {\n agentMessageChunk: { content: [{ type: \"text\", text: event.text }] },\n });\n }\n break;\n }\n case \"status\": {\n await this.sendSessionUpdate(sessionKey, {\n agentMessageChunk: { content: [{ type: \"text\", text: event.text }] },\n });\n break;\n }\n case \"tool_call\": {\n const toolCallId = event.toolCallId || randomUUID();\n \n // Build tool call update based on status\n const toolCallUpdate: any = {\n toolCallId,\n kind: \"interactive\",\n name: event.title || \"tool\",\n input: event.input || {},\n };\n\n // Add output if available (for end/error status)\n if ((event.status === \"end\" || event.status === \"error\") && event.output) {\n toolCallUpdate.output = event.output;\n }\n\n // Add error info if status is error\n if (event.status === \"error\") {\n toolCallUpdate.error = event.error || \"Tool execution failed\";\n }\n\n await this.sendSessionUpdate(sessionKey, {\n toolCall: toolCallUpdate,\n });\n break;\n }\n case \"error\": {\n await this.sendSessionUpdate(sessionKey, {\n agentMessageChunk: { content: [{ type: \"text\", text: `Error: ${event.message}` }] },\n });\n break;\n }\n case \"done\": {\n break;\n }\n }\n }\n\n async cancel(params: any): Promise<void> {\n const sessionKey = params.sessionId || this.state.activeSessionKey;\n if (!sessionKey) {\n return;\n }\n\n const cfg = loadConfig();\n const manager = getAcpSessionManager();\n \n await manager.cancelSession({\n cfg,\n sessionKey,\n reason: \"cancelled by client\",\n });\n }\n\n // ============== Helpers ==============\n\n /**\n * Extract text content from prompt blocks\n */\n private extractTextFromPrompt(prompt: any[]): string {\n const texts: string[] = [];\n \n for (const block of prompt) {\n if (block.text && typeof block.text === \"string\") {\n texts.push(block.text);\n }\n }\n \n return texts.join(\"\\n\");\n }\n}\n\n/**\n * Parse command line arguments\n */\nfunction parseArgs(args: string[]): AcpServerOptions {\n const opts: AcpServerOptions = {};\n \n for (let i = 0; i < args.length; i += 1) {\n const arg = args[i];\n \n if (arg === \"--session\") {\n opts.defaultSessionKey = args[i + 1];\n i += 1;\n continue;\n }\n \n if (arg === \"--session-label\") {\n opts.defaultSessionLabel = args[i + 1];\n i += 1;\n continue;\n }\n \n if (arg === \"--require-existing\") {\n opts.requireExistingSession = true;\n continue;\n }\n \n if (arg === \"--reset-session\") {\n opts.resetSession = true;\n continue;\n }\n \n if (arg === \"--verbose\" || arg === \"-v\") {\n opts.verbose = true;\n continue;\n }\n \n if (arg === \"--help\" || arg === \"-h\") {\n printHelp();\n process.exit(0);\n }\n }\n \n return opts;\n}\n\n/**\n * Print help message\n */\nfunction printHelp(): void {\n console.log(`Usage: xopc acp serve [options]\n\nACP server for IDE integration.\n\nOptions:\n --session <key> Default session key (e.g. \"agent:main:main\")\n --session-label <label> Default session label to resolve\n --require-existing Fail if the session key/label does not exist\n --reset-session Reset the session key before first use\n --verbose, -v Verbose logging to stderr\n --help, -h Show this help message\n`);\n}\n\n/**\n * Main entry point\n */\nexport async function main(): Promise<void> {\n const argv = process.argv.slice(2);\n const opts = parseArgs(argv);\n\n // Set up stdio streams for ACP protocol\n const input = Writable.toWeb(process.stdout);\n const output = Readable.toWeb(process.stdin) as unknown as ReadableStream<Uint8Array>;\n const stream = ndJsonStream(input, output);\n\n // Create ACP server and pass it to AgentSideConnection\n const server = new AcpServer(opts);\n \n // Set up connection when created\n new AgentSideConnection((conn: AgentSideConnection) => {\n server.setConnection(conn);\n return server as any;\n }, stream);\n\n // Keep process alive\n await new Promise(() => {});\n}\n\n// Run main\nif (isMainModule({ currentFile: fileURLToPath(import.meta.url) })) {\n main().catch((err) => {\n console.error(String(err));\n process.exit(1);\n });\n}\n\nexport { AcpServer };\n"],"mappings":"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"}
@@ -1,29 +0,0 @@
1
- /**
2
- * ACP Session Store
3
- *
4
- * Simple in-memory session store for ACP sessions.
5
- */
6
- import type { SessionAcpMeta } from "./runtime/types.js";
7
- export interface SessionEntry {
8
- sessionKey: string;
9
- acp?: SessionAcpMeta;
10
- }
11
- /**
12
- * Default in-memory ACP session store
13
- */
14
- export declare class DefaultAcpSessionStore {
15
- private sessions;
16
- get(sessionKey: string): Promise<SessionEntry | null>;
17
- set(sessionKey: string, entry: SessionEntry): Promise<void>;
18
- delete(sessionKey: string): Promise<void>;
19
- list(): Promise<SessionEntry[]>;
20
- clear(): Promise<void>;
21
- }
22
- /**
23
- * Default session store instance
24
- */
25
- export declare const defaultAcpSessionStore: DefaultAcpSessionStore;
26
- /**
27
- * AcpSessionStore interface
28
- */
29
- export type AcpSessionStore = DefaultAcpSessionStore;
@@ -1,30 +0,0 @@
1
- //#region src/acp/session.ts
2
- /**
3
- * Default in-memory ACP session store
4
- */
5
- var DefaultAcpSessionStore = class {
6
- sessions = /* @__PURE__ */ new Map();
7
- async get(sessionKey) {
8
- return this.sessions.get(sessionKey) || null;
9
- }
10
- async set(sessionKey, entry) {
11
- this.sessions.set(sessionKey, entry);
12
- }
13
- async delete(sessionKey) {
14
- this.sessions.delete(sessionKey);
15
- }
16
- async list() {
17
- return Array.from(this.sessions.values());
18
- }
19
- async clear() {
20
- this.sessions.clear();
21
- }
22
- };
23
- /**
24
- * Default session store instance
25
- */
26
- const defaultAcpSessionStore = new DefaultAcpSessionStore();
27
- //#endregion
28
- export { DefaultAcpSessionStore, defaultAcpSessionStore };
29
-
30
- //# sourceMappingURL=session.js.map