@geminilight/mindos 0.6.61 → 0.6.65

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 (313) hide show
  1. package/_standalone/.antigravity/mcp_config.json +14 -0
  2. package/_standalone/.mindos-build-version +1 -1
  3. package/_standalone/.next/BUILD_ID +1 -1
  4. package/_standalone/.next/app-path-routes-manifest.json +23 -23
  5. package/_standalone/.next/build-manifest.json +2 -2
  6. package/_standalone/.next/cache/.previewinfo +1 -1
  7. package/_standalone/.next/cache/.rscinfo +1 -1
  8. package/_standalone/.next/cache/config.json +3 -3
  9. package/_standalone/.next/prerender-manifest.json +3 -3
  10. package/_standalone/.next/server/app/.well-known/agent-card.json/route_client-reference-manifest.js +1 -1
  11. package/_standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  12. package/_standalone/.next/server/app/_global-error.html +2 -2
  13. package/_standalone/.next/server/app/_global-error.rsc +1 -1
  14. package/_standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  15. package/_standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  16. package/_standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  17. package/_standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  18. package/_standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  19. package/_standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  20. package/_standalone/.next/server/app/_not-found/page.js +1 -1
  21. package/_standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  22. package/_standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  23. package/_standalone/.next/server/app/agents/[agentKey]/page.js +1 -1
  24. package/_standalone/.next/server/app/agents/[agentKey]/page.js.nft.json +1 -1
  25. package/_standalone/.next/server/app/agents/[agentKey]/page_client-reference-manifest.js +1 -1
  26. package/_standalone/.next/server/app/agents/page.js +1 -1
  27. package/_standalone/.next/server/app/agents/page.js.nft.json +1 -1
  28. package/_standalone/.next/server/app/agents/page_client-reference-manifest.js +1 -1
  29. package/_standalone/.next/server/app/api/a2a/agents/route_client-reference-manifest.js +1 -1
  30. package/_standalone/.next/server/app/api/a2a/delegations/route_client-reference-manifest.js +1 -1
  31. package/_standalone/.next/server/app/api/a2a/discover/route_client-reference-manifest.js +1 -1
  32. package/_standalone/.next/server/app/api/a2a/route_client-reference-manifest.js +1 -1
  33. package/_standalone/.next/server/app/api/acp/config/route_client-reference-manifest.js +1 -1
  34. package/_standalone/.next/server/app/api/acp/detect/route.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.js +1 -1
  38. package/_standalone/.next/server/app/api/acp/registry/route_client-reference-manifest.js +1 -1
  39. package/_standalone/.next/server/app/api/acp/session/route_client-reference-manifest.js +1 -1
  40. package/_standalone/.next/server/app/api/agent-activity/route_client-reference-manifest.js +1 -1
  41. package/_standalone/.next/server/app/api/agents/copy-skill/route.js.nft.json +1 -1
  42. package/_standalone/.next/server/app/api/agents/copy-skill/route_client-reference-manifest.js +1 -1
  43. package/_standalone/.next/server/app/api/agents/custom/detect/route_client-reference-manifest.js +1 -1
  44. package/_standalone/.next/server/app/api/agents/custom/route_client-reference-manifest.js +1 -1
  45. package/_standalone/.next/server/app/api/ask/route.js +53 -47
  46. package/_standalone/.next/server/app/api/ask/route.js.nft.json +1 -1
  47. package/_standalone/.next/server/app/api/ask/route_client-reference-manifest.js +1 -1
  48. package/_standalone/.next/server/app/api/ask-sessions/route_client-reference-manifest.js +1 -1
  49. package/_standalone/.next/server/app/api/auth/route_client-reference-manifest.js +1 -1
  50. package/_standalone/.next/server/app/api/backlinks/route.js.nft.json +1 -1
  51. package/_standalone/.next/server/app/api/backlinks/route_client-reference-manifest.js +1 -1
  52. package/_standalone/.next/server/app/api/bootstrap/route.js.nft.json +1 -1
  53. package/_standalone/.next/server/app/api/bootstrap/route_client-reference-manifest.js +1 -1
  54. package/_standalone/.next/server/app/api/changes/route.js.nft.json +1 -1
  55. package/_standalone/.next/server/app/api/changes/route_client-reference-manifest.js +1 -1
  56. package/_standalone/.next/server/app/api/export/route.js.nft.json +1 -1
  57. package/_standalone/.next/server/app/api/export/route_client-reference-manifest.js +1 -1
  58. package/_standalone/.next/server/app/api/extract-pdf/route_client-reference-manifest.js +1 -1
  59. package/_standalone/.next/server/app/api/file/import/route.js +1 -1
  60. package/_standalone/.next/server/app/api/file/import/route.js.nft.json +1 -1
  61. package/_standalone/.next/server/app/api/file/import/route_client-reference-manifest.js +1 -1
  62. package/_standalone/.next/server/app/api/file/raw/route.js.nft.json +1 -1
  63. package/_standalone/.next/server/app/api/file/raw/route_client-reference-manifest.js +1 -1
  64. package/_standalone/.next/server/app/api/file/route.js.nft.json +1 -1
  65. package/_standalone/.next/server/app/api/file/route_client-reference-manifest.js +1 -1
  66. package/_standalone/.next/server/app/api/files/route.js.nft.json +1 -1
  67. package/_standalone/.next/server/app/api/files/route_client-reference-manifest.js +1 -1
  68. package/_standalone/.next/server/app/api/git/route.js.nft.json +1 -1
  69. package/_standalone/.next/server/app/api/git/route_client-reference-manifest.js +1 -1
  70. package/_standalone/.next/server/app/api/graph/route.js.nft.json +1 -1
  71. package/_standalone/.next/server/app/api/graph/route_client-reference-manifest.js +1 -1
  72. package/_standalone/.next/server/app/api/health/route_client-reference-manifest.js +1 -1
  73. package/_standalone/.next/server/app/api/inbox/route.js.nft.json +1 -1
  74. package/_standalone/.next/server/app/api/inbox/route_client-reference-manifest.js +1 -1
  75. package/_standalone/.next/server/app/api/init/route.js.nft.json +1 -1
  76. package/_standalone/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
  77. package/_standalone/.next/server/app/api/mcp/agents/route.js +1 -1
  78. package/_standalone/.next/server/app/api/mcp/agents/route.js.nft.json +1 -1
  79. package/_standalone/.next/server/app/api/mcp/agents/route_client-reference-manifest.js +1 -1
  80. package/_standalone/.next/server/app/api/mcp/install/route_client-reference-manifest.js +1 -1
  81. package/_standalone/.next/server/app/api/mcp/install-skill/route_client-reference-manifest.js +1 -1
  82. package/_standalone/.next/server/app/api/mcp/restart/route_client-reference-manifest.js +1 -1
  83. package/_standalone/.next/server/app/api/mcp/status/route_client-reference-manifest.js +1 -1
  84. package/_standalone/.next/server/app/api/mcp/uninstall/route_client-reference-manifest.js +1 -1
  85. package/_standalone/.next/server/app/api/monitoring/route.js.nft.json +1 -1
  86. package/_standalone/.next/server/app/api/monitoring/route_client-reference-manifest.js +1 -1
  87. package/_standalone/.next/server/app/api/recent-files/route.js.nft.json +1 -1
  88. package/_standalone/.next/server/app/api/recent-files/route_client-reference-manifest.js +1 -1
  89. package/_standalone/.next/server/app/api/restart/route_client-reference-manifest.js +1 -1
  90. package/_standalone/.next/server/app/api/search/route.js.nft.json +1 -1
  91. package/_standalone/.next/server/app/api/search/route_client-reference-manifest.js +1 -1
  92. package/_standalone/.next/server/app/api/settings/list-models/route.js +1 -1
  93. package/_standalone/.next/server/app/api/settings/list-models/route_client-reference-manifest.js +1 -1
  94. package/_standalone/.next/server/app/api/settings/reset-token/route_client-reference-manifest.js +1 -1
  95. package/_standalone/.next/server/app/api/settings/route.js +1 -1
  96. package/_standalone/.next/server/app/api/settings/route.js.nft.json +1 -1
  97. package/_standalone/.next/server/app/api/settings/route_client-reference-manifest.js +1 -1
  98. package/_standalone/.next/server/app/api/settings/test-key/route.js +1 -1
  99. package/_standalone/.next/server/app/api/settings/test-key/route_client-reference-manifest.js +1 -1
  100. package/_standalone/.next/server/app/api/setup/check-path/route_client-reference-manifest.js +1 -1
  101. package/_standalone/.next/server/app/api/setup/check-port/route_client-reference-manifest.js +1 -1
  102. package/_standalone/.next/server/app/api/setup/generate-token/route_client-reference-manifest.js +1 -1
  103. package/_standalone/.next/server/app/api/setup/ls/route_client-reference-manifest.js +1 -1
  104. package/_standalone/.next/server/app/api/setup/route.js +1 -1
  105. package/_standalone/.next/server/app/api/setup/route_client-reference-manifest.js +1 -1
  106. package/_standalone/.next/server/app/api/skills/route.js +1 -1
  107. package/_standalone/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
  108. package/_standalone/.next/server/app/api/sync/route_client-reference-manifest.js +1 -1
  109. package/_standalone/.next/server/app/api/tree-version/route.js.nft.json +1 -1
  110. package/_standalone/.next/server/app/api/tree-version/route_client-reference-manifest.js +1 -1
  111. package/_standalone/.next/server/app/api/uninstall/route_client-reference-manifest.js +1 -1
  112. package/_standalone/.next/server/app/api/update/route_client-reference-manifest.js +1 -1
  113. package/_standalone/.next/server/app/api/update-check/route_client-reference-manifest.js +1 -1
  114. package/_standalone/.next/server/app/api/update-status/route_client-reference-manifest.js +1 -1
  115. package/_standalone/.next/server/app/api/workflows/route.js.nft.json +1 -1
  116. package/_standalone/.next/server/app/api/workflows/route_client-reference-manifest.js +1 -1
  117. package/_standalone/.next/server/app/changes/page.js +1 -1
  118. package/_standalone/.next/server/app/changes/page.js.nft.json +1 -1
  119. package/_standalone/.next/server/app/changes/page_client-reference-manifest.js +1 -1
  120. package/_standalone/.next/server/app/echo/[segment]/page.js +2 -2
  121. package/_standalone/.next/server/app/echo/[segment]/page.js.nft.json +1 -1
  122. package/_standalone/.next/server/app/echo/[segment]/page_client-reference-manifest.js +1 -1
  123. package/_standalone/.next/server/app/echo/page.js +1 -1
  124. package/_standalone/.next/server/app/echo/page.js.nft.json +1 -1
  125. package/_standalone/.next/server/app/echo/page_client-reference-manifest.js +1 -1
  126. package/_standalone/.next/server/app/explore/page.js +1 -1
  127. package/_standalone/.next/server/app/explore/page.js.nft.json +1 -1
  128. package/_standalone/.next/server/app/explore/page_client-reference-manifest.js +1 -1
  129. package/_standalone/.next/server/app/help/page.js +1 -1
  130. package/_standalone/.next/server/app/help/page.js.nft.json +1 -1
  131. package/_standalone/.next/server/app/help/page_client-reference-manifest.js +1 -1
  132. package/_standalone/.next/server/app/inbox/history/page.js +1 -1
  133. package/_standalone/.next/server/app/inbox/history/page.js.nft.json +1 -1
  134. package/_standalone/.next/server/app/inbox/history/page_client-reference-manifest.js +1 -1
  135. package/_standalone/.next/server/app/login/page.js +1 -1
  136. package/_standalone/.next/server/app/login/page.js.nft.json +1 -1
  137. package/_standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
  138. package/_standalone/.next/server/app/page.js +1 -1
  139. package/_standalone/.next/server/app/page.js.nft.json +1 -1
  140. package/_standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  141. package/_standalone/.next/server/app/setup/page.js +2 -2
  142. package/_standalone/.next/server/app/setup/page.js.nft.json +1 -1
  143. package/_standalone/.next/server/app/setup/page_client-reference-manifest.js +1 -1
  144. package/_standalone/.next/server/app/trash/page.js +3 -3
  145. package/_standalone/.next/server/app/trash/page.js.nft.json +1 -1
  146. package/_standalone/.next/server/app/trash/page_client-reference-manifest.js +1 -1
  147. package/_standalone/.next/server/app/view/[...path]/page.js +2 -2
  148. package/_standalone/.next/server/app/view/[...path]/page.js.nft.json +1 -1
  149. package/_standalone/.next/server/app/view/[...path]/page_client-reference-manifest.js +1 -1
  150. package/_standalone/.next/server/app/wiki/page.js +1 -1
  151. package/_standalone/.next/server/app/wiki/page.js.nft.json +1 -1
  152. package/_standalone/.next/server/app/wiki/page_client-reference-manifest.js +1 -1
  153. package/_standalone/.next/server/app-paths-manifest.json +23 -23
  154. package/_standalone/.next/server/chunks/122.js +222 -0
  155. package/_standalone/.next/server/chunks/1550.js +1 -1
  156. package/_standalone/.next/server/chunks/1750.js +1 -1
  157. package/_standalone/.next/server/chunks/3113.js +52 -0
  158. package/_standalone/.next/server/chunks/6539.js +1 -1
  159. package/_standalone/.next/server/chunks/8388.js +3 -3
  160. package/_standalone/.next/server/chunks/953.js +3 -3
  161. package/_standalone/.next/server/pages/500.html +2 -2
  162. package/_standalone/.next/server/server-reference-manifest.js +1 -1
  163. package/_standalone/.next/server/server-reference-manifest.json +1 -1
  164. package/_standalone/.next/static/chunks/1001-99da82ec8d8c136f.js +1 -0
  165. package/_standalone/.next/static/chunks/1088-77544af0a50cb7a4.js +1 -0
  166. package/_standalone/.next/static/chunks/1467-87dde7eed498806f.js +1 -0
  167. package/_standalone/.next/static/chunks/5149-4d828886dda479fa.js +1 -0
  168. package/_standalone/.next/static/chunks/5581-c671163a2fe1b312.js +29 -0
  169. package/_standalone/.next/static/chunks/{7266-bb7be1128eccd48e.js → 5718-3837c3210a0e175f.js} +2 -2
  170. package/_standalone/.next/static/chunks/6636-53238eff89503f03.js +6 -0
  171. package/_standalone/.next/static/chunks/6757-1c1a89720fdda8f0.js +1 -0
  172. package/_standalone/.next/static/chunks/7129-20e9d2463a9da646.js +1 -0
  173. package/_standalone/.next/static/chunks/7294-cac25d97869afadc.js +1 -0
  174. package/_standalone/.next/static/chunks/8225-21e5cebc3731ddf0.js +1 -0
  175. package/_standalone/.next/static/chunks/8520-b51810e66293ceb8.js +22 -0
  176. package/_standalone/.next/static/chunks/9207-dc9c31b351a2ed78.js +1 -0
  177. package/_standalone/.next/static/chunks/app/agents/[agentKey]/page-2f5cf97e03dc1cc9.js +1 -0
  178. package/_standalone/.next/static/chunks/app/agents/page-50eac58d511dcc6e.js +1 -0
  179. package/_standalone/.next/static/chunks/app/echo/[segment]/page-2a00f4686adf3885.js +11 -0
  180. package/_standalone/.next/static/chunks/app/layout-2cb7a6602d2e5d5f.js +168 -0
  181. package/_standalone/.next/static/chunks/app/{page-6a1f8d21c12b829e.js → page-5ab911b2226f6ff7.js} +1 -1
  182. package/_standalone/.next/static/chunks/app/setup/page-907b7c57fad2292b.js +1 -0
  183. package/_standalone/.next/static/chunks/app/trash/page-11a511b065ea84c2.js +1 -0
  184. package/_standalone/.next/static/chunks/app/view/[...path]/page-26e47dd4c533a58c.js +12 -0
  185. package/_standalone/.next/static/chunks/app/wiki/page-dce495b9048022fb.js +1 -0
  186. package/_standalone/.next/static/css/67e7918f5ed7d147.css +1 -0
  187. package/_standalone/.next/trace +65 -65
  188. package/_standalone/__tests__/acp/registry.test.ts +30 -20
  189. package/_standalone/__tests__/api/ask-attachments.test.ts +194 -0
  190. package/_standalone/__tests__/api/mcp-install.test.ts +49 -2
  191. package/_standalone/__tests__/api/settings.test.ts +16 -12
  192. package/_standalone/__tests__/api/setup.test.ts +11 -9
  193. package/_standalone/__tests__/api/test-key.test.ts +0 -10
  194. package/_standalone/__tests__/components/UpdateToast.test.ts +344 -0
  195. package/_standalone/__tests__/core/context.test.ts +48 -426
  196. package/_standalone/__tests__/lib/pi-skills.test.ts +4 -4
  197. package/_standalone/__tests__/lib/settings-ai-client.test.ts +32 -12
  198. package/_standalone/__tests__/setup.ts +5 -5
  199. package/_standalone/app/globals.css +4 -4
  200. package/_standalone/components/ActivityBar.tsx +17 -6
  201. package/_standalone/components/Panel.tsx +24 -6
  202. package/_standalone/components/SidebarLayout.tsx +36 -8
  203. package/_standalone/components/agents/AgentsMcpSection.tsx +2 -2
  204. package/_standalone/components/agents/AgentsOverviewSection.tsx +5 -1
  205. package/_standalone/components/agents/AgentsPanelA2aTab.tsx +173 -113
  206. package/_standalone/components/agents/AgentsSkillsSection.tsx +2 -2
  207. package/_standalone/components/ask/AskContent.tsx +83 -44
  208. package/_standalone/components/ask/AskHeader.tsx +8 -1
  209. package/_standalone/components/ask/MessageList.tsx +37 -3
  210. package/_standalone/components/ask/ProviderModelCapsule.tsx +444 -174
  211. package/_standalone/components/home/InboxSection.tsx +25 -25
  212. package/_standalone/components/settings/AiTab.tsx +353 -298
  213. package/_standalone/components/settings/CustomProviderFields.tsx +121 -0
  214. package/_standalone/components/settings/CustomProvidersCard.tsx +154 -0
  215. package/_standalone/components/settings/KnowledgeTab.tsx +6 -20
  216. package/_standalone/components/settings/McpAgentInstall.tsx +7 -2
  217. package/_standalone/components/settings/Primitives.tsx +48 -104
  218. package/_standalone/components/settings/ProviderModal.tsx +87 -0
  219. package/_standalone/components/settings/SettingsContent.tsx +2 -5
  220. package/_standalone/components/settings/TestButton.tsx +64 -0
  221. package/_standalone/components/settings/types.ts +3 -9
  222. package/_standalone/components/settings/useCustomProviderForm.ts +132 -0
  223. package/_standalone/components/setup/StepAI.tsx +12 -5
  224. package/_standalone/components/shared/ModelInput.tsx +220 -0
  225. package/_standalone/components/shared/ProviderSelect.tsx +126 -36
  226. package/_standalone/hooks/useAskChat.ts +100 -13
  227. package/_standalone/hooks/useAskPanel.ts +17 -1
  228. package/_standalone/lib/settings-ai-client.ts +17 -8
  229. package/_standalone/tsconfig.tsbuildinfo +1 -1
  230. package/app/.antigravity/mcp_config.json +14 -0
  231. package/app/app/api/ask/route.ts +154 -45
  232. package/app/app/api/mcp/agents/route.ts +3 -3
  233. package/app/app/api/settings/list-models/route.ts +36 -9
  234. package/app/app/api/settings/route.ts +14 -42
  235. package/app/app/api/settings/test-key/route.ts +78 -2
  236. package/app/app/api/setup/route.ts +36 -18
  237. package/app/app/api/skills/route.ts +1 -1
  238. package/app/app/globals.css +4 -4
  239. package/app/app/layout.tsx +5 -3
  240. package/app/app/view/[...path]/page.tsx +5 -0
  241. package/app/components/ActivityBar.tsx +17 -6
  242. package/app/components/HomeContent.tsx +11 -0
  243. package/app/components/InboxView.tsx +656 -0
  244. package/app/components/Panel.tsx +24 -6
  245. package/app/components/SidebarLayout.tsx +36 -8
  246. package/app/components/UpdateToast.tsx +255 -0
  247. package/app/components/agents/AgentDetailContent.tsx +8 -8
  248. package/app/components/agents/AgentsMcpSection.tsx +2 -2
  249. package/app/components/agents/AgentsOverviewSection.tsx +5 -1
  250. package/app/components/agents/AgentsPanelA2aTab.tsx +173 -113
  251. package/app/components/agents/AgentsSkillsSection.tsx +2 -2
  252. package/app/components/ask/AskContent.tsx +83 -44
  253. package/app/components/ask/AskHeader.tsx +8 -1
  254. package/app/components/ask/MessageList.tsx +37 -3
  255. package/app/components/ask/ProviderModelCapsule.tsx +444 -174
  256. package/app/components/home/InboxSection.tsx +25 -25
  257. package/app/components/settings/AiTab.tsx +353 -298
  258. package/app/components/settings/CustomProviderFields.tsx +121 -0
  259. package/app/components/settings/CustomProvidersCard.tsx +154 -0
  260. package/app/components/settings/KnowledgeTab.tsx +6 -20
  261. package/app/components/settings/McpAgentInstall.tsx +7 -2
  262. package/app/components/settings/Primitives.tsx +48 -104
  263. package/app/components/settings/ProviderModal.tsx +87 -0
  264. package/app/components/settings/SettingsContent.tsx +2 -5
  265. package/app/components/settings/TestButton.tsx +64 -0
  266. package/app/components/settings/types.ts +3 -9
  267. package/app/components/settings/useCustomProviderForm.ts +132 -0
  268. package/app/components/setup/StepAI.tsx +12 -5
  269. package/app/components/shared/ModelInput.tsx +220 -0
  270. package/app/components/shared/ProviderSelect.tsx +126 -36
  271. package/app/hooks/useAskChat.ts +100 -13
  272. package/app/hooks/useAskPanel.ts +17 -1
  273. package/app/lib/acp/registry.ts +92 -10
  274. package/app/lib/agent/context.ts +65 -0
  275. package/app/lib/agent/providers.ts +25 -0
  276. package/app/lib/agent/tools.ts +1 -1
  277. package/app/lib/custom-endpoints.ts +160 -0
  278. package/app/lib/fs.ts +8 -1
  279. package/app/lib/i18n/modules/ai-chat.ts +6 -0
  280. package/app/lib/i18n/modules/knowledge.ts +16 -0
  281. package/app/lib/i18n/modules/onboarding.ts +4 -0
  282. package/app/lib/i18n/modules/settings.ts +88 -2
  283. package/app/lib/mcp-agents.ts +11 -0
  284. package/app/lib/pi-integration/skills.ts +16 -4
  285. package/app/lib/settings-ai-client.ts +17 -8
  286. package/app/lib/settings.ts +68 -72
  287. package/app/lib/types.ts +4 -0
  288. package/bin/lib/mcp-agents.js +11 -0
  289. package/bin/lib/mcp-install.js +71 -7
  290. package/package.json +1 -1
  291. package/_standalone/.next/server/chunks/530.js +0 -218
  292. package/_standalone/.next/server/chunks/8955.js +0 -52
  293. package/_standalone/.next/static/chunks/1369-7d0ac5d1564eed1e.js +0 -1
  294. package/_standalone/.next/static/chunks/3427-2e61a5df1f5e55fb.js +0 -1
  295. package/_standalone/.next/static/chunks/5581-0c700c20718bd916.js +0 -29
  296. package/_standalone/.next/static/chunks/6297-085daa21037d5f81.js +0 -1
  297. package/_standalone/.next/static/chunks/6636-9bbc90fb3b8731fe.js +0 -6
  298. package/_standalone/.next/static/chunks/7637-904b0a381dc3ec02.js +0 -1
  299. package/_standalone/.next/static/chunks/8520-76d1b05072178b43.js +0 -22
  300. package/_standalone/.next/static/chunks/8658-16ff58b75ae37fbb.js +0 -1
  301. package/_standalone/.next/static/chunks/9905-a19d379cb225246e.js +0 -1
  302. package/_standalone/.next/static/chunks/app/agents/[agentKey]/page-0ea3571c8fbae823.js +0 -1
  303. package/_standalone/.next/static/chunks/app/agents/page-66858acbcd1d4bf8.js +0 -1
  304. package/_standalone/.next/static/chunks/app/echo/[segment]/page-bf5c290fa3ccff09.js +0 -11
  305. package/_standalone/.next/static/chunks/app/layout-a5d5925b47e87cc3.js +0 -164
  306. package/_standalone/.next/static/chunks/app/setup/page-821714e7477be46c.js +0 -1
  307. package/_standalone/.next/static/chunks/app/trash/page-40bc7316806acd62.js +0 -1
  308. package/_standalone/.next/static/chunks/app/view/[...path]/page-6fbb14b8f322d0f0.js +0 -12
  309. package/_standalone/.next/static/chunks/app/wiki/page-ba36eccf4fe62cfe.js +0 -1
  310. package/_standalone/.next/static/css/b57c4eb3cc88308b.css +0 -1
  311. package/_standalone/lib/agent/context.ts +0 -403
  312. /package/_standalone/.next/static/{5GmVArEG8OX03azKICsGq → eIlwbGas1iRGonlPyEwj7}/_buildManifest.js +0 -0
  313. /package/_standalone/.next/static/{5GmVArEG8OX03azKICsGq → eIlwbGas1iRGonlPyEwj7}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- "use strict";exports.id=1550,exports.ids=[1550],exports.modules={19225:(a,b,c)=>{a.exports=c(44870)},85083:(a,b,c)=>{c.d(b,{E6:()=>n,Gl:()=>q,L$:()=>s,Mk:()=>v,P:()=>r,_$:()=>m,cH:()=>u,g4:()=>t,kc:()=>l,pX:()=>k});var d=c(29021),e=c.n(d),f=c(33873),g=c.n(f),h=c(21820),i=c.n(h),j=c(79646);function k(a){let b=a.replace(/\\"|"(?:\\"|[^"])*"|(\/\/.*$)/gm,(a,b)=>b?"":a);return(b=b.replace(/\/\*[\s\S]*?\*\//g,"")).trim()?JSON.parse(b):{}}function l(a){return a.startsWith("~/")?g().resolve(i().homedir(),a.slice(2)):a}let m={mindos:{name:"MindOS",project:null,global:"~/.mindos/mcp.json",key:"mcpServers",preferredTransport:"stdio",presenceDirs:["~/.mindos/"]},"claude-code":{name:"Claude Code",project:".mcp.json",global:"~/.claude.json",key:"mcpServers",preferredTransport:"stdio",presenceCli:"claude",presenceDirs:["~/.claude/"]},cursor:{name:"Cursor",project:".cursor/mcp.json",global:"~/.cursor/mcp.json",key:"mcpServers",preferredTransport:"stdio",presenceDirs:["~/.cursor/extensions/"]},windsurf:{name:"Windsurf",project:null,global:"~/.codeium/windsurf/mcp_config.json",key:"mcpServers",preferredTransport:"stdio",presenceDirs:["~/.codeium/windsurf/"]},cline:{name:"Cline",project:null,global:"darwin"===process.platform?"~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json":"~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json",key:"mcpServers",preferredTransport:"stdio",presenceDirs:["~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/","~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/"]},trae:{name:"Trae",project:".trae/mcp.json",global:"~/.trae/mcp.json",key:"mcpServers",preferredTransport:"stdio",presenceDirs:["~/.trae/"]},"gemini-cli":{name:"Gemini CLI",project:".gemini/settings.json",global:"~/.gemini/settings.json",key:"mcpServers",preferredTransport:"stdio",presenceCli:"gemini",presenceDirs:["~/.gemini/"]},openclaw:{name:"OpenClaw",project:null,global:"~/.openclaw/mcp.json",key:"mcpServers",preferredTransport:"stdio",presenceCli:"openclaw",presenceDirs:["~/.openclaw/"]},codebuddy:{name:"CodeBuddy",project:null,global:"~/.codebuddy/mcp.json",key:"mcpServers",preferredTransport:"stdio",presenceCli:"codebuddy",presenceDirs:["~/.codebuddy/"]},"iflow-cli":{name:"iFlow CLI",project:".iflow/settings.json",global:"~/.iflow/settings.json",key:"mcpServers",preferredTransport:"stdio",presenceCli:"iflow",presenceDirs:["~/.iflow/"]},"kimi-cli":{name:"Kimi Code",project:".kimi/mcp.json",global:"~/.kimi/mcp.json",key:"mcpServers",preferredTransport:"stdio",presenceCli:"kimi",presenceDirs:["~/.kimi/"]},opencode:{name:"OpenCode",project:null,global:"~/.config/opencode/config.json",key:"mcpServers",preferredTransport:"stdio",presenceCli:"opencode",presenceDirs:["~/.config/opencode/"]},pi:{name:"Pi",project:".pi/settings.json",global:"~/.pi/agent/mcp.json",key:"mcpServers",preferredTransport:"stdio",presenceCli:"pi",presenceDirs:["~/.pi/"]},augment:{name:"Augment",project:".augment/settings.json",global:"~/.augment/settings.json",key:"mcpServers",preferredTransport:"stdio",presenceCli:"auggie",presenceDirs:["~/.augment/"]},"qwen-code":{name:"Qwen Code",project:".qwen/settings.json",global:"~/.qwen/settings.json",key:"mcpServers",preferredTransport:"stdio",presenceCli:"qwen",presenceDirs:["~/.qwen/"]},qoder:{name:"Qoder",project:null,global:"~/.qoder.json",key:"mcpServers",preferredTransport:"stdio",presenceCli:"qoder",presenceDirs:["~/.qoder/","~/.qoder.json"]},"trae-cn":{name:"Trae CN",project:".trae/mcp.json",global:"darwin"===process.platform?"~/Library/Application Support/Trae CN/User/mcp.json":"~/.config/Trae CN/User/mcp.json",key:"mcpServers",preferredTransport:"stdio",presenceCli:"trae-cli",presenceDirs:["~/Library/Application Support/Trae CN/","~/.config/Trae CN/"]},roo:{name:"Roo Code",project:".roo/mcp.json",global:"darwin"===process.platform?"~/Library/Application Support/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/mcp_settings.json":"~/.config/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/mcp_settings.json",key:"mcpServers",preferredTransport:"stdio",presenceDirs:["~/Library/Application Support/Code/User/globalStorage/rooveterinaryinc.roo-cline/","~/.config/Code/User/globalStorage/rooveterinaryinc.roo-cline/"]},"github-copilot":{name:"GitHub Copilot",project:".vscode/mcp.json",global:"darwin"===process.platform?"~/Library/Application Support/Code/User/mcp.json":"~/.config/Code/User/mcp.json",key:"servers",preferredTransport:"stdio",presenceDirs:["~/Library/Application Support/Code/","~/.config/Code/"],presenceCli:"code"},codex:{name:"Codex",project:null,global:"~/.codex/config.toml",key:"mcp_servers",format:"toml",preferredTransport:"stdio",presenceCli:"codex",presenceDirs:["~/.codex/"]},antigravity:{name:"Antigravity",project:".antigravity/mcp_config.json",global:"~/.gemini/antigravity/mcp_config.json",key:"mcpServers",preferredTransport:"stdio",presenceCli:"agy",presenceDirs:["~/.gemini/antigravity/"]},qclaw:{name:"QClaw",project:null,global:"~/.qclaw/mcp.json",key:"mcpServers",preferredTransport:"stdio",presenceCli:"qclaw",presenceDirs:["~/.qclaw/"]},workbuddy:{name:"WorkBuddy",project:null,global:"~/.workbuddy/mcp.json",key:"mcpServers",preferredTransport:"stdio",presenceCli:"workbuddy",presenceDirs:["~/.workbuddy/"]},lingma:{name:"Lingma",project:null,global:"~/.lingma/mcp.json",key:"mcpServers",preferredTransport:"stdio",presenceDirs:["~/.lingma/"]}},n={"claude-code":{mode:"additional",skillAgentName:"claude-code"},cursor:{mode:"universal"},windsurf:{mode:"additional",skillAgentName:"windsurf"},cline:{mode:"universal"},trae:{mode:"additional",skillAgentName:"trae"},"gemini-cli":{mode:"universal"},openclaw:{mode:"additional",skillAgentName:"openclaw"},codebuddy:{mode:"additional",skillAgentName:"codebuddy"},"iflow-cli":{mode:"additional",skillAgentName:"iflow-cli"},"kimi-cli":{mode:"universal"},opencode:{mode:"universal"},pi:{mode:"additional",skillAgentName:"pi"},augment:{mode:"additional",skillAgentName:"augment"},"qwen-code":{mode:"additional",skillAgentName:"qwen-code"},qoder:{mode:"additional",skillAgentName:"qoder"},"trae-cn":{mode:"additional",skillAgentName:"trae-cn"},roo:{mode:"additional",skillAgentName:"roo"},"github-copilot":{mode:"universal"},codex:{mode:"universal"},antigravity:{mode:"additional",skillAgentName:"antigravity"},qclaw:{mode:"unsupported"},workbuddy:{mode:"unsupported"},lingma:{mode:"unsupported"}};function o(a){for(let b of a.presenceDirs??[]){let a=l(b);if(e().existsSync(a))try{let b=e().statSync(a);if(b.isDirectory())return a;if(b.isFile())return g().dirname(a)}catch{continue}}return g().dirname(l(a.global))}function p(a,b){let c=b.split(".").filter(Boolean),d=a;for(let a of c){if(!d||"object"!=typeof d)return null;d=d[a]}return d&&"object"==typeof d?d:null}function q(a){let b=n[a]??{mode:"unsupported"};if("universal"===b.mode)return{mode:b.mode,workspacePath:l("~/.agents/skills")};let c=m[a],d=c?o(c):l("~/.agents"),e=g().join(d,"skills");return{mode:b.mode,skillAgentName:b.skillAgentName,workspacePath:e}}function r(a){let b=m[a];if(!b)return{servers:[],sources:[]};let c=new Set,d=[];for(let[a,f]of[["global",b.global],["project",b.project]]){if(!f)continue;let g=l(f);if(e().existsSync(g))try{let h=e().readFileSync(g,"utf-8"),i="global"===a?b.globalNestedKey:void 0;for(let a of"toml"===b.format?function(a,b){let c=new Set,d=a.split("\n"),e=!1,f=`${b}.`;for(let a of d){let d=a.trim();if(!d||d.startsWith("#"))continue;if(d.startsWith("[")&&d.endsWith("]")){let a=d.slice(1,-1).trim();if(e=a===b,a.startsWith(f)){let b=a.slice(f.length).split(".")[0]?.trim();b&&c.add(b)}continue}if(!e)continue;let g=d.match(/^([a-zA-Z0-9_-]+)\s*=\s*/);if(!g)continue;let h=g[1]?.trim();h&&c.add(h)}return[...c]}(h,b.key):function(a,b,c){try{let d=k(a),e=c?p(d,c):d[b];if(!e||"object"!=typeof e)return[];return Object.keys(e)}catch{return[]}}(h,b.key,i))c.add(a);d.push(`${a}:${f}`)}catch{continue}}return{servers:[...c].sort((a,b)=>a.localeCompare(b)),sources:d}}function s(a){let b=q(a).workspacePath;if(!e().existsSync(b))return{skills:[],sourcePath:b};let c=[];try{c=e().readdirSync(b,{withFileTypes:!0})}catch{return{skills:[],sourcePath:b}}return{skills:c.filter(a=>(a.isDirectory()||a.isSymbolicLink())&&!a.name.startsWith(".")).map(a=>a.name).sort((a,b)=>a.localeCompare(b)),sourcePath:b}}function t(a){let b=m[a];if(!b)return{hiddenRootPath:"",hiddenRootPresent:!1,conversationSignal:!1,usageSignal:!1};let c=o(b);if(!e().existsSync(c))return{hiddenRootPath:c,hiddenRootPresent:!1,conversationSignal:!1,usageSignal:!1};let d=0,f=!1,h=!1,i=0,j=[{dir:c,depth:0}];for(;j.length>0&&d<300;){let a=j.shift();if(!a)break;for(let b of function(a){try{return e().readdirSync(a,{withFileTypes:!0})}catch{return[]}}(a.dir)){if(d>=300)break;if(d+=1,"node_modules"===b.name||".git"===b.name)continue;let c=g().join(a.dir,b.name);try{let d=e().statSync(c);d.mtimeMs>i&&(i=d.mtimeMs);let g=function(a){let b=a.toLowerCase();return{conversation:/(session|history|conversation|chat|transcript)/.test(b),usage:/(usage|token|cost|billing|metric|analytics)/.test(b)}}(b.name);g.conversation&&(f=!0),g.usage&&(h=!0),b.isDirectory()&&a.depth<3&&j.push({dir:c,depth:a.depth+1})}catch{continue}}}return{hiddenRootPath:c,hiddenRootPresent:!0,conversationSignal:f,usageSignal:h,lastActivityAt:i>0?new Date(i).toISOString():void 0}}function u(a){let b=m[a];if(!b)return{installed:!1};for(let[a,c]of[["global",b.global],["project",b.project]]){if(!c)continue;let d=l(c);if(e().existsSync(d))try{let f=e().readFileSync(d,"utf-8");if("toml"===b.format){let d=function(a,b,c){let d=a.split("\n"),e=`[${b}.${c}]`,f=`[${b}]`,g=!1,h=!1,i=!1,j={};for(let a of d){let b=a.trim();if(b.startsWith("[")&&b.endsWith("]")){if(g&&(j.type||j.url)||i&&(j.type||j.url))return{found:!0,entry:j};g=b===e,h=b===f,i=!1,j={};continue}let d=b.match(/^([a-zA-Z0-9_-]+)\s*=\s*(.+)$/);if(d){let[,a,b]=d,e=b.replace(/^["'](.+)["']$/,"$1");if(g)"type"===a&&(j.type=e),"url"===a&&(j.url=e);else if(h&&a===c){let a=b.match(/\{\s*type\s*=\s*["']([^"']+)["'].*?\}/);a&&(j.type=a[1]);let c=b.match(/url\s*=\s*["']([^"']+)["']/);c&&(j.url=c[1]),i=!0}}}return g&&(j.type||j.url)||i&&(j.type||j.url)?{found:!0,entry:j}:{found:!1}}(f,b.key,"mindos");if(d.found&&d.entry){let b=d.entry,e="stdio"===b.type?"stdio":b.url?"http":"unknown";return{installed:!0,scope:a,transport:e,configPath:c,url:b.url}}}else{let d=k(f),e="global"===a&&b.globalNestedKey?p(d,b.globalNestedKey):d[b.key];if(e?.mindos){let b=e.mindos,d="stdio"===b.type?"stdio":b.url?"http":"unknown";return{installed:!0,scope:a,transport:d,configPath:c,url:b.url}}}}catch{}}return{installed:!1}}function v(a){let b=m[a];if(!b)return!1;if(b.presenceCli)try{return(0,j.execSync)("win32"===process.platform?`where ${b.presenceCli}`:`which ${b.presenceCli}`,{stdio:"pipe"}),!0}catch{}return!!b.presenceDirs?.some(a=>e().existsSync(l(a)))}},92280:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(28208),e=c(47617),f=c(62018);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}}};
1
+ "use strict";exports.id=1550,exports.ids=[1550],exports.modules={19225:(a,b,c)=>{a.exports=c(44870)},85083:(a,b,c)=>{c.d(b,{E6:()=>n,Gl:()=>q,L$:()=>s,Mk:()=>v,P:()=>r,_$:()=>m,cH:()=>u,g4:()=>t,kc:()=>l,pX:()=>k});var d=c(29021),e=c.n(d),f=c(33873),g=c.n(f),h=c(21820),i=c.n(h),j=c(79646);function k(a){let b=a.replace(/\\"|"(?:\\"|[^"])*"|(\/\/.*$)/gm,(a,b)=>b?"":a);return(b=b.replace(/\/\*[\s\S]*?\*\//g,"")).trim()?JSON.parse(b):{}}function l(a){return a.startsWith("~/")?g().resolve(i().homedir(),a.slice(2)):a}let m={mindos:{name:"MindOS",project:null,global:"~/.mindos/mcp.json",key:"mcpServers",preferredTransport:"stdio",presenceDirs:["~/.mindos/"]},"claude-code":{name:"Claude Code",project:".mcp.json",global:"~/.claude.json",key:"mcpServers",preferredTransport:"stdio",presenceCli:"claude",presenceDirs:["~/.claude/"]},cursor:{name:"Cursor",project:".cursor/mcp.json",global:"~/.cursor/mcp.json",key:"mcpServers",preferredTransport:"stdio",presenceDirs:["~/.cursor/extensions/"]},windsurf:{name:"Windsurf",project:null,global:"~/.codeium/windsurf/mcp_config.json",key:"mcpServers",preferredTransport:"stdio",presenceDirs:["~/.codeium/windsurf/"]},cline:{name:"Cline",project:null,global:"darwin"===process.platform?"~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json":"~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json",key:"mcpServers",preferredTransport:"stdio",presenceDirs:["~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/","~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/"]},trae:{name:"Trae",project:".trae/mcp.json",global:"~/.trae/mcp.json",key:"mcpServers",preferredTransport:"stdio",presenceDirs:["~/.trae/"]},"gemini-cli":{name:"Gemini CLI",project:".gemini/settings.json",global:"~/.gemini/settings.json",key:"mcpServers",preferredTransport:"stdio",presenceCli:"gemini",presenceDirs:["~/.gemini/"]},openclaw:{name:"OpenClaw",project:null,global:"~/.openclaw/mcp.json",key:"mcpServers",preferredTransport:"stdio",presenceCli:"openclaw",presenceDirs:["~/.openclaw/"]},codebuddy:{name:"CodeBuddy",project:null,global:"~/.codebuddy/mcp.json",key:"mcpServers",preferredTransport:"stdio",presenceCli:"codebuddy",presenceDirs:["~/.codebuddy/"]},"iflow-cli":{name:"iFlow CLI",project:".iflow/settings.json",global:"~/.iflow/settings.json",key:"mcpServers",preferredTransport:"stdio",presenceCli:"iflow",presenceDirs:["~/.iflow/"]},"kimi-cli":{name:"Kimi Code",project:".kimi/mcp.json",global:"~/.kimi/mcp.json",key:"mcpServers",preferredTransport:"stdio",presenceCli:"kimi",presenceDirs:["~/.kimi/"]},opencode:{name:"OpenCode",project:null,global:"~/.config/opencode/config.json",key:"mcpServers",preferredTransport:"stdio",presenceCli:"opencode",presenceDirs:["~/.config/opencode/"]},pi:{name:"Pi",project:".pi/settings.json",global:"~/.pi/agent/mcp.json",key:"mcpServers",preferredTransport:"stdio",presenceCli:"pi",presenceDirs:["~/.pi/"]},augment:{name:"Augment",project:".augment/settings.json",global:"~/.augment/settings.json",key:"mcpServers",preferredTransport:"stdio",presenceCli:"auggie",presenceDirs:["~/.augment/"]},"qwen-code":{name:"Qwen Code",project:".qwen/settings.json",global:"~/.qwen/settings.json",key:"mcpServers",preferredTransport:"stdio",presenceCli:"qwen",presenceDirs:["~/.qwen/"]},qoder:{name:"Qoder",project:null,global:"~/.qoder.json",key:"mcpServers",preferredTransport:"stdio",presenceCli:"qoder",presenceDirs:["~/.qoder/","~/.qoder.json"]},"trae-cn":{name:"Trae CN",project:".trae/mcp.json",global:"darwin"===process.platform?"~/Library/Application Support/Trae CN/User/mcp.json":"~/.config/Trae CN/User/mcp.json",key:"mcpServers",preferredTransport:"stdio",presenceCli:"trae-cli",presenceDirs:["~/Library/Application Support/Trae CN/","~/.config/Trae CN/"]},roo:{name:"Roo Code",project:".roo/mcp.json",global:"darwin"===process.platform?"~/Library/Application Support/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/mcp_settings.json":"~/.config/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/mcp_settings.json",key:"mcpServers",preferredTransport:"stdio",presenceDirs:["~/Library/Application Support/Code/User/globalStorage/rooveterinaryinc.roo-cline/","~/.config/Code/User/globalStorage/rooveterinaryinc.roo-cline/"]},"github-copilot":{name:"GitHub Copilot",project:".vscode/mcp.json",global:"darwin"===process.platform?"~/Library/Application Support/Code/User/mcp.json":"~/.config/Code/User/mcp.json",key:"servers",preferredTransport:"stdio",presenceDirs:["~/Library/Application Support/Code/","~/.config/Code/"],presenceCli:"code"},codex:{name:"Codex",project:null,global:"~/.codex/config.toml",key:"mcp_servers",format:"toml",preferredTransport:"stdio",presenceCli:"codex",presenceDirs:["~/.codex/"]},antigravity:{name:"Antigravity",project:".antigravity/mcp_config.json",global:"~/.gemini/antigravity/mcp_config.json",key:"mcpServers",preferredTransport:"stdio",presenceCli:"agy",presenceDirs:["~/.gemini/antigravity/"]},qclaw:{name:"QClaw",project:null,global:"~/.qclaw/mcp.json",key:"mcpServers",preferredTransport:"stdio",presenceCli:"qclaw",presenceDirs:["~/.qclaw/"]},workbuddy:{name:"WorkBuddy",project:null,global:"~/.workbuddy/mcp.json",key:"mcpServers",preferredTransport:"stdio",presenceCli:"workbuddy",presenceDirs:["~/.workbuddy/"]},lingma:{name:"Lingma",project:null,global:"~/.lingma/mcp.json",key:"mcpServers",preferredTransport:"stdio",presenceDirs:["~/.lingma/"]},copaw:{name:"CoPaw",project:null,global:"~/.copaw/config.json",key:"mcp",globalNestedKey:"mcp.clients",preferredTransport:"stdio",presenceCli:"copaw",presenceDirs:["~/.copaw/"]}},n={"claude-code":{mode:"additional",skillAgentName:"claude-code"},cursor:{mode:"universal"},windsurf:{mode:"additional",skillAgentName:"windsurf"},cline:{mode:"universal"},trae:{mode:"additional",skillAgentName:"trae"},"gemini-cli":{mode:"universal"},openclaw:{mode:"additional",skillAgentName:"openclaw"},codebuddy:{mode:"additional",skillAgentName:"codebuddy"},"iflow-cli":{mode:"additional",skillAgentName:"iflow-cli"},"kimi-cli":{mode:"universal"},opencode:{mode:"universal"},pi:{mode:"additional",skillAgentName:"pi"},augment:{mode:"additional",skillAgentName:"augment"},"qwen-code":{mode:"additional",skillAgentName:"qwen-code"},qoder:{mode:"additional",skillAgentName:"qoder"},"trae-cn":{mode:"additional",skillAgentName:"trae-cn"},roo:{mode:"additional",skillAgentName:"roo"},"github-copilot":{mode:"universal"},codex:{mode:"universal"},antigravity:{mode:"additional",skillAgentName:"antigravity"},qclaw:{mode:"unsupported"},workbuddy:{mode:"unsupported"},lingma:{mode:"unsupported"},copaw:{mode:"unsupported"}};function o(a){for(let b of a.presenceDirs??[]){let a=l(b);if(e().existsSync(a))try{let b=e().statSync(a);if(b.isDirectory())return a;if(b.isFile())return g().dirname(a)}catch{continue}}return g().dirname(l(a.global))}function p(a,b){let c=b.split(".").filter(Boolean),d=a;for(let a of c){if(!d||"object"!=typeof d)return null;d=d[a]}return d&&"object"==typeof d?d:null}function q(a){let b=n[a]??{mode:"unsupported"};if("universal"===b.mode)return{mode:b.mode,workspacePath:l("~/.agents/skills")};let c=m[a],d=c?o(c):l("~/.agents"),e=g().join(d,"skills");return{mode:b.mode,skillAgentName:b.skillAgentName,workspacePath:e}}function r(a){let b=m[a];if(!b)return{servers:[],sources:[]};let c=new Set,d=[];for(let[a,f]of[["global",b.global],["project",b.project]]){if(!f)continue;let g=l(f);if(e().existsSync(g))try{let h=e().readFileSync(g,"utf-8"),i="global"===a?b.globalNestedKey:void 0;for(let a of"toml"===b.format?function(a,b){let c=new Set,d=a.split("\n"),e=!1,f=`${b}.`;for(let a of d){let d=a.trim();if(!d||d.startsWith("#"))continue;if(d.startsWith("[")&&d.endsWith("]")){let a=d.slice(1,-1).trim();if(e=a===b,a.startsWith(f)){let b=a.slice(f.length).split(".")[0]?.trim();b&&c.add(b)}continue}if(!e)continue;let g=d.match(/^([a-zA-Z0-9_-]+)\s*=\s*/);if(!g)continue;let h=g[1]?.trim();h&&c.add(h)}return[...c]}(h,b.key):function(a,b,c){try{let d=k(a),e=c?p(d,c):d[b];if(!e||"object"!=typeof e)return[];return Object.keys(e)}catch{return[]}}(h,b.key,i))c.add(a);d.push(`${a}:${f}`)}catch{continue}}return{servers:[...c].sort((a,b)=>a.localeCompare(b)),sources:d}}function s(a){let b=q(a).workspacePath;if(!e().existsSync(b))return{skills:[],sourcePath:b};let c=[];try{c=e().readdirSync(b,{withFileTypes:!0})}catch{return{skills:[],sourcePath:b}}return{skills:c.filter(a=>(a.isDirectory()||a.isSymbolicLink())&&!a.name.startsWith(".")).map(a=>a.name).sort((a,b)=>a.localeCompare(b)),sourcePath:b}}function t(a){let b=m[a];if(!b)return{hiddenRootPath:"",hiddenRootPresent:!1,conversationSignal:!1,usageSignal:!1};let c=o(b);if(!e().existsSync(c))return{hiddenRootPath:c,hiddenRootPresent:!1,conversationSignal:!1,usageSignal:!1};let d=0,f=!1,h=!1,i=0,j=[{dir:c,depth:0}];for(;j.length>0&&d<300;){let a=j.shift();if(!a)break;for(let b of function(a){try{return e().readdirSync(a,{withFileTypes:!0})}catch{return[]}}(a.dir)){if(d>=300)break;if(d+=1,"node_modules"===b.name||".git"===b.name)continue;let c=g().join(a.dir,b.name);try{let d=e().statSync(c);d.mtimeMs>i&&(i=d.mtimeMs);let g=function(a){let b=a.toLowerCase();return{conversation:/(session|history|conversation|chat|transcript)/.test(b),usage:/(usage|token|cost|billing|metric|analytics)/.test(b)}}(b.name);g.conversation&&(f=!0),g.usage&&(h=!0),b.isDirectory()&&a.depth<3&&j.push({dir:c,depth:a.depth+1})}catch{continue}}}return{hiddenRootPath:c,hiddenRootPresent:!0,conversationSignal:f,usageSignal:h,lastActivityAt:i>0?new Date(i).toISOString():void 0}}function u(a){let b=m[a];if(!b)return{installed:!1};for(let[a,c]of[["global",b.global],["project",b.project]]){if(!c)continue;let d=l(c);if(e().existsSync(d))try{let f=e().readFileSync(d,"utf-8");if("toml"===b.format){let d=function(a,b,c){let d=a.split("\n"),e=`[${b}.${c}]`,f=`[${b}]`,g=!1,h=!1,i=!1,j={};for(let a of d){let b=a.trim();if(b.startsWith("[")&&b.endsWith("]")){if(g&&(j.type||j.url)||i&&(j.type||j.url))return{found:!0,entry:j};g=b===e,h=b===f,i=!1,j={};continue}let d=b.match(/^([a-zA-Z0-9_-]+)\s*=\s*(.+)$/);if(d){let[,a,b]=d,e=b.replace(/^["'](.+)["']$/,"$1");if(g)"type"===a&&(j.type=e),"url"===a&&(j.url=e);else if(h&&a===c){let a=b.match(/\{\s*type\s*=\s*["']([^"']+)["'].*?\}/);a&&(j.type=a[1]);let c=b.match(/url\s*=\s*["']([^"']+)["']/);c&&(j.url=c[1]),i=!0}}}return g&&(j.type||j.url)||i&&(j.type||j.url)?{found:!0,entry:j}:{found:!1}}(f,b.key,"mindos");if(d.found&&d.entry){let b=d.entry,e="stdio"===b.type?"stdio":b.url?"http":"unknown";return{installed:!0,scope:a,transport:e,configPath:c,url:b.url}}}else{let d=k(f),e="global"===a&&b.globalNestedKey?p(d,b.globalNestedKey):d[b.key];if(e?.mindos){let b=e.mindos,d="stdio"===b.type?"stdio":b.url?"http":"unknown";return{installed:!0,scope:a,transport:d,configPath:c,url:b.url}}}}catch{}}return{installed:!1}}function v(a){let b=m[a];if(!b)return!1;if(b.presenceCli)try{return(0,j.execSync)("win32"===process.platform?`where ${b.presenceCli}`:`which ${b.presenceCli}`,{stdio:"pipe"}),!0}catch{}return!!b.presenceDirs?.some(a=>e().existsSync(l(a)))}},92280:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(28208),e=c(47617),f=c(62018);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}}};
@@ -1 +1 @@
1
- "use strict";exports.id=1750,exports.ids=[1750],exports.modules={15299:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{EF:()=>s,Et:()=>p,GW:()=>k,Ht:()=>r,J1:()=>l,L6:()=>j,Vu:()=>q,bK:()=>m,iY:()=>o,jw:()=>h,tM:()=>i,zl:()=>n});var e=c(60492),f=c(24608),g=a([e]);e=(g.then?(await g)():g)[0];let z=new Map,A=new Map,B=new Map;async function h(a,b){let c=await (0,f.l3)(a);if(!c)throw Error(`ACP agent not found in registry: ${a}`);return i(c,b)}async function i(a,b){let c,d,f,g,h=(0,e.JK)(a,b),i=(0,e.y2)(h);try{let a=await (0,e.DD)(h,"initialize",{protocolVersion:1,capabilities:{fs:{readTextFile:!0,writeTextFile:!0},terminal:!0},clientInfo:{name:"mindos",version:"0.6.29"}},3e4);if(a.error)throw i(),(0,e.Ue)(h),Error(`initialize failed: ${a.error.message}`);let b=a.result;b&&(c=w(b.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)}(b.authMethods))}catch(a){throw i(),(0,e.Ue)(h),a}if(d&&d.length>0)try{let b=await (0,e.DD)(h,"authenticate",{methodId:d[0].id},15e3);b.error&&console.warn(`ACP authenticate warning for ${a.id}: ${b.error.message}`)}catch{}try{let c=await (0,e.DD)(h,"session/new",{cwd:b?.cwd??process.cwd(),mcpServers:[]},15e3);if(c.error){let b=c.error.message??"session/new failed";if(/auth/i.test(b))throw i(),(0,e.Ue)(h),Error(`${a.id}: ${b}`);console.warn(`ACP session/new warning for ${a.id}: ${b}`)}else{let a=c.result;a&&(f=x(a.modes),g=y(a.configOptions))}}catch(a){if(a instanceof Error&&/auth/i.test(a.message))throw a}let j=`ses-${a.id}-${Date.now()}`,k={id:j,agentId:a.id,state:"idle",cwd:b?.cwd,createdAt:new Date().toISOString(),lastActivityAt:new Date().toISOString(),agentCapabilities:c,modes:f,configOptions:g,authMethods:d};return z.set(j,k),A.set(j,h),B.set(j,i),k}async function j(a,b,c){let d,g,h,i=await (0,f.l3)(a);if(!i)throw Error(`ACP agent not found in registry: ${a}`);let j=(0,e.JK)(i,c),k=(0,e.y2)(j);try{let a=await (0,e.DD)(j,"initialize",{protocolVersion:1,capabilities:{fs:{readTextFile:!0,writeTextFile:!0},terminal:!0},clientInfo:{name:"mindos",version:"0.6.29"}},3e4);if(a.error)throw k(),(0,e.Ue)(j),Error(`initialize failed: ${a.error.message}`);let b=a.result;b&&(d=w(b.agentCapabilities))}catch(a){throw k(),(0,e.Ue)(j),a}if(!d?.loadSession)throw k(),(0,e.Ue)(j),Error(`Agent ${a} does not support session/load (loadSession capability not declared)`);try{let a=await (0,e.DD)(j,"session/load",{sessionId:b,cwd:c?.cwd??process.cwd(),mcpServers:[]},15e3);if(a.error)throw k(),(0,e.Ue)(j),Error(`session/load failed: ${a.error.message}`);let d=a.result;d&&(g=x(d.modes),h=y(d.configOptions))}catch(a){throw k(),(0,e.Ue)(j),a}let l={id:b,agentId:i.id,state:"idle",cwd:c?.cwd,createdAt:new Date().toISOString(),lastActivityAt:new Date().toISOString(),agentCapabilities:d,modes:g,configOptions:h};return z.set(b,l),A.set(b,j),B.set(b,k),l}async function k(a,b){let{session:c,proc:d}=t(a);if(!c.agentCapabilities?.sessionCapabilities?.list)throw Error("Agent does not support session/list");let f=await (0,e.DD)(d,"session/list",{...b?.cursor?{cursor:b.cursor}:{},...b?.cwd?{cwd:b.cwd}:{}},1e4);if(f.error)throw Error(`session/list failed: ${f.error.message}`);let g=f.result;return{sessions:(Array.isArray(g?.sessions)?g.sessions:[]).map(a=>({sessionId:String(a.sessionId??""),title:"string"==typeof a.title?a.title:void 0,cwd:"string"==typeof a.cwd?a.cwd:void 0,updatedAt:"string"==typeof a.updatedAt?a.updatedAt:void 0})),nextCursor:"string"==typeof g?.nextCursor?g.nextCursor:void 0}}async function l(a,b){let{session:c,proc:d}=t(a);if("active"===c.state)throw Error(`Session ${a} is busy processing another prompt`);u(c,"active");try{let f=await (0,e.DD)(d,"session/prompt",{sessionId:a,prompt:[{type:"text",text:b}],...c.cwd?{context:{cwd:c.cwd}}:{}},6e4);if(f.error)throw u(c,"error"),Error(`session/prompt error: ${f.error.message}`);u(c,"idle");let g=f.result;return{sessionId:a,text:String(g?.text??""),done:!0,stopReason:v(g?.stopReason),toolCalls:g?.toolCalls,metadata:g?.metadata}}catch(a){throw u(c,"error"),a}}async function m(a,b,c){let{session:d,proc:f}=t(a);if("active"===d.state)throw Error(`Session ${a} is busy processing another prompt`);return u(d,"active"),new Promise((g,h)=>{let i="",j="end_turn",k=(0,e.xD)(f,b=>{if(b.result&&"object"==typeof b.result){let e=b.result,f=function(a,b){let c=b.type??"text",d={sessionId:a,type:c};switch(c){case"agent_message_chunk":case"user_message_chunk":case"agent_thought_chunk":case"text":d.text="string"==typeof b.text?b.text:"string"==typeof b.content?b.content:void 0;break;case"tool_call":case"tool_call_update":b.toolCall&&"object"==typeof b.toolCall?d.toolCall=b.toolCall:d.toolCall={toolCallId:String(b.toolCallId??""),title:"string"==typeof b.title?b.title:void 0,kind:b.kind,status:b.status??"pending",rawInput:"string"==typeof b.rawInput?b.rawInput:void 0,rawOutput:"string"==typeof b.rawOutput?b.rawOutput:void 0};break;case"plan":b.entries&&Array.isArray(b.entries)?d.plan={entries:b.entries}:b.plan&&"object"==typeof b.plan&&(d.plan=b.plan);break;case"available_commands_update":d.availableCommands=Array.isArray(b.availableCommands)?b.availableCommands:void 0;break;case"current_mode_update":d.currentModeId="string"==typeof b.currentModeId?b.currentModeId:void 0;break;case"config_option_update":d.configOptions=y(b.configOptions);break;case"session_info_update":d.sessionInfo={title:"string"==typeof b.title?b.title:void 0,updatedAt:"string"==typeof b.updatedAt?b.updatedAt:void 0};break;case"error":d.error="string"==typeof b.error?b.error:String(b.message??"Unknown error");break;case"done":break;case"tool_result":d.toolResult=b.toolResult}return d}(a,e);c(f),("agent_message_chunk"===f.type||"text"===f.type)&&f.text&&(i+=f.text),"done"===f.type&&(k(),e.stopReason&&(j=v(e.stopReason)),u(d,"idle"),g({sessionId:a,text:i,done:!0,stopReason:j})),"error"===f.type&&(k(),u(d,"error"),h(Error(f.error??"Unknown ACP error"))),"config_option_update"===f.type&&f.configOptions&&(d.configOptions=f.configOptions),"current_mode_update"===f.type&&f.currentModeId&&(d.lastActivityAt=new Date().toISOString())}}),l=()=>{k(),u(d,"error"),h(Error("ACP agent process exited unexpectedly during prompt"))};f.proc.once("exit",l);let m=()=>{f.proc.removeListener("exit",l)},n=g,o=h;g=a=>{m(),n(a)},h=a=>{m(),o(a)};try{(0,e._z)(f,"session/prompt",{sessionId:a,prompt:[{type:"text",text:b}],stream:!0,...d.cwd?{context:{cwd:d.cwd}}:{}})}catch(a){k(),u(d,"error"),h(a)}})}async function n(a){let{session:b,proc:c}=t(a);if("active"===b.state){try{await (0,e.DD)(c,"session/cancel",{sessionId:a},1e4)}catch{}u(b,"idle")}}async function o(a,b){let{session:c,proc:d}=t(a),f=await (0,e.DD)(d,"session/set_mode",{sessionId:a,modeId:b},1e4);if(f.error)throw Error(`session/set_mode failed: ${f.error.message}`);c.lastActivityAt=new Date().toISOString()}async function p(a,b,c){let{session:d,proc:f}=t(a),g=await (0,e.DD)(f,"session/set_config_option",{sessionId:a,configId:b,value:c},1e4);if(g.error)throw Error(`session/set_config_option failed: ${g.error.message}`);let h=g.result,i=y(h?.configOptions);return i&&(d.configOptions=i),d.lastActivityAt=new Date().toISOString(),d.configOptions??[]}async function q(a){let b=A.get(a);if(b?.alive){try{await (0,e.DD)(b,"session/close",{sessionId:a},5e3)}catch{}(0,e.Ue)(b)}z.delete(a),A.delete(a);let c=B.get(a);c&&(c(),B.delete(a))}function r(a){return z.get(a)}function s(){return[...z.values()]}function t(a){let b=z.get(a);if(!b)throw Error(`Session not found: ${a}`);let c=A.get(a);if(!c?.alive)throw u(b,"error"),Error(`Session process is dead: ${a}`);return{session:b,proc:c}}function u(a,b){a.state=b,a.lastActivityAt=new Date().toISOString()}function v(a){return["end_turn","max_tokens","max_turn_requests","refusal","cancelled"].includes(a)?a:"end_turn"}function w(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 x(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)}function y(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)}d()}catch(a){d(a)}})},19225:(a,b,c)=>{a.exports=c(44870)},24608:(a,b,c)=>{c.d(b,{Ew:()=>f,Rf:()=>g,l3:()=>h});var d=c(61913);let e=null;async function f(){if(e&&Date.now()-new Date(e.fetchedAt).getTime()<36e5)return e;try{var a;let b=await fetch("https://cdn.agentclientprotocol.com/registry/v1/latest/registry.json",{headers:{Accept:"application/json"},signal:AbortSignal.timeout(1e4)});if(!b.ok)return e??null;let c=await b.json(),d=(a=c)&&"object"==typeof a?(Array.isArray(a.agents)?a.agents:Array.isArray(a)?a:Object.entries(a).filter(([a])=>"version"!==a&&"$schema"!==a).map(([a,b])=>({...b,id:a}))).map(i).filter(a=>null!==a):[];return e={version:c.version??"1",agents:d,fetchedAt:new Date().toISOString()}}catch{return e??null}}async function g(){let a=await f();return a?.agents??[]}async function h(a){return(await g()).find(b=>b.id===a)??null}function i(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=j(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=j(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,k=(0,d.xX)(i),l=(0,d.ug)(i);return{id:i,name:k??c??b,description:l??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 j(a){if(!a)return"";let b=a.lastIndexOf("@");return b>0?a.slice(0,b):a}},60492:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{DD:()=>l,JK:()=>i,Ue:()=>m,_z:()=>j,xD:()=>k,y2:()=>o});var e=c(79646),f=c(61913),g=c(76223),h=a([g]);g=(h.then?(await h)():h)[0];let q=new Map,r=new Map,s=new Map,t=1;function i(a,b){let c=(0,g.readSettings)(),d=c.acpAgents?.[a.id],h=(0,f.bp)(a.id,a,d),{cmd:i,args:j}={cmd:h.cmd,args:h.args},k={...process.env,...a.env??{},...h.env??{},...b?.env??{}},l=(0,e.spawn)(i,j,{stdio:["pipe","pipe","pipe"],env:k,shell:!1,...b?.cwd?{cwd:b.cwd}:{}}),m=`acp-${a.id}-${Date.now()}`,n={id:m,agentId:a.id,proc:l,alive:!0};q.set(m,n),r.set(m,new Set),s.set(m,new Set);let o="";l.stdout?.on("data",a=>{let b=(o+=a.toString()).split("\n");for(let a of(o=b.pop()??"",b)){let b=a.trim();if(b)try{let a=JSON.parse(b);if(!a.method||void 0===a.id||"result"in a||"error"in a){let b=r.get(m);if(b)for(let c of b)c(a)}else{let b=s.get(m);if(b)for(let c of b)c(a)}}catch{}}});let p="";return l.stderr?.on("data",a=>{(p+=a.toString()).length>4096&&(p=p.slice(-4096))}),l.on("close",b=>{n.alive=!1,n.exitCode=b,b&&0!==b&&(n.spawnError=p.trim().slice(0,500)||`Process exited with code ${b}`,console.error(`[ACP] ${a.id} exited with code ${b}: ${n.spawnError}`))}),l.on("error",b=>{n.alive=!1,n.spawnError=b.message,console.error(`[ACP] ${a.id} spawn error:`,b.message)}),n}function j(a,b,c){if(!a.alive||!a.proc.stdin?.writable)throw Error(`ACP process ${a.id} is not alive`);let d=`rpc-${t++}`,e={jsonrpc:"2.0",id:d,method:b,...c?{params:c}:{}};return a.proc.stdin.write(JSON.stringify(e)+"\n"),d}function k(a,b){let c=r.get(a.id);if(!c)throw Error(`ACP process ${a.id} not found`);return c.add(b),()=>{c.delete(b)}}function l(a,b,c,d=3e4){return new Promise((e,f)=>{let g;if(!a.alive){let b=a.spawnError||"Process is not alive";f(Error(`Agent "${a.agentId}" is not running: ${b}. Please check that the agent is installed and available on your PATH.`));return}try{g=j(a,b,c)}catch(a){f(a);return}let h=()=>{clearTimeout(i),l(),a.proc.removeListener("close",m),a.proc.removeListener("error",n)},i=setTimeout(()=>{h(),f(Error(`ACP RPC timeout after ${d}ms for method: ${b}`))},d),l=k(a,a=>{String(a.id)===g&&(h(),e(a))}),m=b=>{h();let c=a.spawnError||`Process exited with code ${b}`;f(Error(`Agent "${a.agentId}" exited unexpectedly: ${c}. Please check that the agent is installed and available on your PATH.`))},n=b=>{h(),f(Error(`Agent "${a.agentId}" failed to start: ${b.message}. Please check that the agent is installed and available on your PATH.`))};a.proc.once("close",m),a.proc.once("error",n)})}function m(a){a.alive&&a.proc.pid&&(a.proc.kill("SIGTERM"),setTimeout(()=>{a.alive&&a.proc.kill("SIGKILL")},5e3)),a.alive=!1,q.delete(a.id),r.delete(a.id),s.delete(a.id);let b=u.get(a.id);if(b){for(let a of b.values())null===a.child.exitCode&&a.child.kill("SIGTERM");u.delete(a.id)}}function n(a,b,c){if(!a.alive||!a.proc.stdin?.writable)throw Error(`ACP process ${a.id} is not alive`);a.proc.stdin.write(JSON.stringify({jsonrpc:"2.0",id:b,result:c})+"\n")}function o(a){var b=b=>{var d,e,f;let g=b.method,h=b.params??{};switch(g){case"fs/read_text_file":{let d=String(h.path??"");if(!d)return void n(a,b.id,{error:{code:-32602,message:"path is required"}});try{let e=c(29021),f="number"==typeof h.line?h.line:void 0,g="number"==typeof h.limit?h.limit:void 0,i=e.readFileSync(d,"utf-8");if(void 0!==f||void 0!==g){let a=i.split("\n"),b=(f??1)-1,c=void 0!==g?b+g:a.length;i=a.slice(Math.max(0,b),c).join("\n")}n(a,b.id,{content:i})}catch(c){n(a,b.id,{error:{code:-32002,message:c.message}})}return}case"fs/write_text_file":{let d=String(h.path??""),e=String(h.content??"");if(!d)return void n(a,b.id,{error:{code:-32602,message:"path is required"}});try{let f=c(29021),g=c(33873).dirname(d);f.existsSync(g)||f.mkdirSync(g,{recursive:!0}),f.writeFileSync(d,e,"utf-8"),n(a,b.id,{})}catch(c){n(a,b.id,{error:{code:-32603,message:c.message}})}return}case"terminal/create":{let e=String(h.command??""),f=Array.isArray(h.args)?h.args.map(String):[],g="string"==typeof h.cwd?h.cwd:void 0,i=h.env&&"object"==typeof h.env?h.env:void 0,j="number"==typeof h.outputByteLimit?h.outputByteLimit:1e6;if(!e)return void n(a,b.id,{error:{code:-32602,message:"command is required"}});let k=`term-${Date.now()}-${Math.random().toString(36).slice(2,6)}`;try{let h,{spawn:l}=c(79646),m=l(e,f,{cwd:g,env:{...process.env,...i??{}},shell:!0,stdio:["pipe","pipe","pipe"]}),o="",p=!1;m.stdout?.on("data",a=>{o.length<j&&(o+=a.toString()).length>j&&(o=o.slice(0,j),p=!0)}),m.stderr?.on("data",a=>{o.length<j&&(o+=a.toString()).length>j&&(o=o.slice(0,j),p=!0)}),(d=a.id,(h=u.get(d))||(h=new Map,u.set(d,h)),h).set(k,{child:m,output:()=>o,truncated:()=>p}),n(a,b.id,{terminalId:k})}catch(c){n(a,b.id,{error:{code:-32603,message:c.message}})}return}case"terminal/output":{let c=String(h.terminalId??""),d=p(a.id,c);if(!d)return void n(a,b.id,{error:{code:-32002,message:`Terminal not found: ${c}`}});let e=null!==d.child.exitCode?{exitCode:d.child.exitCode}:void 0;n(a,b.id,{output:d.output(),truncated:d.truncated(),exitStatus:e});return}case"terminal/kill":{let c=String(h.terminalId??""),d=p(a.id,c);if(!d)return void n(a,b.id,{error:{code:-32002,message:`Terminal not found: ${c}`}});d.child.kill("SIGTERM"),n(a,b.id,{});return}case"terminal/wait_for_exit":{let c=String(h.terminalId??""),d=p(a.id,c);if(!d)return void n(a,b.id,{error:{code:-32002,message:`Terminal not found: ${c}`}});if(null!==d.child.exitCode)return void n(a,b.id,{exitCode:d.child.exitCode,signal:d.child.signalCode});d.child.on("exit",(c,d)=>{n(a,b.id,{exitCode:c,signal:d})});return}case"terminal/release":{let c=String(h.terminalId??""),d=p(a.id,c);if(!d)return void n(a,b.id,{error:{code:-32002,message:`Terminal not found: ${c}`}});null===d.child.exitCode&&d.child.kill("SIGTERM"),e=a.id,f=c,u.get(e)?.delete(f),n(a,b.id,{});return}case"session/request_permission":n(a,b.id,{outcome:{selected:{optionId:"allow_once"}}});return;default:n(a,b.id,{})}};let d=s.get(a.id);if(!d)throw Error(`ACP process ${a.id} not found`);return d.add(b),()=>{d.delete(b)}}let u=new Map;function p(a,b){return u.get(a)?.get(b)}d()}catch(a){d(a)}})},92280:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(28208),e=c(47617),f=c(62018);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}}};
1
+ "use strict";exports.id=1750,exports.ids=[1750],exports.modules={15299:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{EF:()=>s,Et:()=>p,GW:()=>k,Ht:()=>r,J1:()=>l,L6:()=>j,Vu:()=>q,bK:()=>m,iY:()=>o,jw:()=>h,tM:()=>i,zl:()=>n});var e=c(60492),f=c(24608),g=a([e]);e=(g.then?(await g)():g)[0];let z=new Map,A=new Map,B=new Map;async function h(a,b){let c=await (0,f.l3)(a);if(!c)throw Error(`ACP agent not found in registry: ${a}`);return i(c,b)}async function i(a,b){let c,d,f,g,h=(0,e.JK)(a,b),i=(0,e.y2)(h);try{let a=await (0,e.DD)(h,"initialize",{protocolVersion:1,capabilities:{fs:{readTextFile:!0,writeTextFile:!0},terminal:!0},clientInfo:{name:"mindos",version:"0.6.29"}},3e4);if(a.error)throw i(),(0,e.Ue)(h),Error(`initialize failed: ${a.error.message}`);let b=a.result;b&&(c=w(b.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)}(b.authMethods))}catch(a){throw i(),(0,e.Ue)(h),a}if(d&&d.length>0)try{let b=await (0,e.DD)(h,"authenticate",{methodId:d[0].id},15e3);b.error&&console.warn(`ACP authenticate warning for ${a.id}: ${b.error.message}`)}catch{}try{let c=await (0,e.DD)(h,"session/new",{cwd:b?.cwd??process.cwd(),mcpServers:[]},15e3);if(c.error){let b=c.error.message??"session/new failed";if(/auth/i.test(b))throw i(),(0,e.Ue)(h),Error(`${a.id}: ${b}`);console.warn(`ACP session/new warning for ${a.id}: ${b}`)}else{let a=c.result;a&&(f=x(a.modes),g=y(a.configOptions))}}catch(a){if(a instanceof Error&&/auth/i.test(a.message))throw a}let j=`ses-${a.id}-${Date.now()}`,k={id:j,agentId:a.id,state:"idle",cwd:b?.cwd,createdAt:new Date().toISOString(),lastActivityAt:new Date().toISOString(),agentCapabilities:c,modes:f,configOptions:g,authMethods:d};return z.set(j,k),A.set(j,h),B.set(j,i),k}async function j(a,b,c){let d,g,h,i=await (0,f.l3)(a);if(!i)throw Error(`ACP agent not found in registry: ${a}`);let j=(0,e.JK)(i,c),k=(0,e.y2)(j);try{let a=await (0,e.DD)(j,"initialize",{protocolVersion:1,capabilities:{fs:{readTextFile:!0,writeTextFile:!0},terminal:!0},clientInfo:{name:"mindos",version:"0.6.29"}},3e4);if(a.error)throw k(),(0,e.Ue)(j),Error(`initialize failed: ${a.error.message}`);let b=a.result;b&&(d=w(b.agentCapabilities))}catch(a){throw k(),(0,e.Ue)(j),a}if(!d?.loadSession)throw k(),(0,e.Ue)(j),Error(`Agent ${a} does not support session/load (loadSession capability not declared)`);try{let a=await (0,e.DD)(j,"session/load",{sessionId:b,cwd:c?.cwd??process.cwd(),mcpServers:[]},15e3);if(a.error)throw k(),(0,e.Ue)(j),Error(`session/load failed: ${a.error.message}`);let d=a.result;d&&(g=x(d.modes),h=y(d.configOptions))}catch(a){throw k(),(0,e.Ue)(j),a}let l={id:b,agentId:i.id,state:"idle",cwd:c?.cwd,createdAt:new Date().toISOString(),lastActivityAt:new Date().toISOString(),agentCapabilities:d,modes:g,configOptions:h};return z.set(b,l),A.set(b,j),B.set(b,k),l}async function k(a,b){let{session:c,proc:d}=t(a);if(!c.agentCapabilities?.sessionCapabilities?.list)throw Error("Agent does not support session/list");let f=await (0,e.DD)(d,"session/list",{...b?.cursor?{cursor:b.cursor}:{},...b?.cwd?{cwd:b.cwd}:{}},1e4);if(f.error)throw Error(`session/list failed: ${f.error.message}`);let g=f.result;return{sessions:(Array.isArray(g?.sessions)?g.sessions:[]).map(a=>({sessionId:String(a.sessionId??""),title:"string"==typeof a.title?a.title:void 0,cwd:"string"==typeof a.cwd?a.cwd:void 0,updatedAt:"string"==typeof a.updatedAt?a.updatedAt:void 0})),nextCursor:"string"==typeof g?.nextCursor?g.nextCursor:void 0}}async function l(a,b){let{session:c,proc:d}=t(a);if("active"===c.state)throw Error(`Session ${a} is busy processing another prompt`);u(c,"active");try{let f=await (0,e.DD)(d,"session/prompt",{sessionId:a,prompt:[{type:"text",text:b}],...c.cwd?{context:{cwd:c.cwd}}:{}},6e4);if(f.error)throw u(c,"error"),Error(`session/prompt error: ${f.error.message}`);u(c,"idle");let g=f.result;return{sessionId:a,text:String(g?.text??""),done:!0,stopReason:v(g?.stopReason),toolCalls:g?.toolCalls,metadata:g?.metadata}}catch(a){throw u(c,"error"),a}}async function m(a,b,c){let{session:d,proc:f}=t(a);if("active"===d.state)throw Error(`Session ${a} is busy processing another prompt`);return u(d,"active"),new Promise((g,h)=>{let i="",j="end_turn",k=(0,e.xD)(f,b=>{if(b.result&&"object"==typeof b.result){let e=b.result,f=function(a,b){let c=b.type??"text",d={sessionId:a,type:c};switch(c){case"agent_message_chunk":case"user_message_chunk":case"agent_thought_chunk":case"text":d.text="string"==typeof b.text?b.text:"string"==typeof b.content?b.content:void 0;break;case"tool_call":case"tool_call_update":b.toolCall&&"object"==typeof b.toolCall?d.toolCall=b.toolCall:d.toolCall={toolCallId:String(b.toolCallId??""),title:"string"==typeof b.title?b.title:void 0,kind:b.kind,status:b.status??"pending",rawInput:"string"==typeof b.rawInput?b.rawInput:void 0,rawOutput:"string"==typeof b.rawOutput?b.rawOutput:void 0};break;case"plan":b.entries&&Array.isArray(b.entries)?d.plan={entries:b.entries}:b.plan&&"object"==typeof b.plan&&(d.plan=b.plan);break;case"available_commands_update":d.availableCommands=Array.isArray(b.availableCommands)?b.availableCommands:void 0;break;case"current_mode_update":d.currentModeId="string"==typeof b.currentModeId?b.currentModeId:void 0;break;case"config_option_update":d.configOptions=y(b.configOptions);break;case"session_info_update":d.sessionInfo={title:"string"==typeof b.title?b.title:void 0,updatedAt:"string"==typeof b.updatedAt?b.updatedAt:void 0};break;case"error":d.error="string"==typeof b.error?b.error:String(b.message??"Unknown error");break;case"done":break;case"tool_result":d.toolResult=b.toolResult}return d}(a,e);c(f),("agent_message_chunk"===f.type||"text"===f.type)&&f.text&&(i+=f.text),"done"===f.type&&(k(),e.stopReason&&(j=v(e.stopReason)),u(d,"idle"),g({sessionId:a,text:i,done:!0,stopReason:j})),"error"===f.type&&(k(),u(d,"error"),h(Error(f.error??"Unknown ACP error"))),"config_option_update"===f.type&&f.configOptions&&(d.configOptions=f.configOptions),"current_mode_update"===f.type&&f.currentModeId&&(d.lastActivityAt=new Date().toISOString())}}),l=()=>{k(),u(d,"error"),h(Error("ACP agent process exited unexpectedly during prompt"))};f.proc.once("exit",l);let m=()=>{f.proc.removeListener("exit",l)},n=g,o=h;g=a=>{m(),n(a)},h=a=>{m(),o(a)};try{(0,e._z)(f,"session/prompt",{sessionId:a,prompt:[{type:"text",text:b}],stream:!0,...d.cwd?{context:{cwd:d.cwd}}:{}})}catch(a){k(),u(d,"error"),h(a)}})}async function n(a){let{session:b,proc:c}=t(a);if("active"===b.state){try{await (0,e.DD)(c,"session/cancel",{sessionId:a},1e4)}catch{}u(b,"idle")}}async function o(a,b){let{session:c,proc:d}=t(a),f=await (0,e.DD)(d,"session/set_mode",{sessionId:a,modeId:b},1e4);if(f.error)throw Error(`session/set_mode failed: ${f.error.message}`);c.lastActivityAt=new Date().toISOString()}async function p(a,b,c){let{session:d,proc:f}=t(a),g=await (0,e.DD)(f,"session/set_config_option",{sessionId:a,configId:b,value:c},1e4);if(g.error)throw Error(`session/set_config_option failed: ${g.error.message}`);let h=g.result,i=y(h?.configOptions);return i&&(d.configOptions=i),d.lastActivityAt=new Date().toISOString(),d.configOptions??[]}async function q(a){let b=A.get(a);if(b?.alive){try{await (0,e.DD)(b,"session/close",{sessionId:a},5e3)}catch{}(0,e.Ue)(b)}z.delete(a),A.delete(a);let c=B.get(a);c&&(c(),B.delete(a))}function r(a){return z.get(a)}function s(){return[...z.values()]}function t(a){let b=z.get(a);if(!b)throw Error(`Session not found: ${a}`);let c=A.get(a);if(!c?.alive)throw u(b,"error"),Error(`Session process is dead: ${a}`);return{session:b,proc:c}}function u(a,b){a.state=b,a.lastActivityAt=new Date().toISOString()}function v(a){return["end_turn","max_tokens","max_turn_requests","refusal","cancelled"].includes(a)?a:"end_turn"}function w(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 x(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)}function y(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)}d()}catch(a){d(a)}})},19225:(a,b,c)=>{a.exports=c(44870)},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()<36e5)return f;let a=(e||(e=function(){let a={gemini:"gemini",claude:"claude-acp",codebuddy:"codebuddy-code",codex:"codex-acp",pi:"pi-acp"},b=new Set,c=[];for(let[e,f]of Object.entries(d.z8)){let d=a[f.binary];(!d||d===e)&&(b.has(f.binary)||(b.add(f.binary),c.push({id:e,name:f.displayName??e,description:f.description??"",transport:"npx"===f.cmd?"npx":"stdio",command:f.cmd,args:f.args,packageName:f.installCmd?.match(/npm install -g (.+)/)?.[1]})))}return c}()),e);try{var b;let c=await fetch("https://cdn.agentclientprotocol.com/registry/v1/latest/registry.json",{headers:{Accept:"application/json"},signal:AbortSignal.timeout(1e4)});if(!c.ok)return f??h(a,"builtin");let d=await c.json(),e=(b=d)&&"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):[],g=function(a,b){let c=new Map;for(let b of a)c.set(b.id,b);for(let a of b)c.set(a.id,a);return Array.from(c.values())}(a,e);return f={version:d.version??"1",agents:g,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){return(await i()).find(b=>b.id===a)??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}},60492:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{DD:()=>l,JK:()=>i,Ue:()=>m,_z:()=>j,xD:()=>k,y2:()=>o});var e=c(79646),f=c(61913),g=c(76223),h=a([g]);g=(h.then?(await h)():h)[0];let q=new Map,r=new Map,s=new Map,t=1;function i(a,b){let c=(0,g.readSettings)(),d=c.acpAgents?.[a.id],h=(0,f.bp)(a.id,a,d),{cmd:i,args:j}={cmd:h.cmd,args:h.args},k={...process.env,...a.env??{},...h.env??{},...b?.env??{}},l=(0,e.spawn)(i,j,{stdio:["pipe","pipe","pipe"],env:k,shell:!1,...b?.cwd?{cwd:b.cwd}:{}}),m=`acp-${a.id}-${Date.now()}`,n={id:m,agentId:a.id,proc:l,alive:!0};q.set(m,n),r.set(m,new Set),s.set(m,new Set);let o="";l.stdout?.on("data",a=>{let b=(o+=a.toString()).split("\n");for(let a of(o=b.pop()??"",b)){let b=a.trim();if(b)try{let a=JSON.parse(b);if(!a.method||void 0===a.id||"result"in a||"error"in a){let b=r.get(m);if(b)for(let c of b)c(a)}else{let b=s.get(m);if(b)for(let c of b)c(a)}}catch{}}});let p="";return l.stderr?.on("data",a=>{(p+=a.toString()).length>4096&&(p=p.slice(-4096))}),l.on("close",b=>{n.alive=!1,n.exitCode=b,b&&0!==b&&(n.spawnError=p.trim().slice(0,500)||`Process exited with code ${b}`,console.error(`[ACP] ${a.id} exited with code ${b}: ${n.spawnError}`))}),l.on("error",b=>{n.alive=!1,n.spawnError=b.message,console.error(`[ACP] ${a.id} spawn error:`,b.message)}),n}function j(a,b,c){if(!a.alive||!a.proc.stdin?.writable)throw Error(`ACP process ${a.id} is not alive`);let d=`rpc-${t++}`,e={jsonrpc:"2.0",id:d,method:b,...c?{params:c}:{}};return a.proc.stdin.write(JSON.stringify(e)+"\n"),d}function k(a,b){let c=r.get(a.id);if(!c)throw Error(`ACP process ${a.id} not found`);return c.add(b),()=>{c.delete(b)}}function l(a,b,c,d=3e4){return new Promise((e,f)=>{let g;if(!a.alive){let b=a.spawnError||"Process is not alive";f(Error(`Agent "${a.agentId}" is not running: ${b}. Please check that the agent is installed and available on your PATH.`));return}try{g=j(a,b,c)}catch(a){f(a);return}let h=()=>{clearTimeout(i),l(),a.proc.removeListener("close",m),a.proc.removeListener("error",n)},i=setTimeout(()=>{h(),f(Error(`ACP RPC timeout after ${d}ms for method: ${b}`))},d),l=k(a,a=>{String(a.id)===g&&(h(),e(a))}),m=b=>{h();let c=a.spawnError||`Process exited with code ${b}`;f(Error(`Agent "${a.agentId}" exited unexpectedly: ${c}. Please check that the agent is installed and available on your PATH.`))},n=b=>{h(),f(Error(`Agent "${a.agentId}" failed to start: ${b.message}. Please check that the agent is installed and available on your PATH.`))};a.proc.once("close",m),a.proc.once("error",n)})}function m(a){a.alive&&a.proc.pid&&(a.proc.kill("SIGTERM"),setTimeout(()=>{a.alive&&a.proc.kill("SIGKILL")},5e3)),a.alive=!1,q.delete(a.id),r.delete(a.id),s.delete(a.id);let b=u.get(a.id);if(b){for(let a of b.values())null===a.child.exitCode&&a.child.kill("SIGTERM");u.delete(a.id)}}function n(a,b,c){if(!a.alive||!a.proc.stdin?.writable)throw Error(`ACP process ${a.id} is not alive`);a.proc.stdin.write(JSON.stringify({jsonrpc:"2.0",id:b,result:c})+"\n")}function o(a){var b=b=>{var d,e,f;let g=b.method,h=b.params??{};switch(g){case"fs/read_text_file":{let d=String(h.path??"");if(!d)return void n(a,b.id,{error:{code:-32602,message:"path is required"}});try{let e=c(29021),f="number"==typeof h.line?h.line:void 0,g="number"==typeof h.limit?h.limit:void 0,i=e.readFileSync(d,"utf-8");if(void 0!==f||void 0!==g){let a=i.split("\n"),b=(f??1)-1,c=void 0!==g?b+g:a.length;i=a.slice(Math.max(0,b),c).join("\n")}n(a,b.id,{content:i})}catch(c){n(a,b.id,{error:{code:-32002,message:c.message}})}return}case"fs/write_text_file":{let d=String(h.path??""),e=String(h.content??"");if(!d)return void n(a,b.id,{error:{code:-32602,message:"path is required"}});try{let f=c(29021),g=c(33873).dirname(d);f.existsSync(g)||f.mkdirSync(g,{recursive:!0}),f.writeFileSync(d,e,"utf-8"),n(a,b.id,{})}catch(c){n(a,b.id,{error:{code:-32603,message:c.message}})}return}case"terminal/create":{let e=String(h.command??""),f=Array.isArray(h.args)?h.args.map(String):[],g="string"==typeof h.cwd?h.cwd:void 0,i=h.env&&"object"==typeof h.env?h.env:void 0,j="number"==typeof h.outputByteLimit?h.outputByteLimit:1e6;if(!e)return void n(a,b.id,{error:{code:-32602,message:"command is required"}});let k=`term-${Date.now()}-${Math.random().toString(36).slice(2,6)}`;try{let h,{spawn:l}=c(79646),m=l(e,f,{cwd:g,env:{...process.env,...i??{}},shell:!0,stdio:["pipe","pipe","pipe"]}),o="",p=!1;m.stdout?.on("data",a=>{o.length<j&&(o+=a.toString()).length>j&&(o=o.slice(0,j),p=!0)}),m.stderr?.on("data",a=>{o.length<j&&(o+=a.toString()).length>j&&(o=o.slice(0,j),p=!0)}),(d=a.id,(h=u.get(d))||(h=new Map,u.set(d,h)),h).set(k,{child:m,output:()=>o,truncated:()=>p}),n(a,b.id,{terminalId:k})}catch(c){n(a,b.id,{error:{code:-32603,message:c.message}})}return}case"terminal/output":{let c=String(h.terminalId??""),d=p(a.id,c);if(!d)return void n(a,b.id,{error:{code:-32002,message:`Terminal not found: ${c}`}});let e=null!==d.child.exitCode?{exitCode:d.child.exitCode}:void 0;n(a,b.id,{output:d.output(),truncated:d.truncated(),exitStatus:e});return}case"terminal/kill":{let c=String(h.terminalId??""),d=p(a.id,c);if(!d)return void n(a,b.id,{error:{code:-32002,message:`Terminal not found: ${c}`}});d.child.kill("SIGTERM"),n(a,b.id,{});return}case"terminal/wait_for_exit":{let c=String(h.terminalId??""),d=p(a.id,c);if(!d)return void n(a,b.id,{error:{code:-32002,message:`Terminal not found: ${c}`}});if(null!==d.child.exitCode)return void n(a,b.id,{exitCode:d.child.exitCode,signal:d.child.signalCode});d.child.on("exit",(c,d)=>{n(a,b.id,{exitCode:c,signal:d})});return}case"terminal/release":{let c=String(h.terminalId??""),d=p(a.id,c);if(!d)return void n(a,b.id,{error:{code:-32002,message:`Terminal not found: ${c}`}});null===d.child.exitCode&&d.child.kill("SIGTERM"),e=a.id,f=c,u.get(e)?.delete(f),n(a,b.id,{});return}case"session/request_permission":n(a,b.id,{outcome:{selected:{optionId:"allow_once"}}});return;default:n(a,b.id,{})}};let d=s.get(a.id);if(!d)throw Error(`ACP process ${a.id} not found`);return d.add(b),()=>{d.delete(b)}}let u=new Map;function p(a,b){return u.get(a)?.get(b)}d()}catch(a){d(a)}})},92280:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(28208),e=c(47617),f=c(62018);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}}};
@@ -0,0 +1,52 @@
1
+ "use strict";exports.id=3113,exports.ids=[3113],exports.modules={1160:(a,b,c)=>{c.d(b,{GL:()=>d,_l:()=>e,e1:()=>f}),c(29021),c(33873);let d=a=>`# ${a} Instruction Set
2
+
3
+ ## Goal
4
+
5
+ - Define local execution rules for this directory.
6
+
7
+ ## Local Rules
8
+
9
+ - Read root \`INSTRUCTION.md\` first.
10
+ - Then read this directory \`README.md\` for navigation.
11
+ - Keep edits minimal, structured, and traceable.
12
+
13
+ ## Execution Order
14
+
15
+ 1. Root \`INSTRUCTION.md\`
16
+ 2. This directory \`INSTRUCTION.md\`
17
+ 3. This directory \`README.md\` and target files
18
+
19
+ ## Boundary
20
+
21
+ - Root rules win on conflict.
22
+ `,e=a=>`# ${a}
23
+
24
+ ## 📁 Structure
25
+
26
+ \`\`\`bash
27
+ ${a}/
28
+ ├── INSTRUCTION.md
29
+ ├── README.md
30
+ └── (your files here)
31
+ \`\`\`
32
+
33
+ ## 💡 Usage
34
+
35
+ (Describe the purpose and usage of this space.)
36
+ `;function f(a){return a.replace(/^[\p{Emoji_Presentation}\p{Extended_Pictographic}\s]+/u,"")||a}},4120:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{kh:()=>o});var e=c(29021),f=c.n(e),g=c(33873),h=c.n(g),i=c(21820),j=c.n(i),k=c(61374),l=c(27313),m=c(58519),n=a([l,m]);[l,m]=n.then?(await n)():n;let p=h().join(j().homedir(),".mindos","config.json"),q={ai:{activeProvider:"",providers:[]},mindRoot:""};function o(){return function(){try{var a;let c=f().readFileSync(p,"utf-8"),d=JSON.parse(c),e=d.ai,g=e&&!Array.isArray(e.providers),i={ai:function(a){let b=a.ai;if(!b)return{...q.ai};if(Array.isArray(b.providers)){let a=(0,m.S9)(b.providers);return{activeProvider:"string"==typeof b.activeProvider?b.activeProvider:"",providers:a}}let c=(0,m.Ko)(a);return c?{activeProvider:c.activeProvider,providers:c.providers}:{...q.ai}}(d),agent:function(a){if(!a||"object"!=typeof a)return;let b={};return"number"==typeof a.maxSteps&&(b.maxSteps=Math.min(30,Math.max(1,a.maxSteps))),"boolean"==typeof a.enableThinking&&(b.enableThinking=a.enableThinking),"number"==typeof a.thinkingBudget&&(b.thinkingBudget=Math.min(5e4,Math.max(1e3,a.thinkingBudget))),("auto"===a.contextStrategy||"off"===a.contextStrategy)&&(b.contextStrategy=a.contextStrategy),"number"==typeof a.reconnectRetries&&(b.reconnectRetries=Math.min(10,Math.max(0,a.reconnectRetries))),Object.keys(b).length>0?b:void 0}(d.agent),acpAgents:(a=d.acpAgents,(0,k.gG)(a)),mindRoot:d.mindRoot??q.mindRoot,webPassword:"string"==typeof d.webPassword?d.webPassword:void 0,authToken:"string"==typeof d.authToken?d.authToken:void 0,mcpPort:"number"==typeof d.mcpPort?d.mcpPort:void 0,port:"number"==typeof d.port?d.port:void 0,startMode:"string"==typeof d.startMode?d.startMode:void 0,setupPending:!0===d.setupPending||void 0,disabledSkills:Array.isArray(d.disabledSkills)?d.disabledSkills:void 0,guideState:function(a){if(!a||"object"!=typeof a||!0!==a.active)return;let b="en"===a.template||"zh"===a.template||"empty"===a.template?a.template:"en";return{active:!0,dismissed:!0===a.dismissed,template:b,step1Done:!0===a.step1Done,askedAI:!0===a.askedAI,nextStepIndex:"number"==typeof a.nextStepIndex?a.nextStepIndex:0,walkthroughStep:"number"==typeof a.walkthroughStep?a.walkthroughStep:void 0,walkthroughDismissed:"boolean"==typeof a.walkthroughDismissed?a.walkthroughDismissed:void 0}}(d.guideState),baseUrlCompat:(()=>{let a=d.baseUrlCompat;if(!a||"object"!=typeof a)return;let b={};for(let[c,d]of Object.entries(a))("streaming"===d||"non-streaming"===d)&&(b[c]=d);return Object.keys(b).length>0?b:void 0})(),connectionMode:function(a){if(a.connectionMode&&"object"==typeof a.connectionMode){let b=a.connectionMode;if("boolean"==typeof b.cli&&"boolean"==typeof b.mcp)return{cli:b.cli,mcp:b.mcp}}let b=!0===a.setupPending||!a.mindRoot;return{cli:!0,mcp:!b}}(d),customAgents:Array.isArray(d.customAgents)?d.customAgents:void 0};if(g)try{var b=i;let a=h().dirname(p);f().existsSync(a)||f().mkdirSync(a,{recursive:!0});let c={};try{c=JSON.parse(f().readFileSync(p,"utf-8"))}catch{}let d={...c,ai:b.ai,mindRoot:b.mindRoot};void 0!==b.agent&&(d.agent=b.agent),void 0!==b.webPassword&&(d.webPassword=b.webPassword),void 0!==b.authToken&&(d.authToken=b.authToken),void 0!==b.port&&(d.port=b.port),void 0!==b.mcpPort&&(d.mcpPort=b.mcpPort),void 0!==b.startMode&&(d.startMode=b.startMode),void 0!==b.disabledSkills&&(d.disabledSkills=b.disabledSkills),void 0!==b.guideState&&(d.guideState=b.guideState),void 0!==b.acpAgents&&(d.acpAgents=b.acpAgents),void 0!==b.baseUrlCompat&&(d.baseUrlCompat=b.baseUrlCompat),void 0!==b.connectionMode&&(d.connectionMode=b.connectionMode),void 0!==b.customAgents&&(d.customAgents=b.customAgents),delete d.customProviders,"setupPending"in b&&(b.setupPending?d.setupPending=!0:delete d.setupPending),"setupPort"in b&&(b.setupPort?d.setupPort=b.setupPort:delete d.setupPort),f().writeFileSync(p,JSON.stringify(d,null,2)+"\n","utf-8")}catch{}return i}catch{return{...q,ai:{...q.ai,providers:[]},setupPending:!0,connectionMode:{cli:!0,mcp:!1}}}}().mindRoot||process.env.MIND_ROOT||h().join(j().homedir(),"MindOS","mind")}d()}catch(a){d(a)}})},14432:(a,b,c)=>{c.d(b,{Xs:()=>B,As:()=>x,rt:()=>e.rt,x3:()=>e.x3,_E:()=>w,H5:()=>e.H5,OV:()=>e.OV});var d=c(99863),e=c(18451),f=c(29021),g=c.n(f);c(79748);var h=c(33873),i=c.n(h);let j=new Set([".git","node_modules","app",".next",".DS_Store","mcp",".media"]),k=new Set([".md",".csv",".pdf",".png",".jpg",".jpeg",".gif",".webp",".svg",".bmp",".ico",".mp3",".wav",".m4a",".ogg",".flac",".aac",".mp4",".webm",".mov",".mkv"]),l=new Set(["INSTRUCTION.md","README.md","CONFIG.json","CHANGELOG.md"]);function m(a,b,c={}){let d,e=i().resolve(a),f=b??e,h=c.ignoredDirs??j,n=c.allowedExtensions??k;try{d=g().readdirSync(f,{withFileTypes:!0})}catch{return[]}let o=[];for(let b of d){let d=i().join(f,b.name);if(b.isDirectory()){if(h.has(b.name))continue;o.push(...m(a,d,c))}else if(b.isFile()){if(f===e&&l.has(b.name))continue;let a=i().extname(b.name).toLowerCase();n.has(a)&&o.push(i().relative(e,d))}}return o}var n=c(21820),o=c.n(n),p=c(89531);let q=/[\u4e00-\u9fff\u3040-\u309f\u30a0-\u30ff\uac00-\ud7af]/,r="u">typeof Intl&&Intl.Segmenter?new Intl.Segmenter("zh",{granularity:"word"}):null;function s(a){let b=new Set,c=a.toLowerCase(),d=c.match(/[a-z0-9_$@#]+/g);if(d)for(let a of d)a.length>=2&&b.add(a);if(q.test(c))if(r)for(let{segment:a,isWordLike:d}of r.segment(c)){if(!d)continue;let c=a.trim();if(c)for(let a of(b.add(c),c))q.test(a)&&b.add(a)}else{let a=[];for(let d of c)q.test(d)?a.push(d):a.length>0&&(t(a,b),a.length=0);a.length>0&&t(a,b)}return b}function t(a,b){for(let c=0;c<a.length;c++)b.add(a[c]),c+1<a.length&&b.add(a[c]+a[c+1])}class u{rebuild(a){let b=m(a),c=new Map,f=new Map,g=new Map,h=0;for(let j of b){let b;if(".pdf"===i().extname(j).toLowerCase())try{let c=(0,d.eX)(a,j);if(!(b=(0,p.b)(c)))continue}catch{continue}else try{b=(0,e.TA)(a,j)}catch{continue}f.set(j,b.length),h+=b.length,b.length>5e4&&(b=b.slice(0,5e4));let k=s(j+"\n"+b);for(let a of(g.set(j,k),k)){let b=c.get(a);b||(b=new Set,c.set(a,b)),b.add(j)}}this.invertedIndex=c,this.builtForRoot=a,this.fileCount=b.length,this.docLengths=f,this.totalChars=h,this.fileTokens=g}invalidate(){this.invertedIndex=null,this.builtForRoot=null,this.fileCount=0,this.docLengths.clear(),this.totalChars=0,this.fileTokens.clear()}removeFile(a){if(!this.invertedIndex)return;let b=this.fileTokens.get(a);if(b){for(let c of b)this.invertedIndex.get(c)?.delete(a);this.fileTokens.delete(a)}let c=this.docLengths.get(a)??0;this.totalChars-=c,this.docLengths.delete(a),this.fileCount=Math.max(0,this.fileCount-1)}addFile(a,b){let c;if(!this.invertedIndex)return;if(".pdf"===i().extname(b).toLowerCase())try{let e=(0,d.eX)(a,b);if(!(c=(0,p.b)(e)))return}catch{return}else try{c=(0,e.TA)(a,b)}catch{return}this.docLengths.set(b,c.length),this.totalChars+=c.length,this.fileCount++,c.length>5e4&&(c=c.slice(0,5e4));let f=s(b+"\n"+c);for(let a of(this.fileTokens.set(b,f),f)){let c=this.invertedIndex.get(a);c||(c=new Set,this.invertedIndex.set(a,c)),c.add(b)}}updateFile(a,b){this.invertedIndex&&(this.removeFile(b),this.addFile(a,b))}isBuiltFor(a){return null!==this.invertedIndex&&this.builtForRoot===a}isBuilt(){return null!==this.invertedIndex}getFileCount(){return this.fileCount}getAvgDocLength(){return this.fileCount>0?this.totalChars/this.fileCount:0}getDocLength(a){return this.docLengths.get(a)??0}getDocFrequency(a){return this.invertedIndex?this.invertedIndex.get(a)?.size??0:0}getCandidatesUnion(a){if(!a.trim()||!this.invertedIndex)return null;let b=s(a.toLowerCase().trim());if(0===b.size)return null;let c=new Map;for(let a of b){let b=this.invertedIndex.get(a);if(b)for(let a of b)c.set(a,(c.get(a)??0)+1)}if(0===c.size)return[];let d=b.size;if(d>=3){let a=Math.max(1,Math.floor(d/2)),b=[...c.entries()].filter(([,b])=>b>=a).map(([a])=>a);if(b.length>0)return b}return[...c.keys()]}getCandidates(a){if(!a.trim()||!this.invertedIndex)return null;let b=s(a.toLowerCase().trim());if(0===b.size)return null;let c=null;for(let a of b){let b=this.invertedIndex.get(a);if(!b)return[];if(null===c)c=new Set(b);else{for(let a of c)b.has(a)||c.delete(a);if(0===c.size)return[]}}return c?Array.from(c):[]}persist(a){if(!this.invertedIndex)return;let b={version:1,builtForRoot:this.builtForRoot??"",fileCount:this.fileCount,totalChars:this.totalChars,docLengths:Object.fromEntries(this.docLengths),invertedIndex:{},timestamp:Date.now()};for(let[a,c]of this.invertedIndex)b.invertedIndex[a]=[...c];let c=i().join(a,"search-index.json");try{g().mkdirSync(a,{recursive:!0}),g().writeFileSync(c,JSON.stringify(b),"utf-8")}catch{}}load(a,b){let c,d,e=i().join(a,"search-index.json");try{c=g().readFileSync(e,"utf-8")}catch{return!1}try{d=JSON.parse(c)}catch{return!1}if(1!==d.version||d.builtForRoot!==b||m(b).length!==d.fileCount)return!1;let f=Object.keys(d.docLengths);if(Math.min(50,f.length)===f.length)for(let a of f)try{if(g().statSync(i().join(b,a)).mtimeMs>d.timestamp)return!1}catch{return!1}else{let a=Math.max(1,Math.floor(f.length/40)),c=new Set;for(let b=0;b<f.length;b+=a)c.add(b);for(let a=Math.max(0,f.length-10);a<f.length;a++)c.add(a);for(let a of c)try{if(g().statSync(i().join(b,f[a])).mtimeMs>d.timestamp)return!1}catch{return!1}}this.builtForRoot=d.builtForRoot,this.fileCount=d.fileCount,this.totalChars=d.totalChars,this.docLengths=new Map(Object.entries(d.docLengths).map(([a,b])=>[a,b]));let h=new Map,j=new Map;for(let[a,b]of Object.entries(d.invertedIndex)){let c=new Set(b);for(let b of(h.set(a,c),c)){let c=j.get(b);c||(c=new Set,j.set(b,c)),c.add(a)}}return this.invertedIndex=h,this.fileTokens=j,!0}constructor(){this.invertedIndex=null,this.builtForRoot=null,this.fileCount=0,this.docLengths=new Map,this.totalChars=0,this.fileTokens=new Map}}let v=new u;function w(){v.invalidate()}function x(a,b){v.isBuilt()&&(v.addFile(a,b),z=!0,y&&clearTimeout(y),y=setTimeout(A,5e3))}let y=null,z=!1;function A(){if(y&&(clearTimeout(y),y=null),z){z=!1;try{v.persist(i().join(o().homedir(),".mindos"))}catch{}}}"u">typeof process&&(process.on("beforeExit",A),process.on("SIGTERM",()=>{A(),process.exit(0)}),process.on("SIGINT",()=>{A(),process.exit(0)}));class B{rebuild(a){let b=m(a).filter(a=>a.endsWith(".md")),c=new Set(b),d=function(a){let b=new Map;for(let c of a){let a=i().basename(c).toLowerCase();b.has(a)||b.set(a,[]),b.get(a).push(c)}return b}(b),f=new Map,g=new Map;for(let h of b){let b;try{b=(0,e.TA)(a,h)}catch{continue}let i=C(b,h,c,d),j=new Set;for(let a of i)a!==h&&j.add(a);for(let a of(f.set(h,j),j)){let b=g.get(a);b||(b=new Set,g.set(a,b)),b.add(h)}}this.forwardLinks=f,this.backwardLinks=g,this.builtForRoot=a,this.fileSet=c,this.basenameMap=d}invalidate(){this.forwardLinks.clear(),this.backwardLinks.clear(),this.builtForRoot=null,this.fileSet.clear(),this.basenameMap.clear()}isBuiltFor(a){return this.builtForRoot===a}isBuilt(){return null!==this.builtForRoot}getForwardLinks(a){return[...this.forwardLinks.get(a)??[]]}getBacklinks(a){return[...this.backwardLinks.get(a)??[]]}getAllEdges(){let a=[];for(let[b,c]of this.forwardLinks)for(let d of c)a.push({source:b,target:d});return a}removeFile(a){let b=this.forwardLinks.get(a);if(b){for(let c of b)this.backwardLinks.get(c)?.delete(a);this.forwardLinks.delete(a)}let c=this.backwardLinks.get(a);if(c){for(let b of c)this.forwardLinks.get(b)?.delete(a);this.backwardLinks.delete(a)}this.fileSet.delete(a);let d=i().basename(a).toLowerCase(),e=this.basenameMap.get(d);if(e){let b=e.indexOf(a);b>=0&&e.splice(b,1),0===e.length&&this.basenameMap.delete(d)}}updateFile(a,b){let c;if(!this.builtForRoot||!b.endsWith(".md"))return;let d=this.forwardLinks.get(b);if(d)for(let a of d)this.backwardLinks.get(a)?.delete(b);try{c=(0,e.TA)(a,b)}catch{return}if(!this.fileSet.has(b)){this.fileSet.add(b);let a=i().basename(b).toLowerCase();this.basenameMap.has(a)||this.basenameMap.set(a,[]),this.basenameMap.get(a).push(b)}let f=C(c,b,this.fileSet,this.basenameMap),g=new Set;for(let a of f)a!==b&&g.add(a);for(let a of(this.forwardLinks.set(b,g),g)){let c=this.backwardLinks.get(a);c||(c=new Set,this.backwardLinks.set(a,c)),c.add(b)}}constructor(){this.forwardLinks=new Map,this.backwardLinks=new Map,this.builtForRoot=null,this.fileSet=new Set,this.basenameMap=new Map}}function C(a,b,c,d){let e,f=[],g=i().dirname(b),h=/\[\[([^\]|#]+)(?:[|#][^\]]*)?/g;for(;null!==(e=h.exec(a));){let a=e[1].trim();if(!a)continue;if(c.has(a)){f.push(a);continue}let b=a.endsWith(".md")?a:a+".md";if(c.has(b)){f.push(b);continue}let g=i().basename(b).toLowerCase(),h=d.get(g);h&&1===h.length&&f.push(h[0])}let j=/\[[^\]]+\]\(([^)]+\.md)(?:#[^)]*)?\)/g;for(;null!==(e=j.exec(a));){let a=e[1].trim();if(!a||a.startsWith("http"))continue;let b=i().normalize(i().join(g,a));c.has(b)&&f.push(b)}return f}c(20018),c(79646),c(15872)},15872:(a,b,c)=>{c.d(b,{_:()=>l,c:()=>k});var d=c(29021),e=c.n(d),f=c(33873),g=c.n(f),h=c(20018),i=c(18451),j=c(1160);function k(a,b,c){let d=b.replace(/^[\p{Emoji_Presentation}\p{Extended_Pictographic}\s]+/u,"")||b,e=c.trim()||"(Describe the purpose and usage of this space.)";return`# ${d}
37
+
38
+ ${e}
39
+
40
+ ## 📁 Structure
41
+
42
+ \`\`\`bash
43
+ ${a}/
44
+ ├── INSTRUCTION.md
45
+ ├── README.md
46
+ └── (your files here)
47
+ \`\`\`
48
+
49
+ ## 💡 Usage
50
+
51
+ (Add usage guidelines for this space.)
52
+ `}function l(a,b,c,d=""){let f=b.trim();if(!f)throw new h.Vt(h.tG.INVALID_REQUEST,"Space name is required",{name:b});if(f.includes("/")||f.includes("\\"))throw new h.Vt(h.tG.INVALID_PATH,"Space name must not contain path separators",{name:f});let m=d.replace(/\/+$/,"").trim();if(m.includes("..")||m.startsWith("/")||m.includes("\\"))throw new h.Vt(h.tG.INVALID_PATH,"Invalid parent path",{parentPath:d});let n=m?`${m}/`:"",o=`${n}${f}`,p=k(o,f,c);(0,i.x3)(a,`${o}/README.md`,p);let q=g().resolve(a,o),r=g().join(q,"INSTRUCTION.md");return e().existsSync(r)||e().writeFileSync(r,(0,j.GL)((0,j.e1)(f)),"utf-8"),{path:o}}},16081:(a,b,c)=>{c.d(b,{F0:()=>o,JI:()=>u,Lr:()=>p,YN:()=>t,hQ:()=>s,kz:()=>q,vn:()=>r});var d=c(29021),e=c.n(d),f=c(33873),g=c.n(f);function h(a,b){return g().join(g().dirname(a),b)}function i(a){return h(a,".trash")}function j(a){return h(a,".trash-meta")}function k(a){e().mkdirSync(i(a),{recursive:!0}),e().mkdirSync(j(a),{recursive:!0})}function l(a,b){let c=g().join(j(a),`${b}.json`);if(!e().existsSync(c))return null;try{return JSON.parse(e().readFileSync(c,"utf-8"))}catch{return null}}function m(a,b){let c=g().join(j(a),`${b}.json`);try{e().unlinkSync(c)}catch{}}function n(a,b,c){if(c)e().cpSync(a,b,{recursive:!0}),e().rmSync(a,{recursive:!0,force:!0});else try{e().renameSync(a,b)}catch(c){if("EXDEV"===c.code)e().copyFileSync(a,b),e().unlinkSync(a);else throw c}}function o(a,b){let c,d;k(a);let f=g().join(a,b);if(!e().existsSync(f))throw Error(`File not found: ${b}`);let h=e().statSync(f).isDirectory(),l=g().basename(b),m=(c=l.replace(/[^a-zA-Z0-9._\-\u4e00-\u9fff]/g,"_"),`${Date.now()}_${c}`),o=g().join(i(a),m);e().mkdirSync(g().dirname(o),{recursive:!0}),n(f,o,h);let p=new Date,q={id:m,originalPath:b,deletedAt:p.toISOString(),expiresAt:new Date(p.getTime()+2592e6).toISOString(),fileName:l,isDirectory:h};return d=g().join(j(a),`${q.id}.json`),e().writeFileSync(d,JSON.stringify(q,null,2),"utf-8"),q}function p(a,b,c=!1){let d=l(a,b);if(!d)throw Error("Item not found in trash");let f=g().join(i(a),b);if(!e().existsSync(f))throw Error("Trash file missing from disk");let h=g().join(a,d.originalPath);if(e().existsSync(h)&&!c)throw Object.assign(Error("Restore conflict: file exists at original location"),{code:"RESTORE_CONFLICT"});return e().mkdirSync(g().dirname(h),{recursive:!0}),d.isDirectory?c&&e().existsSync(h)&&e().rmSync(h,{recursive:!0,force:!0}):c&&e().existsSync(h)&&e().unlinkSync(h),n(f,h,d.isDirectory),m(a,b),{restoredPath:d.originalPath}}function q(a,b){let c=l(a,b);if(!c)throw Error("Item not found in trash");let d=g().join(i(a),b);if(!e().existsSync(d))throw Error("Trash file missing from disk");let f=g().dirname(c.originalPath),h=g().extname(c.fileName),j=g().basename(c.fileName,h),k=g().join(f,`${j} (copy)${h}`),o=2;for(;e().existsSync(g().join(a,k));)k=g().join(f,`${j} (copy ${o})${h}`),o++;let p=g().join(a,k);return e().mkdirSync(g().dirname(p),{recursive:!0}),n(d,p,c.isDirectory),m(a,b),{restoredPath:k}}function r(a,b){let c=g().join(i(a),b);try{e().existsSync(c)&&(e().statSync(c).isDirectory()?e().rmSync(c,{recursive:!0,force:!0}):e().unlinkSync(c))}catch{}m(a,b)}function s(a){let b;k(a);let c=j(a);try{b=e().readdirSync(c).filter(a=>a.endsWith(".json"))}catch{return[]}let d=[];for(let f of b)try{let b=JSON.parse(e().readFileSync(g().join(c,f),"utf-8")),h=g().join(i(a),b.id);if(e().existsSync(h))d.push(b);else try{e().unlinkSync(g().join(c,f))}catch{}}catch{}return d.sort((a,b)=>new Date(b.deletedAt).getTime()-new Date(a.deletedAt).getTime()),d}function t(a){let b=s(a);for(let c of b)r(a,c.id);return b.length}function u(a){let b=s(a),c=Date.now(),d=0;for(let e of b)new Date(e.expiresAt).getTime()<=c&&(r(a,e.id),d++);return d}},18451:(a,b,c)=>{c.d(b,{H5:()=>n,OV:()=>o,TA:()=>k,rt:()=>m,x3:()=>l});var d=c(29021),e=c.n(d),f=c(33873),g=c.n(f),h=c(99863),i=c(20018),j=c(1160);function k(a,b){let c=(0,h.eX)(a,b);return e().readFileSync(c,"utf-8")}function l(a,b,c=""){let d=(0,h.eX)(a,b);e().mkdirSync(g().dirname(d),{recursive:!0});try{e().writeFileSync(d,c,{encoding:"utf-8",flag:"wx"})}catch(a){if(a instanceof Error&&"code"in a&&"EEXIST"===a.code)throw new i.Vt(i.tG.FILE_ALREADY_EXISTS,`File already exists: ${b}`,{filePath:b});throw a}}function m(a,b){let c=(0,h.eX)(a,b);if(!e().existsSync(c))throw new i.Vt(i.tG.FILE_NOT_FOUND,`Directory not found: ${b}`,{dirPath:b});if(!e().statSync(c).isDirectory())throw new i.Vt(i.tG.INVALID_PATH,`Not a directory: ${b}`,{dirPath:b});let d=g().basename(c),f=(0,j.e1)(d),k=g().join(c,"INSTRUCTION.md");e().existsSync(k)||e().writeFileSync(k,(0,j.GL)(f),"utf-8");let l=g().join(c,"README.md");e().existsSync(l)||e().writeFileSync(l,(0,j._l)(f),"utf-8")}function n(a,b,c){if(c.includes("/")||c.includes("\\"))throw new i.Vt(i.tG.INVALID_PATH,"Invalid filename: must not contain path separators",{newName:c});let d=g().resolve(a),f=g().resolve(g().join(d,b));(0,h.cP)(f,d);let j=g().dirname(f),k=g().join(j,c);if((0,h.cP)(k,d),e().existsSync(k))throw new i.Vt(i.tG.FILE_ALREADY_EXISTS,"A file with that name already exists",{newName:c});return e().renameSync(f,k),g().relative(d,k)}function o(a,b,c){let d=c.trim();if(!d||d.includes("/")||d.includes("\\"))throw new i.Vt(i.tG.INVALID_PATH,"Invalid space name: must not contain path separators",{newName:c});let f=b.replace(/\/+$/g,"").trim();if(!f)throw new i.Vt(i.tG.INVALID_PATH,"Space path is required",{spacePath:b});let j=g().resolve(a),k=(0,h.eX)(a,f);if(!e().existsSync(k))throw new i.Vt(i.tG.FILE_NOT_FOUND,`Space not found: ${f}`,{spacePath:f});if(!e().statSync(k).isDirectory())throw new i.Vt(i.tG.INVALID_PATH,`Not a directory: ${f}`,{spacePath:f});let l=g().dirname(k),m=g().join(l,d);if((0,h.cP)(m,j),e().existsSync(m))throw new i.Vt(i.tG.FILE_ALREADY_EXISTS,"A space with that name already exists",{newName:d});return e().renameSync(k,m),g().relative(j,m)}},20018:(a,b,c)=>{c.d(b,{Vt:()=>d,tG:()=>e}),c(20457);class d extends Error{constructor(a,b,c,d){super(b),this.code=a,this.context=c,this.userMessage=d,this.name="MindOSError"}}let e={FILE_NOT_FOUND:"FILE_NOT_FOUND",FILE_ALREADY_EXISTS:"FILE_ALREADY_EXISTS",PATH_OUTSIDE_ROOT:"PATH_OUTSIDE_ROOT",PROTECTED_FILE:"PROTECTED_FILE",INVALID_PATH:"INVALID_PATH",INVALID_RANGE:"INVALID_RANGE",HEADING_NOT_FOUND:"HEADING_NOT_FOUND",INVALID_FILE_TYPE:"INVALID_FILE_TYPE",INVALID_REQUEST:"INVALID_REQUEST",MODEL_INIT_FAILED:"MODEL_INIT_FAILED",INTERNAL_ERROR:"INTERNAL_ERROR",PERMISSION_DENIED:"PERMISSION_DENIED"}},27114:(a,b,c)=>{c.d(b,{A:()=>d});let d=new Set(["TODO.md"])},27313:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{T_:()=>h,rl:()=>g});var e=c(14270),f=a([e]);e=(f.then?(await f)():f)[0];let h={anthropic:{id:"anthropic",name:"Anthropic",nameZh:"Anthropic",shortLabel:"Anthropic",defaultModel:"claude-sonnet-4-6",supportsBaseUrl:!0,supportsThinking:!0,supportsListModels:!0,signupUrl:"https://console.anthropic.com/settings/keys",category:"primary"},openai:{id:"openai",name:"OpenAI",nameZh:"OpenAI",shortLabel:"OpenAI",defaultModel:"gpt-5.4",supportsBaseUrl:!0,supportsThinking:!0,supportsListModels:!0,signupUrl:"https://platform.openai.com/api-keys",category:"primary"},google:{id:"google",name:"Google Gemini",nameZh:"Google Gemini",shortLabel:"Gemini",defaultModel:"gemini-2.5-flash",supportsBaseUrl:!1,supportsThinking:!0,supportsListModels:!1,signupUrl:"https://aistudio.google.com/apikey",category:"primary"},groq:{id:"groq",name:"Groq",nameZh:"Groq",shortLabel:"Groq",defaultModel:"llama-3.3-70b-versatile",supportsBaseUrl:!1,supportsThinking:!1,supportsListModels:!0,signupUrl:"https://console.groq.com/keys",category:"more"},xai:{id:"xai",name:"xAI (Grok)",nameZh:"xAI (Grok)",shortLabel:"xAI",defaultModel:"grok-3",supportsBaseUrl:!1,supportsThinking:!1,supportsListModels:!0,category:"more"},openrouter:{id:"openrouter",name:"OpenRouter",nameZh:"OpenRouter",shortLabel:"OpenRouter",defaultModel:"anthropic/claude-sonnet-4",supportsBaseUrl:!1,supportsThinking:!1,supportsListModels:!0,category:"more"},mistral:{id:"mistral",name:"Mistral",nameZh:"Mistral",shortLabel:"Mistral",defaultModel:"mistral-large-latest",supportsBaseUrl:!1,supportsThinking:!1,supportsListModels:!0,category:"more"},deepseek:{id:"deepseek",name:"DeepSeek",nameZh:"DeepSeek",shortLabel:"DeepSeek",defaultModel:"deepseek-chat",piProviderOverride:"openai",fixedBaseUrl:"https://api.deepseek.com/v1",supportsBaseUrl:!0,supportsThinking:!0,supportsListModels:!0,signupUrl:"https://platform.deepseek.com/api_keys",category:"more"},zai:{id:"zai",name:"ZhipuAI (GLM)",nameZh:"智谱 AI (GLM 国际版)",shortLabel:"智谱GLM",defaultModel:"glm-4-plus",supportsBaseUrl:!1,supportsThinking:!0,supportsListModels:!1,category:"more"},"zai-cn":{id:"zai-cn",name:"ZhipuAI (GLM China)",nameZh:"智谱 AI (GLM 国内版)",shortLabel:"智谱GLM-CN",description:"China region version",descriptionZh:"中国区版本",defaultModel:"glm-4-plus",piProviderOverride:"zai",fixedBaseUrl:"https://open.bigmodel.cn/api/coding/paas/v4",supportsBaseUrl:!1,supportsThinking:!0,supportsListModels:!1,signupUrl:"https://open.bigmodel.cn/",category:"more"},"kimi-coding":{id:"kimi-coding",name:"Kimi Coding",nameZh:"Kimi Coding (月之暗面)",shortLabel:"Kimi Coding",defaultModel:"kimi-k2-thinking",supportsBaseUrl:!1,supportsThinking:!0,supportsListModels:!1,category:"more"},cerebras:{id:"cerebras",name:"Cerebras",nameZh:"Cerebras",shortLabel:"Cerebras",defaultModel:"llama-4-scout-17b-16e",supportsBaseUrl:!1,supportsThinking:!1,supportsListModels:!0,category:"more"},minimax:{id:"minimax",name:"MiniMax",nameZh:"MiniMax (国际版)",shortLabel:"MiniMax",defaultModel:"MiniMax-M2.5",supportsBaseUrl:!1,supportsThinking:!0,supportsListModels:!1,category:"more"},"minimax-cn":{id:"minimax-cn",name:"MiniMax (China)",nameZh:"MiniMax (国内版)",shortLabel:"MiniMax-CN",description:"China region version",descriptionZh:"中国区版本",defaultModel:"MiniMax-M2.5",supportsBaseUrl:!1,supportsThinking:!0,supportsListModels:!1,category:"more"},huggingface:{id:"huggingface",name:"Hugging Face",nameZh:"Hugging Face",shortLabel:"HuggingFace",defaultModel:"Qwen/Qwen3-235B-A22B-Thinking-2507",supportsBaseUrl:!1,supportsThinking:!0,supportsListModels:!1,category:"more"},ollama:{id:"ollama",name:"Ollama",nameZh:"Ollama (本地)",shortLabel:"Ollama",description:"Local server (requires setup)",descriptionZh:"本地服务器 (需要本地部署)",defaultModel:"llama3.2",piProviderOverride:"openai",fixedBaseUrl:"http://localhost:11434/v1",apiKeyFallback:"ollama",supportsBaseUrl:!0,supportsThinking:!1,supportsListModels:!0,signupUrl:"https://ollama.com/download",category:"more"}};function g(a){return a in h}Object.keys(h),d()}catch(a){d(a)}})},53113:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{"00498eb6e52298a504327546864e893ecfc3cef12a":()=>e.Dg,"0049b3c7bab7ad85a4c48e64318f05c76a0996e6d7":()=>e.GB,"0050fbe2dd40fe13cb455c47d654fc6f4f4f0968eb":()=>e.EG,"00c58342652cbdb6e04c183b8299a2f12d6e5a121f":()=>e.Bn,"4014d649f55530997aeed54141cb3813c81fc218c4":()=>e.ku,"402aec04000e00e6e1ba58d6e62ec839eba78f01c6":()=>e.jW,"407be480c8bb6649c71628c2c081cfeaf84b09ef15":()=>e.Ar,"407ea7355954fa0ecfddff970e3cb501432f028f17":()=>e.VO,"40bd308d3e6598b008dd2a553d17f07fbca2e780c8":()=>e.bC,"40d4e7e71d92c0563d340602b38f97b7551a15bfce":()=>e.Ye,"40d6ecc0328e876dba38dbf651465ab854bcb529ee":()=>e.iJ,"603d5c6e80498512212e11dcb62afae3a95af2754e":()=>e.NN,"603f7d40a70692b969aa3aa61fcff47606ee58228d":()=>e.pG,"606a1d824481f9190ce873672723a159a1bdd51cf8":()=>e.X3,"60b15a6fc71e890ec0b134554976df0297558b19e5":()=>e.f,"70ba800aaa7d8b788273e60e8c8af890ce069c933e":()=>e.pX,"70d5dabf7d487f2236722c430fe35460a5760a930d":()=>e.FZ});var e=c(85224),f=a([e]);e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},53134:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{H5:()=>r,JX:()=>l,Jh:()=>s,f:()=>p,gm:()=>m,rt:()=>t,x3:()=>q});var e=c(29021),f=c.n(e),g=c(33873),h=c.n(g);c(20018);var i=c(14432),j=c(4120);c(89531),c(16081);var k=a([j]);function l(){return(0,j.kh)()}j=(k.then?(await k)():k)[0];let u=new Set([".git","node_modules","app",".next",".DS_Store",".media","mcp"]),v=new Set([".md",".csv",".json",".pdf",".png",".jpg",".jpeg",".gif",".webp",".svg",".bmp",".ico",".mp3",".wav",".m4a",".ogg",".flac",".aac",".mp4",".webm",".mov",".mkv"]),w=null,x=0,y=new i.Xs;function m(){w=null,x++,(0,i._E)(),y.invalidate()}let z=null,A=null;function n(a,b){try{let c=f().readFileSync(a,"utf-8"),d=[];for(let a of c.split("\n")){let c=a.trim();if(!(!c||c.startsWith("#"))&&(d.push(c),d.length>=b))break}return d}catch{return[]}}let B=["Define local execution rules for this directory.","(your files here)","(Describe the purpose and usage of this space.)","(Add usage guidelines for this space.)"];function o(a){try{let b=f().readFileSync(a,"utf-8");return B.some(a=>b.includes(a))}catch{return!1}}function p(){var a;let b,c;return(null!==w&&Date.now()-w.timestamp<3e4?w:(a=l(),b=function a(b,c){let d,e=c??l();try{d=f().readdirSync(b,{withFileTypes:!0})}catch{return[]}let g=[];for(let c of d){let d=h().join(b,c.name),f=h().relative(e,d);if(c.isDirectory()){if(u.has(c.name))continue;let b=a(d,e);if(b.length>0){let a=b.some(a=>"file"===a.type&&"INSTRUCTION.md"===a.name),e={name:c.name,path:f,type:"directory",children:b};a&&(e.isSpace=!0,e.spacePreview=function(a){let b=h().join(a,"INSTRUCTION.md"),c=h().join(a,"README.md");return{instructionLines:n(b,3),readmeLines:n(c,3),isTemplate:o(b)&&o(c)}}(d)),g.push(e)}}else if(c.isFile()){let a=h().extname(c.name).toLowerCase();v.has(a)&&g.push({name:c.name,path:f,type:"file",extension:a})}}return g.sort((a,b)=>a.type!==b.type?"directory"===a.type?-1:1:a.name.localeCompare(b.name)),g}(a),c=[],function a(b){for(let d of b)"file"===d.type?c.push(d.path):d.children&&a(d.children)}(b),w={tree:b,allFiles:c,timestamp:Date.now()},z||function(){let a;if(!z){try{a=l()}catch{return}try{(z=f().watch(a,{recursive:!0},(a,b)=>{!b||b.startsWith(".git")||b.includes("node_modules")||b.includes(".next")||(A&&clearTimeout(A),A=setTimeout(()=>{w=null,x++,A=null},500))})).on("error",()=>{A&&(clearTimeout(A),A=null),z&&(z.close(),z=null)})}catch{z=null}}}(),w)).allFiles}function q(a,b=""){(0,i.x3)(l(),a,b),w=null,x++,(0,i.As)(l(),a),y.isBuilt()&&y.updateFile(l(),a)}function r(a,b){let c=(0,i.H5)(l(),a,b);return m(),c}function s(a,b){let c=(0,i.OV)(l(),a,b);return m(),c}function t(a){(0,i.rt)(l(),a),m()}d()}catch(a){d(a)}})},58519:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Ko:()=>j,S9:()=>i});var e=c(27313),f=a([e]);function g(){return"p_"+Math.random().toString(36).slice(2,10)}function h(a){return!!a&&"object"==typeof a&&"string"==typeof a.id&&a.id.startsWith("p_")&&"string"==typeof a.name&&a.name.trim().length>0&&"string"==typeof a.protocol&&(0,e.rl)(a.protocol)&&"string"==typeof a.apiKey&&"string"==typeof a.model&&"string"==typeof a.baseUrl}function i(a){return Array.isArray(a)?a.filter(h):[]}function j(a){let b=a.ai;if(!b||Array.isArray(b.providers))return null;let c=b.providers??{},d=b.provider??"openai",f=a.customProviders??[],h=[],i="";for(let[a,b]of Object.entries(c)){if(!b||!(0,e.rl)(a)||!b.apiKey&&!b.model&&!b.baseUrl)continue;let c=e.T_[a],f=g();h.push({id:f,name:c?.name??a,protocol:a,apiKey:b.apiKey??"",model:b.model??"",baseUrl:b.baseUrl??""}),a===d&&(i=f)}for(let a of f){if(!a.name||!a.baseProviderId)continue;let b=g();h.push({id:b,name:a.name,protocol:(0,e.rl)(a.baseProviderId)?a.baseProviderId:"openai",apiKey:a.apiKey??"",model:a.model??"",baseUrl:a.baseUrl??""}),a.id===d&&(i=b)}if(!i)if(h.length>0)i=h[0].id;else{let a=g();h.push({id:a,name:"OpenAI",protocol:"openai",apiKey:"",model:e.T_.openai?.defaultModel??"",baseUrl:""}),i=a}return{activeProvider:i,providers:h}}e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},61374:(a,b,c)=>{c.d(b,{gG:()=>d});function d(a){if(!a||"object"!=typeof a||Array.isArray(a))return;let b={},c=!1;for(let[d,e]of Object.entries(a)){if(!e||"object"!=typeof e||Array.isArray(e))continue;let a={};if("string"==typeof e.command&&e.command.trim()&&(a.command=e.command.trim()),Array.isArray(e.args)&&(a.args=e.args.filter(a=>"string"==typeof a)),e.env&&"object"==typeof e.env&&!Array.isArray(e.env)){let b={};for(let[a,c]of Object.entries(e.env))"string"==typeof c&&(b[a]=c);Object.keys(b).length>0&&(a.env=b)}"boolean"==typeof e.enabled&&(a.enabled=e.enabled),Object.keys(a).length>0&&(b[d]=a,c=!0)}return c?b:void 0}},85224:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Ar:()=>v,Bn:()=>E,Dg:()=>B,EG:()=>C,FZ:()=>A,GB:()=>H,NN:()=>F,VO:()=>D,X3:()=>r,Ye:()=>y,bC:()=>G,f:()=>t,iJ:()=>s,jW:()=>u,ku:()=>x,pG:()=>w,pX:()=>z});var e=c(95349),f=c(29021),g=c.n(f),h=c(33873),i=c.n(h),j=c(53134),k=c(16081),l=c(15872),m=c(1160),n=c(42650),o=c(27114),p=c(89337),q=a([j]);async function r(a,b){try{let c=b.trim();if(!c)return{success:!1,error:"File name is required"};let d=c.endsWith(".md")||c.endsWith(".csv")?c:`${c}.md`,e=a?`${a}/${d}`:d;return(0,j.x3)(e),(0,n.revalidatePath)("/","layout"),{success:!0,filePath:e}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to create file"}}}async function s(a){try{let b=i().posix.basename(a);if(!a.includes("/")&&o.A.has(b))return{success:!1,error:`"${b}" is protected and cannot be deleted`};let c=(0,k.F0)((0,j.JX)(),a);return(0,j.gm)(),(0,n.revalidatePath)("/","layout"),{success:!0,trashId:c.id}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to delete file"}}}async function t(a,b){try{let c=(0,j.H5)(a,b);return(0,n.revalidatePath)("/","layout"),{success:!0,newPath:c}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to rename file"}}}async function u(a){try{return(0,j.rt)(a),(0,n.revalidatePath)("/","layout"),{success:!0}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to convert to space"}}}async function v(a){try{let b=(0,k.F0)((0,j.JX)(),a);return(0,j.gm)(),(0,n.revalidatePath)("/","layout"),{success:!0,trashId:b.id}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to delete folder"}}}async function w(a,b){try{let c=(0,j.Jh)(a,b);return(0,n.revalidatePath)("/","layout"),{success:!0,newPath:c}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to rename space"}}}async function x(a){try{let b=(0,k.F0)((0,j.JX)(),a);return(0,j.gm)(),(0,n.revalidatePath)("/","layout"),{success:!0,trashId:b.id}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to delete space"}}}async function y(a){try{return(0,k.Lr)((0,j.JX)(),a,!1),(0,j.gm)(),(0,n.revalidatePath)("/","layout"),{success:!0}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Undo failed"}}}async function z(a,b,c=""){try{let{path:d}=(0,l._)((0,j.JX)(),a,b,c);return(0,j.gm)(),(0,n.revalidatePath)("/","layout"),{success:!0,path:d}}catch(b){let a=b instanceof Error?b.message:"Failed to create space";if(a.includes("already exists"))return{success:!1,error:"A space with this name already exists"};return{success:!1,error:a}}}async function A(a,b,c){try{let d=(0,j.JX)(),e=i().resolve(d,a);if(!e.startsWith(d))return{success:!1,error:"Invalid path"};let f=i().join(e,"README.md"),h=i().join(e,"INSTRUCTION.md"),k=(0,l.c)(a,b,c);g().writeFileSync(f,k,"utf-8");let o=(0,m.e1)(b);return g().writeFileSync(h,(0,m.GL)(o),"utf-8"),(0,j.gm)(),(0,n.revalidatePath)("/","layout"),{success:!0}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to revert"}}}async function B(){return{files:(0,j.f)().filter(a=>i().basename(a).startsWith("\uD83E\uDDEA_example_"))}}async function C(){try{let{files:a}=await B();if(0===a.length)return{success:!0,deleted:0};let b=(0,j.JX)();for(let c of a){let a=i().resolve(b,c);a.startsWith(b)&&g().existsSync(a)&&g().unlinkSync(a)}for(let c of[...new Set(a.map(a=>i().dirname(i().resolve(b,a))))].sort((a,b)=>b.length-a.length))try{if(c.startsWith(b)&&c!==b){let a=g().readdirSync(c);0===a.length&&g().rmdirSync(c)}}catch{}return(0,j.gm)(),(0,n.revalidatePath)("/","layout"),{success:!0,deleted:a.length}}catch(a){return{success:!1,deleted:0,error:a instanceof Error?a.message:"Failed to cleanup"}}}async function D(a){let b=(0,j.f)(),c=a.endsWith("/")?a:a+"/";return b.filter(a=>a.startsWith(c))}async function E(){return(0,k.JI)((0,j.JX)()),(0,k.hQ)((0,j.JX)())}async function F(a,b="restore"){try{let c,d=(0,j.JX)();return c="copy"===b?(0,k.kz)(d,a):(0,k.Lr)(d,a,"overwrite"===b),(0,j.gm)(),(0,n.revalidatePath)("/","layout"),{success:!0,restoredPath:c.restoredPath}}catch(a){if("RESTORE_CONFLICT"===a.code)return{success:!1,error:a.message,conflict:!0};return{success:!1,error:a.message??"Failed to restore"}}}async function G(a){try{return(0,k.vn)((0,j.JX)(),a),{success:!0}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to delete"}}}async function H(){try{let a=(0,k.YN)((0,j.JX)());return{success:!0,count:a}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to empty trash"}}}j=(q.then?(await q)():q)[0],(0,p.D)([r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H]),(0,e.A)(r,"606a1d824481f9190ce873672723a159a1bdd51cf8",null),(0,e.A)(s,"40d6ecc0328e876dba38dbf651465ab854bcb529ee",null),(0,e.A)(t,"60b15a6fc71e890ec0b134554976df0297558b19e5",null),(0,e.A)(u,"402aec04000e00e6e1ba58d6e62ec839eba78f01c6",null),(0,e.A)(v,"407be480c8bb6649c71628c2c081cfeaf84b09ef15",null),(0,e.A)(w,"603f7d40a70692b969aa3aa61fcff47606ee58228d",null),(0,e.A)(x,"4014d649f55530997aeed54141cb3813c81fc218c4",null),(0,e.A)(y,"40d4e7e71d92c0563d340602b38f97b7551a15bfce",null),(0,e.A)(z,"70ba800aaa7d8b788273e60e8c8af890ce069c933e",null),(0,e.A)(A,"70d5dabf7d487f2236722c430fe35460a5760a930d",null),(0,e.A)(B,"00498eb6e52298a504327546864e893ecfc3cef12a",null),(0,e.A)(C,"0050fbe2dd40fe13cb455c47d654fc6f4f4f0968eb",null),(0,e.A)(D,"407ea7355954fa0ecfddff970e3cb501432f028f17",null),(0,e.A)(E,"00c58342652cbdb6e04c183b8299a2f12d6e5a121f",null),(0,e.A)(F,"603d5c6e80498512212e11dcb62afae3a95af2754e",null),(0,e.A)(G,"40bd308d3e6598b008dd2a553d17f07fbca2e780c8",null),(0,e.A)(H,"0049b3c7bab7ad85a4c48e64318f05c76a0996e6d7",null),d()}catch(a){d(a)}})},89531:(a,b,c)=>{c.d(b,{b:()=>i});var d=c(29021),e=c.n(d),f=c(33873),g=c.n(f),h=c(79646);function i(a){try{let b=process.env.MINDOS_PROJECT_ROOT?g().join(process.env.MINDOS_PROJECT_ROOT,"app"):g().resolve(process.cwd()),c=g().join(b,"scripts","extract-pdf.cjs");if(!e().existsSync(c))return"";let d=(0,h.execFileSync)("node",[c,a],{encoding:"utf-8",timeout:15e3,maxBuffer:5242880});return JSON.parse(d).text||""}catch{return""}}},99863:(a,b,c)=>{c.d(b,{cP:()=>g,eX:()=>h});var d=c(33873),e=c.n(d),f=c(20018);function g(a,b){if(!a.startsWith(b+e().sep)&&a!==b)throw new f.Vt(f.tG.PATH_OUTSIDE_ROOT,"Access denied: path outside MIND_ROOT",{resolved:a,root:b})}function h(a,b){let c=e().resolve(a),d=e().resolve(e().join(c,b));return g(d,c),d}}};
@@ -1 +1 @@
1
- exports.id=6539,exports.ids=[6539],exports.modules={39008:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{KP:()=>i,Ot:()=>l,T_:()=>n,Ux:()=>j,im:()=>h,jt:()=>o,lr:()=>k,rl:()=>g,us:()=>m});var e=c(14270),f=a([e]);e=(f.then?(await f)():f)[0];let n={anthropic:{id:"anthropic",name:"Anthropic",nameZh:"Anthropic",defaultModel:"claude-sonnet-4-6",supportsBaseUrl:!0,supportsThinking:!0,supportsListModels:!0,signupUrl:"https://console.anthropic.com/settings/keys",category:"primary"},openai:{id:"openai",name:"OpenAI",nameZh:"OpenAI",defaultModel:"gpt-5.4",supportsBaseUrl:!0,supportsThinking:!0,supportsListModels:!0,signupUrl:"https://platform.openai.com/api-keys",category:"primary"},google:{id:"google",name:"Google Gemini",nameZh:"Google Gemini",defaultModel:"gemini-2.5-flash",supportsBaseUrl:!1,supportsThinking:!0,supportsListModels:!1,signupUrl:"https://aistudio.google.com/apikey",category:"primary"},groq:{id:"groq",name:"Groq",nameZh:"Groq",defaultModel:"llama-3.3-70b-versatile",supportsBaseUrl:!1,supportsThinking:!1,supportsListModels:!0,signupUrl:"https://console.groq.com/keys",category:"more"},xai:{id:"xai",name:"xAI (Grok)",nameZh:"xAI (Grok)",defaultModel:"grok-3",supportsBaseUrl:!1,supportsThinking:!1,supportsListModels:!0,category:"more"},openrouter:{id:"openrouter",name:"OpenRouter",nameZh:"OpenRouter",defaultModel:"anthropic/claude-sonnet-4",supportsBaseUrl:!1,supportsThinking:!1,supportsListModels:!0,category:"more"},mistral:{id:"mistral",name:"Mistral",nameZh:"Mistral",defaultModel:"mistral-large-latest",supportsBaseUrl:!1,supportsThinking:!1,supportsListModels:!0,category:"more"},deepseek:{id:"deepseek",name:"DeepSeek",nameZh:"DeepSeek",defaultModel:"deepseek-chat",piProviderOverride:"openai",fixedBaseUrl:"https://api.deepseek.com/v1",supportsBaseUrl:!0,supportsThinking:!0,supportsListModels:!0,signupUrl:"https://platform.deepseek.com/api_keys",category:"more"},zai:{id:"zai",name:"ZhipuAI (GLM)",nameZh:"智谱 AI (GLM 国际版)",defaultModel:"glm-4-plus",supportsBaseUrl:!1,supportsThinking:!0,supportsListModels:!1,category:"more"},"zai-cn":{id:"zai-cn",name:"ZhipuAI (GLM China)",nameZh:"智谱 AI (GLM 国内版)",defaultModel:"glm-4-plus",piProviderOverride:"zai",fixedBaseUrl:"https://open.bigmodel.cn/api/coding/paas/v4",supportsBaseUrl:!1,supportsThinking:!0,supportsListModels:!1,signupUrl:"https://open.bigmodel.cn/",category:"more"},"kimi-coding":{id:"kimi-coding",name:"Kimi Coding",nameZh:"Kimi Coding (月之暗面)",defaultModel:"kimi-k2-thinking",supportsBaseUrl:!1,supportsThinking:!0,supportsListModels:!1,category:"more"},cerebras:{id:"cerebras",name:"Cerebras",nameZh:"Cerebras",defaultModel:"llama-4-scout-17b-16e",supportsBaseUrl:!1,supportsThinking:!1,supportsListModels:!0,category:"more"},minimax:{id:"minimax",name:"MiniMax",nameZh:"MiniMax (国际版)",defaultModel:"MiniMax-M2.5",supportsBaseUrl:!1,supportsThinking:!0,supportsListModels:!1,category:"more"},"minimax-cn":{id:"minimax-cn",name:"MiniMax (China)",nameZh:"MiniMax (国内版)",defaultModel:"MiniMax-M2.5",supportsBaseUrl:!1,supportsThinking:!0,supportsListModels:!1,category:"more"},huggingface:{id:"huggingface",name:"Hugging Face",nameZh:"Hugging Face",defaultModel:"Qwen/Qwen3-235B-A22B-Thinking-2507",supportsBaseUrl:!1,supportsThinking:!0,supportsListModels:!1,category:"more"},ollama:{id:"ollama",name:"Ollama",nameZh:"Ollama (本地)",defaultModel:"llama3.2",piProviderOverride:"openai",fixedBaseUrl:"http://localhost:11434/v1",apiKeyFallback:"ollama",supportsBaseUrl:!0,supportsThinking:!1,supportsListModels:!0,signupUrl:"https://ollama.com/download",category:"more"}},o=Object.keys(n);function g(a){return a in n}function h(a){return n[a]??n.anthropic}function i(a){return n[a].piProviderOverride??a}let p={deepseek:"DEEPSEEK_API_KEY"};function j(a){return p[a]?p[a]:q[i(a)]}function k(a){return"deepseek"===a?process.env.DEEPSEEK_API_KEY:(0,e.getEnvApiKey)(i(a))}function l(a){let b=n[a];if(b.fixedBaseUrl)return b.fixedBaseUrl;try{let b=(0,e.getModels)(i(a));return b[0]?.baseUrl??""}catch{return""}}function m(a){try{let b=(0,e.getModels)(i(a));return b[0]?.api??"openai-completions"}catch{return"openai-completions"}}let q={anthropic:"ANTHROPIC_API_KEY",openai:"OPENAI_API_KEY","azure-openai-responses":"AZURE_OPENAI_API_KEY",google:"GEMINI_API_KEY",groq:"GROQ_API_KEY",cerebras:"CEREBRAS_API_KEY",xai:"XAI_API_KEY",openrouter:"OPENROUTER_API_KEY",zai:"ZAI_API_KEY","zai-cn":"ZAI_API_KEY",mistral:"MISTRAL_API_KEY",minimax:"MINIMAX_API_KEY","minimax-cn":"MINIMAX_API_KEY",huggingface:"HF_TOKEN","kimi-coding":"KIMI_API_KEY"};d()}catch(a){d(a)}})},61913:(a,b,c)=>{"use strict";c.d(b,{bp:()=>e,gG:()=>j,ug:()=>i,v_:()=>g,vm:()=>f,xX:()=>h});let d={gemini:{binary:"gemini",cmd:"gemini",args:["--experimental-acp"],installCmd:"npm install -g @google/gemini-cli",displayName:"Gemini CLI",description:"Google Gemini 驱动的编程智能体。支持多文件编辑、代码审查、调试和项目级重构,原生集成 Google 搜索实时查询技术文档。"},"gemini-cli":{binary:"gemini",cmd:"gemini",args:["--experimental-acp"],installCmd:"npm install -g @google/gemini-cli",displayName:"Gemini CLI",description:"Google Gemini 驱动的编程智能体。支持多文件编辑、代码审查、调试和项目级重构,原生集成 Google 搜索实时查询技术文档。"},claude:{binary:"claude",cmd:"npx",args:["--yes","@agentclientprotocol/claude-agent-acp"],installCmd:"npm install -g @anthropic-ai/claude-code",displayName:"Claude Code",description:"Anthropic Claude 驱动的编程智能体。擅长复杂推理、长上下文理解和安全代码生成,支持多文件编辑与 agentic 工作流。"},"claude-code":{binary:"claude",cmd:"npx",args:["--yes","@agentclientprotocol/claude-agent-acp"],installCmd:"npm install -g @anthropic-ai/claude-code",displayName:"Claude Code",description:"Anthropic Claude 驱动的编程智能体。擅长复杂推理、长上下文理解和安全代码生成,支持多文件编辑与 agentic 工作流。"},"claude-acp":{binary:"claude",cmd:"npx",args:["--yes","@agentclientprotocol/claude-agent-acp"],installCmd:"npm install -g @anthropic-ai/claude-code",displayName:"Claude Code",description:"Anthropic Claude 驱动的编程智能体。擅长复杂推理、长上下文理解和安全代码生成,支持多文件编辑与 agentic 工作流。"},"codebuddy-code":{binary:"codebuddy",cmd:"codebuddy",args:["--acp"],installCmd:"npm install -g @tencent-ai/codebuddy-code",displayName:"CodeBuddy Code",description:"腾讯云智能编程助手。基于混元大模型,支持代码补全、生成、审查和多文件重构,深度理解中文语境,适配国内开发生态。"},codebuddy:{binary:"codebuddy",cmd:"codebuddy",args:["--acp"],installCmd:"npm install -g @tencent-ai/codebuddy-code",displayName:"CodeBuddy Code",description:"腾讯云智能编程助手。基于混元大模型,支持代码补全、生成、审查和多文件重构,深度理解中文语境,适配国内开发生态。"},"codex-acp":{binary:"codex",cmd:"codex",args:[],installCmd:"npm install -g @openai/codex",displayName:"Codex",description:"OpenAI Codex 编程智能体。基于 GPT 系列模型,擅长代码生成、自动化任务和多语言编程支持。"},codex:{binary:"codex",cmd:"codex",args:[],installCmd:"npm install -g @openai/codex",displayName:"Codex",description:"OpenAI Codex 编程智能体。基于 GPT 系列模型,擅长代码生成、自动化任务和多语言编程支持。"},cursor:{binary:"cursor",cmd:"cursor",args:[],displayName:"Cursor",description:"Cursor AI 编程智能体。AI-first 代码编辑器的 CLI 模式,支持上下文感知的代码编辑、Tab 补全和多文件协同修改。"},cline:{binary:"cline",cmd:"cline",args:[],installCmd:"npm install -g cline",displayName:"Cline",description:"开源自主编程智能体。支持多模型后端,内置文件编辑、终端执行和浏览器自动化能力。"},"github-copilot-cli":{binary:"github-copilot",cmd:"github-copilot",args:[],installCmd:"npm install -g @github/copilot",displayName:"GitHub Copilot",description:"GitHub Copilot 编程智能体。基于海量开源代码训练,擅长代码补全、测试生成和跨语言编程支持。"},goose:{binary:"goose",cmd:"goose",args:[],installCmd:"pip install goose-ai",displayName:"Goose",description:"Block 开源自主编程智能体。支持多模型后端,可扩展插件架构,擅长复杂任务自动化。"},opencode:{binary:"opencode",cmd:"opencode",args:[],installCmd:"go install github.com/opencode-ai/opencode@latest",displayName:"OpenCode",description:"开源终端编程智能体。Go 实现,轻量快速,支持多模型后端和丰富的代码编辑工具。"},kilo:{binary:"kilo",cmd:"kilo",args:[],installCmd:"npm install -g @kilocode/cli",displayName:"Kilo Code",description:"Kilo Code 编程智能体。开源 VS Code 扩展的 CLI 模式,支持多模型、自动审批和代码差异预览。"},openclaw:{binary:"openclaw",cmd:"openclaw",args:[],displayName:"OpenClaw",description:"OpenClaw 编程智能体。开源 Claude Code 替代方案,支持多模型后端和完整的 agentic 工作流。"},pi:{binary:"pi",cmd:"pi",args:[],displayName:"Pi Agent",description:"Pi Agent 编程智能体。轻量级终端编程助手。"},"pi-acp":{binary:"pi",cmd:"pi",args:[],displayName:"Pi Agent",description:"Pi Agent 编程智能体。轻量级终端编程助手。"},auggie:{binary:"auggie",cmd:"auggie",args:[],displayName:"Auggie",description:"Augment Code 编程智能体。支持代码理解、生成和全仓库上下文感知。"},iflow:{binary:"iflow",cmd:"iflow",args:[],displayName:"iFlow",description:"iFlow 编程智能体。AI 驱动的工作流自动化工具。"},kimi:{binary:"kimi",cmd:"kimi",args:[],displayName:"Kimi",description:"Moonshot AI Kimi 编程智能体。擅长超长上下文理解,支持中文语境下的代码生成与分析。"},"qwen-code":{binary:"qwen-code",cmd:"qwen-code",args:[],installCmd:"npm install -g @qwen-code/qwen-code",displayName:"Qwen Code",description:"阿里通义千问 Qwen 编程智能体。基于 Qwen 大模型,支持代码生成、审查和多语言编程,深度适配中文开发场景。"},lingma:{binary:"lingma",cmd:"lingma",args:[],displayName:"Lingma",description:"阿里通义灵码智能编程助手。提供代码补全、智能问答、多文件修改和编程智能体能力,支持 MCP 工具扩展。"}};function e(a,b,c){let e=d[a],f=c?.enabled!==!1;if(c&&(c.command||c.args))return{cmd:c.command??e?.cmd??b?.command??a,args:c.args??e?.args??[],env:c.env,source:"user-override",binary:e?.binary??a,installCmd:e?.installCmd,enabled:f};if(e)return{cmd:e.cmd,args:e.args,env:c?.env,source:"descriptor",binary:e.binary,installCmd:e.installCmd,enabled:f};if(b){let{cmd:d,args:e}=function(a){switch(a.transport){case"npx":return{cmd:"npx",args:["--yes",a.command,...a.args??[]]};case"uvx":return{cmd:"uvx",args:[a.command,...a.args??[]]};default:return{cmd:a.command,args:a.args??[]}}}(b);return{cmd:d,args:e,env:c?.env,source:"registry",binary:a,installCmd:b.packageName?`npm install -g ${b.packageName}`:void 0,enabled:f}}return{cmd:a,args:[],env:c?.env,source:"registry",binary:a,enabled:f}}function f(a){return d[a]?.binary}function g(a){return d[a]?.installCmd}function h(a){return d[a]?.displayName}function i(a){return d[a]?.description}function j(a){if(!a||"object"!=typeof a||Array.isArray(a))return;let b={},c=!1;for(let[d,e]of Object.entries(a)){if(!e||"object"!=typeof e||Array.isArray(e))continue;let a={};if("string"==typeof e.command&&e.command.trim()&&(a.command=e.command.trim()),Array.isArray(e.args)&&(a.args=e.args.filter(a=>"string"==typeof a)),e.env&&"object"==typeof e.env&&!Array.isArray(e.env)){let b={};for(let[a,c]of Object.entries(e.env))"string"==typeof c&&(b[a]=c);Object.keys(b).length>0&&(a.env=b)}"boolean"==typeof e.enabled&&(a.enabled=e.enabled),Object.keys(a).length>0&&(b[d]=a,c=!0)}return c?b:void 0}},76223:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Sf:()=>r,_S:()=>u,kh:()=>s,readSettings:()=>o,recordSkillInstall:()=>q,writeSettings:()=>p,xV:()=>t});var e=c(29021),f=c.n(e),g=c(33873),h=c.n(g),i=c(21820),j=c.n(i),k=c(61913),l=c(39008),m=a([l]);l=(m.then?(await m)():m)[0];let v=h().join(j().homedir(),".mindos","config.json"),w={ai:{provider:"anthropic",providers:{anthropic:{apiKey:"",model:"claude-sonnet-4-6"},openai:{apiKey:"",model:"gpt-5.4",baseUrl:""}}},mindRoot:""};function n(a,b,c){if(a&&"object"==typeof a){let c=a[b];if("string"==typeof c&&""!==c.trim())return c}return c}function o(){try{var a;let b=f().readFileSync(v,"utf-8"),c=JSON.parse(b);return{ai:function(a){let b=a.ai;if(!b)return{...w.ai};let c="string"==typeof b.provider?b.provider:"anthropic",d=(0,l.rl)(c)?c:"anthropic";if(b.providers&&"object"==typeof b.providers){let a=b.providers,c={};for(let b of Object.keys(a)){var e;if(!(0,l.rl)(b))continue;let d=l.T_[b],f=w.ai.providers[b]??{apiKey:"",model:d.defaultModel};c[b]=(e=a[b],{apiKey:n(e,"apiKey",f.apiKey),model:n(e,"model",f.model),...void 0!==f.baseUrl?{baseUrl:n(e,"baseUrl",f.baseUrl)}:{}})}return c.anthropic||(c.anthropic=w.ai.providers.anthropic),c.openai||(c.openai=w.ai.providers.openai),{provider:d,providers:c}}return{provider:d,providers:{anthropic:{apiKey:n(b,"anthropicApiKey",""),model:n(b,"anthropicModel","claude-sonnet-4-6")},openai:{apiKey:n(b,"openaiApiKey",""),model:n(b,"openaiModel","gpt-5.4"),baseUrl:n(b,"openaiBaseUrl","")}}}}(c),agent:function(a){if(!a||"object"!=typeof a)return;let b={};return"number"==typeof a.maxSteps&&(b.maxSteps=Math.min(30,Math.max(1,a.maxSteps))),"boolean"==typeof a.enableThinking&&(b.enableThinking=a.enableThinking),"number"==typeof a.thinkingBudget&&(b.thinkingBudget=Math.min(5e4,Math.max(1e3,a.thinkingBudget))),("auto"===a.contextStrategy||"off"===a.contextStrategy)&&(b.contextStrategy=a.contextStrategy),"number"==typeof a.reconnectRetries&&(b.reconnectRetries=Math.min(10,Math.max(0,a.reconnectRetries))),Object.keys(b).length>0?b:void 0}(c.agent),acpAgents:(a=c.acpAgents,(0,k.gG)(a)),mindRoot:c.mindRoot??w.mindRoot,webPassword:"string"==typeof c.webPassword?c.webPassword:void 0,authToken:"string"==typeof c.authToken?c.authToken:void 0,mcpPort:"number"==typeof c.mcpPort?c.mcpPort:void 0,port:"number"==typeof c.port?c.port:void 0,startMode:"string"==typeof c.startMode?c.startMode:void 0,setupPending:!0===c.setupPending||void 0,disabledSkills:Array.isArray(c.disabledSkills)?c.disabledSkills:void 0,guideState:function(a){if(!a||"object"!=typeof a||!0!==a.active)return;let b="en"===a.template||"zh"===a.template||"empty"===a.template?a.template:"en";return{active:!0,dismissed:!0===a.dismissed,template:b,step1Done:!0===a.step1Done,askedAI:!0===a.askedAI,nextStepIndex:"number"==typeof a.nextStepIndex?a.nextStepIndex:0,walkthroughStep:"number"==typeof a.walkthroughStep?a.walkthroughStep:void 0,walkthroughDismissed:"boolean"==typeof a.walkthroughDismissed?a.walkthroughDismissed:void 0}}(c.guideState),baseUrlCompat:(()=>{let a=c.baseUrlCompat;if(!a||"object"!=typeof a)return;let b={};for(let[c,d]of Object.entries(a))("streaming"===d||"non-streaming"===d)&&(b[c]=d);return Object.keys(b).length>0?b:void 0})(),connectionMode:function(a){if(a.connectionMode&&"object"==typeof a.connectionMode){let b=a.connectionMode;if("boolean"==typeof b.cli&&"boolean"==typeof b.mcp)return{cli:b.cli,mcp:b.mcp}}let b=!0===a.setupPending||!a.mindRoot;return{cli:!0,mcp:!b}}(c),customAgents:Array.isArray(c.customAgents)?c.customAgents:void 0}}catch{return{...w,ai:{...w.ai,providers:{...w.ai.providers}},setupPending:!0,connectionMode:{cli:!0,mcp:!1}}}}function p(a){let b=h().dirname(v);f().existsSync(b)||f().mkdirSync(b,{recursive:!0});let c={};try{c=JSON.parse(f().readFileSync(v,"utf-8"))}catch{}let d={...c,ai:a.ai,mindRoot:a.mindRoot};void 0!==a.agent&&(d.agent=a.agent),void 0!==a.webPassword&&(d.webPassword=a.webPassword),void 0!==a.authToken&&(d.authToken=a.authToken),void 0!==a.port&&(d.port=a.port),void 0!==a.mcpPort&&(d.mcpPort=a.mcpPort),void 0!==a.startMode&&(d.startMode=a.startMode),void 0!==a.disabledSkills&&(d.disabledSkills=a.disabledSkills),void 0!==a.guideState&&(d.guideState=a.guideState),void 0!==a.acpAgents&&(d.acpAgents=a.acpAgents),void 0!==a.baseUrlCompat&&(d.baseUrlCompat=a.baseUrlCompat),void 0!==a.connectionMode&&(d.connectionMode=a.connectionMode),void 0!==a.customAgents&&(d.customAgents=a.customAgents),"setupPending"in a&&(a.setupPending?d.setupPending=!0:delete d.setupPending),"setupPort"in a&&(a.setupPort?d.setupPort=a.setupPort:delete d.setupPort),f().writeFileSync(v,JSON.stringify(d,null,2)+"\n","utf-8")}function q(a,b,c){let d={};try{d=JSON.parse(f().readFileSync(v,"utf-8"))}catch{}let e=Array.isArray(d.installedSkillAgents)?d.installedSkillAgents:[],g={agent:a,skill:b,path:c},i=e.findIndex(c=>c.agent===a&&c.skill===b);i>=0?e[i]=g:e.push(g),d.installedSkillAgents=e;let j=h().dirname(v);f().existsSync(j)||f().mkdirSync(j,{recursive:!0}),f().writeFileSync(v,JSON.stringify(d,null,2)+"\n","utf-8")}function r(a){let b=o(),c=process.env.AI_PROVIDER,d=a??((0,l.rl)(b.ai.provider)?b.ai.provider:c&&(0,l.rl)(c)?c:"anthropic"),e=l.T_[d]??l.T_.anthropic,f=b.ai.providers[d]??{apiKey:"",model:""},g=f.apiKey||(0,l.lr)(d)||e.apiKeyFallback||"",h=f.model||e.defaultModel,i=f.baseUrl||e.fixedBaseUrl||"";return{provider:d,apiKey:g,model:h,baseUrl:i}}function s(){return o().mindRoot||process.env.MIND_ROOT||h().join(j().homedir(),"MindOS","mind")}function t(){try{return o().baseUrlCompat??{}}catch{return{}}}function u(a,b){let c=o(),d={...c.baseUrlCompat??{},[a]:b};p({...c,baseUrlCompat:d})}d()}catch(a){d(a)}})},78335:()=>{},96487:()=>{}};
1
+ exports.id=6539,exports.ids=[6539],exports.modules={4202:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{CY:()=>n,Ko:()=>l,Ny:()=>h,S9:()=>j,lh:()=>k,mV:()=>g,yx:()=>m});var e=c(39008),f=a([e]);function g(){return"p_"+Math.random().toString(36).slice(2,10)}function h(a){return"string"==typeof a&&a.startsWith("p_")}function i(a){return!!a&&"object"==typeof a&&"string"==typeof a.id&&a.id.startsWith("p_")&&"string"==typeof a.name&&a.name.trim().length>0&&"string"==typeof a.protocol&&(0,e.rl)(a.protocol)&&"string"==typeof a.apiKey&&"string"==typeof a.model&&"string"==typeof a.baseUrl}function j(a){return Array.isArray(a)?a.filter(i):[]}function k(a,b){return a.find(a=>a.id===b)}function l(a){let b=a.ai;if(!b||Array.isArray(b.providers))return null;let c=b.providers??{},d=b.provider??"openai",f=a.customProviders??[],h=[],i="";for(let[a,b]of Object.entries(c)){if(!b||!(0,e.rl)(a)||!b.apiKey&&!b.model&&!b.baseUrl)continue;let c=e.T_[a],f=g();h.push({id:f,name:c?.name??a,protocol:a,apiKey:b.apiKey??"",model:b.model??"",baseUrl:b.baseUrl??""}),a===d&&(i=f)}for(let a of f){if(!a.name||!a.baseProviderId)continue;let b=g();h.push({id:b,name:a.name,protocol:(0,e.rl)(a.baseProviderId)?a.baseProviderId:"openai",apiKey:a.apiKey??"",model:a.model??"",baseUrl:a.baseUrl??""}),a.id===d&&(i=b)}if(!i)if(h.length>0)i=h[0].id;else{let a=g();h.push({id:a,name:"OpenAI",protocol:"openai",apiKey:"",model:e.T_.openai?.defaultModel??"",baseUrl:""}),i=a}return{activeProvider:i,providers:h}}function m(a){return h(a)||"string"==typeof a&&a.startsWith("cp_")}e=(f.then?(await f)():f)[0];let n=k;d()}catch(a){d(a)}})},39008:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{KP:()=>i,Ot:()=>l,T_:()=>n,Ux:()=>j,im:()=>h,jt:()=>o,lr:()=>k,rl:()=>g,us:()=>m});var e=c(14270),f=a([e]);e=(f.then?(await f)():f)[0];let n={anthropic:{id:"anthropic",name:"Anthropic",nameZh:"Anthropic",shortLabel:"Anthropic",defaultModel:"claude-sonnet-4-6",supportsBaseUrl:!0,supportsThinking:!0,supportsListModels:!0,signupUrl:"https://console.anthropic.com/settings/keys",category:"primary"},openai:{id:"openai",name:"OpenAI",nameZh:"OpenAI",shortLabel:"OpenAI",defaultModel:"gpt-5.4",supportsBaseUrl:!0,supportsThinking:!0,supportsListModels:!0,signupUrl:"https://platform.openai.com/api-keys",category:"primary"},google:{id:"google",name:"Google Gemini",nameZh:"Google Gemini",shortLabel:"Gemini",defaultModel:"gemini-2.5-flash",supportsBaseUrl:!1,supportsThinking:!0,supportsListModels:!1,signupUrl:"https://aistudio.google.com/apikey",category:"primary"},groq:{id:"groq",name:"Groq",nameZh:"Groq",shortLabel:"Groq",defaultModel:"llama-3.3-70b-versatile",supportsBaseUrl:!1,supportsThinking:!1,supportsListModels:!0,signupUrl:"https://console.groq.com/keys",category:"more"},xai:{id:"xai",name:"xAI (Grok)",nameZh:"xAI (Grok)",shortLabel:"xAI",defaultModel:"grok-3",supportsBaseUrl:!1,supportsThinking:!1,supportsListModels:!0,category:"more"},openrouter:{id:"openrouter",name:"OpenRouter",nameZh:"OpenRouter",shortLabel:"OpenRouter",defaultModel:"anthropic/claude-sonnet-4",supportsBaseUrl:!1,supportsThinking:!1,supportsListModels:!0,category:"more"},mistral:{id:"mistral",name:"Mistral",nameZh:"Mistral",shortLabel:"Mistral",defaultModel:"mistral-large-latest",supportsBaseUrl:!1,supportsThinking:!1,supportsListModels:!0,category:"more"},deepseek:{id:"deepseek",name:"DeepSeek",nameZh:"DeepSeek",shortLabel:"DeepSeek",defaultModel:"deepseek-chat",piProviderOverride:"openai",fixedBaseUrl:"https://api.deepseek.com/v1",supportsBaseUrl:!0,supportsThinking:!0,supportsListModels:!0,signupUrl:"https://platform.deepseek.com/api_keys",category:"more"},zai:{id:"zai",name:"ZhipuAI (GLM)",nameZh:"智谱 AI (GLM 国际版)",shortLabel:"智谱GLM",defaultModel:"glm-4-plus",supportsBaseUrl:!1,supportsThinking:!0,supportsListModels:!1,category:"more"},"zai-cn":{id:"zai-cn",name:"ZhipuAI (GLM China)",nameZh:"智谱 AI (GLM 国内版)",shortLabel:"智谱GLM-CN",description:"China region version",descriptionZh:"中国区版本",defaultModel:"glm-4-plus",piProviderOverride:"zai",fixedBaseUrl:"https://open.bigmodel.cn/api/coding/paas/v4",supportsBaseUrl:!1,supportsThinking:!0,supportsListModels:!1,signupUrl:"https://open.bigmodel.cn/",category:"more"},"kimi-coding":{id:"kimi-coding",name:"Kimi Coding",nameZh:"Kimi Coding (月之暗面)",shortLabel:"Kimi Coding",defaultModel:"kimi-k2-thinking",supportsBaseUrl:!1,supportsThinking:!0,supportsListModels:!1,category:"more"},cerebras:{id:"cerebras",name:"Cerebras",nameZh:"Cerebras",shortLabel:"Cerebras",defaultModel:"llama-4-scout-17b-16e",supportsBaseUrl:!1,supportsThinking:!1,supportsListModels:!0,category:"more"},minimax:{id:"minimax",name:"MiniMax",nameZh:"MiniMax (国际版)",shortLabel:"MiniMax",defaultModel:"MiniMax-M2.5",supportsBaseUrl:!1,supportsThinking:!0,supportsListModels:!1,category:"more"},"minimax-cn":{id:"minimax-cn",name:"MiniMax (China)",nameZh:"MiniMax (国内版)",shortLabel:"MiniMax-CN",description:"China region version",descriptionZh:"中国区版本",defaultModel:"MiniMax-M2.5",supportsBaseUrl:!1,supportsThinking:!0,supportsListModels:!1,category:"more"},huggingface:{id:"huggingface",name:"Hugging Face",nameZh:"Hugging Face",shortLabel:"HuggingFace",defaultModel:"Qwen/Qwen3-235B-A22B-Thinking-2507",supportsBaseUrl:!1,supportsThinking:!0,supportsListModels:!1,category:"more"},ollama:{id:"ollama",name:"Ollama",nameZh:"Ollama (本地)",shortLabel:"Ollama",description:"Local server (requires setup)",descriptionZh:"本地服务器 (需要本地部署)",defaultModel:"llama3.2",piProviderOverride:"openai",fixedBaseUrl:"http://localhost:11434/v1",apiKeyFallback:"ollama",supportsBaseUrl:!0,supportsThinking:!1,supportsListModels:!0,signupUrl:"https://ollama.com/download",category:"more"}},o=Object.keys(n);function g(a){return a in n}function h(a){return n[a]??n.anthropic}function i(a){return n[a].piProviderOverride??a}let p={deepseek:"DEEPSEEK_API_KEY"};function j(a){return p[a]?p[a]:q[i(a)]}function k(a){return"deepseek"===a?process.env.DEEPSEEK_API_KEY:(0,e.getEnvApiKey)(i(a))}function l(a){let b=n[a];if(b.fixedBaseUrl)return b.fixedBaseUrl;try{let b=(0,e.getModels)(i(a));return b[0]?.baseUrl??""}catch{return""}}function m(a){try{let b=(0,e.getModels)(i(a));return b[0]?.api??"openai-completions"}catch{return"openai-completions"}}let q={anthropic:"ANTHROPIC_API_KEY",openai:"OPENAI_API_KEY","azure-openai-responses":"AZURE_OPENAI_API_KEY",google:"GEMINI_API_KEY",groq:"GROQ_API_KEY",cerebras:"CEREBRAS_API_KEY",xai:"XAI_API_KEY",openrouter:"OPENROUTER_API_KEY",zai:"ZAI_API_KEY","zai-cn":"ZAI_API_KEY",mistral:"MISTRAL_API_KEY",minimax:"MINIMAX_API_KEY","minimax-cn":"MINIMAX_API_KEY",huggingface:"HF_TOKEN","kimi-coding":"KIMI_API_KEY"};d()}catch(a){d(a)}})},61913:(a,b,c)=>{"use strict";c.d(b,{bp:()=>e,gG:()=>j,ug:()=>i,v_:()=>g,vm:()=>f,xX:()=>h,z8:()=>d});let d={gemini:{binary:"gemini",cmd:"gemini",args:["--experimental-acp"],installCmd:"npm install -g @google/gemini-cli",displayName:"Gemini CLI",description:"Google Gemini 驱动的编程智能体。支持多文件编辑、代码审查、调试和项目级重构,原生集成 Google 搜索实时查询技术文档。"},"gemini-cli":{binary:"gemini",cmd:"gemini",args:["--experimental-acp"],installCmd:"npm install -g @google/gemini-cli",displayName:"Gemini CLI",description:"Google Gemini 驱动的编程智能体。支持多文件编辑、代码审查、调试和项目级重构,原生集成 Google 搜索实时查询技术文档。"},claude:{binary:"claude",cmd:"npx",args:["--yes","@agentclientprotocol/claude-agent-acp"],installCmd:"npm install -g @anthropic-ai/claude-code",displayName:"Claude Code",description:"Anthropic Claude 驱动的编程智能体。擅长复杂推理、长上下文理解和安全代码生成,支持多文件编辑与 agentic 工作流。"},"claude-code":{binary:"claude",cmd:"npx",args:["--yes","@agentclientprotocol/claude-agent-acp"],installCmd:"npm install -g @anthropic-ai/claude-code",displayName:"Claude Code",description:"Anthropic Claude 驱动的编程智能体。擅长复杂推理、长上下文理解和安全代码生成,支持多文件编辑与 agentic 工作流。"},"claude-acp":{binary:"claude",cmd:"npx",args:["--yes","@agentclientprotocol/claude-agent-acp"],installCmd:"npm install -g @anthropic-ai/claude-code",displayName:"Claude Code",description:"Anthropic Claude 驱动的编程智能体。擅长复杂推理、长上下文理解和安全代码生成,支持多文件编辑与 agentic 工作流。"},"codebuddy-code":{binary:"codebuddy",cmd:"codebuddy",args:["--acp"],installCmd:"npm install -g @tencent-ai/codebuddy-code",displayName:"CodeBuddy Code",description:"腾讯云智能编程助手。基于混元大模型,支持代码补全、生成、审查和多文件重构,深度理解中文语境,适配国内开发生态。"},codebuddy:{binary:"codebuddy",cmd:"codebuddy",args:["--acp"],installCmd:"npm install -g @tencent-ai/codebuddy-code",displayName:"CodeBuddy Code",description:"腾讯云智能编程助手。基于混元大模型,支持代码补全、生成、审查和多文件重构,深度理解中文语境,适配国内开发生态。"},"codex-acp":{binary:"codex",cmd:"codex",args:[],installCmd:"npm install -g @openai/codex",displayName:"Codex",description:"OpenAI Codex 编程智能体。基于 GPT 系列模型,擅长代码生成、自动化任务和多语言编程支持。"},codex:{binary:"codex",cmd:"codex",args:[],installCmd:"npm install -g @openai/codex",displayName:"Codex",description:"OpenAI Codex 编程智能体。基于 GPT 系列模型,擅长代码生成、自动化任务和多语言编程支持。"},cursor:{binary:"cursor",cmd:"cursor",args:[],displayName:"Cursor",description:"Cursor AI 编程智能体。AI-first 代码编辑器的 CLI 模式,支持上下文感知的代码编辑、Tab 补全和多文件协同修改。"},cline:{binary:"cline",cmd:"cline",args:[],installCmd:"npm install -g cline",displayName:"Cline",description:"开源自主编程智能体。支持多模型后端,内置文件编辑、终端执行和浏览器自动化能力。"},"github-copilot-cli":{binary:"github-copilot",cmd:"github-copilot",args:[],installCmd:"npm install -g @github/copilot",displayName:"GitHub Copilot",description:"GitHub Copilot 编程智能体。基于海量开源代码训练,擅长代码补全、测试生成和跨语言编程支持。"},goose:{binary:"goose",cmd:"goose",args:[],installCmd:"pip install goose-ai",displayName:"Goose",description:"Block 开源自主编程智能体。支持多模型后端,可扩展插件架构,擅长复杂任务自动化。"},opencode:{binary:"opencode",cmd:"opencode",args:[],installCmd:"go install github.com/opencode-ai/opencode@latest",displayName:"OpenCode",description:"开源终端编程智能体。Go 实现,轻量快速,支持多模型后端和丰富的代码编辑工具。"},kilo:{binary:"kilo",cmd:"kilo",args:[],installCmd:"npm install -g @kilocode/cli",displayName:"Kilo Code",description:"Kilo Code 编程智能体。开源 VS Code 扩展的 CLI 模式,支持多模型、自动审批和代码差异预览。"},openclaw:{binary:"openclaw",cmd:"openclaw",args:[],displayName:"OpenClaw",description:"OpenClaw 编程智能体。开源 Claude Code 替代方案,支持多模型后端和完整的 agentic 工作流。"},pi:{binary:"pi",cmd:"pi",args:[],displayName:"Pi Agent",description:"Pi Agent 编程智能体。轻量级终端编程助手。"},"pi-acp":{binary:"pi",cmd:"pi",args:[],displayName:"Pi Agent",description:"Pi Agent 编程智能体。轻量级终端编程助手。"},auggie:{binary:"auggie",cmd:"auggie",args:[],displayName:"Auggie",description:"Augment Code 编程智能体。支持代码理解、生成和全仓库上下文感知。"},iflow:{binary:"iflow",cmd:"iflow",args:[],displayName:"iFlow",description:"iFlow 编程智能体。AI 驱动的工作流自动化工具。"},kimi:{binary:"kimi",cmd:"kimi",args:[],displayName:"Kimi",description:"Moonshot AI Kimi 编程智能体。擅长超长上下文理解,支持中文语境下的代码生成与分析。"},"qwen-code":{binary:"qwen-code",cmd:"qwen-code",args:[],installCmd:"npm install -g @qwen-code/qwen-code",displayName:"Qwen Code",description:"阿里通义千问 Qwen 编程智能体。基于 Qwen 大模型,支持代码生成、审查和多语言编程,深度适配中文开发场景。"},lingma:{binary:"lingma",cmd:"lingma",args:[],displayName:"Lingma",description:"阿里通义灵码智能编程助手。提供代码补全、智能问答、多文件修改和编程智能体能力,支持 MCP 工具扩展。"}};function e(a,b,c){let e=d[a],f=c?.enabled!==!1;if(c&&(c.command||c.args))return{cmd:c.command??e?.cmd??b?.command??a,args:c.args??e?.args??[],env:c.env,source:"user-override",binary:e?.binary??a,installCmd:e?.installCmd,enabled:f};if(e)return{cmd:e.cmd,args:e.args,env:c?.env,source:"descriptor",binary:e.binary,installCmd:e.installCmd,enabled:f};if(b){let{cmd:d,args:e}=function(a){switch(a.transport){case"npx":return{cmd:"npx",args:["--yes",a.command,...a.args??[]]};case"uvx":return{cmd:"uvx",args:[a.command,...a.args??[]]};default:return{cmd:a.command,args:a.args??[]}}}(b);return{cmd:d,args:e,env:c?.env,source:"registry",binary:a,installCmd:b.packageName?`npm install -g ${b.packageName}`:void 0,enabled:f}}return{cmd:a,args:[],env:c?.env,source:"registry",binary:a,enabled:f}}function f(a){return d[a]?.binary}function g(a){return d[a]?.installCmd}function h(a){return d[a]?.displayName}function i(a){return d[a]?.description}function j(a){if(!a||"object"!=typeof a||Array.isArray(a))return;let b={},c=!1;for(let[d,e]of Object.entries(a)){if(!e||"object"!=typeof e||Array.isArray(e))continue;let a={};if("string"==typeof e.command&&e.command.trim()&&(a.command=e.command.trim()),Array.isArray(e.args)&&(a.args=e.args.filter(a=>"string"==typeof a)),e.env&&"object"==typeof e.env&&!Array.isArray(e.env)){let b={};for(let[a,c]of Object.entries(e.env))"string"==typeof c&&(b[a]=c);Object.keys(b).length>0&&(a.env=b)}"boolean"==typeof e.enabled&&(a.enabled=e.enabled),Object.keys(a).length>0&&(b[d]=a,c=!0)}return c?b:void 0}},76223:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Sf:()=>r,_S:()=>u,kh:()=>s,readSettings:()=>o,recordSkillInstall:()=>q,writeSettings:()=>p,xV:()=>t});var e=c(29021),f=c.n(e),g=c(33873),h=c.n(g),i=c(21820),j=c.n(i),k=c(61913),l=c(39008),m=c(4202),n=a([l,m]);[l,m]=n.then?(await n)():n;let v=h().join(j().homedir(),".mindos","config.json"),w={ai:{activeProvider:"",providers:[]},mindRoot:""};function o(){try{var a;let b=f().readFileSync(v,"utf-8"),c=JSON.parse(b),d=c.ai,e=d&&!Array.isArray(d.providers),g={ai:function(a){let b=a.ai;if(!b)return{...w.ai};if(Array.isArray(b.providers)){let a=(0,m.S9)(b.providers);return{activeProvider:"string"==typeof b.activeProvider?b.activeProvider:"",providers:a}}let c=(0,m.Ko)(a);return c?{activeProvider:c.activeProvider,providers:c.providers}:{...w.ai}}(c),agent:function(a){if(!a||"object"!=typeof a)return;let b={};return"number"==typeof a.maxSteps&&(b.maxSteps=Math.min(30,Math.max(1,a.maxSteps))),"boolean"==typeof a.enableThinking&&(b.enableThinking=a.enableThinking),"number"==typeof a.thinkingBudget&&(b.thinkingBudget=Math.min(5e4,Math.max(1e3,a.thinkingBudget))),("auto"===a.contextStrategy||"off"===a.contextStrategy)&&(b.contextStrategy=a.contextStrategy),"number"==typeof a.reconnectRetries&&(b.reconnectRetries=Math.min(10,Math.max(0,a.reconnectRetries))),Object.keys(b).length>0?b:void 0}(c.agent),acpAgents:(a=c.acpAgents,(0,k.gG)(a)),mindRoot:c.mindRoot??w.mindRoot,webPassword:"string"==typeof c.webPassword?c.webPassword:void 0,authToken:"string"==typeof c.authToken?c.authToken:void 0,mcpPort:"number"==typeof c.mcpPort?c.mcpPort:void 0,port:"number"==typeof c.port?c.port:void 0,startMode:"string"==typeof c.startMode?c.startMode:void 0,setupPending:!0===c.setupPending||void 0,disabledSkills:Array.isArray(c.disabledSkills)?c.disabledSkills:void 0,guideState:function(a){if(!a||"object"!=typeof a||!0!==a.active)return;let b="en"===a.template||"zh"===a.template||"empty"===a.template?a.template:"en";return{active:!0,dismissed:!0===a.dismissed,template:b,step1Done:!0===a.step1Done,askedAI:!0===a.askedAI,nextStepIndex:"number"==typeof a.nextStepIndex?a.nextStepIndex:0,walkthroughStep:"number"==typeof a.walkthroughStep?a.walkthroughStep:void 0,walkthroughDismissed:"boolean"==typeof a.walkthroughDismissed?a.walkthroughDismissed:void 0}}(c.guideState),baseUrlCompat:(()=>{let a=c.baseUrlCompat;if(!a||"object"!=typeof a)return;let b={};for(let[c,d]of Object.entries(a))("streaming"===d||"non-streaming"===d)&&(b[c]=d);return Object.keys(b).length>0?b:void 0})(),connectionMode:function(a){if(a.connectionMode&&"object"==typeof a.connectionMode){let b=a.connectionMode;if("boolean"==typeof b.cli&&"boolean"==typeof b.mcp)return{cli:b.cli,mcp:b.mcp}}let b=!0===a.setupPending||!a.mindRoot;return{cli:!0,mcp:!b}}(c),customAgents:Array.isArray(c.customAgents)?c.customAgents:void 0};if(e)try{p(g)}catch{}return g}catch{return{...w,ai:{...w.ai,providers:[]},setupPending:!0,connectionMode:{cli:!0,mcp:!1}}}}function p(a){let b=h().dirname(v);f().existsSync(b)||f().mkdirSync(b,{recursive:!0});let c={};try{c=JSON.parse(f().readFileSync(v,"utf-8"))}catch{}let d={...c,ai:a.ai,mindRoot:a.mindRoot};void 0!==a.agent&&(d.agent=a.agent),void 0!==a.webPassword&&(d.webPassword=a.webPassword),void 0!==a.authToken&&(d.authToken=a.authToken),void 0!==a.port&&(d.port=a.port),void 0!==a.mcpPort&&(d.mcpPort=a.mcpPort),void 0!==a.startMode&&(d.startMode=a.startMode),void 0!==a.disabledSkills&&(d.disabledSkills=a.disabledSkills),void 0!==a.guideState&&(d.guideState=a.guideState),void 0!==a.acpAgents&&(d.acpAgents=a.acpAgents),void 0!==a.baseUrlCompat&&(d.baseUrlCompat=a.baseUrlCompat),void 0!==a.connectionMode&&(d.connectionMode=a.connectionMode),void 0!==a.customAgents&&(d.customAgents=a.customAgents),delete d.customProviders,"setupPending"in a&&(a.setupPending?d.setupPending=!0:delete d.setupPending),"setupPort"in a&&(a.setupPort?d.setupPort=a.setupPort:delete d.setupPort),f().writeFileSync(v,JSON.stringify(d,null,2)+"\n","utf-8")}function q(a,b,c){let d={};try{d=JSON.parse(f().readFileSync(v,"utf-8"))}catch{}let e=Array.isArray(d.installedSkillAgents)?d.installedSkillAgents:[],g={agent:a,skill:b,path:c},i=e.findIndex(c=>c.agent===a&&c.skill===b);i>=0?e[i]=g:e.push(g),d.installedSkillAgents=e;let j=h().dirname(v);f().existsSync(j)||f().mkdirSync(j,{recursive:!0}),f().writeFileSync(v,JSON.stringify(d,null,2)+"\n","utf-8")}function r(a){let b=o(),c=a||b.ai.activeProvider,d=c?(0,m.lh)(b.ai.providers,c):void 0;if(d){let a=l.T_[d.protocol],b=d.apiKey||(0,l.lr)(d.protocol)||a?.apiKeyFallback||"",c=d.model||a?.defaultModel||"",e=d.baseUrl||a?.fixedBaseUrl||"";return{provider:d.protocol,apiKey:b,model:c,baseUrl:e}}let e=process.env.AI_PROVIDER,f=e&&(0,l.rl)(e)?e:"anthropic",g=l.T_[f]??l.T_.anthropic;return{provider:f,apiKey:(0,l.lr)(f)||g.apiKeyFallback||"",model:g.defaultModel,baseUrl:g.fixedBaseUrl||""}}function s(){return o().mindRoot||process.env.MIND_ROOT||h().join(j().homedir(),"MindOS","mind")}function t(){try{return o().baseUrlCompat??{}}catch{return{}}}function u(a,b){let c=o(),d={...c.baseUrlCompat??{},[a]:b};p({...c,baseUrlCompat:d})}d()}catch(a){d(a)}})},78335:()=>{},96487:()=>{}};