@axhub/acp 0.1.0

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 (488) hide show
  1. package/.next/BUILD_ID +1 -0
  2. package/.next/app-path-routes-manifest.json +21 -0
  3. package/.next/build-manifest.json +22 -0
  4. package/.next/export-marker.json +6 -0
  5. package/.next/fallback-build-manifest.json +13 -0
  6. package/.next/images-manifest.json +68 -0
  7. package/.next/next-minimal-server.js.nft.json +1 -0
  8. package/.next/next-server.js.nft.json +1 -0
  9. package/.next/package.json +1 -0
  10. package/.next/prerender-manifest.json +90 -0
  11. package/.next/required-server-files.js +336 -0
  12. package/.next/required-server-files.json +336 -0
  13. package/.next/routes-manifest.json +171 -0
  14. package/.next/server/app/_global-error/page/app-paths-manifest.json +3 -0
  15. package/.next/server/app/_global-error/page/build-manifest.json +18 -0
  16. package/.next/server/app/_global-error/page/next-font-manifest.json +6 -0
  17. package/.next/server/app/_global-error/page/react-loadable-manifest.json +1 -0
  18. package/.next/server/app/_global-error/page/server-reference-manifest.json +4 -0
  19. package/.next/server/app/_global-error/page.js +10 -0
  20. package/.next/server/app/_global-error/page.js.nft.json +1 -0
  21. package/.next/server/app/_global-error/page_client-reference-manifest.js +3 -0
  22. package/.next/server/app/_global-error.html +1 -0
  23. package/.next/server/app/_global-error.meta +15 -0
  24. package/.next/server/app/_global-error.rsc +15 -0
  25. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +5 -0
  26. package/.next/server/app/_global-error.segments/_full.segment.rsc +15 -0
  27. package/.next/server/app/_global-error.segments/_head.segment.rsc +6 -0
  28. package/.next/server/app/_global-error.segments/_index.segment.rsc +5 -0
  29. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -0
  30. package/.next/server/app/_not-found/page/app-paths-manifest.json +3 -0
  31. package/.next/server/app/_not-found/page/build-manifest.json +18 -0
  32. package/.next/server/app/_not-found/page/next-font-manifest.json +6 -0
  33. package/.next/server/app/_not-found/page/react-loadable-manifest.json +1 -0
  34. package/.next/server/app/_not-found/page/server-reference-manifest.json +4 -0
  35. package/.next/server/app/_not-found/page.js +13 -0
  36. package/.next/server/app/_not-found/page.js.nft.json +1 -0
  37. package/.next/server/app/_not-found/page_client-reference-manifest.js +3 -0
  38. package/.next/server/app/_not-found.html +1 -0
  39. package/.next/server/app/_not-found.meta +16 -0
  40. package/.next/server/app/_not-found.rsc +17 -0
  41. package/.next/server/app/_not-found.segments/_full.segment.rsc +17 -0
  42. package/.next/server/app/_not-found.segments/_head.segment.rsc +6 -0
  43. package/.next/server/app/_not-found.segments/_index.segment.rsc +6 -0
  44. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +5 -0
  45. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +5 -0
  46. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -0
  47. package/.next/server/app/api/acp/capabilities/route/app-paths-manifest.json +3 -0
  48. package/.next/server/app/api/acp/capabilities/route/build-manifest.json +9 -0
  49. package/.next/server/app/api/acp/capabilities/route/server-reference-manifest.json +4 -0
  50. package/.next/server/app/api/acp/capabilities/route.js +9 -0
  51. package/.next/server/app/api/acp/capabilities/route.js.nft.json +1 -0
  52. package/.next/server/app/api/acp/capabilities/route_client-reference-manifest.js +3 -0
  53. package/.next/server/app/api/acp/commands/route/app-paths-manifest.json +3 -0
  54. package/.next/server/app/api/acp/commands/route/build-manifest.json +9 -0
  55. package/.next/server/app/api/acp/commands/route/server-reference-manifest.json +4 -0
  56. package/.next/server/app/api/acp/commands/route.js +6 -0
  57. package/.next/server/app/api/acp/commands/route.js.nft.json +1 -0
  58. package/.next/server/app/api/acp/commands/route_client-reference-manifest.js +3 -0
  59. package/.next/server/app/api/acp/runtime/route/app-paths-manifest.json +3 -0
  60. package/.next/server/app/api/acp/runtime/route/build-manifest.json +9 -0
  61. package/.next/server/app/api/acp/runtime/route/server-reference-manifest.json +4 -0
  62. package/.next/server/app/api/acp/runtime/route.js +6 -0
  63. package/.next/server/app/api/acp/runtime/route.js.nft.json +1 -0
  64. package/.next/server/app/api/acp/runtime/route_client-reference-manifest.js +3 -0
  65. package/.next/server/app/api/chat/route/app-paths-manifest.json +3 -0
  66. package/.next/server/app/api/chat/route/build-manifest.json +9 -0
  67. package/.next/server/app/api/chat/route/server-reference-manifest.json +4 -0
  68. package/.next/server/app/api/chat/route.js +9 -0
  69. package/.next/server/app/api/chat/route.js.nft.json +1 -0
  70. package/.next/server/app/api/chat/route_client-reference-manifest.js +3 -0
  71. package/.next/server/app/api/conversations/[threadId]/messages/route/app-paths-manifest.json +3 -0
  72. package/.next/server/app/api/conversations/[threadId]/messages/route/build-manifest.json +9 -0
  73. package/.next/server/app/api/conversations/[threadId]/messages/route/server-reference-manifest.json +4 -0
  74. package/.next/server/app/api/conversations/[threadId]/messages/route.js +8 -0
  75. package/.next/server/app/api/conversations/[threadId]/messages/route.js.nft.json +1 -0
  76. package/.next/server/app/api/conversations/[threadId]/messages/route_client-reference-manifest.js +3 -0
  77. package/.next/server/app/api/conversations/[threadId]/route/app-paths-manifest.json +3 -0
  78. package/.next/server/app/api/conversations/[threadId]/route/build-manifest.json +9 -0
  79. package/.next/server/app/api/conversations/[threadId]/route/server-reference-manifest.json +4 -0
  80. package/.next/server/app/api/conversations/[threadId]/route.js +8 -0
  81. package/.next/server/app/api/conversations/[threadId]/route.js.nft.json +1 -0
  82. package/.next/server/app/api/conversations/[threadId]/route_client-reference-manifest.js +3 -0
  83. package/.next/server/app/api/conversations/route/app-paths-manifest.json +3 -0
  84. package/.next/server/app/api/conversations/route/build-manifest.json +9 -0
  85. package/.next/server/app/api/conversations/route/server-reference-manifest.json +4 -0
  86. package/.next/server/app/api/conversations/route.js +8 -0
  87. package/.next/server/app/api/conversations/route.js.nft.json +1 -0
  88. package/.next/server/app/api/conversations/route_client-reference-manifest.js +3 -0
  89. package/.next/server/app/api/local-files/image/route/app-paths-manifest.json +3 -0
  90. package/.next/server/app/api/local-files/image/route/build-manifest.json +9 -0
  91. package/.next/server/app/api/local-files/image/route/server-reference-manifest.json +4 -0
  92. package/.next/server/app/api/local-files/image/route.js +6 -0
  93. package/.next/server/app/api/local-files/image/route.js.nft.json +1 -0
  94. package/.next/server/app/api/local-files/image/route_client-reference-manifest.js +3 -0
  95. package/.next/server/app/api/local-files/open/route/app-paths-manifest.json +3 -0
  96. package/.next/server/app/api/local-files/open/route/build-manifest.json +9 -0
  97. package/.next/server/app/api/local-files/open/route/server-reference-manifest.json +4 -0
  98. package/.next/server/app/api/local-files/open/route.js +6 -0
  99. package/.next/server/app/api/local-files/open/route.js.nft.json +1 -0
  100. package/.next/server/app/api/local-files/open/route_client-reference-manifest.js +3 -0
  101. package/.next/server/app/api/output-artifacts/workspace/route/app-paths-manifest.json +3 -0
  102. package/.next/server/app/api/output-artifacts/workspace/route/build-manifest.json +9 -0
  103. package/.next/server/app/api/output-artifacts/workspace/route/server-reference-manifest.json +4 -0
  104. package/.next/server/app/api/output-artifacts/workspace/route.js +6 -0
  105. package/.next/server/app/api/output-artifacts/workspace/route.js.nft.json +1 -0
  106. package/.next/server/app/api/output-artifacts/workspace/route_client-reference-manifest.js +3 -0
  107. package/.next/server/app/api/tools/image-generation/files/[id]/route/app-paths-manifest.json +3 -0
  108. package/.next/server/app/api/tools/image-generation/files/[id]/route/build-manifest.json +9 -0
  109. package/.next/server/app/api/tools/image-generation/files/[id]/route/server-reference-manifest.json +4 -0
  110. package/.next/server/app/api/tools/image-generation/files/[id]/route.js +7 -0
  111. package/.next/server/app/api/tools/image-generation/files/[id]/route.js.nft.json +1 -0
  112. package/.next/server/app/api/tools/image-generation/files/[id]/route_client-reference-manifest.js +3 -0
  113. package/.next/server/app/api/tools/image-generation/records/route/app-paths-manifest.json +3 -0
  114. package/.next/server/app/api/tools/image-generation/records/route/build-manifest.json +9 -0
  115. package/.next/server/app/api/tools/image-generation/records/route/server-reference-manifest.json +4 -0
  116. package/.next/server/app/api/tools/image-generation/records/route.js +7 -0
  117. package/.next/server/app/api/tools/image-generation/records/route.js.nft.json +1 -0
  118. package/.next/server/app/api/tools/image-generation/records/route_client-reference-manifest.js +3 -0
  119. package/.next/server/app/api/tools/user-choice/route/app-paths-manifest.json +3 -0
  120. package/.next/server/app/api/tools/user-choice/route/build-manifest.json +9 -0
  121. package/.next/server/app/api/tools/user-choice/route/server-reference-manifest.json +4 -0
  122. package/.next/server/app/api/tools/user-choice/route.js +6 -0
  123. package/.next/server/app/api/tools/user-choice/route.js.nft.json +1 -0
  124. package/.next/server/app/api/tools/user-choice/route_client-reference-manifest.js +3 -0
  125. package/.next/server/app/favicon.ico/route/app-paths-manifest.json +3 -0
  126. package/.next/server/app/favicon.ico/route/build-manifest.json +9 -0
  127. package/.next/server/app/favicon.ico/route.js +7 -0
  128. package/.next/server/app/favicon.ico/route.js.nft.json +1 -0
  129. package/.next/server/app/favicon.ico.body +0 -0
  130. package/.next/server/app/favicon.ico.meta +1 -0
  131. package/.next/server/app/page/app-paths-manifest.json +3 -0
  132. package/.next/server/app/page/build-manifest.json +18 -0
  133. package/.next/server/app/page/next-font-manifest.json +6 -0
  134. package/.next/server/app/page/react-loadable-manifest.json +1 -0
  135. package/.next/server/app/page/server-reference-manifest.json +4 -0
  136. package/.next/server/app/page.js +14 -0
  137. package/.next/server/app/page.js.nft.json +1 -0
  138. package/.next/server/app/page_client-reference-manifest.js +3 -0
  139. package/.next/server/app/session/[provider]/[sessionId]/page/app-paths-manifest.json +3 -0
  140. package/.next/server/app/session/[provider]/[sessionId]/page/build-manifest.json +18 -0
  141. package/.next/server/app/session/[provider]/[sessionId]/page/next-font-manifest.json +6 -0
  142. package/.next/server/app/session/[provider]/[sessionId]/page/react-loadable-manifest.json +1 -0
  143. package/.next/server/app/session/[provider]/[sessionId]/page/server-reference-manifest.json +4 -0
  144. package/.next/server/app/session/[provider]/[sessionId]/page.js +16 -0
  145. package/.next/server/app/session/[provider]/[sessionId]/page.js.nft.json +1 -0
  146. package/.next/server/app/session/[provider]/[sessionId]/page_client-reference-manifest.js +3 -0
  147. package/.next/server/app/thread/[threadId]/page/app-paths-manifest.json +3 -0
  148. package/.next/server/app/thread/[threadId]/page/build-manifest.json +18 -0
  149. package/.next/server/app/thread/[threadId]/page/next-font-manifest.json +6 -0
  150. package/.next/server/app/thread/[threadId]/page/react-loadable-manifest.json +1 -0
  151. package/.next/server/app/thread/[threadId]/page/server-reference-manifest.json +4 -0
  152. package/.next/server/app/thread/[threadId]/page.js +15 -0
  153. package/.next/server/app/thread/[threadId]/page.js.nft.json +1 -0
  154. package/.next/server/app/thread/[threadId]/page_client-reference-manifest.js +3 -0
  155. package/.next/server/app-paths-manifest.json +21 -0
  156. package/.next/server/chunks/0zjb_server_app_api_conversations_[threadId]_messages_route_actions_0poed25.js +3 -0
  157. package/.next/server/chunks/0zjb_server_app_api_tools_image-generation_files_[id]_route_actions_0-tbvpw.js +3 -0
  158. package/.next/server/chunks/0zjb_server_app_api_tools_image-generation_records_route_actions_0vu38s2.js +3 -0
  159. package/.next/server/chunks/[externals]_next_dist_0.m~pv6._.js +3 -0
  160. package/.next/server/chunks/[root-of-the-server]__04xq..~._.js +3 -0
  161. package/.next/server/chunks/[root-of-the-server]__07sxz4_._.js +3 -0
  162. package/.next/server/chunks/[root-of-the-server]__0dwg3fr._.js +178 -0
  163. package/.next/server/chunks/[root-of-the-server]__0eanzwb._.js +3 -0
  164. package/.next/server/chunks/[root-of-the-server]__0gqx~5k._.js +3 -0
  165. package/.next/server/chunks/[root-of-the-server]__0iokgmz._.js +3 -0
  166. package/.next/server/chunks/[root-of-the-server]__0j-lxr4._.js +3 -0
  167. package/.next/server/chunks/[root-of-the-server]__0ly6hop._.js +3 -0
  168. package/.next/server/chunks/[root-of-the-server]__0nil~wi._.js +3 -0
  169. package/.next/server/chunks/[root-of-the-server]__0tmhg7j._.js +3 -0
  170. package/.next/server/chunks/[root-of-the-server]__0txmfnw._.js +4 -0
  171. package/.next/server/chunks/[root-of-the-server]__0wo0b8z._.js +3 -0
  172. package/.next/server/chunks/[root-of-the-server]__0~mtsby._.js +3 -0
  173. package/.next/server/chunks/[root-of-the-server]__10-n4io._.js +3 -0
  174. package/.next/server/chunks/[root-of-the-server]__10g507v._.js +3 -0
  175. package/.next/server/chunks/[turbopack]_runtime.js +903 -0
  176. package/.next/server/chunks/_next-internal_server_app_api_acp_capabilities_route_actions_08lck.p.js +3 -0
  177. package/.next/server/chunks/_next-internal_server_app_api_acp_commands_route_actions_0as.2z6.js +3 -0
  178. package/.next/server/chunks/_next-internal_server_app_api_acp_runtime_route_actions_0o1ybkn.js +3 -0
  179. package/.next/server/chunks/_next-internal_server_app_api_chat_route_actions_0tmcf6..js +3 -0
  180. package/.next/server/chunks/_next-internal_server_app_api_conversations_[threadId]_route_actions_12yq8z_.js +3 -0
  181. package/.next/server/chunks/_next-internal_server_app_api_conversations_route_actions_131xv69.js +3 -0
  182. package/.next/server/chunks/_next-internal_server_app_api_local-files_image_route_actions_0f~10mn.js +3 -0
  183. package/.next/server/chunks/_next-internal_server_app_api_local-files_open_route_actions_026mg-2.js +3 -0
  184. package/.next/server/chunks/_next-internal_server_app_api_output-artifacts_workspace_route_actions_1239-n7.js +3 -0
  185. package/.next/server/chunks/_next-internal_server_app_api_tools_user-choice_route_actions_09xqbn_.js +3 -0
  186. package/.next/server/chunks/_next-internal_server_app_favicon_ico_route_actions_095lj93.js +3 -0
  187. package/.next/server/chunks/instrumentation_ts_0zq9-xz._.js +3 -0
  188. package/.next/server/chunks/lib_conversations_store_ts_0gzcj38._.js +7 -0
  189. package/.next/server/chunks/node_modules_@vercel_oidc_dist_token_0zdeuds.js +3 -0
  190. package/.next/server/chunks/node_modules_next_00hve1e._.js +13 -0
  191. package/.next/server/chunks/ssr/[root-of-the-server]__02qo-zr._.js +19 -0
  192. package/.next/server/chunks/ssr/[root-of-the-server]__0488vn3._.js +3 -0
  193. package/.next/server/chunks/ssr/[root-of-the-server]__08e5v4-._.js +3 -0
  194. package/.next/server/chunks/ssr/[root-of-the-server]__08iwq-u._.js +3 -0
  195. package/.next/server/chunks/ssr/[root-of-the-server]__0a1m1mq._.js +3 -0
  196. package/.next/server/chunks/ssr/[root-of-the-server]__0i9qg2.._.js +33 -0
  197. package/.next/server/chunks/ssr/[root-of-the-server]__0icm-_h._.js +3 -0
  198. package/.next/server/chunks/ssr/[root-of-the-server]__0piffp7._.js +3 -0
  199. package/.next/server/chunks/ssr/[root-of-the-server]__0xn-a8p._.js +3 -0
  200. package/.next/server/chunks/ssr/[root-of-the-server]__0~c929r._.js +33 -0
  201. package/.next/server/chunks/ssr/[turbopack]_runtime.js +903 -0
  202. package/.next/server/chunks/ssr/_0-oaqqe._.js +6 -0
  203. package/.next/server/chunks/ssr/_006q235._.js +3 -0
  204. package/.next/server/chunks/ssr/_03.pm1z._.js +108 -0
  205. package/.next/server/chunks/ssr/_0txwi90._.js +3 -0
  206. package/.next/server/chunks/ssr/_next-internal_server_app__global-error_page_actions_0k77kol.js +3 -0
  207. package/.next/server/chunks/ssr/_next-internal_server_app__not-found_page_actions_0eq97pa.js +3 -0
  208. package/.next/server/chunks/ssr/_next-internal_server_app_page_actions_09-gtaw.js +3 -0
  209. package/.next/server/chunks/ssr/_next-internal_server_app_session_[provider]_[sessionId]_page_actions_0_67qh_.js +3 -0
  210. package/.next/server/chunks/ssr/_next-internal_server_app_thread_[threadId]_page_actions_11mcypo.js +3 -0
  211. package/.next/server/chunks/ssr/lib_conversations_store_ts_0-pd6d3._.js +4 -0
  212. package/.next/server/chunks/ssr/node_modules_09w7yel._.js +33 -0
  213. package/.next/server/chunks/ssr/node_modules_0tev5qq._.js +3 -0
  214. package/.next/server/chunks/ssr/node_modules_@vercel_oidc_dist_token_0yj7kvj.js +3 -0
  215. package/.next/server/chunks/ssr/node_modules_next_dist_09jzzl8._.js +3 -0
  216. package/.next/server/chunks/ssr/node_modules_next_dist_0h9llsw._.js +6 -0
  217. package/.next/server/chunks/ssr/node_modules_next_dist_0t-hj0x._.js +3 -0
  218. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_0inhx6q._.js +3 -0
  219. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0ghu-f7.js +3 -0
  220. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0lgvd_..js +3 -0
  221. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0cjv-23.js +3 -0
  222. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_00297nb.js +4 -0
  223. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_002l7yi.js +4 -0
  224. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_02suzhc.js +4 -0
  225. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_04x9gct.js +4 -0
  226. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0nsg22r.js +4 -0
  227. package/.next/server/chunks/tools_image-generation_service_mjs_0k_th7-._.js +3 -0
  228. package/.next/server/edge/chunks/_0e82_ds._.js +3 -0
  229. package/.next/server/edge/chunks/turbopack-node_modules_next_dist_esm_build_templates_edge-wrapper_00ue99t.js +3 -0
  230. package/.next/server/functions-config-manifest.json +11 -0
  231. package/.next/server/instrumentation/middleware-manifest.json +12 -0
  232. package/.next/server/instrumentation.js +4 -0
  233. package/.next/server/instrumentation.js.nft.json +1 -0
  234. package/.next/server/interception-route-rewrite-manifest.js +1 -0
  235. package/.next/server/middleware-build-manifest.js +22 -0
  236. package/.next/server/middleware-manifest.json +6 -0
  237. package/.next/server/next-font-manifest.js +1 -0
  238. package/.next/server/next-font-manifest.json +6 -0
  239. package/.next/server/pages/404.html +1 -0
  240. package/.next/server/pages/500.html +1 -0
  241. package/.next/server/pages-manifest.json +4 -0
  242. package/.next/server/prefetch-hints.json +1 -0
  243. package/.next/server/server-reference-manifest.js +1 -0
  244. package/.next/server/server-reference-manifest.json +5 -0
  245. package/.next/static/chunks/01xlw8hd842-c.js +1 -0
  246. package/.next/static/chunks/03edqrb4zdj~g.js +31 -0
  247. package/.next/static/chunks/03qq5fxc~pg00.js +1 -0
  248. package/.next/static/chunks/03~yq9q893hmn.js +1 -0
  249. package/.next/static/chunks/0l-_vd.~~z2bw.js +2 -0
  250. package/.next/static/chunks/0qid5lwcbx9s0.js +1 -0
  251. package/.next/static/chunks/0t.k8~x~sghva.js +4 -0
  252. package/.next/static/chunks/0tmpufzgpw2-w.js +1 -0
  253. package/.next/static/chunks/0v_ue~msygctw.js +1 -0
  254. package/.next/static/chunks/0y2l0xgouorae.css +1 -0
  255. package/.next/static/chunks/0zftsky7gte_9.js +102 -0
  256. package/.next/static/chunks/13nvdsh0e09d0.js +1 -0
  257. package/.next/static/chunks/1610ha42i.fl~.css +1 -0
  258. package/.next/static/chunks/turbopack-0mxz-ap91rcoe.js +1 -0
  259. package/.next/static/mbk_N5Gs4ZJg3lciRL6ya/_buildManifest.js +11 -0
  260. package/.next/static/mbk_N5Gs4ZJg3lciRL6ya/_clientMiddlewareManifest.js +1 -0
  261. package/.next/static/mbk_N5Gs4ZJg3lciRL6ya/_ssgManifest.js +1 -0
  262. package/.next/static/media/favicon.0x3dzn~oxb6tn.ico +0 -0
  263. package/README.md +113 -0
  264. package/THIRD_PARTY_NOTICES.md +34 -0
  265. package/bin/acp.mjs +224 -0
  266. package/dist/app/globals.css +146 -0
  267. package/dist/components/assistant-ui/acp-command-menu.d.ts +2 -0
  268. package/dist/components/assistant-ui/acp-command-menu.mjs +176 -0
  269. package/dist/components/assistant-ui/acp-elicitation-option-list.d.ts +3 -0
  270. package/dist/components/assistant-ui/acp-elicitation-option-list.mjs +157 -0
  271. package/dist/components/assistant-ui/acp-selectors.d.ts +2 -0
  272. package/dist/components/assistant-ui/acp-selectors.mjs +301 -0
  273. package/dist/components/assistant-ui/acp-tool-content.d.ts +4 -0
  274. package/dist/components/assistant-ui/acp-tool-content.mjs +127 -0
  275. package/dist/components/assistant-ui/addons/host.d.ts +4 -0
  276. package/dist/components/assistant-ui/addons/host.mjs +85 -0
  277. package/dist/components/assistant-ui/addons/image-generation-records-section.d.ts +14 -0
  278. package/dist/components/assistant-ui/addons/image-generation-records-section.mjs +116 -0
  279. package/dist/components/assistant-ui/addons/output-artifacts-section.d.ts +9 -0
  280. package/dist/components/assistant-ui/addons/output-artifacts-section.mjs +24 -0
  281. package/dist/components/assistant-ui/addons/output-artifacts.d.ts +14 -0
  282. package/dist/components/assistant-ui/addons/output-artifacts.mjs +87 -0
  283. package/dist/components/assistant-ui/addons/plan-addon.d.ts +2 -0
  284. package/dist/components/assistant-ui/addons/plan-addon.mjs +39 -0
  285. package/dist/components/assistant-ui/addons/plan-data.d.ts +5 -0
  286. package/dist/components/assistant-ui/addons/plan-data.mjs +97 -0
  287. package/dist/components/assistant-ui/addons/registry.d.ts +2 -0
  288. package/dist/components/assistant-ui/addons/registry.mjs +8 -0
  289. package/dist/components/assistant-ui/addons/types.d.ts +13 -0
  290. package/dist/components/assistant-ui/addons/types.mjs +1 -0
  291. package/dist/components/assistant-ui/attachment.d.ts +7 -0
  292. package/dist/components/assistant-ui/attachment.mjs +88 -0
  293. package/dist/components/assistant-ui/file.d.ts +37 -0
  294. package/dist/components/assistant-ui/file.mjs +107 -0
  295. package/dist/components/assistant-ui/image-generation-settings-dialog.d.ts +4 -0
  296. package/dist/components/assistant-ui/image-generation-settings-dialog.mjs +28 -0
  297. package/dist/components/assistant-ui/image.d.ts +51 -0
  298. package/dist/components/assistant-ui/image.mjs +215 -0
  299. package/dist/components/assistant-ui/markdown-text.d.ts +2 -0
  300. package/dist/components/assistant-ui/markdown-text.mjs +208 -0
  301. package/dist/components/assistant-ui/thread/composer.d.ts +27 -0
  302. package/dist/components/assistant-ui/thread/composer.mjs +15 -0
  303. package/dist/components/assistant-ui/thread/context-chips.d.ts +2 -0
  304. package/dist/components/assistant-ui/thread/context-chips.mjs +123 -0
  305. package/dist/components/assistant-ui/thread/empty-state.d.ts +9 -0
  306. package/dist/components/assistant-ui/thread/empty-state.mjs +24 -0
  307. package/dist/components/assistant-ui/thread/index.d.ts +11 -0
  308. package/dist/components/assistant-ui/thread/index.mjs +43 -0
  309. package/dist/components/assistant-ui/thread/message-list.d.ts +3 -0
  310. package/dist/components/assistant-ui/thread/message-list.mjs +16 -0
  311. package/dist/components/assistant-ui/thread/messages.d.ts +9 -0
  312. package/dist/components/assistant-ui/thread/messages.mjs +71 -0
  313. package/dist/components/assistant-ui/thread/scroll-to-bottom.d.ts +2 -0
  314. package/dist/components/assistant-ui/thread/scroll-to-bottom.mjs +8 -0
  315. package/dist/components/assistant-ui/thread-list.d.ts +2 -0
  316. package/dist/components/assistant-ui/thread-list.mjs +31 -0
  317. package/dist/components/assistant-ui/thread.d.ts +1 -0
  318. package/dist/components/assistant-ui/thread.mjs +2 -0
  319. package/dist/components/assistant-ui/threadlist-sidebar.d.ts +6 -0
  320. package/dist/components/assistant-ui/threadlist-sidebar.mjs +32 -0
  321. package/dist/components/assistant-ui/tool-fallback.d.ts +31 -0
  322. package/dist/components/assistant-ui/tool-fallback.mjs +114 -0
  323. package/dist/components/assistant-ui/tooltip-icon-button.d.ts +7 -0
  324. package/dist/components/assistant-ui/tooltip-icon-button.mjs +23 -0
  325. package/dist/components/icons/github.d.ts +3 -0
  326. package/dist/components/icons/github.mjs +4 -0
  327. package/dist/components/theme-toggle.d.ts +1 -0
  328. package/dist/components/theme-toggle.mjs +26 -0
  329. package/dist/components/tool-ui/option-list.d.ts +34 -0
  330. package/dist/components/tool-ui/option-list.mjs +163 -0
  331. package/dist/components/ui/avatar.d.ts +11 -0
  332. package/dist/components/ui/avatar.mjs +40 -0
  333. package/dist/components/ui/button.d.ts +10 -0
  334. package/dist/components/ui/button.mjs +47 -0
  335. package/dist/components/ui/collapsible.d.ts +5 -0
  336. package/dist/components/ui/collapsible.mjs +27 -0
  337. package/dist/components/ui/dialog.d.ts +17 -0
  338. package/dist/components/ui/dialog.mjs +58 -0
  339. package/dist/components/ui/input.d.ts +3 -0
  340. package/dist/components/ui/input.mjs +18 -0
  341. package/dist/components/ui/label.d.ts +4 -0
  342. package/dist/components/ui/label.mjs +20 -0
  343. package/dist/components/ui/scroll-area.d.ts +5 -0
  344. package/dist/components/ui/scroll-area.mjs +26 -0
  345. package/dist/components/ui/select.d.ts +13 -0
  346. package/dist/components/ui/select.mjs +59 -0
  347. package/dist/components/ui/separator.d.ts +4 -0
  348. package/dist/components/ui/separator.mjs +20 -0
  349. package/dist/components/ui/sheet.d.ts +14 -0
  350. package/dist/components/ui/sheet.mjs +61 -0
  351. package/dist/components/ui/sidebar.d.ts +69 -0
  352. package/dist/components/ui/sidebar.mjs +245 -0
  353. package/dist/components/ui/skeleton.d.ts +2 -0
  354. package/dist/components/ui/skeleton.mjs +18 -0
  355. package/dist/components/ui/switch.d.ts +4 -0
  356. package/dist/components/ui/switch.mjs +20 -0
  357. package/dist/components/ui/tabs.d.ts +7 -0
  358. package/dist/components/ui/tabs.mjs +32 -0
  359. package/dist/components/ui/tooltip.d.ts +7 -0
  360. package/dist/components/ui/tooltip.mjs +32 -0
  361. package/dist/hooks/use-mobile.d.ts +1 -0
  362. package/dist/hooks/use-mobile.mjs +15 -0
  363. package/dist/lib/acp2aisdk/capabilities.d.ts +6 -0
  364. package/dist/lib/acp2aisdk/capabilities.mjs +210 -0
  365. package/dist/lib/acp2aisdk/capability-cache.d.ts +17 -0
  366. package/dist/lib/acp2aisdk/capability-cache.mjs +259 -0
  367. package/dist/lib/acp2aisdk/client-context.d.ts +38 -0
  368. package/dist/lib/acp2aisdk/client-context.mjs +247 -0
  369. package/dist/lib/acp2aisdk/commands.d.ts +11 -0
  370. package/dist/lib/acp2aisdk/commands.mjs +121 -0
  371. package/dist/lib/acp2aisdk/config-options.d.ts +3 -0
  372. package/dist/lib/acp2aisdk/config-options.mjs +86 -0
  373. package/dist/lib/acp2aisdk/context.d.ts +88 -0
  374. package/dist/lib/acp2aisdk/context.mjs +33 -0
  375. package/dist/lib/acp2aisdk/default-capabilities.d.ts +275 -0
  376. package/dist/lib/acp2aisdk/default-capabilities.mjs +421 -0
  377. package/dist/lib/acp2aisdk/elicitation.d.ts +37 -0
  378. package/dist/lib/acp2aisdk/elicitation.mjs +193 -0
  379. package/dist/lib/acp2aisdk/hitl.d.ts +25 -0
  380. package/dist/lib/acp2aisdk/hitl.mjs +134 -0
  381. package/dist/lib/acp2aisdk/index.d.ts +12 -0
  382. package/dist/lib/acp2aisdk/index.mjs +182 -0
  383. package/dist/lib/acp2aisdk/mcp-servers.d.ts +17 -0
  384. package/dist/lib/acp2aisdk/mcp-servers.mjs +153 -0
  385. package/dist/lib/acp2aisdk/model-selection.d.ts +16 -0
  386. package/dist/lib/acp2aisdk/model-selection.mjs +65 -0
  387. package/dist/lib/acp2aisdk/prompt-history.d.ts +9 -0
  388. package/dist/lib/acp2aisdk/prompt-history.mjs +168 -0
  389. package/dist/lib/acp2aisdk/provider-compat.d.ts +85 -0
  390. package/dist/lib/acp2aisdk/provider-compat.mjs +501 -0
  391. package/dist/lib/acp2aisdk/provider-registry.d.ts +15 -0
  392. package/dist/lib/acp2aisdk/provider-registry.mjs +196 -0
  393. package/dist/lib/acp2aisdk/response.d.ts +3 -0
  394. package/dist/lib/acp2aisdk/response.mjs +33 -0
  395. package/dist/lib/acp2aisdk/runtime-options.d.ts +2 -0
  396. package/dist/lib/acp2aisdk/runtime-options.mjs +10 -0
  397. package/dist/lib/acp2aisdk/session-runtime.d.ts +5 -0
  398. package/dist/lib/acp2aisdk/session-runtime.mjs +186 -0
  399. package/dist/lib/acp2aisdk/session-store.d.ts +31 -0
  400. package/dist/lib/acp2aisdk/session-store.mjs +169 -0
  401. package/dist/lib/acp2aisdk/skill-command-cache.d.ts +20 -0
  402. package/dist/lib/acp2aisdk/skill-command-cache.mjs +122 -0
  403. package/dist/lib/acp2aisdk/stream-metadata.d.ts +10 -0
  404. package/dist/lib/acp2aisdk/stream-metadata.mjs +251 -0
  405. package/dist/lib/acp2aisdk/types.d.ts +129 -0
  406. package/dist/lib/acp2aisdk/types.mjs +0 -0
  407. package/dist/lib/acp2aisdk/vendor/acp-ai-provider/index.d.ts +10 -0
  408. package/dist/lib/acp2aisdk/vendor/acp-ai-provider/index.mjs +10 -0
  409. package/dist/lib/acp2aisdk/vendor/acp-ai-provider/package/index.mjs +1945 -0
  410. package/dist/lib/api/client.d.ts +93 -0
  411. package/dist/lib/api/client.mjs +199 -0
  412. package/dist/lib/api/cors.d.ts +2 -0
  413. package/dist/lib/api/cors.mjs +47 -0
  414. package/dist/lib/conversations/client-adapter.d.ts +21 -0
  415. package/dist/lib/conversations/client-adapter.mjs +329 -0
  416. package/dist/lib/conversations/message-repository.d.ts +8 -0
  417. package/dist/lib/conversations/message-repository.mjs +87 -0
  418. package/dist/lib/conversations/store.d.ts +17 -0
  419. package/dist/lib/conversations/store.mjs +678 -0
  420. package/dist/lib/conversations/types.d.ts +92 -0
  421. package/dist/lib/conversations/types.mjs +0 -0
  422. package/dist/lib/local-image-files.d.ts +5 -0
  423. package/dist/lib/local-image-files.mjs +76 -0
  424. package/dist/lib/local-image-paths.d.ts +7 -0
  425. package/dist/lib/local-image-paths.mjs +106 -0
  426. package/dist/lib/output-artifacts/workspace.d.ts +8 -0
  427. package/dist/lib/output-artifacts/workspace.mjs +174 -0
  428. package/dist/lib/provider-history/codex.d.ts +4 -0
  429. package/dist/lib/provider-history/codex.mjs +272 -0
  430. package/dist/lib/provider-history/index.d.ts +7 -0
  431. package/dist/lib/provider-history/index.mjs +88 -0
  432. package/dist/lib/provider-history/types.d.ts +31 -0
  433. package/dist/lib/provider-history/types.mjs +0 -0
  434. package/dist/lib/server-runtime.d.ts +22 -0
  435. package/dist/lib/server-runtime.mjs +78 -0
  436. package/dist/lib/url-routing.d.ts +18 -0
  437. package/dist/lib/url-routing.mjs +59 -0
  438. package/dist/lib/utils.d.ts +2 -0
  439. package/dist/lib/utils.mjs +5 -0
  440. package/dist/lib/workspace-metadata.d.ts +2 -0
  441. package/dist/lib/workspace-metadata.mjs +20 -0
  442. package/dist/public-api/react.d.ts +14 -0
  443. package/dist/public-api/react.mjs +16 -0
  444. package/dist/public-api/runtime.d.ts +8 -0
  445. package/dist/public-api/runtime.mjs +7 -0
  446. package/dist/public-api/server.d.ts +5 -0
  447. package/dist/public-api/server.mjs +4 -0
  448. package/dist/public-api/styles.css +1 -0
  449. package/dist/public-api/ui.d.ts +13 -0
  450. package/dist/public-api/ui.mjs +13 -0
  451. package/dist/tools/client-registry.d.ts +9 -0
  452. package/dist/tools/client-registry.mjs +70 -0
  453. package/dist/tools/image-generation/client.d.ts +18 -0
  454. package/dist/tools/image-generation/client.mjs +31 -0
  455. package/dist/tools/image-generation/config.d.ts +9 -0
  456. package/dist/tools/image-generation/config.example.json +14 -0
  457. package/dist/tools/image-generation/config.mjs +11 -0
  458. package/dist/tools/image-generation/mcp-server.mjs +87 -0
  459. package/dist/tools/image-generation/registry.d.ts +13 -0
  460. package/dist/tools/image-generation/registry.mjs +30 -0
  461. package/dist/tools/image-generation/server.d.ts +6 -0
  462. package/dist/tools/image-generation/server.mjs +58 -0
  463. package/dist/tools/image-generation/service.mjs +978 -0
  464. package/dist/tools/image-generation/shared.d.ts +103 -0
  465. package/dist/tools/image-generation/shared.mjs +80 -0
  466. package/dist/tools/image-generation/storage.d.ts +22 -0
  467. package/dist/tools/image-generation/storage.mjs +8 -0
  468. package/dist/tools/image-generation/ui-detail.d.ts +26 -0
  469. package/dist/tools/image-generation/ui-detail.mjs +109 -0
  470. package/dist/tools/image-generation/ui.d.ts +8 -0
  471. package/dist/tools/image-generation/ui.mjs +121 -0
  472. package/dist/tools/registry.d.ts +32 -0
  473. package/dist/tools/registry.mjs +142 -0
  474. package/dist/tools/ui-registry.d.ts +3 -0
  475. package/dist/tools/ui-registry.mjs +20 -0
  476. package/dist/tools/user-choice/client.d.ts +10 -0
  477. package/dist/tools/user-choice/client.mjs +18 -0
  478. package/dist/tools/user-choice/registry.d.ts +12 -0
  479. package/dist/tools/user-choice/registry.mjs +21 -0
  480. package/dist/tools/user-choice/server.d.ts +6 -0
  481. package/dist/tools/user-choice/server.mjs +42 -0
  482. package/dist/tools/user-choice/shared.d.ts +79 -0
  483. package/dist/tools/user-choice/shared.mjs +56 -0
  484. package/dist/tools/user-choice/store.d.ts +19 -0
  485. package/dist/tools/user-choice/store.mjs +95 -0
  486. package/dist/tools/user-choice/ui.d.ts +3 -0
  487. package/dist/tools/user-choice/ui.mjs +396 -0
  488. package/package.json +118 -0
