@geminilight/mindos 0.6.73 → 0.6.75

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 (257) hide show
  1. package/_standalone/.mindos-build-version +1 -1
  2. package/_standalone/.next/BUILD_ID +1 -1
  3. package/_standalone/.next/app-path-routes-manifest.json +30 -30
  4. package/_standalone/.next/build-manifest.json +3 -3
  5. package/_standalone/.next/cache/.previewinfo +1 -1
  6. package/_standalone/.next/cache/.rscinfo +1 -1
  7. package/_standalone/.next/cache/config.json +3 -3
  8. package/_standalone/.next/prerender-manifest.json +3 -3
  9. package/_standalone/.next/react-loadable-manifest.json +5 -5
  10. package/_standalone/.next/required-server-files.json +14 -1
  11. package/_standalone/.next/server/app/.well-known/agent-card.json/route_client-reference-manifest.js +1 -1
  12. package/_standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  13. package/_standalone/.next/server/app/_global-error.html +2 -2
  14. package/_standalone/.next/server/app/_global-error.rsc +1 -1
  15. package/_standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  16. package/_standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  17. package/_standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  18. package/_standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  19. package/_standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  20. package/_standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  21. package/_standalone/.next/server/app/_not-found/page.js +1 -1
  22. package/_standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  23. package/_standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  24. package/_standalone/.next/server/app/agents/[agentKey]/page.js +1 -1
  25. package/_standalone/.next/server/app/agents/[agentKey]/page.js.nft.json +1 -1
  26. package/_standalone/.next/server/app/agents/[agentKey]/page_client-reference-manifest.js +1 -1
  27. package/_standalone/.next/server/app/agents/page.js +1 -1
  28. package/_standalone/.next/server/app/agents/page.js.nft.json +1 -1
  29. package/_standalone/.next/server/app/agents/page_client-reference-manifest.js +1 -1
  30. package/_standalone/.next/server/app/api/a2a/agents/route_client-reference-manifest.js +1 -1
  31. package/_standalone/.next/server/app/api/a2a/delegations/route_client-reference-manifest.js +1 -1
  32. package/_standalone/.next/server/app/api/a2a/discover/route_client-reference-manifest.js +1 -1
  33. package/_standalone/.next/server/app/api/a2a/route_client-reference-manifest.js +1 -1
  34. package/_standalone/.next/server/app/api/acp/config/route_client-reference-manifest.js +1 -1
  35. package/_standalone/.next/server/app/api/acp/detect/route_client-reference-manifest.js +1 -1
  36. package/_standalone/.next/server/app/api/acp/install/route_client-reference-manifest.js +1 -1
  37. package/_standalone/.next/server/app/api/acp/registry/route_client-reference-manifest.js +1 -1
  38. package/_standalone/.next/server/app/api/acp/session/route_client-reference-manifest.js +1 -1
  39. package/_standalone/.next/server/app/api/agent-activity/route_client-reference-manifest.js +1 -1
  40. package/_standalone/.next/server/app/api/agents/copy-skill/route.js.nft.json +1 -1
  41. package/_standalone/.next/server/app/api/agents/copy-skill/route_client-reference-manifest.js +1 -1
  42. package/_standalone/.next/server/app/api/agents/custom/detect/route_client-reference-manifest.js +1 -1
  43. package/_standalone/.next/server/app/api/agents/custom/route_client-reference-manifest.js +1 -1
  44. package/_standalone/.next/server/app/api/ask/route.js +1 -1
  45. package/_standalone/.next/server/app/api/ask/route.js.nft.json +1 -1
  46. package/_standalone/.next/server/app/api/ask/route_client-reference-manifest.js +1 -1
  47. package/_standalone/.next/server/app/api/ask-sessions/route_client-reference-manifest.js +1 -1
  48. package/_standalone/.next/server/app/api/auth/route_client-reference-manifest.js +1 -1
  49. package/_standalone/.next/server/app/api/backlinks/route.js.nft.json +1 -1
  50. package/_standalone/.next/server/app/api/backlinks/route_client-reference-manifest.js +1 -1
  51. package/_standalone/.next/server/app/api/bootstrap/route.js.nft.json +1 -1
  52. package/_standalone/.next/server/app/api/bootstrap/route_client-reference-manifest.js +1 -1
  53. package/_standalone/.next/server/app/api/changes/route.js.nft.json +1 -1
  54. package/_standalone/.next/server/app/api/changes/route_client-reference-manifest.js +1 -1
  55. package/_standalone/.next/server/app/api/channels/verify/route.js.nft.json +1 -1
  56. package/_standalone/.next/server/app/api/channels/verify/route_client-reference-manifest.js +1 -1
  57. package/_standalone/.next/server/app/api/connect/route_client-reference-manifest.js +1 -1
  58. package/_standalone/.next/server/app/api/embedding/route.js.nft.json +1 -1
  59. package/_standalone/.next/server/app/api/embedding/route_client-reference-manifest.js +1 -1
  60. package/_standalone/.next/server/app/api/export/route.js.nft.json +1 -1
  61. package/_standalone/.next/server/app/api/export/route_client-reference-manifest.js +1 -1
  62. package/_standalone/.next/server/app/api/extract-pdf/route.js.nft.json +1 -1
  63. package/_standalone/.next/server/app/api/extract-pdf/route_client-reference-manifest.js +1 -1
  64. package/_standalone/.next/server/app/api/file/import/route.js.nft.json +1 -1
  65. package/_standalone/.next/server/app/api/file/import/route_client-reference-manifest.js +1 -1
  66. package/_standalone/.next/server/app/api/file/raw/route.js.nft.json +1 -1
  67. package/_standalone/.next/server/app/api/file/raw/route_client-reference-manifest.js +1 -1
  68. package/_standalone/.next/server/app/api/file/route.js.nft.json +1 -1
  69. package/_standalone/.next/server/app/api/file/route_client-reference-manifest.js +1 -1
  70. package/_standalone/.next/server/app/api/files/route.js.nft.json +1 -1
  71. package/_standalone/.next/server/app/api/files/route_client-reference-manifest.js +1 -1
  72. package/_standalone/.next/server/app/api/git/route.js.nft.json +1 -1
  73. package/_standalone/.next/server/app/api/git/route_client-reference-manifest.js +1 -1
  74. package/_standalone/.next/server/app/api/graph/route.js.nft.json +1 -1
  75. package/_standalone/.next/server/app/api/graph/route_client-reference-manifest.js +1 -1
  76. package/_standalone/.next/server/app/api/health/route_client-reference-manifest.js +1 -1
  77. package/_standalone/.next/server/app/api/im/activity/route_client-reference-manifest.js +1 -1
  78. package/_standalone/.next/server/app/api/im/config/route.js +1 -1
  79. package/_standalone/.next/server/app/api/im/config/route_client-reference-manifest.js +1 -1
  80. package/_standalone/.next/server/app/api/im/status/route.js +1 -7
  81. package/_standalone/.next/server/app/api/im/status/route.js.nft.json +1 -1
  82. package/_standalone/.next/server/app/api/im/status/route_client-reference-manifest.js +1 -1
  83. package/_standalone/.next/server/app/api/im/test/route.js.nft.json +1 -1
  84. package/_standalone/.next/server/app/api/im/test/route_client-reference-manifest.js +1 -1
  85. package/_standalone/.next/server/app/api/im/webhook/feishu/route.js +1 -7
  86. package/_standalone/.next/server/app/api/im/webhook/feishu/route.js.nft.json +1 -1
  87. package/_standalone/.next/server/app/api/im/webhook/feishu/route_client-reference-manifest.js +1 -1
  88. package/_standalone/.next/server/app/api/im/webhook-status/route.js +1 -7
  89. package/_standalone/.next/server/app/api/im/webhook-status/route.js.nft.json +1 -1
  90. package/_standalone/.next/server/app/api/im/webhook-status/route_client-reference-manifest.js +1 -1
  91. package/_standalone/.next/server/app/api/inbox/clip/route.js.nft.json +1 -1
  92. package/_standalone/.next/server/app/api/inbox/clip/route_client-reference-manifest.js +1 -1
  93. package/_standalone/.next/server/app/api/inbox/route.js.nft.json +1 -1
  94. package/_standalone/.next/server/app/api/inbox/route_client-reference-manifest.js +1 -1
  95. package/_standalone/.next/server/app/api/init/route.js.nft.json +1 -1
  96. package/_standalone/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
  97. package/_standalone/.next/server/app/api/lint/route.js.nft.json +1 -1
  98. package/_standalone/.next/server/app/api/lint/route_client-reference-manifest.js +1 -1
  99. package/_standalone/.next/server/app/api/mcp/agents/route.js.nft.json +1 -1
  100. package/_standalone/.next/server/app/api/mcp/agents/route_client-reference-manifest.js +1 -1
  101. package/_standalone/.next/server/app/api/mcp/direct-tools/route_client-reference-manifest.js +1 -1
  102. package/_standalone/.next/server/app/api/mcp/install/route_client-reference-manifest.js +1 -1
  103. package/_standalone/.next/server/app/api/mcp/install-skill/route_client-reference-manifest.js +1 -1
  104. package/_standalone/.next/server/app/api/mcp/restart/route_client-reference-manifest.js +1 -1
  105. package/_standalone/.next/server/app/api/mcp/status/route_client-reference-manifest.js +1 -1
  106. package/_standalone/.next/server/app/api/mcp/tools/route_client-reference-manifest.js +1 -1
  107. package/_standalone/.next/server/app/api/mcp/uninstall/route_client-reference-manifest.js +1 -1
  108. package/_standalone/.next/server/app/api/monitoring/route.js.nft.json +1 -1
  109. package/_standalone/.next/server/app/api/monitoring/route_client-reference-manifest.js +1 -1
  110. package/_standalone/.next/server/app/api/recent-files/route.js.nft.json +1 -1
  111. package/_standalone/.next/server/app/api/recent-files/route_client-reference-manifest.js +1 -1
  112. package/_standalone/.next/server/app/api/restart/route_client-reference-manifest.js +1 -1
  113. package/_standalone/.next/server/app/api/search/route.js.nft.json +1 -1
  114. package/_standalone/.next/server/app/api/search/route_client-reference-manifest.js +1 -1
  115. package/_standalone/.next/server/app/api/settings/list-models/route_client-reference-manifest.js +1 -1
  116. package/_standalone/.next/server/app/api/settings/reset-token/route_client-reference-manifest.js +1 -1
  117. package/_standalone/.next/server/app/api/settings/route.js.nft.json +1 -1
  118. package/_standalone/.next/server/app/api/settings/route_client-reference-manifest.js +1 -1
  119. package/_standalone/.next/server/app/api/settings/test-key/route_client-reference-manifest.js +1 -1
  120. package/_standalone/.next/server/app/api/setup/check-path/route_client-reference-manifest.js +1 -1
  121. package/_standalone/.next/server/app/api/setup/check-port/route_client-reference-manifest.js +1 -1
  122. package/_standalone/.next/server/app/api/setup/generate-token/route_client-reference-manifest.js +1 -1
  123. package/_standalone/.next/server/app/api/setup/ls/route_client-reference-manifest.js +1 -1
  124. package/_standalone/.next/server/app/api/setup/route_client-reference-manifest.js +1 -1
  125. package/_standalone/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
  126. package/_standalone/.next/server/app/api/space-overview/route.js.nft.json +1 -1
  127. package/_standalone/.next/server/app/api/space-overview/route_client-reference-manifest.js +1 -1
  128. package/_standalone/.next/server/app/api/sync/route_client-reference-manifest.js +1 -1
  129. package/_standalone/.next/server/app/api/tree-version/route.js.nft.json +1 -1
  130. package/_standalone/.next/server/app/api/tree-version/route_client-reference-manifest.js +1 -1
  131. package/_standalone/.next/server/app/api/uninstall/route_client-reference-manifest.js +1 -1
  132. package/_standalone/.next/server/app/api/update/route_client-reference-manifest.js +1 -1
  133. package/_standalone/.next/server/app/api/update-check/route_client-reference-manifest.js +1 -1
  134. package/_standalone/.next/server/app/api/update-status/route_client-reference-manifest.js +1 -1
  135. package/_standalone/.next/server/app/api/workflows/route.js.nft.json +1 -1
  136. package/_standalone/.next/server/app/api/workflows/route_client-reference-manifest.js +1 -1
  137. package/_standalone/.next/server/app/changelog/page.js +1 -1
  138. package/_standalone/.next/server/app/changelog/page.js.nft.json +1 -1
  139. package/_standalone/.next/server/app/changelog/page_client-reference-manifest.js +1 -1
  140. package/_standalone/.next/server/app/changes/page.js +1 -1
  141. package/_standalone/.next/server/app/changes/page.js.nft.json +1 -1
  142. package/_standalone/.next/server/app/changes/page_client-reference-manifest.js +1 -1
  143. package/_standalone/.next/server/app/echo/[segment]/page.js +1 -1
  144. package/_standalone/.next/server/app/echo/[segment]/page.js.nft.json +1 -1
  145. package/_standalone/.next/server/app/echo/[segment]/page_client-reference-manifest.js +1 -1
  146. package/_standalone/.next/server/app/echo/page.js +1 -1
  147. package/_standalone/.next/server/app/echo/page.js.nft.json +1 -1
  148. package/_standalone/.next/server/app/echo/page_client-reference-manifest.js +1 -1
  149. package/_standalone/.next/server/app/explore/page.js +1 -1
  150. package/_standalone/.next/server/app/explore/page.js.nft.json +1 -1
  151. package/_standalone/.next/server/app/explore/page_client-reference-manifest.js +1 -1
  152. package/_standalone/.next/server/app/help/page.js +1 -1
  153. package/_standalone/.next/server/app/help/page.js.nft.json +1 -1
  154. package/_standalone/.next/server/app/help/page_client-reference-manifest.js +1 -1
  155. package/_standalone/.next/server/app/inbox/history/page.js +1 -1
  156. package/_standalone/.next/server/app/inbox/history/page.js.nft.json +1 -1
  157. package/_standalone/.next/server/app/inbox/history/page_client-reference-manifest.js +1 -1
  158. package/_standalone/.next/server/app/login/page.js +1 -1
  159. package/_standalone/.next/server/app/login/page.js.nft.json +1 -1
  160. package/_standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
  161. package/_standalone/.next/server/app/page.js +1 -1
  162. package/_standalone/.next/server/app/page.js.nft.json +1 -1
  163. package/_standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  164. package/_standalone/.next/server/app/setup/page.js +2 -2
  165. package/_standalone/.next/server/app/setup/page.js.nft.json +1 -1
  166. package/_standalone/.next/server/app/setup/page_client-reference-manifest.js +1 -1
  167. package/_standalone/.next/server/app/trash/page.js +3 -3
  168. package/_standalone/.next/server/app/trash/page.js.nft.json +1 -1
  169. package/_standalone/.next/server/app/trash/page_client-reference-manifest.js +1 -1
  170. package/_standalone/.next/server/app/view/[...path]/page.js +3 -3
  171. package/_standalone/.next/server/app/view/[...path]/page.js.nft.json +1 -1
  172. package/_standalone/.next/server/app/view/[...path]/page_client-reference-manifest.js +1 -1
  173. package/_standalone/.next/server/app-paths-manifest.json +30 -30
  174. package/_standalone/.next/server/chunks/1076.js +1 -1
  175. package/_standalone/.next/server/chunks/{2449.js → 2424.js} +2 -2
  176. package/_standalone/.next/server/chunks/2792.js +1 -0
  177. package/_standalone/.next/server/chunks/2885.js +7 -0
  178. package/_standalone/.next/server/chunks/3800.js +1 -1
  179. package/_standalone/.next/server/chunks/5299.js +1 -1
  180. package/_standalone/.next/server/chunks/5464.js +1 -1
  181. package/_standalone/.next/server/chunks/6022.js +28 -28
  182. package/_standalone/.next/server/chunks/6539.js +1 -1
  183. package/_standalone/.next/server/chunks/8388.js +2 -2
  184. package/_standalone/.next/server/middleware-build-manifest.js +1 -1
  185. package/_standalone/.next/server/middleware-react-loadable-manifest.js +1 -1
  186. package/_standalone/.next/server/pages/500.html +2 -2
  187. package/_standalone/.next/server/server-reference-manifest.js +1 -1
  188. package/_standalone/.next/server/server-reference-manifest.json +1 -1
  189. package/_standalone/.next/static/chunks/{5331.c89084fd7f67887d.js → 4342.ccc18d7a45f204a4.js} +5 -5
  190. package/_standalone/.next/static/chunks/{4094.09364c01df411380.js → 4496.f77a677ac2034e48.js} +1 -1
  191. package/_standalone/.next/static/chunks/{5358-15618fc9b20018ee.js → 5358-15ceeb8c1cd9889d.js} +6 -6
  192. package/_standalone/.next/static/chunks/{6902-edc5c487c696bd0b.js → 6902-53a31f849968ddf8.js} +1 -1
  193. package/_standalone/.next/static/chunks/9207-456dc6941d557f33.js +1 -0
  194. package/_standalone/.next/static/chunks/app/{layout-fcbde5bee626d21a.js → layout-09f08f52e3cbfc47.js} +66 -66
  195. package/_standalone/.next/static/chunks/app/setup/{page-e40f3c5704c3c857.js → page-64d7fa097ef3f367.js} +1 -1
  196. package/_standalone/.next/static/chunks/app/trash/page-8e0ea3ba71702757.js +1 -0
  197. package/_standalone/.next/static/chunks/app/view/[...path]/page-04f43178679a8bfb.js +12 -0
  198. package/_standalone/.next/static/chunks/{webpack-dc486b68118d1328.js → webpack-ec9c6076012b75f3.js} +1 -1
  199. package/_standalone/.next/trace +72 -72
  200. package/_standalone/__tests__/agent/provider-presets.test.ts +32 -0
  201. package/_standalone/__tests__/api/im-config-feishu-conversation.test.ts +39 -0
  202. package/_standalone/__tests__/api/im-webhook-feishu.test.ts +21 -12
  203. package/_standalone/__tests__/api/pi-subagents.test.ts +81 -0
  204. package/_standalone/__tests__/ask/file-chip-variants.test.tsx +18 -0
  205. package/_standalone/__tests__/ask/message-list-agent-attribution.test.tsx +2 -0
  206. package/_standalone/__tests__/im/feishu-dispatcher.test.ts +151 -0
  207. package/_standalone/__tests__/im/feishu-webhook.test.ts +85 -57
  208. package/_standalone/__tests__/im/feishu-ws-client.test.ts +91 -0
  209. package/_standalone/__tests__/settings/custom-provider-form.test.ts +30 -0
  210. package/_standalone/components/ask/FileChip.tsx +1 -1
  211. package/_standalone/components/ask/MessageList.tsx +2 -2
  212. package/_standalone/components/settings/CustomProviderFields.tsx +1 -1
  213. package/_standalone/components/settings/CustomProvidersCard.tsx +3 -0
  214. package/_standalone/components/settings/useCustomProviderForm.ts +78 -24
  215. package/_standalone/components/shared/ProviderSelect.tsx +6 -5
  216. package/_standalone/next.config.ts +28 -4
  217. package/_standalone/package-lock.json +20 -2
  218. package/_standalone/package.json +3 -1
  219. package/_standalone/scripts/feishu-long-connection.ts +32 -0
  220. package/_standalone/server.js +1 -1
  221. package/_standalone/tsconfig.tsbuildinfo +1 -1
  222. package/app/__tests__/agent/provider-presets.test.ts +32 -0
  223. package/app/__tests__/api/im-config-feishu-conversation.test.ts +39 -0
  224. package/app/__tests__/api/im-webhook-feishu.test.ts +21 -12
  225. package/app/__tests__/api/pi-subagents.test.ts +81 -0
  226. package/app/__tests__/ask/file-chip-variants.test.tsx +18 -0
  227. package/app/__tests__/ask/message-list-agent-attribution.test.tsx +2 -0
  228. package/app/__tests__/im/feishu-dispatcher.test.ts +151 -0
  229. package/app/__tests__/im/feishu-webhook.test.ts +85 -57
  230. package/app/__tests__/im/feishu-ws-client.test.ts +91 -0
  231. package/app/__tests__/settings/custom-provider-form.test.ts +30 -0
  232. package/app/app/api/ask/route.ts +2 -0
  233. package/app/app/api/im/config/route.ts +2 -0
  234. package/app/app/api/im/webhook/feishu/route.ts +4 -2
  235. package/app/components/ask/FileChip.tsx +1 -1
  236. package/app/components/ask/MessageList.tsx +2 -2
  237. package/app/components/settings/CustomProviderFields.tsx +1 -1
  238. package/app/components/settings/CustomProvidersCard.tsx +3 -0
  239. package/app/components/settings/useCustomProviderForm.ts +78 -24
  240. package/app/components/shared/ProviderSelect.tsx +6 -5
  241. package/app/lib/agent/providers.ts +44 -6
  242. package/app/lib/im/feishu-dispatcher.ts +111 -0
  243. package/app/lib/im/feishu-ws-client.ts +72 -0
  244. package/app/lib/im/types.ts +14 -0
  245. package/app/lib/im/webhook/feishu.ts +44 -55
  246. package/app/next.config.ts +28 -4
  247. package/app/package.json +3 -1
  248. package/app/scripts/feishu-long-connection.ts +32 -0
  249. package/bin/cli.js +3 -1
  250. package/bin/commands/feishu-ws.js +39 -0
  251. package/package.json +1 -1
  252. package/scripts/build-runtime-archive.sh +36 -2
  253. package/_standalone/.next/static/chunks/9207-3b19c55a3c974a09.js +0 -1
  254. package/_standalone/.next/static/chunks/app/trash/page-e623ff0ab35de002.js +0 -1
  255. package/_standalone/.next/static/chunks/app/view/[...path]/page-49c4eff6ffdb5168.js +0 -12
  256. /package/_standalone/.next/static/{Dn8EHqUedSzanCfrM8WWS → dZDCx13MSM8QVQk2QNRs8}/_buildManifest.js +0 -0
  257. /package/_standalone/.next/static/{Dn8EHqUedSzanCfrM8WWS → dZDCx13MSM8QVQk2QNRs8}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- "use strict";exports.id=5299,exports.ids=[5299],exports.modules={15299:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{EF:()=>t,Et:()=>q,GW:()=>l,Ht:()=>s,J1:()=>m,L6:()=>k,Vu:()=>r,bK:()=>n,iY:()=>p,jw:()=>i,tM:()=>j,zl:()=>o});var e=c(60492),f=c(24608),g=a([e]);e=(g.then?(await g)():g)[0];let C="";function h(){if(!C)try{C=c(39006).rE??"0.0.0"}catch{C="0.0.0"}return C}let D=new Map,E=new Map;async function i(a,b){let c=await (0,f.l3)(a);if(!c)throw Error(`ACP agent not found in registry: ${a}`);return j(c,b)}async function j(a,b){let c,d,f,g,i;var j=a.id;if(D.size>=10)throw Error("Maximum concurrent sessions (10) reached. Close existing sessions first.");if([...D.values()].filter(a=>a.agentId===j).length>=3)throw Error(`Maximum concurrent sessions for agent "${j}" (3) reached.`);let k=b?.cwd??process.cwd(),l=(0,e.ZQ)(a,b);try{let a=await l.connection.initialize({protocolVersion:1,clientCapabilities:{fs:{readTextFile:!0,writeTextFile:!0},terminal:!0},clientInfo:{name:"mindos",version:h()}});c=y(a.agentCapabilities),d=function(a){if(Array.isArray(a)&&0!==a.length)return a.filter(a=>!!a&&"object"==typeof a).map(a=>({id:String(a.id??""),name:String(a.name??""),description:"string"==typeof a.description?a.description:void 0})).filter(a=>a.id&&a.name)}(a.authMethods)}catch(a){throw(0,e.Ue)(l.process),Error(`initialize failed: ${a.message}`)}if(d&&d.length>0)try{await l.connection.authenticate({methodId:d[0].id})}catch{}try{let a=await l.connection.newSession({cwd:k,mcpServers:[]});"string"==typeof a.sessionId&&(i=a.sessionId),f=z(a.modes),g=A(a.configOptions)}catch(c){let b=c.message??"";if(/auth/i.test(b))throw(0,e.Ue)(l.process),Error(`${a.id}: ${b}`);console.warn(`ACP session/new warning for ${a.id}: ${b}`)}B();let m=`ses-${a.id}-${Date.now()}`,n={id:m,agentId:a.id,agentSessionId:i,state:"idle",cwd:b?.cwd,createdAt:new Date().toISOString(),lastActivityAt:new Date().toISOString(),agentCapabilities:c,modes:f,configOptions:g,authMethods:d};return D.set(m,n),E.set(m,l),n}async function k(a,b,c){let d,g,i,j=await (0,f.l3)(a);if(!j)throw Error(`ACP agent not found in registry: ${a}`);let k=c?.cwd??process.cwd(),l=(0,e.ZQ)(j,c);try{let a=await l.connection.initialize({protocolVersion:1,clientCapabilities:{fs:{readTextFile:!0,writeTextFile:!0},terminal:!0},clientInfo:{name:"mindos",version:h()}});d=y(a.agentCapabilities)}catch(a){throw(0,e.Ue)(l.process),Error(`initialize failed: ${a.message}`)}if(!d?.loadSession)throw(0,e.Ue)(l.process),Error(`Agent ${a} does not support session/load`);try{let a=await l.connection.loadSession({sessionId:b,cwd:k,mcpServers:[]});g=z(a.modes),i=A(a.configOptions)}catch(a){throw(0,e.Ue)(l.process),Error(`session/load failed: ${a.message}`)}let m={id:b,agentId:j.id,agentSessionId:b,state:"idle",cwd:c?.cwd,createdAt:new Date().toISOString(),lastActivityAt:new Date().toISOString(),agentCapabilities:d,modes:g,configOptions:i};return D.set(b,m),E.set(b,l),m}async function l(a,b){let{session:c,conn:d}=u(a);if(!c.agentCapabilities?.sessionCapabilities?.list)throw Error("Agent does not support session/list");let e=await d.connection.listSessions({...b?.cursor?{cursor:b.cursor}:{},...b?.cwd?{cwd:b.cwd}:{}});return{sessions:(e.sessions??[]).map(a=>({sessionId:a.sessionId??"",title:a.title??void 0,cwd:a.cwd??void 0,updatedAt:a.updatedAt??void 0})),nextCursor:e.nextCursor??void 0}}async function m(a,b){let{session:c,conn:d}=u(a);if("active"===c.state)throw Error(`Session ${a} is busy processing another prompt`);v(c,"active");let e=c.agentSessionId??a,f="";d.callbacks.onSessionUpdate=b=>{let c=x(a,b);("agent_message_chunk"===c.type||"text"===c.type)&&c.text&&(f+=c.text)};try{let g=await w(d.connection.prompt({sessionId:e,prompt:[{type:"text",text:b}]}),3e5,"Prompt timed out after 300s");return v(c,"idle"),{sessionId:a,text:f||"",done:!0,stopReason:g.stopReason}}catch(a){throw v(c,"error"),a}finally{d.callbacks.onSessionUpdate=void 0}}async function n(a,b,c){let{session:d,conn:e}=u(a);if("active"===d.state)throw Error(`Session ${a} is busy processing another prompt`);v(d,"active");let f=d.agentSessionId??a,g="";e.callbacks.onSessionUpdate=b=>{let e=x(a,b);c(e),("agent_message_chunk"===e.type||"text"===e.type)&&e.text&&(g+=e.text),"config_option_update"===e.type&&e.configOptions&&(d.configOptions=e.configOptions)};try{let h=await w(e.connection.prompt({sessionId:f,prompt:[{type:"text",text:b}]}),3e5,"Prompt timed out after 300s");return c({sessionId:a,type:"done"}),v(d,"idle"),{sessionId:a,text:g,done:!0,stopReason:h.stopReason}}catch(a){throw v(d,"error"),a}finally{e.callbacks.onSessionUpdate=void 0}}async function o(a){let{session:b,conn:c}=u(a);if("active"!==b.state)return;let d=b.agentSessionId??a;try{await c.connection.cancel({sessionId:d})}catch{}v(b,"idle")}async function p(a,b){let{session:c,conn:d}=u(a),e=c.agentSessionId??a;await d.connection.setSessionMode({sessionId:e,modeId:b}),c.lastActivityAt=new Date().toISOString()}async function q(a,b,c){let{session:d,conn:e}=u(a),f=d.agentSessionId??a,g=await e.connection.setSessionConfigOption({sessionId:f,configId:b,value:c}),h=A(g.configOptions);return h&&(d.configOptions=h),d.lastActivityAt=new Date().toISOString(),d.configOptions??[]}async function r(a){let b=D.get(a),c=E.get(a);if(c?.process.alive){let d=b?.agentSessionId??a;try{await c.connection.unstable_closeSession({sessionId:d})}catch{}(0,e.Ue)(c.process)}D.delete(a),E.delete(a)}function s(a){return D.get(a)}function t(){return B(),[...D.values()]}function u(a){let b=D.get(a);if(!b)throw Error(`Session not found: ${a}`);let c=E.get(a);if(!c?.process.alive)throw v(b,"error"),Error(`Session process is dead: ${a}`);return{session:b,conn:c}}function v(a,b){a.state=b,a.lastActivityAt=new Date().toISOString()}function w(a,b,c){return new Promise((d,e)=>{let f=setTimeout(()=>e(Error(c)),b);a.then(a=>{clearTimeout(f),d(a)},a=>{clearTimeout(f),e(a)})})}function x(a,b){let c=b.update,d=c.sessionUpdate,e={sessionId:a,type:d};switch(d){case"agent_message_chunk":case"user_message_chunk":case"agent_thought_chunk":{let a=c.content;a?.type==="text"&&"string"==typeof a.text?e.text=a.text:a?.type==="thinking"&&"string"==typeof a.text&&(e.text=a.text);break}case"tool_call":case"tool_call_update":e.toolCall={toolCallId:String(c.toolCallId??""),title:"string"==typeof c.title?c.title:void 0,status:c.status??"pending",kind:c.kind,rawInput:"string"==typeof c.rawInput?c.rawInput:void 0,rawOutput:"string"==typeof c.rawOutput?c.rawOutput:void 0};break;case"plan":Array.isArray(c.entries)&&(e.plan={entries:c.entries});break;case"available_commands_update":e.availableCommands=Array.isArray(c.availableCommands)?c.availableCommands:void 0;break;case"current_mode_update":e.currentModeId="string"==typeof c.currentModeId?c.currentModeId:void 0;break;case"config_option_update":e.configOptions=A(c.configOptions);break;case"session_info_update":e.sessionInfo={title:"string"==typeof c.title?c.title:void 0,updatedAt:"string"==typeof c.updatedAt?c.updatedAt:void 0}}return e}function y(a){if(a&&"object"==typeof a)return{loadSession:!0===a.loadSession,mcpCapabilities:"object"==typeof a.mcpCapabilities?a.mcpCapabilities:void 0,promptCapabilities:"object"==typeof a.promptCapabilities?a.promptCapabilities:void 0,sessionCapabilities:"object"==typeof a.sessionCapabilities?a.sessionCapabilities:void 0}}function z(a){return a&&"object"==typeof a&&!Array.isArray(a)&&Array.isArray(a.availableModes)?z(a.availableModes):Array.isArray(a)&&0!==a.length?a.filter(a=>!!a&&"object"==typeof a).map(a=>({id:String(a.id??""),name:String(a.name??""),description:"string"==typeof a.description?a.description:void 0})).filter(a=>a.id&&a.name):void 0}function A(a){if(Array.isArray(a)&&0!==a.length)return a.filter(a=>!!a&&"object"==typeof a).map(a=>({type:"select",configId:String(a.configId??a.id??""),category:String(a.category??"other"),label:"string"==typeof a.label?a.label:void 0,currentValue:String(a.currentValue??""),options:Array.isArray(a.options)?a.options.map(a=>({id:String(a.id??""),label:String(a.label??"")})):[]})).filter(a=>a.configId)}function B(){let a=Date.now();for(let[b,c]of D){let d=new Date(c.lastActivityAt).getTime();a-d>18e5&&"active"!==c.state&&r(b).catch(()=>{})}}d()}catch(a){d(a)}})},24608:(a,b,c)=>{c.d(b,{Ew:()=>g,Rf:()=>i,l3:()=>j});var d=c(61913);let e=null,f=null;async function g(){if(f&&Date.now()-new Date(f.fetchedAt).getTime()<6048e5)return f;let a=(e||(e=Object.entries(d.z8).map(([a,b])=>({id:a,name:b.displayName??a,description:b.description??"",transport:"npx"===b.cmd?"npx":"stdio",command:b.cmd,args:b.args,packageName:b.installCmd?.match(/npm install -g (.+)/)?.[1]}))),e);try{var b;let c=await fetch("https://cdn.agentclientprotocol.com/registry/v1/latest/registry.json",{headers:{Accept:"application/json"},signal:AbortSignal.timeout(3e3)});if(!c.ok)return f??h(a,"builtin");let e=await c.json(),g=(b=e)&&"object"==typeof b?(Array.isArray(b.agents)?b.agents:Array.isArray(b)?b:Object.entries(b).filter(([a])=>"version"!==a&&"$schema"!==a).map(([a,b])=>({...b,id:a}))).map(k).filter(a=>null!==a):[],i=function(a,b){let c=new Map;for(let b of a)c.set(b.id,b);for(let a of b){let b=c.get(a.id),e=(0,d.Zg)(a.id),f=e!==a.id?c.get(e):void 0;b?c.set(a.id,{...b,tags:a.tags??b.tags,homepage:a.homepage??b.homepage,version:a.version??b.version}):f||c.set(a.id,a)}return Array.from(c.values())}(a,g);return f={version:e.version??"1",agents:i,fetchedAt:new Date().toISOString()}}catch{return f??h(a,"builtin")}}function h(a,b){return{version:b,agents:a,fetchedAt:new Date().toISOString()}}async function i(){return(await g()).agents}async function j(a){let b=await i(),c=(0,d.Zg)(a);return b.find(b=>b.id===a||b.id===c)??null}function k(a){if(!a||"object"!=typeof a)return null;let b=String(a.id??a.name??""),c=String(a.name??a.id??"");if(!b&&!c)return null;let{transport:e,command:f,packageName:g,args:h}=function(a){let b,c=a.distribution;if(c&&"object"==typeof c){if(c.npx&&"object"==typeof c.npx){let a=c.npx,b=l(String(a.package??""));return{transport:"npx",command:b,packageName:b,args:Array.isArray(a.args)?a.args.map(String):void 0}}if(c.uvx&&"object"==typeof c.uvx){let a=c.uvx,b=l(String(a.package??""));return{transport:"uvx",command:b,packageName:b,args:Array.isArray(a.args)?a.args.map(String):void 0}}if(c.binary&&"object"==typeof c.binary)return{transport:"binary",command:""}}return{transport:"npx"===(b=String(a.transport??"stdio").toLowerCase())||"uvx"===b||"binary"===b?b:"stdio",command:String(a.command??a.cmd??"")}}(a),i=b||c,j=(0,d.xX)(i),k=(0,d.ug)(i);return{id:i,name:j??c??b,description:k??String(a.description??""),version:a.version?String(a.version):void 0,transport:e,command:f,packageName:g,args:h??(Array.isArray(a.args)?a.args.map(String):void 0),env:a.env&&"object"==typeof a.env?a.env:void 0,tags:Array.isArray(a.tags)?a.tags.map(String):void 0,homepage:a.homepage??a.website?String(a.homepage??a.website):void 0}}function l(a){if(!a)return"";let b=a.lastIndexOf("@");return b>0?a.slice(0,b):a}},39006:a=>{a.exports={rE:"0.6.73"}},60492:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Ue:()=>r,ZQ:()=>q});var e=c(79646),f=c(57075),g=c(33873),h=c.n(g),i=c(21820),j=c.n(i),k=c(29021),l=c.n(k),m=c(77621),n=c(61913),o=c(76223),p=a([o]);o=(p.then?(await p)():p)[0];let u=new Map;function q(a,b){var c,d,g;let i=function(a,b){let c=(0,o.readSettings)(),d=(0,n.vp)(a.id,c.acpAgents),f=(0,n.bp)(a.id,a,d),{cmd:g,args:h}={cmd:f.cmd,args:f.args},i={...process.env,...a.env??{},...f.env??{},...b?.env??{}},j=(0,e.spawn)(g,h,{stdio:["pipe","pipe","pipe"],env:i,shell:!1,detached:!0,...b?.cwd?{cwd:b.cwd}:{}}),k=`acp-${a.id}-${Date.now()}`,l={id:k,agentId:a.id,proc:j,alive:!0};u.set(k,l);let m="";return j.stderr?.on("data",a=>{(m+=a.toString()).length>4096&&(m=m.slice(-4096))}),j.on("close",b=>{l.alive=!1,l.exitCode=b,b&&0!==b&&(l.spawnError=m.trim().slice(0,500)||`Process exited with code ${b}`,console.error(`[ACP] ${a.id} exited with code ${b}: ${l.spawnError}`))}),j.on("error",b=>{l.alive=!1,l.spawnError=b.message,console.error(`[ACP] ${a.id} spawn error:`,b.message)}),l}(a,b),j=b?.cwd??process.cwd(),k={},p=(c=i,d=j,g=k,{async requestPermission(a){console.log(`[ACP] Auto-approve permission: agent=${c.agentId} ${JSON.stringify(a.toolCall??a).slice(0,200)}`);let b=a.options??[],d=b.find(a=>"allow_once"===a.kind)??b.find(a=>"allow_always"===a.kind)??b[0];return{outcome:{outcome:"selected",optionId:d?.optionId??"allow_once"}}},async sessionUpdate(a){g.onSessionUpdate?.(a)},async readTextFile(a){var b;let c;if(!a.path)throw m.GI.invalidParams(void 0,"path is required");if(b=a.path,c=h().resolve(b),v.some(a=>a.test(c)))throw new m.GI(-32001,`Access denied: ${a.path} is a sensitive file`);try{let b=l().readFileSync(a.path,"utf-8");if(null!=a.line||null!=a.limit){let c=b.split("\n"),d=(a.line??1)-1,e=null!=a.limit?d+a.limit:c.length;b=c.slice(Math.max(0,d),e).join("\n")}return{content:b}}catch(b){if(b?.code==="ENOENT")throw m.GI.resourceNotFound(a.path);if(b?.code==="EACCES"||b?.code==="EPERM")throw new m.GI(-32001,`Permission denied: ${a.path}`);throw new m.GI(-32603,`Failed to read ${a.path}: ${b?.message??b}`)}},async writeTextFile(a){if(!a.path)throw m.GI.invalidParams(void 0,"path is required");if(!s(a.path,d))throw new m.GI(-32001,`Write denied: ${a.path} is outside the working directory`);try{let b=h().dirname(a.path);return l().existsSync(b)||l().mkdirSync(b,{recursive:!0}),l().writeFileSync(a.path,a.content,"utf-8"),{}}catch(b){if(b?.code==="EACCES"||b?.code==="EPERM")throw new m.GI(-32001,`Write permission denied: ${a.path}`);if(b?.code==="ENOSPC")throw new m.GI(-32603,`Disk full: cannot write ${a.path}`);throw m.GI.internalError(void 0,b?.message??String(b))}},async createTerminal(a){if(!a.command)throw m.GI.invalidParams(void 0,"command is required");let b=a.cwd??void 0,f=b&&s(b,d)?b:d,g={};if(a.env)for(let b of a.env)g[b.name]=b.value;console.log(`[ACP] terminal/create: agent=${c.agentId} cmd="${a.command} ${(a.args??[]).join(" ")}" cwd=${f}`);let h=`term-${Date.now()}-${Math.random().toString(36).slice(2,6)}`,i=a.outputByteLimit??1e6;try{var j;let b,d=(0,e.spawn)(a.command,a.args??[],{cwd:f,env:{...process.env,...g},shell:!0,stdio:["pipe","pipe","pipe"]}),k="",l=!1,m=a=>{(k+=a.toString()).length>i&&(k=k.slice(-i),l=!0)};return d.stdout?.on("data",m),d.stderr?.on("data",m),(j=c.id,(b=w.get(j))||(b=new Map,w.set(j,b)),b).set(h,{child:d,output:()=>k,truncated:()=>l}),{terminalId:h}}catch(a){throw m.GI.internalError(void 0,a.message)}},async terminalOutput(a){let b=t(c.id,a.terminalId);if(!b)throw new m.GI(-32002,`Terminal not found: ${a.terminalId}`);let d=null!==b.child.exitCode?{exitCode:b.child.exitCode,signal:b.child.signalCode}:void 0;return{output:b.output(),truncated:b.truncated(),exitStatus:d}},async killTerminal(a){let b=t(c.id,a.terminalId);if(!b)throw new m.GI(-32002,`Terminal not found: ${a.terminalId}`);return b.child.kill("SIGTERM"),{}},async waitForTerminalExit(a){let b=t(c.id,a.terminalId);if(!b)throw new m.GI(-32002,`Terminal not found: ${a.terminalId}`);return null!==b.child.exitCode?{exitCode:b.child.exitCode,signal:b.child.signalCode}:new Promise(a=>{b.child.on("exit",(b,c)=>{a({exitCode:b,signal:c})}),null!==b.child.exitCode&&a({exitCode:b.child.exitCode,signal:b.child.signalCode})})},async releaseTerminal(a){var b,d;let e=t(c.id,a.terminalId);if(!e)throw new m.GI(-32002,`Terminal not found: ${a.terminalId}`);return null===e.child.exitCode&&e.child.kill("SIGTERM"),b=c.id,d=a.terminalId,w.get(b)?.delete(d),{}},extMethod:async(a,b)=>(console.log(`[ACP] Auto-approve ext method: agent=${c.agentId} method=${a}`),{}),async extNotification(a,b){}}),q=f.Writable.toWeb(i.proc.stdin),r=f.Readable.toWeb(i.proc.stdout),x=(0,m.Z2)(q,r),y=new m.Dz(()=>p,x);return y.signal.addEventListener("abort",()=>{i.alive&&(i.alive=!1)}),{connection:y,callbacks:k,process:i}}function r(a){let b=a.proc.pid;if(b){try{process.kill(-b,"SIGTERM")}catch{}setTimeout(()=>{try{process.kill(-b,0),process.kill(-b,"SIGKILL")}catch{}},3e3)}a.alive=!1,u.delete(a.id);let c=w.get(a.id);if(c){for(let a of c.values())null===a.child.exitCode&&a.child.kill("SIGTERM");w.delete(a.id)}}let v=[/[/\\]\.ssh[/\\](id_|config$|authorized_keys|known_hosts)/i,/[/\\]\.env(\.[^/\\]*)?$/i,/[/\\]credentials\.json$/i,/[/\\]\.aws[/\\]credentials$/i,/[/\\]\.gnupg[/\\]/i];function s(a,b){let c=h().resolve(a);return[b,j().tmpdir()].some(a=>{let b=h().resolve(a);return c===b||c.startsWith(b+h().sep)})}let w=new Map;function t(a,b){return w.get(a)?.get(b)}d()}catch(a){d(a)}})}};
