crewx 0.8.0-rc.73 → 0.8.0-rc.82

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 (676) hide show
  1. package/bin/crewx-ui.js +2 -1
  2. package/bin/crewx.js +3 -2
  3. package/bin/package.json +1 -0
  4. package/dist/assets/{MarketPage-DxHFpFnR.js → MarketPage-BG8LYbq5.js} +2 -2
  5. package/dist/assets/PromptTab-Q1ZLQZd2.js +37 -0
  6. package/dist/assets/_baseUniq-CfnwhEAt.js +1 -0
  7. package/dist/assets/{arc-Dmx8ZTxZ.js → arc-Cfl3ZQ9G.js} +1 -1
  8. package/dist/assets/architectureDiagram-Q4EWVU46-D9CCM5P-.js +36 -0
  9. package/dist/assets/{blockDiagram-WCTKOSBZ-CMtYhNkf.js → blockDiagram-DXYQGD6D-CEqOmDPc.js} +6 -6
  10. package/dist/assets/c4Diagram-AHTNJAMY-BkPqZwko.js +10 -0
  11. package/dist/assets/channel-B7E1pJVf.js +1 -0
  12. package/dist/assets/{chunk-4BX2VUAB-BkxR8Cmm.js → chunk-4BX2VUAB-DgGVc5tv.js} +1 -1
  13. package/dist/assets/chunk-4TB4RGXK-DUj02i1d.js +206 -0
  14. package/dist/assets/{chunk-55IACEB6-Cmubow9l.js → chunk-55IACEB6-Cktu6bad.js} +1 -1
  15. package/dist/assets/{chunk-KX2RTZJC-CkIPwigo.js → chunk-EDXVE4YY-CyM0nBqZ.js} +1 -1
  16. package/dist/assets/{chunk-FMBD7UC4-W-6GBBEF.js → chunk-FMBD7UC4-BEW-bUX8.js} +1 -1
  17. package/dist/assets/chunk-OYMX7WX6-DrRomN-U.js +231 -0
  18. package/dist/assets/{chunk-QZHKN3VN-C_Z2h6SV.js → chunk-QZHKN3VN-7m4Pka1V.js} +1 -1
  19. package/dist/assets/{chunk-JSJVCQXG-Dpd8Rsxy.js → chunk-YZCP3GAM-BP-Fc2gr.js} +1 -1
  20. package/dist/assets/classDiagram-6PBFFD2Q-ChuDjhRT.js +1 -0
  21. package/dist/assets/classDiagram-v2-HSJHXN6E-ChuDjhRT.js +1 -0
  22. package/dist/assets/clone-Dh7kB3jI.js +1 -0
  23. package/dist/assets/{cose-bilkent-S5V4N54A-DAgk-d4m.js → cose-bilkent-S5V4N54A-CB_h7KXw.js} +1 -1
  24. package/dist/assets/{cytoscape.esm-CyJtwmzi.js → cytoscape.esm-BiciSPf8.js} +4 -4
  25. package/dist/assets/dagre-KV5264BT-DqTucq98.js +4 -0
  26. package/dist/assets/diagram-5BDNPKRD-C1UbzRDK.js +10 -0
  27. package/dist/assets/diagram-G4DWMVQ6-rO8KZapy.js +24 -0
  28. package/dist/assets/diagram-MMDJMWI5-D9OtW9UA.js +43 -0
  29. package/dist/assets/diagram-TYMM5635-DXPL6Cxn.js +24 -0
  30. package/dist/assets/erDiagram-SMLLAGMA-ufSvqdEs.js +85 -0
  31. package/dist/assets/flowDiagram-DWJPFMVM-CeANSuzQ.js +162 -0
  32. package/dist/assets/ganttDiagram-T4ZO3ILL-BOnZW3lF.js +292 -0
  33. package/dist/assets/gitGraphDiagram-UUTBAWPF-UVJUFIzC.js +106 -0
  34. package/dist/assets/graph-Cy8o6Kbg.js +1 -0
  35. package/dist/assets/infoDiagram-42DDH7IO-Fraky2et.js +2 -0
  36. package/dist/assets/{ishikawaDiagram-PHBUUO56-DxJHBQVB.js → ishikawaDiagram-UXIWVN3A-D_gAjYgx.js} +2 -2
  37. package/dist/assets/journeyDiagram-VCZTEJTY-Baw2yj6e.js +139 -0
  38. package/dist/assets/{kanban-definition-K7BYSVSG-Wgu-RtYb.js → kanban-definition-6JOO6SKY-CSs0HRfJ.js} +8 -8
  39. package/dist/assets/katex-DkKDou_j.js +257 -0
  40. package/dist/assets/layout-DpjWhr0_.js +1 -0
  41. package/dist/assets/{linear-_1f4nVD8.js → linear-BvbchCJk.js} +1 -1
  42. package/dist/assets/main-2Ng-WP0F.js +1166 -0
  43. package/dist/assets/main-Bz_K3ydx.css +10 -0
  44. package/dist/assets/min-D9b5jXAX.js +1 -0
  45. package/dist/assets/mindmap-definition-QFDTVHPH-C3fg2OgI.js +96 -0
  46. package/dist/assets/pieDiagram-DEJITSTG-92P2CeYt.js +30 -0
  47. package/dist/assets/{quadrantDiagram-337W2JSQ-7DvflWt1.js → quadrantDiagram-34T5L4WZ-Bzeq6Vmw.js} +1 -1
  48. package/dist/assets/requirementDiagram-MS252O5E-BJ63rbf0.js +84 -0
  49. package/dist/assets/{sankeyDiagram-WA2Y5GQK-CvFx9RqS.js → sankeyDiagram-XADWPNL6-BOqvJwAg.js} +1 -1
  50. package/dist/assets/sequenceDiagram-FGHM5R23-WFS0ESt8.js +157 -0
  51. package/dist/assets/stateDiagram-FHFEXIEX-C1eP24Ij.js +1 -0
  52. package/dist/assets/stateDiagram-v2-QKLJ7IA2-BpKw81Zb.js +1 -0
  53. package/dist/assets/timeline-definition-GMOUNBTQ-C2oYm2sQ.js +120 -0
  54. package/dist/assets/{vennDiagram-LZ73GAT5-Du7imP60.js → vennDiagram-DHZGUBPP-BqbVnqSb.js} +5 -5
  55. package/dist/assets/wardley-RL74JXVD-DysYcg9r.js +162 -0
  56. package/dist/assets/wardleyDiagram-NUSXRM2D-DzJHhO-i.js +20 -0
  57. package/dist/assets/xychartDiagram-5P7HB3ND-DHgLAveV.js +7 -0
  58. package/dist/index.html +2 -2
  59. package/{packages/cli/dist → dist-server}/package.json +1 -1
  60. package/dist-server/packages/sdk/src/adapter/context-builder.js +86 -0
  61. package/dist-server/packages/sdk/src/adapter/scoped-store.js +42 -0
  62. package/dist-server/packages/sdk/src/adapter/types.js +22 -0
  63. package/dist-server/packages/sdk/src/agent/resolver.js +45 -0
  64. package/dist-server/packages/sdk/src/config/loader.js +94 -0
  65. package/dist-server/packages/sdk/src/conversation/sqlite-provider.js +177 -0
  66. package/dist-server/packages/sdk/src/conversation/to-template-messages.js +33 -0
  67. package/dist-server/packages/sdk/src/conversation/types.js +9 -0
  68. package/dist-server/packages/sdk/src/events/TypedEventEmitter.js +64 -0
  69. package/dist-server/packages/sdk/src/events/types.js +8 -0
  70. package/dist-server/packages/sdk/src/facade/Crewx.js +1295 -0
  71. package/dist-server/packages/sdk/src/{services/layout-loader.service.js → layout/loader.js} +93 -167
  72. package/dist-server/packages/sdk/src/{services/props-validator.service.js → layout/props-validator.js} +26 -63
  73. package/dist-server/packages/sdk/src/layout/renderer.js +192 -0
  74. package/dist-server/packages/sdk/src/{types/layout.types.js → layout/types.js} +4 -4
  75. package/dist-server/packages/sdk/src/parsers/claude.parser.js +15 -1
  76. package/dist-server/packages/sdk/src/parsers/codex.parser.js +2 -2
  77. package/dist-server/packages/sdk/src/parsers/opencode.parser.js +75 -0
  78. package/dist-server/packages/sdk/src/parsers/router.js +55 -0
  79. package/dist-server/packages/sdk/src/paths.js +51 -0
  80. package/dist-server/packages/sdk/src/platform/NodeFsAdapter.js +37 -0
  81. package/dist-server/packages/sdk/src/plugin/plugin-provider.js +206 -0
  82. package/dist-server/packages/sdk/src/plugin/types.js +8 -0
  83. package/dist-server/packages/sdk/src/plugin.js +28 -0
  84. package/dist-server/packages/sdk/src/plugins/conversation.js +58 -0
  85. package/dist-server/packages/sdk/src/provider/bridge.js +380 -0
  86. package/dist-server/packages/sdk/src/provider/parse-usage.js +82 -0
  87. package/dist-server/packages/sdk/src/provider/register-api.js +23 -0
  88. package/dist-server/packages/sdk/src/provider/vercel-runtime.js +346 -0
  89. package/dist-server/packages/sdk/src/remote/remote-agent-manager.js +197 -0
  90. package/dist-server/packages/sdk/src/remote/remote-provider.js +140 -0
  91. package/dist-server/packages/sdk/src/remote/remote-transport.js +82 -0
  92. package/dist-server/packages/sdk/src/remote/types.js +8 -0
  93. package/dist-server/packages/sdk/src/server/auth.js +34 -0
  94. package/dist-server/packages/sdk/src/server/handler.js +74 -0
  95. package/dist-server/packages/sdk/src/server/tool-adapter.js +94 -0
  96. package/dist-server/packages/sdk/src/template/engine.js +136 -0
  97. package/dist-server/packages/sdk/src/template/helpers/exec.js +229 -0
  98. package/dist-server/packages/sdk/src/template/helpers/fenced_code.js +19 -0
  99. package/dist-server/packages/sdk/src/template/helpers/format-conversation.js +52 -0
  100. package/dist-server/packages/sdk/src/template/helpers/include.js +22 -0
  101. package/dist-server/packages/sdk/src/template/helpers/p1p2.js +89 -0
  102. package/dist-server/packages/sdk/src/template/loader/DocumentLoader.js +127 -0
  103. package/dist-server/packages/sdk/src/{core/providers/base-ai.types.js → template/types.js} +3 -0
  104. package/dist-server/packages/sdk/src/types/index.js +31 -0
  105. package/dist-server/packages/sdk/src/types/task-log.types.js +3 -0
  106. package/dist-server/packages/sdk/src/utils/glob-match.js +41 -0
  107. package/dist-server/packages/sdk/src/utils/id.js +49 -0
  108. package/dist-server/packages/sdk/src/utils/timestamp.js +12 -0
  109. package/dist-server/packages/sdk/src/{core → utils}/workspace.js +3 -28
  110. package/dist-server/src/server/adapters/adapter.module.js +35 -0
  111. package/dist-server/src/server/adapters/adapter.service.js +79 -0
  112. package/dist-server/src/server/adapters/http-router.service.js +91 -0
  113. package/dist-server/src/server/app.module.js +64 -55
  114. package/dist-server/src/server/bootstrap/crewx-server.js +32 -0
  115. package/dist-server/src/server/common/decorators/project.decorator.js +5 -2
  116. package/dist-server/src/server/common/decorators/workspace.decorator.js +5 -2
  117. package/dist-server/src/server/common/interceptor/api-id-header.interceptor.js +11 -8
  118. package/dist-server/src/server/common/interceptor/http-logging.interceptor.js +13 -10
  119. package/dist-server/src/server/common/limits/defaults.js +13 -0
  120. package/dist-server/src/server/common/limits/limits-provider.js +6 -0
  121. package/{packages/cli/dist/health.controller.js → dist-server/src/server/common/limits/limits.controller.js} +21 -15
  122. package/dist-server/src/server/common/limits/limits.module.js +24 -0
  123. package/dist-server/src/server/common/limits/local-limits.provider.js +27 -0
  124. package/dist-server/src/server/common/middleware/workspace.middleware.js +51 -15
  125. package/dist-server/src/server/common/workspace-context.store.js +11 -6
  126. package/dist-server/src/server/domain/agent/agent.controller.js +36 -33
  127. package/dist-server/src/server/domain/agent/agent.module.js +17 -13
  128. package/dist-server/src/server/domain/agent/agent.service.js +89 -52
  129. package/dist-server/src/server/domain/agent/agent.types.js +2 -1
  130. package/dist-server/src/server/domain/agent/dto/create-agent.dto.js +31 -27
  131. package/dist-server/src/server/domain/agent/dto/preview-prompt.dto.js +27 -23
  132. package/dist-server/src/server/domain/agent/dto/update-agent.dto.js +28 -24
  133. package/dist-server/src/server/domain/agent/template-processor.service.js +12 -6
  134. package/dist-server/src/server/domain/box/box.controller.js +29 -26
  135. package/dist-server/src/server/domain/box/box.module.js +11 -8
  136. package/dist-server/src/server/domain/box/box.service.js +14 -11
  137. package/dist-server/src/server/domain/box/dto/create-box.dto.js +31 -27
  138. package/dist-server/src/server/domain/cli/cli.controller.js +24 -21
  139. package/dist-server/src/server/domain/cli/cli.module.js +11 -8
  140. package/dist-server/src/server/domain/cli/cli.service.js +30 -21
  141. package/dist-server/src/server/domain/cli/dto/update-cli.dto.js +13 -9
  142. package/dist-server/src/server/domain/doc/doc.controller.js +37 -21
  143. package/dist-server/src/server/domain/doc/doc.module.js +11 -8
  144. package/dist-server/src/server/domain/doc/doc.service.js +85 -40
  145. package/dist-server/src/server/domain/doc/dto/doc.dto.js +40 -13
  146. package/dist-server/src/server/domain/document/document.controller.js +19 -16
  147. package/dist-server/src/server/domain/document/document.module.js +12 -9
  148. package/dist-server/src/server/domain/document/document.service.js +42 -36
  149. package/dist-server/src/server/domain/document/dto/register-document.dto.js +10 -6
  150. package/dist-server/src/server/domain/fs/dto/tree-query.dto.js +35 -0
  151. package/dist-server/src/server/domain/fs/fs.controller.js +44 -0
  152. package/dist-server/{domain/cli/cli.module.js → src/server/domain/fs/fs.module.js} +14 -10
  153. package/dist-server/src/server/domain/fs/fs.service.js +170 -0
  154. package/dist-server/src/server/domain/git/git.module.js +10 -7
  155. package/dist-server/src/server/domain/git/git.service.js +47 -11
  156. package/dist-server/src/server/domain/health/health.controller.js +11 -8
  157. package/dist-server/src/server/domain/health/health.module.js +9 -6
  158. package/dist-server/src/server/domain/knowledge/dto/graph-knowledge.dto.js +10 -6
  159. package/dist-server/src/server/domain/knowledge/dto/knowledge.dto.js +31 -24
  160. package/dist-server/src/server/domain/knowledge/knowledge.controller.js +38 -35
  161. package/dist-server/src/server/domain/knowledge/knowledge.module.js +11 -8
  162. package/dist-server/src/server/domain/knowledge/knowledge.service.js +49 -46
  163. package/dist-server/src/server/domain/mcp/crewx-tool.factory.js +166 -76
  164. package/dist-server/src/server/domain/mcp/mcp-auth.guard.js +11 -8
  165. package/dist-server/src/server/domain/mcp/mcp.constants.js +4 -1
  166. package/dist-server/src/server/domain/mcp/mcp.controller.js +17 -14
  167. package/dist-server/src/server/domain/mcp/mcp.dto.js +4 -1
  168. package/dist-server/src/server/domain/mcp/mcp.module.js +18 -15
  169. package/dist-server/src/server/domain/mcp/mcp.service.js +23 -20
  170. package/dist-server/src/server/domain/message/dto/list-messages.dto.js +27 -23
  171. package/dist-server/src/server/domain/message/dto/send-message.dto.js +23 -13
  172. package/dist-server/src/server/domain/message/message.controller.js +30 -27
  173. package/dist-server/src/server/domain/message/message.module.js +15 -10
  174. package/dist-server/src/server/domain/message/message.service.js +34 -41
  175. package/dist-server/src/server/domain/onboarding/onboarding.controller.js +25 -22
  176. package/dist-server/src/server/domain/onboarding/onboarding.module.js +13 -10
  177. package/dist-server/src/server/domain/onboarding/onboarding.service.js +25 -22
  178. package/dist-server/src/server/domain/onboarding/onboarding.types.js +2 -1
  179. package/dist-server/src/server/domain/onboarding/presets/custom.js +4 -1
  180. package/dist-server/src/server/domain/onboarding/presets/dev-team.js +4 -1
  181. package/dist-server/src/server/domain/onboarding/presets/index.js +14 -11
  182. package/dist-server/src/server/domain/onboarding/presets/marketing-team.js +4 -1
  183. package/dist-server/src/server/domain/onboarding/presets/planning-team.js +4 -1
  184. package/dist-server/src/server/domain/onboarding/presets/solo.js +4 -1
  185. package/dist-server/src/server/domain/project/dto/create-project.dto.js +20 -16
  186. package/dist-server/src/server/domain/project/dto/update-project.dto.js +26 -22
  187. package/dist-server/src/server/domain/project/project.controller.js +34 -31
  188. package/dist-server/src/server/domain/project/project.module.js +12 -9
  189. package/dist-server/src/server/domain/project/project.service.js +19 -16
  190. package/dist-server/src/server/domain/skill/dto/add-registry.dto.js +9 -5
  191. package/dist-server/src/server/domain/skill/dto/install-skill.dto.js +12 -8
  192. package/dist-server/src/server/domain/skill/skill.controller.js +39 -36
  193. package/dist-server/src/server/domain/skill/skill.module.js +12 -9
  194. package/dist-server/src/server/domain/skill/skill.service.js +108 -72
  195. package/dist-server/src/server/domain/task/dto/all-tasks.dto.js +21 -17
  196. package/dist-server/src/server/domain/task/dto/list-tasks.dto.js +31 -27
  197. package/dist-server/src/server/domain/task/dto/search-tasks.dto.js +28 -24
  198. package/dist-server/src/server/domain/task/dto/send-message.dto.js +13 -9
  199. package/dist-server/src/server/domain/task/dto/task-status.dto.js +15 -11
  200. package/dist-server/src/server/domain/task/dto/workspace-usage.dto.js +7 -2
  201. package/dist-server/src/server/domain/task/task.constants.js +5 -0
  202. package/dist-server/src/server/domain/task/task.controller.js +67 -55
  203. package/dist-server/src/server/domain/task/task.module.js +11 -8
  204. package/dist-server/src/server/domain/task/task.service.js +82 -53
  205. package/dist-server/src/server/domain/thread/dto/build-context.dto.js +20 -16
  206. package/dist-server/src/server/domain/thread/dto/list-messages.dto.js +23 -19
  207. package/dist-server/src/server/domain/thread/dto/list-threads.dto.js +31 -27
  208. package/dist-server/src/server/domain/thread/dto/search-threads.dto.js +5 -1
  209. package/dist-server/src/server/domain/thread/thread.controller.js +43 -40
  210. package/dist-server/src/server/domain/thread/thread.module.js +13 -10
  211. package/dist-server/src/server/domain/thread/thread.service.js +19 -16
  212. package/dist-server/src/server/domain/usage/usage.controller.js +39 -36
  213. package/dist-server/src/server/domain/usage/usage.module.js +11 -8
  214. package/dist-server/src/server/domain/usage/usage.service.js +48 -12
  215. package/dist-server/src/server/domain/usage/usage.types.js +4 -1
  216. package/dist-server/src/server/domain/wbs/wbs.controller.js +12 -9
  217. package/dist-server/src/server/domain/wbs/wbs.module.js +11 -8
  218. package/dist-server/src/server/domain/wbs/wbs.service.js +16 -13
  219. package/dist-server/src/server/domain/workflow/workflow.controller.js +16 -13
  220. package/dist-server/src/server/domain/workflow/workflow.module.js +11 -8
  221. package/dist-server/src/server/domain/workflow/workflow.service.js +59 -23
  222. package/dist-server/src/server/domain/workspace/dto/create-workspace.dto.js +45 -0
  223. package/dist-server/src/server/domain/workspace/dto/switch-workspace.dto.js +10 -6
  224. package/dist-server/src/server/domain/workspace/dto/workspace-info.dto.js +2 -1
  225. package/dist-server/src/server/domain/workspace/workspace.controller.js +35 -17
  226. package/dist-server/src/server/domain/workspace/workspace.module.js +12 -9
  227. package/dist-server/src/server/domain/workspace/workspace.service.js +108 -22
  228. package/dist-server/src/server/main.js +80 -24
  229. package/dist-server/src/server/modules/crewx.module.js +50 -0
  230. package/dist-server/src/server/repository/base-sqlite.repository.js +19 -11
  231. package/dist-server/src/server/repository/box.repository.js +26 -23
  232. package/dist-server/src/server/repository/message.repository.js +9 -6
  233. package/dist-server/src/server/repository/project.repository.js +33 -9
  234. package/dist-server/src/server/repository/repository.module.js +20 -17
  235. package/dist-server/src/server/repository/request-log.repository.js +10 -7
  236. package/dist-server/src/server/repository/task.repository.js +22 -19
  237. package/dist-server/src/server/repository/thread.repository.js +19 -16
  238. package/dist-server/src/server/shared/crewx-home.js +40 -4
  239. package/dist-server/src/server/shared/crewx-state.js +44 -7
  240. package/dist-server/src/server/utils/tokenizer.js +6 -3
  241. package/package.json +49 -46
  242. package/packages/cli/dist/bootstrap/crewx-cli.d.ts +11 -0
  243. package/packages/cli/dist/bootstrap/crewx-cli.js +31 -0
  244. package/packages/cli/dist/builtin.d.ts +15 -0
  245. package/packages/cli/dist/{cli/builtin.handler.js → builtin.js} +21 -7
  246. package/packages/cli/dist/commands/agent.d.ts +12 -0
  247. package/packages/cli/dist/commands/agent.js +246 -0
  248. package/packages/cli/dist/commands/doctor.d.ts +12 -0
  249. package/packages/cli/dist/commands/doctor.js +190 -0
  250. package/packages/cli/dist/commands/execute.d.ts +21 -0
  251. package/packages/cli/dist/commands/execute.js +117 -0
  252. package/packages/cli/dist/commands/hook/install.d.ts +21 -0
  253. package/packages/cli/dist/commands/hook/install.js +175 -0
  254. package/packages/cli/dist/commands/hook/paths.d.ts +19 -0
  255. package/packages/cli/dist/commands/hook/paths.js +94 -0
  256. package/packages/cli/dist/commands/hook/status.d.ts +7 -0
  257. package/packages/cli/dist/commands/hook/status.js +86 -0
  258. package/packages/cli/dist/commands/hook/uninstall.d.ts +8 -0
  259. package/packages/cli/dist/commands/hook/uninstall.js +71 -0
  260. package/packages/cli/dist/commands/hook-dispatch.d.ts +15 -0
  261. package/packages/cli/dist/commands/hook-dispatch.js +180 -0
  262. package/packages/cli/dist/commands/init.d.ts +24 -0
  263. package/packages/cli/dist/commands/init.js +133 -0
  264. package/packages/cli/dist/commands/kill.d.ts +12 -0
  265. package/packages/cli/dist/commands/kill.js +49 -0
  266. package/packages/cli/dist/commands/log.d.ts +13 -0
  267. package/packages/cli/dist/commands/log.js +97 -0
  268. package/packages/cli/dist/commands/parse-agent-message.d.ts +31 -0
  269. package/packages/cli/dist/commands/parse-agent-message.js +52 -0
  270. package/packages/cli/dist/commands/parse-common-flags.d.ts +36 -0
  271. package/packages/cli/dist/commands/parse-common-flags.js +105 -0
  272. package/packages/cli/dist/commands/ps.d.ts +12 -0
  273. package/packages/cli/dist/commands/ps.js +71 -0
  274. package/packages/cli/dist/commands/query.d.ts +21 -0
  275. package/packages/cli/dist/commands/query.js +117 -0
  276. package/packages/cli/dist/commands/result.d.ts +13 -0
  277. package/packages/cli/dist/commands/result.js +73 -0
  278. package/packages/cli/dist/commands/slack.d.ts +12 -0
  279. package/packages/cli/dist/commands/slack.js +559 -0
  280. package/packages/cli/dist/commands/task-db.d.ts +33 -0
  281. package/packages/cli/dist/commands/task-db.js +107 -0
  282. package/packages/cli/dist/examples/deny-secrets-plugin.d.ts +22 -0
  283. package/packages/cli/dist/examples/deny-secrets-plugin.js +40 -0
  284. package/packages/cli/dist/index.d.ts +1 -0
  285. package/packages/cli/dist/index.js +5 -0
  286. package/packages/cli/dist/logging.d.ts +21 -0
  287. package/packages/cli/dist/logging.js +86 -0
  288. package/packages/cli/dist/main.d.ts +10 -0
  289. package/packages/cli/dist/main.js +246 -256
  290. package/packages/cli/dist/plugins/examples/echo-hook.d.ts +24 -0
  291. package/packages/cli/dist/plugins/examples/echo-hook.js +60 -0
  292. package/packages/cli/dist/plugins/examples/verify-echo-hook.d.ts +8 -0
  293. package/packages/cli/dist/plugins/examples/verify-echo-hook.js +47 -0
  294. package/packages/cli/dist/plugins/sqlite-tracing.d.ts +13 -0
  295. package/packages/cli/dist/plugins/sqlite-tracing.js +20 -0
  296. package/packages/cli/dist/register-builtin-tools.d.ts +5 -0
  297. package/packages/cli/dist/register-builtin-tools.js +9 -0
  298. package/packages/cli/dist/slack/file-download.d.ts +17 -0
  299. package/packages/cli/dist/slack/file-download.js +134 -0
  300. package/packages/cli/dist/slack/markdown.d.ts +5 -0
  301. package/packages/cli/dist/slack/markdown.js +33 -0
  302. package/packages/cli/dist/utils/env-defaults.d.ts +5 -0
  303. package/packages/cli/dist/utils/env-defaults.js +10 -0
  304. package/packages/cli/dist/utils/version.d.ts +1 -0
  305. package/packages/cli/dist/utils/version.js +28 -0
  306. package/packages/cli/package.json +24 -107
  307. package/scripts/emit-dist-server-package-json.mjs +7 -0
  308. package/scripts/smoke-tarball.mjs +285 -0
  309. package/scripts/snapshot-msg-list.sh +0 -0
  310. package/server.js +4 -8
  311. package/bin/__tests__/crewx-entrypoint.test.ts +0 -412
  312. package/dist/assets/PromptTab-Cl4hEcj6.js +0 -239
  313. package/dist/assets/_basePickBy-CIn3aRIg.js +0 -1
  314. package/dist/assets/_baseUniq-CYZbrWFO.js +0 -1
  315. package/dist/assets/architectureDiagram-2XIMDMQ5-BawiO4bf.js +0 -36
  316. package/dist/assets/c4Diagram-IC4MRINW-CGRC1DYJ.js +0 -10
  317. package/dist/assets/channel-DtsatVUt.js +0 -1
  318. package/dist/assets/chunk-NQ4KR5QH-BhQPlfkZ.js +0 -220
  319. package/dist/assets/chunk-WL4C6EOR-G0ASIEcD.js +0 -189
  320. package/dist/assets/classDiagram-VBA2DB6C-BLdjbUAr.js +0 -1
  321. package/dist/assets/classDiagram-v2-RAHNMMFH-BLdjbUAr.js +0 -1
  322. package/dist/assets/clone-CNwv1uRq.js +0 -1
  323. package/dist/assets/dagre-KLK3FWXG-CLF8khdC.js +0 -4
  324. package/dist/assets/diagram-E7M64L7V-UTK8l3ST.js +0 -24
  325. package/dist/assets/diagram-IFDJBPK2-DcWOdt3o.js +0 -43
  326. package/dist/assets/diagram-P4PSJMXO-Cs9Vu1HA.js +0 -24
  327. package/dist/assets/erDiagram-INFDFZHY-Dcq1jGSj.js +0 -70
  328. package/dist/assets/flowDiagram-PKNHOUZH-DNeLhY5Q.js +0 -162
  329. package/dist/assets/ganttDiagram-A5KZAMGK-9tn43AJb.js +0 -292
  330. package/dist/assets/gitGraphDiagram-K3NZZRJ6-BfgbOY3u.js +0 -65
  331. package/dist/assets/graph-BxHXjdsV.js +0 -1
  332. package/dist/assets/infoDiagram-LFFYTUFH-CYK0M60v.js +0 -2
  333. package/dist/assets/journeyDiagram-4ABVD52K-C8bABukt.js +0 -139
  334. package/dist/assets/katex-DwBr_Loo.js +0 -265
  335. package/dist/assets/layout-DyXutG74.js +0 -1
  336. package/dist/assets/main-3MUFzsZe.js +0 -868
  337. package/dist/assets/main-BO5UgdV0.css +0 -10
  338. package/dist/assets/mindmap-definition-YRQLILUH-BLqsHCm_.js +0 -68
  339. package/dist/assets/pieDiagram-SKSYHLDU-D93g5Sri.js +0 -30
  340. package/dist/assets/requirementDiagram-Z7DCOOCP-nsTpBz9X.js +0 -73
  341. package/dist/assets/sequenceDiagram-2WXFIKYE-DV5oHqUm.js +0 -145
  342. package/dist/assets/stateDiagram-RAJIS63D-BIet3J-V.js +0 -1
  343. package/dist/assets/stateDiagram-v2-FVOUBMTO-Cu7du3eR.js +0 -1
  344. package/dist/assets/timeline-definition-YZTLITO2-qohiRjx_.js +0 -61
  345. package/dist/assets/treemap-KZPCXAKY-PT2vpmzj.js +0 -162
  346. package/dist/assets/xychartDiagram-JWTSCODW-Bu5I9fIP.js +0 -7
  347. package/dist-server/app.module.js +0 -42
  348. package/dist-server/domain/agent/agent.controller.js +0 -105
  349. package/dist-server/domain/agent/agent.module.js +0 -20
  350. package/dist-server/domain/agent/agent.service.js +0 -225
  351. package/dist-server/domain/agent/agent.types.js +0 -2
  352. package/dist-server/domain/agent/dto/create-agent.dto.js +0 -9
  353. package/dist-server/domain/agent/dto/update-agent.dto.js +0 -8
  354. package/dist-server/domain/cli/cli.controller.js +0 -64
  355. package/dist-server/domain/cli/cli.service.js +0 -288
  356. package/dist-server/domain/cli/dto/update-cli.dto.js +0 -3
  357. package/dist-server/domain/doc/doc.controller.js +0 -72
  358. package/dist-server/domain/doc/doc.module.js +0 -18
  359. package/dist-server/domain/doc/doc.service.js +0 -312
  360. package/dist-server/domain/doc/dto/doc.dto.js +0 -8
  361. package/dist-server/domain/git/git.module.js +0 -17
  362. package/dist-server/domain/git/git.service.js +0 -190
  363. package/dist-server/domain/knowledge/dto/graph-knowledge.dto.js +0 -6
  364. package/dist-server/domain/knowledge/dto/knowledge.dto.js +0 -17
  365. package/dist-server/domain/knowledge/knowledge.controller.js +0 -99
  366. package/dist-server/domain/knowledge/knowledge.module.js +0 -18
  367. package/dist-server/domain/knowledge/knowledge.service.js +0 -511
  368. package/dist-server/domain/mcp/crewx-tool.factory.js +0 -85
  369. package/dist-server/domain/mcp/mcp-auth.guard.js +0 -58
  370. package/dist-server/domain/mcp/mcp.constants.js +0 -1
  371. package/dist-server/domain/mcp/mcp.controller.js +0 -70
  372. package/dist-server/domain/mcp/mcp.dto.js +0 -9
  373. package/dist-server/domain/mcp/mcp.module.js +0 -35
  374. package/dist-server/domain/mcp/mcp.service.js +0 -412
  375. package/dist-server/domain/project/dto/create-project.dto.js +0 -5
  376. package/dist-server/domain/project/dto/update-project.dto.js +0 -6
  377. package/dist-server/domain/project/project.controller.js +0 -126
  378. package/dist-server/domain/project/project.module.js +0 -19
  379. package/dist-server/domain/project/project.service.js +0 -212
  380. package/dist-server/domain/task/dto/list-tasks.dto.js +0 -9
  381. package/dist-server/domain/task/dto/project-usage.dto.js +0 -33
  382. package/dist-server/domain/task/dto/search-tasks.dto.js +0 -12
  383. package/dist-server/domain/task/dto/send-message.dto.js +0 -4
  384. package/dist-server/domain/task/dto/task-status.dto.js +0 -5
  385. package/dist-server/domain/task/task.controller.js +0 -117
  386. package/dist-server/domain/task/task.module.js +0 -18
  387. package/dist-server/domain/task/task.service.js +0 -802
  388. package/dist-server/domain/thread/dto/list-threads.dto.js +0 -9
  389. package/dist-server/domain/thread/dto/search-threads.dto.js +0 -9
  390. package/dist-server/domain/thread/dto/send-message.dto.js +0 -6
  391. package/dist-server/domain/thread/thread.controller.js +0 -108
  392. package/dist-server/domain/thread/thread.module.js +0 -18
  393. package/dist-server/domain/thread/thread.service.js +0 -603
  394. package/dist-server/domain/usage/usage.controller.js +0 -74
  395. package/dist-server/domain/usage/usage.module.js +0 -18
  396. package/dist-server/domain/usage/usage.service.js +0 -221
  397. package/dist-server/domain/usage/usage.types.js +0 -1
  398. package/dist-server/domain/wbs/wbs.controller.js +0 -48
  399. package/dist-server/domain/wbs/wbs.module.js +0 -18
  400. package/dist-server/domain/wbs/wbs.service.js +0 -95
  401. package/dist-server/main.js +0 -54
  402. package/dist-server/packages/sdk/schema/api-provider-config.json +0 -138
  403. package/dist-server/packages/sdk/src/boxing/box-storage.interface.js +0 -7
  404. package/dist-server/packages/sdk/src/boxing/box.service.js +0 -75
  405. package/dist-server/packages/sdk/src/boxing/box.types.js +0 -6
  406. package/dist-server/packages/sdk/src/boxing/context-builder.js +0 -97
  407. package/dist-server/packages/sdk/src/boxing/index.js +0 -17
  408. package/dist-server/packages/sdk/src/boxing/tokenizer.js +0 -21
  409. package/dist-server/packages/sdk/src/config/api-provider-parser.js +0 -334
  410. package/dist-server/packages/sdk/src/config/log.config.js +0 -19
  411. package/dist-server/packages/sdk/src/config/pricing.js +0 -87
  412. package/dist-server/packages/sdk/src/config/timeout.config.js +0 -33
  413. package/dist-server/packages/sdk/src/config/yaml-loader.js +0 -228
  414. package/dist-server/packages/sdk/src/constants/index.js +0 -7
  415. package/dist-server/packages/sdk/src/constants.js +0 -17
  416. package/dist-server/packages/sdk/src/conversation/conversation-config.js +0 -21
  417. package/dist-server/packages/sdk/src/core/agent/agent-factory.js +0 -120
  418. package/dist-server/packages/sdk/src/core/agent/agent-runtime.js +0 -241
  419. package/dist-server/packages/sdk/src/core/agent/event-bus.js +0 -63
  420. package/dist-server/packages/sdk/src/core/agent/index.js +0 -15
  421. package/dist-server/packages/sdk/src/core/id.js +0 -45
  422. package/dist-server/packages/sdk/src/core/parallel/helpers.js +0 -253
  423. package/dist-server/packages/sdk/src/core/parallel/index.js +0 -10
  424. package/dist-server/packages/sdk/src/core/parallel/parallel-runner.js +0 -244
  425. package/dist-server/packages/sdk/src/core/providers/ai-provider.interface.js +0 -22
  426. package/dist-server/packages/sdk/src/core/providers/base-ai.provider.js +0 -1479
  427. package/dist-server/packages/sdk/src/core/providers/claude.provider.js +0 -206
  428. package/dist-server/packages/sdk/src/core/providers/codex.provider.js +0 -173
  429. package/dist-server/packages/sdk/src/core/providers/copilot.provider.js +0 -171
  430. package/dist-server/packages/sdk/src/core/providers/dynamic-provider.factory.js +0 -693
  431. package/dist-server/packages/sdk/src/core/providers/gemini.provider.js +0 -116
  432. package/dist-server/packages/sdk/src/core/providers/index.js +0 -19
  433. package/dist-server/packages/sdk/src/core/providers/mock.provider.js +0 -67
  434. package/dist-server/packages/sdk/src/core/providers/provider-factory.js +0 -83
  435. package/dist-server/packages/sdk/src/core/providers/tool-call.types.js +0 -2
  436. package/dist-server/packages/sdk/src/core/remote/index.js +0 -24
  437. package/dist-server/packages/sdk/src/core/remote/remote-agent-manager.js +0 -279
  438. package/dist-server/packages/sdk/src/core/remote/remote-transport.js +0 -80
  439. package/dist-server/packages/sdk/src/core/remote/types.js +0 -8
  440. package/dist-server/packages/sdk/src/index.js +0 -162
  441. package/dist-server/packages/sdk/src/knowledge/DocumentManager.js +0 -118
  442. package/dist-server/packages/sdk/src/parsers/index.js +0 -52
  443. package/dist-server/packages/sdk/src/schema/skills-parser.js +0 -604
  444. package/dist-server/packages/sdk/src/schema/skills.types.js +0 -68
  445. package/dist-server/packages/sdk/src/schemas/api-provider.schema.js +0 -54
  446. package/dist-server/packages/sdk/src/services/layout-renderer.service.js +0 -384
  447. package/dist-server/packages/sdk/src/skills/adapter/claude-skill-adapter.js +0 -269
  448. package/dist-server/packages/sdk/src/skills/index.js +0 -40
  449. package/dist-server/packages/sdk/src/skills/runtime/progressive-loader.js +0 -247
  450. package/dist-server/packages/sdk/src/skills/runtime/runtime-requirements-validator.js +0 -297
  451. package/dist-server/packages/sdk/src/types/agent.types.js +0 -17
  452. package/dist-server/packages/sdk/src/types/api-provider.types.js +0 -90
  453. package/dist-server/packages/sdk/src/types/provider.types.js +0 -2
  454. package/dist-server/packages/sdk/src/types/skill-runtime.types.js +0 -57
  455. package/dist-server/packages/sdk/src/types/structured-payload.types.js +0 -89
  456. package/dist-server/packages/sdk/src/types/template.types.js +0 -8
  457. package/dist-server/packages/sdk/src/utils/api-provider-normalizer.js +0 -134
  458. package/dist-server/packages/sdk/src/utils/base-message-formatter.js +0 -267
  459. package/dist-server/packages/sdk/src/utils/error-utils.js +0 -29
  460. package/dist-server/packages/sdk/src/utils/mention-parser.js +0 -136
  461. package/packages/cli/dist/ai-provider.service.d.ts +0 -36
  462. package/packages/cli/dist/ai-provider.service.js +0 -315
  463. package/packages/cli/dist/ai-provider.service.js.map +0 -1
  464. package/packages/cli/dist/ai.service.d.ts +0 -17
  465. package/packages/cli/dist/ai.service.js +0 -51
  466. package/packages/cli/dist/ai.service.js.map +0 -1
  467. package/packages/cli/dist/app.module.d.ts +0 -5
  468. package/packages/cli/dist/app.module.js +0 -165
  469. package/packages/cli/dist/app.module.js.map +0 -1
  470. package/packages/cli/dist/cli/agent.handler.d.ts +0 -2
  471. package/packages/cli/dist/cli/agent.handler.js +0 -186
  472. package/packages/cli/dist/cli/agent.handler.js.map +0 -1
  473. package/packages/cli/dist/cli/builtin.handler.d.ts +0 -3
  474. package/packages/cli/dist/cli/builtin.handler.js.map +0 -1
  475. package/packages/cli/dist/cli/chat.handler.d.ts +0 -20
  476. package/packages/cli/dist/cli/chat.handler.js +0 -446
  477. package/packages/cli/dist/cli/chat.handler.js.map +0 -1
  478. package/packages/cli/dist/cli/cli.handler.d.ts +0 -4
  479. package/packages/cli/dist/cli/cli.handler.js +0 -119
  480. package/packages/cli/dist/cli/cli.handler.js.map +0 -1
  481. package/packages/cli/dist/cli/doctor.handler.d.ts +0 -38
  482. package/packages/cli/dist/cli/doctor.handler.js +0 -495
  483. package/packages/cli/dist/cli/doctor.handler.js.map +0 -1
  484. package/packages/cli/dist/cli/execute.handler.d.ts +0 -2
  485. package/packages/cli/dist/cli/execute.handler.js +0 -376
  486. package/packages/cli/dist/cli/execute.handler.js.map +0 -1
  487. package/packages/cli/dist/cli/help.handler.d.ts +0 -2
  488. package/packages/cli/dist/cli/help.handler.js +0 -10
  489. package/packages/cli/dist/cli/help.handler.js.map +0 -1
  490. package/packages/cli/dist/cli/init.handler.d.ts +0 -26
  491. package/packages/cli/dist/cli/init.handler.js +0 -450
  492. package/packages/cli/dist/cli/init.handler.js.map +0 -1
  493. package/packages/cli/dist/cli/log.handler.d.ts +0 -2
  494. package/packages/cli/dist/cli/log.handler.js +0 -69
  495. package/packages/cli/dist/cli/log.handler.js.map +0 -1
  496. package/packages/cli/dist/cli/mcp.handler.d.ts +0 -3
  497. package/packages/cli/dist/cli/mcp.handler.js +0 -121
  498. package/packages/cli/dist/cli/mcp.handler.js.map +0 -1
  499. package/packages/cli/dist/cli/query.handler.d.ts +0 -2
  500. package/packages/cli/dist/cli/query.handler.js +0 -392
  501. package/packages/cli/dist/cli/query.handler.js.map +0 -1
  502. package/packages/cli/dist/cli/skill.handler.d.ts +0 -2
  503. package/packages/cli/dist/cli/skill.handler.js +0 -252
  504. package/packages/cli/dist/cli/skill.handler.js.map +0 -1
  505. package/packages/cli/dist/cli/slack-files.handler.d.ts +0 -2
  506. package/packages/cli/dist/cli/slack-files.handler.js +0 -291
  507. package/packages/cli/dist/cli/slack-files.handler.js.map +0 -1
  508. package/packages/cli/dist/cli/template.handler.d.ts +0 -2
  509. package/packages/cli/dist/cli/template.handler.js +0 -188
  510. package/packages/cli/dist/cli/template.handler.js.map +0 -1
  511. package/packages/cli/dist/cli/templates.handler.d.ts +0 -2
  512. package/packages/cli/dist/cli/templates.handler.js +0 -100
  513. package/packages/cli/dist/cli/templates.handler.js.map +0 -1
  514. package/packages/cli/dist/cli-options.d.ts +0 -40
  515. package/packages/cli/dist/cli-options.js +0 -371
  516. package/packages/cli/dist/cli-options.js.map +0 -1
  517. package/packages/cli/dist/config/timeout.config.d.ts +0 -14
  518. package/packages/cli/dist/config/timeout.config.js +0 -34
  519. package/packages/cli/dist/config/timeout.config.js.map +0 -1
  520. package/packages/cli/dist/conversation/base-conversation-history.provider.d.ts +0 -12
  521. package/packages/cli/dist/conversation/base-conversation-history.provider.js +0 -45
  522. package/packages/cli/dist/conversation/base-conversation-history.provider.js.map +0 -1
  523. package/packages/cli/dist/conversation/cli-box-reader.adapter.d.ts +0 -6
  524. package/packages/cli/dist/conversation/cli-box-reader.adapter.js +0 -10
  525. package/packages/cli/dist/conversation/cli-box-reader.adapter.js.map +0 -1
  526. package/packages/cli/dist/conversation/cli-conversation-history.provider.d.ts +0 -16
  527. package/packages/cli/dist/conversation/cli-conversation-history.provider.js +0 -112
  528. package/packages/cli/dist/conversation/cli-conversation-history.provider.js.map +0 -1
  529. package/packages/cli/dist/conversation/cli-task-reader.adapter.d.ts +0 -6
  530. package/packages/cli/dist/conversation/cli-task-reader.adapter.js +0 -25
  531. package/packages/cli/dist/conversation/cli-task-reader.adapter.js.map +0 -1
  532. package/packages/cli/dist/conversation/conversation-provider.factory.d.ts +0 -10
  533. package/packages/cli/dist/conversation/conversation-provider.factory.js +0 -50
  534. package/packages/cli/dist/conversation/conversation-provider.factory.js.map +0 -1
  535. package/packages/cli/dist/conversation/index.d.ts +0 -8
  536. package/packages/cli/dist/conversation/index.js +0 -29
  537. package/packages/cli/dist/conversation/index.js.map +0 -1
  538. package/packages/cli/dist/conversation/slack-conversation-history.provider.d.ts +0 -29
  539. package/packages/cli/dist/conversation/slack-conversation-history.provider.js +0 -302
  540. package/packages/cli/dist/conversation/slack-conversation-history.provider.js.map +0 -1
  541. package/packages/cli/dist/crewx.tool.d.ts +0 -360
  542. package/packages/cli/dist/crewx.tool.js +0 -2541
  543. package/packages/cli/dist/crewx.tool.js.map +0 -1
  544. package/packages/cli/dist/crewx.tool.spec.d.ts +0 -1
  545. package/packages/cli/dist/crewx.tool.spec.js +0 -306
  546. package/packages/cli/dist/crewx.tool.spec.js.map +0 -1
  547. package/packages/cli/dist/guards/bearer-auth.guard.d.ts +0 -7
  548. package/packages/cli/dist/guards/bearer-auth.guard.js +0 -44
  549. package/packages/cli/dist/guards/bearer-auth.guard.js.map +0 -1
  550. package/packages/cli/dist/health.controller.d.ts +0 -6
  551. package/packages/cli/dist/health.controller.js.map +0 -1
  552. package/packages/cli/dist/main.js.map +0 -1
  553. package/packages/cli/dist/mcp.controller.d.ts +0 -8
  554. package/packages/cli/dist/mcp.controller.js +0 -62
  555. package/packages/cli/dist/mcp.controller.js.map +0 -1
  556. package/packages/cli/dist/providers/dynamic-provider.factory.d.ts +0 -17
  557. package/packages/cli/dist/providers/dynamic-provider.factory.js +0 -138
  558. package/packages/cli/dist/providers/dynamic-provider.factory.js.map +0 -1
  559. package/packages/cli/dist/providers/logger.adapter.d.ts +0 -7
  560. package/packages/cli/dist/providers/logger.adapter.js +0 -111
  561. package/packages/cli/dist/providers/logger.adapter.js.map +0 -1
  562. package/packages/cli/dist/services/agent-loader.service.d.ts +0 -35
  563. package/packages/cli/dist/services/agent-loader.service.js +0 -623
  564. package/packages/cli/dist/services/agent-loader.service.js.map +0 -1
  565. package/packages/cli/dist/services/auth.service.d.ts +0 -9
  566. package/packages/cli/dist/services/auth.service.js +0 -47
  567. package/packages/cli/dist/services/auth.service.js.map +0 -1
  568. package/packages/cli/dist/services/config-validator.service.d.ts +0 -29
  569. package/packages/cli/dist/services/config-validator.service.js +0 -483
  570. package/packages/cli/dist/services/config-validator.service.js.map +0 -1
  571. package/packages/cli/dist/services/config.service.d.ts +0 -45
  572. package/packages/cli/dist/services/config.service.js +0 -352
  573. package/packages/cli/dist/services/config.service.js.map +0 -1
  574. package/packages/cli/dist/services/document-loader.service.d.ts +0 -26
  575. package/packages/cli/dist/services/document-loader.service.js +0 -186
  576. package/packages/cli/dist/services/document-loader.service.js.map +0 -1
  577. package/packages/cli/dist/services/help.service.d.ts +0 -5
  578. package/packages/cli/dist/services/help.service.js +0 -139
  579. package/packages/cli/dist/services/help.service.js.map +0 -1
  580. package/packages/cli/dist/services/intelligent-compression.service.d.ts +0 -20
  581. package/packages/cli/dist/services/intelligent-compression.service.js +0 -179
  582. package/packages/cli/dist/services/intelligent-compression.service.js.map +0 -1
  583. package/packages/cli/dist/services/mcp-client.service.d.ts +0 -26
  584. package/packages/cli/dist/services/mcp-client.service.js +0 -81
  585. package/packages/cli/dist/services/mcp-client.service.js.map +0 -1
  586. package/packages/cli/dist/services/parallel-processing.service.d.ts +0 -108
  587. package/packages/cli/dist/services/parallel-processing.service.js +0 -333
  588. package/packages/cli/dist/services/parallel-processing.service.js.map +0 -1
  589. package/packages/cli/dist/services/provider-bridge.service.d.ts +0 -35
  590. package/packages/cli/dist/services/provider-bridge.service.js +0 -224
  591. package/packages/cli/dist/services/provider-bridge.service.js.map +0 -1
  592. package/packages/cli/dist/services/remote-agent.service.d.ts +0 -50
  593. package/packages/cli/dist/services/remote-agent.service.js +0 -171
  594. package/packages/cli/dist/services/remote-agent.service.js.map +0 -1
  595. package/packages/cli/dist/services/result-formatter.service.d.ts +0 -27
  596. package/packages/cli/dist/services/result-formatter.service.js +0 -126
  597. package/packages/cli/dist/services/result-formatter.service.js.map +0 -1
  598. package/packages/cli/dist/services/skill-loader.service.d.ts +0 -15
  599. package/packages/cli/dist/services/skill-loader.service.js +0 -278
  600. package/packages/cli/dist/services/skill-loader.service.js.map +0 -1
  601. package/packages/cli/dist/services/skill.service.d.ts +0 -69
  602. package/packages/cli/dist/services/skill.service.js +0 -779
  603. package/packages/cli/dist/services/skill.service.js.map +0 -1
  604. package/packages/cli/dist/services/skill.service.spec.d.ts +0 -1
  605. package/packages/cli/dist/services/skill.service.spec.js +0 -216
  606. package/packages/cli/dist/services/skill.service.spec.js.map +0 -1
  607. package/packages/cli/dist/services/task-management.service.d.ts +0 -71
  608. package/packages/cli/dist/services/task-management.service.js +0 -324
  609. package/packages/cli/dist/services/task-management.service.js.map +0 -1
  610. package/packages/cli/dist/services/template.service.d.ts +0 -61
  611. package/packages/cli/dist/services/template.service.js +0 -416
  612. package/packages/cli/dist/services/template.service.js.map +0 -1
  613. package/packages/cli/dist/services/tool-call.service.d.ts +0 -16
  614. package/packages/cli/dist/services/tool-call.service.js +0 -302
  615. package/packages/cli/dist/services/tool-call.service.js.map +0 -1
  616. package/packages/cli/dist/services/tracing.service.d.ts +0 -201
  617. package/packages/cli/dist/services/tracing.service.js +0 -1295
  618. package/packages/cli/dist/services/tracing.service.js.map +0 -1
  619. package/packages/cli/dist/slack/formatters/message.formatter.d.ts +0 -43
  620. package/packages/cli/dist/slack/formatters/message.formatter.js +0 -505
  621. package/packages/cli/dist/slack/formatters/message.formatter.js.map +0 -1
  622. package/packages/cli/dist/slack/services/slack-file-download.service.d.ts +0 -58
  623. package/packages/cli/dist/slack/services/slack-file-download.service.js +0 -558
  624. package/packages/cli/dist/slack/services/slack-file-download.service.js.map +0 -1
  625. package/packages/cli/dist/slack/slack-bot.d.ts +0 -33
  626. package/packages/cli/dist/slack/slack-bot.js +0 -568
  627. package/packages/cli/dist/slack/slack-bot.js.map +0 -1
  628. package/packages/cli/dist/stderr.logger.d.ts +0 -8
  629. package/packages/cli/dist/stderr.logger.js +0 -26
  630. package/packages/cli/dist/stderr.logger.js.map +0 -1
  631. package/packages/cli/dist/types/usage.types.d.ts +0 -107
  632. package/packages/cli/dist/types/usage.types.js +0 -3
  633. package/packages/cli/dist/types/usage.types.js.map +0 -1
  634. package/packages/cli/dist/utils/config-utils.d.ts +0 -15
  635. package/packages/cli/dist/utils/config-utils.js +0 -69
  636. package/packages/cli/dist/utils/config-utils.js.map +0 -1
  637. package/packages/cli/dist/utils/extract-text.d.ts +0 -1
  638. package/packages/cli/dist/utils/extract-text.js +0 -15
  639. package/packages/cli/dist/utils/extract-text.js.map +0 -1
  640. package/packages/cli/dist/utils/mcp-installer.d.ts +0 -20
  641. package/packages/cli/dist/utils/mcp-installer.js +0 -199
  642. package/packages/cli/dist/utils/mcp-installer.js.map +0 -1
  643. package/packages/cli/dist/utils/project-hash.d.ts +0 -6
  644. package/packages/cli/dist/utils/project-hash.js +0 -70
  645. package/packages/cli/dist/utils/project-hash.js.map +0 -1
  646. package/packages/cli/dist/utils/simple-security.d.ts +0 -3
  647. package/packages/cli/dist/utils/simple-security.js +0 -20
  648. package/packages/cli/dist/utils/simple-security.js.map +0 -1
  649. package/packages/cli/dist/utils/stdin-utils.d.ts +0 -6
  650. package/packages/cli/dist/utils/stdin-utils.js +0 -109
  651. package/packages/cli/dist/utils/stdin-utils.js.map +0 -1
  652. package/packages/cli/dist/utils/template-processor.d.ts +0 -27
  653. package/packages/cli/dist/utils/template-processor.js +0 -395
  654. package/packages/cli/dist/utils/template-processor.js.map +0 -1
  655. package/packages/cli/dist/utils/terminal-message-formatter.d.ts +0 -23
  656. package/packages/cli/dist/utils/terminal-message-formatter.js +0 -136
  657. package/packages/cli/dist/utils/terminal-message-formatter.js.map +0 -1
  658. package/packages/cli/dist/version.d.ts +0 -1
  659. package/packages/cli/dist/version.js +0 -17
  660. package/packages/cli/dist/version.js.map +0 -1
  661. package/packages/cli/dist/workspace.service.d.ts +0 -44
  662. package/packages/cli/dist/workspace.service.js +0 -299
  663. package/packages/cli/dist/workspace.service.js.map +0 -1
  664. package/packages/cli/templates/agents/default.yaml +0 -490
  665. package/packages/cli/templates/agents/minimal.yaml +0 -16
  666. package/packages/cli/templates/documents/conversation-history-default.hbs +0 -17
  667. package/packages/cli/templates/documents/crewx-manual.md +0 -2278
  668. package/packages/cli/templates/documents/crewx-quick-guide.md +0 -147
  669. package/packages/cli/templates/versions.json +0 -19
  670. package/scripts/__tests__/migrate-frontmatter-v2.test.ts +0 -269
  671. package/scripts/__tests__/reclassify-general.spec.ts +0 -107
  672. package/scripts/migrate-frontmatter-v2.ts +0 -303
  673. package/scripts/reclassify-general.ts +0 -185
  674. package/scripts/vitest.config.ts +0 -8
  675. /package/dist-server/packages/sdk/src/{conversation/conversation-history.interface.js → platform/IFsAdapter.js} +0 -0
  676. /package/dist-server/{packages/sdk/src/core/parallel/types.js → src/server/domain/fs/dto/tree-node.dto.js} +0 -0
