hivehq 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (883) hide show
  1. package/CHANGELOG.md +592 -0
  2. package/LICENSE +208 -0
  3. package/LICENSE.BSL +101 -0
  4. package/NOTICE +15 -0
  5. package/README.en.md +451 -0
  6. package/README.md +329 -0
  7. package/SECURITY.md +59 -0
  8. package/TRADEMARK.md +41 -0
  9. package/assets/hive-hero.png +0 -0
  10. package/assets/hive-team-view.png +0 -0
  11. package/assets/logo.png +0 -0
  12. package/assets/qq-group.jpg +0 -0
  13. package/dist/bin/team +7 -0
  14. package/dist/bin/team.cmd +3 -0
  15. package/dist/src/cli/hive-remote.d.ts +46 -0
  16. package/dist/src/cli/hive-remote.js +257 -0
  17. package/dist/src/cli/hive-update.d.ts +75 -0
  18. package/dist/src/cli/hive-update.js +215 -0
  19. package/dist/src/cli/hive.d.ts +78 -0
  20. package/dist/src/cli/hive.js +336 -0
  21. package/dist/src/cli/team.d.ts +38 -0
  22. package/dist/src/cli/team.js +762 -0
  23. package/dist/src/server/agent-command-resolver.d.ts +17 -0
  24. package/dist/src/server/agent-command-resolver.js +106 -0
  25. package/dist/src/server/agent-exit-classification.d.ts +6 -0
  26. package/dist/src/server/agent-exit-classification.js +6 -0
  27. package/dist/src/server/agent-launch-cache.d.ts +20 -0
  28. package/dist/src/server/agent-launch-cache.js +75 -0
  29. package/dist/src/server/agent-launch-resolver.d.ts +4 -0
  30. package/dist/src/server/agent-launch-resolver.js +38 -0
  31. package/dist/src/server/agent-manager-support.d.ts +36 -0
  32. package/dist/src/server/agent-manager-support.js +318 -0
  33. package/dist/src/server/agent-manager.d.ts +54 -0
  34. package/dist/src/server/agent-manager.js +104 -0
  35. package/dist/src/server/agent-run-bootstrap.d.ts +83 -0
  36. package/dist/src/server/agent-run-bootstrap.js +101 -0
  37. package/dist/src/server/agent-run-exit-handler.d.ts +8 -0
  38. package/dist/src/server/agent-run-exit-handler.js +32 -0
  39. package/dist/src/server/agent-run-start-context.d.ts +24 -0
  40. package/dist/src/server/agent-run-start-context.js +1 -0
  41. package/dist/src/server/agent-run-starter.d.ts +30 -0
  42. package/dist/src/server/agent-run-starter.js +155 -0
  43. package/dist/src/server/agent-run-store.d.ts +51 -0
  44. package/dist/src/server/agent-run-store.js +137 -0
  45. package/dist/src/server/agent-run-sync.d.ts +10 -0
  46. package/dist/src/server/agent-run-sync.js +32 -0
  47. package/dist/src/server/agent-runtime-active-run.d.ts +3 -0
  48. package/dist/src/server/agent-runtime-active-run.js +10 -0
  49. package/dist/src/server/agent-runtime-close.d.ts +5 -0
  50. package/dist/src/server/agent-runtime-close.js +36 -0
  51. package/dist/src/server/agent-runtime-contract.d.ts +48 -0
  52. package/dist/src/server/agent-runtime-contract.js +1 -0
  53. package/dist/src/server/agent-runtime-flow-adapter.d.ts +10 -0
  54. package/dist/src/server/agent-runtime-flow-adapter.js +14 -0
  55. package/dist/src/server/agent-runtime-list-runs.d.ts +3 -0
  56. package/dist/src/server/agent-runtime-list-runs.js +18 -0
  57. package/dist/src/server/agent-runtime-ports.d.ts +22 -0
  58. package/dist/src/server/agent-runtime-ports.js +1 -0
  59. package/dist/src/server/agent-runtime-stop-run.d.ts +4 -0
  60. package/dist/src/server/agent-runtime-stop-run.js +19 -0
  61. package/dist/src/server/agent-runtime-types.d.ts +5 -0
  62. package/dist/src/server/agent-runtime-types.js +1 -0
  63. package/dist/src/server/agent-runtime.d.ts +10 -0
  64. package/dist/src/server/agent-runtime.js +143 -0
  65. package/dist/src/server/agent-session-store.d.ts +7 -0
  66. package/dist/src/server/agent-session-store.js +45 -0
  67. package/dist/src/server/agent-startup-instructions.d.ts +20 -0
  68. package/dist/src/server/agent-startup-instructions.js +36 -0
  69. package/dist/src/server/agent-stdin-dispatcher.d.ts +52 -0
  70. package/dist/src/server/agent-stdin-dispatcher.js +224 -0
  71. package/dist/src/server/agent-tokens.d.ts +15 -0
  72. package/dist/src/server/agent-tokens.js +25 -0
  73. package/dist/src/server/app-state-store.d.ts +10 -0
  74. package/dist/src/server/app-state-store.js +12 -0
  75. package/dist/src/server/app.d.ts +20 -0
  76. package/dist/src/server/app.js +211 -0
  77. package/dist/src/server/claude-command-defaults.d.ts +1 -0
  78. package/dist/src/server/claude-command-defaults.js +5 -0
  79. package/dist/src/server/claude-session-coordinator.d.ts +10 -0
  80. package/dist/src/server/claude-session-coordinator.js +68 -0
  81. package/dist/src/server/claude-session-support.d.ts +1 -0
  82. package/dist/src/server/claude-session-support.js +1 -0
  83. package/dist/src/server/command-preset-defaults.d.ts +11 -0
  84. package/dist/src/server/command-preset-defaults.js +63 -0
  85. package/dist/src/server/command-preset-store.d.ts +49 -0
  86. package/dist/src/server/command-preset-store.js +83 -0
  87. package/dist/src/server/cron-util.d.ts +7 -0
  88. package/dist/src/server/cron-util.js +19 -0
  89. package/dist/src/server/dispatch-ledger-serializer.d.ts +15 -0
  90. package/dist/src/server/dispatch-ledger-serializer.js +14 -0
  91. package/dist/src/server/dispatch-ledger-store.d.ts +108 -0
  92. package/dist/src/server/dispatch-ledger-store.js +241 -0
  93. package/dist/src/server/env-sync-message.d.ts +9 -0
  94. package/dist/src/server/env-sync-message.js +29 -0
  95. package/dist/src/server/feature-flags.d.ts +42 -0
  96. package/dist/src/server/feature-flags.js +24 -0
  97. package/dist/src/server/fs-browse.d.ts +40 -0
  98. package/dist/src/server/fs-browse.js +306 -0
  99. package/dist/src/server/fs-pick-folder.d.ts +25 -0
  100. package/dist/src/server/fs-pick-folder.js +115 -0
  101. package/dist/src/server/fs-sandbox.d.ts +15 -0
  102. package/dist/src/server/fs-sandbox.js +56 -0
  103. package/dist/src/server/hive-team-guidance.d.ts +39 -0
  104. package/dist/src/server/hive-team-guidance.js +295 -0
  105. package/dist/src/server/http-errors.d.ts +22 -0
  106. package/dist/src/server/http-errors.js +44 -0
  107. package/dist/src/server/live-run-registry.d.ts +22 -0
  108. package/dist/src/server/live-run-registry.js +52 -0
  109. package/dist/src/server/local-request-guard.d.ts +3 -0
  110. package/dist/src/server/local-request-guard.js +41 -0
  111. package/dist/src/server/machine-name.d.ts +2 -0
  112. package/dist/src/server/machine-name.js +13 -0
  113. package/dist/src/server/marketplace-store.d.ts +38 -0
  114. package/dist/src/server/marketplace-store.js +85 -0
  115. package/dist/src/server/message-log-store.d.ts +51 -0
  116. package/dist/src/server/message-log-store.js +90 -0
  117. package/dist/src/server/open-target-commands.d.ts +54 -0
  118. package/dist/src/server/open-target-commands.js +204 -0
  119. package/dist/src/server/orchestrator-autostart.d.ts +42 -0
  120. package/dist/src/server/orchestrator-autostart.js +114 -0
  121. package/dist/src/server/orchestrator-launch.d.ts +24 -0
  122. package/dist/src/server/orchestrator-launch.js +71 -0
  123. package/dist/src/server/package-version.d.ts +17 -0
  124. package/dist/src/server/package-version.js +32 -0
  125. package/dist/src/server/path-canonicalization.d.ts +3 -0
  126. package/dist/src/server/path-canonicalization.js +29 -0
  127. package/dist/src/server/platform-path.d.ts +4 -0
  128. package/dist/src/server/platform-path.js +26 -0
  129. package/dist/src/server/post-start-input-writer.d.ts +6 -0
  130. package/dist/src/server/post-start-input-writer.js +242 -0
  131. package/dist/src/server/preset-launch-support.d.ts +6 -0
  132. package/dist/src/server/preset-launch-support.js +98 -0
  133. package/dist/src/server/pty-output-bus.d.ts +8 -0
  134. package/dist/src/server/pty-output-bus.js +32 -0
  135. package/dist/src/server/recovery-summary.d.ts +15 -0
  136. package/dist/src/server/recovery-summary.js +92 -0
  137. package/dist/src/server/remote-audit-store.d.ts +51 -0
  138. package/dist/src/server/remote-audit-store.js +108 -0
  139. package/dist/src/server/remote-config-keys.d.ts +17 -0
  140. package/dist/src/server/remote-config-keys.js +27 -0
  141. package/dist/src/server/remote-control-constants.d.ts +30 -0
  142. package/dist/src/server/remote-control-constants.js +29 -0
  143. package/dist/src/server/remote-device-session.d.ts +40 -0
  144. package/dist/src/server/remote-device-session.js +22 -0
  145. package/dist/src/server/remote-device-store.d.ts +36 -0
  146. package/dist/src/server/remote-device-store.js +67 -0
  147. package/dist/src/server/remote-frame-bridge.d.ts +102 -0
  148. package/dist/src/server/remote-frame-bridge.js +791 -0
  149. package/dist/src/server/remote-gateway-client.d.ts +14 -0
  150. package/dist/src/server/remote-gateway-client.js +36 -0
  151. package/dist/src/server/remote-loopback-auth.d.ts +6 -0
  152. package/dist/src/server/remote-loopback-auth.js +112 -0
  153. package/dist/src/server/remote-pairing-tunnel.d.ts +59 -0
  154. package/dist/src/server/remote-pairing-tunnel.js +146 -0
  155. package/dist/src/server/remote-pairing.d.ts +58 -0
  156. package/dist/src/server/remote-pairing.js +237 -0
  157. package/dist/src/server/remote-tunnel.d.ts +113 -0
  158. package/dist/src/server/remote-tunnel.js +514 -0
  159. package/dist/src/server/report-outbox-store.d.ts +36 -0
  160. package/dist/src/server/report-outbox-store.js +33 -0
  161. package/dist/src/server/restart-policy-support.d.ts +30 -0
  162. package/dist/src/server/restart-policy-support.js +21 -0
  163. package/dist/src/server/restart-policy.d.ts +18 -0
  164. package/dist/src/server/restart-policy.js +77 -0
  165. package/dist/src/server/role-template-store.d.ts +45 -0
  166. package/dist/src/server/role-template-store.js +76 -0
  167. package/dist/src/server/role-templates.d.ts +7 -0
  168. package/dist/src/server/role-templates.js +54 -0
  169. package/dist/src/server/route-helpers.d.ts +9 -0
  170. package/dist/src/server/route-helpers.js +61 -0
  171. package/dist/src/server/route-types.d.ts +121 -0
  172. package/dist/src/server/route-types.js +1 -0
  173. package/dist/src/server/routes-dispatches.d.ts +2 -0
  174. package/dist/src/server/routes-dispatches.js +54 -0
  175. package/dist/src/server/routes-fs.d.ts +2 -0
  176. package/dist/src/server/routes-fs.js +24 -0
  177. package/dist/src/server/routes-marketplace.d.ts +2 -0
  178. package/dist/src/server/routes-marketplace.js +54 -0
  179. package/dist/src/server/routes-open-workspace.d.ts +2 -0
  180. package/dist/src/server/routes-open-workspace.js +47 -0
  181. package/dist/src/server/routes-remote.d.ts +2 -0
  182. package/dist/src/server/routes-remote.js +166 -0
  183. package/dist/src/server/routes-runtime.d.ts +2 -0
  184. package/dist/src/server/routes-runtime.js +79 -0
  185. package/dist/src/server/routes-settings.d.ts +2 -0
  186. package/dist/src/server/routes-settings.js +213 -0
  187. package/dist/src/server/routes-tasks.d.ts +2 -0
  188. package/dist/src/server/routes-tasks.js +47 -0
  189. package/dist/src/server/routes-team-memory.d.ts +2 -0
  190. package/dist/src/server/routes-team-memory.js +154 -0
  191. package/dist/src/server/routes-team-recall.d.ts +2 -0
  192. package/dist/src/server/routes-team-recall.js +119 -0
  193. package/dist/src/server/routes-team.d.ts +2 -0
  194. package/dist/src/server/routes-team.js +351 -0
  195. package/dist/src/server/routes-ui.d.ts +2 -0
  196. package/dist/src/server/routes-ui.js +17 -0
  197. package/dist/src/server/routes-version.d.ts +2 -0
  198. package/dist/src/server/routes-version.js +6 -0
  199. package/dist/src/server/routes-workflow-schedules.d.ts +2 -0
  200. package/dist/src/server/routes-workflow-schedules.js +58 -0
  201. package/dist/src/server/routes-workflows.d.ts +2 -0
  202. package/dist/src/server/routes-workflows.js +83 -0
  203. package/dist/src/server/routes-workspace-memory-dreams.d.ts +2 -0
  204. package/dist/src/server/routes-workspace-memory-dreams.js +105 -0
  205. package/dist/src/server/routes-workspace-memory.d.ts +2 -0
  206. package/dist/src/server/routes-workspace-memory.js +215 -0
  207. package/dist/src/server/routes-workspaces.d.ts +2 -0
  208. package/dist/src/server/routes-workspaces.js +177 -0
  209. package/dist/src/server/routes.d.ts +6 -0
  210. package/dist/src/server/routes.js +55 -0
  211. package/dist/src/server/runtime-database.d.ts +3 -0
  212. package/dist/src/server/runtime-database.js +41 -0
  213. package/dist/src/server/runtime-message-builders.d.ts +7 -0
  214. package/dist/src/server/runtime-message-builders.js +60 -0
  215. package/dist/src/server/runtime-restart-policy.d.ts +18 -0
  216. package/dist/src/server/runtime-restart-policy.js +12 -0
  217. package/dist/src/server/runtime-store-contract.d.ts +162 -0
  218. package/dist/src/server/runtime-store-contract.js +1 -0
  219. package/dist/src/server/runtime-store-dream.d.ts +23 -0
  220. package/dist/src/server/runtime-store-dream.js +16 -0
  221. package/dist/src/server/runtime-store-helpers.d.ts +115 -0
  222. package/dist/src/server/runtime-store-helpers.js +411 -0
  223. package/dist/src/server/runtime-store-memory.d.ts +33 -0
  224. package/dist/src/server/runtime-store-memory.js +37 -0
  225. package/dist/src/server/runtime-store-remote.d.ts +5 -0
  226. package/dist/src/server/runtime-store-remote.js +45 -0
  227. package/dist/src/server/runtime-store-workflows.d.ts +6 -0
  228. package/dist/src/server/runtime-store-workflows.js +108 -0
  229. package/dist/src/server/runtime-store.d.ts +4 -0
  230. package/dist/src/server/runtime-store.js +165 -0
  231. package/dist/src/server/session-capture-claude.d.ts +34 -0
  232. package/dist/src/server/session-capture-claude.js +103 -0
  233. package/dist/src/server/session-capture-codex.d.ts +6 -0
  234. package/dist/src/server/session-capture-codex.js +108 -0
  235. package/dist/src/server/session-capture-gemini.d.ts +5 -0
  236. package/dist/src/server/session-capture-gemini.js +81 -0
  237. package/dist/src/server/session-capture-opencode.d.ts +22 -0
  238. package/dist/src/server/session-capture-opencode.js +75 -0
  239. package/dist/src/server/session-capture.d.ts +77 -0
  240. package/dist/src/server/session-capture.js +123 -0
  241. package/dist/src/server/settings-store.d.ts +22 -0
  242. package/dist/src/server/settings-store.js +22 -0
  243. package/dist/src/server/sqlite-schema-v10.d.ts +2 -0
  244. package/dist/src/server/sqlite-schema-v10.js +13 -0
  245. package/dist/src/server/sqlite-schema-v11.d.ts +2 -0
  246. package/dist/src/server/sqlite-schema-v11.js +10 -0
  247. package/dist/src/server/sqlite-schema-v12.d.ts +2 -0
  248. package/dist/src/server/sqlite-schema-v12.js +21 -0
  249. package/dist/src/server/sqlite-schema-v13.d.ts +2 -0
  250. package/dist/src/server/sqlite-schema-v13.js +4 -0
  251. package/dist/src/server/sqlite-schema-v14.d.ts +2 -0
  252. package/dist/src/server/sqlite-schema-v14.js +84 -0
  253. package/dist/src/server/sqlite-schema-v15.d.ts +2 -0
  254. package/dist/src/server/sqlite-schema-v15.js +73 -0
  255. package/dist/src/server/sqlite-schema-v16.d.ts +2 -0
  256. package/dist/src/server/sqlite-schema-v16.js +6 -0
  257. package/dist/src/server/sqlite-schema-v17.d.ts +2 -0
  258. package/dist/src/server/sqlite-schema-v17.js +15 -0
  259. package/dist/src/server/sqlite-schema-v18.d.ts +2 -0
  260. package/dist/src/server/sqlite-schema-v18.js +6 -0
  261. package/dist/src/server/sqlite-schema-v19.d.ts +2 -0
  262. package/dist/src/server/sqlite-schema-v19.js +17 -0
  263. package/dist/src/server/sqlite-schema-v20.d.ts +2 -0
  264. package/dist/src/server/sqlite-schema-v20.js +20 -0
  265. package/dist/src/server/sqlite-schema-v21.d.ts +2 -0
  266. package/dist/src/server/sqlite-schema-v21.js +20 -0
  267. package/dist/src/server/sqlite-schema-v22.d.ts +2 -0
  268. package/dist/src/server/sqlite-schema-v22.js +27 -0
  269. package/dist/src/server/sqlite-schema-v23.d.ts +2 -0
  270. package/dist/src/server/sqlite-schema-v23.js +43 -0
  271. package/dist/src/server/sqlite-schema-v24.d.ts +2 -0
  272. package/dist/src/server/sqlite-schema-v24.js +34 -0
  273. package/dist/src/server/sqlite-schema-v25.d.ts +2 -0
  274. package/dist/src/server/sqlite-schema-v25.js +127 -0
  275. package/dist/src/server/sqlite-schema-v26.d.ts +2 -0
  276. package/dist/src/server/sqlite-schema-v26.js +56 -0
  277. package/dist/src/server/sqlite-schema-v27.d.ts +6 -0
  278. package/dist/src/server/sqlite-schema-v27.js +92 -0
  279. package/dist/src/server/sqlite-schema-v28.d.ts +2 -0
  280. package/dist/src/server/sqlite-schema-v28.js +19 -0
  281. package/dist/src/server/sqlite-schema-v5.d.ts +2 -0
  282. package/dist/src/server/sqlite-schema-v5.js +61 -0
  283. package/dist/src/server/sqlite-schema-v7.d.ts +2 -0
  284. package/dist/src/server/sqlite-schema-v7.js +70 -0
  285. package/dist/src/server/sqlite-schema-v8.d.ts +2 -0
  286. package/dist/src/server/sqlite-schema-v8.js +6 -0
  287. package/dist/src/server/sqlite-schema-v9.d.ts +2 -0
  288. package/dist/src/server/sqlite-schema-v9.js +6 -0
  289. package/dist/src/server/sqlite-schema.d.ts +3 -0
  290. package/dist/src/server/sqlite-schema.js +353 -0
  291. package/dist/src/server/startup-command-parser.d.ts +20 -0
  292. package/dist/src/server/startup-command-parser.js +72 -0
  293. package/dist/src/server/system-message.d.ts +8 -0
  294. package/dist/src/server/system-message.js +8 -0
  295. package/dist/src/server/task-deps.d.ts +32 -0
  296. package/dist/src/server/task-deps.js +40 -0
  297. package/dist/src/server/tasks-file-watcher.d.ts +47 -0
  298. package/dist/src/server/tasks-file-watcher.js +200 -0
  299. package/dist/src/server/tasks-file.d.ts +23 -0
  300. package/dist/src/server/tasks-file.js +101 -0
  301. package/dist/src/server/tasks-websocket-server.d.ts +8 -0
  302. package/dist/src/server/tasks-websocket-server.js +95 -0
  303. package/dist/src/server/team-authz.d.ts +13 -0
  304. package/dist/src/server/team-authz.js +53 -0
  305. package/dist/src/server/team-autostaff.d.ts +16 -0
  306. package/dist/src/server/team-autostaff.js +16 -0
  307. package/dist/src/server/team-list-enrichment.d.ts +22 -0
  308. package/dist/src/server/team-list-enrichment.js +40 -0
  309. package/dist/src/server/team-list-serializer.d.ts +2 -0
  310. package/dist/src/server/team-list-serializer.js +11 -0
  311. package/dist/src/server/team-memory-digest.d.ts +52 -0
  312. package/dist/src/server/team-memory-digest.js +200 -0
  313. package/dist/src/server/team-memory-dream-applier.d.ts +5 -0
  314. package/dist/src/server/team-memory-dream-applier.js +234 -0
  315. package/dist/src/server/team-memory-dream-http-serializers.d.ts +13 -0
  316. package/dist/src/server/team-memory-dream-http-serializers.js +12 -0
  317. package/dist/src/server/team-memory-dream-ops.d.ts +40 -0
  318. package/dist/src/server/team-memory-dream-ops.js +153 -0
  319. package/dist/src/server/team-memory-dream-reverter.d.ts +22 -0
  320. package/dist/src/server/team-memory-dream-reverter.js +221 -0
  321. package/dist/src/server/team-memory-dream-run-store.d.ts +23 -0
  322. package/dist/src/server/team-memory-dream-run-store.js +211 -0
  323. package/dist/src/server/team-memory-dream-runner.d.ts +37 -0
  324. package/dist/src/server/team-memory-dream-runner.js +178 -0
  325. package/dist/src/server/team-memory-dream-scheduler.d.ts +32 -0
  326. package/dist/src/server/team-memory-dream-scheduler.js +115 -0
  327. package/dist/src/server/team-memory-dream-store.d.ts +19 -0
  328. package/dist/src/server/team-memory-dream-store.js +16 -0
  329. package/dist/src/server/team-memory-dream-types.d.ts +104 -0
  330. package/dist/src/server/team-memory-dream-types.js +23 -0
  331. package/dist/src/server/team-memory-export.d.ts +22 -0
  332. package/dist/src/server/team-memory-export.js +220 -0
  333. package/dist/src/server/team-memory-feature.d.ts +12 -0
  334. package/dist/src/server/team-memory-feature.js +12 -0
  335. package/dist/src/server/team-memory-http-serializers.d.ts +102 -0
  336. package/dist/src/server/team-memory-http-serializers.js +46 -0
  337. package/dist/src/server/team-memory-injection.d.ts +31 -0
  338. package/dist/src/server/team-memory-injection.js +49 -0
  339. package/dist/src/server/team-memory-store.d.ts +116 -0
  340. package/dist/src/server/team-memory-store.js +513 -0
  341. package/dist/src/server/team-operations.d.ts +102 -0
  342. package/dist/src/server/team-operations.js +387 -0
  343. package/dist/src/server/team-recall-store.d.ts +38 -0
  344. package/dist/src/server/team-recall-store.js +205 -0
  345. package/dist/src/server/terminal-flow-control.d.ts +19 -0
  346. package/dist/src/server/terminal-flow-control.js +116 -0
  347. package/dist/src/server/terminal-input-profile.d.ts +10 -0
  348. package/dist/src/server/terminal-input-profile.js +9 -0
  349. package/dist/src/server/terminal-protocol.d.ts +29 -0
  350. package/dist/src/server/terminal-protocol.js +47 -0
  351. package/dist/src/server/terminal-state-mirror.d.ts +21 -0
  352. package/dist/src/server/terminal-state-mirror.js +67 -0
  353. package/dist/src/server/terminal-stream-hub.d.ts +9 -0
  354. package/dist/src/server/terminal-stream-hub.js +192 -0
  355. package/dist/src/server/terminal-ws-server.d.ts +6 -0
  356. package/dist/src/server/terminal-ws-server.js +115 -0
  357. package/dist/src/server/ui-auth-helpers.d.ts +4 -0
  358. package/dist/src/server/ui-auth-helpers.js +28 -0
  359. package/dist/src/server/ui-auth.d.ts +8 -0
  360. package/dist/src/server/ui-auth.js +32 -0
  361. package/dist/src/server/version-service.d.ts +16 -0
  362. package/dist/src/server/version-service.js +72 -0
  363. package/dist/src/server/webhook-notifier.d.ts +34 -0
  364. package/dist/src/server/webhook-notifier.js +47 -0
  365. package/dist/src/server/websocket-upgrade-safety.d.ts +10 -0
  366. package/dist/src/server/websocket-upgrade-safety.js +35 -0
  367. package/dist/src/server/windows-command-line.d.ts +3 -0
  368. package/dist/src/server/windows-command-line.js +9 -0
  369. package/dist/src/server/windows-filename.d.ts +2 -0
  370. package/dist/src/server/windows-filename.js +33 -0
  371. package/dist/src/server/worker-output-tracker.d.ts +14 -0
  372. package/dist/src/server/worker-output-tracker.js +50 -0
  373. package/dist/src/server/workflow-cli-policy.d.ts +60 -0
  374. package/dist/src/server/workflow-cli-policy.js +110 -0
  375. package/dist/src/server/workflow-dispatch-awaiter.d.ts +12 -0
  376. package/dist/src/server/workflow-dispatch-awaiter.js +80 -0
  377. package/dist/src/server/workflow-feature.d.ts +15 -0
  378. package/dist/src/server/workflow-feature.js +15 -0
  379. package/dist/src/server/workflow-http-serializers.d.ts +64 -0
  380. package/dist/src/server/workflow-http-serializers.js +58 -0
  381. package/dist/src/server/workflow-output-schema.d.ts +18 -0
  382. package/dist/src/server/workflow-output-schema.js +41 -0
  383. package/dist/src/server/workflow-run-log-store.d.ts +19 -0
  384. package/dist/src/server/workflow-run-log-store.js +45 -0
  385. package/dist/src/server/workflow-run-store.d.ts +50 -0
  386. package/dist/src/server/workflow-run-store.js +103 -0
  387. package/dist/src/server/workflow-runner.d.ts +147 -0
  388. package/dist/src/server/workflow-runner.js +411 -0
  389. package/dist/src/server/workflow-schedule-create.d.ts +14 -0
  390. package/dist/src/server/workflow-schedule-create.js +41 -0
  391. package/dist/src/server/workflow-schedule-store.d.ts +43 -0
  392. package/dist/src/server/workflow-schedule-store.js +112 -0
  393. package/dist/src/server/workflow-scheduler.d.ts +36 -0
  394. package/dist/src/server/workflow-scheduler.js +97 -0
  395. package/dist/src/server/workflow-script-loader.d.ts +34 -0
  396. package/dist/src/server/workflow-script-loader.js +106 -0
  397. package/dist/src/server/workspace-path-validation.d.ts +1 -0
  398. package/dist/src/server/workspace-path-validation.js +42 -0
  399. package/dist/src/server/workspace-shell-runtime.d.ts +35 -0
  400. package/dist/src/server/workspace-shell-runtime.js +228 -0
  401. package/dist/src/server/workspace-store-contract.d.ts +32 -0
  402. package/dist/src/server/workspace-store-contract.js +1 -0
  403. package/dist/src/server/workspace-store-hydration.d.ts +5 -0
  404. package/dist/src/server/workspace-store-hydration.js +76 -0
  405. package/dist/src/server/workspace-store-mutations.d.ts +14 -0
  406. package/dist/src/server/workspace-store-mutations.js +48 -0
  407. package/dist/src/server/workspace-store-support.d.ts +33 -0
  408. package/dist/src/server/workspace-store-support.js +36 -0
  409. package/dist/src/server/workspace-store.d.ts +5 -0
  410. package/dist/src/server/workspace-store.js +153 -0
  411. package/dist/src/shared/fs-browse.d.ts +1 -0
  412. package/dist/src/shared/fs-browse.js +1 -0
  413. package/dist/src/shared/open-targets.d.ts +20 -0
  414. package/dist/src/shared/open-targets.js +36 -0
  415. package/dist/src/shared/path-input.d.ts +12 -0
  416. package/dist/src/shared/path-input.js +22 -0
  417. package/dist/src/shared/remote-bridge-routing.d.ts +19 -0
  418. package/dist/src/shared/remote-bridge-routing.js +141 -0
  419. package/dist/src/shared/remote-crypto.d.ts +138 -0
  420. package/dist/src/shared/remote-crypto.js +427 -0
  421. package/dist/src/shared/remote-pairing-code.d.ts +7 -0
  422. package/dist/src/shared/remote-pairing-code.js +47 -0
  423. package/dist/src/shared/remote-protocol.d.ts +160 -0
  424. package/dist/src/shared/remote-protocol.js +526 -0
  425. package/dist/src/shared/team-memory.d.ts +11 -0
  426. package/dist/src/shared/team-memory.js +10 -0
  427. package/dist/src/shared/team-recall.d.ts +1 -0
  428. package/dist/src/shared/team-recall.js +1 -0
  429. package/dist/src/shared/types.d.ts +66 -0
  430. package/dist/src/shared/types.js +1 -0
  431. package/dist/vendor/marketplace/en/LICENSE +21 -0
  432. package/dist/vendor/marketplace/en/SOURCES.md +12 -0
  433. package/dist/vendor/marketplace/en/academic/academic-anthropologist.md +125 -0
  434. package/dist/vendor/marketplace/en/academic/academic-geographer.md +127 -0
  435. package/dist/vendor/marketplace/en/academic/academic-historian.md +123 -0
  436. package/dist/vendor/marketplace/en/academic/academic-narratologist.md +118 -0
  437. package/dist/vendor/marketplace/en/academic/academic-psychologist.md +118 -0
  438. package/dist/vendor/marketplace/en/design/design-brand-guardian.md +322 -0
  439. package/dist/vendor/marketplace/en/design/design-image-prompt-engineer.md +236 -0
  440. package/dist/vendor/marketplace/en/design/design-inclusive-visuals-specialist.md +71 -0
  441. package/dist/vendor/marketplace/en/design/design-ui-designer.md +383 -0
  442. package/dist/vendor/marketplace/en/design/design-ux-architect.md +469 -0
  443. package/dist/vendor/marketplace/en/design/design-ux-researcher.md +329 -0
  444. package/dist/vendor/marketplace/en/design/design-visual-storyteller.md +149 -0
  445. package/dist/vendor/marketplace/en/design/design-whimsy-injector.md +438 -0
  446. package/dist/vendor/marketplace/en/engineering/engineering-ai-data-remediation-engineer.md +211 -0
  447. package/dist/vendor/marketplace/en/engineering/engineering-ai-engineer.md +146 -0
  448. package/dist/vendor/marketplace/en/engineering/engineering-autonomous-optimization-architect.md +107 -0
  449. package/dist/vendor/marketplace/en/engineering/engineering-backend-architect.md +235 -0
  450. package/dist/vendor/marketplace/en/engineering/engineering-cms-developer.md +536 -0
  451. package/dist/vendor/marketplace/en/engineering/engineering-code-reviewer.md +76 -0
  452. package/dist/vendor/marketplace/en/engineering/engineering-codebase-onboarding-engineer.md +173 -0
  453. package/dist/vendor/marketplace/en/engineering/engineering-data-engineer.md +306 -0
  454. package/dist/vendor/marketplace/en/engineering/engineering-database-optimizer.md +176 -0
  455. package/dist/vendor/marketplace/en/engineering/engineering-devops-automator.md +376 -0
  456. package/dist/vendor/marketplace/en/engineering/engineering-email-intelligence-engineer.md +353 -0
  457. package/dist/vendor/marketplace/en/engineering/engineering-embedded-firmware-engineer.md +173 -0
  458. package/dist/vendor/marketplace/en/engineering/engineering-feishu-integration-developer.md +598 -0
  459. package/dist/vendor/marketplace/en/engineering/engineering-filament-optimization-specialist.md +283 -0
  460. package/dist/vendor/marketplace/en/engineering/engineering-frontend-developer.md +225 -0
  461. package/dist/vendor/marketplace/en/engineering/engineering-git-workflow-master.md +84 -0
  462. package/dist/vendor/marketplace/en/engineering/engineering-incident-response-commander.md +444 -0
  463. package/dist/vendor/marketplace/en/engineering/engineering-minimal-change-engineer.md +207 -0
  464. package/dist/vendor/marketplace/en/engineering/engineering-mobile-app-builder.md +493 -0
  465. package/dist/vendor/marketplace/en/engineering/engineering-rapid-prototyper.md +462 -0
  466. package/dist/vendor/marketplace/en/engineering/engineering-security-engineer.md +304 -0
  467. package/dist/vendor/marketplace/en/engineering/engineering-senior-developer.md +176 -0
  468. package/dist/vendor/marketplace/en/engineering/engineering-software-architect.md +81 -0
  469. package/dist/vendor/marketplace/en/engineering/engineering-solidity-smart-contract-engineer.md +522 -0
  470. package/dist/vendor/marketplace/en/engineering/engineering-sre.md +90 -0
  471. package/dist/vendor/marketplace/en/engineering/engineering-technical-writer.md +393 -0
  472. package/dist/vendor/marketplace/en/engineering/engineering-threat-detection-engineer.md +534 -0
  473. package/dist/vendor/marketplace/en/engineering/engineering-voice-ai-integration-engineer.md +561 -0
  474. package/dist/vendor/marketplace/en/engineering/engineering-wechat-mini-program-developer.md +350 -0
  475. package/dist/vendor/marketplace/en/finance/finance-bookkeeper-controller.md +260 -0
  476. package/dist/vendor/marketplace/en/finance/finance-financial-analyst.md +234 -0
  477. package/dist/vendor/marketplace/en/finance/finance-fpa-analyst.md +263 -0
  478. package/dist/vendor/marketplace/en/finance/finance-investment-researcher.md +272 -0
  479. package/dist/vendor/marketplace/en/finance/finance-tax-strategist.md +239 -0
  480. package/dist/vendor/marketplace/en/game-development/blender/blender-addon-engineer.md +234 -0
  481. package/dist/vendor/marketplace/en/game-development/game-audio-engineer.md +264 -0
  482. package/dist/vendor/marketplace/en/game-development/game-designer.md +167 -0
  483. package/dist/vendor/marketplace/en/game-development/godot/godot-gameplay-scripter.md +334 -0
  484. package/dist/vendor/marketplace/en/game-development/godot/godot-multiplayer-engineer.md +297 -0
  485. package/dist/vendor/marketplace/en/game-development/godot/godot-shader-developer.md +266 -0
  486. package/dist/vendor/marketplace/en/game-development/level-designer.md +208 -0
  487. package/dist/vendor/marketplace/en/game-development/narrative-designer.md +243 -0
  488. package/dist/vendor/marketplace/en/game-development/roblox-studio/roblox-avatar-creator.md +297 -0
  489. package/dist/vendor/marketplace/en/game-development/roblox-studio/roblox-experience-designer.md +305 -0
  490. package/dist/vendor/marketplace/en/game-development/roblox-studio/roblox-systems-scripter.md +325 -0
  491. package/dist/vendor/marketplace/en/game-development/technical-artist.md +229 -0
  492. package/dist/vendor/marketplace/en/game-development/unity/unity-architect.md +271 -0
  493. package/dist/vendor/marketplace/en/game-development/unity/unity-editor-tool-developer.md +310 -0
  494. package/dist/vendor/marketplace/en/game-development/unity/unity-multiplayer-engineer.md +321 -0
  495. package/dist/vendor/marketplace/en/game-development/unity/unity-shader-graph-artist.md +269 -0
  496. package/dist/vendor/marketplace/en/game-development/unreal-engine/unreal-multiplayer-architect.md +313 -0
  497. package/dist/vendor/marketplace/en/game-development/unreal-engine/unreal-systems-engineer.md +310 -0
  498. package/dist/vendor/marketplace/en/game-development/unreal-engine/unreal-technical-artist.md +256 -0
  499. package/dist/vendor/marketplace/en/game-development/unreal-engine/unreal-world-builder.md +273 -0
  500. package/dist/vendor/marketplace/en/integrations/mcp-memory/backend-architect-with-memory.md +247 -0
  501. package/dist/vendor/marketplace/en/manifest.json +1869 -0
  502. package/dist/vendor/marketplace/en/marketing/marketing-agentic-search-optimizer.md +311 -0
  503. package/dist/vendor/marketplace/en/marketing/marketing-ai-citation-strategist.md +170 -0
  504. package/dist/vendor/marketplace/en/marketing/marketing-app-store-optimizer.md +321 -0
  505. package/dist/vendor/marketplace/en/marketing/marketing-baidu-seo-specialist.md +226 -0
  506. package/dist/vendor/marketplace/en/marketing/marketing-bilibili-content-strategist.md +199 -0
  507. package/dist/vendor/marketplace/en/marketing/marketing-book-co-author.md +110 -0
  508. package/dist/vendor/marketplace/en/marketing/marketing-carousel-growth-engine.md +199 -0
  509. package/dist/vendor/marketplace/en/marketing/marketing-china-ecommerce-operator.md +283 -0
  510. package/dist/vendor/marketplace/en/marketing/marketing-china-market-localization-strategist.md +283 -0
  511. package/dist/vendor/marketplace/en/marketing/marketing-content-creator.md +54 -0
  512. package/dist/vendor/marketplace/en/marketing/marketing-cross-border-ecommerce.md +259 -0
  513. package/dist/vendor/marketplace/en/marketing/marketing-douyin-strategist.md +149 -0
  514. package/dist/vendor/marketplace/en/marketing/marketing-growth-hacker.md +54 -0
  515. package/dist/vendor/marketplace/en/marketing/marketing-instagram-curator.md +113 -0
  516. package/dist/vendor/marketplace/en/marketing/marketing-kuaishou-strategist.md +223 -0
  517. package/dist/vendor/marketplace/en/marketing/marketing-linkedin-content-creator.md +214 -0
  518. package/dist/vendor/marketplace/en/marketing/marketing-livestream-commerce-coach.md +305 -0
  519. package/dist/vendor/marketplace/en/marketing/marketing-podcast-strategist.md +277 -0
  520. package/dist/vendor/marketplace/en/marketing/marketing-private-domain-operator.md +308 -0
  521. package/dist/vendor/marketplace/en/marketing/marketing-reddit-community-builder.md +123 -0
  522. package/dist/vendor/marketplace/en/marketing/marketing-seo-specialist.md +321 -0
  523. package/dist/vendor/marketplace/en/marketing/marketing-short-video-editing-coach.md +412 -0
  524. package/dist/vendor/marketplace/en/marketing/marketing-social-media-strategist.md +125 -0
  525. package/dist/vendor/marketplace/en/marketing/marketing-tiktok-strategist.md +125 -0
  526. package/dist/vendor/marketplace/en/marketing/marketing-twitter-engager.md +126 -0
  527. package/dist/vendor/marketplace/en/marketing/marketing-video-optimization-specialist.md +119 -0
  528. package/dist/vendor/marketplace/en/marketing/marketing-wechat-official-account.md +145 -0
  529. package/dist/vendor/marketplace/en/marketing/marketing-weibo-strategist.md +240 -0
  530. package/dist/vendor/marketplace/en/marketing/marketing-xiaohongshu-specialist.md +138 -0
  531. package/dist/vendor/marketplace/en/marketing/marketing-zhihu-strategist.md +162 -0
  532. package/dist/vendor/marketplace/en/paid-media/paid-media-auditor.md +71 -0
  533. package/dist/vendor/marketplace/en/paid-media/paid-media-creative-strategist.md +71 -0
  534. package/dist/vendor/marketplace/en/paid-media/paid-media-paid-social-strategist.md +71 -0
  535. package/dist/vendor/marketplace/en/paid-media/paid-media-ppc-strategist.md +71 -0
  536. package/dist/vendor/marketplace/en/paid-media/paid-media-programmatic-buyer.md +71 -0
  537. package/dist/vendor/marketplace/en/paid-media/paid-media-search-query-analyst.md +71 -0
  538. package/dist/vendor/marketplace/en/paid-media/paid-media-tracking-specialist.md +71 -0
  539. package/dist/vendor/marketplace/en/product/product-behavioral-nudge-engine.md +80 -0
  540. package/dist/vendor/marketplace/en/product/product-feedback-synthesizer.md +119 -0
  541. package/dist/vendor/marketplace/en/product/product-manager.md +469 -0
  542. package/dist/vendor/marketplace/en/product/product-sprint-prioritizer.md +154 -0
  543. package/dist/vendor/marketplace/en/product/product-trend-researcher.md +159 -0
  544. package/dist/vendor/marketplace/en/project-management/project-management-experiment-tracker.md +198 -0
  545. package/dist/vendor/marketplace/en/project-management/project-management-jira-workflow-steward.md +230 -0
  546. package/dist/vendor/marketplace/en/project-management/project-management-project-shepherd.md +194 -0
  547. package/dist/vendor/marketplace/en/project-management/project-management-studio-operations.md +200 -0
  548. package/dist/vendor/marketplace/en/project-management/project-management-studio-producer.md +203 -0
  549. package/dist/vendor/marketplace/en/project-management/project-manager-senior.md +135 -0
  550. package/dist/vendor/marketplace/en/sales/sales-account-strategist.md +227 -0
  551. package/dist/vendor/marketplace/en/sales/sales-coach.md +271 -0
  552. package/dist/vendor/marketplace/en/sales/sales-deal-strategist.md +180 -0
  553. package/dist/vendor/marketplace/en/sales/sales-discovery-coach.md +225 -0
  554. package/dist/vendor/marketplace/en/sales/sales-engineer.md +182 -0
  555. package/dist/vendor/marketplace/en/sales/sales-outbound-strategist.md +201 -0
  556. package/dist/vendor/marketplace/en/sales/sales-pipeline-analyst.md +267 -0
  557. package/dist/vendor/marketplace/en/sales/sales-proposal-strategist.md +217 -0
  558. package/dist/vendor/marketplace/en/spatial-computing/macos-spatial-metal-engineer.md +337 -0
  559. package/dist/vendor/marketplace/en/spatial-computing/terminal-integration-specialist.md +70 -0
  560. package/dist/vendor/marketplace/en/spatial-computing/visionos-spatial-engineer.md +54 -0
  561. package/dist/vendor/marketplace/en/spatial-computing/xr-cockpit-interaction-specialist.md +32 -0
  562. package/dist/vendor/marketplace/en/spatial-computing/xr-immersive-developer.md +32 -0
  563. package/dist/vendor/marketplace/en/spatial-computing/xr-interface-architect.md +32 -0
  564. package/dist/vendor/marketplace/en/specialized/accounts-payable-agent.md +185 -0
  565. package/dist/vendor/marketplace/en/specialized/agentic-identity-trust.md +387 -0
  566. package/dist/vendor/marketplace/en/specialized/agents-orchestrator.md +367 -0
  567. package/dist/vendor/marketplace/en/specialized/automation-governance-architect.md +216 -0
  568. package/dist/vendor/marketplace/en/specialized/blockchain-security-auditor.md +463 -0
  569. package/dist/vendor/marketplace/en/specialized/compliance-auditor.md +158 -0
  570. package/dist/vendor/marketplace/en/specialized/corporate-training-designer.md +192 -0
  571. package/dist/vendor/marketplace/en/specialized/customer-service.md +398 -0
  572. package/dist/vendor/marketplace/en/specialized/data-consolidation-agent.md +60 -0
  573. package/dist/vendor/marketplace/en/specialized/government-digital-presales-consultant.md +363 -0
  574. package/dist/vendor/marketplace/en/specialized/healthcare-customer-service.md +389 -0
  575. package/dist/vendor/marketplace/en/specialized/healthcare-marketing-compliance.md +395 -0
  576. package/dist/vendor/marketplace/en/specialized/hospitality-guest-services.md +603 -0
  577. package/dist/vendor/marketplace/en/specialized/hr-onboarding.md +451 -0
  578. package/dist/vendor/marketplace/en/specialized/identity-graph-operator.md +260 -0
  579. package/dist/vendor/marketplace/en/specialized/language-translator.md +264 -0
  580. package/dist/vendor/marketplace/en/specialized/legal-billing-time-tracking.md +569 -0
  581. package/dist/vendor/marketplace/en/specialized/legal-client-intake.md +492 -0
  582. package/dist/vendor/marketplace/en/specialized/legal-document-review.md +454 -0
  583. package/dist/vendor/marketplace/en/specialized/loan-officer-assistant.md +555 -0
  584. package/dist/vendor/marketplace/en/specialized/lsp-index-engineer.md +314 -0
  585. package/dist/vendor/marketplace/en/specialized/real-estate-buyer-seller.md +596 -0
  586. package/dist/vendor/marketplace/en/specialized/recruitment-specialist.md +509 -0
  587. package/dist/vendor/marketplace/en/specialized/report-distribution-agent.md +65 -0
  588. package/dist/vendor/marketplace/en/specialized/retail-customer-returns.md +566 -0
  589. package/dist/vendor/marketplace/en/specialized/sales-data-extraction-agent.md +67 -0
  590. package/dist/vendor/marketplace/en/specialized/sales-outreach.md +425 -0
  591. package/dist/vendor/marketplace/en/specialized/specialized-chief-of-staff.md +279 -0
  592. package/dist/vendor/marketplace/en/specialized/specialized-civil-engineer.md +356 -0
  593. package/dist/vendor/marketplace/en/specialized/specialized-cultural-intelligence-strategist.md +88 -0
  594. package/dist/vendor/marketplace/en/specialized/specialized-developer-advocate.md +317 -0
  595. package/dist/vendor/marketplace/en/specialized/specialized-document-generator.md +55 -0
  596. package/dist/vendor/marketplace/en/specialized/specialized-french-consulting-market.md +192 -0
  597. package/dist/vendor/marketplace/en/specialized/specialized-korean-business-navigator.md +216 -0
  598. package/dist/vendor/marketplace/en/specialized/specialized-mcp-builder.md +248 -0
  599. package/dist/vendor/marketplace/en/specialized/specialized-model-qa.md +488 -0
  600. package/dist/vendor/marketplace/en/specialized/specialized-salesforce-architect.md +180 -0
  601. package/dist/vendor/marketplace/en/specialized/specialized-workflow-architect.md +597 -0
  602. package/dist/vendor/marketplace/en/specialized/study-abroad-advisor.md +282 -0
  603. package/dist/vendor/marketplace/en/specialized/supply-chain-strategist.md +582 -0
  604. package/dist/vendor/marketplace/en/support/support-analytics-reporter.md +365 -0
  605. package/dist/vendor/marketplace/en/support/support-executive-summary-generator.md +212 -0
  606. package/dist/vendor/marketplace/en/support/support-finance-tracker.md +442 -0
  607. package/dist/vendor/marketplace/en/support/support-infrastructure-maintainer.md +618 -0
  608. package/dist/vendor/marketplace/en/support/support-legal-compliance-checker.md +588 -0
  609. package/dist/vendor/marketplace/en/support/support-support-responder.md +585 -0
  610. package/dist/vendor/marketplace/en/testing/testing-accessibility-auditor.md +316 -0
  611. package/dist/vendor/marketplace/en/testing/testing-api-tester.md +306 -0
  612. package/dist/vendor/marketplace/en/testing/testing-evidence-collector.md +210 -0
  613. package/dist/vendor/marketplace/en/testing/testing-performance-benchmarker.md +268 -0
  614. package/dist/vendor/marketplace/en/testing/testing-reality-checker.md +236 -0
  615. package/dist/vendor/marketplace/en/testing/testing-test-results-analyzer.md +305 -0
  616. package/dist/vendor/marketplace/en/testing/testing-tool-evaluator.md +394 -0
  617. package/dist/vendor/marketplace/en/testing/testing-workflow-optimizer.md +450 -0
  618. package/dist/vendor/marketplace/zh/LICENSE +22 -0
  619. package/dist/vendor/marketplace/zh/SOURCES.md +12 -0
  620. package/dist/vendor/marketplace/zh/academic/academic-anthropologist.md +124 -0
  621. package/dist/vendor/marketplace/zh/academic/academic-geographer.md +126 -0
  622. package/dist/vendor/marketplace/zh/academic/academic-historian.md +122 -0
  623. package/dist/vendor/marketplace/zh/academic/academic-narratologist.md +117 -0
  624. package/dist/vendor/marketplace/zh/academic/academic-psychologist.md +117 -0
  625. package/dist/vendor/marketplace/zh/academic/academic-study-planner.md +214 -0
  626. package/dist/vendor/marketplace/zh/design/design-brand-guardian.md +321 -0
  627. package/dist/vendor/marketplace/zh/design/design-image-prompt-engineer.md +255 -0
  628. package/dist/vendor/marketplace/zh/design/design-inclusive-visuals-specialist.md +177 -0
  629. package/dist/vendor/marketplace/zh/design/design-ui-designer.md +382 -0
  630. package/dist/vendor/marketplace/zh/design/design-ux-architect.md +482 -0
  631. package/dist/vendor/marketplace/zh/design/design-ux-researcher.md +328 -0
  632. package/dist/vendor/marketplace/zh/design/design-visual-storyteller.md +159 -0
  633. package/dist/vendor/marketplace/zh/design/design-whimsy-injector.md +453 -0
  634. package/dist/vendor/marketplace/zh/engineering/engineering-ai-data-remediation-engineer.md +209 -0
  635. package/dist/vendor/marketplace/zh/engineering/engineering-ai-engineer.md +161 -0
  636. package/dist/vendor/marketplace/zh/engineering/engineering-autonomous-optimization-architect.md +115 -0
  637. package/dist/vendor/marketplace/zh/engineering/engineering-backend-architect.md +234 -0
  638. package/dist/vendor/marketplace/zh/engineering/engineering-cms-developer.md +534 -0
  639. package/dist/vendor/marketplace/zh/engineering/engineering-code-reviewer.md +172 -0
  640. package/dist/vendor/marketplace/zh/engineering/engineering-codebase-onboarding-engineer.md +172 -0
  641. package/dist/vendor/marketplace/zh/engineering/engineering-data-engineer.md +324 -0
  642. package/dist/vendor/marketplace/zh/engineering/engineering-database-optimizer.md +175 -0
  643. package/dist/vendor/marketplace/zh/engineering/engineering-devops-automator.md +375 -0
  644. package/dist/vendor/marketplace/zh/engineering/engineering-dingtalk-integration-developer.md +574 -0
  645. package/dist/vendor/marketplace/zh/engineering/engineering-email-intelligence-engineer.md +349 -0
  646. package/dist/vendor/marketplace/zh/engineering/engineering-embedded-firmware-engineer.md +168 -0
  647. package/dist/vendor/marketplace/zh/engineering/engineering-embedded-linux-driver-engineer.md +255 -0
  648. package/dist/vendor/marketplace/zh/engineering/engineering-feishu-integration-developer.md +597 -0
  649. package/dist/vendor/marketplace/zh/engineering/engineering-filament-optimization-specialist.md +283 -0
  650. package/dist/vendor/marketplace/zh/engineering/engineering-fpga-digital-design-engineer.md +227 -0
  651. package/dist/vendor/marketplace/zh/engineering/engineering-frontend-developer.md +224 -0
  652. package/dist/vendor/marketplace/zh/engineering/engineering-git-workflow-master.md +220 -0
  653. package/dist/vendor/marketplace/zh/engineering/engineering-incident-response-commander.md +465 -0
  654. package/dist/vendor/marketplace/zh/engineering/engineering-iot-solution-architect.md +220 -0
  655. package/dist/vendor/marketplace/zh/engineering/engineering-mechanical-design-engineer.md +311 -0
  656. package/dist/vendor/marketplace/zh/engineering/engineering-minimal-change-engineer.md +206 -0
  657. package/dist/vendor/marketplace/zh/engineering/engineering-mobile-app-builder.md +434 -0
  658. package/dist/vendor/marketplace/zh/engineering/engineering-pc-host-engineer.md +231 -0
  659. package/dist/vendor/marketplace/zh/engineering/engineering-rapid-prototyper.md +461 -0
  660. package/dist/vendor/marketplace/zh/engineering/engineering-security-engineer.md +303 -0
  661. package/dist/vendor/marketplace/zh/engineering/engineering-senior-developer.md +177 -0
  662. package/dist/vendor/marketplace/zh/engineering/engineering-software-architect.md +200 -0
  663. package/dist/vendor/marketplace/zh/engineering/engineering-solidity-smart-contract-engineer.md +541 -0
  664. package/dist/vendor/marketplace/zh/engineering/engineering-sre.md +233 -0
  665. package/dist/vendor/marketplace/zh/engineering/engineering-technical-writer.md +409 -0
  666. package/dist/vendor/marketplace/zh/engineering/engineering-threat-detection-engineer.md +553 -0
  667. package/dist/vendor/marketplace/zh/engineering/engineering-voice-ai-integration-engineer.md +560 -0
  668. package/dist/vendor/marketplace/zh/engineering/engineering-wechat-mini-program-developer.md +288 -0
  669. package/dist/vendor/marketplace/zh/finance/finance-bookkeeper-controller.md +271 -0
  670. package/dist/vendor/marketplace/zh/finance/finance-financial-analyst.md +244 -0
  671. package/dist/vendor/marketplace/zh/finance/finance-financial-forecaster.md +213 -0
  672. package/dist/vendor/marketplace/zh/finance/finance-fpa-analyst.md +272 -0
  673. package/dist/vendor/marketplace/zh/finance/finance-fraud-detector.md +241 -0
  674. package/dist/vendor/marketplace/zh/finance/finance-investment-researcher.md +283 -0
  675. package/dist/vendor/marketplace/zh/finance/finance-invoice-manager.md +242 -0
  676. package/dist/vendor/marketplace/zh/finance/finance-tax-strategist.md +250 -0
  677. package/dist/vendor/marketplace/zh/game-development/blender/blender-addon-engineer.md +233 -0
  678. package/dist/vendor/marketplace/zh/game-development/game-audio-engineer.md +265 -0
  679. package/dist/vendor/marketplace/zh/game-development/game-designer.md +168 -0
  680. package/dist/vendor/marketplace/zh/game-development/godot/godot-gameplay-scripter.md +335 -0
  681. package/dist/vendor/marketplace/zh/game-development/godot/godot-multiplayer-engineer.md +296 -0
  682. package/dist/vendor/marketplace/zh/game-development/godot/godot-shader-developer.md +267 -0
  683. package/dist/vendor/marketplace/zh/game-development/level-designer.md +209 -0
  684. package/dist/vendor/marketplace/zh/game-development/narrative-designer.md +244 -0
  685. package/dist/vendor/marketplace/zh/game-development/roblox-studio/roblox-avatar-creator.md +298 -0
  686. package/dist/vendor/marketplace/zh/game-development/roblox-studio/roblox-experience-designer.md +306 -0
  687. package/dist/vendor/marketplace/zh/game-development/roblox-studio/roblox-systems-scripter.md +325 -0
  688. package/dist/vendor/marketplace/zh/game-development/technical-artist.md +230 -0
  689. package/dist/vendor/marketplace/zh/game-development/unity/unity-architect.md +272 -0
  690. package/dist/vendor/marketplace/zh/game-development/unity/unity-editor-tool-developer.md +300 -0
  691. package/dist/vendor/marketplace/zh/game-development/unity/unity-multiplayer-engineer.md +238 -0
  692. package/dist/vendor/marketplace/zh/game-development/unity/unity-shader-graph-artist.md +270 -0
  693. package/dist/vendor/marketplace/zh/game-development/unreal-engine/unreal-multiplayer-architect.md +314 -0
  694. package/dist/vendor/marketplace/zh/game-development/unreal-engine/unreal-systems-engineer.md +311 -0
  695. package/dist/vendor/marketplace/zh/game-development/unreal-engine/unreal-technical-artist.md +256 -0
  696. package/dist/vendor/marketplace/zh/game-development/unreal-engine/unreal-world-builder.md +274 -0
  697. package/dist/vendor/marketplace/zh/hr/hr-performance-reviewer.md +248 -0
  698. package/dist/vendor/marketplace/zh/hr/hr-recruiter.md +232 -0
  699. package/dist/vendor/marketplace/zh/legal/legal-contract-reviewer.md +240 -0
  700. package/dist/vendor/marketplace/zh/legal/legal-policy-writer.md +308 -0
  701. package/dist/vendor/marketplace/zh/manifest.json +2181 -0
  702. package/dist/vendor/marketplace/zh/marketing/marketing-agentic-search-optimizer.md +312 -0
  703. package/dist/vendor/marketplace/zh/marketing/marketing-ai-citation-strategist.md +169 -0
  704. package/dist/vendor/marketplace/zh/marketing/marketing-app-store-optimizer.md +319 -0
  705. package/dist/vendor/marketplace/zh/marketing/marketing-baidu-seo-specialist.md +220 -0
  706. package/dist/vendor/marketplace/zh/marketing/marketing-bilibili-strategist.md +194 -0
  707. package/dist/vendor/marketplace/zh/marketing/marketing-book-co-author.md +109 -0
  708. package/dist/vendor/marketplace/zh/marketing/marketing-carousel-growth-engine.md +215 -0
  709. package/dist/vendor/marketplace/zh/marketing/marketing-china-ecommerce-operator.md +277 -0
  710. package/dist/vendor/marketplace/zh/marketing/marketing-china-market-localization-strategist.md +282 -0
  711. package/dist/vendor/marketplace/zh/marketing/marketing-content-creator.md +145 -0
  712. package/dist/vendor/marketplace/zh/marketing/marketing-cross-border-ecommerce.md +260 -0
  713. package/dist/vendor/marketplace/zh/marketing/marketing-daily-news-briefing.md +303 -0
  714. package/dist/vendor/marketplace/zh/marketing/marketing-douyin-strategist.md +150 -0
  715. package/dist/vendor/marketplace/zh/marketing/marketing-ecommerce-operator.md +216 -0
  716. package/dist/vendor/marketplace/zh/marketing/marketing-growth-hacker.md +121 -0
  717. package/dist/vendor/marketplace/zh/marketing/marketing-instagram-curator.md +179 -0
  718. package/dist/vendor/marketplace/zh/marketing/marketing-knowledge-commerce-strategist.md +384 -0
  719. package/dist/vendor/marketplace/zh/marketing/marketing-kuaishou-strategist.md +182 -0
  720. package/dist/vendor/marketplace/zh/marketing/marketing-linkedin-content-creator.md +232 -0
  721. package/dist/vendor/marketplace/zh/marketing/marketing-livestream-commerce-coach.md +303 -0
  722. package/dist/vendor/marketplace/zh/marketing/marketing-podcast-strategist.md +278 -0
  723. package/dist/vendor/marketplace/zh/marketing/marketing-private-domain-operator.md +309 -0
  724. package/dist/vendor/marketplace/zh/marketing/marketing-reddit-community-builder.md +127 -0
  725. package/dist/vendor/marketplace/zh/marketing/marketing-seo-specialist.md +298 -0
  726. package/dist/vendor/marketplace/zh/marketing/marketing-short-video-editing-coach.md +413 -0
  727. package/dist/vendor/marketplace/zh/marketing/marketing-social-media-strategist.md +118 -0
  728. package/dist/vendor/marketplace/zh/marketing/marketing-tiktok-strategist.md +124 -0
  729. package/dist/vendor/marketplace/zh/marketing/marketing-twitter-engager.md +132 -0
  730. package/dist/vendor/marketplace/zh/marketing/marketing-video-optimization-specialist.md +128 -0
  731. package/dist/vendor/marketplace/zh/marketing/marketing-wechat-official-account.md +158 -0
  732. package/dist/vendor/marketplace/zh/marketing/marketing-wechat-operator.md +156 -0
  733. package/dist/vendor/marketplace/zh/marketing/marketing-weibo-strategist.md +241 -0
  734. package/dist/vendor/marketplace/zh/marketing/marketing-weixin-channels-strategist.md +297 -0
  735. package/dist/vendor/marketplace/zh/marketing/marketing-xiaohongshu-operator.md +139 -0
  736. package/dist/vendor/marketplace/zh/marketing/marketing-xiaohongshu-specialist.md +151 -0
  737. package/dist/vendor/marketplace/zh/marketing/marketing-zhihu-strategist.md +175 -0
  738. package/dist/vendor/marketplace/zh/paid-media/paid-media-auditor.md +170 -0
  739. package/dist/vendor/marketplace/zh/paid-media/paid-media-creative-strategist.md +173 -0
  740. package/dist/vendor/marketplace/zh/paid-media/paid-media-paid-social-strategist.md +180 -0
  741. package/dist/vendor/marketplace/zh/paid-media/paid-media-ppc-strategist.md +180 -0
  742. package/dist/vendor/marketplace/zh/paid-media/paid-media-programmatic-buyer.md +177 -0
  743. package/dist/vendor/marketplace/zh/paid-media/paid-media-search-query-analyst.md +182 -0
  744. package/dist/vendor/marketplace/zh/paid-media/paid-media-tracking-specialist.md +199 -0
  745. package/dist/vendor/marketplace/zh/product/product-behavioral-nudge-engine.md +246 -0
  746. package/dist/vendor/marketplace/zh/product/product-feedback-synthesizer.md +175 -0
  747. package/dist/vendor/marketplace/zh/product/product-manager.md +474 -0
  748. package/dist/vendor/marketplace/zh/product/product-sprint-prioritizer.md +133 -0
  749. package/dist/vendor/marketplace/zh/product/product-trend-researcher.md +143 -0
  750. package/dist/vendor/marketplace/zh/project-management/project-management-experiment-tracker.md +206 -0
  751. package/dist/vendor/marketplace/zh/project-management/project-management-jira-workflow-steward.md +249 -0
  752. package/dist/vendor/marketplace/zh/project-management/project-management-project-shepherd.md +202 -0
  753. package/dist/vendor/marketplace/zh/project-management/project-management-studio-operations.md +208 -0
  754. package/dist/vendor/marketplace/zh/project-management/project-management-studio-producer.md +211 -0
  755. package/dist/vendor/marketplace/zh/project-management/project-manager-senior.md +135 -0
  756. package/dist/vendor/marketplace/zh/sales/sales-account-strategist.md +243 -0
  757. package/dist/vendor/marketplace/zh/sales/sales-coach.md +291 -0
  758. package/dist/vendor/marketplace/zh/sales/sales-deal-strategist.md +204 -0
  759. package/dist/vendor/marketplace/zh/sales/sales-discovery-coach.md +230 -0
  760. package/dist/vendor/marketplace/zh/sales/sales-engineer.md +200 -0
  761. package/dist/vendor/marketplace/zh/sales/sales-outbound-strategist.md +208 -0
  762. package/dist/vendor/marketplace/zh/sales/sales-pipeline-analyst.md +284 -0
  763. package/dist/vendor/marketplace/zh/sales/sales-proposal-strategist.md +233 -0
  764. package/dist/vendor/marketplace/zh/spatial-computing/macos-spatial-metal-engineer.md +337 -0
  765. package/dist/vendor/marketplace/zh/spatial-computing/terminal-integration-specialist.md +236 -0
  766. package/dist/vendor/marketplace/zh/spatial-computing/visionos-spatial-engineer.md +282 -0
  767. package/dist/vendor/marketplace/zh/spatial-computing/xr-cockpit-interaction-specialist.md +220 -0
  768. package/dist/vendor/marketplace/zh/spatial-computing/xr-immersive-developer.md +229 -0
  769. package/dist/vendor/marketplace/zh/spatial-computing/xr-interface-architect.md +253 -0
  770. package/dist/vendor/marketplace/zh/specialized/accounts-payable-agent.md +212 -0
  771. package/dist/vendor/marketplace/zh/specialized/agentic-identity-trust.md +388 -0
  772. package/dist/vendor/marketplace/zh/specialized/agents-orchestrator.md +366 -0
  773. package/dist/vendor/marketplace/zh/specialized/automation-governance-architect.md +215 -0
  774. package/dist/vendor/marketplace/zh/specialized/blockchain-security-auditor.md +484 -0
  775. package/dist/vendor/marketplace/zh/specialized/compliance-auditor.md +172 -0
  776. package/dist/vendor/marketplace/zh/specialized/corporate-training-designer.md +191 -0
  777. package/dist/vendor/marketplace/zh/specialized/data-consolidation-agent.md +327 -0
  778. package/dist/vendor/marketplace/zh/specialized/gaokao-college-advisor.md +333 -0
  779. package/dist/vendor/marketplace/zh/specialized/government-digital-presales-consultant.md +362 -0
  780. package/dist/vendor/marketplace/zh/specialized/healthcare-customer-service.md +388 -0
  781. package/dist/vendor/marketplace/zh/specialized/healthcare-marketing-compliance.md +394 -0
  782. package/dist/vendor/marketplace/zh/specialized/hospitality-guest-services.md +597 -0
  783. package/dist/vendor/marketplace/zh/specialized/hr-onboarding.md +450 -0
  784. package/dist/vendor/marketplace/zh/specialized/identity-graph-operator.md +270 -0
  785. package/dist/vendor/marketplace/zh/specialized/language-translator.md +275 -0
  786. package/dist/vendor/marketplace/zh/specialized/legal-billing-time-tracking.md +566 -0
  787. package/dist/vendor/marketplace/zh/specialized/legal-client-intake.md +487 -0
  788. package/dist/vendor/marketplace/zh/specialized/legal-document-review.md +452 -0
  789. package/dist/vendor/marketplace/zh/specialized/livestock-archive-auditor.md +135 -0
  790. package/dist/vendor/marketplace/zh/specialized/loan-officer-assistant.md +549 -0
  791. package/dist/vendor/marketplace/zh/specialized/lsp-index-engineer.md +334 -0
  792. package/dist/vendor/marketplace/zh/specialized/prompt-engineer.md +176 -0
  793. package/dist/vendor/marketplace/zh/specialized/real-estate-buyer-seller.md +594 -0
  794. package/dist/vendor/marketplace/zh/specialized/recruitment-specialist.md +508 -0
  795. package/dist/vendor/marketplace/zh/specialized/report-distribution-agent.md +354 -0
  796. package/dist/vendor/marketplace/zh/specialized/retail-customer-returns.md +564 -0
  797. package/dist/vendor/marketplace/zh/specialized/sales-data-extraction-agent.md +159 -0
  798. package/dist/vendor/marketplace/zh/specialized/specialized-ai-policy-writer.md +217 -0
  799. package/dist/vendor/marketplace/zh/specialized/specialized-chief-of-staff.md +278 -0
  800. package/dist/vendor/marketplace/zh/specialized/specialized-civil-engineer.md +355 -0
  801. package/dist/vendor/marketplace/zh/specialized/specialized-cultural-intelligence-strategist.md +168 -0
  802. package/dist/vendor/marketplace/zh/specialized/specialized-developer-advocate.md +334 -0
  803. package/dist/vendor/marketplace/zh/specialized/specialized-document-generator.md +346 -0
  804. package/dist/vendor/marketplace/zh/specialized/specialized-french-consulting-market.md +191 -0
  805. package/dist/vendor/marketplace/zh/specialized/specialized-korean-business-navigator.md +215 -0
  806. package/dist/vendor/marketplace/zh/specialized/specialized-mcp-builder.md +351 -0
  807. package/dist/vendor/marketplace/zh/specialized/specialized-meeting-assistant.md +236 -0
  808. package/dist/vendor/marketplace/zh/specialized/specialized-model-qa.md +507 -0
  809. package/dist/vendor/marketplace/zh/specialized/specialized-pricing-optimizer.md +254 -0
  810. package/dist/vendor/marketplace/zh/specialized/specialized-risk-assessor.md +240 -0
  811. package/dist/vendor/marketplace/zh/specialized/specialized-salesforce-architect.md +179 -0
  812. package/dist/vendor/marketplace/zh/specialized/specialized-workflow-architect.md +596 -0
  813. package/dist/vendor/marketplace/zh/specialized/study-abroad-advisor.md +281 -0
  814. package/dist/vendor/marketplace/zh/specialized/technical-translator-agent.md +167 -0
  815. package/dist/vendor/marketplace/zh/specialized/zk-steward.md +228 -0
  816. package/dist/vendor/marketplace/zh/supply-chain/supply-chain-inventory-forecaster.md +212 -0
  817. package/dist/vendor/marketplace/zh/supply-chain/supply-chain-route-optimizer.md +224 -0
  818. package/dist/vendor/marketplace/zh/supply-chain/supply-chain-strategist.md +581 -0
  819. package/dist/vendor/marketplace/zh/supply-chain/supply-chain-vendor-evaluator.md +232 -0
  820. package/dist/vendor/marketplace/zh/support/support-analytics-reporter.md +364 -0
  821. package/dist/vendor/marketplace/zh/support/support-executive-summary-generator.md +217 -0
  822. package/dist/vendor/marketplace/zh/support/support-finance-tracker.md +447 -0
  823. package/dist/vendor/marketplace/zh/support/support-infrastructure-maintainer.md +623 -0
  824. package/dist/vendor/marketplace/zh/support/support-legal-compliance-checker.md +587 -0
  825. package/dist/vendor/marketplace/zh/support/support-recruitment-specialist.md +508 -0
  826. package/dist/vendor/marketplace/zh/support/support-support-responder.md +584 -0
  827. package/dist/vendor/marketplace/zh/testing/testing-accessibility-auditor.md +329 -0
  828. package/dist/vendor/marketplace/zh/testing/testing-api-tester.md +305 -0
  829. package/dist/vendor/marketplace/zh/testing/testing-embedded-qa-engineer.md +258 -0
  830. package/dist/vendor/marketplace/zh/testing/testing-evidence-collector.md +153 -0
  831. package/dist/vendor/marketplace/zh/testing/testing-performance-benchmarker.md +196 -0
  832. package/dist/vendor/marketplace/zh/testing/testing-reality-checker.md +235 -0
  833. package/dist/vendor/marketplace/zh/testing/testing-test-results-analyzer.md +313 -0
  834. package/dist/vendor/marketplace/zh/testing/testing-tool-evaluator.md +402 -0
  835. package/dist/vendor/marketplace/zh/testing/testing-workflow-optimizer.md +458 -0
  836. package/package.json +131 -0
  837. package/scripts/postinstall-native-artifacts.mjs +113 -0
  838. package/web/dist/assets/AddWorkerDialog-BU2Fn-Mx.js +2 -0
  839. package/web/dist/assets/AddWorkspaceFlow-BV04MkRt.js +1 -0
  840. package/web/dist/assets/FirstRunWizard-DS4IYOrd.js +1 -0
  841. package/web/dist/assets/MarketplaceDrawer-CIQ2B6Fx.js +76 -0
  842. package/web/dist/assets/TaskGraphDrawer-BPMcRocd.js +1 -0
  843. package/web/dist/assets/WhatsNewDialog-DEgVY_LD.js +1 -0
  844. package/web/dist/assets/WorkerModal-DiCcTPpc.js +1 -0
  845. package/web/dist/assets/WorkflowsDrawer-M2CgAJWK.js +1 -0
  846. package/web/dist/assets/WorkspaceMemoryDrawer-ClJIqWck.js +1 -0
  847. package/web/dist/assets/WorkspaceTaskDrawer-gjvXuZ2K.js +1 -0
  848. package/web/dist/assets/addon-clipboard-wHJhZAA4.js +1 -0
  849. package/web/dist/assets/addon-fit-DX4qG4td.js +1 -0
  850. package/web/dist/assets/addon-unicode11-Bt8F3D7-.js +7 -0
  851. package/web/dist/assets/addon-web-links-DIbG5aQx.js +1 -0
  852. package/web/dist/assets/addon-webgl-DCtw1yLn.js +64 -0
  853. package/web/dist/assets/finder-C4Jmsb0B.png +0 -0
  854. package/web/dist/assets/ghostty-D-Js4rdm.png +0 -0
  855. package/web/dist/assets/index-bOMtwrkA.js +73 -0
  856. package/web/dist/assets/index-i9YgsMdD.css +1 -0
  857. package/web/dist/assets/path-join-7MR1s7b1.js +1 -0
  858. package/web/dist/assets/search-CmzeVhy0.js +1 -0
  859. package/web/dist/assets/xterm-B-qIQCd3.js +16 -0
  860. package/web/dist/assets/zed-C5BQT8X3.png +0 -0
  861. package/web/dist/bilibili.ico +0 -0
  862. package/web/dist/cli-icons/claude.png +0 -0
  863. package/web/dist/cli-icons/codex.png +0 -0
  864. package/web/dist/cli-icons/gemini.png +0 -0
  865. package/web/dist/cli-icons/hermes.png +0 -0
  866. package/web/dist/cli-icons/opencode.svg +18 -0
  867. package/web/dist/icons/apple-touch-icon-180.png +0 -0
  868. package/web/dist/icons/icon-192.png +0 -0
  869. package/web/dist/icons/icon-32.png +0 -0
  870. package/web/dist/icons/icon-512-maskable.png +0 -0
  871. package/web/dist/icons/icon-512.png +0 -0
  872. package/web/dist/index.html +39 -0
  873. package/web/dist/logo.png +0 -0
  874. package/web/dist/manifest.webmanifest +60 -0
  875. package/web/dist/screenshots/wide-overview.png +0 -0
  876. package/web/dist/sounds/LICENSE-KENNEY.txt +22 -0
  877. package/web/dist/sounds/hive-beacon.ogg +0 -0
  878. package/web/dist/sounds/hive-cascade.ogg +0 -0
  879. package/web/dist/sounds/hive-chime.ogg +0 -0
  880. package/web/dist/sounds/hive-ping.ogg +0 -0
  881. package/web/dist/sounds/hive-resolve.ogg +0 -0
  882. package/web/dist/sounds/hive-soft.ogg +0 -0
  883. package/web/dist/sw.js +99 -0