@@ -0,0 +1,142 @@
1
+ import { acpMcpServerKey } from "../lib/acp2aisdk/mcp-servers.mjs";
2
+ import { imageGenerationBuiltinTool } from "./image-generation/registry.mjs";
3
+ import { IMAGE_GENERATION_TOOL_ID } from "./image-generation/shared.mjs";
4
+ import { userChoiceBuiltinTool } from "./user-choice/registry.mjs";
5
+ const BUILTIN_TOOLS = [
6
+ imageGenerationBuiltinTool,
7
+ userChoiceBuiltinTool,
8
+ ];
9
+ const BUILTIN_TOOL_COMPAT_SETTING_KEYS = {
10
+ [IMAGE_GENERATION_TOOL_ID]: ["imageGeneration"],
11
+ };
12
+ function isRecord(value) {
13
+ return Boolean(value) && typeof value === "object" && !Array.isArray(value);
14
+ }
15
+ function stableStringify(value) {
16
+ if (Array.isArray(value)) {
17
+ return `[${value.map((entry) => stableStringify(entry)).join(",")}]`;
18
+ }
19
+ if (value && typeof value === "object") {
20
+ const record = value;
21
+ return `{${Object.keys(record)
22
+ .sort()
23
+ .map((key) => `${JSON.stringify(key)}:${stableStringify(record[key])}`)
24
+ .join(",")}}`;
25
+ }
26
+ return JSON.stringify(value);
27
+ }
28
+ function normalizeBuiltinToolIds(toolIds) {
29
+ if (!Array.isArray(toolIds))
30
+ return [];
31
+ const requested = new Set(toolIds);
32
+ return BUILTIN_TOOLS.map((tool) => tool.id).filter((toolId) => requested.has(toolId));
33
+ }
34
+ function hasToolSetting(settings, toolId) {
35
+ var _a;
36
+ if (toolId in settings)
37
+ return true;
38
+ return ((_a = BUILTIN_TOOL_COMPAT_SETTING_KEYS[toolId]) !== null && _a !== void 0 ? _a : []).some((key) => key in settings);
39
+ }
40
+ function getToolSetting(settings, toolId) {
41
+ var _a;
42
+ if (!isRecord(settings))
43
+ return undefined;
44
+ if (toolId in settings)
45
+ return settings[toolId];
46
+ for (const key of (_a = BUILTIN_TOOL_COMPAT_SETTING_KEYS[toolId]) !== null && _a !== void 0 ? _a : []) {
47
+ if (key in settings)
48
+ return settings[key];
49
+ }
50
+ return undefined;
51
+ }
52
+ export function getBuiltinToolRegistrations() {
53
+ return [...BUILTIN_TOOLS];
54
+ }
55
+ export function getBuiltinToolRuntimeKey(options) {
56
+ const builtinTools = normalizeBuiltinToolIds(options.toolIds).sort();
57
+ const settings = {};
58
+ for (const tool of BUILTIN_TOOLS) {
59
+ if (!builtinTools.includes(tool.id))
60
+ continue;
61
+ settings[tool.id] = tool.getRuntimeKey(getToolSetting(options.builtinToolSettings, tool.id));
62
+ }
63
+ return stableStringify({
64
+ builtinTools,
65
+ builtinToolSettings: settings,
66
+ });
67
+ }
68
+ export function sanitizePersistedBuiltinToolSettingsPatch(settings) {
69
+ if (!isRecord(settings))
70
+ return null;
71
+ const patch = {};
72
+ for (const tool of BUILTIN_TOOLS) {
73
+ if (!hasToolSetting(settings, tool.id))
74
+ continue;
75
+ const rawSettings = getToolSetting(settings, tool.id);
76
+ patch[tool.id] =
77
+ rawSettings === null ? null : tool.sanitizePersistedSettings(rawSettings);
78
+ }
79
+ return Object.keys(patch).length > 0 ? patch : null;
80
+ }
81
+ export function normalizePersistedBuiltinToolSettings(settings) {
82
+ if (!isRecord(settings))
83
+ return null;
84
+ const normalized = {};
85
+ for (const tool of BUILTIN_TOOLS) {
86
+ const rawSettings = getToolSetting(settings, tool.id);
87
+ if (rawSettings === undefined || rawSettings === null)
88
+ continue;
89
+ const sanitized = tool.sanitizePersistedSettings(rawSettings);
90
+ if (sanitized)
91
+ normalized[tool.id] = sanitized;
92
+ }
93
+ return Object.keys(normalized).length > 0 ? normalized : null;
94
+ }
95
+ export function mergePersistedBuiltinToolSettings(current, patch) {
96
+ var _a;
97
+ if (patch === null)
98
+ return null;
99
+ const currentSettings = (_a = normalizePersistedBuiltinToolSettings(current)) !== null && _a !== void 0 ? _a : {};
100
+ if (!isRecord(patch)) {
101
+ return Object.keys(currentSettings).length > 0 ? currentSettings : null;
102
+ }
103
+ const merged = Object.assign({}, currentSettings);
104
+ for (const tool of BUILTIN_TOOLS) {
105
+ if (!hasToolSetting(patch, tool.id))
106
+ continue;
107
+ const rawPatch = getToolSetting(patch, tool.id);
108
+ if (rawPatch === null) {
109
+ delete merged[tool.id];
110
+ continue;
111
+ }
112
+ const nextSettings = tool.mergePersistedSettings(merged[tool.id], rawPatch);
113
+ if (nextSettings) {
114
+ merged[tool.id] = nextSettings;
115
+ }
116
+ else {
117
+ delete merged[tool.id];
118
+ }
119
+ }
120
+ return Object.keys(merged).length > 0 ? merged : null;
121
+ }
122
+ export function getBuiltinToolMcpServers(options = {}) {
123
+ const enabledToolIds = normalizeBuiltinToolIds(options.toolIds);
124
+ return BUILTIN_TOOLS.filter((tool) => enabledToolIds.includes(tool.id))
125
+ .map((tool) => tool.getMcpServer({
126
+ workspacePath: options.workspacePath,
127
+ threadId: options.threadId,
128
+ settings: getToolSetting(options.builtinToolSettings, tool.id),
129
+ }))
130
+ .filter((server) => Boolean(server));
131
+ }
132
+ export function mergeToolMcpServers(requestedServers, options = {}) {
133
+ const merged = new Map();
134
+ const builtinServers = getBuiltinToolMcpServers(options);
135
+ for (const server of builtinServers) {
136
+ merged.set(acpMcpServerKey(server), server);
137
+ }
138
+ for (const server of requestedServers) {
139
+ merged.set(acpMcpServerKey(server), server);
140
+ }
141
+ return [...merged.values()];
142
+ }
@@ -0,0 +1,3 @@
1
+ import type { ToolCallMessagePartProps } from "@assistant-ui/react";
2
+ import type { ReactNode } from "react";
3
+ export declare function renderRegisteredToolCallPart(part: ToolCallMessagePartProps): ReactNode | null;
@@ -0,0 +1,20 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { ImageGenerationToolCard, isImageGenerationToolPart, } from "./image-generation/ui.mjs";
4
+ import { isUserChoiceToolPart, UserChoiceToolCard } from "./user-choice/ui.mjs";
5
+ const TOOL_UI_REGISTRY = [
6
+ {
7
+ id: "image-generation",
8
+ canRender: isImageGenerationToolPart,
9
+ render: (part) => _jsx(ImageGenerationToolCard, Object.assign({}, part)),
10
+ },
11
+ {
12
+ id: "user-choice",
13
+ canRender: isUserChoiceToolPart,
14
+ render: (part) => _jsx(UserChoiceToolCard, Object.assign({}, part)),
15
+ },
16
+ ];
17
+ export function renderRegisteredToolCallPart(part) {
18
+ const registration = TOOL_UI_REGISTRY.find((tool) => tool.canRender(part));
19
+ return registration ? registration.render(part) : null;
20
+ }
@@ -0,0 +1,10 @@
1
+ import { type UserChoiceRuntimeSettings } from "./shared";
2
+ export type UserChoiceToolSettings = Required<UserChoiceRuntimeSettings>;
3
+ export declare const DEFAULT_USER_CHOICE_TOOL_SETTINGS: UserChoiceToolSettings;
4
+ export declare function normalizeUserChoiceToolSettings(value: unknown): UserChoiceToolSettings;
5
+ export declare const userChoiceClientTool: {
6
+ id: string;
7
+ defaultSettings: Required<UserChoiceRuntimeSettings>;
8
+ normalizeSettings: typeof normalizeUserChoiceToolSettings;
9
+ isEnabled(settings: unknown): boolean;
10
+ };
@@ -0,0 +1,18 @@
1
+ import { normalizeUserChoiceRuntimeSettings, USER_CHOICE_DEFAULT_CUSTOM_INPUT_LABEL, USER_CHOICE_DEFAULT_TIMEOUT_MS, USER_CHOICE_TOOL_ID, } from "./shared.mjs";
2
+ export const DEFAULT_USER_CHOICE_TOOL_SETTINGS = {
3
+ enabled: true,
4
+ waitTimeoutMs: USER_CHOICE_DEFAULT_TIMEOUT_MS,
5
+ allowCustomInput: true,
6
+ customInputLabel: USER_CHOICE_DEFAULT_CUSTOM_INPUT_LABEL,
7
+ };
8
+ export function normalizeUserChoiceToolSettings(value) {
9
+ return Object.assign(Object.assign({}, DEFAULT_USER_CHOICE_TOOL_SETTINGS), normalizeUserChoiceRuntimeSettings(value));
10
+ }
11
+ export const userChoiceClientTool = {
12
+ id: USER_CHOICE_TOOL_ID,
13
+ defaultSettings: DEFAULT_USER_CHOICE_TOOL_SETTINGS,
14
+ normalizeSettings: normalizeUserChoiceToolSettings,
15
+ isEnabled(settings) {
16
+ return normalizeUserChoiceToolSettings(settings).enabled;
17
+ },
18
+ };
@@ -0,0 +1,12 @@
1
+ import type { AcpMcpServer } from "../../lib/acp2aisdk/types";
2
+ export declare const userChoiceBuiltinTool: {
3
+ id: string;
4
+ getMcpServer(options: {
5
+ workspacePath?: string | null;
6
+ threadId?: string | null;
7
+ settings?: unknown;
8
+ }): AcpMcpServer | null;
9
+ getRuntimeKey(settings: unknown): unknown;
10
+ sanitizePersistedSettings(settings: unknown): unknown;
11
+ mergePersistedSettings(current: unknown, patch: unknown): unknown;
12
+ };
@@ -0,0 +1,21 @@
1
+ import { getUserChoiceMcpServer } from "./server.mjs";
2
+ import { mergeUserChoiceRuntimeSettings, normalizeUserChoiceRuntimeSettings, sanitizePersistedUserChoiceSettings, USER_CHOICE_TOOL_ID, } from "./shared.mjs";
3
+ export const userChoiceBuiltinTool = {
4
+ id: USER_CHOICE_TOOL_ID,
5
+ getMcpServer(options) {
6
+ return getUserChoiceMcpServer({
7
+ workspacePath: options.workspacePath,
8
+ threadId: options.threadId,
9
+ runtimeSettings: options.settings,
10
+ });
11
+ },
12
+ getRuntimeKey(settings) {
13
+ return normalizeUserChoiceRuntimeSettings(settings);
14
+ },
15
+ sanitizePersistedSettings(settings) {
16
+ return sanitizePersistedUserChoiceSettings(settings);
17
+ },
18
+ mergePersistedSettings(current, patch) {
19
+ return mergeUserChoiceRuntimeSettings(current, sanitizePersistedUserChoiceSettings(patch));
20
+ },
21
+ };
@@ -0,0 +1,6 @@
1
+ import type { AcpMcpServer } from "../../lib/acp2aisdk/types";
2
+ export declare function getUserChoiceMcpServer(options?: {
3
+ workspacePath?: string | null;
4
+ threadId?: string | null;
5
+ runtimeSettings?: unknown;
6
+ }): AcpMcpServer | null;
@@ -0,0 +1,42 @@
1
+ import fs from "node:fs";
2
+ import path from "node:path";
3
+ import { normalizeUserChoiceRuntimeSettings, USER_CHOICE_MCP_NAME, USER_CHOICE_TOOL_ID, } from "./shared.mjs";
4
+ export function getUserChoiceMcpServer(options = {}) {
5
+ const serverPath = path.join(process.cwd(), "tools/user-choice/mcp-server.mjs");
6
+ if (!fs.existsSync(serverPath))
7
+ return null;
8
+ const runtimeSettings = normalizeUserChoiceRuntimeSettings(options.runtimeSettings);
9
+ if (runtimeSettings.enabled === false)
10
+ return null;
11
+ return {
12
+ name: USER_CHOICE_MCP_NAME,
13
+ command: process.execPath,
14
+ args: [serverPath],
15
+ env: [
16
+ {
17
+ name: "ACP_UI_TOOL_ID",
18
+ value: USER_CHOICE_TOOL_ID,
19
+ },
20
+ ...(options.workspacePath
21
+ ? [
22
+ {
23
+ name: "ACP_UI_WORKSPACE_PATH",
24
+ value: options.workspacePath,
25
+ },
26
+ ]
27
+ : []),
28
+ ...(options.threadId
29
+ ? [
30
+ {
31
+ name: "ACP_UI_THREAD_ID",
32
+ value: options.threadId,
33
+ },
34
+ ]
35
+ : []),
36
+ {
37
+ name: "ACP_UI_USER_CHOICE_RUNTIME_SETTINGS",
38
+ value: JSON.stringify(runtimeSettings),
39
+ },
40
+ ],
41
+ };
42
+ }
@@ -0,0 +1,79 @@
1
+ export declare const USER_CHOICE_TOOL_ID = "user-choice";
2
+ export declare const USER_CHOICE_MCP_NAME = "acp-ui-user-choice";
3
+ export declare const USER_CHOICE_TOOL_NAME = "ask_user_choice";
4
+ export declare const USER_CHOICE_MCP_TOOL_TITLE = "Tool: acp-ui-user-choice/ask_user_choice";
5
+ export declare const USER_CHOICE_DEFAULT_TIMEOUT_MS = 120000;
6
+ export declare const USER_CHOICE_MAX_TIMEOUT_MS = 180000;
7
+ export declare const USER_CHOICE_MIN_TIMEOUT_MS = 5000;
8
+ export declare const USER_CHOICE_DEFAULT_CUSTOM_INPUT_LABEL = "\u81EA\u5B9A\u4E49";
9
+ export declare const USER_CHOICE_RESULT_MESSAGE_PREFIX = "USER_CHOICE_RESULT";
10
+ export type UserChoiceSelectionMode = "single" | "multi";
11
+ export type UserChoiceOption = {
12
+ id: string;
13
+ label: string;
14
+ title?: string;
15
+ description?: string;
16
+ disabled?: boolean;
17
+ recommended?: boolean;
18
+ };
19
+ export type UserChoiceQuestion = {
20
+ fieldName: string;
21
+ fieldTitle: string;
22
+ title?: string;
23
+ fieldDescription?: string;
24
+ selectionMode: UserChoiceSelectionMode;
25
+ options: UserChoiceOption[];
26
+ defaultValue?: string | string[] | null;
27
+ minSelections?: number;
28
+ maxSelections?: number;
29
+ required?: boolean;
30
+ allowCustomInput?: boolean;
31
+ customInputLabel?: string;
32
+ };
33
+ export type UserChoiceInput = {
34
+ message?: string;
35
+ question?: UserChoiceQuestion;
36
+ questions?: UserChoiceQuestion[];
37
+ waitTimeoutMs?: number;
38
+ allowCustomInput?: boolean;
39
+ customInputLabel?: string;
40
+ };
41
+ export type UserChoiceRuntimeSettings = {
42
+ enabled?: boolean;
43
+ waitTimeoutMs?: number;
44
+ allowCustomInput?: boolean;
45
+ customInputLabel?: string;
46
+ };
47
+ export type UserChoiceToolResult = {
48
+ status: "answered";
49
+ requestId: string;
50
+ action: "accept";
51
+ content: Record<string, string | string[] | null>;
52
+ } | {
53
+ status: "cancelled";
54
+ requestId: string;
55
+ action: "cancel";
56
+ } | {
57
+ status: "user_no_response";
58
+ requestId: string;
59
+ instruction: string;
60
+ };
61
+ export type UserChoicePendingRequest = {
62
+ requestId: string;
63
+ workspacePath: string;
64
+ threadId: string | null;
65
+ toolCallId: string | null;
66
+ message: string;
67
+ questions: UserChoiceQuestion[];
68
+ waitTimeoutMs: number;
69
+ status: "pending" | "answered" | "cancelled" | "expired";
70
+ answer?: UserChoiceToolResult;
71
+ createdAt: string;
72
+ updatedAt: string;
73
+ expiresAt: string;
74
+ };
75
+ export declare function isRecord(value: unknown): value is Record<string, unknown>;
76
+ export declare function normalizeUserChoiceRuntimeSettings(value: unknown): UserChoiceRuntimeSettings;
77
+ export declare function sanitizePersistedUserChoiceSettings(value: unknown): UserChoiceRuntimeSettings | null;
78
+ export declare function mergeUserChoiceRuntimeSettings(current: unknown, patch: unknown): UserChoiceRuntimeSettings;
79
+ export declare function isUserChoiceResultMessageText(value: unknown): boolean;
@@ -0,0 +1,56 @@
1
+ export const USER_CHOICE_TOOL_ID = "user-choice";
2
+ export const USER_CHOICE_MCP_NAME = "acp-ui-user-choice";
3
+ export const USER_CHOICE_TOOL_NAME = "ask_user_choice";
4
+ export const USER_CHOICE_MCP_TOOL_TITLE = `Tool: ${USER_CHOICE_MCP_NAME}/${USER_CHOICE_TOOL_NAME}`;
5
+ export const USER_CHOICE_DEFAULT_TIMEOUT_MS = 120000;
6
+ export const USER_CHOICE_MAX_TIMEOUT_MS = 180000;
7
+ export const USER_CHOICE_MIN_TIMEOUT_MS = 5000;
8
+ export const USER_CHOICE_DEFAULT_CUSTOM_INPUT_LABEL = "自定义";
9
+ export const USER_CHOICE_RESULT_MESSAGE_PREFIX = "USER_CHOICE_RESULT";
10
+ export function isRecord(value) {
11
+ return Boolean(value) && typeof value === "object" && !Array.isArray(value);
12
+ }
13
+ function readString(value) {
14
+ return typeof value === "string" && value.trim() ? value.trim() : undefined;
15
+ }
16
+ function clampTimeoutMs(value) {
17
+ if (typeof value !== "number" || !Number.isFinite(value))
18
+ return undefined;
19
+ const integer = Math.floor(value);
20
+ return Math.min(USER_CHOICE_MAX_TIMEOUT_MS, Math.max(USER_CHOICE_MIN_TIMEOUT_MS, integer));
21
+ }
22
+ export function normalizeUserChoiceRuntimeSettings(value) {
23
+ var _a, _b;
24
+ if (!isRecord(value)) {
25
+ return {
26
+ enabled: true,
27
+ waitTimeoutMs: USER_CHOICE_DEFAULT_TIMEOUT_MS,
28
+ allowCustomInput: true,
29
+ customInputLabel: USER_CHOICE_DEFAULT_CUSTOM_INPUT_LABEL,
30
+ };
31
+ }
32
+ return {
33
+ enabled: value.enabled !== false,
34
+ waitTimeoutMs: (_a = clampTimeoutMs(value.waitTimeoutMs)) !== null && _a !== void 0 ? _a : USER_CHOICE_DEFAULT_TIMEOUT_MS,
35
+ allowCustomInput: value.allowCustomInput !== false,
36
+ customInputLabel: (_b = readString(value.customInputLabel)) !== null && _b !== void 0 ? _b : USER_CHOICE_DEFAULT_CUSTOM_INPUT_LABEL,
37
+ };
38
+ }
39
+ export function sanitizePersistedUserChoiceSettings(value) {
40
+ if (!isRecord(value))
41
+ return null;
42
+ const settings = normalizeUserChoiceRuntimeSettings(value);
43
+ return {
44
+ enabled: settings.enabled,
45
+ waitTimeoutMs: settings.waitTimeoutMs,
46
+ allowCustomInput: settings.allowCustomInput,
47
+ customInputLabel: settings.customInputLabel,
48
+ };
49
+ }
50
+ export function mergeUserChoiceRuntimeSettings(current, patch) {
51
+ return normalizeUserChoiceRuntimeSettings(Object.assign(Object.assign({}, normalizeUserChoiceRuntimeSettings(current)), (isRecord(patch) ? patch : {})));
52
+ }
53
+ export function isUserChoiceResultMessageText(value) {
54
+ return (typeof value === "string" &&
55
+ value.trimStart().startsWith(USER_CHOICE_RESULT_MESSAGE_PREFIX));
56
+ }
@@ -0,0 +1,19 @@
1
+ import type { UserChoicePendingRequest, UserChoiceToolResult } from "./shared";
2
+ export declare function createUserChoicePendingRequest(request: Omit<UserChoicePendingRequest, "createdAt" | "updatedAt" | "status">): Promise<UserChoicePendingRequest>;
3
+ export declare function getUserChoicePendingRequest(workspacePath: string | null | undefined, requestId: string): Promise<UserChoicePendingRequest | null>;
4
+ export declare function findUserChoicePendingRequest(options: {
5
+ workspacePath?: string | null;
6
+ threadId?: string | null;
7
+ toolCallId?: string | null;
8
+ statuses?: UserChoicePendingRequest["status"][];
9
+ }): Promise<UserChoicePendingRequest | null>;
10
+ export declare function answerUserChoicePendingRequest(options: {
11
+ workspacePath?: string | null;
12
+ requestId: string;
13
+ answer: UserChoiceToolResult;
14
+ }): Promise<UserChoicePendingRequest | null>;
15
+ export declare function expireUserChoicePendingRequest(options: {
16
+ workspacePath?: string | null;
17
+ requestId: string;
18
+ answer: UserChoiceToolResult;
19
+ }): Promise<UserChoicePendingRequest | null>;
@@ -0,0 +1,95 @@
1
+ import fs from "node:fs/promises";
2
+ import path from "node:path";
3
+ import { normalizeWorkspacePath } from "../../lib/acp2aisdk/session-store.mjs";
4
+ const STORE_DIR = path.join(".axhub", "sessions", "user-choice");
5
+ function safeSegment(value) {
6
+ return encodeURIComponent(value).replace(/%/g, "_");
7
+ }
8
+ function getStoreDir(workspacePath) {
9
+ return path.join(
10
+ /* turbopackIgnore: true */ normalizeWorkspacePath(workspacePath), STORE_DIR);
11
+ }
12
+ function getRequestPath(workspacePath, requestId) {
13
+ return path.join(getStoreDir(workspacePath), `${safeSegment(requestId)}.json`);
14
+ }
15
+ function nowIso() {
16
+ return new Date().toISOString();
17
+ }
18
+ async function writeJsonFile(filePath, value) {
19
+ const tempPath = `${filePath}.${process.pid}.${Date.now()}.tmp`;
20
+ await fs.mkdir(/* turbopackIgnore: true */ path.dirname(filePath), {
21
+ recursive: true,
22
+ });
23
+ await fs.writeFile(
24
+ /* turbopackIgnore: true */ tempPath, `${JSON.stringify(value, null, 2)}\n`, "utf8");
25
+ await fs.rename(
26
+ /* turbopackIgnore: true */ tempPath,
27
+ /* turbopackIgnore: true */ filePath);
28
+ }
29
+ async function readRequestByPath(filePath) {
30
+ try {
31
+ const raw = await fs.readFile(/* turbopackIgnore: true */ filePath, "utf8");
32
+ const parsed = JSON.parse(raw);
33
+ return parsed && typeof parsed.requestId === "string" ? parsed : null;
34
+ }
35
+ catch (error) {
36
+ if (error.code === "ENOENT")
37
+ return null;
38
+ throw error;
39
+ }
40
+ }
41
+ export async function createUserChoicePendingRequest(request) {
42
+ const timestamp = nowIso();
43
+ const pending = Object.assign(Object.assign({}, request), { status: "pending", createdAt: timestamp, updatedAt: timestamp });
44
+ await writeJsonFile(getRequestPath(request.workspacePath, request.requestId), pending);
45
+ return pending;
46
+ }
47
+ export async function getUserChoicePendingRequest(workspacePath, requestId) {
48
+ return readRequestByPath(getRequestPath(workspacePath, requestId));
49
+ }
50
+ export async function findUserChoicePendingRequest(options) {
51
+ var _a, _b;
52
+ const dir = getStoreDir(options.workspacePath);
53
+ let entries;
54
+ try {
55
+ entries = await fs.readdir(/* turbopackIgnore: true */ dir);
56
+ }
57
+ catch (error) {
58
+ if (error.code === "ENOENT")
59
+ return null;
60
+ throw error;
61
+ }
62
+ const matches = [];
63
+ const statuses = new Set((_a = options.statuses) !== null && _a !== void 0 ? _a : ["pending"]);
64
+ for (const entry of entries) {
65
+ if (!entry.endsWith(".json"))
66
+ continue;
67
+ const request = await readRequestByPath(path.join(dir, entry));
68
+ if (!request)
69
+ continue;
70
+ if (!statuses.has(request.status))
71
+ continue;
72
+ if (options.threadId && request.threadId !== options.threadId)
73
+ continue;
74
+ if (options.toolCallId && request.toolCallId !== options.toolCallId)
75
+ continue;
76
+ matches.push(request);
77
+ }
78
+ return ((_b = matches.sort((left, right) => right.createdAt.localeCompare(left.createdAt))[0]) !== null && _b !== void 0 ? _b : null);
79
+ }
80
+ export async function answerUserChoicePendingRequest(options) {
81
+ const filePath = getRequestPath(options.workspacePath, options.requestId);
82
+ const request = await readRequestByPath(filePath);
83
+ if (!request)
84
+ return null;
85
+ const next = Object.assign(Object.assign({}, request), { status: options.answer.status === "answered"
86
+ ? "answered"
87
+ : options.answer.status === "cancelled"
88
+ ? "cancelled"
89
+ : "expired", answer: options.answer, updatedAt: nowIso() });
90
+ await writeJsonFile(filePath, next);
91
+ return next;
92
+ }
93
+ export async function expireUserChoicePendingRequest(options) {
94
+ return answerUserChoicePendingRequest(options);
95
+ }
@@ -0,0 +1,3 @@
1
+ import type { ToolCallMessagePartProps } from "@assistant-ui/react";
2
+ export declare function isUserChoiceToolPart(part: ToolCallMessagePartProps): boolean;
3
+ export declare function UserChoiceToolCard(part: ToolCallMessagePartProps): import("react/jsx-runtime").JSX.Element;