package/bin/crewx-ui.js CHANGED
@@ -22,6 +22,7 @@ const isOverlay = args.includes('--overlay');
22
22
  function getElectronSpawnEnv() {
23
23
  const env = { ...process.env };
24
24
  delete env.ELECTRON_RUN_AS_NODE;
25
+ env.NODE_ENV = 'production'; // Force production — prevents users from bypassing FREE limits via env
25
26
  return env;
26
27
  }
27
28
 
@@ -71,7 +72,7 @@ if (isElectron || isOverlay) {
71
72
 
72
73
  const child = spawn(process.execPath, [serverScript, ...args], {
73
74
  stdio: 'inherit',
74
- env: { ...process.env },
75
+ env: { ...process.env, NODE_ENV: 'production' }, // Force production — prevents users from bypassing FREE limits via env
75
76
  });
76
77
 
77
78
  child.on('exit', (code) => process.exit(code ?? 0));
package/bin/crewx.js CHANGED
@@ -28,6 +28,7 @@ const __dirname = dirname(__filename);
28
28
  function getElectronSpawnEnv() {
29
29
  const env = { ...process.env };
30
30
  delete env.ELECTRON_RUN_AS_NODE;
31
+ env.NODE_ENV = 'production'; // Force production — prevents users from bypassing FREE limits via env
31
32
  return env;
32
33
  }
33
34
 
@@ -67,7 +68,7 @@ function launchWeb(extraArgs = [], { openBrowser = false } = {}) {
67
68
  const serverScript = join(__dirname, '..', 'server.js');
68
69
 
69
70
  // Parse --port from extraArgs and inject via spawn env (no process.env pollution)
70
- const env = { ...process.env };
71
+ const env = { ...process.env, NODE_ENV: 'production' }; // Force production — prevents users from bypassing FREE limits via env
71
72
  const portResult = parseWebPort(extraArgs);
72
73
  if (portResult?.error) {
73
74
  console.error(`❌ ${portResult.error}`);
@@ -98,7 +99,7 @@ function forwardToCli(cliArgs) {
98
99
  const serverScript = join(__dirname, '..', 'server.js');
99
100
  const child = spawn(process.execPath, [serverScript, 'cli', ...cliArgs], {
100
101
  stdio: 'inherit',
101
- env: { ...process.env },
102
+ env: { ...process.env, NODE_ENV: 'production' }, // Force production — prevents users from bypassing FREE limits via env
102
103
  });
103
104
 
104
105
  setupSignalForwarding(child);
@@ -0,0 +1 @@
1
+ { "type": "module" }
@@ -1,4 +1,4 @@
1
- import{aQ as w,aR as we,aS as f,aT as N,aU as Se,aV as u,aW as e,aX as ae,aY as se,aZ as K,a_ as j,a$ as re,b0 as Ie,b1 as le,b2 as B,b3 as ze,b4 as Re,b5 as Ce,b6 as ie,b7 as Me,b8 as De}from"./main-3MUFzsZe.js";/**
1
+ import{aO as w,aP as we,aQ as f,aR as N,aS as Se,aT as u,aU as e,aV as ae,aW as se,aX as K,aY as j,aZ as re,a_ as Ie,a$ as le,b0 as U,b1 as ze,b2 as Re,b3 as Ce,b4 as ie,b5 as Me,b6 as De}from"./main-2Ng-WP0F.js";/**
2
2
  * @license lucide-react v0.563.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -28,4 +28,4 @@ import{aQ as w,aR as we,aS as f,aT as N,aU as Se,aV as u,aW as e,aX as ae,aY as
28
28
  *
29
29
  * This source code is licensed under the ISC license.
30
30
  * See the LICENSE file in the root directory of this source tree.
31
- */const Fe=[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]],Pe=w("star",Fe);function I(t){return t instanceof Error?t.message:String(t)}function Ue(t){return[...t].sort((a,s)=>a.isInstalled!==s.isInstalled?a.isInstalled?-1:1:(a.displayName||a.name).localeCompare(s.displayName||s.name))}function Be(t=[],a=[]){return Array.from(new Set([...t,...a]))}function Oe(t,a){var s;return t?{...t,...a,displayName:a.displayName||t.displayName||a.name,description:a.description||t.description,author:a.author||t.author,version:a.version||t.version,tags:Be(t.tags,a.tags),type:a.type||t.type,isVerified:t.isVerified||a.isVerified,isInstalled:t.isInstalled||a.isInstalled,registryId:a.registryId??t.registryId,registryName:a.registryName??t.registryName,installSource:a.installSource??t.installSource,authors:(s=a.authors)!=null&&s.length?a.authors:t.authors,updatedAt:a.updatedAt??t.updatedAt,stars:a.stars??t.stars,license:a.license??t.license,installCount:a.installCount??t.installCount}:a}function L(t){const a=new Map;for(const s of t){const r=a.get(s.name);a.set(s.name,Oe(r,s))}return Ue(Array.from(a.values()))}function He(t,a){return t.map(s=>({...s,registryId:s.registryId??a.id,registryName:s.registryName??a.name,isVerified:s.isVerified||a.isVerified}))}function Qe(t){return t.find(a=>a.isDefault)??t.find(a=>a.isVerified)??t[0]??null}function qe(t,a){return L([...t,...a])}function U(t,a){var s;return a&&t.some(r=>r.name===a)?a:((s=t[0])==null?void 0:s.name)??null}const We=we((t,a)=>({initialized:!1,loading:!1,loadingOfficial:!1,loadingInstalled:!1,savingRegistry:!1,deletingRegistryId:null,mutatingSkillName:null,error:null,registries:[],officialRegistryId:null,allSkills:[],activeFilter:"all",searchQuery:"",selectedSkillName:null,setActiveFilter:s=>t({activeFilter:s}),setSearchQuery:s=>t({searchQuery:s}),setSelectedSkill:s=>t({selectedSkillName:s}),initialize:async()=>{const s=a().selectedSkillName;t({loading:!0,loadingOfficial:!0,loadingInstalled:!0,error:null});try{const n=(await f.getSkillRegistries()).registries,o=Qe(n),[d,m]=await Promise.all([o?f.getRegistrySkills(o.id):Promise.resolve({skills:[]}),f.getInstalledSkills()]),y=o?He(d.skills,o):[],c=L(m.skills),h=qe(y,c);t({initialized:!0,loading:!1,loadingOfficial:!1,loadingInstalled:!1,registries:n,officialRegistryId:(o==null?void 0:o.id)??null,allSkills:h,selectedSkillName:U(h,s)})}catch(r){throw t({loading:!1,loadingOfficial:!1,loadingInstalled:!1,error:I(r)}),r}},refresh:async()=>{await a().initialize()},addRegistry:async s=>{const r=s.trim();if(!r){const n=new Error("Registry URL is required");throw t({error:n.message}),n}t({savingRegistry:!0,error:null});try{await f.addSkillRegistry(r),await a().initialize(),t({savingRegistry:!1})}catch(n){throw t({savingRegistry:!1,error:I(n)}),n}},deleteRegistry:async s=>{t({deletingRegistryId:s,error:null});try{await f.deleteSkillRegistry(s),await a().initialize(),t({deletingRegistryId:null})}catch(r){throw t({deletingRegistryId:null,error:I(r)}),r}},installSkill:async(s,r)=>{t({mutatingSkillName:r,error:null});try{await f.installSkill(s,r),t(n=>{const o=n.registries.find(m=>m.id===s),d=L(n.allSkills.map(m=>m.name===r?{...m,isInstalled:!0,registryId:m.registryId??s,registryName:m.registryName??(o==null?void 0:o.name)}:m));return{allSkills:d,mutatingSkillName:null,selectedSkillName:U(d,n.selectedSkillName??r)}})}catch(n){throw t({mutatingSkillName:null,error:I(n)}),n}},uninstallSkill:async s=>{t({mutatingSkillName:s,error:null});try{await f.uninstallSkill(s),t(r=>{const n=L(r.allSkills.map(o=>o.name===s?{...o,isInstalled:!1}:o));return{allSkills:n,mutatingSkillName:null,selectedSkillName:U(n,r.selectedSkillName)}})}catch(r){throw t({mutatingSkillName:null,error:I(r)}),r}},clearError:()=>t({error:null})}));function ce(t,a){if(!t)return"—";const s=new Date(t);return Number.isNaN(s.getTime())?"—":new Intl.DateTimeFormat(a,{year:"numeric",month:"short",day:"numeric"}).format(s)}function Ze(t,a){if(!t)return null;const s=new Date(t);if(Number.isNaN(s.getTime()))return null;const r=s.getTime()-Date.now(),n=[{unit:"year",ms:1e3*60*60*24*365},{unit:"month",ms:1e3*60*60*24*30},{unit:"week",ms:1e3*60*60*24*7},{unit:"day",ms:1e3*60*60*24},{unit:"hour",ms:1e3*60*60},{unit:"minute",ms:1e3*60}],o=new Intl.RelativeTimeFormat(a,{numeric:"auto"});for(const d of n)if(Math.abs(r)>=d.ms||d.unit==="minute")return o.format(Math.round(r/d.ms),d.unit);return null}function ee(t,a){return typeof t!="number"?"—":new Intl.NumberFormat(a,{notation:"compact",compactDisplay:"short",maximumFractionDigits:1}).format(t)}function O(t){switch(t==null?void 0:t.toLowerCase()){case"template":return"template";case"agent":return"agent";default:return"skill"}}function me({type:t}){const{t:a}=N(),s=O(t),r={skill:"bg-violet-50 text-violet-700",template:"bg-amber-50 text-amber-700",agent:"bg-emerald-50 text-emerald-700"},n={skill:oe,template:de,agent:re},o={skill:a("market.types.skill"),template:a("market.types.template"),agent:a("market.types.agent")},d=n[s];return e.jsxs("span",{className:`inline-flex items-center gap-1 rounded-full px-2 py-0.5 text-[10px] font-medium ${r[s]}`,children:[e.jsx(d,{size:12}),o[s]]})}function Xe({url:t,error:a,submitting:s,onChange:r,onClose:n,onSubmit:o}){const{t:d}=N(),m=y=>{y.preventDefault(),o()};return e.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/40 p-4",children:e.jsxs("div",{role:"dialog","aria-modal":"true",className:"w-full max-w-xl overflow-hidden rounded-2xl border border-gray-200 bg-white shadow-xl",children:[e.jsxs("div",{className:"border-b border-gray-200 px-6 py-5",children:[e.jsx("h2",{className:"text-lg font-semibold text-gray-900",children:d("market.addRegistryModal.title")}),e.jsx("p",{className:"mt-1 text-sm text-gray-500",children:d("market.addRegistryModal.description")})]}),e.jsxs("form",{onSubmit:m,children:[e.jsxs("div",{className:"space-y-4 px-6 py-5",children:[e.jsxs("div",{children:[e.jsx("label",{htmlFor:"registry-url",className:"mb-2 block text-sm font-medium text-gray-700",children:d("market.addRegistryModal.urlLabel")}),e.jsx("input",{id:"registry-url",type:"url",value:t,onChange:y=>r(y.target.value),placeholder:d("market.addRegistryModal.urlPlaceholder"),className:"w-full rounded-lg border border-gray-300 px-4 py-3 text-sm text-gray-900 placeholder:text-gray-400 focus:border-blue-500 focus:outline-none focus:ring-2 focus:ring-blue-500",autoFocus:!0})]}),e.jsx("div",{className:"rounded-xl border border-blue-200 bg-blue-50 px-4 py-4",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"flex h-9 w-9 shrink-0 items-center justify-center rounded-lg bg-white text-blue-600",children:e.jsx(Me,{size:18})}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-semibold text-blue-900",children:d("market.addRegistryModal.compatibilityTitle")}),e.jsx("p",{className:"mt-1 text-sm leading-6 text-blue-800",children:d("market.addRegistryModal.compatibilityDescription")})]})]})}),a&&e.jsxs("div",{className:"flex items-start gap-3 rounded-xl border border-red-200 bg-red-50 px-4 py-3 text-red-700",children:[e.jsx(se,{size:18,className:"mt-0.5 shrink-0"}),e.jsx("p",{className:"text-sm",children:a})]})]}),e.jsxs("div",{className:"flex items-center justify-end gap-2 border-t border-gray-200 px-6 py-4",children:[e.jsx("button",{type:"button",onClick:n,disabled:s,className:"rounded-lg bg-gray-100 px-4 py-2 text-sm font-medium text-gray-700 transition-colors hover:bg-gray-200 disabled:cursor-not-allowed disabled:opacity-50",children:d("market.actions.cancel")}),e.jsxs("button",{type:"submit",disabled:s,className:"inline-flex items-center gap-2 rounded-lg bg-blue-500 px-4 py-2 text-sm font-medium text-white transition-colors hover:bg-blue-600 disabled:cursor-not-allowed disabled:opacity-50",children:[s?e.jsx(j,{size:16,className:"animate-spin"}):e.jsx(B,{size:16}),d("market.actions.addRegistry")]})]})]})]})})}function Ye({registry:t,deleting:a,onDelete:s}){const{t:r,i18n:n}=N();return e.jsxs("article",{className:"flex flex-col gap-4 rounded-xl border border-gray-200 bg-white p-5 shadow-sm",children:[e.jsxs("div",{className:"flex items-start justify-between gap-4",children:[e.jsxs("div",{className:"flex min-w-0 items-start gap-3",children:[e.jsx("div",{className:`flex h-11 w-11 shrink-0 items-center justify-center rounded-xl ${t.isVerified?"bg-blue-50 text-blue-600":"bg-gray-100 text-gray-500"}`,children:e.jsx(ie,{size:20})}),e.jsxs("div",{className:"min-w-0",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx("h3",{className:"truncate text-base font-semibold text-gray-900",children:t.name}),e.jsx("span",{className:`inline-flex items-center rounded-full px-2 py-1 text-xs font-medium ${t.isDefault?"bg-amber-50 text-amber-700":"bg-gray-100 text-gray-600"}`,children:t.isDefault?r("market.registryCard.defaultBadge"):r("market.registryCard.customBadge")})]}),e.jsxs("a",{href:t.url,target:"_blank",rel:"noreferrer",className:"mt-2 inline-flex break-all text-sm text-blue-600 hover:text-blue-700",children:[e.jsx("span",{children:t.url}),e.jsx(De,{size:14,className:"ml-1 mt-0.5 shrink-0"})]})]})]}),e.jsxs("button",{type:"button",onClick:()=>s(t.id),disabled:t.isDefault||a,className:`inline-flex items-center gap-2 rounded-lg px-3 py-2 text-sm font-medium transition-colors ${t.isDefault?"cursor-not-allowed bg-gray-100 text-gray-400":"bg-red-50 text-red-600 hover:bg-red-100 disabled:cursor-not-allowed disabled:opacity-50"}`,children:[a?e.jsx(j,{size:15,className:"animate-spin"}):e.jsx(le,{size:15}),t.isDefault?r("market.registryCard.lockedAction"):r("market.actions.deleteRegistry")]})]}),e.jsxs("div",{className:"grid gap-3 sm:grid-cols-2",children:[e.jsxs("div",{className:"rounded-lg border border-gray-200 bg-gray-50 px-4 py-3",children:[e.jsx("p",{className:"text-xs text-gray-500",children:r("market.registryCard.skillCount")}),e.jsx("p",{className:"mt-1 text-lg font-semibold text-gray-900",children:t.skillCount})]}),e.jsxs("div",{className:"rounded-lg border border-gray-200 bg-gray-50 px-4 py-3",children:[e.jsx("p",{className:"text-xs text-gray-500",children:r("market.registryCard.addedAt")}),e.jsx("p",{className:"mt-1 text-sm font-medium text-gray-900",children:ce(t.addedAt,n.language)})]})]}),e.jsx("p",{className:"text-xs text-gray-500",children:t.isDefault?r("market.registryCard.defaultHint"):r("market.registryCard.customHint")})]})}function Ge({registries:t,loading:a,deletingRegistryId:s,onAdd:r,onClose:n,onDelete:o}){const{t:d}=N();return e.jsx("div",{className:"fixed inset-0 z-40 flex items-center justify-center bg-black/40 p-4",children:e.jsxs("div",{role:"dialog","aria-modal":"true",className:"flex max-h-[85vh] w-full max-w-4xl flex-col overflow-hidden rounded-2xl border border-gray-200 bg-white shadow-xl",children:[e.jsxs("div",{className:"flex items-start justify-between gap-4 border-b border-gray-200 px-6 py-5",children:[e.jsxs("div",{children:[e.jsx("h2",{className:"text-lg font-semibold text-gray-900",children:d("market.registryModal.title")}),e.jsx("p",{className:"mt-1 text-sm text-gray-500",children:d("market.registryModal.description")})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs("button",{type:"button",onClick:r,className:"inline-flex items-center gap-2 rounded-lg bg-blue-500 px-4 py-2 text-sm font-medium text-white transition-colors hover:bg-blue-600",children:[e.jsx(B,{size:16}),d("market.actions.addRegistry")]}),e.jsx("button",{type:"button",onClick:n,className:"rounded-lg bg-gray-100 px-4 py-2 text-sm font-medium text-gray-700 transition-colors hover:bg-gray-200",children:d("market.actions.close")})]})]}),e.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto px-6 py-5",children:a?e.jsx("div",{className:"flex items-center justify-center py-16",children:e.jsx(j,{size:22,className:"animate-spin text-gray-400"})}):t.length===0?e.jsxs("div",{className:"rounded-xl border border-dashed border-gray-300 px-6 py-16 text-center",children:[e.jsx("div",{className:"mx-auto flex h-12 w-12 items-center justify-center rounded-full bg-gray-100 text-gray-400",children:e.jsx(ie,{size:20})}),e.jsx("h3",{className:"mt-4 text-base font-semibold text-gray-900",children:d("market.empty.registryTitle")}),e.jsx("p",{className:"mt-2 text-sm text-gray-500",children:d("market.empty.registryDescription")})]}):e.jsx("div",{className:"grid gap-4 xl:grid-cols-2",children:t.map(m=>e.jsx(Ye,{registry:m,deleting:s===m.id,onDelete:o},m.id))})})]})})}function te({skill:t,selected:a,onSelect:s}){const{t:r,i18n:n}=N(),o=Ze(t.updatedAt,n.language),d=O(t.type),m={skill:oe,template:de,agent:re},y={skill:t.isInstalled?"bg-blue-100 text-blue-600":"bg-gray-100 text-gray-500",template:"bg-amber-100 text-amber-700",agent:"bg-emerald-100 text-emerald-700"},c=m[d];return e.jsx("button",{type:"button",onClick:()=>s(t.name),className:`w-full rounded-xl border p-3 text-left transition-colors ${a?"border-blue-200 bg-blue-50 shadow-sm":"border-transparent bg-white hover:border-gray-200 hover:bg-gray-50"}`,children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:`flex h-10 w-10 shrink-0 items-center justify-center rounded-xl ${y[d]}`,children:e.jsx(c,{size:18})}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-1.5",children:[e.jsx("span",{className:"truncate text-sm font-semibold text-gray-900",children:t.displayName||t.name}),t.isVerified&&e.jsx(ne,{className:"h-3.5 w-3.5 shrink-0 text-blue-500"}),e.jsx(me,{type:t.type})]}),e.jsx("p",{className:"mt-1 line-clamp-2 text-xs text-gray-500",children:t.description||r("market.card.noDescription")}),e.jsxs("p",{className:"mt-2 text-[11px] text-gray-400",children:[t.registryName||t.author||r("market.card.unknownAuthor"),o?` · ${r("market.list.updatedLabel",{time:o})}`:""]})]}),t.isInstalled&&e.jsx("span",{className:"shrink-0 rounded-full bg-green-100 px-2 py-0.5 text-[10px] font-medium text-green-700",children:r("market.badges.installed")})]})})}function T({icon:t,label:a,value:s}){return e.jsxs("div",{className:"rounded-xl border border-gray-200 bg-gray-50 px-4 py-3",children:[e.jsxs("div",{className:"flex items-center gap-2 text-xs text-gray-500",children:[e.jsx("span",{className:"text-gray-400",children:t}),e.jsx("span",{children:a})]}),e.jsx("p",{className:"mt-2 text-sm font-semibold text-gray-900",children:s})]})}function Je({skill:t,markdownBody:a,descriptionLoading:s,descriptionError:r,busy:n,canInstall:o,onInstall:d,onUninstall:m,onRefresh:y}){const{t:c,i18n:h}=N(),S=typeof(t==null?void 0:t.installCount)=="number";return t?e.jsxs("section",{className:"flex h-full min-h-[520px] flex-col rounded-2xl border border-gray-200 bg-white p-6 shadow-sm",children:[e.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-4 border-b border-gray-200 pb-5",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx("h2",{className:"text-2xl font-semibold text-gray-900",children:t.displayName||t.name}),e.jsxs("span",{className:"rounded-full bg-gray-100 px-2.5 py-1 text-xs font-medium text-gray-600",children:["v",t.version]}),e.jsx(me,{type:t.type}),t.isVerified&&e.jsxs("span",{className:"inline-flex items-center gap-1 rounded-full bg-blue-50 px-2.5 py-1 text-xs font-medium text-blue-700",children:[e.jsx(ne,{size:13}),c("market.badges.verified")]})]}),e.jsx("p",{className:"mt-2 text-sm text-gray-500",children:t.registryName||t.author||c("market.card.unknownAuthor")})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[t.isInstalled?e.jsxs("button",{type:"button",onClick:()=>m(t.name),disabled:n,className:"inline-flex items-center gap-2 rounded-lg bg-red-50 px-4 py-2 text-sm font-medium text-red-600 transition-colors hover:bg-red-100 disabled:cursor-not-allowed disabled:opacity-50",children:[n?e.jsx(j,{size:16,className:"animate-spin"}):e.jsx(le,{size:16}),c("market.actions.uninstall")]}):e.jsxs("button",{type:"button",onClick:()=>d(t),disabled:n||!o,className:"inline-flex items-center gap-2 rounded-lg bg-blue-500 px-4 py-2 text-sm font-medium text-white transition-colors hover:bg-blue-600 disabled:cursor-not-allowed disabled:opacity-50",children:[n?e.jsx(j,{size:16,className:"animate-spin"}):e.jsx(B,{size:16}),c("market.actions.install")]}),e.jsxs("button",{type:"button",onClick:y,className:"inline-flex items-center gap-2 rounded-lg bg-gray-100 px-4 py-2 text-sm font-medium text-gray-700 transition-colors hover:bg-gray-200",children:[e.jsx(ae,{size:16}),c("market.actions.checkUpdates")]})]})]}),e.jsxs("div",{className:"space-y-6 py-6",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"text-sm font-semibold text-gray-900",children:c("market.detail.description")}),e.jsx("div",{className:"mt-2",children:s?e.jsxs("div",{className:"flex items-center gap-2 text-sm text-gray-500",children:[e.jsx(j,{size:16,className:"animate-spin"}),e.jsx("span",{children:c("market.detail.loadingBody")})]}):t.isInstalled?a!=null&&a.trim()?e.jsx(ze,{content:a,className:"text-sm"}):e.jsxs(e.Fragment,{children:[r&&e.jsx("div",{className:"mb-3 rounded-xl border border-amber-200 bg-amber-50 px-4 py-3 text-sm text-amber-800",children:r}),e.jsx("p",{className:"whitespace-pre-wrap text-sm leading-6 text-gray-600",children:t.description||c("market.card.noDescription")})]}):e.jsxs("div",{className:"space-y-3",children:[e.jsx("p",{className:"whitespace-pre-wrap text-sm leading-6 text-gray-600",children:t.description||c("market.card.noDescription")}),e.jsx("div",{className:"rounded-xl border border-blue-200 bg-blue-50 px-4 py-3 text-sm text-blue-800",children:c("market.detail.installToViewBody")})]})})]}),t.tags.length>0&&e.jsxs("div",{children:[e.jsx("h3",{className:"text-sm font-semibold text-gray-900",children:c("market.detail.tags")}),e.jsx("div",{className:"mt-3 flex flex-wrap gap-2",children:t.tags.map(p=>e.jsxs("span",{className:"rounded-full border border-gray-200 bg-gray-50 px-2.5 py-1 text-xs text-gray-600",children:["#",p]},p))})]}),t.authors&&t.authors.length>0&&e.jsxs("div",{children:[e.jsx("h3",{className:"text-sm font-semibold text-gray-900",children:c("market.detail.developers")}),e.jsx("div",{className:"mt-3 space-y-3",children:t.authors.map(p=>e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("img",{src:p.avatarUrl,alt:`@${p.login}`,className:"h-8 w-8 rounded-full border border-gray-200 object-cover"}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx("div",{className:"truncate text-sm font-medium text-gray-900",children:p.name||p.login}),e.jsxs("div",{className:"text-xs text-gray-500",children:["@",p.login]})]}),typeof p.contributions=="number"&&e.jsx("div",{className:"text-xs text-gray-400",children:c("market.detail.contributions",{count:p.contributions})})]},`${t.name}-${p.login}`))})]})]}),e.jsxs("div",{className:`mt-auto grid gap-3 border-t border-gray-200 pt-6 sm:grid-cols-2 ${S?"xl:grid-cols-4":"xl:grid-cols-3"}`,children:[e.jsx(T,{icon:e.jsx(Pe,{size:14}),label:c("market.detail.stats.stars"),value:ee(t.stars,h.language)}),S&&e.jsx(T,{icon:e.jsx(Re,{size:14}),label:c("market.detail.stats.installs"),value:ee(t.installCount,h.language)}),e.jsx(T,{icon:e.jsx($e,{size:14}),label:c("market.detail.stats.license"),value:t.license||c("market.detail.unavailable")}),e.jsx(T,{icon:e.jsx(Ce,{size:14}),label:c("market.detail.stats.updatedAt"),value:ce(t.updatedAt,h.language)})]})]}):e.jsx("div",{className:"flex h-full min-h-[520px] items-center justify-center rounded-2xl border border-gray-200 bg-white p-8 shadow-sm",children:e.jsxs("div",{className:"max-w-sm text-center",children:[e.jsx("div",{className:"mx-auto flex h-12 w-12 items-center justify-center rounded-full bg-gray-100 text-gray-400",children:e.jsx(Ie,{size:20})}),e.jsx("h3",{className:"mt-4 text-base font-semibold text-gray-900",children:c("market.detail.emptyTitle")}),e.jsx("p",{className:"mt-2 text-sm text-gray-500",children:c("market.detail.emptyDescription")})]})})}function et(){const{t}=N(),{setPageHeader:a}=Se(),[s,r]=u.useState(!1),[n,o]=u.useState(!1),[d,m]=u.useState(""),[y,c]=u.useState(null),[h,S]=u.useState({}),[p,E]=u.useState(null),[xe,z]=u.useState(null),{initialized:H,loading:R,savingRegistry:ue,deletingRegistryId:ge,mutatingSkillName:pe,error:Q,registries:ye,officialRegistryId:$,allSkills:v,activeFilter:k,searchQuery:_,selectedSkillName:C,setActiveFilter:he,setSearchQuery:fe,setSelectedSkill:M,initialize:q,refresh:D,addRegistry:W,deleteRegistry:Z,installSkill:X,uninstallSkill:Y,clearError:A}=We();u.useEffect(()=>{H||q().catch(()=>{})},[H,q]);const G=u.useMemo(()=>v.filter(l=>l.isInstalled).length,[v]),b=u.useMemo(()=>{const l=_.trim().toLowerCase();return v.filter(x=>k==="installed"&&!x.isInstalled||k!=="all"&&k!=="installed"&&O(x.type)!==k?!1:l?[x.displayName,x.name,x.description,x.author,x.registryName,...x.tags].filter(g=>!!g).some(g=>g.toLowerCase().includes(l)):!0)},[k,v,_]),i=u.useMemo(()=>b.find(l=>l.name===C)??b[0]??null,[b,C]),V=i?h[i.name]:void 0;u.useEffect(()=>{const l=(i==null?void 0:i.name)??null;l!==C&&M(l)},[i,C,M]),u.useEffect(()=>{if(!(i!=null&&i.isInstalled)){z(null),E(g=>g===(i==null?void 0:i.name)?null:g);return}if(V!==void 0){z(null);return}let l=!1;const x=i.name;return E(x),z(null),f.getInstalledSkillDetail(x).then(g=>{l||S(ke=>({...ke,[x]:g.body??""}))}).catch(g=>{l||z(g instanceof Error?g.message:t("market.errors.detailLoad"))}).finally(()=>{l||E(g=>g===x?null:g)}),()=>{l=!0}},[i==null?void 0:i.isInstalled,i==null?void 0:i.name,V,t]);const F=u.useCallback(l=>{l&&S(x=>{if(!(l in x))return x;const g={...x};return delete g[l],g})},[]);u.useEffect(()=>{a({title:t("market.title"),subtitle:t("market.subtitle.summary",{total:v.length,installed:G}),actions:e.jsxs("button",{type:"button",onClick:()=>{A(),F((i==null?void 0:i.name)??null),D().catch(()=>{})},className:"inline-flex items-center gap-2 rounded-lg bg-gray-100 px-3 py-2 text-sm font-medium text-gray-700 transition-colors hover:bg-gray-200",children:[e.jsx(ae,{size:16,className:R?"animate-spin":""}),t("market.actions.refresh")]})})},[v.length,A,R,D,F,i==null?void 0:i.name,a,t,G]);const be=u.useCallback(l=>{const x=l.registryId??$;x&&X(x,l.name).catch(()=>{})},[X,$]),je=u.useCallback(l=>{window.confirm(t("market.actions.confirmUninstall",{name:l}))&&Y(l).catch(()=>{})},[t,Y]),Ne=u.useCallback(l=>{Z(l).catch(()=>{})},[Z]),ve=u.useCallback(async()=>{c(null);try{await W(d),m(""),o(!1)}catch(l){c(l instanceof Error?l.message:t("market.errors.addRegistry"))}},[W,d,t]),P=b.filter(l=>l.isInstalled),J=b.filter(l=>!l.isInstalled);return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex flex-col gap-6",children:[Q&&e.jsxs("div",{className:"flex items-start gap-3 rounded-xl border border-red-200 bg-red-50 px-4 py-3 text-red-700",children:[e.jsx(se,{size:18,className:"mt-0.5 shrink-0"}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx("p",{className:"text-sm font-medium",children:t("market.errors.bannerTitle")}),e.jsx("p",{className:"mt-1 break-words text-sm",children:Q})]}),e.jsx("button",{type:"button",onClick:()=>{A(),D().catch(()=>{})},className:"shrink-0 rounded-md bg-red-100 px-3 py-1.5 text-xs font-medium text-red-700 transition-colors hover:bg-red-200",children:t("market.actions.retry")})]}),e.jsxs("div",{className:"flex flex-col gap-3 rounded-2xl border border-gray-200 bg-white p-4 shadow-sm lg:flex-row lg:items-center",children:[e.jsxs("div",{className:"relative flex-1",children:[e.jsx(K,{size:16,className:"pointer-events-none absolute left-3 top-1/2 -translate-y-1/2 text-gray-400"}),e.jsx("input",{type:"search",value:_,onChange:l=>fe(l.target.value),placeholder:t("market.searchPlaceholder"),className:"w-full rounded-xl border border-gray-300 py-2.5 pl-10 pr-4 text-sm text-gray-900 placeholder:text-gray-400 focus:border-blue-500 focus:outline-none focus:ring-2 focus:ring-blue-500"})]}),e.jsxs("button",{type:"button",onClick:()=>r(!0),className:"inline-flex items-center justify-center gap-2 rounded-xl border border-gray-200 bg-gray-50 px-4 py-2.5 text-sm font-medium text-gray-700 transition-colors hover:bg-gray-100",children:[e.jsx(Ve,{size:16}),t("market.actions.manageSources")]})]}),e.jsx("div",{className:"flex flex-wrap gap-2",children:["all","installed","skill","template","agent"].map(l=>e.jsx("button",{type:"button",onClick:()=>he(l),className:`rounded-full border px-3 py-1.5 text-sm font-medium transition-colors ${k===l?"border-blue-500 bg-blue-500 text-white":"border-gray-200 bg-white text-gray-600 hover:bg-gray-50"}`,children:t(`market.filters.${l}`)},l))}),e.jsxs("div",{className:"grid gap-6 lg:grid-cols-[360px_minmax(0,1fr)]",children:[e.jsxs("section",{className:"rounded-2xl border border-gray-200 bg-white shadow-sm",children:[e.jsxs("div",{className:"border-b border-gray-200 px-4 py-3",children:[e.jsx("h2",{className:"text-sm font-semibold text-gray-900",children:t("market.list.title")}),e.jsx("p",{className:"mt-1 text-xs text-gray-500",children:t("market.list.count",{count:b.length})})]}),e.jsx("div",{className:"max-h-[640px] overflow-y-auto p-3",children:R?e.jsx("div",{className:"flex items-center justify-center py-16",children:e.jsx(j,{size:22,className:"animate-spin text-gray-400"})}):b.length===0?e.jsxs("div",{className:"rounded-xl border border-dashed border-gray-300 px-4 py-12 text-center",children:[e.jsx("div",{className:"mx-auto flex h-10 w-10 items-center justify-center rounded-full bg-gray-100 text-gray-400",children:e.jsx(K,{size:18})}),e.jsx("h3",{className:"mt-3 text-sm font-semibold text-gray-900",children:t("market.empty.filteredTitle")}),e.jsx("p",{className:"mt-2 text-xs leading-5 text-gray-500",children:t("market.empty.filteredDescription")})]}):e.jsxs("div",{className:"space-y-3",children:[P.length>0&&e.jsxs("div",{className:"space-y-2",children:[e.jsx("p",{className:"px-1 text-xs font-semibold uppercase tracking-wide text-gray-400",children:t("market.list.installedHeading")}),P.map(l=>e.jsx(te,{skill:l,selected:(i==null?void 0:i.name)===l.name,onSelect:M},l.name))]}),J.length>0&&e.jsxs("div",{className:"space-y-2",children:[P.length>0&&e.jsx("p",{className:"px-1 pt-2 text-xs font-semibold uppercase tracking-wide text-gray-400",children:t("market.list.availableHeading")}),J.map(l=>e.jsx(te,{skill:l,selected:(i==null?void 0:i.name)===l.name,onSelect:M},l.name))]})]})})]}),e.jsx(Je,{skill:i,markdownBody:V,descriptionLoading:i?p===i.name:!1,descriptionError:xe,busy:i?pe===i.name:!1,canInstall:!!((i==null?void 0:i.registryId)??$),onInstall:be,onUninstall:je,onRefresh:()=>{A(),F((i==null?void 0:i.name)??null),D().catch(()=>{})}})]})]}),s&&e.jsx(Ge,{registries:ye,loading:R,deletingRegistryId:ge,onAdd:()=>{c(null),m(""),o(!0)},onClose:()=>r(!1),onDelete:Ne}),n&&e.jsx(Xe,{url:d,error:y,submitting:ue,onChange:m,onClose:()=>{c(null),o(!1)},onSubmit:ve})]})}export{et as default};
31
+ */const Fe=[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]],Pe=w("star",Fe);function I(t){return t instanceof Error?t.message:String(t)}function Oe(t){return[...t].sort((a,s)=>a.isInstalled!==s.isInstalled?a.isInstalled?-1:1:(a.displayName||a.name).localeCompare(s.displayName||s.name))}function Ue(t=[],a=[]){return Array.from(new Set([...t,...a]))}function Be(t,a){var s;return t?{...t,...a,displayName:a.displayName||t.displayName||a.name,description:a.description||t.description,author:a.author||t.author,version:a.version||t.version,tags:Ue(t.tags,a.tags),type:a.type||t.type,isVerified:t.isVerified||a.isVerified,isInstalled:t.isInstalled||a.isInstalled,registryId:a.registryId??t.registryId,registryName:a.registryName??t.registryName,installSource:a.installSource??t.installSource,authors:(s=a.authors)!=null&&s.length?a.authors:t.authors,updatedAt:a.updatedAt??t.updatedAt,stars:a.stars??t.stars,license:a.license??t.license,installCount:a.installCount??t.installCount}:a}function L(t){const a=new Map;for(const s of t){const r=a.get(s.name);a.set(s.name,Be(r,s))}return Oe(Array.from(a.values()))}function He(t,a){return t.map(s=>({...s,registryId:s.registryId??a.id,registryName:s.registryName??a.name,isVerified:s.isVerified||a.isVerified}))}function Qe(t){return t.find(a=>a.isDefault)??t.find(a=>a.isVerified)??t[0]??null}function qe(t,a){return L([...t,...a])}function O(t,a){var s;return a&&t.some(r=>r.name===a)?a:((s=t[0])==null?void 0:s.name)??null}const We=we((t,a)=>({initialized:!1,loading:!1,loadingOfficial:!1,loadingInstalled:!1,savingRegistry:!1,deletingRegistryId:null,mutatingSkillName:null,error:null,registries:[],officialRegistryId:null,allSkills:[],activeFilter:"all",searchQuery:"",selectedSkillName:null,setActiveFilter:s=>t({activeFilter:s}),setSearchQuery:s=>t({searchQuery:s}),setSelectedSkill:s=>t({selectedSkillName:s}),initialize:async()=>{const s=a().selectedSkillName;t({loading:!0,loadingOfficial:!0,loadingInstalled:!0,error:null});try{const n=(await f.getSkillRegistries()).registries,o=Qe(n),[d,m]=await Promise.all([o?f.getRegistrySkills(o.id):Promise.resolve({skills:[]}),f.getInstalledSkills()]),y=o?He(d.skills,o):[],c=L(m.skills),h=qe(y,c);t({initialized:!0,loading:!1,loadingOfficial:!1,loadingInstalled:!1,registries:n,officialRegistryId:(o==null?void 0:o.id)??null,allSkills:h,selectedSkillName:O(h,s)})}catch(r){throw t({loading:!1,loadingOfficial:!1,loadingInstalled:!1,error:I(r)}),r}},refresh:async()=>{await a().initialize()},addRegistry:async s=>{const r=s.trim();if(!r){const n=new Error("Registry URL is required");throw t({error:n.message}),n}t({savingRegistry:!0,error:null});try{await f.addSkillRegistry(r),await a().initialize(),t({savingRegistry:!1})}catch(n){throw t({savingRegistry:!1,error:I(n)}),n}},deleteRegistry:async s=>{t({deletingRegistryId:s,error:null});try{await f.deleteSkillRegistry(s),await a().initialize(),t({deletingRegistryId:null})}catch(r){throw t({deletingRegistryId:null,error:I(r)}),r}},installSkill:async(s,r)=>{t({mutatingSkillName:r,error:null});try{await f.installSkill(s,r),t(n=>{const o=n.registries.find(m=>m.id===s),d=L(n.allSkills.map(m=>m.name===r?{...m,isInstalled:!0,registryId:m.registryId??s,registryName:m.registryName??(o==null?void 0:o.name)}:m));return{allSkills:d,mutatingSkillName:null,selectedSkillName:O(d,n.selectedSkillName??r)}})}catch(n){throw t({mutatingSkillName:null,error:I(n)}),n}},uninstallSkill:async s=>{t({mutatingSkillName:s,error:null});try{await f.uninstallSkill(s),t(r=>{const n=L(r.allSkills.map(o=>o.name===s?{...o,isInstalled:!1}:o));return{allSkills:n,mutatingSkillName:null,selectedSkillName:O(n,r.selectedSkillName)}})}catch(r){throw t({mutatingSkillName:null,error:I(r)}),r}},clearError:()=>t({error:null})}));function ce(t,a){if(!t)return"—";const s=new Date(t);return Number.isNaN(s.getTime())?"—":new Intl.DateTimeFormat(a,{year:"numeric",month:"short",day:"numeric"}).format(s)}function Ze(t,a){if(!t)return null;const s=new Date(t);if(Number.isNaN(s.getTime()))return null;const r=s.getTime()-Date.now(),n=[{unit:"year",ms:1e3*60*60*24*365},{unit:"month",ms:1e3*60*60*24*30},{unit:"week",ms:1e3*60*60*24*7},{unit:"day",ms:1e3*60*60*24},{unit:"hour",ms:1e3*60*60},{unit:"minute",ms:1e3*60}],o=new Intl.RelativeTimeFormat(a,{numeric:"auto"});for(const d of n)if(Math.abs(r)>=d.ms||d.unit==="minute")return o.format(Math.round(r/d.ms),d.unit);return null}function ee(t,a){return typeof t!="number"?"—":new Intl.NumberFormat(a,{notation:"compact",compactDisplay:"short",maximumFractionDigits:1}).format(t)}function B(t){switch(t==null?void 0:t.toLowerCase()){case"template":return"template";case"agent":return"agent";default:return"skill"}}function me({type:t}){const{t:a}=N(),s=B(t),r={skill:"bg-violet-50 text-violet-700",template:"bg-amber-50 text-amber-700",agent:"bg-emerald-50 text-emerald-700"},n={skill:oe,template:de,agent:re},o={skill:a("market.types.skill"),template:a("market.types.template"),agent:a("market.types.agent")},d=n[s];return e.jsxs("span",{className:`inline-flex items-center gap-1 rounded-full px-2 py-0.5 text-[10px] font-medium ${r[s]}`,children:[e.jsx(d,{size:12}),o[s]]})}function Xe({url:t,error:a,submitting:s,onChange:r,onClose:n,onSubmit:o}){const{t:d}=N(),m=y=>{y.preventDefault(),o()};return e.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/40 p-4",children:e.jsxs("div",{role:"dialog","aria-modal":"true",className:"w-full max-w-xl overflow-hidden rounded-2xl border border-gray-200 bg-white shadow-xl",children:[e.jsxs("div",{className:"border-b border-gray-200 px-6 py-5",children:[e.jsx("h2",{className:"text-lg font-semibold text-gray-900",children:d("market.addRegistryModal.title")}),e.jsx("p",{className:"mt-1 text-sm text-gray-500",children:d("market.addRegistryModal.description")})]}),e.jsxs("form",{onSubmit:m,children:[e.jsxs("div",{className:"space-y-4 px-6 py-5",children:[e.jsxs("div",{children:[e.jsx("label",{htmlFor:"registry-url",className:"mb-2 block text-sm font-medium text-gray-700",children:d("market.addRegistryModal.urlLabel")}),e.jsx("input",{id:"registry-url",type:"url",value:t,onChange:y=>r(y.target.value),placeholder:d("market.addRegistryModal.urlPlaceholder"),className:"w-full rounded-lg border border-gray-300 px-4 py-3 text-sm text-gray-900 placeholder:text-gray-400 focus:border-blue-500 focus:outline-none focus:ring-2 focus:ring-blue-500",autoFocus:!0})]}),e.jsx("div",{className:"rounded-xl border border-blue-200 bg-blue-50 px-4 py-4",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"flex h-9 w-9 shrink-0 items-center justify-center rounded-lg bg-white text-blue-600",children:e.jsx(Me,{size:18})}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-semibold text-blue-900",children:d("market.addRegistryModal.compatibilityTitle")}),e.jsx("p",{className:"mt-1 text-sm leading-6 text-blue-800",children:d("market.addRegistryModal.compatibilityDescription")})]})]})}),a&&e.jsxs("div",{className:"flex items-start gap-3 rounded-xl border border-red-200 bg-red-50 px-4 py-3 text-red-700",children:[e.jsx(se,{size:18,className:"mt-0.5 shrink-0"}),e.jsx("p",{className:"text-sm",children:a})]})]}),e.jsxs("div",{className:"flex items-center justify-end gap-2 border-t border-gray-200 px-6 py-4",children:[e.jsx("button",{type:"button",onClick:n,disabled:s,className:"rounded-lg bg-gray-100 px-4 py-2 text-sm font-medium text-gray-700 transition-colors hover:bg-gray-200 disabled:cursor-not-allowed disabled:opacity-50",children:d("market.actions.cancel")}),e.jsxs("button",{type:"submit",disabled:s,className:"inline-flex items-center gap-2 rounded-lg bg-blue-500 px-4 py-2 text-sm font-medium text-white transition-colors hover:bg-blue-600 disabled:cursor-not-allowed disabled:opacity-50",children:[s?e.jsx(j,{size:16,className:"animate-spin"}):e.jsx(U,{size:16}),d("market.actions.addRegistry")]})]})]})]})})}function Ye({registry:t,deleting:a,onDelete:s}){const{t:r,i18n:n}=N();return e.jsxs("article",{className:"flex flex-col gap-4 rounded-xl border border-gray-200 bg-white p-5 shadow-sm",children:[e.jsxs("div",{className:"flex items-start justify-between gap-4",children:[e.jsxs("div",{className:"flex min-w-0 items-start gap-3",children:[e.jsx("div",{className:`flex h-11 w-11 shrink-0 items-center justify-center rounded-xl ${t.isVerified?"bg-blue-50 text-blue-600":"bg-gray-100 text-gray-500"}`,children:e.jsx(ie,{size:20})}),e.jsxs("div",{className:"min-w-0",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx("h3",{className:"truncate text-base font-semibold text-gray-900",children:t.name}),e.jsx("span",{className:`inline-flex items-center rounded-full px-2 py-1 text-xs font-medium ${t.isDefault?"bg-amber-50 text-amber-700":"bg-gray-100 text-gray-600"}`,children:t.isDefault?r("market.registryCard.defaultBadge"):r("market.registryCard.customBadge")})]}),e.jsxs("a",{href:t.url,target:"_blank",rel:"noreferrer",className:"mt-2 inline-flex break-all text-sm text-blue-600 hover:text-blue-700",children:[e.jsx("span",{children:t.url}),e.jsx(De,{size:14,className:"ml-1 mt-0.5 shrink-0"})]})]})]}),e.jsxs("button",{type:"button",onClick:()=>s(t.id),disabled:t.isDefault||a,className:`inline-flex items-center gap-2 rounded-lg px-3 py-2 text-sm font-medium transition-colors ${t.isDefault?"cursor-not-allowed bg-gray-100 text-gray-400":"bg-red-50 text-red-600 hover:bg-red-100 disabled:cursor-not-allowed disabled:opacity-50"}`,children:[a?e.jsx(j,{size:15,className:"animate-spin"}):e.jsx(le,{size:15}),t.isDefault?r("market.registryCard.lockedAction"):r("market.actions.deleteRegistry")]})]}),e.jsxs("div",{className:"grid gap-3 sm:grid-cols-2",children:[e.jsxs("div",{className:"rounded-lg border border-gray-200 bg-gray-50 px-4 py-3",children:[e.jsx("p",{className:"text-xs text-gray-500",children:r("market.registryCard.skillCount")}),e.jsx("p",{className:"mt-1 text-lg font-semibold text-gray-900",children:t.skillCount})]}),e.jsxs("div",{className:"rounded-lg border border-gray-200 bg-gray-50 px-4 py-3",children:[e.jsx("p",{className:"text-xs text-gray-500",children:r("market.registryCard.addedAt")}),e.jsx("p",{className:"mt-1 text-sm font-medium text-gray-900",children:ce(t.addedAt,n.language)})]})]}),e.jsx("p",{className:"text-xs text-gray-500",children:t.isDefault?r("market.registryCard.defaultHint"):r("market.registryCard.customHint")})]})}function Ge({registries:t,loading:a,deletingRegistryId:s,onAdd:r,onClose:n,onDelete:o}){const{t:d}=N();return e.jsx("div",{className:"fixed inset-0 z-40 flex items-center justify-center bg-black/40 p-4",children:e.jsxs("div",{role:"dialog","aria-modal":"true",className:"flex max-h-[85vh] w-full max-w-4xl flex-col overflow-hidden rounded-2xl border border-gray-200 bg-white shadow-xl",children:[e.jsxs("div",{className:"flex items-start justify-between gap-4 border-b border-gray-200 px-6 py-5",children:[e.jsxs("div",{children:[e.jsx("h2",{className:"text-lg font-semibold text-gray-900",children:d("market.registryModal.title")}),e.jsx("p",{className:"mt-1 text-sm text-gray-500",children:d("market.registryModal.description")})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs("button",{type:"button",onClick:r,className:"inline-flex items-center gap-2 rounded-lg bg-blue-500 px-4 py-2 text-sm font-medium text-white transition-colors hover:bg-blue-600",children:[e.jsx(U,{size:16}),d("market.actions.addRegistry")]}),e.jsx("button",{type:"button",onClick:n,className:"rounded-lg bg-gray-100 px-4 py-2 text-sm font-medium text-gray-700 transition-colors hover:bg-gray-200",children:d("market.actions.close")})]})]}),e.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto px-6 py-5",children:a?e.jsx("div",{className:"flex items-center justify-center py-16",children:e.jsx(j,{size:22,className:"animate-spin text-gray-400"})}):t.length===0?e.jsxs("div",{className:"rounded-xl border border-dashed border-gray-300 px-6 py-16 text-center",children:[e.jsx("div",{className:"mx-auto flex h-12 w-12 items-center justify-center rounded-full bg-gray-100 text-gray-400",children:e.jsx(ie,{size:20})}),e.jsx("h3",{className:"mt-4 text-base font-semibold text-gray-900",children:d("market.empty.registryTitle")}),e.jsx("p",{className:"mt-2 text-sm text-gray-500",children:d("market.empty.registryDescription")})]}):e.jsx("div",{className:"grid gap-4 xl:grid-cols-2",children:t.map(m=>e.jsx(Ye,{registry:m,deleting:s===m.id,onDelete:o},m.id))})})]})})}function te({skill:t,selected:a,onSelect:s}){const{t:r,i18n:n}=N(),o=Ze(t.updatedAt,n.language),d=B(t.type),m={skill:oe,template:de,agent:re},y={skill:t.isInstalled?"bg-blue-100 text-blue-600":"bg-gray-100 text-gray-500",template:"bg-amber-100 text-amber-700",agent:"bg-emerald-100 text-emerald-700"},c=m[d];return e.jsx("button",{type:"button",onClick:()=>s(t.name),className:`w-full rounded-xl border p-3 text-left transition-colors ${a?"border-blue-200 bg-blue-50 shadow-sm":"border-transparent bg-white hover:border-gray-200 hover:bg-gray-50"}`,children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:`flex h-10 w-10 shrink-0 items-center justify-center rounded-xl ${y[d]}`,children:e.jsx(c,{size:18})}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-1.5",children:[e.jsx("span",{className:"truncate text-sm font-semibold text-gray-900",children:t.displayName||t.name}),t.isVerified&&e.jsx(ne,{className:"h-3.5 w-3.5 shrink-0 text-blue-500"}),e.jsx(me,{type:t.type})]}),e.jsx("p",{className:"mt-1 line-clamp-2 text-xs text-gray-500",children:t.description||r("market.card.noDescription")}),e.jsxs("p",{className:"mt-2 text-[11px] text-gray-400",children:[t.registryName||t.author||r("market.card.unknownAuthor"),o?` · ${r("market.list.updatedLabel",{time:o})}`:""]})]}),t.isInstalled&&e.jsx("span",{className:"shrink-0 rounded-full bg-green-100 px-2 py-0.5 text-[10px] font-medium text-green-700",children:r("market.badges.installed")})]})})}function T({icon:t,label:a,value:s}){return e.jsxs("div",{className:"rounded-xl border border-gray-200 bg-gray-50 px-4 py-3",children:[e.jsxs("div",{className:"flex items-center gap-2 text-xs text-gray-500",children:[e.jsx("span",{className:"text-gray-400",children:t}),e.jsx("span",{children:a})]}),e.jsx("p",{className:"mt-2 text-sm font-semibold text-gray-900",children:s})]})}function Je({skill:t,markdownBody:a,descriptionLoading:s,descriptionError:r,busy:n,canInstall:o,onInstall:d,onUninstall:m,onRefresh:y}){const{t:c,i18n:h}=N(),S=typeof(t==null?void 0:t.installCount)=="number";return t?e.jsxs("section",{className:"flex h-full min-h-[520px] flex-col rounded-2xl border border-gray-200 bg-white p-6 shadow-sm",children:[e.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-4 border-b border-gray-200 pb-5",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx("h2",{className:"text-2xl font-semibold text-gray-900",children:t.displayName||t.name}),e.jsxs("span",{className:"rounded-full bg-gray-100 px-2.5 py-1 text-xs font-medium text-gray-600",children:["v",t.version]}),e.jsx(me,{type:t.type}),t.isVerified&&e.jsxs("span",{className:"inline-flex items-center gap-1 rounded-full bg-blue-50 px-2.5 py-1 text-xs font-medium text-blue-700",children:[e.jsx(ne,{size:13}),c("market.badges.verified")]})]}),e.jsx("p",{className:"mt-2 text-sm text-gray-500",children:t.registryName||t.author||c("market.card.unknownAuthor")})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[t.isInstalled?e.jsxs("button",{type:"button",onClick:()=>m(t.name),disabled:n,className:"inline-flex items-center gap-2 rounded-lg bg-red-50 px-4 py-2 text-sm font-medium text-red-600 transition-colors hover:bg-red-100 disabled:cursor-not-allowed disabled:opacity-50",children:[n?e.jsx(j,{size:16,className:"animate-spin"}):e.jsx(le,{size:16}),c("market.actions.uninstall")]}):e.jsxs("button",{type:"button",onClick:()=>d(t),disabled:n||!o,className:"inline-flex items-center gap-2 rounded-lg bg-blue-500 px-4 py-2 text-sm font-medium text-white transition-colors hover:bg-blue-600 disabled:cursor-not-allowed disabled:opacity-50",children:[n?e.jsx(j,{size:16,className:"animate-spin"}):e.jsx(U,{size:16}),c("market.actions.install")]}),e.jsxs("button",{type:"button",onClick:y,className:"inline-flex items-center gap-2 rounded-lg bg-gray-100 px-4 py-2 text-sm font-medium text-gray-700 transition-colors hover:bg-gray-200",children:[e.jsx(ae,{size:16}),c("market.actions.checkUpdates")]})]})]}),e.jsxs("div",{className:"space-y-6 py-6",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"text-sm font-semibold text-gray-900",children:c("market.detail.description")}),e.jsx("div",{className:"mt-2",children:s?e.jsxs("div",{className:"flex items-center gap-2 text-sm text-gray-500",children:[e.jsx(j,{size:16,className:"animate-spin"}),e.jsx("span",{children:c("market.detail.loadingBody")})]}):t.isInstalled?a!=null&&a.trim()?e.jsx(ze,{content:a,className:"text-sm"}):e.jsxs(e.Fragment,{children:[r&&e.jsx("div",{className:"mb-3 rounded-xl border border-amber-200 bg-amber-50 px-4 py-3 text-sm text-amber-800",children:r}),e.jsx("p",{className:"whitespace-pre-wrap text-sm leading-6 text-gray-600",children:t.description||c("market.card.noDescription")})]}):e.jsxs("div",{className:"space-y-3",children:[e.jsx("p",{className:"whitespace-pre-wrap text-sm leading-6 text-gray-600",children:t.description||c("market.card.noDescription")}),e.jsx("div",{className:"rounded-xl border border-blue-200 bg-blue-50 px-4 py-3 text-sm text-blue-800",children:c("market.detail.installToViewBody")})]})})]}),t.tags.length>0&&e.jsxs("div",{children:[e.jsx("h3",{className:"text-sm font-semibold text-gray-900",children:c("market.detail.tags")}),e.jsx("div",{className:"mt-3 flex flex-wrap gap-2",children:t.tags.map(p=>e.jsxs("span",{className:"rounded-full border border-gray-200 bg-gray-50 px-2.5 py-1 text-xs text-gray-600",children:["#",p]},p))})]}),t.authors&&t.authors.length>0&&e.jsxs("div",{children:[e.jsx("h3",{className:"text-sm font-semibold text-gray-900",children:c("market.detail.developers")}),e.jsx("div",{className:"mt-3 space-y-3",children:t.authors.map(p=>e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("img",{src:p.avatarUrl,alt:`@${p.login}`,className:"h-8 w-8 rounded-full border border-gray-200 object-cover"}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx("div",{className:"truncate text-sm font-medium text-gray-900",children:p.name||p.login}),e.jsxs("div",{className:"text-xs text-gray-500",children:["@",p.login]})]}),typeof p.contributions=="number"&&e.jsx("div",{className:"text-xs text-gray-400",children:c("market.detail.contributions",{count:p.contributions})})]},`${t.name}-${p.login}`))})]})]}),e.jsxs("div",{className:`mt-auto grid gap-3 border-t border-gray-200 pt-6 sm:grid-cols-2 ${S?"xl:grid-cols-4":"xl:grid-cols-3"}`,children:[e.jsx(T,{icon:e.jsx(Pe,{size:14}),label:c("market.detail.stats.stars"),value:ee(t.stars,h.language)}),S&&e.jsx(T,{icon:e.jsx(Re,{size:14}),label:c("market.detail.stats.installs"),value:ee(t.installCount,h.language)}),e.jsx(T,{icon:e.jsx($e,{size:14}),label:c("market.detail.stats.license"),value:t.license||c("market.detail.unavailable")}),e.jsx(T,{icon:e.jsx(Ce,{size:14}),label:c("market.detail.stats.updatedAt"),value:ce(t.updatedAt,h.language)})]})]}):e.jsx("div",{className:"flex h-full min-h-[520px] items-center justify-center rounded-2xl border border-gray-200 bg-white p-8 shadow-sm",children:e.jsxs("div",{className:"max-w-sm text-center",children:[e.jsx("div",{className:"mx-auto flex h-12 w-12 items-center justify-center rounded-full bg-gray-100 text-gray-400",children:e.jsx(Ie,{size:20})}),e.jsx("h3",{className:"mt-4 text-base font-semibold text-gray-900",children:c("market.detail.emptyTitle")}),e.jsx("p",{className:"mt-2 text-sm text-gray-500",children:c("market.detail.emptyDescription")})]})})}function et(){const{t}=N(),{setPageHeader:a}=Se(),[s,r]=u.useState(!1),[n,o]=u.useState(!1),[d,m]=u.useState(""),[y,c]=u.useState(null),[h,S]=u.useState({}),[p,E]=u.useState(null),[xe,z]=u.useState(null),{initialized:H,loading:R,savingRegistry:ue,deletingRegistryId:ge,mutatingSkillName:pe,error:Q,registries:ye,officialRegistryId:$,allSkills:v,activeFilter:k,searchQuery:_,selectedSkillName:C,setActiveFilter:he,setSearchQuery:fe,setSelectedSkill:M,initialize:q,refresh:D,addRegistry:W,deleteRegistry:Z,installSkill:X,uninstallSkill:Y,clearError:A}=We();u.useEffect(()=>{H||q().catch(()=>{})},[H,q]);const G=u.useMemo(()=>v.filter(l=>l.isInstalled).length,[v]),b=u.useMemo(()=>{const l=_.trim().toLowerCase();return v.filter(x=>k==="installed"&&!x.isInstalled||k!=="all"&&k!=="installed"&&B(x.type)!==k?!1:l?[x.displayName,x.name,x.description,x.author,x.registryName,...x.tags].filter(g=>!!g).some(g=>g.toLowerCase().includes(l)):!0)},[k,v,_]),i=u.useMemo(()=>b.find(l=>l.name===C)??b[0]??null,[b,C]),V=i?h[i.name]:void 0;u.useEffect(()=>{const l=(i==null?void 0:i.name)??null;l!==C&&M(l)},[i,C,M]),u.useEffect(()=>{if(!(i!=null&&i.isInstalled)){z(null),E(g=>g===(i==null?void 0:i.name)?null:g);return}if(V!==void 0){z(null);return}let l=!1;const x=i.name;return E(x),z(null),f.getInstalledSkillDetail(x).then(g=>{l||S(ke=>({...ke,[x]:g.body??""}))}).catch(g=>{l||z(g instanceof Error?g.message:t("market.errors.detailLoad"))}).finally(()=>{l||E(g=>g===x?null:g)}),()=>{l=!0}},[i==null?void 0:i.isInstalled,i==null?void 0:i.name,V,t]);const F=u.useCallback(l=>{l&&S(x=>{if(!(l in x))return x;const g={...x};return delete g[l],g})},[]);u.useEffect(()=>{a({title:t("market.title"),subtitle:t("market.subtitle.summary",{total:v.length,installed:G}),actions:e.jsxs("button",{type:"button",onClick:()=>{A(),F((i==null?void 0:i.name)??null),D().catch(()=>{})},className:"inline-flex items-center gap-2 rounded-lg bg-gray-100 px-3 py-2 text-sm font-medium text-gray-700 transition-colors hover:bg-gray-200",children:[e.jsx(ae,{size:16,className:R?"animate-spin":""}),t("market.actions.refresh")]})})},[v.length,A,R,D,F,i==null?void 0:i.name,a,t,G]);const be=u.useCallback(l=>{const x=l.registryId??$;x&&X(x,l.name).catch(()=>{})},[X,$]),je=u.useCallback(l=>{window.confirm(t("market.actions.confirmUninstall",{name:l}))&&Y(l).catch(()=>{})},[t,Y]),Ne=u.useCallback(l=>{Z(l).catch(()=>{})},[Z]),ve=u.useCallback(async()=>{c(null);try{await W(d),m(""),o(!1)}catch(l){c(l instanceof Error?l.message:t("market.errors.addRegistry"))}},[W,d,t]),P=b.filter(l=>l.isInstalled),J=b.filter(l=>!l.isInstalled);return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex flex-col gap-6",children:[Q&&e.jsxs("div",{className:"flex items-start gap-3 rounded-xl border border-red-200 bg-red-50 px-4 py-3 text-red-700",children:[e.jsx(se,{size:18,className:"mt-0.5 shrink-0"}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx("p",{className:"text-sm font-medium",children:t("market.errors.bannerTitle")}),e.jsx("p",{className:"mt-1 break-words text-sm",children:Q})]}),e.jsx("button",{type:"button",onClick:()=>{A(),D().catch(()=>{})},className:"shrink-0 rounded-md bg-red-100 px-3 py-1.5 text-xs font-medium text-red-700 transition-colors hover:bg-red-200",children:t("market.actions.retry")})]}),e.jsxs("div",{className:"flex flex-col gap-3 rounded-2xl border border-gray-200 bg-white p-4 shadow-sm lg:flex-row lg:items-center",children:[e.jsxs("div",{className:"relative flex-1",children:[e.jsx(K,{size:16,className:"pointer-events-none absolute left-3 top-1/2 -translate-y-1/2 text-gray-400"}),e.jsx("input",{type:"search",value:_,onChange:l=>fe(l.target.value),placeholder:t("market.searchPlaceholder"),className:"w-full rounded-xl border border-gray-300 py-2.5 pl-10 pr-4 text-sm text-gray-900 placeholder:text-gray-400 focus:border-blue-500 focus:outline-none focus:ring-2 focus:ring-blue-500"})]}),e.jsxs("button",{type:"button",onClick:()=>r(!0),className:"inline-flex items-center justify-center gap-2 rounded-xl border border-gray-200 bg-gray-50 px-4 py-2.5 text-sm font-medium text-gray-700 transition-colors hover:bg-gray-100",children:[e.jsx(Ve,{size:16}),t("market.actions.manageSources")]})]}),e.jsx("div",{className:"flex flex-wrap gap-2",children:["all","installed","skill","template","agent"].map(l=>e.jsx("button",{type:"button",onClick:()=>he(l),className:`rounded-full border px-3 py-1.5 text-sm font-medium transition-colors ${k===l?"border-blue-500 bg-blue-500 text-white":"border-gray-200 bg-white text-gray-600 hover:bg-gray-50"}`,children:t(`market.filters.${l}`)},l))}),e.jsxs("div",{className:"grid gap-6 lg:grid-cols-[360px_minmax(0,1fr)]",children:[e.jsxs("section",{className:"rounded-2xl border border-gray-200 bg-white shadow-sm",children:[e.jsxs("div",{className:"border-b border-gray-200 px-4 py-3",children:[e.jsx("h2",{className:"text-sm font-semibold text-gray-900",children:t("market.list.title")}),e.jsx("p",{className:"mt-1 text-xs text-gray-500",children:t("market.list.count",{count:b.length})})]}),e.jsx("div",{className:"max-h-[640px] overflow-y-auto p-3",children:R?e.jsx("div",{className:"flex items-center justify-center py-16",children:e.jsx(j,{size:22,className:"animate-spin text-gray-400"})}):b.length===0?e.jsxs("div",{className:"rounded-xl border border-dashed border-gray-300 px-4 py-12 text-center",children:[e.jsx("div",{className:"mx-auto flex h-10 w-10 items-center justify-center rounded-full bg-gray-100 text-gray-400",children:e.jsx(K,{size:18})}),e.jsx("h3",{className:"mt-3 text-sm font-semibold text-gray-900",children:t("market.empty.filteredTitle")}),e.jsx("p",{className:"mt-2 text-xs leading-5 text-gray-500",children:t("market.empty.filteredDescription")})]}):e.jsxs("div",{className:"space-y-3",children:[P.length>0&&e.jsxs("div",{className:"space-y-2",children:[e.jsx("p",{className:"px-1 text-xs font-semibold uppercase tracking-wide text-gray-400",children:t("market.list.installedHeading")}),P.map(l=>e.jsx(te,{skill:l,selected:(i==null?void 0:i.name)===l.name,onSelect:M},l.name))]}),J.length>0&&e.jsxs("div",{className:"space-y-2",children:[P.length>0&&e.jsx("p",{className:"px-1 pt-2 text-xs font-semibold uppercase tracking-wide text-gray-400",children:t("market.list.availableHeading")}),J.map(l=>e.jsx(te,{skill:l,selected:(i==null?void 0:i.name)===l.name,onSelect:M},l.name))]})]})})]}),e.jsx(Je,{skill:i,markdownBody:V,descriptionLoading:i?p===i.name:!1,descriptionError:xe,busy:i?pe===i.name:!1,canInstall:!!((i==null?void 0:i.registryId)??$),onInstall:be,onUninstall:je,onRefresh:()=>{A(),F((i==null?void 0:i.name)??null),D().catch(()=>{})}})]})]}),s&&e.jsx(Ge,{registries:ye,loading:R,deletingRegistryId:ge,onAdd:()=>{c(null),m(""),o(!0)},onClose:()=>r(!1),onDelete:Ne}),n&&e.jsx(Xe,{url:d,error:y,submitting:ue,onChange:m,onClose:()=>{c(null),o(!1)},onSubmit:ve})]})}export{et as default};
@@ -0,0 +1,37 @@
1
+ import{aO as H,aR as B,aT as d,aU as r,b7 as ve,aY as J,b1 as ke,b8 as we,aQ as F,b9 as ce,aX as de,ba as U,b4 as je,bb as Ne,bc as Ce,bd as Le,a$ as _e,be as ue,bf as Ee,bg as Se,bh as De,bi as Me,bj as Ae,bk as Te,bl as $e,bm as Ie,bn as Pe,bo as Re,bp as Be,bq as ze,br as Oe,bs as qe,bt as Fe,bu as Ve,bv as He,bw as Ke,bx as Ue,by as Qe,bz as We,bA as Xe,bB as ee}from"./main-2Ng-WP0F.js";/**
2
+ * @license lucide-react v0.563.0 - ISC
3
+ *
4
+ * This source code is licensed under the ISC license.
5
+ * See the LICENSE file in the root directory of this source tree.
6
+ */const Je=[["path",{d:"M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1",key:"ezmyqa"}],["path",{d:"M16 21h1a2 2 0 0 0 2-2v-5c0-1.1.9-2 2-2a2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1",key:"e1hn23"}]],Ge=H("braces",Je);/**
7
+ * @license lucide-react v0.563.0 - ISC
8
+ *
9
+ * This source code is licensed under the ISC license.
10
+ * See the LICENSE file in the root directory of this source tree.
11
+ */const Ze=[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],Ye=H("eye",Ze);/**
12
+ * @license lucide-react v0.563.0 - ISC
13
+ *
14
+ * This source code is licensed under the ISC license.
15
+ * See the LICENSE file in the root directory of this source tree.
16
+ */const et=[["path",{d:"M9 17H7A5 5 0 0 1 7 7h2",key:"8i5ue5"}],["path",{d:"M15 7h2a5 5 0 1 1 0 10h-2",key:"1b9ql8"}],["line",{x1:"8",x2:"16",y1:"12",y2:"12",key:"1jonct"}]],tt=H("link-2",et);/**
17
+ * @license lucide-react v0.563.0 - ISC
18
+ *
19
+ * This source code is licensed under the ISC license.
20
+ * See the LICENSE file in the root directory of this source tree.
21
+ */const nt=[["path",{d:"M21 12a9 9 0 0 0-9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"14sxne"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}],["path",{d:"M3 12a9 9 0 0 0 9 9 9.75 9.75 0 0 0 6.74-2.74L21 16",key:"1hlbsb"}],["path",{d:"M16 16h5v5",key:"ccwih5"}]],rt=H("refresh-ccw",nt);function pe(e){return e instanceof Error?/HTTP (404|405|501|503)\b|Failed to fetch|NetworkError/i.test(e.message):!1}const R={id:"agent_id",name:"에이전트 이름",role:"에이전트 역할",team:"팀",description:"에이전트 설명"};function st(e){return{id:e.id.trim()||R.id,name:e.name.trim()||R.name,role:e.role.trim()||R.role,team:e.team.trim()||R.team,description:e.description.trim()||R.description}}function at(e,s,n){let t=!1;return e.state.doc.descendants(o=>o.type.name==="documentBlock"&&o.attrs.key===s&&o.attrs.variant===n?(t=!0,!1):!t),t}const me=["[&_h1]:mt-0","[&_h1]:mb-3","[&_h1]:text-2xl","[&_h1]:font-bold","[&_h2]:mt-0","[&_h2]:mb-2","[&_h2]:text-xl","[&_h2]:font-semibold","[&_h3]:mt-0","[&_h3]:mb-2","[&_h3]:text-lg","[&_h3]:font-semibold","[&_p]:my-2","[&_p]:leading-7","[&_ul]:my-2","[&_ol]:my-2","[&_ul]:list-disc","[&_ol]:list-decimal","[&_ul]:pl-6","[&_ol]:pl-6","[&_li]:my-1","[&_blockquote]:my-3","[&_blockquote]:border-l-4","[&_blockquote]:border-gray-300","[&_blockquote]:pl-4","[&_blockquote]:text-gray-600","[&_blockquote]:italic","[&_blockquote_p]:my-0","[&_a]:text-blue-600","[&_a]:underline","[&_hr]:my-4","[&_hr]:border-gray-300","[&_code]:rounded","[&_code]:bg-gray-100","[&_code]:px-1.5","[&_code]:py-0.5","[&_code]:font-mono","[&_code]:text-[13px]","[&_pre]:my-3","[&_pre]:overflow-x-auto","[&_pre]:rounded-lg","[&_pre]:bg-gray-900","[&_pre]:p-4","[&_pre]:text-sm","[&_pre]:text-gray-100","[&_pre_code]:bg-transparent","[&_pre_code]:p-0","[&_pre_code]:text-inherit"].join(" "),ot=["min-h-[420px]","rounded-xl","border","border-gray-200","bg-white","px-4","py-3","text-sm","text-gray-900","shadow-sm","focus:outline-none","prose","prose-sm","max-w-none",me,"[&_.is-editor-empty:first-child::before]:pointer-events-none","[&_.is-editor-empty:first-child::before]:float-left","[&_.is-editor-empty:first-child::before]:h-0","[&_.is-editor-empty:first-child::before]:text-gray-400","[&_.is-editor-empty:first-child::before]:content-[attr(data-placeholder)]"].join(" ");function it({open:e,request:s,onClose:n}){const{t}=B(),o=d.useRef(null),u=d.useRef(s),[c,p]=d.useState(""),[f,g]=d.useState(!1),[i,b]=d.useState(null),[x,v]=d.useState(!1),j=t("agent.prompt.preview.error");u.current=s;const m=async()=>{var y;if((y=o.current)==null||y.abort(),!u.current.template.trim()){p(""),b(null),v(!1),g(!1);return}const l=new AbortController;o.current=l,g(!0),b(null),v(!1);try{const k=await F.previewPrompt(u.current,{signal:l.signal});if(l.signal.aborted)return;p(k.rendered),b(null),v(!1)}catch(k){if(l.signal.aborted)return;if(pe(k)){p(""),b(null),v(!0);return}p(""),v(!1),b(k instanceof Error?k.message:j)}finally{o.current===l&&(o.current=null),g(!1)}};return d.useEffect(()=>{var l;if(!e){(l=o.current)==null||l.abort();return}m()},[e]),d.useEffect(()=>{if(!e)return;const l=y=>{y.key==="Escape"&&(y.preventDefault(),n())};return window.addEventListener("keydown",l),()=>{window.removeEventListener("keydown",l)}},[n,e]),d.useEffect(()=>()=>{var l;(l=o.current)==null||l.abort()},[]),e?r.jsx("div",{"data-testid":"preview-modal-backdrop",className:"fixed inset-0 z-50 flex items-center justify-center bg-black/40 p-4",onClick:n,children:r.jsxs("div",{role:"dialog","aria-modal":"true","data-testid":"preview-modal",onClick:l=>l.stopPropagation(),className:"flex max-h-[85vh] w-full max-w-4xl flex-col overflow-hidden rounded-2xl border border-gray-200 bg-white shadow-xl",children:[r.jsxs("div",{className:"flex items-start justify-between gap-4 border-b border-gray-200 px-6 py-5",children:[r.jsx("div",{children:r.jsx("h2",{className:"text-lg font-semibold text-gray-900",children:t("agent.prompt.preview.title")})}),r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsxs("button",{type:"button",onClick:()=>{m()},disabled:f,className:"inline-flex items-center gap-2 rounded-lg bg-gray-100 px-4 py-2 text-sm font-medium text-gray-700 transition-colors hover:bg-gray-200 disabled:cursor-not-allowed disabled:opacity-50",children:[r.jsx(rt,{size:14,className:f?"animate-spin":""}),t("agent.prompt.preview.refresh")]}),r.jsxs("button",{type:"button",onClick:n,className:"inline-flex items-center gap-2 rounded-lg bg-gray-100 px-4 py-2 text-sm font-medium text-gray-700 transition-colors hover:bg-gray-200",children:[r.jsx(ve,{size:14}),t("common.close")]})]})]}),r.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto px-6 py-5",children:s.template.trim()?f?r.jsxs("div",{className:"flex items-center gap-2 text-sm text-gray-500",children:[r.jsx(J,{size:16,className:"animate-spin"}),r.jsx("span",{children:t("agent.prompt.preview.loading")})]}):x?r.jsx("div",{className:"text-sm text-gray-500",children:t("agent.prompt.preview.unavailable")}):i?r.jsxs("div",{className:"space-y-2",children:[r.jsx("div",{className:"text-sm font-medium text-red-600",children:t("agent.prompt.preview.error")}),r.jsx("div",{className:"text-sm text-red-500",children:i})]}):r.jsx(ke,{content:c,className:me}):r.jsx("div",{className:"text-sm text-gray-500",children:t("agent.prompt.preview.empty")})}),r.jsxs("div",{className:"flex justify-end gap-2 border-t border-gray-200 px-6 py-4",children:[r.jsxs("button",{type:"button",onClick:()=>{var l;return void((l=navigator.clipboard)==null?void 0:l.writeText(c))},disabled:!c,className:"inline-flex items-center gap-2 rounded-lg bg-gray-100 px-4 py-2 text-sm font-medium text-gray-700 transition-colors hover:bg-gray-200 disabled:cursor-not-allowed disabled:opacity-50",children:[r.jsx(we,{size:14}),t("agent.prompt.preview.copy")]}),r.jsx("button",{type:"button",onClick:n,className:"rounded-lg bg-blue-500 px-4 py-2 text-sm font-medium text-white transition-colors hover:bg-blue-600",children:t("common.close")})]})]})}):null}function lt({trigger:e,items:s,searchable:n=!1,searchPlaceholder:t,emptyLabel:o}){const u=d.useRef(null),c=d.useRef(null),[p,f]=d.useState(!1),[g,i]=d.useState(""),[b,x]=d.useState(0),v=d.useMemo(()=>{const l=g.trim().toLowerCase();return l?s.filter(y=>y.label.toLowerCase().includes(l)?!0:y.actions.some(k=>k.label.toLowerCase().includes(l))):s},[s,g]),j=d.useMemo(()=>v.flatMap(l=>l.actions.map(y=>({itemLabel:l.label,actionLabel:y.label,onClick:y.onClick}))),[v]);d.useEffect(()=>{var l;if(!p){i(""),x(0);return}n&&((l=c.current)==null||l.focus())},[p,n]),d.useEffect(()=>{b<j.length||x(Math.max(j.length-1,0))},[j.length,b]),d.useEffect(()=>{if(!p)return;const l=k=>{var _;(_=u.current)!=null&&_.contains(k.target)||f(!1)},y=k=>{var _;if(k.key==="Escape"){k.preventDefault(),f(!1);return}if(j.length!==0){if(k.key==="ArrowDown"){k.preventDefault(),x(M=>(M+1)%j.length);return}if(k.key==="ArrowUp"){k.preventDefault(),x(M=>(M-1+j.length)%j.length);return}k.key==="Enter"&&(k.preventDefault(),(_=j[b])==null||_.onClick(),f(!1))}};return window.addEventListener("mousedown",l),window.addEventListener("keydown",y),()=>{window.removeEventListener("mousedown",l),window.removeEventListener("keydown",y)}},[j,b,p]);let m=-1;return r.jsxs("div",{ref:u,className:"relative",children:[r.jsxs("button",{type:"button",onMouseDown:l=>l.preventDefault(),onClick:()=>f(l=>!l),className:"inline-flex items-center gap-1 rounded-md border border-gray-200 bg-white px-2.5 py-1.5 text-xs font-medium text-gray-700 transition hover:border-gray-300 hover:bg-gray-100",children:[r.jsx("span",{children:e}),r.jsx(ce,{size:14})]}),p?r.jsxs("div",{className:"absolute left-0 top-[calc(100%+0.5rem)] z-20 w-72 rounded-xl border border-gray-200 bg-white p-2 shadow-lg",children:[n?r.jsxs("label",{className:"mb-2 flex items-center gap-2 rounded-lg border border-gray-200 bg-gray-50 px-3 py-2 text-xs text-gray-500",children:[r.jsx(de,{size:14}),r.jsx("input",{ref:c,value:g,onChange:l=>{i(l.target.value),x(0)},className:"w-full bg-transparent text-sm text-gray-700 outline-none","aria-label":t,placeholder:t})]}):null,r.jsx("div",{className:"max-h-80 space-y-1 overflow-y-auto",children:v.length===0?r.jsx("div",{className:"rounded-lg px-3 py-2 text-sm text-gray-500",children:o??""}):v.map(l=>r.jsxs("div",{className:"rounded-lg border border-gray-100 px-3 py-2",children:[r.jsx("div",{className:"text-sm font-medium text-gray-900",children:l.label}),l.actions.length>0?r.jsx("div",{className:"mt-2 flex flex-wrap gap-2",children:l.actions.map(y=>{m+=1;const k=m===b;return r.jsx("button",{type:"button",onMouseDown:_=>_.preventDefault(),onClick:()=>{y.onClick(),f(!1)},className:`rounded-md px-2.5 py-1 text-xs font-medium transition ${k?"bg-blue-500 text-white":"border border-gray-200 bg-white text-gray-700 hover:border-gray-300 hover:bg-gray-100"}`,children:y.label},`${l.label}-${y.label}`)})}):r.jsx("div",{className:"mt-1 text-xs text-gray-500",children:o??l.label})]},l.label))})]}):null]})}function te(e){return e.replace(/\\/g,"/").replace(/^\.?\//,"")}function V(e,s){return(e??"").toLowerCase().includes(s)}function fe(e,s){if(!s)return{nodes:e,autoExpanded:new Set};const n=new Set;return{nodes:e.flatMap(o=>{const u=V(o.name,s)||V(o.path,s);if(o.type==="file")return u?[o]:[];const c=fe(o.children??[],s);return u||c.nodes.length>0?(n.add(o.path),c.autoExpanded.forEach(p=>n.add(p)),[{...o,children:u?o.children:c.nodes}]):[]}),autoExpanded:n}}function ct({documents:e,documentsLoading:s,documentsError:n,documentsUnavailable:t,onInsertDocument:o,onRefetchDocuments:u}){const{t:c}=B(),p=d.useRef(null),f=d.useRef(null),[g,i]=d.useState(!1),[b,x]=d.useState(""),[v,j]=d.useState([]),[m,l]=d.useState(!1),[y,k]=d.useState(null),[_,M]=d.useState(new Set),[a,w]=d.useState(!1),[C,D]=d.useState(null);d.useEffect(()=>{var N;if(!g||((N=f.current)==null||N.focus(),v.length>0||m))return;let h=!1;return(async()=>{l(!0),k(null);try{const S=await F.getDocTree();h||j(S)}catch(S){h||k(S instanceof Error?S.message:c("agent.prompt.documentPicker.treeError"))}finally{h||l(!1)}})(),()=>{h=!0}},[g,v.length]),d.useEffect(()=>{g||(x(h=>h&&""),M(h=>h.size>0?new Set:h))},[g]),d.useEffect(()=>{if(!g)return;const h=N=>{var S;(S=p.current)!=null&&S.contains(N.target)||i(!1)},L=N=>{N.key==="Escape"&&(N.preventDefault(),i(!1))};return window.addEventListener("mousedown",h),window.addEventListener("keydown",L),()=>{window.removeEventListener("mousedown",h),window.removeEventListener("keydown",L)}},[g]);const E=b.trim().toLowerCase(),T=d.useMemo(()=>e.filter(h=>h.type==="inline"),[e]),z=d.useMemo(()=>{const h=e.filter(L=>L.type==="file"&&L.path);return L=>{const N=te(L),S=h.find(ye=>te(ye.path??"")===N);return S==null?void 0:S.key}},[e]),$=d.useMemo(()=>E?T.filter(h=>V(h.key,E)||V(h.summary,E)):T,[T,E]),P=d.useMemo(()=>fe(v,E),[E,v]),xe=d.useMemo(()=>{if(!E)return _;const h=new Set(_);return P.autoExpanded.forEach(L=>h.add(L)),h},[_,P.autoExpanded,E]),K=h=>{o(h,"content"),i(!1)},be=async h=>{D(null);const L=z(h);if(L){K(L);return}try{w(!0);const N=await F.registerDocument({path:h});K(N.key),u==null||u()}catch(N){D(N instanceof Error?N.message:c("agent.prompt.documentPicker.registerError"))}finally{w(!1)}},Z=s||n||t||$.length>0,Y=m||y||P.nodes.length>0;return r.jsxs("div",{ref:p,className:"relative",children:[r.jsxs("button",{type:"button",onMouseDown:h=>h.preventDefault(),onClick:()=>i(h=>!h),className:"inline-flex items-center gap-1 rounded-md border border-gray-200 bg-white px-2.5 py-1.5 text-xs font-medium text-gray-700 transition hover:border-gray-300 hover:bg-gray-100","aria-label":c("agent.prompt.documentInsert"),children:[r.jsxs("span",{className:"inline-flex items-center gap-1.5",children:[r.jsx(U,{className:"h-4 w-4"}),r.jsx("span",{children:c("agent.prompt.documentInsert")})]}),r.jsx(ce,{size:14})]}),g?r.jsxs("div",{className:"absolute left-0 top-[calc(100%+0.5rem)] z-20 w-80 rounded-xl border border-gray-200 bg-white p-2 shadow-lg","data-testid":"document-picker-popover",children:[r.jsxs("label",{className:"mb-2 flex items-center gap-2 rounded-lg border border-gray-200 bg-gray-50 px-3 py-2 text-xs text-gray-500",children:[r.jsx(de,{size:14}),r.jsx("input",{ref:f,value:b,onChange:h=>x(h.target.value),className:"w-full bg-transparent text-sm text-gray-700 outline-none","aria-label":c("agent.prompt.documentPicker.searchPlaceholder"),placeholder:c("agent.prompt.documentPicker.searchPlaceholder")})]}),r.jsxs("div",{className:"max-h-96 space-y-3 overflow-y-auto",children:[Z?r.jsxs("section",{children:[r.jsxs("div",{className:"mb-1 flex items-center gap-2 px-2 py-1 text-xs font-semibold uppercase tracking-wide text-gray-400",children:[r.jsx(je,{className:"h-3.5 w-3.5"}),r.jsx("span",{children:c("agent.prompt.documentPicker.inlineSection")})]}),s?r.jsx("div",{className:"rounded-lg px-3 py-2 text-sm text-gray-500",children:c("agent.prompt.documentInsertLoading")}):n?r.jsx("div",{className:"rounded-lg px-3 py-2 text-sm text-red-500",children:n}):t?r.jsx("div",{className:"rounded-lg px-3 py-2 text-sm text-gray-500",children:c("agent.prompt.documentInsertUnavailable")}):$.length===0?r.jsx("div",{className:"rounded-lg px-3 py-2 text-sm text-gray-500",children:c("agent.prompt.documentPicker.noInlineResults")}):r.jsx("div",{className:"space-y-1",children:$.map(h=>r.jsxs("button",{type:"button",onMouseDown:L=>L.preventDefault(),onClick:()=>K(h.key),className:"flex w-full items-center gap-2 rounded-lg px-3 py-2 text-left text-sm text-gray-700 transition hover:bg-gray-100",children:[r.jsx(U,{className:"h-4 w-4 shrink-0 text-gray-400"}),r.jsx("span",{className:"truncate",children:h.key})]},h.key))})]}):null,Y?r.jsxs("section",{children:[r.jsxs("div",{className:"mb-1 flex items-center gap-2 px-2 py-1 text-xs font-semibold uppercase tracking-wide text-gray-400",children:[r.jsx(U,{className:"h-3.5 w-3.5"}),r.jsx("span",{children:c("agent.prompt.documentPicker.docsSection")})]}),m?r.jsxs("div",{className:"flex items-center gap-2 rounded-lg px-3 py-2 text-sm text-gray-500",children:[r.jsx(J,{className:"h-4 w-4 animate-spin"}),r.jsx("span",{children:c("agent.prompt.documentPicker.treeLoading")})]}):y?r.jsx("div",{className:"rounded-lg px-3 py-2 text-sm text-red-500",children:y}):P.nodes.length===0?r.jsx("div",{className:"rounded-lg px-3 py-2 text-sm text-gray-500",children:c("agent.prompt.documentPicker.noTreeResults")}):r.jsxs(r.Fragment,{children:[r.jsx(Ne,{nodes:P.nodes,expandedFolders:xe,onToggle:h=>M(L=>{const N=new Set(L);return N.has(h)?N.delete(h):N.add(h),N}),onSelect:h=>{a||be(h)},selectedPath:null,isFileDisabled:()=>a,renderFileSuffix:h=>z(h.path)?r.jsx(tt,{className:"h-3.5 w-3.5 shrink-0 text-blue-500","aria-label":c("agent.prompt.documentPicker.linked")}):a?r.jsx(J,{className:"h-3.5 w-3.5 shrink-0 animate-spin text-gray-400"}):null}),C?r.jsx("div",{className:"mt-1 rounded-lg px-3 py-2 text-sm text-red-500",role:"alert",children:C}):null]})]}):null,!Z&&!Y?r.jsx("div",{className:"rounded-lg px-3 py-2 text-sm text-gray-500",children:c("agent.prompt.documentInsertEmpty")}):null]})]}):null]})}function dt({deleteNode:e,extension:s,node:n,updateAttributes:t}){const{t:o}=B(),u=d.useRef(null),[c,p]=d.useState(!1),f=String(n.attrs.key??""),g=String(n.attrs.variant??"content"),i=s.options.getVariantLabel;d.useEffect(()=>{if(!c)return;const x=j=>{var m;(m=u.current)!=null&&m.contains(j.target)||p(!1)},v=j=>{j.key==="Escape"&&(j.preventDefault(),p(!1))};return window.addEventListener("mousedown",x),window.addEventListener("keydown",v),()=>{window.removeEventListener("mousedown",x),window.removeEventListener("keydown",v)}},[c]);const b=[{value:"content",label:i("content")},{value:"toc",label:i("toc")}];return r.jsxs(Ce,{as:"span",ref:u,className:"relative inline-flex","data-testid":"document-block-node",children:[r.jsx("button",{type:"button","data-testid":"document-block-trigger",onMouseDown:x=>x.preventDefault(),onClick:()=>p(x=>!x),className:"inline-flex items-center rounded-lg border border-amber-200 bg-amber-50 px-2 py-0.5 text-xs font-medium text-amber-700",children:`📄 ${f} · ${i(g)}`}),c?r.jsxs("span",{className:"absolute left-0 top-[calc(100%+0.375rem)] z-20 min-w-32 rounded-lg border border-gray-200 bg-white p-1 shadow-lg","data-testid":"document-block-popover",children:[b.map(x=>{const v=x.value===g;return r.jsxs("button",{type:"button","data-testid":`document-block-option-${x.value}`,onMouseDown:j=>j.preventDefault(),onClick:()=>{t({variant:x.value}),p(!1)},className:"flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-left text-sm text-gray-700 transition hover:bg-gray-100",children:[r.jsx("span",{className:"inline-flex h-4 w-4 items-center justify-center",children:v?r.jsx(Le,{className:"h-4 w-4 text-blue-500"}):null}),r.jsx("span",{children:x.label})]},x.value)}),r.jsx("div",{className:"my-1 border-t border-gray-100"}),r.jsxs("button",{type:"button","data-testid":"document-block-delete",onMouseDown:x=>x.preventDefault(),onClick:()=>{e(),p(!1)},className:"flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-left text-sm text-red-600 transition hover:bg-red-50",children:[r.jsx(_e,{className:"h-4 w-4"}),r.jsx("span",{children:o("agent.prompt.documentChip.delete")})]})]}):null]})}const ut=ue.create({name:"documentBlock",addOptions(){return{getVariantLabel:e=>String(e)}},inline:!0,group:"inline",atom:!0,draggable:!0,selectable:!0,addAttributes(){return{key:{default:""},variant:{default:"content"}}},parseHTML(){return[{tag:"span[data-doc-block]"}]},renderHTML({HTMLAttributes:e,node:s}){const n=String(s.attrs.key??""),t=String(s.attrs.variant??"content"),o=this.options.getVariantLabel(t);return["span",Se(e,{"data-doc-block":"true","data-key":n,"data-variant":t,"data-testid":"document-block",class:"inline-flex items-center rounded-lg border border-amber-200 bg-amber-50 px-2 py-0.5 text-xs font-medium text-amber-700"}),`📄 ${n} · ${o}`]},addNodeView(){return Ee(dt)}}),pt=De.extend({name:"variableMention",addAttributes(){return{variable:{default:"",parseHTML:e=>e.getAttribute("data-variable")??"",renderHTML:e=>({"data-variable":e.variable})}}},renderText({node:e}){return`{{${String(e.attrs.variable??"")}}}`},renderHTML({node:e,HTMLAttributes:s}){return["span",{...s,class:"inline-flex items-center rounded-full bg-blue-500 px-2 py-0.5 text-xs font-semibold text-white","data-testid":"variable-chip"},String(e.attrs.variable??"")]}}),he=["agent.id","agent.name","agent.role","agent.team","agent.description"],ne=["bold","italic","strike","code"],re={bold:{open:"**",close:"**"},italic:{open:"*",close:"*"},strike:{open:"~~",close:"~~"},code:{open:"`",close:"`"}};function mt(e){return he.includes(e)}function ge(e,s){return s&&s.length>0?{type:"text",text:e,marks:s}:{type:"text",text:e}}function Q(e,s,n){if(!s)return;const t=e[e.length-1],o=JSON.stringify(n??[]),u=JSON.stringify((t==null?void 0:t.marks)??[]);if((t==null?void 0:t.type)==="text"&&o===u){t.text=`${t.text??""}${s}`;return}e.push(ge(s,n))}function O(e,...s){return e.map(n=>{if(n.type!=="text")return n;const t=new Set((n.marks??[]).map(u=>u.type)),o=s.filter(u=>!t.has(u)).map(u=>({type:u}));return{...n,marks:[...n.marks??[],...o]}})}function ft(e){const s=e.match(/^\{\{(agent\.(?:id|name|role|team|description))\}\}$/);return!s||!mt(s[1])?null:{type:"variableMention",attrs:{variable:s[1]}}}function G(e){const s=e.match(/^\{\{\{documents\.([^.\s}]+)\.(content|toc)\}\}\}$/);return s?{type:"documentBlock",attrs:{key:s[1],variant:s[2]}}:null}function ht(e,s){const n=e[s].match(/^<document\b[^>]*>\s*(\{\{\{documents\.([^.\s}]+)\.(content|toc)\}\}\})\s*<\/document>\s*$/);if(n){const f=G(n[1]);if(f)return{node:{type:"paragraph",content:[f]},nextIndex:s+1}}if(!/^<document\b[^>]*>\s*$/.test(e[s]??""))return null;let t=s+1;for(;t<e.length&&(e[t]??"").trim()==="";)t+=1;const u=(e[t]??"").trim();for(t+=1;t<e.length&&(e[t]??"").trim()==="";)t+=1;if((e[t]??"").trim()!=="</document>")return null;const p=G(u);return p?{node:{type:"paragraph",content:[p]},nextIndex:t+1}:null}function W(e,s,n,t){return e.startsWith(s,t)?e.indexOf(n,t+s.length):-1}function gt(e,s){const n=[e.indexOf("{{{documents.",s),e.indexOf("{{agent.",s),e.indexOf("**",s),e.indexOf("~~",s),e.indexOf("`",s),e.indexOf("*",s)].filter(t=>t>=0);return n.length>0?Math.min(...n):-1}function A(e,s=!1){const n=[];let t=0;for(;t<e.length;){const o=W(e,"***","***",t);if(o>t){const i=e.slice(t+3,o);n.push(...O(A(i,s),"bold","italic")),t=o+3;continue}if(!s&&e.startsWith("{{{documents.",t)){const i=e.indexOf("}}}",t);if(i>t){const b=e.slice(t,i+3),x=G(b);if(x){n.push(x),t=i+3;continue}}}if(!s&&e.startsWith("{{agent.",t)){const i=e.indexOf("}}",t);if(i>t){const b=e.slice(t,i+2),x=ft(b);if(x){n.push(x),t=i+2;continue}}}const u=W(e,"**","**",t);if(u>t){const i=e.slice(t+2,u);n.push(...O(A(i,s),"bold")),t=u+2;continue}const c=W(e,"~~","~~",t);if(c>t){const i=e.slice(t+2,c);n.push(...O(A(i,s),"strike")),t=c+2;continue}const p=e[t]==="*"&&!e.startsWith("**",t)?e.indexOf("*",t+1):-1;if(p>t){const i=e.slice(t+1,p);n.push(...O(A(i,s),"italic")),t=p+1;continue}if(e[t]==="`"){const i=e.indexOf("`",t+1);if(i>t){Q(n,e.slice(t+1,i),[{type:"code"}]),t=i+1;continue}}const f=gt(e,t),g=f>=0?f:e.length;if(g===t){Q(n,e[t]),t+=1;continue}Q(n,e.slice(t,g)),t=g}return n}function xt(e){const s=e.split(`
22
+ `),n=[];return s.forEach((t,o)=>{n.push(...A(t)),o<s.length-1&&n.push({type:"hardBreak"})}),{type:"paragraph",content:n}}function se(e,s){const n=s?"orderedList":"bulletList",t=s?/^\d+\.\s+/:/^[-*]\s+/;return{type:n,content:e.map(o=>({type:"listItem",content:[{type:"paragraph",content:A(o.replace(t,""))}]}))}}function bt(e){return/^#{1,3}\s+/.test(e)||/^```/.test(e)||/^---+$/.test(e)||/^[-*]\s+/.test(e)||/^\d+\.\s+/.test(e)}function yt(e){const s=new Set((e??[]).map(n=>n.type).filter(n=>ne.includes(n)));return ne.filter(n=>s.has(n))}function vt(e,s){let n=0;for(;n<e.length&&n<s.length&&e[n]===s[n];)n+=1;return n}function ae(e){return e.replace(/&/g,"&amp;").replace(/"/g,"&quot;").trim()}function kt(e,s,n){var t,o,u,c;if(e.type==="hardBreak")return`
23
+ `;if(e.type==="variableMention"){const p=String(((t=e.attrs)==null?void 0:t.variable)??"");return s==="preview"?`**{{${p}}}**`:`{{${p}}}`}if(e.type==="documentBlock"){const p=String(((o=e.attrs)==null?void 0:o.key)??""),f=String(((u=e.attrs)==null?void 0:u.variant)??"content"),g=`{{{documents.${p}.${f}}}}`,i=((c=n==null?void 0:n.getDocumentMeta)==null?void 0:c.call(n,p))??{name:p},b=[`name="${ae(i.name)}"`];return i.path&&b.push(`path="${ae(i.path)}"`),b.push(`type="${f}"`),`<document ${b.join(" ")}>
24
+
25
+ ${g}
26
+
27
+ </document>`}return I(e.content,s,n)}function I(e,s,n){let t="",o=[];const u=c=>{const p=vt(o,c);for(let f=o.length-1;f>=p;f-=1)t+=re[o[f]].close;for(let f=p;f<c.length;f+=1)t+=re[c[f]].open;o=c};for(const c of e??[]){if(c.type==="text"){u(yt(c.marks)),t+=c.text??"";continue}u([]),t+=kt(c,s,n)}return u([]),t}function X(e){const s=e.replace(/\r\n?/g,`
28
+ `);if(!s.trim())return{type:"doc",content:[]};const n=s.split(`
29
+ `),t=[];let o=0;for(;o<n.length;){const u=n[o];if(!u.trim()){o+=1;continue}const c=ht(n,o);if(c){t.push(c.node),o=c.nextIndex;continue}const p=u.match(/^```(\S+)?\s*$/);if(p){const i=p[1]??null,b=[];for(o+=1;o<n.length&&!/^```/.test(n[o]);)b.push(n[o]),o+=1;o<n.length&&(o+=1),t.push({type:"codeBlock",attrs:i?{language:i}:{},content:[ge(b.join(`
30
+ `))]});continue}const f=u.match(/^(#{1,3})\s+(.*)$/);if(f){t.push({type:"heading",attrs:{level:f[1].length},content:A(f[2])}),o+=1;continue}if(/^---+$/.test(u)){t.push({type:"horizontalRule"}),o+=1;continue}if(/^[-*]\s+/.test(u)){const i=[];for(;o<n.length&&/^[-*]\s+/.test(n[o]);)i.push(n[o]),o+=1;t.push(se(i,!1));continue}if(/^\d+\.\s+/.test(u)){const i=[];for(;o<n.length&&/^\d+\.\s+/.test(n[o]);)i.push(n[o]),o+=1;t.push(se(i,!0));continue}const g=[u];for(o+=1;o<n.length&&n[o].trim()&&!bt(n[o]);)g.push(n[o]),o+=1;t.push(xt(g.join(`
31
+ `)))}return{type:"doc",content:t}}function wt(e,s,n){var t,o,u,c;switch(e.type){case"heading":{const p=Number(((t=e.attrs)==null?void 0:t.level)??1);return`${"#".repeat(Math.max(1,Math.min(3,p)))} ${I(e.content,s,n)}`}case"bulletList":return(e.content??[]).map(p=>{var f,g;return`- ${I((g=(f=p.content)==null?void 0:f[0])==null?void 0:g.content,s,n)}`}).join(`
32
+ `);case"orderedList":return(e.content??[]).map((p,f)=>{var g,i;return`${f+1}. ${I((i=(g=p.content)==null?void 0:g[0])==null?void 0:i.content,s,n)}`}).join(`
33
+ `);case"codeBlock":{const p=typeof((o=e.attrs)==null?void 0:o.language)=="string"?e.attrs.language:"",f=((c=(u=e.content)==null?void 0:u[0])==null?void 0:c.text)??"";return`\`\`\`${p}
34
+ ${f}
35
+ \`\`\``}case"horizontalRule":return"---";case"paragraph":return I(e.content,s,n);default:return I(e.content,s,n)}}function oe(e,s){return(e.content??[]).map(n=>wt(n,"hbs",s)).join(`
36
+
37
+ `)}function jt(e){return/\{\{agent\.(?:id|name|role|team|description)\}\}|\{\{\{documents\.[^.\s}]+\.(?:content|toc)\}\}\}|<document\b[^>]*>/.test(e)}function Nt(e,s){return{type:"documentBlock",attrs:{key:e,variant:s}}}function ie(e){return{type:"variableMention",attrs:{variable:e}}}function q(e){return!e.isActive("codeBlock")&&!e.isActive("code")}function le(e,s,n){return q(e)?at(e,s,n)?!1:(e.chain().focus().insertContent(Nt(s,n)).run(),!0):(e.chain().focus().insertContent(`{{{documents.${s}.${n}}}}`).run(),!0)}const Ct=d.forwardRef(function({value:s,onChange:n,documents:t,documentsLoading:o,documentsError:u,documentsUnavailable:c,onPreview:p,onRefetchDocuments:f},g){const{t:i}=B(),b=d.useRef(null),x=d.useMemo(()=>({content:i("agent.prompt.variantContent"),toc:i("agent.prompt.variantToc")}),[i]),v=d.useMemo(()=>a=>{var C;const w=t.find(D=>D.key===a);if((w==null?void 0:w.type)==="file"&&w.path){const D=w.path.split("/").filter(Boolean);return{name:D[D.length-1]??a,path:w.path}}return{name:((C=w==null?void 0:w.summary)==null?void 0:C.trim())||a}},[t]),j=d.useMemo(()=>[{key:"headings",buttons:[{key:"h1",label:i("agent.prompt.toolbar.h1"),icon:Me,shortcut:"Cmd+Alt+1",action:a=>{a.chain().focus().toggleHeading({level:1}).run()},isActive:a=>a.isActive("heading",{level:1})},{key:"h2",label:i("agent.prompt.toolbar.h2"),icon:Ae,shortcut:"Cmd+Alt+2",action:a=>{a.chain().focus().toggleHeading({level:2}).run()},isActive:a=>a.isActive("heading",{level:2})},{key:"h3",label:i("agent.prompt.toolbar.h3"),icon:Te,shortcut:"Cmd+Alt+3",action:a=>{a.chain().focus().toggleHeading({level:3}).run()},isActive:a=>a.isActive("heading",{level:3})}]},{key:"text",buttons:[{key:"bold",label:i("agent.prompt.toolbar.bold"),icon:$e,shortcut:"Cmd+B",action:a=>{a.chain().focus().toggleBold().run()},isActive:a=>a.isActive("bold")},{key:"italic",label:i("agent.prompt.toolbar.italic"),icon:Ie,shortcut:"Cmd+I",action:a=>{a.chain().focus().toggleItalic().run()},isActive:a=>a.isActive("italic")},{key:"strike",label:i("agent.prompt.toolbar.strike"),icon:Pe,shortcut:"Cmd+Shift+S",action:a=>{a.chain().focus().toggleStrike().run()},isActive:a=>a.isActive("strike")}]},{key:"lists",buttons:[{key:"bulletList",label:i("agent.prompt.toolbar.bulletList"),icon:Re,shortcut:"Cmd+Shift+8",action:a=>{a.chain().focus().toggleBulletList().run()},isActive:a=>a.isActive("bulletList")},{key:"orderedList",label:i("agent.prompt.toolbar.orderedList"),icon:Be,shortcut:"Cmd+Shift+7",action:a=>{a.chain().focus().toggleOrderedList().run()},isActive:a=>a.isActive("orderedList")},{key:"blockquote",label:i("agent.prompt.toolbar.blockquote"),icon:ze,shortcut:"Cmd+Shift+B",action:a=>{a.chain().focus().toggleBlockquote().run()},isActive:a=>a.isActive("blockquote")}]},{key:"code",buttons:[{key:"code",label:i("agent.prompt.toolbar.code"),icon:Oe,shortcut:"Cmd+E",action:a=>{a.chain().focus().toggleCode().run()},isActive:a=>a.isActive("code")},{key:"codeBlock",label:i("agent.prompt.toolbar.codeBlock"),icon:qe,shortcut:"Cmd+Alt+C",action:a=>{a.chain().focus().toggleCodeBlock().run()},isActive:a=>a.isActive("codeBlock")},{key:"horizontalRule",label:i("agent.prompt.toolbar.horizontalRule"),icon:Fe,shortcut:"Cmd+Alt+-",action:a=>{a.chain().focus().setHorizontalRule().run()}}]},{key:"history",buttons:[{key:"undo",label:i("agent.prompt.toolbar.undo"),icon:Ve,shortcut:"Cmd+Z",action:a=>{a.chain().focus().undo().run()},isDisabled:a=>!a.can().chain().focus().undo().run()},{key:"redo",label:i("agent.prompt.toolbar.redo"),icon:He,shortcut:"Cmd+Shift+Z",action:a=>{a.chain().focus().redo().run()},isDisabled:a=>!a.can().chain().focus().redo().run()}]}],[i]),m=Ke({immediatelyRender:!1,extensions:[Ue.configure({heading:{levels:[1,2,3]}}),Qe.configure({placeholder:i("agent.prompt.placeholder")}),pt.configure({HTMLAttributes:{class:"inline-flex items-center rounded-full bg-blue-500 px-2 py-0.5 text-xs font-semibold text-white"}}),ut.configure({getVariantLabel:a=>a==="toc"?x.toc:x.content}),ue.create({name:"fallbackInline",inline:!0,group:"inline"})],content:X(s),editorProps:{attributes:{class:ot,"data-testid":"prompt-editor-content","aria-label":i("agent.prompt.editorLabel"),role:"textbox"}},onUpdate({editor:a}){const w=oe(a.getJSON(),{getDocumentMeta:v});b.current=w,n(w)}}),l=We({editor:m,selector:({editor:a})=>a?{active:{h1:a.isActive("heading",{level:1}),h2:a.isActive("heading",{level:2}),h3:a.isActive("heading",{level:3}),bold:a.isActive("bold"),italic:a.isActive("italic"),strike:a.isActive("strike"),bulletList:a.isActive("bulletList"),orderedList:a.isActive("orderedList"),blockquote:a.isActive("blockquote"),code:a.isActive("code"),codeBlock:a.isActive("codeBlock")},disabled:{undo:!a.can().chain().focus().undo().run(),redo:!a.can().chain().focus().redo().run()}}:{active:{},disabled:{}}}),y=d.useMemo(()=>he.map(a=>({label:a,actions:[{label:i("agent.prompt.toolbar.insert"),onClick:()=>{if(m){if(q(m)){m.chain().focus().insertContent(ie(a)).run();return}m.chain().focus().insertContent(`{{${a}}}`).run()}}}]})),[m,i]);d.useEffect(()=>{if(!m)return;const a=oe(m.getJSON(),{getDocumentMeta:v});s===a||s===b.current||(m.commands.setContent(X(s)),b.current=s)},[m,v,s]),d.useImperativeHandle(g,()=>({insertVariable(a){if(m){if(q(m)){m.chain().focus().insertContent(ie(a)).run();return}m.chain().focus().insertContent(`{{${a}}}`).run()}},insertDocumentBlock(a,w){return m?le(m,a,w):!1},selectAll(){m==null||m.chain().focus().selectAll().run()}}),[m]);const k=a=>{if(!m||!q(m))return;const w=a.clipboardData.getData("text/plain");if(!w||!jt(w))return;a.preventDefault();const C=X(w);m.chain().focus().insertContent(C.content??[]).run()},_=a=>`${a.label} (${a.shortcut})`,M=(a,w)=>m?le(m,a,w):!1;return r.jsxs("section",{className:"rounded-xl border border-gray-200 bg-gray-50 p-4 shadow-sm",children:[r.jsxs("div",{className:"mb-4 flex flex-wrap items-center gap-2 rounded-xl border border-gray-200 bg-white p-2 shadow-sm",children:[j.map((a,w)=>r.jsxs("div",{className:"flex items-center gap-1",children:[w>0?r.jsx("div",{className:"mx-1 h-6 border-l border-gray-300","aria-hidden":"true"}):null,a.buttons.map(C=>{var $;const D=_(C),E=(l==null?void 0:l.active[C.key])??!1,T=m?((($=C.isDisabled)==null?void 0:$.call(C,m))??!1)||((l==null?void 0:l.disabled[C.key])??!1):!0,z=C.icon;return r.jsx("button",{type:"button",title:D,"aria-label":D,"data-testid":`prompt-toolbar-${C.key}`,disabled:T,onClick:()=>m&&C.action(m),className:`flex h-8 w-8 items-center justify-center rounded-md transition-colors ${E?"bg-gray-200 text-gray-900":"text-gray-600 hover:bg-gray-100 hover:text-gray-900"} ${T?"cursor-not-allowed opacity-40":""}`,children:r.jsx(z,{className:"h-4 w-4"})},C.key)})]},a.key)),r.jsxs("div",{className:"ml-auto flex flex-wrap items-center gap-2",children:[r.jsx("div",{className:"mx-1 h-6 border-l border-gray-300","aria-hidden":"true"}),r.jsx(lt,{trigger:r.jsxs("span",{className:"inline-flex items-center gap-1.5",children:[r.jsx(Ge,{className:"h-4 w-4"}),r.jsx("span",{children:i("agent.prompt.toolbar.variable")})]}),items:y,emptyLabel:i("agent.prompt.toolbar.empty")}),r.jsx(ct,{documents:t,documentsLoading:o,documentsError:u,documentsUnavailable:c,onInsertDocument:M,onRefetchDocuments:f}),r.jsx("button",{type:"button",title:`${i("agent.prompt.preview.button")} (Cmd+P)`,"aria-label":`${i("agent.prompt.preview.button")} (Cmd+P)`,"data-testid":"prompt-toolbar-preview",onClick:p,className:"flex h-8 w-8 items-center justify-center rounded-md text-gray-600 transition-colors hover:bg-gray-100 hover:text-gray-900",children:r.jsx(Ye,{className:"h-4 w-4"})})]})]}),r.jsx("div",{"data-testid":"prompt-editor",onPaste:k,children:r.jsx(Xe,{editor:m})})]})});function _t({previewAgentId:e=null}){const{t:s}=B(),n=ee(l=>l.form),t=ee(l=>l.setField),[o,u]=d.useState([]),[c,p]=d.useState(!0),[f,g]=d.useState(null),[i,b]=d.useState(!1),[x,v]=d.useState(!1),j=d.useMemo(()=>{const l=st(n);return{template:n.prompt,...e?{agentId:e}:{},context:{agent:l}}},[n,e]),m=d.useCallback(async()=>{p(!0),g(null),b(!1);try{const l=await F.getDocuments();u(l.documents)}catch(l){if(pe(l)){u([]),b(!0);return}g(l instanceof Error?l.message:s("agent.prompt.documentInsertError"))}finally{p(!1)}},[s]);return d.useEffect(()=>{m()},[m]),d.useEffect(()=>{const l=y=>{!(y.metaKey||y.ctrlKey)||y.key.toLowerCase()!=="p"||(y.preventDefault(),v(!0))};return window.addEventListener("keydown",l),()=>{window.removeEventListener("keydown",l)}},[]),r.jsxs("div",{className:"space-y-5",children:[r.jsxs("div",{children:[r.jsx("h2",{className:"text-base font-semibold text-gray-900",children:s("agent.section.promptTitle")}),r.jsx("p",{className:"mt-1 text-sm text-gray-500",children:s("agent.section.promptDescription")})]}),r.jsx("div",{className:"grid grid-cols-1 gap-5",children:r.jsx(Ct,{value:n.prompt,onChange:l=>t("prompt",l),documents:o,documentsLoading:c,documentsError:f,documentsUnavailable:i,onPreview:()=>v(!0),onRefetchDocuments:()=>void m()})}),r.jsx(it,{open:x,request:j,onClose:()=>v(!1)})]})}export{_t as default};
@@ -0,0 +1 @@
1
+ import{bN as S,cb as ln,aH as A,bL as P,aG as W,cc as gn,cd as dn,ce as hn,cf as z,cg as pn,ch as An,ci as m,bO as N,bT as U,bW as R,cj as _n,bR as cn,ck as on,cl as wn,aI as V,cm as On,cn as b}from"./main-2Ng-WP0F.js";var Pn="[object Symbol]";function x(n){return typeof n=="symbol"||S(n)&&ln(n)==Pn}function vn(n,r){for(var e=-1,i=n==null?0:n.length,f=Array(i);++e<i;)f[e]=r(n[e],e,n);return f}var B=P?P.prototype:void 0,H=B?B.toString:void 0;function k(n){if(typeof n=="string")return n;if(A(n))return vn(n,k)+"";if(x(n))return H?H.call(n):"";var r=n+"";return r=="0"&&1/n==-1/0?"-0":r}function yn(){}function En(n,r){for(var e=-1,i=n==null?0:n.length;++e<i&&r(n[e],e,n)!==!1;);return n}function Tn(n,r,e,i){for(var f=n.length,t=e+-1;++t<f;)if(r(n[t],t,n))return t;return-1}function Rn(n){return n!==n}function In(n,r,e){for(var i=e-1,f=n.length;++i<f;)if(n[i]===r)return i;return-1}function bn(n,r,e){return r===r?In(n,r,e):Tn(n,Rn,e)}function Ln(n,r){var e=n==null?0:n.length;return!!e&&bn(n,r,0)>-1}function M(n){return W(n)?gn(n):dn(n)}var Sn=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,xn=/^\w*$/;function $(n,r){if(A(n))return!1;var e=typeof n;return e=="number"||e=="symbol"||e=="boolean"||n==null||x(n)?!0:xn.test(n)||!Sn.test(n)||r!=null&&n in Object(r)}var Mn=500;function $n(n){var r=hn(n,function(i){return e.size===Mn&&e.clear(),i}),e=r.cache;return r}var Cn=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Gn=/\\(\\)?/g,Dn=$n(function(n){var r=[];return n.charCodeAt(0)===46&&r.push(""),n.replace(Cn,function(e,i,f,t){r.push(f?t.replace(Gn,"$1"):i||e)}),r});function Fn(n){return n==null?"":k(n)}function j(n,r){return A(n)?n:$(n,r)?[n]:Dn(Fn(n))}function I(n){if(typeof n=="string"||x(n))return n;var r=n+"";return r=="0"&&1/n==-1/0?"-0":r}function nn(n,r){r=j(r,n);for(var e=0,i=r.length;n!=null&&e<i;)n=n[I(r[e++])];return e&&e==i?n:void 0}function mn(n,r,e){var i=n==null?void 0:nn(n,r);return i===void 0?e:i}function rn(n,r){for(var e=-1,i=r.length,f=n.length;++e<i;)n[f+e]=r[e];return n}var K=P?P.isConcatSpreadable:void 0;function Nn(n){return A(n)||z(n)||!!(K&&n&&n[K])}function Kr(n,r,e,i,f){var t=-1,s=n.length;for(e||(e=Nn),f||(f=[]);++t<s;){var u=n[t];e(u)?rn(f,u):i||(f[f.length]=u)}return f}function Un(n,r,e,i){var f=-1,t=n==null?0:n.length;for(i&&t&&(e=n[++f]);++f<t;)e=r(e,n[f],f,n);return e}function en(n,r){for(var e=-1,i=n==null?0:n.length,f=0,t=[];++e<i;){var s=n[e];r(s,e,n)&&(t[f++]=s)}return t}function Bn(){return[]}var Hn=Object.prototype,Kn=Hn.propertyIsEnumerable,q=Object.getOwnPropertySymbols,qn=q?function(n){return n==null?[]:(n=Object(n),en(q(n),function(r){return Kn.call(n,r)}))}:Bn;function Zn(n,r,e){var i=r(n);return A(n)?i:rn(i,e(n))}function Z(n){return Zn(n,M,qn)}var Yn="__lodash_hash_undefined__";function Xn(n){return this.__data__.set(n,Yn),this}function Jn(n){return this.__data__.has(n)}function v(n){var r=-1,e=n==null?0:n.length;for(this.__data__=new pn;++r<e;)this.add(n[r])}v.prototype.add=v.prototype.push=Xn;v.prototype.has=Jn;function Qn(n,r){for(var e=-1,i=n==null?0:n.length;++e<i;)if(r(n[e],e,n))return!0;return!1}function tn(n,r){return n.has(r)}var Wn=1,zn=2;function fn(n,r,e,i,f,t){var s=e&Wn,u=n.length,a=r.length;if(u!=a&&!(s&&a>u))return!1;var h=t.get(n),g=t.get(r);if(h&&g)return h==r&&g==n;var l=-1,d=!0,c=e&zn?new v:void 0;for(t.set(n,r),t.set(r,n);++l<u;){var p=n[l],_=r[l];if(i)var o=s?i(_,p,l,r,n,t):i(p,_,l,n,r,t);if(o!==void 0){if(o)continue;d=!1;break}if(c){if(!Qn(r,function(w,O){if(!tn(c,O)&&(p===w||f(p,w,e,i,t)))return c.push(O)})){d=!1;break}}else if(!(p===_||f(p,_,e,i,t))){d=!1;break}}return t.delete(n),t.delete(r),d}function Vn(n){var r=-1,e=Array(n.size);return n.forEach(function(i,f){e[++r]=[f,i]}),e}function C(n){var r=-1,e=Array(n.size);return n.forEach(function(i){e[++r]=i}),e}var kn=1,jn=2,nr="[object Boolean]",rr="[object Date]",er="[object Error]",ir="[object Map]",tr="[object Number]",fr="[object RegExp]",sr="[object Set]",ur="[object String]",ar="[object Symbol]",lr="[object ArrayBuffer]",gr="[object DataView]",Y=P?P.prototype:void 0,L=Y?Y.valueOf:void 0;function dr(n,r,e,i,f,t,s){switch(e){case gr:if(n.byteLength!=r.byteLength||n.byteOffset!=r.byteOffset)return!1;n=n.buffer,r=r.buffer;case lr:return!(n.byteLength!=r.byteLength||!t(new m(n),new m(r)));case nr:case rr:case tr:return An(+n,+r);case er:return n.name==r.name&&n.message==r.message;case fr:case ur:return n==r+"";case ir:var u=Vn;case sr:var a=i&kn;if(u||(u=C),n.size!=r.size&&!a)return!1;var h=s.get(n);if(h)return h==r;i|=jn,s.set(n,r);var g=fn(u(n),u(r),i,f,t,s);return s.delete(n),g;case ar:if(L)return L.call(n)==L.call(r)}return!1}var hr=1,pr=Object.prototype,Ar=pr.hasOwnProperty;function _r(n,r,e,i,f,t){var s=e&hr,u=Z(n),a=u.length,h=Z(r),g=h.length;if(a!=g&&!s)return!1;for(var l=a;l--;){var d=u[l];if(!(s?d in r:Ar.call(r,d)))return!1}var c=t.get(n),p=t.get(r);if(c&&p)return c==r&&p==n;var _=!0;t.set(n,r),t.set(r,n);for(var o=s;++l<a;){d=u[l];var w=n[d],O=r[d];if(i)var F=s?i(O,w,d,r,n,t):i(w,O,d,n,r,t);if(!(F===void 0?w===O||f(w,O,e,i,t):F)){_=!1;break}o||(o=d=="constructor")}if(_&&!o){var y=n.constructor,E=r.constructor;y!=E&&"constructor"in n&&"constructor"in r&&!(typeof y=="function"&&y instanceof y&&typeof E=="function"&&E instanceof E)&&(_=!1)}return t.delete(n),t.delete(r),_}var cr=1,X="[object Arguments]",J="[object Array]",T="[object Object]",or=Object.prototype,Q=or.hasOwnProperty;function wr(n,r,e,i,f,t){var s=A(n),u=A(r),a=s?J:N(n),h=u?J:N(r);a=a==X?T:a,h=h==X?T:h;var g=a==T,l=h==T,d=a==h;if(d&&U(n)){if(!U(r))return!1;s=!0,g=!1}if(d&&!g)return t||(t=new R),s||_n(n)?fn(n,r,e,i,f,t):dr(n,r,a,e,i,f,t);if(!(e&cr)){var c=g&&Q.call(n,"__wrapped__"),p=l&&Q.call(r,"__wrapped__");if(c||p){var _=c?n.value():n,o=p?r.value():r;return t||(t=new R),f(_,o,e,i,t)}}return d?(t||(t=new R),_r(n,r,e,i,f,t)):!1}function G(n,r,e,i,f){return n===r?!0:n==null||r==null||!S(n)&&!S(r)?n!==n&&r!==r:wr(n,r,e,i,G,f)}var Or=1,Pr=2;function vr(n,r,e,i){var f=e.length,t=f;if(n==null)return!t;for(n=Object(n);f--;){var s=e[f];if(s[2]?s[1]!==n[s[0]]:!(s[0]in n))return!1}for(;++f<t;){s=e[f];var u=s[0],a=n[u],h=s[1];if(s[2]){if(a===void 0&&!(u in n))return!1}else{var g=new R,l;if(!(l===void 0?G(h,a,Or|Pr,i,g):l))return!1}}return!0}function sn(n){return n===n&&!cn(n)}function yr(n){for(var r=M(n),e=r.length;e--;){var i=r[e],f=n[i];r[e]=[i,f,sn(f)]}return r}function un(n,r){return function(e){return e==null?!1:e[n]===r&&(r!==void 0||n in Object(e))}}function Er(n){var r=yr(n);return r.length==1&&r[0][2]?un(r[0][0],r[0][1]):function(e){return e===n||vr(e,n,r)}}function Tr(n,r){return n!=null&&r in Object(n)}function Rr(n,r,e){r=j(r,n);for(var i=-1,f=r.length,t=!1;++i<f;){var s=I(r[i]);if(!(t=n!=null&&e(n,s)))break;n=n[s]}return t||++i!=f?t:(f=n==null?0:n.length,!!f&&on(f)&&wn(s,f)&&(A(n)||z(n)))}function Ir(n,r){return n!=null&&Rr(n,r,Tr)}var br=1,Lr=2;function Sr(n,r){return $(n)&&sn(r)?un(I(n),r):function(e){var i=mn(e,n);return i===void 0&&i===r?Ir(e,n):G(r,i,br|Lr)}}function xr(n){return function(r){return r==null?void 0:r[n]}}function Mr(n){return function(r){return nn(r,n)}}function $r(n){return $(n)?xr(I(n)):Mr(n)}function an(n){return typeof n=="function"?n:n==null?V:typeof n=="object"?A(n)?Sr(n[0],n[1]):Er(n):$r(n)}function Cr(n,r){return n&&On(n,r,M)}function Gr(n,r){return function(e,i){if(e==null)return e;if(!W(e))return n(e,i);for(var f=e.length,t=-1,s=Object(e);++t<f&&i(s[t],t,s)!==!1;);return e}}var D=Gr(Cr);function Dr(n){return typeof n=="function"?n:V}function qr(n,r){var e=A(n)?En:D;return e(n,Dr(r))}function Fr(n,r){var e=[];return D(n,function(i,f,t){r(i,f,t)&&e.push(i)}),e}function Zr(n,r){var e=A(n)?en:Fr;return e(n,an(r))}function mr(n,r,e,i,f){return f(n,function(t,s,u){e=i?(i=!1,t):r(e,t,s,u)}),e}function Yr(n,r,e){var i=A(n)?Un:mr,f=arguments.length<3;return i(n,an(r),e,f,D)}var Nr=1/0,Ur=b&&1/C(new b([,-0]))[1]==Nr?function(n){return new b(n)}:yn,Br=200;function Xr(n,r,e){var i=-1,f=Ln,t=n.length,s=!0,u=[],a=u;if(t>=Br){var h=r?null:Ur(n);if(h)return C(h);s=!1,f=tn,a=new v}else a=r?[]:u;n:for(;++i<t;){var g=n[i],l=r?r(g):g;if(g=g!==0?g:0,s&&l===l){for(var d=a.length;d--;)if(a[d]===l)continue n;r&&a.push(l),u.push(g)}else f(a,l,e)||(a!==u&&a.push(l),u.push(g))}return u}export{D as a,Kr as b,an as c,vn as d,rn as e,Zn as f,qn as g,En as h,x as i,Z as j,M as k,Xr as l,Zr as m,qr as n,Tn as o,Dr as p,Cr as q,Yr as r,Bn as s,Rr as t,j as u,I as v,nn as w,Ir as x,Fn as y};
@@ -1 +1 @@
1
- import{a0 as ln,a1 as an,a2 as y,a3 as tn,a4 as H,a5 as q,a6 as _,a7 as un,a8 as rn,a9 as L,aa as o,ab as B,ac as sn,ad as on,ae as fn}from"./main-3MUFzsZe.js";function cn(l){return l.innerRadius}function yn(l){return l.outerRadius}function gn(l){return l.startAngle}function dn(l){return l.endAngle}function mn(l){return l&&l.padAngle}function pn(l,h,I,D,v,A,C,a){var O=I-l,i=D-h,n=C-v,d=a-A,u=d*O-n*i;if(!(u*u<y))return u=(n*(h-A)-d*(l-v))/u,[l+u*O,h+u*i]}function W(l,h,I,D,v,A,C){var a=l-I,O=h-D,i=(C?A:-A)/L(a*a+O*O),n=i*O,d=-i*a,u=l+n,s=h+d,f=I+n,c=D+d,F=(u+f)/2,t=(s+c)/2,m=f-u,g=c-s,R=m*m+g*g,T=v-A,P=u*c-f*s,S=(g<0?-1:1)*L(fn(0,T*T*R-P*P)),j=(P*g-m*S)/R,z=(-P*m-g*S)/R,w=(P*g+m*S)/R,p=(-P*m+g*S)/R,x=j-F,e=z-t,r=w-F,G=p-t;return x*x+e*e>r*r+G*G&&(j=w,z=p),{cx:j,cy:z,x01:-n,y01:-d,x11:j*(v/T-1),y11:z*(v/T-1)}}function hn(){var l=cn,h=yn,I=B(0),D=null,v=gn,A=dn,C=mn,a=null,O=ln(i);function i(){var n,d,u=+l.apply(this,arguments),s=+h.apply(this,arguments),f=v.apply(this,arguments)-an,c=A.apply(this,arguments)-an,F=un(c-f),t=c>f;if(a||(a=n=O()),s<u&&(d=s,s=u,u=d),!(s>y))a.moveTo(0,0);else if(F>tn-y)a.moveTo(s*H(f),s*q(f)),a.arc(0,0,s,f,c,!t),u>y&&(a.moveTo(u*H(c),u*q(c)),a.arc(0,0,u,c,f,t));else{var m=f,g=c,R=f,T=c,P=F,S=F,j=C.apply(this,arguments)/2,z=j>y&&(D?+D.apply(this,arguments):L(u*u+s*s)),w=_(un(s-u)/2,+I.apply(this,arguments)),p=w,x=w,e,r;if(z>y){var G=sn(z/u*q(j)),M=sn(z/s*q(j));(P-=G*2)>y?(G*=t?1:-1,R+=G,T-=G):(P=0,R=T=(f+c)/2),(S-=M*2)>y?(M*=t?1:-1,m+=M,g-=M):(S=0,m=g=(f+c)/2)}var J=s*H(m),K=s*q(m),N=u*H(T),Q=u*q(T);if(w>y){var U=s*H(g),V=s*q(g),X=u*H(R),Y=u*q(R),E;if(F<rn)if(E=pn(J,K,X,Y,U,V,N,Q)){var Z=J-E[0],$=K-E[1],b=U-E[0],k=V-E[1],nn=1/q(on((Z*b+$*k)/(L(Z*Z+$*$)*L(b*b+k*k)))/2),en=L(E[0]*E[0]+E[1]*E[1]);p=_(w,(u-en)/(nn-1)),x=_(w,(s-en)/(nn+1))}else p=x=0}S>y?x>y?(e=W(X,Y,J,K,s,x,t),r=W(U,V,N,Q,s,x,t),a.moveTo(e.cx+e.x01,e.cy+e.y01),x<w?a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,s,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),!t),a.arc(r.cx,r.cy,x,o(r.y11,r.x11),o(r.y01,r.x01),!t))):(a.moveTo(J,K),a.arc(0,0,s,m,g,!t)):a.moveTo(J,K),!(u>y)||!(P>y)?a.lineTo(N,Q):p>y?(e=W(N,Q,U,V,u,-p,t),r=W(J,K,X,Y,u,-p,t),a.lineTo(e.cx+e.x01,e.cy+e.y01),p<w?a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,u,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),t),a.arc(r.cx,r.cy,p,o(r.y11,r.x11),o(r.y01,r.x01),!t))):a.arc(0,0,u,T,R,t)}if(a.closePath(),n)return a=null,n+""||null}return i.centroid=function(){var n=(+l.apply(this,arguments)+ +h.apply(this,arguments))/2,d=(+v.apply(this,arguments)+ +A.apply(this,arguments))/2-rn/2;return[H(d)*n,q(d)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:B(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:B(+n),i):h},i.cornerRadius=function(n){return arguments.length?(I=typeof n=="function"?n:B(+n),i):I},i.padRadius=function(n){return arguments.length?(D=n==null?null:typeof n=="function"?n:B(+n),i):D},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:B(+n),i):v},i.endAngle=function(n){return arguments.length?(A=typeof n=="function"?n:B(+n),i):A},i.padAngle=function(n){return arguments.length?(C=typeof n=="function"?n:B(+n),i):C},i.context=function(n){return arguments.length?(a=n??null,i):a},i}export{hn as d};
1
+ import{a0 as ln,a1 as an,a2 as y,a3 as tn,a4 as H,a5 as q,a6 as _,a7 as un,a8 as rn,a9 as L,aa as o,ab as B,ac as sn,ad as on,ae as fn}from"./main-2Ng-WP0F.js";function cn(l){return l.innerRadius}function yn(l){return l.outerRadius}function gn(l){return l.startAngle}function dn(l){return l.endAngle}function mn(l){return l&&l.padAngle}function pn(l,h,I,D,v,A,C,a){var O=I-l,i=D-h,n=C-v,d=a-A,u=d*O-n*i;if(!(u*u<y))return u=(n*(h-A)-d*(l-v))/u,[l+u*O,h+u*i]}function W(l,h,I,D,v,A,C){var a=l-I,O=h-D,i=(C?A:-A)/L(a*a+O*O),n=i*O,d=-i*a,u=l+n,s=h+d,f=I+n,c=D+d,F=(u+f)/2,t=(s+c)/2,m=f-u,g=c-s,R=m*m+g*g,T=v-A,P=u*c-f*s,S=(g<0?-1:1)*L(fn(0,T*T*R-P*P)),j=(P*g-m*S)/R,z=(-P*m-g*S)/R,w=(P*g+m*S)/R,p=(-P*m+g*S)/R,x=j-F,e=z-t,r=w-F,G=p-t;return x*x+e*e>r*r+G*G&&(j=w,z=p),{cx:j,cy:z,x01:-n,y01:-d,x11:j*(v/T-1),y11:z*(v/T-1)}}function hn(){var l=cn,h=yn,I=B(0),D=null,v=gn,A=dn,C=mn,a=null,O=ln(i);function i(){var n,d,u=+l.apply(this,arguments),s=+h.apply(this,arguments),f=v.apply(this,arguments)-an,c=A.apply(this,arguments)-an,F=un(c-f),t=c>f;if(a||(a=n=O()),s<u&&(d=s,s=u,u=d),!(s>y))a.moveTo(0,0);else if(F>tn-y)a.moveTo(s*H(f),s*q(f)),a.arc(0,0,s,f,c,!t),u>y&&(a.moveTo(u*H(c),u*q(c)),a.arc(0,0,u,c,f,t));else{var m=f,g=c,R=f,T=c,P=F,S=F,j=C.apply(this,arguments)/2,z=j>y&&(D?+D.apply(this,arguments):L(u*u+s*s)),w=_(un(s-u)/2,+I.apply(this,arguments)),p=w,x=w,e,r;if(z>y){var G=sn(z/u*q(j)),M=sn(z/s*q(j));(P-=G*2)>y?(G*=t?1:-1,R+=G,T-=G):(P=0,R=T=(f+c)/2),(S-=M*2)>y?(M*=t?1:-1,m+=M,g-=M):(S=0,m=g=(f+c)/2)}var J=s*H(m),K=s*q(m),N=u*H(T),Q=u*q(T);if(w>y){var U=s*H(g),V=s*q(g),X=u*H(R),Y=u*q(R),E;if(F<rn)if(E=pn(J,K,X,Y,U,V,N,Q)){var Z=J-E[0],$=K-E[1],b=U-E[0],k=V-E[1],nn=1/q(on((Z*b+$*k)/(L(Z*Z+$*$)*L(b*b+k*k)))/2),en=L(E[0]*E[0]+E[1]*E[1]);p=_(w,(u-en)/(nn-1)),x=_(w,(s-en)/(nn+1))}else p=x=0}S>y?x>y?(e=W(X,Y,J,K,s,x,t),r=W(U,V,N,Q,s,x,t),a.moveTo(e.cx+e.x01,e.cy+e.y01),x<w?a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,s,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),!t),a.arc(r.cx,r.cy,x,o(r.y11,r.x11),o(r.y01,r.x01),!t))):(a.moveTo(J,K),a.arc(0,0,s,m,g,!t)):a.moveTo(J,K),!(u>y)||!(P>y)?a.lineTo(N,Q):p>y?(e=W(N,Q,U,V,u,-p,t),r=W(J,K,X,Y,u,-p,t),a.lineTo(e.cx+e.x01,e.cy+e.y01),p<w?a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,u,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),t),a.arc(r.cx,r.cy,p,o(r.y11,r.x11),o(r.y01,r.x01),!t))):a.arc(0,0,u,T,R,t)}if(a.closePath(),n)return a=null,n+""||null}return i.centroid=function(){var n=(+l.apply(this,arguments)+ +h.apply(this,arguments))/2,d=(+v.apply(this,arguments)+ +A.apply(this,arguments))/2-rn/2;return[H(d)*n,q(d)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:B(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:B(+n),i):h},i.cornerRadius=function(n){return arguments.length?(I=typeof n=="function"?n:B(+n),i):I},i.padRadius=function(n){return arguments.length?(D=n==null?null:typeof n=="function"?n:B(+n),i):D},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:B(+n),i):v},i.endAngle=function(n){return arguments.length?(A=typeof n=="function"?n:B(+n),i):A},i.padAngle=function(n){return arguments.length?(C=typeof n=="function"?n:B(+n),i):C},i.context=function(n){return arguments.length?(a=n??null,i):a},i}export{hn as d};