1
+ "use strict";exports.id=5299,exports.ids=[5299],exports.modules={15299:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{EF:()=>t,Et:()=>q,GW:()=>l,Ht:()=>s,J1:()=>m,L6:()=>k,Vu:()=>r,bK:()=>n,iY:()=>p,jw:()=>i,tM:()=>j,zl:()=>o});var e=c(60492),f=c(24608),g=a([e]);e=(g.then?(await g)():g)[0];let C="";function h(){if(!C)try{C=c(39006).rE??"0.0.0"}catch{C="0.0.0"}return C}let D=new Map,E=new Map;async function i(a,b){let c=await (0,f.l3)(a);if(!c)throw Error(`ACP agent not found in registry: ${a}`);return j(c,b)}async function j(a,b){let c,d,f,g,i;var j=a.id;if(D.size>=10)throw Error("Maximum concurrent sessions (10) reached. Close existing sessions first.");if([...D.values()].filter(a=>a.agentId===j).length>=3)throw Error(`Maximum concurrent sessions for agent "${j}" (3) reached.`);let k=b?.cwd??process.cwd(),l=(0,e.ZQ)(a,b);try{let a=await l.connection.initialize({protocolVersion:1,clientCapabilities:{fs:{readTextFile:!0,writeTextFile:!0},terminal:!0},clientInfo:{name:"mindos",version:h()}});c=y(a.agentCapabilities),d=function(a){if(Array.isArray(a)&&0!==a.length)return a.filter(a=>!!a&&"object"==typeof a).map(a=>({id:String(a.id??""),name:String(a.name??""),description:"string"==typeof a.description?a.description:void 0})).filter(a=>a.id&&a.name)}(a.authMethods)}catch(a){throw(0,e.Ue)(l.process),Error(`initialize failed: ${a.message}`)}if(d&&d.length>0)try{await l.connection.authenticate({methodId:d[0].id})}catch{}try{let a=await l.connection.newSession({cwd:k,mcpServers:[]});"string"==typeof a.sessionId&&(i=a.sessionId),f=z(a.modes),g=A(a.configOptions)}catch(c){let b=c.message??"";if(/auth/i.test(b))throw(0,e.Ue)(l.process),Error(`${a.id}: ${b}`);console.warn(`ACP session/new warning for ${a.id}: ${b}`)}B();let m=`ses-${a.id}-${Date.now()}`,n={id:m,agentId:a.id,agentSessionId:i,state:"idle",cwd:b?.cwd,createdAt:new Date().toISOString(),lastActivityAt:new Date().toISOString(),agentCapabilities:c,modes:f,configOptions:g,authMethods:d};return D.set(m,n),E.set(m,l),n}async function k(a,b,c){let d,g,i,j=await (0,f.l3)(a);if(!j)throw Error(`ACP agent not found in registry: ${a}`);let k=c?.cwd??process.cwd(),l=(0,e.ZQ)(j,c);try{let a=await l.connection.initialize({protocolVersion:1,clientCapabilities:{fs:{readTextFile:!0,writeTextFile:!0},terminal:!0},clientInfo:{name:"mindos",version:h()}});d=y(a.agentCapabilities)}catch(a){throw(0,e.Ue)(l.process),Error(`initialize failed: ${a.message}`)}if(!d?.loadSession)throw(0,e.Ue)(l.process),Error(`Agent ${a} does not support session/load`);try{let a=await l.connection.loadSession({sessionId:b,cwd:k,mcpServers:[]});g=z(a.modes),i=A(a.configOptions)}catch(a){throw(0,e.Ue)(l.process),Error(`session/load failed: ${a.message}`)}let m={id:b,agentId:j.id,agentSessionId:b,state:"idle",cwd:c?.cwd,createdAt:new Date().toISOString(),lastActivityAt:new Date().toISOString(),agentCapabilities:d,modes:g,configOptions:i};return D.set(b,m),E.set(b,l),m}async function l(a,b){let{session:c,conn:d}=u(a);if(!c.agentCapabilities?.sessionCapabilities?.list)throw Error("Agent does not support session/list");let e=await d.connection.listSessions({...b?.cursor?{cursor:b.cursor}:{},...b?.cwd?{cwd:b.cwd}:{}});return{sessions:(e.sessions??[]).map(a=>({sessionId:a.sessionId??"",title:a.title??void 0,cwd:a.cwd??void 0,updatedAt:a.updatedAt??void 0})),nextCursor:e.nextCursor??void 0}}async function m(a,b){let{session:c,conn:d}=u(a);if("active"===c.state)throw Error(`Session ${a} is busy processing another prompt`);v(c,"active");let e=c.agentSessionId??a,f="";d.callbacks.onSessionUpdate=b=>{let c=x(a,b);("agent_message_chunk"===c.type||"text"===c.type)&&c.text&&(f+=c.text)};try{let g=await w(d.connection.prompt({sessionId:e,prompt:[{type:"text",text:b}]}),3e5,"Prompt timed out after 300s");return v(c,"idle"),{sessionId:a,text:f||"",done:!0,stopReason:g.stopReason}}catch(a){throw v(c,"error"),a}finally{d.callbacks.onSessionUpdate=void 0}}async function n(a,b,c){let{session:d,conn:e}=u(a);if("active"===d.state)throw Error(`Session ${a} is busy processing another prompt`);v(d,"active");let f=d.agentSessionId??a,g="";e.callbacks.onSessionUpdate=b=>{let e=x(a,b);c(e),("agent_message_chunk"===e.type||"text"===e.type)&&e.text&&(g+=e.text),"config_option_update"===e.type&&e.configOptions&&(d.configOptions=e.configOptions)};try{let h=await w(e.connection.prompt({sessionId:f,prompt:[{type:"text",text:b}]}),3e5,"Prompt timed out after 300s");return c({sessionId:a,type:"done"}),v(d,"idle"),{sessionId:a,text:g,done:!0,stopReason:h.stopReason}}catch(a){throw v(d,"error"),a}finally{e.callbacks.onSessionUpdate=void 0}}async function o(a){let{session:b,conn:c}=u(a);if("active"!==b.state)return;let d=b.agentSessionId??a;try{await c.connection.cancel({sessionId:d})}catch{}v(b,"idle")}async function p(a,b){let{session:c,conn:d}=u(a),e=c.agentSessionId??a;await d.connection.setSessionMode({sessionId:e,modeId:b}),c.lastActivityAt=new Date().toISOString()}async function q(a,b,c){let{session:d,conn:e}=u(a),f=d.agentSessionId??a,g=await e.connection.setSessionConfigOption({sessionId:f,configId:b,value:c}),h=A(g.configOptions);return h&&(d.configOptions=h),d.lastActivityAt=new Date().toISOString(),d.configOptions??[]}async function r(a){let b=D.get(a),c=E.get(a);if(c?.process.alive){let d=b?.agentSessionId??a;try{await c.connection.unstable_closeSession({sessionId:d})}catch{}(0,e.Ue)(c.process)}D.delete(a),E.delete(a)}function s(a){return D.get(a)}function t(){return B(),[...D.values()]}function u(a){let b=D.get(a);if(!b)throw Error(`Session not found: ${a}`);let c=E.get(a);if(!c?.process.alive)throw v(b,"error"),Error(`Session process is dead: ${a}`);return{session:b,conn:c}}function v(a,b){a.state=b,a.lastActivityAt=new Date().toISOString()}function w(a,b,c){return new Promise((d,e)=>{let f=setTimeout(()=>e(Error(c)),b);a.then(a=>{clearTimeout(f),d(a)},a=>{clearTimeout(f),e(a)})})}function x(a,b){let c=b.update,d=c.sessionUpdate,e={sessionId:a,type:d};switch(d){case"agent_message_chunk":case"user_message_chunk":case"agent_thought_chunk":{let a=c.content;a?.type==="text"&&"string"==typeof a.text?e.text=a.text:a?.type==="thinking"&&"string"==typeof a.text&&(e.text=a.text);break}case"tool_call":case"tool_call_update":e.toolCall={toolCallId:String(c.toolCallId??""),title:"string"==typeof c.title?c.title:void 0,status:c.status??"pending",kind:c.kind,rawInput:"string"==typeof c.rawInput?c.rawInput:void 0,rawOutput:"string"==typeof c.rawOutput?c.rawOutput:void 0};break;case"plan":Array.isArray(c.entries)&&(e.plan={entries:c.entries});break;case"available_commands_update":e.availableCommands=Array.isArray(c.availableCommands)?c.availableCommands:void 0;break;case"current_mode_update":e.currentModeId="string"==typeof c.currentModeId?c.currentModeId:void 0;break;case"config_option_update":e.configOptions=A(c.configOptions);break;case"session_info_update":e.sessionInfo={title:"string"==typeof c.title?c.title:void 0,updatedAt:"string"==typeof c.updatedAt?c.updatedAt:void 0}}return e}function y(a){if(a&&"object"==typeof a)return{loadSession:!0===a.loadSession,mcpCapabilities:"object"==typeof a.mcpCapabilities?a.mcpCapabilities:void 0,promptCapabilities:"object"==typeof a.promptCapabilities?a.promptCapabilities:void 0,sessionCapabilities:"object"==typeof a.sessionCapabilities?a.sessionCapabilities:void 0}}function z(a){return a&&"object"==typeof a&&!Array.isArray(a)&&Array.isArray(a.availableModes)?z(a.availableModes):Array.isArray(a)&&0!==a.length?a.filter(a=>!!a&&"object"==typeof a).map(a=>({id:String(a.id??""),name:String(a.name??""),description:"string"==typeof a.description?a.description:void 0})).filter(a=>a.id&&a.name):void 0}function A(a){if(Array.isArray(a)&&0!==a.length)return a.filter(a=>!!a&&"object"==typeof a).map(a=>({type:"select",configId:String(a.configId??a.id??""),category:String(a.category??"other"),label:"string"==typeof a.label?a.label:void 0,currentValue:String(a.currentValue??""),options:Array.isArray(a.options)?a.options.map(a=>({id:String(a.id??""),label:String(a.label??"")})):[]})).filter(a=>a.configId)}function B(){let a=Date.now();for(let[b,c]of D){let d=new Date(c.lastActivityAt).getTime();a-d>18e5&&"active"!==c.state&&r(b).catch(()=>{})}}d()}catch(a){d(a)}})},24608:(a,b,c)=>{c.d(b,{Ew:()=>g,Rf:()=>i,l3:()=>j});var d=c(61913);let e=null,f=null;async function g(){if(f&&Date.now()-new Date(f.fetchedAt).getTime()<6048e5)return f;let a=(e||(e=Object.entries(d.z8).map(([a,b])=>({id:a,name:b.displayName??a,description:b.description??"",transport:"npx"===b.cmd?"npx":"stdio",command:b.cmd,args:b.args,packageName:b.installCmd?.match(/npm install -g (.+)/)?.[1]}))),e);try{var b;let c=await fetch("https://cdn.agentclientprotocol.com/registry/v1/latest/registry.json",{headers:{Accept:"application/json"},signal:AbortSignal.timeout(3e3)});if(!c.ok)return f??h(a,"builtin");let e=await c.json(),g=(b=e)&&"object"==typeof b?(Array.isArray(b.agents)?b.agents:Array.isArray(b)?b:Object.entries(b).filter(([a])=>"version"!==a&&"$schema"!==a).map(([a,b])=>({...b,id:a}))).map(k).filter(a=>null!==a):[],i=function(a,b){let c=new Map;for(let b of a)c.set(b.id,b);for(let a of b){let b=c.get(a.id),e=(0,d.Zg)(a.id),f=e!==a.id?c.get(e):void 0;b?c.set(a.id,{...b,tags:a.tags??b.tags,homepage:a.homepage??b.homepage,version:a.version??b.version}):f||c.set(a.id,a)}return Array.from(c.values())}(a,g);return f={version:e.version??"1",agents:i,fetchedAt:new Date().toISOString()}}catch{return f??h(a,"builtin")}}function h(a,b){return{version:b,agents:a,fetchedAt:new Date().toISOString()}}async function i(){return(await g()).agents}async function j(a){let b=await i(),c=(0,d.Zg)(a);return b.find(b=>b.id===a||b.id===c)??null}function k(a){if(!a||"object"!=typeof a)return null;let b=String(a.id??a.name??""),c=String(a.name??a.id??"");if(!b&&!c)return null;let{transport:e,command:f,packageName:g,args:h}=function(a){let b,c=a.distribution;if(c&&"object"==typeof c){if(c.npx&&"object"==typeof c.npx){let a=c.npx,b=l(String(a.package??""));return{transport:"npx",command:b,packageName:b,args:Array.isArray(a.args)?a.args.map(String):void 0}}if(c.uvx&&"object"==typeof c.uvx){let a=c.uvx,b=l(String(a.package??""));return{transport:"uvx",command:b,packageName:b,args:Array.isArray(a.args)?a.args.map(String):void 0}}if(c.binary&&"object"==typeof c.binary)return{transport:"binary",command:""}}return{transport:"npx"===(b=String(a.transport??"stdio").toLowerCase())||"uvx"===b||"binary"===b?b:"stdio",command:String(a.command??a.cmd??"")}}(a),i=b||c,j=(0,d.xX)(i),k=(0,d.ug)(i);return{id:i,name:j??c??b,description:k??String(a.description??""),version:a.version?String(a.version):void 0,transport:e,command:f,packageName:g,args:h??(Array.isArray(a.args)?a.args.map(String):void 0),env:a.env&&"object"==typeof a.env?a.env:void 0,tags:Array.isArray(a.tags)?a.tags.map(String):void 0,homepage:a.homepage??a.website?String(a.homepage??a.website):void 0}}function l(a){if(!a)return"";let b=a.lastIndexOf("@");return b>0?a.slice(0,b):a}},39006:a=>{a.exports={rE:"0.6.75"}},60492:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Ue:()=>r,ZQ:()=>q});var e=c(79646),f=c(57075),g=c(33873),h=c.n(g),i=c(21820),j=c.n(i),k=c(29021),l=c.n(k),m=c(77621),n=c(61913),o=c(76223),p=a([o]);o=(p.then?(await p)():p)[0];let u=new Map;function q(a,b){var c,d,g;let i=function(a,b){let c=(0,o.readSettings)(),d=(0,n.vp)(a.id,c.acpAgents),f=(0,n.bp)(a.id,a,d),{cmd:g,args:h}={cmd:f.cmd,args:f.args},i={...process.env,...a.env??{},...f.env??{},...b?.env??{}},j=(0,e.spawn)(g,h,{stdio:["pipe","pipe","pipe"],env:i,shell:!1,detached:!0,...b?.cwd?{cwd:b.cwd}:{}}),k=`acp-${a.id}-${Date.now()}`,l={id:k,agentId:a.id,proc:j,alive:!0};u.set(k,l);let m="";return j.stderr?.on("data",a=>{(m+=a.toString()).length>4096&&(m=m.slice(-4096))}),j.on("close",b=>{l.alive=!1,l.exitCode=b,b&&0!==b&&(l.spawnError=m.trim().slice(0,500)||`Process exited with code ${b}`,console.error(`[ACP] ${a.id} exited with code ${b}: ${l.spawnError}`))}),j.on("error",b=>{l.alive=!1,l.spawnError=b.message,console.error(`[ACP] ${a.id} spawn error:`,b.message)}),l}(a,b),j=b?.cwd??process.cwd(),k={},p=(c=i,d=j,g=k,{async requestPermission(a){console.log(`[ACP] Auto-approve permission: agent=${c.agentId} ${JSON.stringify(a.toolCall??a).slice(0,200)}`);let b=a.options??[],d=b.find(a=>"allow_once"===a.kind)??b.find(a=>"allow_always"===a.kind)??b[0];return{outcome:{outcome:"selected",optionId:d?.optionId??"allow_once"}}},async sessionUpdate(a){g.onSessionUpdate?.(a)},async readTextFile(a){var b;let c;if(!a.path)throw m.GI.invalidParams(void 0,"path is required");if(b=a.path,c=h().resolve(b),v.some(a=>a.test(c)))throw new m.GI(-32001,`Access denied: ${a.path} is a sensitive file`);try{let b=l().readFileSync(a.path,"utf-8");if(null!=a.line||null!=a.limit){let c=b.split("\n"),d=(a.line??1)-1,e=null!=a.limit?d+a.limit:c.length;b=c.slice(Math.max(0,d),e).join("\n")}return{content:b}}catch(b){if(b?.code==="ENOENT")throw m.GI.resourceNotFound(a.path);if(b?.code==="EACCES"||b?.code==="EPERM")throw new m.GI(-32001,`Permission denied: ${a.path}`);throw new m.GI(-32603,`Failed to read ${a.path}: ${b?.message??b}`)}},async writeTextFile(a){if(!a.path)throw m.GI.invalidParams(void 0,"path is required");if(!s(a.path,d))throw new m.GI(-32001,`Write denied: ${a.path} is outside the working directory`);try{let b=h().dirname(a.path);return l().existsSync(b)||l().mkdirSync(b,{recursive:!0}),l().writeFileSync(a.path,a.content,"utf-8"),{}}catch(b){if(b?.code==="EACCES"||b?.code==="EPERM")throw new m.GI(-32001,`Write permission denied: ${a.path}`);if(b?.code==="ENOSPC")throw new m.GI(-32603,`Disk full: cannot write ${a.path}`);throw m.GI.internalError(void 0,b?.message??String(b))}},async createTerminal(a){if(!a.command)throw m.GI.invalidParams(void 0,"command is required");let b=a.cwd??void 0,f=b&&s(b,d)?b:d,g={};if(a.env)for(let b of a.env)g[b.name]=b.value;console.log(`[ACP] terminal/create: agent=${c.agentId} cmd="${a.command} ${(a.args??[]).join(" ")}" cwd=${f}`);let h=`term-${Date.now()}-${Math.random().toString(36).slice(2,6)}`,i=a.outputByteLimit??1e6;try{var j;let b,d=(0,e.spawn)(a.command,a.args??[],{cwd:f,env:{...process.env,...g},shell:!0,stdio:["pipe","pipe","pipe"]}),k="",l=!1,m=a=>{(k+=a.toString()).length>i&&(k=k.slice(-i),l=!0)};return d.stdout?.on("data",m),d.stderr?.on("data",m),(j=c.id,(b=w.get(j))||(b=new Map,w.set(j,b)),b).set(h,{child:d,output:()=>k,truncated:()=>l}),{terminalId:h}}catch(a){throw m.GI.internalError(void 0,a.message)}},async terminalOutput(a){let b=t(c.id,a.terminalId);if(!b)throw new m.GI(-32002,`Terminal not found: ${a.terminalId}`);let d=null!==b.child.exitCode?{exitCode:b.child.exitCode,signal:b.child.signalCode}:void 0;return{output:b.output(),truncated:b.truncated(),exitStatus:d}},async killTerminal(a){let b=t(c.id,a.terminalId);if(!b)throw new m.GI(-32002,`Terminal not found: ${a.terminalId}`);return b.child.kill("SIGTERM"),{}},async waitForTerminalExit(a){let b=t(c.id,a.terminalId);if(!b)throw new m.GI(-32002,`Terminal not found: ${a.terminalId}`);return null!==b.child.exitCode?{exitCode:b.child.exitCode,signal:b.child.signalCode}:new Promise(a=>{b.child.on("exit",(b,c)=>{a({exitCode:b,signal:c})}),null!==b.child.exitCode&&a({exitCode:b.child.exitCode,signal:b.child.signalCode})})},async releaseTerminal(a){var b,d;let e=t(c.id,a.terminalId);if(!e)throw new m.GI(-32002,`Terminal not found: ${a.terminalId}`);return null===e.child.exitCode&&e.child.kill("SIGTERM"),b=c.id,d=a.terminalId,w.get(b)?.delete(d),{}},extMethod:async(a,b)=>(console.log(`[ACP] Auto-approve ext method: agent=${c.agentId} method=${a}`),{}),async extNotification(a,b){}}),q=f.Writable.toWeb(i.proc.stdin),r=f.Readable.toWeb(i.proc.stdout),x=(0,m.Z2)(q,r),y=new m.Dz(()=>p,x);return y.signal.addEventListener("abort",()=>{i.alive&&(i.alive=!1)}),{connection:y,callbacks:k,process:i}}function r(a){let b=a.proc.pid;if(b){try{process.kill(-b,"SIGTERM")}catch{}setTimeout(()=>{try{process.kill(-b,0),process.kill(-b,"SIGKILL")}catch{}},3e3)}a.alive=!1,u.delete(a.id);let c=w.get(a.id);if(c){for(let a of c.values())null===a.child.exitCode&&a.child.kill("SIGTERM");w.delete(a.id)}}let v=[/[/\\]\.ssh[/\\](id_|config$|authorized_keys|known_hosts)/i,/[/\\]\.env(\.[^/\\]*)?$/i,/[/\\]credentials\.json$/i,/[/\\]\.aws[/\\]credentials$/i,/[/\\]\.gnupg[/\\]/i];function s(a,b){let c=h().resolve(a);return[b,j().tmpdir()].some(a=>{let b=h().resolve(a);return c===b||c.startsWith(b+h().sep)})}let w=new Map;function t(a,b){return w.get(a)?.get(b)}d()}catch(a){d(a)}})}};