@@ -0,0 +1,113 @@
1
+ import { chmodSync, existsSync, readdirSync } from 'node:fs'
2
+ import { createRequire } from 'node:module'
3
+ import { dirname, join, relative, resolve } from 'node:path'
4
+ import { pathToFileURL } from 'node:url'
5
+
6
+ const executablePaths = [
7
+ 'bin/team',
8
+ 'bin/team.cmd',
9
+ 'dist/bin/team',
10
+ 'dist/bin/team.cmd',
11
+ 'node_modules/.pnpm/node-pty@1.1.0/node_modules/node-pty/prebuilds/darwin-arm64/spawn-helper',
12
+ ]
13
+
14
+ const require = createRequire(import.meta.url)
15
+
16
+ const WINDOWS_NODE_PTY_ARCHES = new Set(['x64', 'arm64'])
17
+
18
+ export const getExpectedWindowsNodePtyArtifacts = (
19
+ nodePtyRoot,
20
+ platform = process.platform,
21
+ arch = process.arch
22
+ ) => {
23
+ if (platform !== 'win32' || !WINDOWS_NODE_PTY_ARCHES.has(arch)) return []
24
+ const prebuildRoot = join(nodePtyRoot, 'prebuilds', `win32-${arch}`)
25
+ return [
26
+ join(prebuildRoot, 'conpty.node'),
27
+ join(prebuildRoot, 'conpty_console_list.node'),
28
+ join(prebuildRoot, 'pty.node'),
29
+ join(prebuildRoot, 'winpty-agent.exe'),
30
+ join(prebuildRoot, 'winpty.dll'),
31
+ join(prebuildRoot, 'conpty', 'conpty.dll'),
32
+ join(prebuildRoot, 'conpty', 'OpenConsole.exe'),
33
+ ]
34
+ }
35
+
36
+ export const findMissingWindowsNodePtyArtifacts = (
37
+ nodePtyRoot,
38
+ { arch = process.arch, exists = existsSync, platform = process.platform } = {}
39
+ ) =>
40
+ getExpectedWindowsNodePtyArtifacts(nodePtyRoot, platform, arch).filter(
41
+ (artifact) => !exists(artifact)
42
+ )
43
+
44
+ export const formatMissingWindowsNodePtyArtifactsMessage = (nodePtyRoot, missing) => {
45
+ const relativeMissing = missing.map((artifact) => relative(nodePtyRoot, artifact))
46
+ return [
47
+ '[hive] Windows PTY native artifacts are missing from node-pty.',
48
+ 'Hive needs these files to launch terminal agents on Windows.',
49
+ '',
50
+ 'Missing:',
51
+ ...relativeMissing.map((artifact) => ` - ${artifact}`),
52
+ '',
53
+ 'Try reinstalling without --ignore-scripts, or run:',
54
+ ' npm rebuild node-pty',
55
+ ].join('\n')
56
+ }
57
+
58
+ const resolveNodePtyRoot = (requireFn) => {
59
+ try {
60
+ return dirname(requireFn.resolve('node-pty/package.json'))
61
+ } catch {
62
+ return null
63
+ }
64
+ }
65
+
66
+ export const runPostinstall = ({
67
+ arch = process.arch,
68
+ chmod = chmodSync,
69
+ cwd = process.cwd(),
70
+ exists = existsSync,
71
+ platform = process.platform,
72
+ readdir = readdirSync,
73
+ requireFn = require,
74
+ stderr = console.error,
75
+ } = {}) => {
76
+ const pathsToChmod = [...executablePaths]
77
+ const nodePtyRoot = resolveNodePtyRoot(requireFn)
78
+
79
+ if (nodePtyRoot) {
80
+ const prebuildsDir = join(nodePtyRoot, 'prebuilds')
81
+ for (const entry of exists(prebuildsDir) ? readdir(prebuildsDir) : []) {
82
+ pathsToChmod.push(join(prebuildsDir, entry, 'spawn-helper'))
83
+ }
84
+
85
+ const missing = findMissingWindowsNodePtyArtifacts(nodePtyRoot, { arch, exists, platform })
86
+ if (missing.length > 0) {
87
+ throw new Error(formatMissingWindowsNodePtyArtifactsMessage(nodePtyRoot, missing))
88
+ }
89
+ }
90
+
91
+ for (const filePath of pathsToChmod) {
92
+ const resolvedPath = resolve(cwd, filePath)
93
+ if (!exists(resolvedPath)) continue
94
+ chmod(resolvedPath, 0o755)
95
+ }
96
+
97
+ stderr(
98
+ '[hive] Install note: npm may warn about allow-scripts for Hive, node-pty, better-sqlite3, and esbuild. These scripts install or verify native PTY/SQLite/bundler artifacts; see README troubleshooting if install finishes successfully.'
99
+ )
100
+ }
101
+
102
+ const isMainModule = process.argv[1]
103
+ ? pathToFileURL(resolve(process.argv[1])).href === import.meta.url
104
+ : false
105
+
106
+ if (isMainModule) {
107
+ try {
108
+ runPostinstall()
109
+ } catch (error) {
110
+ console.error(error instanceof Error ? error.message : String(error))
111
+ process.exitCode = 1
112
+ }
113
+ }
@@ -0,0 +1,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/MarketplaceDrawer-CIQ2B6Fx.js","assets/index-bOMtwrkA.js","assets/index-i9YgsMdD.css","assets/search-CmzeVhy0.js"])))=>i.map(i=>d[i]);
2
+ import{c as M,j as e,K as j,r as c,h as z,Q as P,m as Y,A as Z,F as R,a5 as ee,a6 as te,a7 as ae,u as re,R as se,P as ne,O as le,C as oe,d as ie,U as de,v as ce,X as me,T as xe,a8 as ue}from"./index-bOMtwrkA.js";import{S as pe}from"./search-CmzeVhy0.js";const he=[["path",{d:"M12 7v6",key:"lw1j43"}],["path",{d:"M15 10H9",key:"o6yqo3"}],["path",{d:"M17 3a2 2 0 0 1 2 2v15a1 1 0 0 1-1.496.868l-4.512-2.578a2 2 0 0 0-1.984 0l-4.512 2.578A1 1 0 0 1 5 20V5a2 2 0 0 1 2-2z",key:"oz39mx"}]],fe=M("bookmark-plus",he);const be=[["rect",{width:"12",height:"12",x:"2",y:"10",rx:"2",ry:"2",key:"6agr2n"}],["path",{d:"m17.92 14 3.5-3.5a2.24 2.24 0 0 0 0-3l-5-4.92a2.24 2.24 0 0 0-3 0L10 6",key:"1o487t"}],["path",{d:"M6 18h.01",key:"uhywen"}],["path",{d:"M10 14h.01",key:"ssrbsk"}],["path",{d:"M15 6h.01",key:"cblpky"}],["path",{d:"M18 9h.01",key:"2061c0"}]],ge=M("dices",be);const ve=[["path",{d:"m7 11 2-2-2-2",key:"1lz0vl"}],["path",{d:"M11 13h4",key:"1p7l4v"}],["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}]],ke=M("square-terminal",ve);const je=[["path",{d:"M15 21v-5a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v5",key:"slp6dd"}],["path",{d:"M17.774 10.31a1.12 1.12 0 0 0-1.549 0 2.5 2.5 0 0 1-3.451 0 1.12 1.12 0 0 0-1.548 0 2.5 2.5 0 0 1-3.452 0 1.12 1.12 0 0 0-1.549 0 2.5 2.5 0 0 1-3.77-3.248l2.889-4.184A2 2 0 0 1 7 2h10a2 2 0 0 1 1.653.873l2.895 4.192a2.5 2.5 0 0 1-3.774 3.244",key:"o0xfot"}],["path",{d:"M4 10.95V19a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8.05",key:"wn3emo"}]],ye=M("store",je),Ne=[{value:"coder"},{value:"reviewer"},{value:"tester"},{value:"custom",dashed:!0}],I=t=>`role.${t}`,w=({children:t})=>e.jsx("span",{className:"text-sm font-medium text-sec",children:t}),Ce=({active:t,spec:a,onSelect:l})=>{const{t:n}=j();return e.jsxs("button",{type:"button",onClick:l,"aria-pressed":t,"data-testid":`role-card-${a.value}`,className:`selectable-card${a.dashed?" selectable-card--dashed":""} flex items-center gap-3 px-3 py-2`,children:[e.jsx(ee,{role:a.value,size:20}),e.jsx("span",{className:"flex-1 text-left text-base font-medium text-pri",children:n(I(a.value))}),t?e.jsx(P,{size:14,className:"shrink-0 text-accent","aria-hidden":!0}):null]})},we=({onRoleChange:t,workerRole:a})=>{const{t:l}=j();return e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx(w,{children:l("addWorker.role")}),e.jsx("div",{className:"grid grid-cols-2 gap-2",children:Ne.map(n=>e.jsx(Ce,{active:a===n.value,spec:n,onSelect:()=>t(n.value)},n.value))})]})},We=({customTemplates:t,disabledReason:a,onDeleteTemplate:l,onSelect:n,selectedTemplateId:d})=>{const{t:o}=j(),[f,x]=c.useState(!1),[u,m]=c.useState(""),[b,v]=c.useState(null),y=c.useRef(null),g=c.useMemo(()=>t.find(r=>r.id===d)??null,[t,d]),k=c.useMemo(()=>{const r=u.trim().toLowerCase();return r?t.filter(s=>s.name.toLowerCase().includes(r)||s.description.toLowerCase().includes(r)):t},[t,u]);return c.useEffect(()=>{if(!f)return;const r=h=>{h.key==="Escape"&&x(!1)},s=h=>{const W=y.current;W&&!W.contains(h.target)&&x(!1)};return document.addEventListener("keydown",r),document.addEventListener("pointerdown",s),()=>{document.removeEventListener("keydown",r),document.removeEventListener("pointerdown",s)}},[f]),e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx(w,{children:o("addWorker.template")}),e.jsxs("div",{ref:y,className:"relative",children:[e.jsxs("button",{type:"button","aria-haspopup":"listbox","aria-expanded":f,"data-testid":"role-template-picker-trigger",onClick:()=>x(r=>!r),className:"flex w-full items-center justify-between gap-2 rounded border px-3 py-2 text-left text-sm transition-colors hover:bg-3",style:{borderColor:"var(--border)",background:"var(--bg-1)"},children:[e.jsx("span",{className:"min-w-0 flex-1 truncate text-pri",children:g?g.name:o("addWorker.templatePickPlaceholder")}),e.jsx(z,{size:14,className:"shrink-0 text-ter","aria-hidden":!0})]}),f?e.jsxs("div",{role:"listbox","aria-label":o("addWorker.template"),"data-testid":"role-template-picker-menu",className:"elev-2 absolute left-0 right-0 top-full z-30 mt-1 flex max-h-72 flex-col overflow-hidden rounded border",style:{background:"var(--bg-elevated)",borderColor:"var(--border-bright)"},children:[e.jsxs("div",{className:"flex items-center gap-2 border-b px-2 py-1.5",style:{borderColor:"var(--border)"},children:[e.jsx(pe,{size:14,className:"text-ter","aria-hidden":!0}),e.jsx("input",{value:u,onChange:r=>m(r.currentTarget.value),placeholder:o("addWorker.templateSearchPlaceholder"),"data-testid":"role-template-search-input",className:"w-full bg-transparent text-sm text-pri outline-none placeholder:text-ter",spellCheck:!1})]}),e.jsx("div",{className:"flex-1 overflow-y-auto py-1",children:t.length===0?e.jsx("div",{"data-testid":"role-template-empty-state",className:"px-3 py-3 text-center text-sm text-ter",children:o("addWorker.templateEmpty")}):k.length===0?e.jsx("div",{className:"px-3 py-3 text-center text-sm text-ter",children:o("addWorker.templateNoMatch")}):k.map(r=>{const s=r.id===d;return e.jsxs("div",{className:"relative",children:[e.jsxs("button",{type:"button",role:"option","aria-selected":s,"data-testid":`role-template-option-${r.id}`,onClick:()=>{n(r.id),x(!1),m("")},className:"flex w-full items-center gap-2 px-3 py-1.5 pr-9 text-left text-sm text-pri hover:bg-3",style:s?{background:"var(--bg-3)"}:void 0,children:[e.jsx("span",{className:"min-w-0 flex-1 truncate",children:r.name}),s?e.jsx(P,{size:14,className:"shrink-0 text-accent","aria-hidden":!0}):null]}),e.jsx("button",{type:"button","aria-label":o("addWorker.templateDeleteAria",{name:r.name}),"data-testid":`role-template-delete-${r.id}`,disabled:!!a,title:a??void 0,onClick:h=>{h.preventDefault(),h.stopPropagation(),!a&&v(r)},className:"absolute right-1 top-1/2 flex h-6 w-6 -translate-y-1/2 items-center justify-center rounded text-ter transition-colors hover:bg-3 hover:text-pri",children:e.jsx(Y,{size:14,"aria-hidden":!0})})]},r.id)})}),d!==null?e.jsx("button",{type:"button","data-testid":"role-template-clear",onClick:()=>{n(null),x(!1),m("")},className:"border-t px-3 py-1.5 text-left text-sm text-ter transition-colors hover:bg-3 hover:text-pri",style:{borderColor:"var(--border)"},children:o("addWorker.templateClear")}):null]}):null]}),e.jsx(Z,{open:b!==null,onOpenChange:r=>{r||v(null)},title:o("addWorker.templateDeleteTitle"),description:b?o("addWorker.templateDeleteConfirm",{name:b.name}):"",confirmLabel:o("addWorker.templateDeleteConfirmLabel"),confirmKind:"danger",onConfirm:()=>{if(!b||a)return;const r=b.id;v(null),l(r)}})]})},Se=({canSaveAsTemplate:t,modified:a,onChange:l,onReset:n,onSaveAsTemplate:d,roleDescription:o,templateBusy:f,workerRole:x,writeDisabledReason:u})=>{const{t:m}=j(),[b,v]=c.useState(!1),[y,g]=c.useState(!1),[k,r]=c.useState("");return c.useEffect(()=>{(x==="custom"||a)&&v(!0)},[a,x]),c.useEffect(()=>{t||(g(!1),r(""))},[t]),e.jsxs("details",{open:b,onToggle:s=>v(s.currentTarget.open),className:"group flex flex-col gap-2",children:[e.jsxs("summary",{className:"flex cursor-pointer select-none items-center justify-between gap-2 list-none",children:[e.jsxs("span",{className:"flex items-center gap-1.5",children:[e.jsx(z,{size:12,"aria-hidden":!0,className:"-rotate-90 text-ter transition-transform duration-150 group-open:rotate-0"}),e.jsx(w,{children:m("addWorker.roleInstructions")}),a?e.jsxs("span",{className:"text-sm text-ter",children:["· ",m("addWorker.modifiedFrom",{role:m(I(x))})]}):null]}),e.jsxs("div",{className:"flex items-center gap-1",children:[t&&!y?e.jsxs("button",{type:"button","data-testid":"role-template-save",disabled:!!u,title:u??void 0,onClick:s=>{s.preventDefault(),s.stopPropagation(),g(!0)},className:"flex items-center gap-1 rounded px-2 py-0.5 text-xs font-medium transition-colors hover:opacity-80 disabled:cursor-not-allowed disabled:opacity-50",style:{color:"var(--accent)",background:"color-mix(in oklab, var(--accent) 14%, transparent)"},children:[e.jsx(fe,{size:12,"aria-hidden":!0}),m("addWorker.saveAsTemplate")]}):null,a?e.jsxs("button",{type:"button",className:"flex items-center gap-1 rounded px-1.5 py-0.5 text-xs text-ter transition-colors hover:bg-3 hover:text-sec",onClick:s=>{s.preventDefault(),s.stopPropagation(),n()},children:[e.jsx(R,{size:12,"aria-hidden":!0}),m("addWorker.reset")]}):null]})]}),e.jsx("textarea",{"aria-label":"Role instructions",id:"add-worker-role-instructions",value:o,rows:5,onChange:s=>l(s.currentTarget.value),placeholder:x==="custom"?m("addWorker.customPlaceholder"):void 0,title:m("addWorker.roleInstructionsTitle"),className:"input mono resize-y text-sm",style:{minHeight:150},"data-testid":"role-instructions-textarea"}),t&&y?e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("input",{autoFocus:!0,value:k,onChange:s=>r(s.currentTarget.value),placeholder:m("addWorker.templateNamePlaceholder"),"data-testid":"role-template-save-name",className:"input flex-1 text-sm"}),e.jsx("button",{type:"button",disabled:f||!k.trim()||!!u,title:u??void 0,"data-testid":"role-template-save-confirm",onClick:async()=>{if(u)return;const s=k.trim();if(s)try{await d(s),g(!1),r("")}catch{}},className:"icon-btn icon-btn--primary text-xs",children:m("addWorker.templateSaveConfirm")}),e.jsx("button",{type:"button","data-testid":"role-template-save-cancel",onClick:()=>{g(!1),r("")},className:"icon-btn text-xs",children:m("common.cancel")})]}):null]})},D=({active:t,command:a,displayName:l,logoPresetId:n,notFound:d=!1,testId:o,onSelect:f})=>{const{t:x}=j(),u=e.jsx("span",{className:"inline-flex h-5 w-5 shrink-0 items-center justify-center rounded border border-border bg-surface-1 text-ter","data-testid":`${o}-generic-icon`,"aria-hidden":!0,children:e.jsx(ke,{size:13})});return e.jsxs("button",{type:"button",onClick:f,"aria-pressed":t,"data-testid":o,className:"selectable-card flex items-center justify-between gap-3 px-3 py-2",children:[e.jsxs("span",{className:"flex min-w-0 items-center gap-3",children:[e.jsx(te,{commandPresetId:n,fallback:u,size:22}),e.jsxs("span",{className:"flex min-w-0 flex-col items-start gap-0.5",children:[e.jsx("span",{className:"truncate text-base font-medium text-pri",children:l}),e.jsxs("span",{className:"mono truncate text-xs text-ter",children:[a,d?` · ${x("addWorker.agentNotFound")}`:""]})]})]}),t?e.jsx(P,{size:14,className:"shrink-0 text-accent","aria-hidden":!0}):null]})},Me=({active:t,preset:a,onSelect:l})=>e.jsx(D,{active:t,command:a.command,displayName:a.displayName,logoPresetId:a.id,notFound:a.available===!1,testId:`agent-radio-${a.id}`,onSelect:l}),ze=({commandPresetId:t,commandPresets:a,onPresetChange:l})=>e.jsx(Pe,{commandPresetId:t,commandPresets:a,onPresetChange:l}),Pe=({commandPresetId:t,commandPresets:a,onPresetChange:l})=>{const{t:n}=j();return e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx(w,{children:n("addWorker.agentCli")}),a.length===0?e.jsx("div",{className:"text-sm text-ter",children:n("addWorker.loadingPresets")}):e.jsxs("div",{className:"grid grid-cols-2 gap-2 max-md:grid-cols-1",children:[a.map(d=>e.jsx(Me,{active:t===d.id,preset:d,onSelect:()=>l(d.id)},d.id)),e.jsx(D,{active:t==="",command:n("addWorker.genericCommand"),displayName:n("addWorker.genericAgent"),testId:"agent-radio-generic",onSelect:()=>l("")})]})]})},Le=({onChange:t,value:a})=>{const{t:l}=j(),n=a.trim();return e.jsxs("details",{className:"group flex flex-col gap-2",children:[e.jsx("summary",{className:"flex cursor-pointer select-none items-center justify-between gap-2 list-none",children:e.jsxs("span",{className:"flex min-w-0 items-center gap-1.5",children:[e.jsx(z,{size:12,"aria-hidden":!0,className:"-rotate-90 shrink-0 text-ter transition-transform duration-150 group-open:rotate-0"}),e.jsx(w,{children:l("addWorker.startupCommand")}),n?e.jsxs("span",{className:"truncate text-sm text-ter",children:["· ",l("addWorker.startupOverrides")]}):null]})}),e.jsxs("div",{className:"flex flex-col gap-2 rounded border bg-2 p-3",style:{borderColor:"var(--border)"},children:[e.jsx("input",{"aria-label":"Startup command",value:a,onChange:d=>t(d.currentTarget.value),placeholder:"qwen --model qwen3-coder",className:"input mono text-sm",spellCheck:!1}),e.jsx("p",{className:"text-sm leading-5 text-ter",children:l("addWorker.startupHelp",{example:"claude --resume <session-id>"})})]})]})},_e=c.lazy(()=>ue(()=>import("./MarketplaceDrawer-CIQ2B6Fx.js"),__vite__mapDeps([0,1,2,3])).then(t=>({default:t.MarketplaceDrawer}))),$e=({commandPresets:t,commandPresetId:a,creating:l=!1,customTemplates:n,onApplyMarketplaceImport:d,onClose:o,onDeleteTemplate:f,onNameChange:x,onPresetChange:u,onRandomName:m,onRoleDescriptionChange:b,onRoleDescriptionReset:v,onRoleChange:y,onSaveAsTemplate:g,onStartupCommandChange:k,onSubmit:r,onTemplateChange:s,roleDescription:h,roleDescriptionDefault:W,selectedTemplateId:L,startupCommand:_,templateBusy:q,workerName:A,workerRole:S,writeDisabledReason:C})=>{const{t:i}=j(),E=ae(),N=re(),[B,$]=c.useState(!1),[K,H]=c.useState(!1),V=c.useMemo(()=>new Set(n.map(p=>p.name)),[n]),Q=p=>{d(p),E.show({kind:"success",message:i("marketplace.imported",{name:p.name})})},U=p=>{p||o()},X=h!==W,O=t.find(p=>p.id===a),T=_.trim(),G=()=>C||(A.trim()?!a&&!T?i("addWorker.pickCliOrStartup"):O?.available===!1&&!T?i("addWorker.unavailable",{name:O.displayName}):h.trim()?null:i("addWorker.emptyInstructions"):i("addWorker.enterName")),J=p=>{const F=G();if(F){p.preventDefault(),E.show({kind:"warning",message:F});return}r(p)};return e.jsxs(se,{open:!0,onOpenChange:U,children:[e.jsxs(ne,{children:[e.jsx(le,{"data-testid":"add-worker-overlay",className:"app-overlay fixed inset-0 z-40"}),e.jsx("div",{className:"pointer-events-none fixed inset-0 z-50 grid place-items-center p-4 max-md:items-end max-md:p-0",children:e.jsx(oe,{"data-testid":"add-worker-content","data-mobile":N||void 0,className:`${N?"dialog-slide-up add-worker-sheet":"dialog-scale-pop"} elev-2 pointer-events-auto flex max-h-[calc(100vh-32px)] w-[560px] max-w-full flex-col overflow-hidden rounded-lg border pointer-coarse:max-h-[85dvh] max-md:w-full max-md:rounded-b-none max-md:rounded-t-xl`,style:{background:"var(--bg-elevated)",borderColor:"var(--border-bright)",...N?{height:"85dvh"}:{}},children:e.jsxs("form",{onSubmit:J,"aria-label":i("addWorker.title"),className:"flex min-h-0 flex-1 flex-col overflow-hidden",children:[e.jsxs("div",{className:"flex shrink-0 items-start justify-between gap-3 border-b px-5 py-4 max-md:px-4",style:{borderColor:"var(--border)"},children:[e.jsxs("div",{className:"flex min-w-0 flex-col gap-0.5",children:[e.jsx(ie,{className:"text-lg font-semibold text-pri",children:i("addWorker.title")}),e.jsx(de,{className:"text-sm text-ter",children:i("addWorker.description",{command:"team send"})})]}),N?e.jsx(ce,{asChild:!0,children:e.jsx("button",{type:"button","aria-label":i("common.closeDialog"),"data-testid":"add-worker-close",className:"-mr-1 flex h-10 w-10 shrink-0 items-center justify-center rounded-md text-sec",style:{background:"var(--bg-2)"},children:e.jsx(me,{size:18,"aria-hidden":!0})})}):null]}),e.jsxs("div",{className:"flex flex-1 min-h-0 flex-col gap-4 overflow-y-auto px-5 py-4 max-md:gap-5 max-md:px-4",children:[e.jsxs("label",{className:"flex flex-col gap-2",children:[e.jsxs("div",{className:"flex items-baseline justify-between gap-2",children:[e.jsx(w,{children:i("addWorker.name")}),e.jsx(xe,{label:i("addWorker.randomTooltip"),children:e.jsxs("button",{type:"button","aria-label":i("addWorker.randomAria"),className:"flex cursor-pointer items-center gap-1 rounded px-1.5 py-0.5 text-xs text-ter transition-colors hover:bg-3 hover:text-sec",onClick:m,"data-testid":"random-worker-name",children:[e.jsx(ge,{size:12,"aria-hidden":!0}),i("addWorker.random")]})})]}),e.jsx("input",{autoFocus:!N,value:A,onChange:p=>x(p.target.value),placeholder:i("addWorker.namePlaceholder"),className:"input"})]}),e.jsx(we,{workerRole:S,onRoleChange:y}),e.jsxs("button",{type:"button",onClick:()=>{H(!0),$(!0)},"data-testid":"open-marketplace",className:"marketplace-browse-btn flex cursor-pointer items-center gap-2 self-start rounded-md border px-3 py-1.5 text-xs text-sec outline-none transition-colors focus-visible:ring-2",style:{background:"var(--bg-0)",borderColor:"var(--border-bright)","--tw-ring-color":"color-mix(in oklab, var(--accent) 45%, transparent)"},children:[e.jsx(ye,{size:14,"aria-hidden":!0}),i("marketplace.openFromAddWorker")]}),S==="custom"?e.jsx(We,{customTemplates:n,disabledReason:C,onDeleteTemplate:f,onSelect:s,selectedTemplateId:L}):null,e.jsx(Se,{canSaveAsTemplate:S==="custom"&&!L&&h.trim().length>0,modified:X,onChange:b,onReset:v,onSaveAsTemplate:g,roleDescription:h,templateBusy:q,workerRole:S,writeDisabledReason:C}),e.jsx(ze,{commandPresetId:a,commandPresets:t,onPresetChange:u}),e.jsx(Le,{value:_,onChange:k})]}),e.jsxs("div",{className:"flex shrink-0 items-center justify-end gap-2 border-t px-5 py-3 max-md:px-4 max-md:pb-[max(12px,env(safe-area-inset-bottom))]",style:{borderColor:"var(--border)",background:"var(--bg-2)"},children:[e.jsx("button",{type:"button",onClick:o,className:`icon-btn${N?" flex-1":""}`,"data-testid":"add-worker-cancel",children:i("addWorker.cancel")}),e.jsx("button",{type:"submit",disabled:l||!!C,title:C??void 0,className:`icon-btn icon-btn--primary${N?" flex-[2]":""}`,"data-testid":"add-worker-submit",children:i(l?"addWorker.creating":"addWorker.create")})]})]})})})]}),K?e.jsx(c.Suspense,{fallback:null,children:e.jsx(_e,{open:B,onClose:()=>$(!1),onImport:Q,importedNames:V})}):null]})};export{$e as AddWorkerDialog};
@@ -0,0 +1 @@
1
+ import{c as T,K as R,r as c,j as e,N as we,h as B,Q as ne,R as q,P as Z,O as K,C as Y,d as G,U as J,i as W,V as je,W as ye,u as Ne,v as Ce,X as _e,Y as ie,Z as Pe,_ as Se,$ as Ee}from"./index-bOMtwrkA.js";import{d as de}from"./path-join-7MR1s7b1.js";const ze=[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]],Re=T("arrow-up",ze);const $e=[["path",{d:"M10.7 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v4.1",key:"1bw5m7"}],["path",{d:"m21 21-1.9-1.9",key:"1g2n9r"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}]],De=T("folder-search",$e);const Le=[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]],ee=T("folder",Le);const Me=[["path",{d:"M15 6a9 9 0 0 0-9 9V3",key:"1cii5b"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}]],pe=T("git-branch",Me);const Ae=[["path",{d:"M10 16h.01",key:"1bzywj"}],["path",{d:"M2.212 11.577a2 2 0 0 0-.212.896V18a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-5.527a2 2 0 0 0-.212-.896L18.55 5.11A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z",key:"18tbho"}],["path",{d:"M21.946 12.013H2.054",key:"zqlbp7"}],["path",{d:"M6 16h.01",key:"1pmjb7"}]],Fe=T("hard-drive",Ae),ue=t=>{const r=t.trim();if(r.length<2)return r;const n=r[0],a=r[r.length-1];return(n==='"'||n==="'")&&n===a?r.slice(1,-1):r},me=({error:t,onChange:r,presets:n,value:a})=>{const{t:l}=R(),[i,o]=c.useState(!1),p=c.useRef(null),h=n.find(u=>u.id===a),s=a==="",g=h?[h.command,...h.args].join(" ").trim():l(s?"workspace.preset.genericPreview":"workspace.preset.loading"),d=h?.displayName??(s?l("workspace.preset.generic"):"Claude Code (CC)"),k=n.length===0&&!s;return c.useEffect(()=>{if(!i)return;const u=x=>{p.current?.contains(x.target)||o(!1)},m=x=>{x.key==="Escape"&&o(!1)};return document.addEventListener("mousedown",u),document.addEventListener("keydown",m),()=>{document.removeEventListener("mousedown",u),document.removeEventListener("keydown",m)}},[i]),e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx("span",{className:"text-xs font-medium uppercase tracking-wider text-ter",children:l("workspace.preset.label")}),e.jsxs("div",{ref:p,className:"cli-select group relative",children:[e.jsx(we,{size:14,"aria-hidden":!0,className:"cli-select__leading"}),e.jsx("button",{type:"button","aria-haspopup":"listbox","aria-expanded":i,"aria-disabled":k||void 0,className:"cli-select__field cli-select__field--button text-left","data-testid":"workspace-command-preset","data-value":a,disabled:k,onClick:()=>o(u=>!u),children:d}),e.jsx(B,{size:14,"aria-hidden":!0,className:"cli-select__trailing"}),i&&n.length>0?e.jsxs("div",{role:"listbox","aria-label":l("workspace.preset.optionsAria"),className:"cli-select__menu","data-testid":"workspace-command-preset-menu",children:[n.map(u=>{const m=u.id===a,x=u.available===!1;return e.jsxs("button",{type:"button",role:"option","aria-selected":m,"data-testid":`workspace-command-preset-option-${u.id}`,className:"cli-select__option",onClick:()=>{r(u.id),o(!1)},children:[e.jsx(ne,{size:12,"aria-hidden":!0,className:"cli-select__check",style:{opacity:m?1:0}}),e.jsxs("span",{children:[u.displayName,x?l("workspace.preset.notFoundSuffix"):""]})]},u.id)}),e.jsxs("button",{type:"button",role:"option","aria-selected":s,"data-testid":"workspace-command-preset-option-generic",className:"cli-select__option",onClick:()=>{r(""),o(!1)},children:[e.jsx(ne,{size:12,"aria-hidden":!0,className:"cli-select__check",style:{opacity:s?1:0}}),e.jsx("span",{children:l("workspace.preset.generic")})]})]}):null]}),e.jsxs("div",{className:"mono flex items-center gap-1.5 truncate text-xs text-ter",title:g,children:[e.jsx("span",{className:"text-sec",children:"$"}),e.jsx("span",{className:"truncate",children:g})]}),t?e.jsx("span",{className:"text-xs",style:{color:"var(--status-red)"},children:t}):null]})},H=t=>(t.split(/[\\/]/).filter(Boolean).pop()??"").replace(/:$/u,""),V=({children:t})=>e.jsx("span",{className:"text-xs font-medium uppercase tracking-wider text-ter",children:t}),Ie=({probe:t,pasteFallbackDefault:r=!1,commandPresetError:n,commandPresetId:a,commandPresets:l,onCancel:i,onCommandPresetChange:o,onCreate:p,onOpenServerBrowse:h})=>{const{t:s}=R(),g=t?.path??"",d=t?.suggested_name??H(g),[k,u]=c.useState(d),[m,x]=c.useState(""),[w,C]=c.useState(r),[N,_]=c.useState(!1),[E,b]=c.useState("");c.useEffect(()=>{u(t?.suggested_name??H(t?.path??""))},[t?.path,t?.suggested_name]);const j=ue(m),f=H(j),P=w&&j.length>0?j:t?.path??"",S=E.trim(),A=l.find(y=>y.id===a),z=l.length===0&&!n,F=!a&&S.length===0,L=A?.available===!1&&S.length===0,Q=F?s("workspace.preset.genericRequiresStartup"):L?s("workspace.preset.notInstalled",{name:A.displayName}):null,I=k.trim().length>0&&P.length>0&&!z&&!F&&!L,X=()=>{I&&p({commandPresetId:a||null,name:k.trim(),path:P,...S?{startupCommand:S}:{}})};return c.useEffect(()=>{w&&j.length>0&&u(f)},[w,j,f]),e.jsx(q,{open:!0,onOpenChange:y=>!y&&i(),children:e.jsxs(Z,{children:[e.jsx(K,{"data-testid":"confirm-workspace-overlay",className:"app-overlay fixed inset-0 z-40"}),e.jsx("div",{className:"pointer-events-none fixed inset-0 z-50 grid place-items-center p-4",children:e.jsxs(Y,{"data-testid":"confirm-workspace-dialog",className:"dialog-scale-pop elev-2 pointer-events-auto flex w-[480px] max-w-full flex-col rounded-lg border",style:{background:"var(--bg-elevated)",borderColor:"var(--border-bright)"},children:[e.jsxs("div",{className:"flex items-center gap-3 border-b px-5 py-4",style:{borderColor:"var(--border)"},children:[e.jsx("div",{className:"flex h-9 w-9 shrink-0 items-center justify-center rounded",style:{background:"color-mix(in oklab, var(--accent) 12%, transparent)",color:"var(--accent)"},children:e.jsx(ee,{size:18,"aria-hidden":!0})}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx(G,{className:"text-lg font-semibold text-pri",children:s("workspace.confirm.title")}),e.jsx(J,{className:"text-xs text-ter",children:s("workspace.confirm.description")})]})]}),e.jsxs("div",{className:"flex flex-col gap-4 px-5 py-4",children:[e.jsxs("label",{className:"flex flex-col gap-2",children:[e.jsx(V,{children:s("workspace.field.path")}),e.jsx("input",{readOnly:!0,value:t?.path??"",placeholder:s("workspace.field.pathEmptyPlaceholder"),className:"input input--readonly mono","data-testid":"confirm-workspace-path"})]}),t?.is_git_repository?e.jsxs("div",{className:"flex items-center gap-2 text-xs","data-testid":"confirm-workspace-git-badge",children:[e.jsxs("span",{className:"inline-flex items-center gap-1.5 rounded px-2 py-0.5 font-medium",style:{background:"color-mix(in oklab, var(--status-blue) 12%, transparent)",color:"var(--status-blue)",border:"1px solid color-mix(in oklab, var(--status-blue) 30%, transparent)"},children:[e.jsx(pe,{size:12,"aria-hidden":!0}),t.current_branch??s("workspace.git.detached")]}),e.jsx("span",{className:"text-ter",children:s("workspace.git.detected")})]}):t?.ok?e.jsx("span",{className:"text-xs text-ter",children:s("workspace.git.none")}):null,e.jsxs("label",{className:"flex flex-col gap-2",children:[e.jsx(V,{children:s("workspace.field.name")}),e.jsx("input",{value:k,onChange:y=>u(y.target.value),placeholder:H(t?.path??"")||s("workspace.field.nameDefaultPlaceholder"),className:"input","data-testid":"confirm-workspace-name"})]}),e.jsx(me,{error:n??Q,onChange:o,presets:l,value:a}),e.jsxs("button",{type:"button",onClick:()=>_(y=>!y),className:"flex items-center gap-1.5 self-start text-xs uppercase tracking-wider text-ter hover:text-sec","data-testid":"confirm-workspace-startup-toggle",children:[N?e.jsx(B,{size:12,"aria-hidden":!0}):e.jsx(W,{size:12,"aria-hidden":!0}),s("workspace.advanced.startup")]}),N?e.jsxs("label",{className:"flex flex-col gap-2",children:[e.jsx(V,{children:s("workspace.field.startup")}),e.jsx("input",{type:"text",value:E,onChange:y=>b(y.target.value),placeholder:s("workspace.field.startupPlaceholder"),className:"input mono","data-testid":"confirm-workspace-startup-command"}),e.jsx("span",{className:"text-xs text-ter",children:s("workspace.startup.hint")})]}):null,e.jsxs("button",{type:"button",onClick:()=>C(y=>!y),className:"flex items-center gap-1.5 self-start text-xs uppercase tracking-wider text-ter hover:text-sec","data-testid":"confirm-workspace-paste-toggle",children:[w?e.jsx(B,{size:12,"aria-hidden":!0}):e.jsx(W,{size:12,"aria-hidden":!0}),s("workspace.advanced.pastePath")]}),w?e.jsxs("label",{className:"flex flex-col gap-2",children:[e.jsx(V,{children:s("workspace.field.absolutePath")}),e.jsx("input",{type:"text",value:m,onChange:y=>x(y.target.value),placeholder:s("workspace.field.absolutePathPlaceholder"),className:"input mono","data-testid":"confirm-workspace-paste-path"})]}):null,e.jsxs("button",{type:"button",onClick:h,className:"flex items-center gap-1.5 self-start text-xs uppercase tracking-wider text-ter hover:text-sec","data-testid":"confirm-workspace-browse-toggle",children:[e.jsx(W,{size:12,"aria-hidden":!0}),s("workspace.advanced.browse")]})]}),e.jsxs("div",{className:"flex items-center justify-end gap-2 border-t px-5 py-3",style:{borderColor:"var(--border)"},children:[e.jsx("button",{type:"button",onClick:i,className:"icon-btn",children:s("common.cancel")}),e.jsx("button",{type:"button",onClick:X,disabled:!I,"data-testid":"confirm-workspace-create",className:"icon-btn icon-btn--primary",children:s("workspace.confirm.create")})]})]})})]})})},M="hive://windows-drives",We=({entries:t,error:r,loading:n,onNavigate:a,onSelect:l,selected:i})=>{const{t:o}=R();return e.jsx("div",{className:"scroll-y min-h-[200px] flex-1 border-t border-b",style:{borderColor:"var(--border)"},"data-testid":"fs-entry-list",children:n?e.jsx("p",{className:"p-4 text-center text-xs text-ter",children:o("common.loading")}):r?e.jsx("p",{className:"p-4 text-center text-xs",style:{color:"var(--status-red)"},"data-testid":"fs-browse-error",children:r}):t.length===0?e.jsx("p",{className:"p-4 text-center text-xs text-ter",children:o("workspace.browse.empty")}):e.jsx("ul",{children:t.map(p=>{const h=i===p.path;return e.jsxs("li",{className:"flex items-center gap-0",children:[e.jsxs("button",{type:"button","data-testid":`fs-entry-${p.name}`,onClick:()=>l(p.path),onDoubleClick:()=>a(p.path),className:"flex flex-1 items-center gap-2 px-3 py-2 text-left text-xs hover:bg-3",style:h?{background:"var(--bg-3)",color:"var(--text-primary)"}:{color:"var(--text-primary)"},children:[e.jsx("span",{"aria-hidden":!0,className:"inline-flex items-center text-sec",children:p.is_git_repository?e.jsx(pe,{size:14}):e.jsx(ee,{size:14})}),e.jsx("span",{className:"mono flex-1 truncate",children:p.name}),p.is_git_repository?e.jsx("span",{className:"text-xs uppercase tracking-wider",style:{color:"var(--accent)"},children:o("workspace.browse.gitBadge")}):null]}),e.jsx("button",{type:"button","data-testid":`fs-entry-open-${p.name}`,onClick:()=>a(p.path),"aria-label":o("workspace.browse.openAria",{name:p.name}),className:"px-3 py-2 text-xs text-ter hover:text-pri",children:"→"})]},p.path)})})})},Be=({probe:t,suggestedName:r,onSuggestedNameChange:n})=>{const{t:a}=R(),l=!!t&&t.ok&&t.is_dir;return e.jsxs("div",{className:"flex flex-col gap-2 rounded border p-3 text-xs",style:{background:"var(--bg-1)",borderColor:"var(--border)"},"data-testid":"fs-selection-preview",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("span",{className:"text-ter uppercase tracking-wider text-xs",children:a("workspace.browse.selected")}),t?.is_git_repository?e.jsx("span",{className:"role-badge role-badge--coder","data-testid":"fs-preview-git-badge",children:a("workspace.git.short",{branch:t.current_branch??a("workspace.git.detached")})}):l?e.jsx("span",{className:"text-ter text-xs",children:a("workspace.git.noneShort")}):null]}),e.jsx("span",{className:"mono truncate text-pri","data-testid":"fs-preview-path",children:t?.path??"—"}),e.jsxs("label",{className:"mt-1 flex flex-col gap-1 text-ter",children:[e.jsx("span",{className:"text-xs uppercase tracking-wider",children:a("workspace.field.name")}),e.jsx("input",{type:"text",value:r,onChange:i=>n(i.target.value),disabled:!l,autoCapitalize:"none",autoCorrect:"off",spellCheck:!1,className:"mono rounded border px-2 py-1 text-sm text-pri disabled:opacity-50 max-md:text-base",style:{background:"var(--bg-0)",borderColor:"var(--border)"},"data-testid":"fs-preview-name-input"})]})]})},Oe=(t,r)=>{if(t===M)return r;const a=t.replace(/[\\/]+$/,"").split(/[\\/]/).filter(Boolean),l=a[a.length-1];return l?`~ (${l})`:t},O=t=>t.replace(/[\\/]+$/u,"")||t,oe=t=>/^[A-Za-z]:($|[\\/])/u.test(t),ce=t=>/^\\\\[^\\/]+[\\/][^\\/]+/u.test(t),xe=(t,r)=>oe(t)&&oe(r)||ce(t)&&ce(r),Te=t=>{const r=/^(?:\\\\|\/\/)(?<server>[^\\/]+)[\\/](?<share>[^\\/]+)[\\/]*(?<rest>.*)$/u.exec(t);if(!r?.groups)return null;const{server:n,share:a,rest:l}=r.groups,i=`\\\\${n}\\${a}\\`;return{label:`\\\\${n}\\${a}`,rest:l,root:i}},Ue=(t,r)=>{const n=O(t),a=O(r);return xe(n,a)?n.toLowerCase()===a.toLowerCase():n===a},He=(t,r)=>{const n=O(t),a=O(r);if(a==="/"||a==="\\")return n.startsWith(a);const l=xe(n,a),i=l?n.toLowerCase():n,o=l?a.toLowerCase():a;if(i===o)return!0;if(!i.startsWith(o))return!1;const p=i[o.length];return p==="/"||p==="\\"},Ve=(t,r,n="This PC")=>{if(!r||!t)return[];const a=[{label:Oe(r,n),path:r}];if(Ue(t,r))return a;if(r===M){const s=Te(t);if(s){a.push({label:s.label,path:s.root});const x=s.rest.split(/[\\/]/).filter(Boolean);let w=s.root.replace(/[\\/]+$/,"");for(const C of x)w=`${w}\\${C}`,a.push({label:C,path:w});return a}const g=/^(?<drive>[A-Za-z]:)[\\/]*(?<rest>.*)$/u.exec(t),d=g?.groups?.drive;if(!d)return a;const k=`${d}\\`;a.push({label:d,path:k});const u=(g.groups?.rest??"").split(/[\\/]/).filter(Boolean);let m=k.replace(/[\\/]+$/,"");for(const x of u)m=`${m}\\${x}`,a.push({label:x,path:m});return a}const l=O(r),i=He(t,l)?t.slice(l.length).replace(/^[\\/]+/,""):"";if(!i)return a;const o=de(l),p=i.split(/[\\/]/).filter(Boolean);let h=l;for(const s of p)h=`${h}${o}${s}`,a.push({label:s,path:h});return a},le={current_path:"",entries:[],error:null,ok:!1,parent_path:null,root_path:""},qe=t=>{const[r,n]=c.useState(le),[a,l]=c.useState(!1),[i,o]=c.useState(null),[p,h]=c.useState(null),s=c.useRef(0),g=c.useRef(0),d=c.useCallback(()=>{g.current++,o(null),h(null)},[]),k=c.useCallback(async m=>{const x=++s.current;l(!0);try{const w=await je(m);if(s.current!==x)return;n(w),w.ok?o(w.current_path):d()}catch{}finally{s.current===x&&l(!1)}},[d]);c.useEffect(()=>{if(!t){s.current++,n(le),d();return}k("")},[d,t,k]),c.useEffect(()=>{if(!i){h(null);return}const m=++g.current;ye(i).then(x=>{g.current===m&&h(x)}).catch(x=>{console.debug("[hive] discarded:fsBrowser.probe (likely stale token)",x)})},[i]);const u=c.useCallback(m=>{o(m)},[]);return{browse:r,loading:a,navigate:k,probe:p,selectEntry:u,selected:i}},Ze=t=>(t.split(/[\\/]/).filter(Boolean).pop()??"").replace(/:$/u,""),he=({commandPresetError:t,commandPresetId:r,commandPresets:n,onClose:a,onCommandPresetChange:l,onCreate:i,open:o,initialAdvanced:p=!1,manualHint:h})=>{const{t:s}=R(),g=Ne(),{browse:d,loading:k,navigate:u,probe:m,selectEntry:x,selected:w}=qe(o),[C,N]=c.useState(""),[_,E]=c.useState(p),[b,j]=c.useState(""),[f,P]=c.useState(!1),[S,A]=c.useState(""),z=ue(b),F=Ze(z);if(c.useEffect(()=>{o||(N(""),E(p),j(""),P(!1),A(""))},[o,p]),c.useEffect(()=>{m?.suggested_name&&N(m.suggested_name)},[m?.suggested_name]),c.useEffect(()=>{_&&z.length>0&&N(F)},[_,F,z]),!o)return null;const L=s("workspace.browse.drivesRoot"),Q=d.root_path===M?L:d.root_path,I=Ve(d.current_path,d.root_path,L),X=d.root_path===M&&d.current_path!==M,y=de(d.current_path||d.root_path),te=n.find(v=>v.id===r),U=S.trim(),fe=n.length===0&&!t,se=!r&&U.length===0,ae=te?.available===!1&&U.length===0,be=se?s("workspace.preset.genericRequiresStartup"):ae?s("workspace.preset.notInstalled",{name:te.displayName}):null,ge=C.trim().length>0&&(m?.is_dir===!0||_&&z.length>0)&&!fe&&!se&&!ae,ke=()=>{const v=_&&z.length>0?z:m?.path??"";v&&i({commandPresetId:r||null,name:C.trim(),path:v,...U?{startupCommand:U}:{}})};return e.jsx(q,{open:!0,onOpenChange:v=>!v&&a(),children:e.jsxs(Z,{children:[e.jsx(K,{"data-testid":"server-browse-overlay",className:"app-overlay fixed inset-0 z-40"}),e.jsx("div",{className:"pointer-events-none fixed inset-0 z-50 grid place-items-center max-md:items-end max-md:p-0 p-4",children:e.jsxs(Y,{"data-testid":"add-workspace-dialog","data-mobile":g||void 0,className:`${g?"dialog-slide-up":"dialog-scale-pop"} elev-2 pointer-events-auto flex w-[760px] max-w-[calc(100vw-32px)] flex-col rounded-lg border max-md:w-full max-md:max-w-full max-md:rounded-b-none max-md:rounded-t-xl`,style:{height:g?"85dvh":"min(600px, calc(100vh - 64px))",background:"var(--bg-elevated)",borderColor:"var(--border-bright)"},children:[e.jsxs("div",{className:"flex shrink-0 items-center gap-3 border-b px-5 py-4",style:{borderColor:"var(--border)"},children:[e.jsx("div",{className:"flex h-9 w-9 shrink-0 items-center justify-center rounded",style:{background:"color-mix(in oklab, var(--accent) 12%, transparent)",color:"var(--accent)"},children:e.jsx(ee,{size:18,"aria-hidden":!0})}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx(G,{className:"text-lg font-semibold text-pri",children:s("workspace.browse.title")}),e.jsx(J,{className:"mono truncate text-xs text-ter","data-testid":"fs-root-path",children:d.root_path?s("workspace.browse.root",{path:Q}):s("workspace.browse.rootLoading")})]}),e.jsx(Ce,{asChild:!0,children:e.jsx("button",{type:"button","aria-label":s("common.closeDialog"),className:"flex h-7 w-7 items-center justify-center rounded text-sec hover:bg-3 hover:text-pri",children:e.jsx(_e,{size:14,"aria-hidden":!0})})})]}),e.jsxs("nav",{className:"flex shrink-0 items-center gap-1 border-b px-4 py-2 text-xs",style:{borderColor:"var(--border)"},"aria-label":s("workspace.browse.breadcrumb"),"data-testid":"fs-breadcrumb",children:[e.jsxs("button",{type:"button",onClick:()=>d.parent_path?u(d.parent_path):null,disabled:!d.parent_path,"aria-label":s("workspace.browse.parentAria"),className:"flex items-center gap-1 rounded px-2 py-0.5 text-sec hover:bg-3 hover:text-pri disabled:opacity-40",children:[e.jsx(Re,{size:12,"aria-hidden":!0})," ",s("workspace.browse.up")]}),X?e.jsxs("button",{type:"button",onClick:()=>u(M),"aria-label":s("workspace.browse.drivesAria"),"data-testid":"fs-browse-drives",className:"flex items-center gap-1 rounded px-2 py-0.5 text-sec hover:bg-3 hover:text-pri",children:[e.jsx(Fe,{size:12,"aria-hidden":!0})," ",L]}):null,e.jsx("div",{className:"mx-2 h-4 w-px",style:{background:"var(--border)"}}),I.map((v,re)=>{const ve=re===I.length-1;return e.jsxs("span",{className:"flex items-center gap-0.5",children:[re>0?e.jsx("span",{className:"text-ter",children:y}):null,ve?e.jsx("span",{className:"px-1 py-0.5 font-medium text-pri",children:v.label}):e.jsx("button",{type:"button",onClick:()=>u(v.path),className:"rounded px-1 py-0.5 text-sec hover:bg-3 hover:text-pri",children:v.label})]},v.path)})]}),e.jsxs("div",{className:"flex min-h-0 flex-1 max-md:flex-col",children:[e.jsx("div",{className:"flex min-h-0 flex-1 flex-col max-md:min-h-[40%]",children:e.jsx(We,{entries:d.entries,error:d.ok?null:d.error,loading:k,onNavigate:u,onSelect:x,selected:w})}),e.jsxs("div",{className:"flex w-[280px] shrink-0 flex-col gap-3 border-l p-4 max-md:w-full max-md:border-l-0 max-md:border-t max-md:max-h-[45%] max-md:overflow-y-auto",style:{borderColor:"var(--border)"},children:[e.jsx(Be,{onSuggestedNameChange:N,probe:m,suggestedName:C}),e.jsx(me,{error:t??be,onChange:l,presets:n,value:r}),e.jsxs("button",{type:"button",onClick:()=>P(v=>!v),className:"flex items-center gap-1.5 text-left text-xs uppercase tracking-wider text-ter hover:text-sec",children:[f?e.jsx(B,{size:12,"aria-hidden":!0}):e.jsx(W,{size:12,"aria-hidden":!0}),s("workspace.advanced.startup")]}),f?e.jsxs("label",{className:"flex flex-col gap-2 text-xs uppercase tracking-wider text-ter",children:[s("workspace.field.startup"),e.jsx("input",{type:"text",value:S,onChange:v=>A(v.target.value),placeholder:s("workspace.field.startupPlaceholder"),className:"input mono max-md:text-base",autoCapitalize:"none",autoCorrect:"off",spellCheck:!1,inputMode:"text","data-testid":"fs-startup-command"}),e.jsx("span",{className:"text-xs normal-case tracking-normal text-ter",children:s("workspace.startup.hintShort")})]}):null,e.jsxs("button",{type:"button",onClick:()=>E(v=>!v),className:"flex items-center gap-1.5 text-left text-xs uppercase tracking-wider text-ter hover:text-sec",children:[_?e.jsx(B,{size:12,"aria-hidden":!0}):e.jsx(W,{size:12,"aria-hidden":!0}),s("workspace.advanced.pastePath")]}),_?e.jsxs("label",{className:"flex flex-col gap-2 text-xs uppercase tracking-wider text-ter",children:[s("workspace.field.absolutePath"),h?e.jsx("span",{"data-testid":"fs-manual-hint",className:"text-xs normal-case tracking-normal text-ter",children:h}):null,e.jsx("input",{type:"text",value:b,onChange:v=>j(v.target.value),placeholder:s("workspace.field.absolutePathPlaceholder"),className:"input mono max-md:text-base",autoCapitalize:"none",autoCorrect:"off",spellCheck:!1,inputMode:"url","data-testid":"fs-manual-path"})]}):null]})]}),e.jsxs("div",{className:"flex shrink-0 items-center justify-end gap-2 border-t px-5 py-3",style:{borderColor:"var(--border)"},children:[e.jsx("button",{type:"button",onClick:a,className:"icon-btn",children:s("common.cancel")}),e.jsx("button",{type:"button",onClick:ke,disabled:!ge,"data-testid":"add-workspace-create",className:"icon-btn icon-btn--primary",children:s("workspace.confirm.create")})]})]})})]})})},$="claude",Ke=t=>t.some(r=>r.id===$&&r.available)?$:t.find(r=>r.available)?.id??t[0]?.id??$,Ye=(t=typeof navigator>"u"?void 0:navigator)=>{if(!t)return!1;const r=[t.userAgentData?.platform,t.platform,t.userAgent].filter(n=>typeof n=="string"&&n.length>0).join(" ");return/\bWindows?\b|\bWin(?:32|64|CE)\b|Windows NT/i.test(r)},Ge=({trigger:t,onClose:r,onCreate:n})=>{const{t:a}=R(),l=c.useRef(a);c.useEffect(()=>{l.current=a},[a]);const[i,o]=c.useState({kind:"idle"}),[p,h]=c.useState([]),[s,g]=c.useState($),[d,k]=c.useState(null),u=c.useRef({error:null,id:$,presets:[]}),m=c.useRef(r);c.useEffect(()=>{m.current=r},[r]),c.useEffect(()=>{if(t===0)return;let b=!1;k(null);const j=ie().then(f=>{if(b)return;const P=f.some(S=>S.id===u.current.id&&S.available)?u.current.id:Ke(f);u.current={error:null,id:P,presets:f},h(f),g(P)}).catch(()=>{if(b)return;const f=l.current("workspace.preset.loadFailed");u.current={error:f,id:$,presets:[]},h([]),g($),k(f)});return Ye()?(o({kind:"browse"}),()=>{b=!0}):(o({kind:"picking"}),Pe().then(async f=>{if(await j,!b){if(f.canceled){if(f.error){o({kind:"error",message:f.error});return}o({kind:"idle"}),m.current();return}if(!f.supported){o({kind:"confirm",probe:null,pasteDefault:!0});return}if(!f.probe?.ok||!f.probe.is_dir){o({kind:"error",message:f.error??l.current("workspace.error.outsideSandbox")});return}o({kind:"confirm",probe:f.probe,pasteDefault:!1})}}).catch(f=>{if(b)return;const P=f instanceof Error?f.message:l.current("workspace.error.pickerFailed");o({kind:"error",message:P})}),()=>{b=!0})},[t]);const x=()=>{o({kind:"idle"}),r()},w=b=>{Promise.resolve(n(b)).then(()=>o({kind:"idle"})).catch(j=>{const f=j instanceof Error?j.message:a("workspace.error.createFailed");o({kind:"error",title:a("workspace.error.createTitle"),message:f})})},C=b=>{u.current={...u.current,id:b},g(b)},N=p.length>0||d?p:u.current.presets,_=s===""?"":N.length>0&&!N.some(b=>b.id===s&&b.available)?u.current.id:s,E=d??u.current.error;if(i.kind==="idle")return null;if(i.kind==="picking"){const b=()=>o({kind:"idle"});return e.jsx(q,{open:!0,onOpenChange:j=>!j&&b(),children:e.jsxs(Z,{children:[e.jsx(K,{className:"app-overlay fixed inset-0 z-40"}),e.jsxs(Y,{"data-testid":"add-workspace-picking","aria-describedby":void 0,className:"fixed inset-0 z-50 flex items-center justify-center p-4",children:[e.jsx(G,{className:"sr-only",children:a("workspace.picking.title")}),e.jsxs("div",{"data-testid":"add-workspace-picking-panel",className:"dialog-scale-pop elev-2 flex items-center gap-3 rounded-lg border px-5 py-4",style:{background:"var(--bg-elevated)",borderColor:"var(--border-bright)"},children:[e.jsx(De,{size:18,"aria-hidden":!0,className:"animate-pulse",style:{color:"var(--accent)"}}),e.jsx("span",{className:"text-sm text-pri",children:a("workspace.picking.message")})]})]})]})})}return i.kind==="error"?e.jsx(q,{open:!0,onOpenChange:b=>!b&&x(),children:e.jsxs(Z,{children:[e.jsx(K,{className:"app-overlay fixed inset-0 z-40"}),e.jsx("div",{className:"pointer-events-none fixed inset-0 z-50 grid place-items-center p-4",children:e.jsxs(Y,{"data-testid":"add-workspace-error",className:"dialog-scale-pop elev-2 pointer-events-auto w-[440px] max-w-[calc(100vw-32px)] rounded-lg border p-5",style:{background:"var(--bg-elevated)",borderColor:"var(--border-bright)"},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",style:{background:"color-mix(in oklab, var(--status-red) 14%, transparent)",color:"var(--status-red)"},children:e.jsx(Se,{size:18,"aria-hidden":!0})}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx(G,{className:"text-lg font-semibold text-pri",children:i.title??a("workspace.error.pickerFailed")}),e.jsx(J,{className:"mt-1.5 break-words text-sm text-ter",children:i.message})]})]}),e.jsxs("div",{className:"mt-5 flex justify-end gap-2",children:[e.jsx("button",{type:"button",onClick:x,className:"icon-btn",children:a("common.close")}),e.jsx("button",{type:"button",onClick:()=>o({kind:"confirm",probe:null,pasteDefault:!0}),className:"icon-btn icon-btn--primary",children:a("workspace.error.pastePathInstead")})]})]})})]})}):i.kind==="browse"?e.jsx(he,{commandPresetError:E,commandPresetId:_,commandPresets:N,onClose:x,onCommandPresetChange:C,onCreate:w,open:!0}):e.jsx(Ie,{commandPresetError:E,commandPresetId:_,commandPresets:N,pasteFallbackDefault:i.pasteDefault,probe:i.probe,onCancel:x,onCommandPresetChange:C,onCreate:w,onOpenServerBrowse:()=>o({kind:"browse"})})},D="claude",Qe=t=>t.some(r=>r.id===D&&r.available)?D:t.find(r=>r.available)?.id??t[0]?.id??D,Xe=t=>{const{t:r}=R(),n=c.useRef(r);c.useEffect(()=>{n.current=r},[r]);const[a,l]=c.useState([]),[i,o]=c.useState(D),[p,h]=c.useState(null),s=c.useRef(D);return c.useEffect(()=>{if(!t)return;let d=!1;return h(null),ie().then(k=>{if(d)return;const m=k.some(x=>x.id===s.current&&x.available)?s.current:Qe(k);s.current=m,l(k),o(m)}).catch(()=>{d||(s.current=D,l([]),o(D),h(n.current("workspace.preset.loadFailed")))}),()=>{d=!0}},[t]),{commandPresets:a,commandPresetId:i,commandPresetError:p,onCommandPresetChange:d=>{s.current=d,o(d)}}},Je=({trigger:t,onClose:r,onCreate:n})=>{const{t:a}=R(),[l,i]=c.useState(!1),o=c.useRef(0);c.useEffect(()=>{t>0&&t!==o.current&&i(!0)},[t]);const p=Xe(l),h=()=>{o.current=t,i(!1),r()},s=g=>{Promise.resolve(n(g)).then(()=>{o.current=t,i(!1)})};return l?e.jsx(he,{open:!0,initialAdvanced:!0,manualHint:a("workspace.add.manualHint"),commandPresetError:p.commandPresetError,commandPresetId:p.commandPresetId,commandPresets:p.commandPresets,onClose:h,onCommandPresetChange:p.onCommandPresetChange,onCreate:s}):null},st=({trigger:t,onClose:r,onCreate:n})=>{const{mode:a}=Ee();return a==="mobile"?e.jsx(Je,{trigger:t,onClose:r,onCreate:n}):e.jsx(Ge,{trigger:t,onClose:r,onCreate:n})};export{st as AddWorkspaceFlow};
@@ -0,0 +1 @@
1
+ import{K as f,r as h,j as e,R as j,P as b,O as N,C as v,U as g,d as c}from"./index-bOMtwrkA.js";const y=({open:o,onClose:r,onAddWorkspace:d,onTryDemo:x})=>{const{t:s}=f(),[l,n]=h.useState(0),m=t=>{t||(n(0),r())},i=(t=!0)=>{n(0),r(t)},a=l===2;return e.jsx(j,{open:o,onOpenChange:m,children:e.jsxs(b,{children:[e.jsx(N,{className:"app-overlay fixed inset-0 z-40"}),e.jsx("div",{className:"pointer-events-none fixed inset-0 z-50 grid place-items-center p-4",children:e.jsxs(v,{"aria-label":s("firstRun.title"),className:"dialog-scale-pop elev-2 pointer-events-auto w-[480px] max-w-[calc(100vw-32px)] rounded-lg border p-6",style:{background:"var(--bg-elevated)",borderColor:"var(--border-bright)"},children:[e.jsx(g,{className:"sr-only",children:s("firstRun.step",{current:l+1,total:3})}),e.jsxs("div",{className:"min-h-[200px]",children:[l===0&&e.jsxs("div",{className:"flex flex-col items-center gap-4 py-4 text-center",children:[e.jsx("div",{"aria-hidden":!0,className:"flex h-14 w-14 items-center justify-center rounded-lg",style:{background:"color-mix(in oklab, var(--accent) 15%, transparent)",color:"var(--accent)",border:"1px solid color-mix(in oklab, var(--accent) 30%, transparent)"},children:e.jsx("img",{alt:"",className:"h-10 w-10 object-contain","data-testid":"first-run-logo",draggable:!1,src:"/logo.png"})}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(c,{className:"text-xl font-semibold text-pri",children:s("firstRun.title")}),e.jsx("p",{className:"text-sm text-sec",children:s("firstRun.desc")}),e.jsx("p",{className:"text-xs text-ter",children:s("firstRun.subtitle")})]})]}),l>0&&e.jsx(c,{className:"sr-only",children:s("firstRun.title")}),l===1&&e.jsxs("div",{className:"flex flex-col gap-4 py-2",children:[e.jsx("h2",{className:"text-lg font-semibold text-pri",children:s("firstRun.howItWorks")}),e.jsx("ol",{className:"flex flex-col gap-3",children:[{n:1,title:s("firstRun.slide1Title"),desc:s("firstRun.slide1Desc")},{n:2,title:s("firstRun.slide2Title"),desc:s("firstRun.slide2Desc")},{n:3,title:s("firstRun.slide3Title"),desc:s("firstRun.slide3Desc")}].map(({n:t,title:u,desc:p})=>e.jsxs("li",{className:"flex items-start gap-3",children:[e.jsx("span",{className:"flex h-6 w-6 shrink-0 items-center justify-center rounded-full text-xs font-medium",style:{background:"var(--bg-elevated)",border:"1px solid var(--border-bright)",color:"var(--accent)"},children:t}),e.jsxs("div",{children:[e.jsx("div",{className:"text-sm font-medium text-pri",children:u}),e.jsx("div",{className:"text-xs text-sec",children:p})]})]},t))})]}),l===2&&e.jsxs("div",{className:"flex flex-col gap-3 py-2",children:[e.jsx("h2",{className:"text-lg font-semibold text-pri",children:s("firstRun.getStarted")}),e.jsx("p",{className:"text-sm text-sec",children:s("firstRun.optionDesc")}),e.jsxs("div",{className:"mt-2 flex flex-col gap-2",children:[e.jsx("button",{type:"button",onClick:()=>{d(),i(!1)},className:"icon-btn icon-btn--primary w-full justify-center",children:s("firstRun.addWorkspace")}),e.jsx("button",{type:"button",onClick:()=>{x(),i(!0)},className:"icon-btn w-full justify-center",children:s("firstRun.tryDemo")}),e.jsx("button",{type:"button",onClick:()=>i(),className:"text-xs text-sec underline hover:text-pri mt-1",children:s("firstRun.skipForNow")})]})]})]}),e.jsxs("div",{className:"mt-5 flex items-center justify-between",children:[e.jsx("span",{className:"text-xs text-ter",children:s("firstRun.step",{current:l+1,total:3})}),e.jsxs("div",{className:"flex items-center gap-2",children:[l>0&&!a&&e.jsx("button",{type:"button",onClick:()=>n(t=>t-1),className:"icon-btn",children:s("firstRun.back")}),!a&&e.jsx("button",{type:"button",onClick:()=>n(t=>t+1),className:"icon-btn icon-btn--primary",children:s("firstRun.next")}),e.jsx("button",{type:"button",onClick:()=>i(),className:"text-xs text-ter underline hover:text-sec",children:s("firstRun.skip")})]})]})]})})]})})};export{y as FirstRunWizard};
@@ -0,0 +1,76 @@
1
+ import{c as jn,r as R,K as at,j as h,ad as pr,ae as hr,u as fr,R as dr,P as mr,O as gr,C as kr,d as xr,U as br,v as Tr,X as yr,af as wr}from"./index-bOMtwrkA.js";import{S as dn}from"./search-CmzeVhy0.js";const Ar=[["path",{d:"M17 3a2 2 0 0 1 2 2v15a1 1 0 0 1-1.496.868l-4.512-2.578a2 2 0 0 0-1.984 0l-4.512 2.578A1 1 0 0 1 5 20V5a2 2 0 0 1 2-2z",key:"oz39mx"}]],Sr=jn("bookmark",Ar);const _r=[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]],Er=jn("external-link",_r),Rr={academic:{en:"Academic",zh:"学术"},design:{en:"Design",zh:"设计"},engineering:{en:"Engineering",zh:"工程"},finance:{en:"Finance",zh:"金融"},"game-development":{en:"Game Development",zh:"游戏开发"},hr:{en:"HR",zh:"人力资源"},integrations:{en:"System Integrations",zh:"系统集成"},legal:{en:"Legal",zh:"法务"},marketing:{en:"Marketing",zh:"营销"},misc:{en:"Misc",zh:"其他"},"paid-media":{en:"Paid Ads",zh:"广告投放"},product:{en:"Product",zh:"产品"},"project-management":{en:"Project Management",zh:"项目管理"},sales:{en:"Sales",zh:"销售"},"spatial-computing":{en:"Spatial Computing",zh:"空间计算"},specialized:{en:"Industry Verticals",zh:"行业角色"},"supply-chain":{en:"Supply Chain",zh:"供应链"},support:{en:"Support",zh:"客户支持"},testing:{en:"Testing",zh:"测试"}},Cr=t=>t.replace(/-/g," ").replace(/\b\w/g,e=>e.toUpperCase()),Fn=(t,e)=>{const n=Rr[t];return n?n[e]:Cr(t)},Nr=["engineering","testing","product","design","project-management","integrations","specialized","marketing","paid-media","sales","finance","legal","hr","supply-chain","support","academic","game-development","spatial-computing","misc"],vr=(t,e)=>{if(e!=="zh")return t;const n=new Map(Nr.map((s,r)=>[s,r]));return[...t].sort((s,r)=>{const a=n.get(s)??Number.POSITIVE_INFINITY,l=n.get(r)??Number.POSITIVE_INFINITY;return a!==l?a-l:s.localeCompare(r)})},Ir=t=>t?"color-mix(in oklab, var(--accent) 14%, var(--bg-2))":"var(--bg-2)",Or=t=>t?"var(--accent)":"var(--border-bright)",Lr=({agent:t,selected:e,imported:n,onSelect:s})=>{const{t:r}=at(),a=R.useCallback(()=>s(t.path),[t.path,s]),l=t.vibe?.trim()?t.vibe:t.description,c=r("marketplace.importedBadge"),p=t.displayName??t.name,o=t.nameOverflows?p:void 0;return h.jsxs("button",{type:"button",onClick:a,"data-testid":"marketplace-agent-card","data-agent-path":t.path,"data-imported":n?"true":void 0,"data-selected":e?"true":void 0,className:"marketplace-card flex w-full cursor-pointer flex-col gap-1.5 rounded-md border px-3 py-2.5 text-left outline-none transition-[background,border-color,transform] duration-100 ease-out focus-visible:ring-2 focus-visible:ring-offset-0 active:translate-y-px",style:{background:Ir(e),borderColor:Or(e),"--tw-ring-color":"color-mix(in oklab, var(--accent) 55%, transparent)"},children:[h.jsxs("div",{className:"flex items-center justify-between gap-2",children:[h.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[t.emoji?h.jsx("span",{className:"text-base leading-none",children:t.emoji}):null,h.jsx("span",{className:"truncate text-sm font-semibold text-pri",title:o,children:p})]}),n?h.jsx("span",{role:"img","aria-label":c,title:c,"data-testid":"marketplace-agent-imported",className:"flex shrink-0 items-center gap-0.5 rounded-full px-1.5 py-0.5 text-[10px] font-medium uppercase tracking-wider",style:{background:e?"var(--accent)":"color-mix(in oklab, var(--accent) 28%, transparent)",color:e?"#ffffff":"color-mix(in oklab, var(--accent) 60%, white)"},children:h.jsx(Sr,{size:10,"aria-hidden":!0})}):null]}),h.jsx("p",{className:"line-clamp-1 text-xs leading-snug text-sec",children:l})]})},Dr=R.memo(Lr);function mn(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,s=Array(e);n<e;n++)s[n]=t[n];return s}function Mr(t){if(Array.isArray(t))return t}function Pr(t,e){var n=t==null?null:typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(n!=null){var s,r,a,l,c=[],p=!0,o=!1;try{if(a=(n=n.call(t)).next,e!==0)for(;!(p=(s=a.call(n)).done)&&(c.push(s.value),c.length!==e);p=!0);}catch(m){o=!0,r=m}finally{try{if(!p&&n.return!=null&&(l=n.return(),Object(l)!==l))return}finally{if(o)throw r}}return c}}function zr(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
2
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function $r(t,e){return Mr(t)||Pr(t,e)||jr(t,e)||zr()}function jr(t,e){if(t){if(typeof t=="string")return mn(t,e);var n={}.toString.call(t).slice(8,-1);return n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set"?Array.from(t):n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?mn(t,e):void 0}}const Bn=Object.entries,gn=Object.setPrototypeOf,Fr=Object.isFrozen,Br=Object.getPrototypeOf,Ur=Object.getOwnPropertyDescriptor;let H=Object.freeze,Y=Object.seal,ve=Object.create,Un=typeof Reflect<"u"&&Reflect,Ct=Un.apply,Nt=Un.construct;H||(H=function(e){return e});Y||(Y=function(e){return e});Ct||(Ct=function(e,n){for(var s=arguments.length,r=new Array(s>2?s-2:0),a=2;a<s;a++)r[a-2]=arguments[a];return e.apply(n,r)});Nt||(Nt=function(e){for(var n=arguments.length,s=new Array(n>1?n-1:0),r=1;r<n;r++)s[r-1]=arguments[r];return new e(...s)});const _e=L(Array.prototype.forEach),Hr=L(Array.prototype.lastIndexOf),kn=L(Array.prototype.pop),Ee=L(Array.prototype.push),Gr=L(Array.prototype.splice),U=Array.isArray,$e=L(String.prototype.toLowerCase),wt=L(String.prototype.toString),xn=L(String.prototype.match),Re=L(String.prototype.replace),bn=L(String.prototype.indexOf),Wr=L(String.prototype.trim),qr=L(Number.prototype.toString),Yr=L(Boolean.prototype.toString),Tn=typeof BigInt>"u"?null:L(BigInt.prototype.toString),yn=typeof Symbol>"u"?null:L(Symbol.prototype.toString),C=L(Object.prototype.hasOwnProperty),Pe=L(Object.prototype.toString),F=L(RegExp.prototype.test),Ke=Zr(TypeError);function L(t){return function(e){e instanceof RegExp&&(e.lastIndex=0);for(var n=arguments.length,s=new Array(n>1?n-1:0),r=1;r<n;r++)s[r-1]=arguments[r];return Ct(t,e,s)}}function Zr(t){return function(){for(var e=arguments.length,n=new Array(e),s=0;s<e;s++)n[s]=arguments[s];return Nt(t,n)}}function b(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:$e;if(gn&&gn(t,null),!U(e))return t;let s=e.length;for(;s--;){let r=e[s];if(typeof r=="string"){const a=n(r);a!==r&&(Fr(e)||(e[s]=a),r=a)}t[r]=!0}return t}function Xr(t){for(let e=0;e<t.length;e++)C(t,e)||(t[e]=null);return t}function W(t){const e=ve(null);for(const s of Bn(t)){var n=$r(s,2);const r=n[0],a=n[1];C(t,r)&&(U(a)?e[r]=Xr(a):a&&typeof a=="object"&&a.constructor===Object?e[r]=W(a):e[r]=a)}return e}function Vr(t){switch(typeof t){case"string":return t;case"number":return qr(t);case"boolean":return Yr(t);case"bigint":return Tn?Tn(t):"0";case"symbol":return yn?yn(t):"Symbol()";case"undefined":return Pe(t);case"function":case"object":{if(t===null)return Pe(t);const e=t,n=fe(e,"toString");if(typeof n=="function"){const s=n(e);return typeof s=="string"?s:Pe(s)}return Pe(t)}default:return Pe(t)}}function fe(t,e){for(;t!==null;){const s=Ur(t,e);if(s){if(s.get)return L(s.get);if(typeof s.value=="function")return L(s.value)}t=Br(t)}function n(){return null}return n}function Qr(t){try{return F(t,""),!0}catch{return!1}}const wn=H(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","search","section","select","shadow","slot","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),At=H(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","enterkeyhint","exportparts","filter","font","g","glyph","glyphref","hkern","image","inputmode","line","lineargradient","marker","mask","metadata","mpath","part","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),St=H(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),Kr=H(["animate","color-profile","cursor","discard","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]),_t=H(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover","mprescripts"]),Jr=H(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),An=H(["#text"]),Sn=H(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","command","commandfor","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","exportparts","face","for","headers","height","hidden","high","href","hreflang","id","inert","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","nonce","noshade","novalidate","nowrap","open","optimum","part","pattern","placeholder","playsinline","popover","popovertarget","popovertargetaction","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","slot","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","wrap","xmlns"]),Et=H(["accent-height","accumulate","additive","alignment-baseline","amplitude","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dur","edgemode","elevation","end","exponent","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","intercept","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","mask-type","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","slope","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","tablevalues","targetx","targety","transform","transform-origin","text-anchor","text-decoration","text-rendering","textlength","type","u1","u2","unicode","values","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),_n=H(["accent","accentunder","align","bevelled","close","columnalign","columnlines","columnspacing","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lquote","lspace","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),Je=H(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),es=Y(/{{[\w\W]*|^[\w\W]*}}/g),ts=Y(/<%[\w\W]*|^[\w\W]*%>/g),ns=Y(/\${[\w\W]*/g),rs=Y(/^data-[\-\w.\u00B7-\uFFFF]+$/),ss=Y(/^aria-[\-\w]+$/),En=Y(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),as=Y(/^(?:\w+script|data):/i),is=Y(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),ls=Y(/^html$/i),os=Y(/^[a-z][.\w]*(-[.\w]+)+$/i),Ce={element:1,text:3,progressingInstruction:7,comment:8,document:9},cs=function(){return typeof window>"u"?null:window},us=function(e,n){if(typeof e!="object"||typeof e.createPolicy!="function")return null;let s=null;const r="data-tt-policy-suffix";n&&n.hasAttribute(r)&&(s=n.getAttribute(r));const a="dompurify"+(s?"#"+s:"");try{return e.createPolicy(a,{createHTML(l){return l},createScriptURL(l){return l}})}catch{return console.warn("TrustedTypes policy "+a+" could not be created."),null}},Rn=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}};function Hn(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:cs();const e=k=>Hn(k);if(e.version="3.4.5",e.removed=[],!t||!t.document||t.document.nodeType!==Ce.document||!t.Element)return e.isSupported=!1,e;let n=t.document;const s=n,r=s.currentScript,a=t.DocumentFragment,l=t.HTMLTemplateElement,c=t.Node,p=t.Element,o=t.NodeFilter,m=t.NamedNodeMap,f=m===void 0?t.NamedNodeMap||t.MozNamedAttrMap:m,x=t.HTMLFormElement,_=t.DOMParser,y=t.trustedTypes,P=p.prototype,q=fe(P,"cloneNode"),ke=fe(P,"remove"),xe=fe(P,"nextSibling"),S=fe(P,"childNodes"),te=fe(P,"parentNode"),ne=c&&c.prototype?fe(c.prototype,"nodeType"):null;if(typeof l=="function"){const k=n.createElement("template");k.content&&k.content.ownerDocument&&(n=k.content.ownerDocument)}let E,Q="";const ae=n,be=ae.implementation,Be=ae.createNodeIterator,Ue=ae.createDocumentFragment,He=ae.getElementsByTagName,Ge=s.importNode;let g=Rn();e.isSupported=typeof Bn=="function"&&typeof te=="function"&&be&&be.createHTMLDocument!==void 0;const N=es,ie=ts,Te=ns,er=rs,tr=ss,nr=as,Ut=is,rr=os;let Ht=En,z=null;const Gt=b({},[...wn,...At,...St,..._t,...An]);let j=null;const Wt=b({},[...Sn,...Et,..._n,...Je]);let v=Object.seal(ve(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Oe=null,We=null;const le=Object.seal(ve(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}}));let qt=!0,ot=!0,Yt=!1,Zt=!0,oe=!1,Le=!0,pe=!1,ct=!1,ut=!1,ye=!1,qe=!1,Ye=!1,Xt=!0,Vt=!1;const Qt="user-content-";let pt=!0,De=!1,we={},K=null;const ht=b({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let Kt=null;const Jt=b({},["audio","video","img","source","image","track"]);let ft=null;const en=b({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Ze="http://www.w3.org/1998/Math/MathML",Xe="http://www.w3.org/2000/svg",J="http://www.w3.org/1999/xhtml";let Ae=J,dt=!1,mt=null;const sr=b({},[Ze,Xe,J],wt);let gt=b({},["mi","mo","mn","ms","mtext"]),kt=b({},["annotation-xml"]);const ar=b({},["title","style","font","a","script"]);let Me=null;const ir=["application/xhtml+xml","text/html"],lr="text/html";let M=null,Se=null;const or=n.createElement("form"),tn=function(i){return i instanceof RegExp||i instanceof Function},xt=function(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(Se&&Se===i)return;(!i||typeof i!="object")&&(i={}),i=W(i),Me=ir.indexOf(i.PARSER_MEDIA_TYPE)===-1?lr:i.PARSER_MEDIA_TYPE,M=Me==="application/xhtml+xml"?wt:$e,z=C(i,"ALLOWED_TAGS")&&U(i.ALLOWED_TAGS)?b({},i.ALLOWED_TAGS,M):Gt,j=C(i,"ALLOWED_ATTR")&&U(i.ALLOWED_ATTR)?b({},i.ALLOWED_ATTR,M):Wt,mt=C(i,"ALLOWED_NAMESPACES")&&U(i.ALLOWED_NAMESPACES)?b({},i.ALLOWED_NAMESPACES,wt):sr,ft=C(i,"ADD_URI_SAFE_ATTR")&&U(i.ADD_URI_SAFE_ATTR)?b(W(en),i.ADD_URI_SAFE_ATTR,M):en,Kt=C(i,"ADD_DATA_URI_TAGS")&&U(i.ADD_DATA_URI_TAGS)?b(W(Jt),i.ADD_DATA_URI_TAGS,M):Jt,K=C(i,"FORBID_CONTENTS")&&U(i.FORBID_CONTENTS)?b({},i.FORBID_CONTENTS,M):ht,Oe=C(i,"FORBID_TAGS")&&U(i.FORBID_TAGS)?b({},i.FORBID_TAGS,M):W({}),We=C(i,"FORBID_ATTR")&&U(i.FORBID_ATTR)?b({},i.FORBID_ATTR,M):W({}),we=C(i,"USE_PROFILES")?i.USE_PROFILES&&typeof i.USE_PROFILES=="object"?W(i.USE_PROFILES):i.USE_PROFILES:!1,qt=i.ALLOW_ARIA_ATTR!==!1,ot=i.ALLOW_DATA_ATTR!==!1,Yt=i.ALLOW_UNKNOWN_PROTOCOLS||!1,Zt=i.ALLOW_SELF_CLOSE_IN_ATTR!==!1,oe=i.SAFE_FOR_TEMPLATES||!1,Le=i.SAFE_FOR_XML!==!1,pe=i.WHOLE_DOCUMENT||!1,ye=i.RETURN_DOM||!1,qe=i.RETURN_DOM_FRAGMENT||!1,Ye=i.RETURN_TRUSTED_TYPE||!1,ut=i.FORCE_BODY||!1,Xt=i.SANITIZE_DOM!==!1,Vt=i.SANITIZE_NAMED_PROPS||!1,pt=i.KEEP_CONTENT!==!1,De=i.IN_PLACE||!1,Ht=Qr(i.ALLOWED_URI_REGEXP)?i.ALLOWED_URI_REGEXP:En,Ae=typeof i.NAMESPACE=="string"?i.NAMESPACE:J,gt=C(i,"MATHML_TEXT_INTEGRATION_POINTS")&&i.MATHML_TEXT_INTEGRATION_POINTS&&typeof i.MATHML_TEXT_INTEGRATION_POINTS=="object"?W(i.MATHML_TEXT_INTEGRATION_POINTS):b({},["mi","mo","mn","ms","mtext"]),kt=C(i,"HTML_INTEGRATION_POINTS")&&i.HTML_INTEGRATION_POINTS&&typeof i.HTML_INTEGRATION_POINTS=="object"?W(i.HTML_INTEGRATION_POINTS):b({},["annotation-xml"]);const u=C(i,"CUSTOM_ELEMENT_HANDLING")&&i.CUSTOM_ELEMENT_HANDLING&&typeof i.CUSTOM_ELEMENT_HANDLING=="object"?W(i.CUSTOM_ELEMENT_HANDLING):ve(null);if(v=ve(null),C(u,"tagNameCheck")&&tn(u.tagNameCheck)&&(v.tagNameCheck=u.tagNameCheck),C(u,"attributeNameCheck")&&tn(u.attributeNameCheck)&&(v.attributeNameCheck=u.attributeNameCheck),C(u,"allowCustomizedBuiltInElements")&&typeof u.allowCustomizedBuiltInElements=="boolean"&&(v.allowCustomizedBuiltInElements=u.allowCustomizedBuiltInElements),oe&&(ot=!1),qe&&(ye=!0),we&&(z=b({},An),j=ve(null),we.html===!0&&(b(z,wn),b(j,Sn)),we.svg===!0&&(b(z,At),b(j,Et),b(j,Je)),we.svgFilters===!0&&(b(z,St),b(j,Et),b(j,Je)),we.mathMl===!0&&(b(z,_t),b(j,_n),b(j,Je))),le.tagCheck=null,le.attributeCheck=null,C(i,"ADD_TAGS")&&(typeof i.ADD_TAGS=="function"?le.tagCheck=i.ADD_TAGS:U(i.ADD_TAGS)&&(z===Gt&&(z=W(z)),b(z,i.ADD_TAGS,M))),C(i,"ADD_ATTR")&&(typeof i.ADD_ATTR=="function"?le.attributeCheck=i.ADD_ATTR:U(i.ADD_ATTR)&&(j===Wt&&(j=W(j)),b(j,i.ADD_ATTR,M))),C(i,"ADD_URI_SAFE_ATTR")&&U(i.ADD_URI_SAFE_ATTR)&&b(ft,i.ADD_URI_SAFE_ATTR,M),C(i,"FORBID_CONTENTS")&&U(i.FORBID_CONTENTS)&&(K===ht&&(K=W(K)),b(K,i.FORBID_CONTENTS,M)),C(i,"ADD_FORBID_CONTENTS")&&U(i.ADD_FORBID_CONTENTS)&&(K===ht&&(K=W(K)),b(K,i.ADD_FORBID_CONTENTS,M)),pt&&(z["#text"]=!0),pe&&b(z,["html","head","body"]),z.table&&(b(z,["tbody"]),delete Oe.tbody),i.TRUSTED_TYPES_POLICY){if(typeof i.TRUSTED_TYPES_POLICY.createHTML!="function")throw Ke('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof i.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw Ke('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');E=i.TRUSTED_TYPES_POLICY,Q=E.createHTML("")}else E===void 0&&(E=us(y,r)),E!==null&&typeof Q=="string"&&(Q=E.createHTML(""));H&&H(i),Se=i},nn=b({},[...At,...St,...Kr]),rn=b({},[..._t,...Jr]),cr=function(i){let u=te(i);(!u||!u.tagName)&&(u={namespaceURI:Ae,tagName:"template"});const d=$e(i.tagName),T=$e(u.tagName);return mt[i.namespaceURI]?i.namespaceURI===Xe?u.namespaceURI===J?d==="svg":u.namespaceURI===Ze?d==="svg"&&(T==="annotation-xml"||gt[T]):!!nn[d]:i.namespaceURI===Ze?u.namespaceURI===J?d==="math":u.namespaceURI===Xe?d==="math"&&kt[T]:!!rn[d]:i.namespaceURI===J?u.namespaceURI===Xe&&!kt[T]||u.namespaceURI===Ze&&!gt[T]?!1:!rn[d]&&(ar[d]||!nn[d]):!!(Me==="application/xhtml+xml"&&mt[i.namespaceURI]):!1},Z=function(i){Ee(e.removed,{element:i});try{te(i).removeChild(i)}catch{ke(i)}},he=function(i,u){try{Ee(e.removed,{attribute:u.getAttributeNode(i),from:u})}catch{Ee(e.removed,{attribute:null,from:u})}if(u.removeAttribute(i),i==="is")if(ye||qe)try{Z(u)}catch{}else try{u.setAttribute(i,"")}catch{}},sn=function(i){let u=null,d=null;if(ut)i="<remove></remove>"+i;else{const O=xn(i,/^[\r\n\t ]+/);d=O&&O[0]}Me==="application/xhtml+xml"&&Ae===J&&(i='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+i+"</body></html>");const T=E?E.createHTML(i):i;if(Ae===J)try{u=new _().parseFromString(T,Me)}catch{}if(!u||!u.documentElement){u=be.createDocument(Ae,"template",null);try{u.documentElement.innerHTML=dt?Q:T}catch{}}const I=u.body||u.documentElement;return i&&d&&I.insertBefore(n.createTextNode(d),I.childNodes[0]||null),Ae===J?He.call(u,pe?"html":"body")[0]:pe?u.documentElement:I},an=function(i){return Be.call(i.ownerDocument||i,i,o.SHOW_ELEMENT|o.SHOW_COMMENT|o.SHOW_TEXT|o.SHOW_PROCESSING_INSTRUCTION|o.SHOW_CDATA_SECTION,null)},ln=function(i){i.normalize();const u=Be.call(i.ownerDocument||i,i,o.SHOW_TEXT|o.SHOW_COMMENT|o.SHOW_CDATA_SECTION|o.SHOW_PROCESSING_INSTRUCTION,null);let d=u.nextNode();for(;d;){let T=d.data;_e([N,ie,Te],I=>{T=Re(T,I," ")}),d.data=T,d=u.nextNode()}},bt=function(i){return i instanceof x&&(typeof i.nodeName!="string"||typeof i.textContent!="string"||typeof i.removeChild!="function"||!(i.attributes instanceof f)||typeof i.removeAttribute!="function"||typeof i.setAttribute!="function"||typeof i.namespaceURI!="string"||typeof i.insertBefore!="function"||typeof i.hasChildNodes!="function")},Ve=function(i){if(!ne||typeof i!="object"||i===null)return!1;try{return typeof ne(i)=="number"}catch{return!1}};function re(k,i,u){_e(k,d=>{d.call(e,i,u,Se)})}const on=function(i){let u=null;if(re(g.beforeSanitizeElements,i,null),bt(i))return Z(i),!0;const d=M(i.nodeName);if(re(g.uponSanitizeElement,i,{tagName:d,allowedTags:z}),Le&&i.hasChildNodes()&&!Ve(i.firstElementChild)&&F(/<[/\w!]/g,i.innerHTML)&&F(/<[/\w!]/g,i.textContent)||Le&&i.namespaceURI===J&&d==="style"&&Ve(i.firstElementChild)||i.nodeType===Ce.progressingInstruction||Le&&i.nodeType===Ce.comment&&F(/<[/\w]/g,i.data))return Z(i),!0;if(Oe[d]||!(le.tagCheck instanceof Function&&le.tagCheck(d))&&!z[d]){if(!Oe[d]&&un(d)&&(v.tagNameCheck instanceof RegExp&&F(v.tagNameCheck,d)||v.tagNameCheck instanceof Function&&v.tagNameCheck(d)))return!1;if(pt&&!K[d]){const T=te(i)||i.parentNode,I=S(i)||i.childNodes;if(I&&T){const O=I.length;for(let G=O-1;G>=0;--G){const ce=q(I[G],!0);T.insertBefore(ce,xe(i))}}}return Z(i),!0}return i instanceof p&&!cr(i)||(d==="noscript"||d==="noembed"||d==="noframes")&&F(/<\/no(script|embed|frames)/i,i.innerHTML)?(Z(i),!0):(oe&&i.nodeType===Ce.text&&(u=i.textContent,_e([N,ie,Te],T=>{u=Re(u,T," ")}),i.textContent!==u&&(Ee(e.removed,{element:i.cloneNode()}),i.textContent=u)),re(g.afterSanitizeElements,i,null),!1)},cn=function(i,u,d){if(We[u]||Xt&&(u==="id"||u==="name")&&(d in n||d in or))return!1;const T=j[u]||le.attributeCheck instanceof Function&&le.attributeCheck(u,i);if(!(ot&&!We[u]&&F(er,u))){if(!(qt&&F(tr,u))){if(!T||We[u]){if(!(un(i)&&(v.tagNameCheck instanceof RegExp&&F(v.tagNameCheck,i)||v.tagNameCheck instanceof Function&&v.tagNameCheck(i))&&(v.attributeNameCheck instanceof RegExp&&F(v.attributeNameCheck,u)||v.attributeNameCheck instanceof Function&&v.attributeNameCheck(u,i))||u==="is"&&v.allowCustomizedBuiltInElements&&(v.tagNameCheck instanceof RegExp&&F(v.tagNameCheck,d)||v.tagNameCheck instanceof Function&&v.tagNameCheck(d))))return!1}else if(!ft[u]){if(!F(Ht,Re(d,Ut,""))){if(!((u==="src"||u==="xlink:href"||u==="href")&&i!=="script"&&bn(d,"data:")===0&&Kt[i])){if(!(Yt&&!F(nr,Re(d,Ut,"")))){if(d)return!1}}}}}}return!0},ur=b({},["annotation-xml","color-profile","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","missing-glyph"]),un=function(i){return!ur[$e(i)]&&F(rr,i)},pn=function(i){re(g.beforeSanitizeAttributes,i,null);const u=i.attributes;if(!u||bt(i))return;const d={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:j,forceKeepAttr:void 0};let T=u.length;for(;T--;){const I=u[T],O=I.name,G=I.namespaceURI,ce=I.value,se=M(O),yt=ce;let $=O==="value"?yt:Wr(yt);if(d.attrName=se,d.attrValue=$,d.keepAttr=!0,d.forceKeepAttr=void 0,re(g.uponSanitizeAttribute,i,d),$=d.attrValue,Vt&&(se==="id"||se==="name")&&bn($,Qt)!==0&&(he(O,i),$=Qt+$),Le&&F(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,$)){he(O,i);continue}if(se==="attributename"&&xn($,"href")){he(O,i);continue}if(d.forceKeepAttr)continue;if(!d.keepAttr){he(O,i);continue}if(!Zt&&F(/\/>/i,$)){he(O,i);continue}oe&&_e([N,ie,Te],fn=>{$=Re($,fn," ")});const hn=M(i.nodeName);if(!cn(hn,se,$)){he(O,i);continue}if(E&&typeof y=="object"&&typeof y.getAttributeType=="function"&&!G)switch(y.getAttributeType(hn,se)){case"TrustedHTML":{$=E.createHTML($);break}case"TrustedScriptURL":{$=E.createScriptURL($);break}}if($!==yt)try{G?i.setAttributeNS(G,O,$):i.setAttribute(O,$),bt(i)?Z(i):kn(e.removed)}catch{he(O,i)}}re(g.afterSanitizeAttributes,i,null)},Tt=function(i){let u=null;const d=an(i);for(re(g.beforeSanitizeShadowDOM,i,null);u=d.nextNode();)re(g.uponSanitizeShadowNode,u,null),on(u),pn(u),u.content instanceof a&&Tt(u.content);re(g.afterSanitizeShadowDOM,i,null)},Qe=function(i){if(i.nodeType===Ce.element&&i.shadowRoot instanceof a){const T=i.shadowRoot;Qe(T),Tt(T)}const u=i.childNodes;if(!u)return;const d=[];_e(u,T=>{Ee(d,T)});for(const T of d)Qe(T)};return e.sanitize=function(k){let i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},u=null,d=null,T=null,I=null;if(dt=!k,dt&&(k="<!-->"),typeof k!="string"&&!Ve(k)&&(k=Vr(k),typeof k!="string"))throw Ke("dirty is not a string, aborting");if(!e.isSupported)return k;if(ct||xt(i),e.removed=[],typeof k=="string"&&(De=!1),De){const ce=k.nodeName;if(typeof ce=="string"){const se=M(ce);if(!z[se]||Oe[se])throw Ke("root node is forbidden and cannot be sanitized in-place")}Qe(k)}else if(Ve(k))u=sn("<!---->"),d=u.ownerDocument.importNode(k,!0),d.nodeType===Ce.element&&d.nodeName==="BODY"||d.nodeName==="HTML"?u=d:u.appendChild(d),Qe(d);else{if(!ye&&!oe&&!pe&&k.indexOf("<")===-1)return E&&Ye?E.createHTML(k):k;if(u=sn(k),!u)return ye?null:Ye?Q:""}u&&ut&&Z(u.firstChild);const O=an(De?k:u);for(;T=O.nextNode();)on(T),pn(T),T.content instanceof a&&Tt(T.content);if(De)return oe&&ln(k),k;if(ye){if(oe&&ln(u),qe)for(I=Ue.call(u.ownerDocument);u.firstChild;)I.appendChild(u.firstChild);else I=u;return(j.shadowroot||j.shadowrootmode)&&(I=Ge.call(s,I,!0)),I}let G=pe?u.outerHTML:u.innerHTML;return pe&&z["!doctype"]&&u.ownerDocument&&u.ownerDocument.doctype&&u.ownerDocument.doctype.name&&F(ls,u.ownerDocument.doctype.name)&&(G="<!DOCTYPE "+u.ownerDocument.doctype.name+`>
3
+ `+G),oe&&_e([N,ie,Te],ce=>{G=Re(G,ce," ")}),E&&Ye?E.createHTML(G):G},e.setConfig=function(){let k=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};xt(k),ct=!0},e.clearConfig=function(){Se=null,ct=!1},e.isValidAttribute=function(k,i,u){Se||xt({});const d=M(k),T=M(i);return cn(d,T,u)},e.addHook=function(k,i){typeof i=="function"&&Ee(g[k],i)},e.removeHook=function(k,i){if(i!==void 0){const u=Hr(g[k],i);return u===-1?void 0:Gr(g[k],u,1)[0]}return kn(g[k])},e.removeHooks=function(k){g[k]=[]},e.removeAllHooks=function(){g=Rn()},e}var D=Hn(),ps=D;D.sanitize.bind(D);D.isSupported;D.addHook.bind(D);D.removeHook.bind(D);D.removeHooks.bind(D);D.removeAllHooks.bind(D);D.setConfig.bind(D);D.clearConfig.bind(D);D.isValidAttribute.bind(D);D.version;D.removed;function Lt(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var ge=Lt();function Gn(t){ge=t}var de={exec:()=>null};function Ne(t){let e=[];return n=>{let s=Math.max(0,Math.min(3,n-1)),r=e[s];return r||(r=t(s),e[s]=r),r}}function w(t,e=""){let n=typeof t=="string"?t:t.source,s={replace:(r,a)=>{let l=typeof a=="string"?a:a.source;return l=l.replace(B.caret,"$1"),n=n.replace(r,l),s},getRegex:()=>new RegExp(n,e)};return s}var hs=((t="")=>{try{return!!new RegExp("(?<=1)(?<!1)"+t)}catch{return!1}})(),B={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:t=>new RegExp(`^( {0,3}${t})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:Ne(t=>new RegExp(`^ {0,${t}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`)),hrRegex:Ne(t=>new RegExp(`^ {0,${t}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`)),fencesBeginRegex:Ne(t=>new RegExp(`^ {0,${t}}(?:\`\`\`|~~~)`)),headingBeginRegex:Ne(t=>new RegExp(`^ {0,${t}}#`)),htmlBeginRegex:Ne(t=>new RegExp(`^ {0,${t}}<(?:[a-z].*>|!--)`,"i")),blockquoteBeginRegex:Ne(t=>new RegExp(`^ {0,${t}}>`))},fs=/^(?:[ \t]*(?:\n|$))+/,ds=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,ms=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,Fe=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,gs=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,Dt=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,Wn=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,qn=w(Wn).replace(/bull/g,Dt).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),ks=w(Wn).replace(/bull/g,Dt).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),Mt=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,xs=/^[^\n]+/,Pt=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,bs=w(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",Pt).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),Ts=w(/^(bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,Dt).getRegex(),it="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",zt=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,ys=w("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",zt).replace("tag",it).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),Yn=w(Mt).replace("hr",Fe).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",it).getRegex(),ws=w(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",Yn).getRegex(),$t={blockquote:ws,code:ds,def:bs,fences:ms,heading:gs,hr:Fe,html:ys,lheading:qn,list:Ts,newline:fs,paragraph:Yn,table:de,text:xs},Cn=w("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",Fe).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",it).getRegex(),As={...$t,lheading:ks,table:Cn,paragraph:w(Mt).replace("hr",Fe).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",Cn).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",it).getRegex()},Ss={...$t,html:w(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",zt).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:de,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:w(Mt).replace("hr",Fe).replace("heading",` *#{1,6} *[^
4
+ ]`).replace("lheading",qn).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},_s=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,Es=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,Zn=/^( {2,}|\\)\n(?!\s*$)/,Rs=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,Ie=/[\p{P}\p{S}]/u,lt=/[\s\p{P}\p{S}]/u,jt=/[^\s\p{P}\p{S}]/u,Cs=w(/^((?![*_])punctSpace)/,"u").replace(/punctSpace/g,lt).getRegex(),Xn=/(?!~)[\p{P}\p{S}]/u,Ns=/(?!~)[\s\p{P}\p{S}]/u,vs=/(?:[^\s\p{P}\p{S}]|~)/u,Is=w(/link|precode-code|html/,"g").replace("link",/\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-",hs?"(?<!`)()":"(^^|[^`])").replace("code",/(?<b>`+)[^`]+\k<b>(?!`)/).replace("html",/<(?! )[^<>]*?>/).getRegex(),Vn=/^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/,Os=w(Vn,"u").replace(/punct/g,Ie).getRegex(),Ls=w(Vn,"u").replace(/punct/g,Xn).getRegex(),Qn="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",Ds=w(Qn,"gu").replace(/notPunctSpace/g,jt).replace(/punctSpace/g,lt).replace(/punct/g,Ie).getRegex(),Ms=w(Qn,"gu").replace(/notPunctSpace/g,vs).replace(/punctSpace/g,Ns).replace(/punct/g,Xn).getRegex(),Ps=w("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,jt).replace(/punctSpace/g,lt).replace(/punct/g,Ie).getRegex(),zs=w(/^~~?(?:((?!~)punct)|[^\s~])/,"u").replace(/punct/g,Ie).getRegex(),$s="^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)",js=w($s,"gu").replace(/notPunctSpace/g,jt).replace(/punctSpace/g,lt).replace(/punct/g,Ie).getRegex(),Fs=w(/\\(punct)/,"gu").replace(/punct/g,Ie).getRegex(),Bs=w(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),Us=w(zt).replace("(?:-->|$)","-->").getRegex(),Hs=w("^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>").replace("comment",Us).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),nt=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/,Gs=w(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?\s*\)/).replace("label",nt).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),Kn=w(/^!?\[(label)\]\[(ref)\]/).replace("label",nt).replace("ref",Pt).getRegex(),Jn=w(/^!?\[(ref)\](?:\[\])?/).replace("ref",Pt).getRegex(),Ws=w("reflink|nolink(?!\\()","g").replace("reflink",Kn).replace("nolink",Jn).getRegex(),Nn=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,Ft={_backpedal:de,anyPunctuation:Fs,autolink:Bs,blockSkip:Is,br:Zn,code:Es,del:de,delLDelim:de,delRDelim:de,emStrongLDelim:Os,emStrongRDelimAst:Ds,emStrongRDelimUnd:Ps,escape:_s,link:Gs,nolink:Jn,punctuation:Cs,reflink:Kn,reflinkSearch:Ws,tag:Hs,text:Rs,url:de},qs={...Ft,link:w(/^!?\[(label)\]\((.*?)\)/).replace("label",nt).getRegex(),reflink:w(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",nt).getRegex()},vt={...Ft,emStrongRDelimAst:Ms,emStrongLDelim:Ls,delLDelim:zs,delRDelim:js,url:w(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol",Nn).replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:w(/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/).replace("protocol",Nn).getRegex()},Ys={...vt,br:w(Zn).replace("{2,}","*").getRegex(),text:w(vt.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()},et={normal:$t,gfm:As,pedantic:Ss},ze={normal:Ft,gfm:vt,breaks:Ys,pedantic:qs},Zs={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},vn=t=>Zs[t];function ee(t,e){if(e){if(B.escapeTest.test(t))return t.replace(B.escapeReplace,vn)}else if(B.escapeTestNoEncode.test(t))return t.replace(B.escapeReplaceNoEncode,vn);return t}function In(t){try{t=encodeURI(t).replace(B.percentDecode,"%")}catch{return null}return t}function On(t,e){let n=t.replace(B.findPipe,(a,l,c)=>{let p=!1,o=l;for(;--o>=0&&c[o]==="\\";)p=!p;return p?"|":" |"}),s=n.split(B.splitPipe),r=0;if(s[0].trim()||s.shift(),s.length>0&&!s.at(-1)?.trim()&&s.pop(),e)if(s.length>e)s.splice(e);else for(;s.length<e;)s.push("");for(;r<s.length;r++)s[r]=s[r].trim().replace(B.slashPipe,"|");return s}function ue(t,e,n){let s=t.length;if(s===0)return"";let r=0;for(;r<s&&t.charAt(s-r-1)===e;)r++;return t.slice(0,s-r)}function Ln(t){let e=t.split(`
5
+ `),n=e.length-1;for(;n>=0&&B.blankLine.test(e[n]);)n--;return e.length-n<=2?t:e.slice(0,n+1).join(`
6
+ `)}function Xs(t,e){if(t.indexOf(e[1])===-1)return-1;let n=0;for(let s=0;s<t.length;s++)if(t[s]==="\\")s++;else if(t[s]===e[0])n++;else if(t[s]===e[1]&&(n--,n<0))return s;return n>0?-2:-1}function Vs(t,e=0){let n=e,s="";for(let r of t)if(r===" "){let a=4-n%4;s+=" ".repeat(a),n+=a}else s+=r,n++;return s}function Dn(t,e,n,s,r){let a=e.href,l=e.title||null,c=t[1].replace(r.other.outputLinkReplace,"$1");s.state.inLink=!0;let p={type:t[0].charAt(0)==="!"?"image":"link",raw:n,href:a,title:l,text:c,tokens:s.inlineTokens(c)};return s.state.inLink=!1,p}function Qs(t,e,n){let s=t.match(n.other.indentCodeCompensation);if(s===null)return e;let r=s[1];return e.split(`
7
+ `).map(a=>{let l=a.match(n.other.beginningSpace);if(l===null)return a;let[c]=l;return c.length>=r.length?a.slice(r.length):a}).join(`
8
+ `)}var rt=class{options;rules;lexer;constructor(t){this.options=t||ge}space(t){let e=this.rules.block.newline.exec(t);if(e&&e[0].length>0)return{type:"space",raw:e[0]}}code(t){let e=this.rules.block.code.exec(t);if(e){let n=this.options.pedantic?e[0]:Ln(e[0]),s=n.replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:n,codeBlockStyle:"indented",text:s}}}fences(t){let e=this.rules.block.fences.exec(t);if(e){let n=e[0],s=Qs(n,e[3]||"",this.rules);return{type:"code",raw:n,lang:e[2]?e[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):e[2],text:s}}}heading(t){let e=this.rules.block.heading.exec(t);if(e){let n=e[2].trim();if(this.rules.other.endingHash.test(n)){let s=ue(n,"#");(this.options.pedantic||!s||this.rules.other.endingSpaceChar.test(s))&&(n=s.trim())}return{type:"heading",raw:ue(e[0],`
9
+ `),depth:e[1].length,text:n,tokens:this.lexer.inline(n)}}}hr(t){let e=this.rules.block.hr.exec(t);if(e)return{type:"hr",raw:ue(e[0],`
10
+ `)}}blockquote(t){let e=this.rules.block.blockquote.exec(t);if(e){let n=ue(e[0],`
11
+ `).split(`
12
+ `),s="",r="",a=[];for(;n.length>0;){let l=!1,c=[],p;for(p=0;p<n.length;p++)if(this.rules.other.blockquoteStart.test(n[p]))c.push(n[p]),l=!0;else if(!l)c.push(n[p]);else break;n=n.slice(p);let o=c.join(`
13
+ `),m=o.replace(this.rules.other.blockquoteSetextReplace,`
14
+ $1`).replace(this.rules.other.blockquoteSetextReplace2,"");s=s?`${s}
15
+ ${o}`:o,r=r?`${r}
16
+ ${m}`:m;let f=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(m,a,!0),this.lexer.state.top=f,n.length===0)break;let x=a.at(-1);if(x?.type==="code")break;if(x?.type==="blockquote"){let _=x,y=_.raw+`
17
+ `+n.join(`
18
+ `),P=this.blockquote(y);a[a.length-1]=P,s=s.substring(0,s.length-_.raw.length)+P.raw,r=r.substring(0,r.length-_.text.length)+P.text;break}else if(x?.type==="list"){let _=x,y=_.raw+`
19
+ `+n.join(`
20
+ `),P=this.list(y);a[a.length-1]=P,s=s.substring(0,s.length-x.raw.length)+P.raw,r=r.substring(0,r.length-_.raw.length)+P.raw,n=y.substring(a.at(-1).raw.length).split(`
21
+ `);continue}}return{type:"blockquote",raw:s,tokens:a,text:r}}}list(t){let e=this.rules.block.list.exec(t);if(e){let n=e[1].trim(),s=n.length>1,r={type:"list",raw:"",ordered:s,start:s?+n.slice(0,-1):"",loose:!1,items:[]};n=s?`\\d{1,9}\\${n.slice(-1)}`:`\\${n}`,this.options.pedantic&&(n=s?n:"[*+-]");let a=this.rules.other.listItemRegex(n),l=!1;for(;t;){let p=!1,o="",m="";if(!(e=a.exec(t))||this.rules.block.hr.test(t))break;o=e[0],t=t.substring(o.length);let f=Vs(e[2].split(`
22
+ `,1)[0],e[1].length),x=t.split(`
23
+ `,1)[0],_=!f.trim(),y=0;if(this.options.pedantic?(y=2,m=f.trimStart()):_?y=e[1].length+1:(y=f.search(this.rules.other.nonSpaceChar),y=y>4?1:y,m=f.slice(y),y+=e[1].length),_&&this.rules.other.blankLine.test(x)&&(o+=x+`
24
+ `,t=t.substring(x.length+1),p=!0),!p){let P=this.rules.other.nextBulletRegex(y),q=this.rules.other.hrRegex(y),ke=this.rules.other.fencesBeginRegex(y),xe=this.rules.other.headingBeginRegex(y),S=this.rules.other.htmlBeginRegex(y),te=this.rules.other.blockquoteBeginRegex(y);for(;t;){let ne=t.split(`
25
+ `,1)[0],E;if(x=ne,this.options.pedantic?(x=x.replace(this.rules.other.listReplaceNesting," "),E=x):E=x.replace(this.rules.other.tabCharGlobal," "),ke.test(x)||xe.test(x)||S.test(x)||te.test(x)||P.test(x)||q.test(x))break;if(E.search(this.rules.other.nonSpaceChar)>=y||!x.trim())m+=`
26
+ `+E.slice(y);else{if(_||f.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||ke.test(f)||xe.test(f)||q.test(f))break;m+=`
27
+ `+x}_=!x.trim(),o+=ne+`
28
+ `,t=t.substring(ne.length+1),f=E.slice(y)}}r.loose||(l?r.loose=!0:this.rules.other.doubleBlankLine.test(o)&&(l=!0)),r.items.push({type:"list_item",raw:o,task:!!this.options.gfm&&this.rules.other.listIsTask.test(m),loose:!1,text:m,tokens:[]}),r.raw+=o}let c=r.items.at(-1);if(c)c.raw=c.raw.trimEnd(),c.text=c.text.trimEnd();else return;r.raw=r.raw.trimEnd();for(let p of r.items){this.lexer.state.top=!1,p.tokens=this.lexer.blockTokens(p.text,[]);let o=p.tokens[0];if(p.task&&(o?.type==="text"||o?.type==="paragraph")){p.text=p.text.replace(this.rules.other.listReplaceTask,""),o.raw=o.raw.replace(this.rules.other.listReplaceTask,""),o.text=o.text.replace(this.rules.other.listReplaceTask,"");for(let f=this.lexer.inlineQueue.length-1;f>=0;f--)if(this.rules.other.listIsTask.test(this.lexer.inlineQueue[f].src)){this.lexer.inlineQueue[f].src=this.lexer.inlineQueue[f].src.replace(this.rules.other.listReplaceTask,"");break}let m=this.rules.other.listTaskCheckbox.exec(p.raw);if(m){let f={type:"checkbox",raw:m[0]+" ",checked:m[0]!=="[ ]"};p.checked=f.checked,r.loose?p.tokens[0]&&["paragraph","text"].includes(p.tokens[0].type)&&"tokens"in p.tokens[0]&&p.tokens[0].tokens?(p.tokens[0].raw=f.raw+p.tokens[0].raw,p.tokens[0].text=f.raw+p.tokens[0].text,p.tokens[0].tokens.unshift(f)):p.tokens.unshift({type:"paragraph",raw:f.raw,text:f.raw,tokens:[f]}):p.tokens.unshift(f)}}else p.task&&(p.task=!1);if(!r.loose){let m=p.tokens.filter(x=>x.type==="space"),f=m.length>0&&m.some(x=>this.rules.other.anyLine.test(x.raw));r.loose=f}}if(r.loose)for(let p of r.items){p.loose=!0;for(let o of p.tokens)o.type==="text"&&(o.type="paragraph")}return r}}html(t){let e=this.rules.block.html.exec(t);if(e){let n=Ln(e[0]);return{type:"html",block:!0,raw:n,pre:e[1]==="pre"||e[1]==="script"||e[1]==="style",text:n}}}def(t){let e=this.rules.block.def.exec(t);if(e){let n=e[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal," "),s=e[2]?e[2].replace(this.rules.other.hrefBrackets,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",r=e[3]?e[3].substring(1,e[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):e[3];return{type:"def",tag:n,raw:ue(e[0],`
29
+ `),href:s,title:r}}}table(t){let e=this.rules.block.table.exec(t);if(!e||!this.rules.other.tableDelimiter.test(e[2]))return;let n=On(e[1]),s=e[2].replace(this.rules.other.tableAlignChars,"").split("|"),r=e[3]?.trim()?e[3].replace(this.rules.other.tableRowBlankLine,"").split(`
30
+ `):[],a={type:"table",raw:ue(e[0],`
31
+ `),header:[],align:[],rows:[]};if(n.length===s.length){for(let l of s)this.rules.other.tableAlignRight.test(l)?a.align.push("right"):this.rules.other.tableAlignCenter.test(l)?a.align.push("center"):this.rules.other.tableAlignLeft.test(l)?a.align.push("left"):a.align.push(null);for(let l=0;l<n.length;l++)a.header.push({text:n[l],tokens:this.lexer.inline(n[l]),header:!0,align:a.align[l]});for(let l of r)a.rows.push(On(l,a.header.length).map((c,p)=>({text:c,tokens:this.lexer.inline(c),header:!1,align:a.align[p]})));return a}}lheading(t){let e=this.rules.block.lheading.exec(t);if(e){let n=e[1].trim();return{type:"heading",raw:ue(e[0],`
32
+ `),depth:e[2].charAt(0)==="="?1:2,text:n,tokens:this.lexer.inline(n)}}}paragraph(t){let e=this.rules.block.paragraph.exec(t);if(e){let n=e[1].charAt(e[1].length-1)===`
33
+ `?e[1].slice(0,-1):e[1];return{type:"paragraph",raw:e[0],text:n,tokens:this.lexer.inline(n)}}}text(t){let e=this.rules.block.text.exec(t);if(e)return{type:"text",raw:e[0],text:e[0],tokens:this.lexer.inline(e[0])}}escape(t){let e=this.rules.inline.escape.exec(t);if(e)return{type:"escape",raw:e[0],text:e[1]}}tag(t){let e=this.rules.inline.tag.exec(t);if(e)return!this.lexer.state.inLink&&this.rules.other.startATag.test(e[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(e[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(e[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(e[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:e[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:e[0]}}link(t){let e=this.rules.inline.link.exec(t);if(e){let n=e[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(n)){if(!this.rules.other.endAngleBracket.test(n))return;let a=ue(n.slice(0,-1),"\\");if((n.length-a.length)%2===0)return}else{let a=Xs(e[2],"()");if(a===-2)return;if(a>-1){let l=(e[0].indexOf("!")===0?5:4)+e[1].length+a;e[2]=e[2].substring(0,a),e[0]=e[0].substring(0,l).trim(),e[3]=""}}let s=e[2],r="";if(this.options.pedantic){let a=this.rules.other.pedanticHrefTitle.exec(s);a&&(s=a[1],r=a[3])}else r=e[3]?e[3].slice(1,-1):"";return s=s.trim(),this.rules.other.startAngleBracket.test(s)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(n)?s=s.slice(1):s=s.slice(1,-1)),Dn(e,{href:s&&s.replace(this.rules.inline.anyPunctuation,"$1"),title:r&&r.replace(this.rules.inline.anyPunctuation,"$1")},e[0],this.lexer,this.rules)}}reflink(t,e){let n;if((n=this.rules.inline.reflink.exec(t))||(n=this.rules.inline.nolink.exec(t))){let s=(n[2]||n[1]).replace(this.rules.other.multipleSpaceGlobal," "),r=e[s.toLowerCase()];if(!r){let a=n[0].charAt(0);return{type:"text",raw:a,text:a}}return Dn(n,r,n[0],this.lexer,this.rules)}}emStrong(t,e,n=""){let s=this.rules.inline.emStrongLDelim.exec(t);if(!(!s||!s[1]&&!s[2]&&!s[3]&&!s[4]||s[4]&&n.match(this.rules.other.unicodeAlphaNumeric))&&(!(s[1]||s[3])||!n||this.rules.inline.punctuation.exec(n))){let r=[...s[0]].length-1,a,l,c=r,p=0,o=s[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(o.lastIndex=0,e=e.slice(-1*t.length+r);(s=o.exec(e))!==null;){if(a=s[1]||s[2]||s[3]||s[4]||s[5]||s[6],!a)continue;if(l=[...a].length,s[3]||s[4]){c+=l;continue}else if((s[5]||s[6])&&r%3&&!((r+l)%3)){p+=l;continue}if(c-=l,c>0)continue;l=Math.min(l,l+c+p);let m=[...s[0]][0].length,f=t.slice(0,r+s.index+m+l);if(Math.min(r,l)%2){let _=f.slice(1,-1);return{type:"em",raw:f,text:_,tokens:this.lexer.inlineTokens(_)}}let x=f.slice(2,-2);return{type:"strong",raw:f,text:x,tokens:this.lexer.inlineTokens(x)}}}}codespan(t){let e=this.rules.inline.code.exec(t);if(e){let n=e[2].replace(this.rules.other.newLineCharGlobal," "),s=this.rules.other.nonSpaceChar.test(n),r=this.rules.other.startingSpaceChar.test(n)&&this.rules.other.endingSpaceChar.test(n);return s&&r&&(n=n.substring(1,n.length-1)),{type:"codespan",raw:e[0],text:n}}}br(t){let e=this.rules.inline.br.exec(t);if(e)return{type:"br",raw:e[0]}}del(t,e,n=""){let s=this.rules.inline.delLDelim.exec(t);if(s&&(!s[1]||!n||this.rules.inline.punctuation.exec(n))){let r=[...s[0]].length-1,a,l,c=r,p=this.rules.inline.delRDelim;for(p.lastIndex=0,e=e.slice(-1*t.length+r);(s=p.exec(e))!==null;){if(a=s[1]||s[2]||s[3]||s[4]||s[5]||s[6],!a||(l=[...a].length,l!==r))continue;if(s[3]||s[4]){c+=l;continue}if(c-=l,c>0)continue;l=Math.min(l,l+c);let o=[...s[0]][0].length,m=t.slice(0,r+s.index+o+l),f=m.slice(r,-r);return{type:"del",raw:m,text:f,tokens:this.lexer.inlineTokens(f)}}}}autolink(t){let e=this.rules.inline.autolink.exec(t);if(e){let n,s;return e[2]==="@"?(n=e[1],s="mailto:"+n):(n=e[1],s=n),{type:"link",raw:e[0],text:n,href:s,tokens:[{type:"text",raw:n,text:n}]}}}url(t){let e;if(e=this.rules.inline.url.exec(t)){let n,s;if(e[2]==="@")n=e[0],s="mailto:"+n;else{let r;do r=e[0],e[0]=this.rules.inline._backpedal.exec(e[0])?.[0]??"";while(r!==e[0]);n=e[0],e[1]==="www."?s="http://"+e[0]:s=e[0]}return{type:"link",raw:e[0],text:n,href:s,tokens:[{type:"text",raw:n,text:n}]}}}inlineText(t){let e=this.rules.inline.text.exec(t);if(e){let n=this.lexer.state.inRawBlock;return{type:"text",raw:e[0],text:e[0],escaped:n}}}},X=class It{tokens;options;state;inlineQueue;tokenizer;constructor(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||ge,this.options.tokenizer=this.options.tokenizer||new rt,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let n={other:B,block:et.normal,inline:ze.normal};this.options.pedantic?(n.block=et.pedantic,n.inline=ze.pedantic):this.options.gfm&&(n.block=et.gfm,this.options.breaks?n.inline=ze.breaks:n.inline=ze.gfm),this.tokenizer.rules=n}static get rules(){return{block:et,inline:ze}}static lex(e,n){return new It(n).lex(e)}static lexInline(e,n){return new It(n).inlineTokens(e)}lex(e){e=e.replace(B.carriageReturn,`
34
+ `),this.blockTokens(e,this.tokens);for(let n=0;n<this.inlineQueue.length;n++){let s=this.inlineQueue[n];this.inlineTokens(s.src,s.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(e,n=[],s=!1){this.tokenizer.lexer=this,this.options.pedantic&&(e=e.replace(B.tabCharGlobal," ").replace(B.spaceLine,""));let r=1/0;for(;e;){if(e.length<r)r=e.length;else{this.infiniteLoopError(e.charCodeAt(0));break}let a;if(this.options.extensions?.block?.some(c=>(a=c.call({lexer:this},e,n))?(e=e.substring(a.raw.length),n.push(a),!0):!1))continue;if(a=this.tokenizer.space(e)){e=e.substring(a.raw.length);let c=n.at(-1);a.raw.length===1&&c!==void 0?c.raw+=`
35
+ `:n.push(a);continue}if(a=this.tokenizer.code(e)){e=e.substring(a.raw.length);let c=n.at(-1);c?.type==="paragraph"||c?.type==="text"?(c.raw+=(c.raw.endsWith(`
36
+ `)?"":`
37
+ `)+a.raw,c.text+=`
38
+ `+a.text,this.inlineQueue.at(-1).src=c.text):n.push(a);continue}if(a=this.tokenizer.fences(e)){e=e.substring(a.raw.length),n.push(a);continue}if(a=this.tokenizer.heading(e)){e=e.substring(a.raw.length),n.push(a);continue}if(a=this.tokenizer.hr(e)){e=e.substring(a.raw.length),n.push(a);continue}if(a=this.tokenizer.blockquote(e)){e=e.substring(a.raw.length),n.push(a);continue}if(a=this.tokenizer.list(e)){e=e.substring(a.raw.length),n.push(a);continue}if(a=this.tokenizer.html(e)){e=e.substring(a.raw.length),n.push(a);continue}if(a=this.tokenizer.def(e)){e=e.substring(a.raw.length);let c=n.at(-1);c?.type==="paragraph"||c?.type==="text"?(c.raw+=(c.raw.endsWith(`
39
+ `)?"":`
40
+ `)+a.raw,c.text+=`
41
+ `+a.raw,this.inlineQueue.at(-1).src=c.text):this.tokens.links[a.tag]||(this.tokens.links[a.tag]={href:a.href,title:a.title},n.push(a));continue}if(a=this.tokenizer.table(e)){e=e.substring(a.raw.length),n.push(a);continue}if(a=this.tokenizer.lheading(e)){e=e.substring(a.raw.length),n.push(a);continue}let l=e;if(this.options.extensions?.startBlock){let c=1/0,p=e.slice(1),o;this.options.extensions.startBlock.forEach(m=>{o=m.call({lexer:this},p),typeof o=="number"&&o>=0&&(c=Math.min(c,o))}),c<1/0&&c>=0&&(l=e.substring(0,c+1))}if(this.state.top&&(a=this.tokenizer.paragraph(l))){let c=n.at(-1);s&&c?.type==="paragraph"?(c.raw+=(c.raw.endsWith(`
42
+ `)?"":`
43
+ `)+a.raw,c.text+=`
44
+ `+a.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=c.text):n.push(a),s=l.length!==e.length,e=e.substring(a.raw.length);continue}if(a=this.tokenizer.text(e)){e=e.substring(a.raw.length);let c=n.at(-1);c?.type==="text"?(c.raw+=(c.raw.endsWith(`
45
+ `)?"":`
46
+ `)+a.raw,c.text+=`
47
+ `+a.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=c.text):n.push(a);continue}if(e){this.infiniteLoopError(e.charCodeAt(0));break}}return this.state.top=!0,n}inline(e,n=[]){return this.inlineQueue.push({src:e,tokens:n}),n}inlineTokens(e,n=[]){this.tokenizer.lexer=this;let s=e,r=null;if(this.tokens.links){let o=Object.keys(this.tokens.links);if(o.length>0)for(;(r=this.tokenizer.rules.inline.reflinkSearch.exec(s))!==null;)o.includes(r[0].slice(r[0].lastIndexOf("[")+1,-1))&&(s=s.slice(0,r.index)+"["+"a".repeat(r[0].length-2)+"]"+s.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(r=this.tokenizer.rules.inline.anyPunctuation.exec(s))!==null;)s=s.slice(0,r.index)+"++"+s.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);let a;for(;(r=this.tokenizer.rules.inline.blockSkip.exec(s))!==null;)a=r[2]?r[2].length:0,s=s.slice(0,r.index+a)+"["+"a".repeat(r[0].length-a-2)+"]"+s.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);s=this.options.hooks?.emStrongMask?.call({lexer:this},s)??s;let l=!1,c="",p=1/0;for(;e;){if(e.length<p)p=e.length;else{this.infiniteLoopError(e.charCodeAt(0));break}l||(c=""),l=!1;let o;if(this.options.extensions?.inline?.some(f=>(o=f.call({lexer:this},e,n))?(e=e.substring(o.raw.length),n.push(o),!0):!1))continue;if(o=this.tokenizer.escape(e)){e=e.substring(o.raw.length),n.push(o);continue}if(o=this.tokenizer.tag(e)){e=e.substring(o.raw.length),n.push(o);continue}if(o=this.tokenizer.link(e)){e=e.substring(o.raw.length),n.push(o);continue}if(o=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(o.raw.length);let f=n.at(-1);o.type==="text"&&f?.type==="text"?(f.raw+=o.raw,f.text+=o.text):n.push(o);continue}if(o=this.tokenizer.emStrong(e,s,c)){e=e.substring(o.raw.length),n.push(o);continue}if(o=this.tokenizer.codespan(e)){e=e.substring(o.raw.length),n.push(o);continue}if(o=this.tokenizer.br(e)){e=e.substring(o.raw.length),n.push(o);continue}if(o=this.tokenizer.del(e,s,c)){e=e.substring(o.raw.length),n.push(o);continue}if(o=this.tokenizer.autolink(e)){e=e.substring(o.raw.length),n.push(o);continue}if(!this.state.inLink&&(o=this.tokenizer.url(e))){e=e.substring(o.raw.length),n.push(o);continue}let m=e;if(this.options.extensions?.startInline){let f=1/0,x=e.slice(1),_;this.options.extensions.startInline.forEach(y=>{_=y.call({lexer:this},x),typeof _=="number"&&_>=0&&(f=Math.min(f,_))}),f<1/0&&f>=0&&(m=e.substring(0,f+1))}if(o=this.tokenizer.inlineText(m)){e=e.substring(o.raw.length),o.raw.slice(-1)!=="_"&&(c=o.raw.slice(-1)),l=!0;let f=n.at(-1);f?.type==="text"?(f.raw+=o.raw,f.text+=o.text):n.push(o);continue}if(e){this.infiniteLoopError(e.charCodeAt(0));break}}return n}infiniteLoopError(e){let n="Infinite loop on byte: "+e;if(this.options.silent)console.error(n);else throw new Error(n)}},st=class{options;parser;constructor(t){this.options=t||ge}space(t){return""}code({text:t,lang:e,escaped:n}){let s=(e||"").match(B.notSpaceStart)?.[0],r=t.replace(B.endingNewline,"")+`
48
+ `;return s?'<pre><code class="language-'+ee(s)+'">'+(n?r:ee(r,!0))+`</code></pre>
49
+ `:"<pre><code>"+(n?r:ee(r,!0))+`</code></pre>
50
+ `}blockquote({tokens:t}){return`<blockquote>
51
+ ${this.parser.parse(t)}</blockquote>
52
+ `}html({text:t}){return t}def(t){return""}heading({tokens:t,depth:e}){return`<h${e}>${this.parser.parseInline(t)}</h${e}>
53
+ `}hr(t){return`<hr>
54
+ `}list(t){let e=t.ordered,n=t.start,s="";for(let l=0;l<t.items.length;l++){let c=t.items[l];s+=this.listitem(c)}let r=e?"ol":"ul",a=e&&n!==1?' start="'+n+'"':"";return"<"+r+a+`>
55
+ `+s+"</"+r+`>
56
+ `}listitem(t){return`<li>${this.parser.parse(t.tokens)}</li>
57
+ `}checkbox({checked:t}){return"<input "+(t?'checked="" ':"")+'disabled="" type="checkbox"> '}paragraph({tokens:t}){return`<p>${this.parser.parseInline(t)}</p>
58
+ `}table(t){let e="",n="";for(let r=0;r<t.header.length;r++)n+=this.tablecell(t.header[r]);e+=this.tablerow({text:n});let s="";for(let r=0;r<t.rows.length;r++){let a=t.rows[r];n="";for(let l=0;l<a.length;l++)n+=this.tablecell(a[l]);s+=this.tablerow({text:n})}return s&&(s=`<tbody>${s}</tbody>`),`<table>
59
+ <thead>
60
+ `+e+`</thead>
61
+ `+s+`</table>
62
+ `}tablerow({text:t}){return`<tr>
63
+ ${t}</tr>
64
+ `}tablecell(t){let e=this.parser.parseInline(t.tokens),n=t.header?"th":"td";return(t.align?`<${n} align="${t.align}">`:`<${n}>`)+e+`</${n}>
65
+ `}strong({tokens:t}){return`<strong>${this.parser.parseInline(t)}</strong>`}em({tokens:t}){return`<em>${this.parser.parseInline(t)}</em>`}codespan({text:t}){return`<code>${ee(t,!0)}</code>`}br(t){return"<br>"}del({tokens:t}){return`<del>${this.parser.parseInline(t)}</del>`}link({href:t,title:e,tokens:n}){let s=this.parser.parseInline(n),r=In(t);if(r===null)return s;t=r;let a='<a href="'+t+'"';return e&&(a+=' title="'+ee(e)+'"'),a+=">"+s+"</a>",a}image({href:t,title:e,text:n,tokens:s}){s&&(n=this.parser.parseInline(s,this.parser.textRenderer));let r=In(t);if(r===null)return ee(n);t=r;let a=`<img src="${t}" alt="${ee(n)}"`;return e&&(a+=` title="${ee(e)}"`),a+=">",a}text(t){return"tokens"in t&&t.tokens?this.parser.parseInline(t.tokens):"escaped"in t&&t.escaped?t.text:ee(t.text)}},Bt=class{strong({text:t}){return t}em({text:t}){return t}codespan({text:t}){return t}del({text:t}){return t}html({text:t}){return t}text({text:t}){return t}link({text:t}){return""+t}image({text:t}){return""+t}br(){return""}checkbox({raw:t}){return t}},V=class Ot{options;renderer;textRenderer;constructor(e){this.options=e||ge,this.options.renderer=this.options.renderer||new st,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new Bt}static parse(e,n){return new Ot(n).parse(e)}static parseInline(e,n){return new Ot(n).parseInline(e)}parse(e){this.renderer.parser=this;let n="";for(let s=0;s<e.length;s++){let r=e[s];if(this.options.extensions?.renderers?.[r.type]){let l=r,c=this.options.extensions.renderers[l.type].call({parser:this},l);if(c!==!1||!["space","hr","heading","code","table","blockquote","list","html","def","paragraph","text"].includes(l.type)){n+=c||"";continue}}let a=r;switch(a.type){case"space":{n+=this.renderer.space(a);break}case"hr":{n+=this.renderer.hr(a);break}case"heading":{n+=this.renderer.heading(a);break}case"code":{n+=this.renderer.code(a);break}case"table":{n+=this.renderer.table(a);break}case"blockquote":{n+=this.renderer.blockquote(a);break}case"list":{n+=this.renderer.list(a);break}case"checkbox":{n+=this.renderer.checkbox(a);break}case"html":{n+=this.renderer.html(a);break}case"def":{n+=this.renderer.def(a);break}case"paragraph":{n+=this.renderer.paragraph(a);break}case"text":{n+=this.renderer.text(a);break}default:{let l='Token with "'+a.type+'" type was not found.';if(this.options.silent)return console.error(l),"";throw new Error(l)}}}return n}parseInline(e,n=this.renderer){this.renderer.parser=this;let s="";for(let r=0;r<e.length;r++){let a=e[r];if(this.options.extensions?.renderers?.[a.type]){let c=this.options.extensions.renderers[a.type].call({parser:this},a);if(c!==!1||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(a.type)){s+=c||"";continue}}let l=a;switch(l.type){case"escape":{s+=n.text(l);break}case"html":{s+=n.html(l);break}case"link":{s+=n.link(l);break}case"image":{s+=n.image(l);break}case"checkbox":{s+=n.checkbox(l);break}case"strong":{s+=n.strong(l);break}case"em":{s+=n.em(l);break}case"codespan":{s+=n.codespan(l);break}case"br":{s+=n.br(l);break}case"del":{s+=n.del(l);break}case"text":{s+=n.text(l);break}default:{let c='Token with "'+l.type+'" type was not found.';if(this.options.silent)return console.error(c),"";throw new Error(c)}}}return s}},je=class{options;block;constructor(t){this.options=t||ge}static passThroughHooks=new Set(["preprocess","postprocess","processAllTokens","emStrongMask"]);static passThroughHooksRespectAsync=new Set(["preprocess","postprocess","processAllTokens"]);preprocess(t){return t}postprocess(t){return t}processAllTokens(t){return t}emStrongMask(t){return t}provideLexer(t=this.block){return t?X.lex:X.lexInline}provideParser(t=this.block){return t?V.parse:V.parseInline}},Ks=class{defaults=Lt();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=V;Renderer=st;TextRenderer=Bt;Lexer=X;Tokenizer=rt;Hooks=je;constructor(...t){this.use(...t)}walkTokens(t,e){let n=[];for(let s of t)switch(n=n.concat(e.call(this,s)),s.type){case"table":{let r=s;for(let a of r.header)n=n.concat(this.walkTokens(a.tokens,e));for(let a of r.rows)for(let l of a)n=n.concat(this.walkTokens(l.tokens,e));break}case"list":{let r=s;n=n.concat(this.walkTokens(r.items,e));break}default:{let r=s;this.defaults.extensions?.childTokens?.[r.type]?this.defaults.extensions.childTokens[r.type].forEach(a=>{let l=r[a].flat(1/0);n=n.concat(this.walkTokens(l,e))}):r.tokens&&(n=n.concat(this.walkTokens(r.tokens,e)))}}return n}use(...t){let e=this.defaults.extensions||{renderers:{},childTokens:{}};return t.forEach(n=>{let s={...n};if(s.async=this.defaults.async||s.async||!1,n.extensions&&(n.extensions.forEach(r=>{if(!r.name)throw new Error("extension name required");if("renderer"in r){let a=e.renderers[r.name];a?e.renderers[r.name]=function(...l){let c=r.renderer.apply(this,l);return c===!1&&(c=a.apply(this,l)),c}:e.renderers[r.name]=r.renderer}if("tokenizer"in r){if(!r.level||r.level!=="block"&&r.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let a=e[r.level];a?a.unshift(r.tokenizer):e[r.level]=[r.tokenizer],r.start&&(r.level==="block"?e.startBlock?e.startBlock.push(r.start):e.startBlock=[r.start]:r.level==="inline"&&(e.startInline?e.startInline.push(r.start):e.startInline=[r.start]))}"childTokens"in r&&r.childTokens&&(e.childTokens[r.name]=r.childTokens)}),s.extensions=e),n.renderer){let r=this.defaults.renderer||new st(this.defaults);for(let a in n.renderer){if(!(a in r))throw new Error(`renderer '${a}' does not exist`);if(["options","parser"].includes(a))continue;let l=a,c=n.renderer[l],p=r[l];r[l]=(...o)=>{let m=c.apply(r,o);return m===!1&&(m=p.apply(r,o)),m||""}}s.renderer=r}if(n.tokenizer){let r=this.defaults.tokenizer||new rt(this.defaults);for(let a in n.tokenizer){if(!(a in r))throw new Error(`tokenizer '${a}' does not exist`);if(["options","rules","lexer"].includes(a))continue;let l=a,c=n.tokenizer[l],p=r[l];r[l]=(...o)=>{let m=c.apply(r,o);return m===!1&&(m=p.apply(r,o)),m}}s.tokenizer=r}if(n.hooks){let r=this.defaults.hooks||new je;for(let a in n.hooks){if(!(a in r))throw new Error(`hook '${a}' does not exist`);if(["options","block"].includes(a))continue;let l=a,c=n.hooks[l],p=r[l];je.passThroughHooks.has(a)?r[l]=o=>{if(this.defaults.async&&je.passThroughHooksRespectAsync.has(a))return(async()=>{let f=await c.call(r,o);return p.call(r,f)})();let m=c.call(r,o);return p.call(r,m)}:r[l]=(...o)=>{if(this.defaults.async)return(async()=>{let f=await c.apply(r,o);return f===!1&&(f=await p.apply(r,o)),f})();let m=c.apply(r,o);return m===!1&&(m=p.apply(r,o)),m}}s.hooks=r}if(n.walkTokens){let r=this.defaults.walkTokens,a=n.walkTokens;s.walkTokens=function(l){let c=[];return c.push(a.call(this,l)),r&&(c=c.concat(r.call(this,l))),c}}this.defaults={...this.defaults,...s}}),this}setOptions(t){return this.defaults={...this.defaults,...t},this}lexer(t,e){return X.lex(t,e??this.defaults)}parser(t,e){return V.parse(t,e??this.defaults)}parseMarkdown(t){return(e,n)=>{let s={...n},r={...this.defaults,...s},a=this.onError(!!r.silent,!!r.async);if(this.defaults.async===!0&&s.async===!1)return a(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof e>"u"||e===null)return a(new Error("marked(): input parameter is undefined or null"));if(typeof e!="string")return a(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(e)+", string expected"));if(r.hooks&&(r.hooks.options=r,r.hooks.block=t),r.async)return(async()=>{let l=r.hooks?await r.hooks.preprocess(e):e,c=await(r.hooks?await r.hooks.provideLexer(t):t?X.lex:X.lexInline)(l,r),p=r.hooks?await r.hooks.processAllTokens(c):c;r.walkTokens&&await Promise.all(this.walkTokens(p,r.walkTokens));let o=await(r.hooks?await r.hooks.provideParser(t):t?V.parse:V.parseInline)(p,r);return r.hooks?await r.hooks.postprocess(o):o})().catch(a);try{r.hooks&&(e=r.hooks.preprocess(e));let l=(r.hooks?r.hooks.provideLexer(t):t?X.lex:X.lexInline)(e,r);r.hooks&&(l=r.hooks.processAllTokens(l)),r.walkTokens&&this.walkTokens(l,r.walkTokens);let c=(r.hooks?r.hooks.provideParser(t):t?V.parse:V.parseInline)(l,r);return r.hooks&&(c=r.hooks.postprocess(c)),c}catch(l){return a(l)}}}onError(t,e){return n=>{if(n.message+=`
66
+ Please report this to https://github.com/markedjs/marked.`,t){let s="<p>An error occurred:</p><pre>"+ee(n.message+"",!0)+"</pre>";return e?Promise.resolve(s):s}if(e)return Promise.reject(n);throw n}}},me=new Ks;function A(t,e){return me.parse(t,e)}A.options=A.setOptions=function(t){return me.setOptions(t),A.defaults=me.defaults,Gn(A.defaults),A};A.getDefaults=Lt;A.defaults=ge;A.use=function(...t){return me.use(...t),A.defaults=me.defaults,Gn(A.defaults),A};A.walkTokens=function(t,e){return me.walkTokens(t,e)};A.parseInline=me.parseInline;A.Parser=V;A.parser=V.parse;A.Renderer=st;A.TextRenderer=Bt;A.Lexer=X;A.lexer=X.lex;A.Tokenizer=rt;A.Hooks=je;A.parse=A;A.options;A.setOptions;A.use;A.walkTokens;A.parseInline;V.parse;X.lex;A.setOptions({breaks:!1,gfm:!0});const Js=t=>{const e=A.parse(t,{async:!1});if(typeof e!="string")throw new Error("marked.parse returned a non-string with async:false");return ps.sanitize(e,{USE_PROFILES:{html:!0},ALLOWED_ATTR:["href","name","target","rel","title","class","id"]})},Mn=({agent:t,sourceRepo:e,loadAgent:n,onImport:s})=>{const{t:r}=at(),[a,l]=R.useState({status:"loading",detail:null,error:null});R.useEffect(()=>{let o=!1;return l({status:"loading",detail:null,error:null}),n(t.path).then(m=>{o||l({status:"loaded",detail:m,error:null})}).catch(m=>{o||l({status:"error",detail:null,error:m instanceof Error?m.message:"unknown"})}),()=>{o=!0}},[t.path,n]);const c=`https://github.com/${e}/blob/HEAD/${t.path}`,p=R.useMemo(()=>a.status!=="loaded"||!a.detail?null:Js(a.detail.body),[a]);return h.jsxs("div",{"data-testid":"marketplace-agent-preview",className:"flex h-full flex-col gap-3 border-l px-4 py-3",style:{borderColor:"var(--border)"},children:[h.jsxs("header",{className:"flex min-w-0 flex-col gap-1",children:[h.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[t.emoji?h.jsx("span",{className:"shrink-0 text-lg leading-none",children:t.emoji}):null,h.jsx("h3",{className:"min-w-0 break-words text-base font-semibold text-pri",children:t.name})]}),h.jsx("p",{className:"text-xs text-ter",children:t.description})]}),h.jsxs("div",{className:"scroll-y min-h-0 flex-1 rounded px-3 py-2 text-xs leading-relaxed",style:{background:"var(--bg-2)"},children:[a.status==="loading"?h.jsx("p",{className:"text-ter",children:"…"}):null,a.status==="error"?h.jsxs("p",{className:"text-ter",children:[r("marketplace.loadFailed"),": ",a.error]}):null,a.status==="loaded"&&p?h.jsx("div",{className:"marketplace-prose",dangerouslySetInnerHTML:{__html:p}}):null]},t.path),h.jsxs("footer",{className:"flex items-center justify-between gap-2",children:[h.jsxs("a",{href:c,target:"_blank",rel:"noreferrer noopener",className:"inline-flex items-center gap-1 text-xs text-sec transition-colors hover:text-pri",children:[r("marketplace.viewSource"),h.jsx(Er,{size:11,"aria-hidden":!0})]}),h.jsx("button",{type:"button",disabled:a.status!=="loaded"||!a.detail,onClick:()=>{a.detail&&s({name:t.name,description:a.detail.body.trim()})},"data-testid":"marketplace-import-button",className:"icon-btn icon-btn--primary",children:r("marketplace.importButton")})]})]})},Pn="color-mix(in oklab, var(--accent) 8%, transparent)",ea="color-mix(in oklab, var(--accent) 16%, transparent)",ta="color-mix(in oklab, var(--accent) 55%, transparent)",na=t=>({background:t?ea:"transparent",boxShadow:t?`inset 2px 0 0 ${ta}`:"none"}),zn=({label:t,count:e,active:n,onClick:s})=>h.jsxs("button",{type:"button",onClick:s,"data-active":n?"true":"false",className:`marketplace-category-row flex w-full cursor-pointer items-center justify-between gap-2 rounded px-2 py-1 text-left text-sm transition-colors ${n?"font-medium text-pri":"text-sec"}`,style:na(n),children:[h.jsx("span",{className:"truncate",children:t}),e!==void 0?h.jsx("span",{className:"tabular-nums text-xs text-sec",children:e}):null]}),ra=({categories:t,selected:e,onSelect:n,counts:s,showAll:r,onToggleShowAll:a,hiddenCount:l})=>{const{t:c,language:p}=at(),o=s?Object.values(s).reduce((m,f)=>m+f,0):void 0;return h.jsxs("nav",{className:"flex flex-col gap-0.5","data-testid":"marketplace-category-tree",children:[h.jsx("style",{children:`
67
+ .marketplace-category-row[data-active='false']:hover {
68
+ background: ${Pn};
69
+ color: var(--text-primary);
70
+ }
71
+ .marketplace-toggle-row:hover {
72
+ background: ${Pn};
73
+ color: var(--text-primary);
74
+ }
75
+ `}),h.jsx(zn,{label:c("marketplace.allCategories"),count:o,active:e===null,onClick:()=>n(null)}),t.map(m=>h.jsx(zn,{label:Fn(m,p),count:s?.[m],active:e===m,onClick:()=>n(m)},m)),l>0||r?h.jsx("div",{className:"mt-2 pt-2",style:{borderTop:"1px solid var(--border-bright)"},children:h.jsx("button",{type:"button",onClick:a,"data-testid":"marketplace-toggle-show-all",className:"marketplace-toggle-row flex w-full cursor-pointer items-center justify-between gap-2 rounded px-2 py-1 text-left text-xs text-sec transition-colors",children:r?c("marketplace.showCoreOnly"):c("marketplace.showAllCategories",{count:l})})}):null]})},sa={status:"idle",data:null,error:null},aa=(t,e)=>{const[n,s]=R.useState(sa),r=R.useRef(new Map),a=R.useRef(new Map);R.useEffect(()=>{if(!e)return;const c=r.current.get(t);if(c){s({status:"loaded",data:c,error:null});return}s({status:"loading",data:null,error:null});let p=!1;return pr(t).then(o=>{p||(r.current.set(t,o),s({status:"loaded",data:o,error:null}))}).catch(o=>{p||s({status:"error",data:null,error:o instanceof Error?o.message:"unknown"})}),()=>{p=!0}},[e,t]);const l=R.useCallback(async c=>{const p=`${t}::${c}`,o=a.current.get(p);if(o)return o;const m=await hr(t,c);return a.current.set(p,m),m},[t]);return{manifestState:n,loadAgent:l}},$n="REPO",ia=(t,e)=>{const n=t("marketplace.sourceLabel",{repo:$n}),[s,r=""]=n.split($n);return h.jsxs(h.Fragment,{children:[s,h.jsx("span",{className:"mono",children:e}),r]})},tt=new Set(["engineering","design","product","testing","project-management","specialized","integrations"]),Rt=({active:t,label:e,onClick:n})=>h.jsx("button",{type:"button",onClick:n,"data-active":t?"true":"false",className:"min-h-9 shrink-0 whitespace-nowrap rounded-full border px-3 py-1.5 text-sm",style:{borderColor:t?"transparent":"var(--border)",background:t?"color-mix(in oklab, var(--accent) 16%, transparent)":"var(--bg-2)",color:t?"var(--text-primary)":"var(--text-secondary)"},children:e}),ca=({open:t,onClose:e,onImport:n,importedNames:s})=>{const{t:r,language:a}=at(),l=fr(),{manifestState:c,loadAgent:p}=aa(a,t),[o,m]=R.useState(null),[f,x]=R.useState(null),[_,y]=R.useState(""),P=R.useDeferredValue(_),[q,ke]=R.useState(!0);R.useEffect(()=>{x(null),m(null),y("")},[a]);const xe=g=>{g||e()},S=c.data,te=R.useMemo(()=>S?S.agents.map(g=>({agent:g,searchText:`${g.name}
76
+ ${g.description}`.toLowerCase()})):[],[S]),ne=R.useMemo(()=>{const g=new Map;if(!S)return g;for(const N of S.agents)g.set(N.path,N);return g},[S]),E=R.useMemo(()=>{if(!S)return{};const g={};for(const N of S.agents)g[N.category]=(g[N.category]??0)+1;return g},[S]),Q=R.useMemo(()=>{if(!S)return[];const g=q?S.categories:S.categories.filter(N=>tt.has(N));return vr(g,a)},[S,q,a]),ae=R.useMemo(()=>S?S.categories.length-Q.length:0,[S,Q]),be=R.useMemo(()=>{const g=P.trim().toLowerCase(),N=[];for(const{agent:ie,searchText:Te}of te){if(o){if(ie.category!==o)continue}else if(!q&&!tt.has(ie.category))continue;(!g||Te.includes(g))&&N.push(ie)}return N},[te,P,o,q]),Be=R.useCallback(g=>{const N=ne.get(g);N&&x(N)},[ne]),Ue=()=>{ke(g=>{const N=!g;return N||(o&&!tt.has(o)&&m(null),f&&!tt.has(f.category)&&x(null)),N})},He=g=>{n(g),x(null),e()},Ge=c.status==="loading"?h.jsx("div",{className:"flex h-full items-center justify-center text-sm text-ter",children:r("marketplace.loading")}):c.status==="error"?h.jsxs("div",{className:"flex h-full items-center justify-center text-sm text-ter",children:[r("marketplace.loadFailed"),": ",c.error]}):be.length===0?h.jsx("div",{className:"flex h-full items-center justify-center text-sm text-ter",children:r("marketplace.empty")}):h.jsx("div",{className:"grid gap-3",style:{gridTemplateColumns:"repeat(auto-fill, minmax(220px, 1fr))"},children:be.map(g=>h.jsx(Dr,{agent:g,selected:f?.path===g.path,imported:s?.has(g.name)??!1,onSelect:Be},g.path))});return h.jsx(dr,{open:t,onOpenChange:xe,children:h.jsxs(mr,{children:[h.jsx(gr,{"data-testid":"marketplace-overlay",className:"app-overlay fixed inset-0 z-40"}),h.jsx("div",{className:"pointer-events-none fixed inset-0 z-50 grid place-items-center p-4 max-md:items-end max-md:p-0",children:h.jsxs(kr,{"data-testid":"marketplace-content","data-mobile":l||void 0,className:`${l?"dialog-slide-up marketplace-sheet":"dialog-scale-pop"} elev-2 pointer-events-auto flex w-full flex-col rounded-lg border max-md:rounded-b-none max-md:rounded-t-xl`,style:{background:"var(--bg-elevated)",borderColor:"var(--border-bright)",width:l?"100vw":"min(1280px, calc(100vw - 32px))",height:l?"92dvh":"min(820px, calc(100vh - 48px))"},children:[h.jsxs("header",{className:"flex shrink-0 items-center justify-between gap-4 border-b px-5 py-4 max-md:px-4 max-md:py-3",style:{borderColor:"var(--border)"},children:[h.jsxs("div",{className:"flex min-w-0 flex-col gap-0.5",children:[h.jsx(xr,{className:"text-lg font-semibold text-pri",children:r("marketplace.title")}),h.jsx(br,{className:"truncate text-xs text-ter",children:S?ia(r,S.source.repo):" "})]}),h.jsxs("div",{className:"flex items-center gap-2",children:[l?null:h.jsxs("div",{className:"relative flex w-72 items-center",children:[h.jsx(dn,{size:14,"aria-hidden":!0,className:"pointer-events-none absolute left-3 text-ter"}),h.jsx("input",{type:"search",value:_,onChange:g=>y(g.target.value),placeholder:r("marketplace.searchPlaceholder"),"data-testid":"marketplace-search",className:"input",style:{paddingLeft:"36px"}})]}),h.jsx(Tr,{asChild:!0,children:h.jsx("button",{type:"button","aria-label":r("marketplace.close"),"data-testid":"marketplace-close",className:"flex h-7 w-7 items-center justify-center rounded text-sec hover:bg-3 hover:text-pri max-md:h-10 max-md:w-10 max-md:rounded-md",style:l?{background:"var(--bg-2)"}:void 0,children:h.jsx(yr,{size:l?18:14,"aria-hidden":!0})})})]})]}),l?h.jsx("div",{className:"shrink-0 border-b px-4 py-2",style:{borderColor:"var(--border)"},children:h.jsxs("div",{className:"relative flex items-center",children:[h.jsx(dn,{size:14,"aria-hidden":!0,className:"pointer-events-none absolute left-3 text-ter"}),h.jsx("input",{type:"search",value:_,onChange:g=>y(g.target.value),placeholder:r("marketplace.searchPlaceholder"),"data-testid":"marketplace-search",className:"input w-full",style:{paddingLeft:"36px"}})]})}):null,l?h.jsxs("div",{className:"relative flex min-h-0 flex-1 flex-col",children:[h.jsxs("div",{className:"flex shrink-0 items-center gap-1.5 overflow-x-auto border-b px-4 py-2",style:{borderColor:"var(--border)"},"data-testid":"marketplace-category-chips",children:[h.jsx(Rt,{active:o===null,label:r("marketplace.allCategories"),onClick:()=>{m(null),x(null)}}),Q.map(g=>h.jsx(Rt,{active:o===g,label:Fn(g,a),onClick:()=>{m(g),x(null),y("")}},g)),ae>0||q?h.jsx(Rt,{active:!1,label:q?r("marketplace.showCoreOnly"):r("marketplace.showAllCategories",{count:ae}),onClick:Ue}):null]}),h.jsx("section",{className:"scroll-y min-h-0 flex-1 px-4 py-3","data-testid":"marketplace-agent-grid",children:Ge},o??"__all__"),f&&S?h.jsxs("div",{className:"absolute inset-0 z-10 flex flex-col",style:{background:"var(--bg-elevated)"},"data-testid":"marketplace-preview-overlay",children:[h.jsxs("button",{type:"button",onClick:()=>x(null),"data-testid":"marketplace-preview-back",className:"flex min-h-11 shrink-0 items-center gap-1.5 border-b px-4 text-sm text-sec",style:{borderColor:"var(--border)"},children:[h.jsx(wr,{size:16,"aria-hidden":!0}),r("marketplace.backToList")]}),h.jsx("div",{className:"min-h-0 flex-1",children:h.jsx(Mn,{agent:f,sourceRepo:S.source.repo,loadAgent:p,onImport:He})})]}):null]}):h.jsxs("div",{className:"grid min-h-0 flex-1 divide-x transition-[grid-template-columns] duration-200 ease-out",style:{borderColor:"var(--border)",gridTemplateColumns:f?"200px minmax(0, 1fr) 380px":"200px minmax(0, 1fr)"},children:[h.jsx("aside",{className:"scroll-y min-h-0 px-4 py-3",children:S?h.jsx(ra,{categories:Q,selected:o,onSelect:g=>{m(g),x(null),y("")},counts:E,showAll:q,onToggleShowAll:Ue,hiddenCount:ae}):null}),h.jsx("section",{className:"scroll-y min-h-0 px-4 py-3","data-testid":"marketplace-agent-grid",children:Ge},o??"__all__"),f&&S?h.jsx("section",{className:"min-h-0",children:h.jsx(Mn,{agent:f,sourceRepo:S.source.repo,loadAgent:p,onImport:He})}):null]})]})})]})})};export{ca as MarketplaceDrawer};