@tt-a1i/hive 1.7.0 → 2.0.2

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 (251) hide show
  1. package/CHANGELOG.md +60 -0
  2. package/README.en.md +73 -11
  3. package/README.md +41 -8
  4. package/dist/src/cli/hive-remote.d.ts +46 -0
  5. package/dist/src/cli/hive-remote.js +257 -0
  6. package/dist/src/cli/hive-update.js +7 -2
  7. package/dist/src/cli/hive.d.ts +6 -0
  8. package/dist/src/cli/hive.js +64 -0
  9. package/dist/src/cli/team.d.ts +22 -0
  10. package/dist/src/cli/team.js +255 -5
  11. package/dist/src/server/agent-command-resolver.js +10 -3
  12. package/dist/src/server/agent-exit-classification.d.ts +6 -0
  13. package/dist/src/server/agent-exit-classification.js +6 -0
  14. package/dist/src/server/agent-manager-support.d.ts +2 -1
  15. package/dist/src/server/agent-manager-support.js +59 -15
  16. package/dist/src/server/agent-manager.d.ts +3 -0
  17. package/dist/src/server/agent-manager.js +22 -7
  18. package/dist/src/server/agent-run-bootstrap.d.ts +14 -0
  19. package/dist/src/server/agent-run-bootstrap.js +11 -4
  20. package/dist/src/server/agent-run-exit-handler.js +14 -8
  21. package/dist/src/server/agent-run-starter.d.ts +3 -1
  22. package/dist/src/server/agent-run-starter.js +22 -5
  23. package/dist/src/server/agent-run-sync.js +13 -5
  24. package/dist/src/server/agent-runtime-types.d.ts +1 -0
  25. package/dist/src/server/agent-runtime.d.ts +2 -1
  26. package/dist/src/server/agent-runtime.js +9 -2
  27. package/dist/src/server/agent-startup-instructions.d.ts +2 -1
  28. package/dist/src/server/agent-startup-instructions.js +8 -4
  29. package/dist/src/server/agent-stdin-dispatcher.d.ts +4 -2
  30. package/dist/src/server/agent-stdin-dispatcher.js +35 -3
  31. package/dist/src/server/command-preset-defaults.d.ts +6 -1
  32. package/dist/src/server/command-preset-defaults.js +56 -0
  33. package/dist/src/server/fs-browse.d.ts +2 -0
  34. package/dist/src/server/fs-browse.js +165 -31
  35. package/dist/src/server/fs-pick-folder.js +6 -69
  36. package/dist/src/server/fs-sandbox.d.ts +5 -3
  37. package/dist/src/server/fs-sandbox.js +5 -3
  38. package/dist/src/server/hive-team-guidance.js +18 -6
  39. package/dist/src/server/machine-name.d.ts +2 -0
  40. package/dist/src/server/machine-name.js +13 -0
  41. package/dist/src/server/open-target-commands.d.ts +1 -0
  42. package/dist/src/server/open-target-commands.js +4 -1
  43. package/dist/src/server/orchestrator-autostart.js +1 -1
  44. package/dist/src/server/platform-path.d.ts +1 -0
  45. package/dist/src/server/platform-path.js +14 -1
  46. package/dist/src/server/post-start-input-writer.js +50 -13
  47. package/dist/src/server/preset-launch-support.js +1 -0
  48. package/dist/src/server/recovery-summary.d.ts +2 -1
  49. package/dist/src/server/recovery-summary.js +2 -1
  50. package/dist/src/server/remote-audit-store.d.ts +51 -0
  51. package/dist/src/server/remote-audit-store.js +108 -0
  52. package/dist/src/server/remote-config-keys.d.ts +17 -0
  53. package/dist/src/server/remote-config-keys.js +27 -0
  54. package/dist/src/server/remote-control-constants.d.ts +30 -0
  55. package/dist/src/server/remote-control-constants.js +29 -0
  56. package/dist/src/server/remote-device-session.d.ts +40 -0
  57. package/dist/src/server/remote-device-session.js +22 -0
  58. package/dist/src/server/remote-device-store.d.ts +36 -0
  59. package/dist/src/server/remote-device-store.js +67 -0
  60. package/dist/src/server/remote-frame-bridge.d.ts +102 -0
  61. package/dist/src/server/remote-frame-bridge.js +791 -0
  62. package/dist/src/server/remote-gateway-client.d.ts +14 -0
  63. package/dist/src/server/remote-gateway-client.js +36 -0
  64. package/dist/src/server/remote-loopback-auth.d.ts +6 -0
  65. package/dist/src/server/remote-loopback-auth.js +112 -0
  66. package/dist/src/server/remote-pairing-tunnel.d.ts +59 -0
  67. package/dist/src/server/remote-pairing-tunnel.js +146 -0
  68. package/dist/src/server/remote-pairing.d.ts +58 -0
  69. package/dist/src/server/remote-pairing.js +237 -0
  70. package/dist/src/server/remote-tunnel.d.ts +113 -0
  71. package/dist/src/server/remote-tunnel.js +514 -0
  72. package/dist/src/server/restart-policy-support.d.ts +4 -1
  73. package/dist/src/server/restart-policy-support.js +3 -1
  74. package/dist/src/server/restart-policy.d.ts +1 -1
  75. package/dist/src/server/restart-policy.js +19 -3
  76. package/dist/src/server/route-types.d.ts +1 -1
  77. package/dist/src/server/routes-dispatches.js +1 -1
  78. package/dist/src/server/routes-fs.js +3 -3
  79. package/dist/src/server/routes-marketplace.js +2 -2
  80. package/dist/src/server/routes-open-workspace.js +1 -1
  81. package/dist/src/server/routes-remote.d.ts +2 -0
  82. package/dist/src/server/routes-remote.js +166 -0
  83. package/dist/src/server/routes-runtime.js +6 -6
  84. package/dist/src/server/routes-settings.js +16 -16
  85. package/dist/src/server/routes-tasks.js +2 -2
  86. package/dist/src/server/routes-team-memory.d.ts +2 -0
  87. package/dist/src/server/routes-team-memory.js +154 -0
  88. package/dist/src/server/routes-team-recall.d.ts +2 -0
  89. package/dist/src/server/routes-team-recall.js +119 -0
  90. package/dist/src/server/routes-team.js +31 -9
  91. package/dist/src/server/routes-ui.js +11 -1
  92. package/dist/src/server/routes-workflow-schedules.js +3 -3
  93. package/dist/src/server/routes-workflows.js +5 -5
  94. package/dist/src/server/routes-workspace-memory-dreams.d.ts +2 -0
  95. package/dist/src/server/routes-workspace-memory-dreams.js +105 -0
  96. package/dist/src/server/routes-workspace-memory.d.ts +2 -0
  97. package/dist/src/server/routes-workspace-memory.js +215 -0
  98. package/dist/src/server/routes-workspaces.js +9 -9
  99. package/dist/src/server/routes.js +10 -0
  100. package/dist/src/server/runtime-database.d.ts +1 -0
  101. package/dist/src/server/runtime-database.js +27 -2
  102. package/dist/src/server/runtime-restart-policy.d.ts +3 -1
  103. package/dist/src/server/runtime-restart-policy.js +2 -1
  104. package/dist/src/server/runtime-store-contract.d.ts +37 -0
  105. package/dist/src/server/runtime-store-dream.d.ts +23 -0
  106. package/dist/src/server/runtime-store-dream.js +16 -0
  107. package/dist/src/server/runtime-store-helpers.d.ts +20 -0
  108. package/dist/src/server/runtime-store-helpers.js +81 -7
  109. package/dist/src/server/runtime-store-memory.d.ts +33 -0
  110. package/dist/src/server/runtime-store-memory.js +37 -0
  111. package/dist/src/server/runtime-store-remote.d.ts +5 -0
  112. package/dist/src/server/runtime-store-remote.js +45 -0
  113. package/dist/src/server/runtime-store-workflows.js +2 -0
  114. package/dist/src/server/runtime-store.js +14 -3
  115. package/dist/src/server/session-capture-claude.d.ts +1 -1
  116. package/dist/src/server/session-capture-claude.js +7 -4
  117. package/dist/src/server/session-capture-codex.js +4 -5
  118. package/dist/src/server/session-capture-gemini.js +4 -5
  119. package/dist/src/server/session-capture-opencode.d.ts +4 -4
  120. package/dist/src/server/session-capture-opencode.js +20 -12
  121. package/dist/src/server/session-capture-qwen.d.ts +5 -0
  122. package/dist/src/server/session-capture-qwen.js +104 -0
  123. package/dist/src/server/session-capture.d.ts +17 -0
  124. package/dist/src/server/session-capture.js +16 -0
  125. package/dist/src/server/sqlite-schema-v23.d.ts +2 -0
  126. package/dist/src/server/sqlite-schema-v23.js +43 -0
  127. package/dist/src/server/sqlite-schema-v24.d.ts +2 -0
  128. package/dist/src/server/sqlite-schema-v24.js +34 -0
  129. package/dist/src/server/sqlite-schema-v25.d.ts +2 -0
  130. package/dist/src/server/sqlite-schema-v25.js +127 -0
  131. package/dist/src/server/sqlite-schema-v26.d.ts +2 -0
  132. package/dist/src/server/sqlite-schema-v26.js +56 -0
  133. package/dist/src/server/sqlite-schema-v27.d.ts +6 -0
  134. package/dist/src/server/sqlite-schema-v27.js +92 -0
  135. package/dist/src/server/sqlite-schema-v28.d.ts +2 -0
  136. package/dist/src/server/sqlite-schema-v28.js +19 -0
  137. package/dist/src/server/sqlite-schema-v29.d.ts +2 -0
  138. package/dist/src/server/sqlite-schema-v29.js +27 -0
  139. package/dist/src/server/sqlite-schema-v30.d.ts +2 -0
  140. package/dist/src/server/sqlite-schema-v30.js +27 -0
  141. package/dist/src/server/sqlite-schema-v31.d.ts +2 -0
  142. package/dist/src/server/sqlite-schema-v31.js +30 -0
  143. package/dist/src/server/sqlite-schema.d.ts +1 -1
  144. package/dist/src/server/sqlite-schema.js +49 -1
  145. package/dist/src/server/startup-command-parser.js +5 -1
  146. package/dist/src/server/tasks-file-watcher.d.ts +2 -0
  147. package/dist/src/server/tasks-file-watcher.js +15 -6
  148. package/dist/src/server/tasks-file.js +30 -5
  149. package/dist/src/server/tasks-websocket-server.js +4 -0
  150. package/dist/src/server/team-authz.d.ts +1 -1
  151. package/dist/src/server/team-authz.js +13 -1
  152. package/dist/src/server/team-list-enrichment.js +3 -1
  153. package/dist/src/server/team-memory-digest.d.ts +52 -0
  154. package/dist/src/server/team-memory-digest.js +200 -0
  155. package/dist/src/server/team-memory-dream-applier.d.ts +5 -0
  156. package/dist/src/server/team-memory-dream-applier.js +234 -0
  157. package/dist/src/server/team-memory-dream-http-serializers.d.ts +13 -0
  158. package/dist/src/server/team-memory-dream-http-serializers.js +12 -0
  159. package/dist/src/server/team-memory-dream-ops.d.ts +40 -0
  160. package/dist/src/server/team-memory-dream-ops.js +153 -0
  161. package/dist/src/server/team-memory-dream-reverter.d.ts +22 -0
  162. package/dist/src/server/team-memory-dream-reverter.js +221 -0
  163. package/dist/src/server/team-memory-dream-run-store.d.ts +23 -0
  164. package/dist/src/server/team-memory-dream-run-store.js +211 -0
  165. package/dist/src/server/team-memory-dream-runner.d.ts +37 -0
  166. package/dist/src/server/team-memory-dream-runner.js +178 -0
  167. package/dist/src/server/team-memory-dream-scheduler.d.ts +32 -0
  168. package/dist/src/server/team-memory-dream-scheduler.js +115 -0
  169. package/dist/src/server/team-memory-dream-store.d.ts +19 -0
  170. package/dist/src/server/team-memory-dream-store.js +16 -0
  171. package/dist/src/server/team-memory-dream-types.d.ts +104 -0
  172. package/dist/src/server/team-memory-dream-types.js +23 -0
  173. package/dist/src/server/team-memory-export.d.ts +22 -0
  174. package/dist/src/server/team-memory-export.js +220 -0
  175. package/dist/src/server/team-memory-feature.d.ts +12 -0
  176. package/dist/src/server/team-memory-feature.js +12 -0
  177. package/dist/src/server/team-memory-http-serializers.d.ts +102 -0
  178. package/dist/src/server/team-memory-http-serializers.js +46 -0
  179. package/dist/src/server/team-memory-injection.d.ts +31 -0
  180. package/dist/src/server/team-memory-injection.js +49 -0
  181. package/dist/src/server/team-memory-store.d.ts +116 -0
  182. package/dist/src/server/team-memory-store.js +513 -0
  183. package/dist/src/server/team-operations.d.ts +5 -1
  184. package/dist/src/server/team-operations.js +46 -16
  185. package/dist/src/server/team-recall-store.d.ts +38 -0
  186. package/dist/src/server/team-recall-store.js +205 -0
  187. package/dist/src/server/terminal-input-profile.d.ts +1 -1
  188. package/dist/src/server/terminal-input-profile.js +18 -0
  189. package/dist/src/server/terminal-ws-server.js +6 -0
  190. package/dist/src/server/ui-auth-helpers.d.ts +1 -1
  191. package/dist/src/server/ui-auth-helpers.js +7 -1
  192. package/dist/src/server/ui-auth.d.ts +3 -0
  193. package/dist/src/server/ui-auth.js +21 -1
  194. package/dist/src/server/workflow-cli-policy.d.ts +2 -3
  195. package/dist/src/server/workflow-cli-policy.js +3 -3
  196. package/dist/src/server/workflow-runner.d.ts +1 -0
  197. package/dist/src/server/workflow-runner.js +9 -4
  198. package/dist/src/server/workspace-path-validation.js +6 -2
  199. package/dist/src/server/workspace-store.d.ts +1 -1
  200. package/dist/src/server/workspace-store.js +35 -9
  201. package/dist/src/shared/fs-browse.d.ts +1 -0
  202. package/dist/src/shared/fs-browse.js +1 -0
  203. package/dist/src/shared/path-input.d.ts +12 -0
  204. package/dist/src/shared/path-input.js +22 -0
  205. package/dist/src/shared/remote-bridge-routing.d.ts +19 -0
  206. package/dist/src/shared/remote-bridge-routing.js +141 -0
  207. package/dist/src/shared/remote-crypto.d.ts +138 -0
  208. package/dist/src/shared/remote-crypto.js +427 -0
  209. package/dist/src/shared/remote-pairing-code.d.ts +7 -0
  210. package/dist/src/shared/remote-pairing-code.js +47 -0
  211. package/dist/src/shared/remote-protocol.d.ts +160 -0
  212. package/dist/src/shared/remote-protocol.js +526 -0
  213. package/dist/src/shared/team-memory.d.ts +11 -0
  214. package/dist/src/shared/team-memory.js +10 -0
  215. package/dist/src/shared/team-recall.d.ts +1 -0
  216. package/dist/src/shared/team-recall.js +1 -0
  217. package/dist/src/shared/types.d.ts +4 -5
  218. package/package.json +12 -5
  219. package/scripts/postinstall-native-artifacts.mjs +113 -0
  220. package/web/dist/assets/AddWorkerDialog-CbV75qUX.js +2 -0
  221. package/web/dist/assets/AddWorkspaceFlow-CwV-7wPx.js +1 -0
  222. package/web/dist/assets/FirstRunWizard-a6PWIK3x.js +1 -0
  223. package/web/dist/assets/MarketplaceDrawer-Dd8WIA8T.js +67 -0
  224. package/web/dist/assets/TaskGraphDrawer-Bk5WFIk_.js +1 -0
  225. package/web/dist/assets/{WhatsNewDialog-CHkZeINH.js → WhatsNewDialog-C2VZaip0.js} +1 -1
  226. package/web/dist/assets/WorkerModal-DucW-9YT.js +1 -0
  227. package/web/dist/assets/WorkflowsDrawer-Bjf4olbR.js +1 -0
  228. package/web/dist/assets/WorkspaceMemoryDrawer-DglCy_5f.js +1 -0
  229. package/web/dist/assets/WorkspaceTaskDrawer-BIWwISvA.js +1 -0
  230. package/web/dist/assets/index-BAiLYajK.css +1 -0
  231. package/web/dist/assets/index-BV2k9Dts.js +73 -0
  232. package/web/dist/assets/search-Bk2HQvO7.js +1 -0
  233. package/web/dist/assets/square-terminal-D93m9hfY.js +1 -0
  234. package/web/dist/cli-icons/agy.png +0 -0
  235. package/web/dist/cli-icons/cursor.ico +0 -0
  236. package/web/dist/cli-icons/grok.ico +0 -0
  237. package/web/dist/cli-icons/qwen.png +0 -0
  238. package/web/dist/index.html +8 -3
  239. package/web/dist/sw.js +1 -1
  240. package/scripts/fix-runtime-artifacts.mjs +0 -33
  241. package/web/dist/assets/AddWorkerDialog-BRUxpa3f.js +0 -2
  242. package/web/dist/assets/AddWorkspaceDialog-D56x5JCb.js +0 -1
  243. package/web/dist/assets/FirstRunWizard-BFVaMIsE.js +0 -1
  244. package/web/dist/assets/MarketplaceDrawer-DeEZ35dN.js +0 -76
  245. package/web/dist/assets/WorkerModal-BBCuMLIa.js +0 -1
  246. package/web/dist/assets/WorkspaceTaskDrawer-CpZHAcj1.js +0 -1
  247. package/web/dist/assets/WorkspaceTerminalPanels-7If2mDyp.js +0 -1
  248. package/web/dist/assets/WorkspaceTerminalPanels-DDGTF8rc.css +0 -1
  249. package/web/dist/assets/index-5zh61jMg.css +0 -1
  250. package/web/dist/assets/index-CxNL0O-C.js +0 -73
  251. package/web/dist/assets/path-join-7MR1s7b1.js +0 -1
@@ -0,0 +1 @@
1
+ import{c}from"./index-BV2k9Dts.js";const e=[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]],o=c("search",e);export{o as S};
@@ -0,0 +1 @@
1
+ import{c as e}from"./index-BV2k9Dts.js";const r=[["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"}]],a=e("square-terminal",r);export{a as S};
Binary file
Binary file
Binary file
Binary file
@@ -2,7 +2,10 @@
2
2
  <html lang="en">
3
3
  <head>
4
4
  <meta charset="UTF-8" />
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
5
+ <meta
6
+ name="viewport"
7
+ content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover, interactive-widget=resizes-content"
8
+ />
6
9
  <meta name="color-scheme" content="dark" />
7
10
  <meta name="theme-color" content="#171717" />
8
11
  <meta name="apple-mobile-web-app-capable" content="yes" />
@@ -15,10 +18,12 @@
15
18
  <link rel="icon" type="image/png" sizes="192x192" href="/icons/icon-192.png" />
16
19
  <link rel="icon" type="image/png" href="/logo.png" />
17
20
  <link rel="apple-touch-icon" sizes="180x180" href="/icons/apple-touch-icon-180.png" />
21
+ <link rel="preload" as="image" href="/cli-icons/agy.png" />
18
22
  <link rel="preload" as="image" href="/cli-icons/claude.png" />
19
23
  <link rel="preload" as="image" href="/cli-icons/codex.png" />
20
24
  <link rel="preload" as="image" href="/cli-icons/gemini.png" />
21
25
  <link rel="preload" as="image" href="/cli-icons/opencode.svg" />
26
+ <link rel="preload" as="image" href="/cli-icons/qwen.png" />
22
27
  <link rel="preload" as="audio" href="/sounds/hive-soft.ogg" type="audio/ogg" />
23
28
  <title>Hive</title>
24
29
  <link rel="preconnect" href="https://fonts.googleapis.com" />
@@ -27,8 +32,8 @@
27
32
  href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=DM+Mono:wght@400;500&display=swap"
28
33
  rel="stylesheet"
29
34
  />
30
- <script type="module" crossorigin src="/assets/index-CxNL0O-C.js"></script>
31
- <link rel="stylesheet" crossorigin href="/assets/index-5zh61jMg.css">
35
+ <script type="module" crossorigin src="/assets/index-BV2k9Dts.js"></script>
36
+ <link rel="stylesheet" crossorigin href="/assets/index-BAiLYajK.css">
32
37
  </head>
33
38
  <body>
34
39
  <div id="root"></div>
package/web/dist/sw.js CHANGED
@@ -7,7 +7,7 @@
7
7
  // generation must be able to resolve its lazy-loaded hashed chunks, and
8
8
  // storage growth is bounded by Hive's release cadence.
9
9
 
10
- const VERSION = '1.7.0'
10
+ const VERSION = '2.0.2'
11
11
  const SHELL_CACHE = `hive-cache-v${VERSION}-shell`
12
12
  const ASSETS_CACHE = `hive-cache-v${VERSION}-assets`
13
13
  const STATIC_CACHE = `hive-cache-v${VERSION}-static`
@@ -1,33 +0,0 @@
1
- import { chmodSync, existsSync, readdirSync } from 'node:fs'
2
- import { createRequire } from 'node:module'
3
- import { dirname, join } from 'node:path'
4
-
5
- const executablePaths = [
6
- 'bin/team',
7
- 'bin/team.cmd',
8
- 'dist/bin/team',
9
- 'dist/bin/team.cmd',
10
- 'node_modules/.pnpm/node-pty@1.1.0/node_modules/node-pty/prebuilds/darwin-arm64/spawn-helper',
11
- ]
12
-
13
- const require = createRequire(import.meta.url)
14
-
15
- try {
16
- const nodePtyPackageJson = require.resolve('node-pty/package.json')
17
- const nodePtyRoot = dirname(nodePtyPackageJson)
18
- const prebuildsDir = join(nodePtyRoot, 'prebuilds')
19
-
20
- for (const entry of existsSync(prebuildsDir) ? readdirSync(prebuildsDir) : []) {
21
- executablePaths.push(join(prebuildsDir, entry, 'spawn-helper'))
22
- }
23
- } catch {
24
- // node-pty may not be installed when this script runs in partial dev setups.
25
- }
26
-
27
- for (const filePath of executablePaths) {
28
- if (!existsSync(filePath)) {
29
- continue
30
- }
31
-
32
- chmodSync(filePath, 0o755)
33
- }
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/MarketplaceDrawer-DeEZ35dN.js","assets/index-CxNL0O-C.js","assets/index-5zh61jMg.css"])))=>i.map(i=>d[i]);
2
- import{c as W,j as e,u as j,r as c,e as z,k as M,n as X,A as Y,B as Z,F as R,G as ee,H as te,a as ae,P as re,O as se,C as ne,b as le,D as oe,d as ie,_ as de}from"./index-CxNL0O-C.js";const ce=[["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"}]],ue=W("bookmark-plus",ce);const xe=[["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"}]],me=W("dices",xe);const pe=[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]],he=W("search",pe);const fe=[["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"}]],be=W("square-terminal",fe);const ge=[["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"}]],ke=W("store",ge),ve=[{value:"coder"},{value:"reviewer"},{value:"tester"},{value:"custom",dashed:!0}],F=t=>`role.${t}`,C=({children:t})=>e.jsx("span",{className:"text-sm font-medium text-sec",children:t}),je=({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(R,{role:a.value,size:20}),e.jsx("span",{className:"flex-1 text-left text-base font-medium text-pri",children:n(F(a.value))}),t?e.jsx(M,{size:14,className:"shrink-0 text-accent","aria-hidden":!0}):null]})},ye=({onRoleChange:t,workerRole:a})=>{const{t:l}=j();return e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx(C,{children:l("addWorker.role")}),e.jsx("div",{className:"grid grid-cols-2 gap-2",children:ve.map(n=>e.jsx(je,{active:a===n.value,spec:n,onSelect:()=>t(n.value)},n.value))})]})},Ne=({customTemplates:t,disabledReason:a,onDeleteTemplate:l,onSelect:n,selectedTemplateId:i})=>{const{t:o}=j(),[f,x]=c.useState(!1),[m,u]=c.useState(""),[b,k]=c.useState(null),y=c.useRef(null),g=c.useMemo(()=>t.find(r=>r.id===i)??null,[t,i]),v=c.useMemo(()=>{const r=m.trim().toLowerCase();return r?t.filter(s=>s.name.toLowerCase().includes(r)||s.description.toLowerCase().includes(r)):t},[t,m]);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(C,{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(he,{size:14,className:"text-ter","aria-hidden":!0}),e.jsx("input",{value:m,onChange:r=>u(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")}):v.length===0?e.jsx("div",{className:"px-3 py-3 text-center text-sm text-ter",children:o("addWorker.templateNoMatch")}):v.map(r=>{const s=r.id===i;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),u("")},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(M,{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&&k(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(X,{size:14,"aria-hidden":!0})})]},r.id)})}),i!==null?e.jsx("button",{type:"button","data-testid":"role-template-clear",onClick:()=>{n(null),x(!1),u("")},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(Y,{open:b!==null,onOpenChange:r=>{r||k(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;k(null),l(r)}})]})},Ce=({canSaveAsTemplate:t,modified:a,onChange:l,onReset:n,onSaveAsTemplate:i,roleDescription:o,templateBusy:f,workerRole:x,writeDisabledReason:m})=>{const{t:u}=j(),[b,k]=c.useState(!1),[y,g]=c.useState(!1),[v,r]=c.useState("");return c.useEffect(()=>{(x==="custom"||a)&&k(!0)},[a,x]),c.useEffect(()=>{t||(g(!1),r(""))},[t]),e.jsxs("details",{open:b,onToggle:s=>k(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(C,{children:u("addWorker.roleInstructions")}),a?e.jsxs("span",{className:"text-sm text-ter",children:["· ",u("addWorker.modifiedFrom",{role:u(F(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:!!m,title:m??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(ue,{size:12,"aria-hidden":!0}),u("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(Z,{size:12,"aria-hidden":!0}),u("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"?u("addWorker.customPlaceholder"):void 0,title:u("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:v,onChange:s=>r(s.currentTarget.value),placeholder:u("addWorker.templateNamePlaceholder"),"data-testid":"role-template-save-name",className:"input flex-1 text-sm"}),e.jsx("button",{type:"button",disabled:f||!v.trim()||!!m,title:m??void 0,"data-testid":"role-template-save-confirm",onClick:async()=>{if(m)return;const s=v.trim();if(s)try{await i(s),g(!1),r("")}catch{}},className:"icon-btn icon-btn--primary text-xs",children:u("addWorker.templateSaveConfirm")}),e.jsx("button",{type:"button","data-testid":"role-template-save-cancel",onClick:()=>{g(!1),r("")},className:"icon-btn text-xs",children:u("common.cancel")})]}):null]})},D=({active:t,command:a,displayName:l,logoPresetId:n,notFound:i=!1,testId:o,onSelect:f})=>{const{t:x}=j(),m=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(be,{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(ee,{commandPresetId:n,fallback:m,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,i?` · ${x("addWorker.agentNotFound")}`:""]})]})]}),t?e.jsx(M,{size:14,className:"shrink-0 text-accent","aria-hidden":!0}):null]})},We=({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}),we=({commandPresetId:t,commandPresets:a,onPresetChange:l})=>e.jsx(Se,{commandPresetId:t,commandPresets:a,onPresetChange:l}),Se=({commandPresetId:t,commandPresets:a,onPresetChange:l})=>{const{t:n}=j();return e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx(C,{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",children:[a.map(i=>e.jsx(We,{active:t===i.id,preset:i,onSelect:()=>l(i.id)},i.id)),e.jsx(D,{active:t==="",command:n("addWorker.genericCommand"),displayName:n("addWorker.genericAgent"),testId:"agent-radio-generic",onSelect:()=>l("")})]})]})},ze=({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(C,{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:i=>t(i.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>"})})]})]})},Me=c.lazy(()=>de(()=>import("./MarketplaceDrawer-DeEZ35dN.js"),__vite__mapDeps([0,1,2])).then(t=>({default:t.MarketplaceDrawer}))),_e=({commandPresets:t,commandPresetId:a,creating:l=!1,customTemplates:n,onApplyMarketplaceImport:i,onClose:o,onDeleteTemplate:f,onNameChange:x,onPresetChange:m,onRandomName:u,onRoleDescriptionChange:b,onRoleDescriptionReset:k,onRoleChange:y,onSaveAsTemplate:g,onStartupCommandChange:v,onSubmit:r,onTemplateChange:s,roleDescription:h,roleDescriptionDefault:w,selectedTemplateId:_,startupCommand:P,templateBusy:I,workerName:A,workerRole:S,writeDisabledReason:N})=>{const{t:d}=j(),L=te(),[B,O]=c.useState(!1),[q,H]=c.useState(!1),K=c.useMemo(()=>new Set(n.map(p=>p.name)),[n]),V=p=>{i(p),L.show({kind:"success",message:d("marketplace.imported",{name:p.name})})},G=p=>{p||o()},Q=h!==w,E=t.find(p=>p.id===a),$=P.trim(),J=()=>N||(A.trim()?!a&&!$?d("addWorker.pickCliOrStartup"):E?.available===!1&&!$?d("addWorker.unavailable",{name:E.displayName}):h.trim()?null:d("addWorker.emptyInstructions"):d("addWorker.enterName")),U=p=>{const T=J();if(T){p.preventDefault(),L.show({kind:"warning",message:T});return}r(p)};return e.jsxs(ae,{open:!0,onOpenChange:G,children:[e.jsxs(re,{children:[e.jsx(se,{"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",children:e.jsx(ne,{"data-testid":"add-worker-content",className:"dialog-scale-pop elev-2 pointer-events-auto flex max-h-[calc(100vh-32px)] w-[560px] max-w-full flex-col rounded-lg border",style:{background:"var(--bg-elevated)",borderColor:"var(--border-bright)"},children:e.jsxs("form",{onSubmit:U,"aria-label":d("addWorker.title"),className:"flex flex-col",children:[e.jsxs("div",{className:"flex shrink-0 flex-col gap-0.5 border-b px-5 py-4",style:{borderColor:"var(--border)"},children:[e.jsx(le,{className:"text-lg font-semibold text-pri",children:d("addWorker.title")}),e.jsx(oe,{className:"text-sm text-ter",children:d("addWorker.description",{command:"team send"})})]}),e.jsxs("div",{className:"flex flex-col gap-4 overflow-y-auto px-5 py-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(C,{children:d("addWorker.name")}),e.jsx(ie,{label:d("addWorker.randomTooltip"),children:e.jsxs("button",{type:"button","aria-label":d("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:u,"data-testid":"random-worker-name",children:[e.jsx(me,{size:12,"aria-hidden":!0}),d("addWorker.random")]})})]}),e.jsx("input",{autoFocus:!0,value:A,onChange:p=>x(p.target.value),placeholder:d("addWorker.namePlaceholder"),className:"input"})]}),e.jsx(ye,{workerRole:S,onRoleChange:y}),e.jsxs("button",{type:"button",onClick:()=>{H(!0),O(!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(ke,{size:14,"aria-hidden":!0}),d("marketplace.openFromAddWorker")]}),S==="custom"?e.jsx(Ne,{customTemplates:n,disabledReason:N,onDeleteTemplate:f,onSelect:s,selectedTemplateId:_}):null,e.jsx(Ce,{canSaveAsTemplate:S==="custom"&&!_&&h.trim().length>0,modified:Q,onChange:b,onReset:k,onSaveAsTemplate:g,roleDescription:h,templateBusy:I,workerRole:S,writeDisabledReason:N}),e.jsx(we,{commandPresetId:a,commandPresets:t,onPresetChange:m}),e.jsx(ze,{value:P,onChange:v})]}),e.jsxs("div",{className:"flex shrink-0 items-center justify-end gap-2 border-t px-5 py-3",style:{borderColor:"var(--border)",background:"var(--bg-2)"},children:[e.jsx("button",{type:"button",onClick:o,className:"icon-btn","data-testid":"add-worker-cancel",children:d("addWorker.cancel")}),e.jsx("button",{type:"submit",disabled:l||!!N,title:N??void 0,className:"icon-btn icon-btn--primary","data-testid":"add-worker-submit",children:d(l?"addWorker.creating":"addWorker.create")})]})]})})})]}),q?e.jsx(c.Suspense,{fallback:null,children:e.jsx(Me,{open:B,onClose:()=>O(!1),onImport:V,importedNames:K})}):null]})},Ae=Object.freeze(Object.defineProperty({__proto__:null,AddWorkerDialog:_e},Symbol.toStringTag,{value:"Module"}));export{Ae as A,he as S};
@@ -1 +0,0 @@
1
- import{c as V,u as D,r as l,j as e,q as ce,e as B,k as Z,a as T,P as I,O as q,C as U,b as W,D as K,f as A,s as le,t as oe,v as ie,X as de,w as pe,x as xe,T as ue}from"./index-CxNL0O-C.js";import{d as Q}from"./path-join-7MR1s7b1.js";const me=[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]],he=V("arrow-up",me);const fe=[["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"}]],be=V("folder-search",fe);const ge=[["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"}]],X=V("folder",ge);const ke=[["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"}]],ee=V("git-branch",ke),te=t=>{const r=t.trim();if(r.length<2)return r;const i=r[0],s=r[r.length-1];return(i==='"'||i==="'")&&i===s?r.slice(1,-1):r},se=({error:t,onChange:r,presets:i,value:s})=>{const{t:p}=D(),[x,c]=l.useState(!1),a=l.useRef(null),d=i.find(o=>o.id===s),n=s==="",k=d?[d.command,...d.args].join(" ").trim():p(n?"workspace.preset.genericPreview":"workspace.preset.loading"),g=d?.displayName??(n?p("workspace.preset.generic"):"Claude Code (CC)"),j=i.length===0&&!n;return l.useEffect(()=>{if(!x)return;const o=f=>{a.current?.contains(f.target)||c(!1)},m=f=>{f.key==="Escape"&&c(!1)};return document.addEventListener("mousedown",o),document.addEventListener("keydown",m),()=>{document.removeEventListener("mousedown",o),document.removeEventListener("keydown",m)}},[x]),e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx("span",{className:"text-xs font-medium uppercase tracking-wider text-ter",children:p("workspace.preset.label")}),e.jsxs("div",{ref:a,className:"cli-select group relative",children:[e.jsx(ce,{size:14,"aria-hidden":!0,className:"cli-select__leading"}),e.jsx("button",{type:"button","aria-haspopup":"listbox","aria-expanded":x,"aria-disabled":j||void 0,className:"cli-select__field cli-select__field--button text-left","data-testid":"workspace-command-preset","data-value":s,disabled:j,onClick:()=>c(o=>!o),children:g}),e.jsx(B,{size:14,"aria-hidden":!0,className:"cli-select__trailing"}),x&&i.length>0?e.jsxs("div",{role:"listbox","aria-label":p("workspace.preset.optionsAria"),className:"cli-select__menu","data-testid":"workspace-command-preset-menu",children:[i.map(o=>{const m=o.id===s,f=o.available===!1;return e.jsxs("button",{type:"button",role:"option","aria-selected":m,"data-testid":`workspace-command-preset-option-${o.id}`,className:"cli-select__option",onClick:()=>{r(o.id),c(!1)},children:[e.jsx(Z,{size:12,"aria-hidden":!0,className:"cli-select__check",style:{opacity:m?1:0}}),e.jsxs("span",{children:[o.displayName,f?p("workspace.preset.notFoundSuffix"):""]})]},o.id)}),e.jsxs("button",{type:"button",role:"option","aria-selected":n,"data-testid":"workspace-command-preset-option-generic",className:"cli-select__option",onClick:()=>{r(""),c(!1)},children:[e.jsx(Z,{size:12,"aria-hidden":!0,className:"cli-select__check",style:{opacity:n?1:0}}),e.jsx("span",{children:p("workspace.preset.generic")})]})]}):null]}),e.jsxs("div",{className:"mono flex items-center gap-1.5 truncate text-xs text-ter",title:k,children:[e.jsx("span",{className:"text-sec",children:"$"}),e.jsx("span",{className:"truncate",children:k})]}),t?e.jsx("span",{className:"text-xs",style:{color:"var(--status-red)"},children:t}):null]})},G=t=>t.split(/[\\/]/).filter(Boolean).pop()??"",M=({children:t})=>e.jsx("span",{className:"text-xs font-medium uppercase tracking-wider text-ter",children:t}),ve=({probe:t,pasteFallbackDefault:r=!1,commandPresetError:i,commandPresetId:s,commandPresets:p,onCancel:x,onCommandPresetChange:c,onCreate:a,onOpenServerBrowse:d})=>{const{t:n}=D(),k=t?.path??"",g=t?.suggested_name??G(k),[j,o]=l.useState(g),[m,f]=l.useState(""),[N,S]=l.useState(r),[C,P]=l.useState(!1),[_,h]=l.useState("");l.useEffect(()=>{o(t?.suggested_name??G(t?.path??""))},[t?.path,t?.suggested_name]);const w=te(m),u=N&&w.length>0?w:t?.path??"",y=_.trim(),E=p.find(v=>v.id===s),F=p.length===0&&!i,L=!s&&y.length===0,z=E?.available===!1&&y.length===0,H=L?n("workspace.preset.genericRequiresStartup"):z?n("workspace.preset.notInstalled",{name:E.displayName}):null,$=j.trim().length>0&&u.length>0&&!F&&!L&&!z,O=()=>{$&&a({commandPresetId:s||null,name:j.trim(),path:u,...y?{startupCommand:y}:{}})};return e.jsx(T,{open:!0,onOpenChange:v=>!v&&x(),children:e.jsxs(I,{children:[e.jsx(q,{"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(U,{"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(X,{size:18,"aria-hidden":!0})}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx(W,{className:"text-lg font-semibold text-pri",children:n("workspace.confirm.title")}),e.jsx(K,{className:"text-xs text-ter",children:n("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(M,{children:n("workspace.field.path")}),e.jsx("input",{readOnly:!0,value:t?.path??"",placeholder:n("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(ee,{size:12,"aria-hidden":!0}),t.current_branch??n("workspace.git.detached")]}),e.jsx("span",{className:"text-ter",children:n("workspace.git.detected")})]}):t?.ok?e.jsx("span",{className:"text-xs text-ter",children:n("workspace.git.none")}):null,e.jsxs("label",{className:"flex flex-col gap-2",children:[e.jsx(M,{children:n("workspace.field.name")}),e.jsx("input",{value:j,onChange:v=>o(v.target.value),placeholder:G(t?.path??"")||n("workspace.field.nameDefaultPlaceholder"),className:"input","data-testid":"confirm-workspace-name"})]}),e.jsx(se,{error:i??H,onChange:c,presets:p,value:s}),e.jsxs("button",{type:"button",onClick:()=>P(v=>!v),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:[C?e.jsx(B,{size:12,"aria-hidden":!0}):e.jsx(A,{size:12,"aria-hidden":!0}),n("workspace.advanced.startup")]}),C?e.jsxs("label",{className:"flex flex-col gap-2",children:[e.jsx(M,{children:n("workspace.field.startup")}),e.jsx("input",{type:"text",value:_,onChange:v=>h(v.target.value),placeholder:n("workspace.field.startupPlaceholder"),className:"input mono","data-testid":"confirm-workspace-startup-command"}),e.jsx("span",{className:"text-xs text-ter",children:n("workspace.startup.hint")})]}):null,e.jsxs("button",{type:"button",onClick:()=>S(v=>!v),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:[N?e.jsx(B,{size:12,"aria-hidden":!0}):e.jsx(A,{size:12,"aria-hidden":!0}),n("workspace.advanced.pastePath")]}),N?e.jsxs("label",{className:"flex flex-col gap-2",children:[e.jsx(M,{children:n("workspace.field.absolutePath")}),e.jsx("input",{type:"text",value:m,onChange:v=>f(v.target.value),placeholder:n("workspace.field.absolutePathPlaceholder"),className:"input mono","data-testid":"confirm-workspace-paste-path"})]}):null,e.jsxs("button",{type:"button",onClick:d,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(A,{size:12,"aria-hidden":!0}),n("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:x,className:"icon-btn",children:n("common.cancel")}),e.jsx("button",{type:"button",onClick:O,disabled:!$,"data-testid":"confirm-workspace-create",className:"icon-btn icon-btn--primary",children:n("workspace.confirm.create")})]})]})})]})})},je=({entries:t,error:r,loading:i,onNavigate:s,onSelect:p,selected:x})=>{const{t:c}=D();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:i?e.jsx("p",{className:"p-4 text-center text-xs text-ter",children:c("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:c("workspace.browse.empty")}):e.jsx("ul",{children:t.map(a=>{const d=x===a.path;return e.jsxs("li",{className:"flex items-center gap-0",children:[e.jsxs("button",{type:"button","data-testid":`fs-entry-${a.name}`,onClick:()=>p(a.path),onDoubleClick:()=>s(a.path),className:"flex flex-1 items-center gap-2 px-3 py-2 text-left text-xs hover:bg-3",style:d?{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:a.is_git_repository?e.jsx(ee,{size:14}):e.jsx(X,{size:14})}),e.jsx("span",{className:"mono flex-1 truncate",children:a.name}),a.is_git_repository?e.jsx("span",{className:"text-xs uppercase tracking-wider",style:{color:"var(--accent)"},children:c("workspace.browse.gitBadge")}):null]}),e.jsx("button",{type:"button","data-testid":`fs-entry-open-${a.name}`,onClick:()=>s(a.path),"aria-label":c("workspace.browse.openAria",{name:a.name}),className:"px-3 py-2 text-xs text-ter hover:text-pri",children:"→"})]},a.path)})})})},we=({probe:t,suggestedName:r,onSuggestedNameChange:i})=>{const{t:s}=D(),p=!!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:s("workspace.browse.selected")}),t?.is_git_repository?e.jsx("span",{className:"role-badge role-badge--coder","data-testid":"fs-preview-git-badge",children:s("workspace.git.short",{branch:t.current_branch??s("workspace.git.detached")})}):p?e.jsx("span",{className:"text-ter text-xs",children:s("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:s("workspace.field.name")}),e.jsx("input",{type:"text",value:r,onChange:x=>i(x.target.value),disabled:!p,className:"mono rounded border px-2 py-1 text-sm text-pri disabled:opacity-50",style:{background:"var(--bg-0)",borderColor:"var(--border)"},"data-testid":"fs-preview-name-input"})]})]})},ye=t=>{const i=t.replace(/[\\/]+$/,"").split(/[\\/]/).filter(Boolean),s=i[i.length-1];return s?`~ (${s})`:t},Ne=(t,r)=>{if(!r||!t)return[];const i=[{label:ye(r),path:r}];if(t===r)return i;const s=r.replace(/[\\/]+$/,""),p=t.startsWith(s)?t.slice(s.length).replace(/^[\\/]+/,""):"";if(!p)return i;const x=Q(s),c=p.split(/[\\/]/).filter(Boolean);let a=s;for(const d of c)a=`${a}${x}${d}`,i.push({label:d,path:a});return i},J={current_path:"",entries:[],error:null,ok:!1,parent_path:null,root_path:""},Ce=t=>{const[r,i]=l.useState(J),[s,p]=l.useState(!1),[x,c]=l.useState(null),[a,d]=l.useState(null),n=l.useRef(0),k=l.useRef(0),g=l.useCallback(async o=>{const m=++n.current;p(!0);try{const f=await le(o);if(n.current!==m)return;i(f),f.ok&&c(f.current_path)}catch{}finally{n.current===m&&p(!1)}},[]);l.useEffect(()=>{if(!t){n.current++,k.current++,i(J),c(null),d(null);return}g("")},[t,g]),l.useEffect(()=>{if(!x){d(null);return}const o=++k.current;oe(x).then(m=>{k.current===o&&d(m)}).catch(m=>{console.debug("[hive] discarded:fsBrowser.probe (likely stale token)",m)})},[x]);const j=l.useCallback(o=>{c(o)},[]);return{browse:r,loading:s,navigate:g,probe:a,selectEntry:j,selected:x}},_e=({commandPresetError:t,commandPresetId:r,commandPresets:i,onClose:s,onCommandPresetChange:p,onCreate:x,open:c})=>{const{t:a}=D(),{browse:d,loading:n,navigate:k,probe:g,selectEntry:j,selected:o}=Ce(c),[m,f]=l.useState(""),[N,S]=l.useState(!1),[C,P]=l.useState(""),[_,h]=l.useState(!1),[w,u]=l.useState("");if(l.useEffect(()=>{c||(f(""),S(!1),P(""),h(!1),u(""))},[c]),l.useEffect(()=>{g?.suggested_name&&f(g.suggested_name)},[g?.suggested_name]),!c)return null;const y=Ne(d.current_path,d.root_path),E=Q(d.current_path||d.root_path),F=te(C),L=i.find(b=>b.id===r),z=w.trim(),H=i.length===0&&!t,$=!r&&z.length===0,O=L?.available===!1&&z.length===0,v=$?a("workspace.preset.genericRequiresStartup"):O?a("workspace.preset.notInstalled",{name:L.displayName}):null,ae=m.trim().length>0&&(g?.is_dir===!0||N&&F.length>0)&&!H&&!$&&!O,re=()=>{const b=N&&F.length>0?F:g?.path??"";b&&x({commandPresetId:r||null,name:m.trim(),path:b,...z?{startupCommand:z}:{}})};return e.jsx(T,{open:!0,onOpenChange:b=>!b&&s(),children:e.jsxs(I,{children:[e.jsx(q,{"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 p-4",children:e.jsxs(U,{"data-testid":"add-workspace-dialog",className:"dialog-scale-pop elev-2 pointer-events-auto flex w-[760px] max-w-[calc(100vw-32px)] flex-col rounded-lg border",style:{height:"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(X,{size:18,"aria-hidden":!0})}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx(W,{className:"text-lg font-semibold text-pri",children:a("workspace.browse.title")}),e.jsx(K,{className:"mono truncate text-xs text-ter","data-testid":"fs-root-path",children:d.root_path?a("workspace.browse.root",{path:d.root_path}):a("workspace.browse.rootLoading")})]}),e.jsx(ie,{asChild:!0,children:e.jsx("button",{type:"button","aria-label":a("common.closeDialog"),className:"flex h-7 w-7 items-center justify-center rounded text-sec hover:bg-3 hover:text-pri",children:e.jsx(de,{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":a("workspace.browse.breadcrumb"),"data-testid":"fs-breadcrumb",children:[e.jsxs("button",{type:"button",onClick:()=>d.parent_path?k(d.parent_path):null,disabled:!d.parent_path,"aria-label":a("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(he,{size:12,"aria-hidden":!0})," ",a("workspace.browse.up")]}),e.jsx("div",{className:"mx-2 h-4 w-px",style:{background:"var(--border)"}}),y.map((b,Y)=>{const ne=Y===y.length-1;return e.jsxs("span",{className:"flex items-center gap-0.5",children:[Y>0?e.jsx("span",{className:"text-ter",children:E}):null,ne?e.jsx("span",{className:"px-1 py-0.5 font-medium text-pri",children:b.label}):e.jsx("button",{type:"button",onClick:()=>k(b.path),className:"rounded px-1 py-0.5 text-sec hover:bg-3 hover:text-pri",children:b.label})]},b.path)})]}),e.jsxs("div",{className:"flex min-h-0 flex-1",children:[e.jsx("div",{className:"flex min-h-0 flex-1 flex-col",children:e.jsx(je,{entries:d.entries,error:d.ok?null:d.error,loading:n,onNavigate:k,onSelect:j,selected:o})}),e.jsxs("div",{className:"flex w-[280px] shrink-0 flex-col gap-3 border-l p-4",style:{borderColor:"var(--border)"},children:[e.jsx(we,{onSuggestedNameChange:f,probe:g,suggestedName:m}),e.jsx(se,{error:t??v,onChange:p,presets:i,value:r}),e.jsxs("button",{type:"button",onClick:()=>h(b=>!b),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(A,{size:12,"aria-hidden":!0}),a("workspace.advanced.startup")]}),_?e.jsxs("label",{className:"flex flex-col gap-2 text-xs uppercase tracking-wider text-ter",children:[a("workspace.field.startup"),e.jsx("input",{type:"text",value:w,onChange:b=>u(b.target.value),placeholder:a("workspace.field.startupPlaceholder"),className:"input mono","data-testid":"fs-startup-command"}),e.jsx("span",{className:"text-xs normal-case tracking-normal text-ter",children:a("workspace.startup.hintShort")})]}):null,e.jsxs("button",{type:"button",onClick:()=>S(b=>!b),className:"flex items-center gap-1.5 text-left text-xs uppercase tracking-wider text-ter hover:text-sec",children:[N?e.jsx(B,{size:12,"aria-hidden":!0}):e.jsx(A,{size:12,"aria-hidden":!0}),a("workspace.advanced.pastePath")]}),N?e.jsxs("label",{className:"flex flex-col gap-2 text-xs uppercase tracking-wider text-ter",children:[a("workspace.field.absolutePath"),e.jsx("input",{type:"text",value:C,onChange:b=>P(b.target.value),placeholder:a("workspace.field.absolutePathPlaceholder"),className:"input mono","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:s,className:"icon-btn",children:a("common.cancel")}),e.jsx("button",{type:"button",onClick:re,disabled:!ae,"data-testid":"add-workspace-create",className:"icon-btn icon-btn--primary",children:a("workspace.confirm.create")})]})]})})]})})},R="claude",Se=t=>t.some(r=>r.id===R&&r.available)?R:t.find(r=>r.available)?.id??t[0]?.id??R,ze=({trigger:t,onClose:r,onCreate:i})=>{const{t:s}=D(),p=l.useRef(s);l.useEffect(()=>{p.current=s},[s]);const[x,c]=l.useState({kind:"idle"}),[a,d]=l.useState([]),[n,k]=l.useState(R),[g,j]=l.useState(null),o=l.useRef({error:null,id:R,presets:[]}),m=l.useRef(r);l.useEffect(()=>{m.current=r},[r]),l.useEffect(()=>{if(t===0)return;let h=!1;j(null);const w=pe().then(u=>{if(h)return;const y=u.some(E=>E.id===o.current.id&&E.available)?o.current.id:Se(u);o.current={error:null,id:y,presets:u},d(u),k(y)}).catch(()=>{if(h)return;const u=p.current("workspace.preset.loadFailed");o.current={error:u,id:R,presets:[]},d([]),k(R),j(u)});return c({kind:"picking"}),xe().then(async u=>{if(await w,!h){if(u.canceled){if(u.error){c({kind:"error",message:u.error});return}c({kind:"idle"}),m.current();return}if(!u.supported){c({kind:"confirm",probe:null,pasteDefault:!0});return}if(!u.probe?.ok||!u.probe.is_dir){c({kind:"error",message:u.error??p.current("workspace.error.outsideSandbox")});return}c({kind:"confirm",probe:u.probe,pasteDefault:!1})}}).catch(u=>{if(h)return;const y=u instanceof Error?u.message:p.current("workspace.error.pickerFailed");c({kind:"error",message:y})}),()=>{h=!0}},[t]);const f=()=>{c({kind:"idle"}),r()},N=h=>{Promise.resolve(i(h)).then(()=>c({kind:"idle"})).catch(w=>{const u=w instanceof Error?w.message:s("workspace.error.createFailed");c({kind:"error",title:s("workspace.error.createTitle"),message:u})})},S=h=>{o.current={...o.current,id:h},k(h)},C=a.length>0||g?a:o.current.presets,P=n===""?"":C.length>0&&!C.some(h=>h.id===n&&h.available)?o.current.id:n,_=g??o.current.error;if(x.kind==="idle")return null;if(x.kind==="picking"){const h=()=>c({kind:"idle"});return e.jsx(T,{open:!0,onOpenChange:w=>!w&&h(),children:e.jsxs(I,{children:[e.jsx(q,{className:"app-overlay fixed inset-0 z-40"}),e.jsxs(U,{"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(W,{className:"sr-only",children:s("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(be,{size:18,"aria-hidden":!0,className:"animate-pulse",style:{color:"var(--accent)"}}),e.jsx("span",{className:"text-sm text-pri",children:s("workspace.picking.message")})]})]})]})})}return x.kind==="error"?e.jsx(T,{open:!0,onOpenChange:h=>!h&&f(),children:e.jsxs(I,{children:[e.jsx(q,{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(U,{"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(ue,{size:18,"aria-hidden":!0})}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx(W,{className:"text-lg font-semibold text-pri",children:x.title??s("workspace.error.pickerFailed")}),e.jsx(K,{className:"mt-1.5 break-words text-sm text-ter",children:x.message})]})]}),e.jsxs("div",{className:"mt-5 flex justify-end gap-2",children:[e.jsx("button",{type:"button",onClick:f,className:"icon-btn",children:s("common.close")}),e.jsx("button",{type:"button",onClick:()=>c({kind:"confirm",probe:null,pasteDefault:!0}),className:"icon-btn icon-btn--primary",children:s("workspace.error.pastePathInstead")})]})]})})]})}):x.kind==="browse"?e.jsx(_e,{commandPresetError:_,commandPresetId:P,commandPresets:C,onClose:f,onCommandPresetChange:S,onCreate:N,open:!0}):e.jsx(ve,{commandPresetError:_,commandPresetId:P,commandPresets:C,pasteFallbackDefault:x.pasteDefault,probe:x.probe,onCancel:f,onCommandPresetChange:S,onCreate:N,onOpenServerBrowse:()=>c({kind:"browse"})})};export{ze as AddWorkspaceDialog};
@@ -1 +0,0 @@
1
- import{c as f,u as h,r as j,j as e,a as b,P as N,O as v,C as y,D as g,b as c}from"./index-CxNL0O-C.js";const R=[["path",{d:"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z",key:"yt0hxn"}]],k=f("hexagon",R),w=({open:o,onClose:r,onAddWorkspace:x,onTryDemo:d})=>{const{t:s}=h(),[n,l]=j.useState(0),u=t=>{t||(l(0),r())},i=(t=!0)=>{l(0),r(t)},a=n===2;return e.jsx(b,{open:o,onOpenChange:u,children:e.jsxs(N,{children:[e.jsx(v,{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,{"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:n+1,total:3})}),e.jsxs("div",{className:"min-h-[200px]",children:[n===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(k,{size:32})}),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")})]})]}),n>0&&e.jsx(c,{className:"sr-only",children:s("firstRun.title")}),n===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:m,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:m}),e.jsx("div",{className:"text-xs text-sec",children:p})]})]},t))})]}),n===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:()=>{x(),i(!1)},className:"icon-btn icon-btn--primary w-full justify-center",children:s("firstRun.addWorkspace")}),e.jsx("button",{type:"button",onClick:()=>{d(),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:n+1,total:3})}),e.jsxs("div",{className:"flex items-center gap-2",children:[n>0&&!a&&e.jsx("button",{type:"button",onClick:()=>l(t=>t-1),className:"icon-btn",children:s("firstRun.back")}),!a&&e.jsx("button",{type:"button",onClick:()=>l(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{w as FirstRunWizard};
@@ -1,76 +0,0 @@
1
- import{c as Pn,r as R,u as st,j as m,L as lr,M as or,a as cr,P as ur,O as pr,C as hr,b as fr,D as dr,v as mr,X as gr}from"./index-CxNL0O-C.js";import{S as kr}from"./AddWorkerDialog-BRUxpa3f.js";const xr=[["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"}]],br=Pn("bookmark",xr);const Tr=[["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"}]],wr=Pn("external-link",Tr),yr={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:"测试"}},Ar=t=>t.replace(/-/g," ").replace(/\b\w/g,e=>e.toUpperCase()),Sr=(t,e)=>{const n=yr[t];return n?n[e]:Ar(t)},_r=["engineering","testing","product","design","project-management","integrations","specialized","marketing","paid-media","sales","finance","legal","hr","supply-chain","support","academic","game-development","spatial-computing","misc"],Er=(t,e)=>{if(e!=="zh")return t;const n=new Map(_r.map((s,r)=>[s,r]));return[...t].sort((s,r)=>{const i=n.get(s)??Number.POSITIVE_INFINITY,l=n.get(r)??Number.POSITIVE_INFINITY;return i!==l?i-l:s.localeCompare(r)})},Rr=t=>t?"color-mix(in oklab, var(--accent) 14%, var(--bg-2))":"var(--bg-2)",Nr=t=>t?"var(--accent)":"var(--border-bright)",Cr=({agent:t,selected:e,imported:n,onSelect:s})=>{const{t:r}=st(),i=R.useCallback(()=>s(t.path),[t.path,s]),l=t.vibe?.trim()?t.vibe:t.description,o=r("marketplace.importedBadge"),p=t.displayName??t.name,c=t.nameOverflows?p:void 0;return m.jsxs("button",{type:"button",onClick:i,"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:Rr(e),borderColor:Nr(e),"--tw-ring-color":"color-mix(in oklab, var(--accent) 55%, transparent)"},children:[m.jsxs("div",{className:"flex items-center justify-between gap-2",children:[m.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[t.emoji?m.jsx("span",{className:"text-base leading-none",children:t.emoji}):null,m.jsx("span",{className:"truncate text-sm font-semibold text-pri",title:c,children:p})]}),n?m.jsx("span",{role:"img","aria-label":o,title:o,"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:m.jsx(br,{size:10,"aria-hidden":!0})}):null]}),m.jsx("p",{className:"line-clamp-1 text-xs leading-snug text-sec",children:l})]})},Ir=R.memo(Cr);function fn(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 Or(t){if(Array.isArray(t))return t}function Lr(t,e){var n=t==null?null:typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(n!=null){var s,r,i,l,o=[],p=!0,c=!1;try{if(i=(n=n.call(t)).next,e!==0)for(;!(p=(s=i.call(n)).done)&&(o.push(s.value),o.length!==e);p=!0);}catch(f){c=!0,r=f}finally{try{if(!p&&n.return!=null&&(l=n.return(),Object(l)!==l))return}finally{if(c)throw r}}return o}}function Dr(){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 vr(t,e){return Or(t)||Lr(t,e)||Mr(t,e)||Dr()}function Mr(t,e){if(t){if(typeof t=="string")return fn(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)?fn(t,e):void 0}}const zn=Object.entries,dn=Object.setPrototypeOf,Pr=Object.isFrozen,zr=Object.getPrototypeOf,$r=Object.getOwnPropertyDescriptor;let G=Object.freeze,Y=Object.seal,Ce=Object.create,$n=typeof Reflect<"u"&&Reflect,Rt=$n.apply,Nt=$n.construct;G||(G=function(e){return e});Y||(Y=function(e){return e});Rt||(Rt=function(e,n){for(var s=arguments.length,r=new Array(s>2?s-2:0),i=2;i<s;i++)r[i-2]=arguments[i];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 Se=D(Array.prototype.forEach),jr=D(Array.prototype.lastIndexOf),mn=D(Array.prototype.pop),_e=D(Array.prototype.push),Fr=D(Array.prototype.splice),H=Array.isArray,$e=D(String.prototype.toLowerCase),yt=D(String.prototype.toString),gn=D(String.prototype.match),Ee=D(String.prototype.replace),kn=D(String.prototype.indexOf),Br=D(String.prototype.trim),Ur=D(Number.prototype.toString),Hr=D(Boolean.prototype.toString),xn=typeof BigInt>"u"?null:D(BigInt.prototype.toString),bn=typeof Symbol>"u"?null:D(Symbol.prototype.toString),N=D(Object.prototype.hasOwnProperty),Pe=D(Object.prototype.toString),B=D(RegExp.prototype.test),Qe=Gr(TypeError);function D(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 Rt(t,e,s)}}function Gr(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 k(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:$e;if(dn&&dn(t,null),!H(e))return t;let s=e.length;for(;s--;){let r=e[s];if(typeof r=="string"){const i=n(r);i!==r&&(Pr(e)||(e[s]=i),r=i)}t[r]=!0}return t}function Wr(t){for(let e=0;e<t.length;e++)N(t,e)||(t[e]=null);return t}function q(t){const e=Ce(null);for(const s of zn(t)){var n=vr(s,2);const r=n[0],i=n[1];N(t,r)&&(H(i)?e[r]=Wr(i):i&&typeof i=="object"&&i.constructor===Object?e[r]=q(i):e[r]=i)}return e}function qr(t){switch(typeof t){case"string":return t;case"number":return Ur(t);case"boolean":return Hr(t);case"bigint":return xn?xn(t):"0";case"symbol":return bn?bn(t):"Symbol()";case"undefined":return Pe(t);case"function":case"object":{if(t===null)return Pe(t);const e=t,n=he(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 he(t,e){for(;t!==null;){const s=$r(t,e);if(s){if(s.get)return D(s.get);if(typeof s.value=="function")return D(s.value)}t=zr(t)}function n(){return null}return n}function Yr(t){try{return B(t,""),!0}catch{return!1}}const Tn=G(["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=G(["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=G(["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"]),Zr=G(["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=G(["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"]),Xr=G(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),wn=G(["#text"]),yn=G(["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=G(["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"]),An=G(["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"]),Ke=G(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),Vr=Y(/{{[\w\W]*|^[\w\W]*}}/g),Qr=Y(/<%[\w\W]*|^[\w\W]*%>/g),Kr=Y(/\${[\w\W]*/g),Jr=Y(/^data-[\-\w.\u00B7-\uFFFF]+$/),es=Y(/^aria-[\-\w]+$/),Sn=Y(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),ts=Y(/^(?:\w+script|data):/i),ns=Y(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),rs=Y(/^html$/i),ss=Y(/^[a-z][.\w]*(-[.\w]+)+$/i),Re={element:1,text:3,progressingInstruction:7,comment:8,document:9},is=function(){return typeof window>"u"?null:window},as=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 i="dompurify"+(s?"#"+s:"");try{return e.createPolicy(i,{createHTML(l){return l},createScriptURL(l){return l}})}catch{return console.warn("TrustedTypes policy "+i+" could not be created."),null}},_n=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}};function jn(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:is();const e=g=>jn(g);if(e.version="3.4.5",e.removed=[],!t||!t.document||t.document.nodeType!==Re.document||!t.Element)return e.isSupported=!1,e;let n=t.document;const s=n,r=s.currentScript,i=t.DocumentFragment,l=t.HTMLTemplateElement,o=t.Node,p=t.Element,c=t.NodeFilter,f=t.NamedNodeMap,d=f===void 0?t.NamedNodeMap||t.MozNamedAttrMap:f,x=t.HTMLFormElement,_=t.DOMParser,y=t.trustedTypes,C=p.prototype,ge=he(C,"cloneNode"),ke=he(C,"remove"),S=he(C,"nextSibling"),xe=he(C,"childNodes"),ee=he(C,"parentNode"),re=o&&o.prototype?he(o.prototype,"nodeType"):null;if(typeof l=="function"){const g=n.createElement("template");g.content&&g.content.ownerDocument&&(n=g.content.ownerDocument)}let E,oe="";const ce=n,Oe=ce.implementation,Be=ce.createNodeIterator,lt=ce.createDocumentFragment,T=ce.getElementsByTagName,z=s.importNode;let M=_n();e.isSupported=typeof zn=="function"&&typeof ee=="function"&&Oe&&Oe.createHTMLDocument!==void 0;const be=Vr,Ue=Qr,He=Kr,Vn=Jr,Qn=es,Kn=ts,Bt=ns,Jn=ss;let Ut=Sn,$=null;const Ht=k({},[...Tn,...At,...St,..._t,...wn]);let F=null;const Gt=k({},[...yn,...Et,...An,...Ke]);let I=Object.seal(Ce(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}})),Le=null,Ge=null;const se=Object.seal(Ce(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}}));let Wt=!0,ot=!0,qt=!1,Yt=!0,ie=!1,De=!0,ue=!1,ct=!1,ut=!1,Te=!1,We=!1,qe=!1,Zt=!0,Xt=!1;const Vt="user-content-";let pt=!0,ve=!1,we={},Q=null;const ht=k({},["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 Qt=null;const Kt=k({},["audio","video","img","source","image","track"]);let ft=null;const Jt=k({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Ye="http://www.w3.org/1998/Math/MathML",Ze="http://www.w3.org/2000/svg",K="http://www.w3.org/1999/xhtml";let ye=K,dt=!1,mt=null;const er=k({},[Ye,Ze,K],yt);let gt=k({},["mi","mo","mn","ms","mtext"]),kt=k({},["annotation-xml"]);const tr=k({},["title","style","font","a","script"]);let Me=null;const nr=["application/xhtml+xml","text/html"],rr="text/html";let P=null,Ae=null;const sr=n.createElement("form"),en=function(a){return a instanceof RegExp||a instanceof Function},xt=function(){let a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(Ae&&Ae===a)return;(!a||typeof a!="object")&&(a={}),a=q(a),Me=nr.indexOf(a.PARSER_MEDIA_TYPE)===-1?rr:a.PARSER_MEDIA_TYPE,P=Me==="application/xhtml+xml"?yt:$e,$=N(a,"ALLOWED_TAGS")&&H(a.ALLOWED_TAGS)?k({},a.ALLOWED_TAGS,P):Ht,F=N(a,"ALLOWED_ATTR")&&H(a.ALLOWED_ATTR)?k({},a.ALLOWED_ATTR,P):Gt,mt=N(a,"ALLOWED_NAMESPACES")&&H(a.ALLOWED_NAMESPACES)?k({},a.ALLOWED_NAMESPACES,yt):er,ft=N(a,"ADD_URI_SAFE_ATTR")&&H(a.ADD_URI_SAFE_ATTR)?k(q(Jt),a.ADD_URI_SAFE_ATTR,P):Jt,Qt=N(a,"ADD_DATA_URI_TAGS")&&H(a.ADD_DATA_URI_TAGS)?k(q(Kt),a.ADD_DATA_URI_TAGS,P):Kt,Q=N(a,"FORBID_CONTENTS")&&H(a.FORBID_CONTENTS)?k({},a.FORBID_CONTENTS,P):ht,Le=N(a,"FORBID_TAGS")&&H(a.FORBID_TAGS)?k({},a.FORBID_TAGS,P):q({}),Ge=N(a,"FORBID_ATTR")&&H(a.FORBID_ATTR)?k({},a.FORBID_ATTR,P):q({}),we=N(a,"USE_PROFILES")?a.USE_PROFILES&&typeof a.USE_PROFILES=="object"?q(a.USE_PROFILES):a.USE_PROFILES:!1,Wt=a.ALLOW_ARIA_ATTR!==!1,ot=a.ALLOW_DATA_ATTR!==!1,qt=a.ALLOW_UNKNOWN_PROTOCOLS||!1,Yt=a.ALLOW_SELF_CLOSE_IN_ATTR!==!1,ie=a.SAFE_FOR_TEMPLATES||!1,De=a.SAFE_FOR_XML!==!1,ue=a.WHOLE_DOCUMENT||!1,Te=a.RETURN_DOM||!1,We=a.RETURN_DOM_FRAGMENT||!1,qe=a.RETURN_TRUSTED_TYPE||!1,ut=a.FORCE_BODY||!1,Zt=a.SANITIZE_DOM!==!1,Xt=a.SANITIZE_NAMED_PROPS||!1,pt=a.KEEP_CONTENT!==!1,ve=a.IN_PLACE||!1,Ut=Yr(a.ALLOWED_URI_REGEXP)?a.ALLOWED_URI_REGEXP:Sn,ye=typeof a.NAMESPACE=="string"?a.NAMESPACE:K,gt=N(a,"MATHML_TEXT_INTEGRATION_POINTS")&&a.MATHML_TEXT_INTEGRATION_POINTS&&typeof a.MATHML_TEXT_INTEGRATION_POINTS=="object"?q(a.MATHML_TEXT_INTEGRATION_POINTS):k({},["mi","mo","mn","ms","mtext"]),kt=N(a,"HTML_INTEGRATION_POINTS")&&a.HTML_INTEGRATION_POINTS&&typeof a.HTML_INTEGRATION_POINTS=="object"?q(a.HTML_INTEGRATION_POINTS):k({},["annotation-xml"]);const u=N(a,"CUSTOM_ELEMENT_HANDLING")&&a.CUSTOM_ELEMENT_HANDLING&&typeof a.CUSTOM_ELEMENT_HANDLING=="object"?q(a.CUSTOM_ELEMENT_HANDLING):Ce(null);if(I=Ce(null),N(u,"tagNameCheck")&&en(u.tagNameCheck)&&(I.tagNameCheck=u.tagNameCheck),N(u,"attributeNameCheck")&&en(u.attributeNameCheck)&&(I.attributeNameCheck=u.attributeNameCheck),N(u,"allowCustomizedBuiltInElements")&&typeof u.allowCustomizedBuiltInElements=="boolean"&&(I.allowCustomizedBuiltInElements=u.allowCustomizedBuiltInElements),ie&&(ot=!1),We&&(Te=!0),we&&($=k({},wn),F=Ce(null),we.html===!0&&(k($,Tn),k(F,yn)),we.svg===!0&&(k($,At),k(F,Et),k(F,Ke)),we.svgFilters===!0&&(k($,St),k(F,Et),k(F,Ke)),we.mathMl===!0&&(k($,_t),k(F,An),k(F,Ke))),se.tagCheck=null,se.attributeCheck=null,N(a,"ADD_TAGS")&&(typeof a.ADD_TAGS=="function"?se.tagCheck=a.ADD_TAGS:H(a.ADD_TAGS)&&($===Ht&&($=q($)),k($,a.ADD_TAGS,P))),N(a,"ADD_ATTR")&&(typeof a.ADD_ATTR=="function"?se.attributeCheck=a.ADD_ATTR:H(a.ADD_ATTR)&&(F===Gt&&(F=q(F)),k(F,a.ADD_ATTR,P))),N(a,"ADD_URI_SAFE_ATTR")&&H(a.ADD_URI_SAFE_ATTR)&&k(ft,a.ADD_URI_SAFE_ATTR,P),N(a,"FORBID_CONTENTS")&&H(a.FORBID_CONTENTS)&&(Q===ht&&(Q=q(Q)),k(Q,a.FORBID_CONTENTS,P)),N(a,"ADD_FORBID_CONTENTS")&&H(a.ADD_FORBID_CONTENTS)&&(Q===ht&&(Q=q(Q)),k(Q,a.ADD_FORBID_CONTENTS,P)),pt&&($["#text"]=!0),ue&&k($,["html","head","body"]),$.table&&(k($,["tbody"]),delete Le.tbody),a.TRUSTED_TYPES_POLICY){if(typeof a.TRUSTED_TYPES_POLICY.createHTML!="function")throw Qe('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof a.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw Qe('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');E=a.TRUSTED_TYPES_POLICY,oe=E.createHTML("")}else E===void 0&&(E=as(y,r)),E!==null&&typeof oe=="string"&&(oe=E.createHTML(""));G&&G(a),Ae=a},tn=k({},[...At,...St,...Zr]),nn=k({},[..._t,...Xr]),ir=function(a){let u=ee(a);(!u||!u.tagName)&&(u={namespaceURI:ye,tagName:"template"});const h=$e(a.tagName),b=$e(u.tagName);return mt[a.namespaceURI]?a.namespaceURI===Ze?u.namespaceURI===K?h==="svg":u.namespaceURI===Ye?h==="svg"&&(b==="annotation-xml"||gt[b]):!!tn[h]:a.namespaceURI===Ye?u.namespaceURI===K?h==="math":u.namespaceURI===Ze?h==="math"&&kt[b]:!!nn[h]:a.namespaceURI===K?u.namespaceURI===Ze&&!kt[b]||u.namespaceURI===Ye&&!gt[b]?!1:!nn[h]&&(tr[h]||!tn[h]):!!(Me==="application/xhtml+xml"&&mt[a.namespaceURI]):!1},Z=function(a){_e(e.removed,{element:a});try{ee(a).removeChild(a)}catch{ke(a)}},pe=function(a,u){try{_e(e.removed,{attribute:u.getAttributeNode(a),from:u})}catch{_e(e.removed,{attribute:null,from:u})}if(u.removeAttribute(a),a==="is")if(Te||We)try{Z(u)}catch{}else try{u.setAttribute(a,"")}catch{}},rn=function(a){let u=null,h=null;if(ut)a="<remove></remove>"+a;else{const L=gn(a,/^[\r\n\t ]+/);h=L&&L[0]}Me==="application/xhtml+xml"&&ye===K&&(a='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+a+"</body></html>");const b=E?E.createHTML(a):a;if(ye===K)try{u=new _().parseFromString(b,Me)}catch{}if(!u||!u.documentElement){u=Oe.createDocument(ye,"template",null);try{u.documentElement.innerHTML=dt?oe:b}catch{}}const O=u.body||u.documentElement;return a&&h&&O.insertBefore(n.createTextNode(h),O.childNodes[0]||null),ye===K?T.call(u,ue?"html":"body")[0]:ue?u.documentElement:O},sn=function(a){return Be.call(a.ownerDocument||a,a,c.SHOW_ELEMENT|c.SHOW_COMMENT|c.SHOW_TEXT|c.SHOW_PROCESSING_INSTRUCTION|c.SHOW_CDATA_SECTION,null)},an=function(a){a.normalize();const u=Be.call(a.ownerDocument||a,a,c.SHOW_TEXT|c.SHOW_COMMENT|c.SHOW_CDATA_SECTION|c.SHOW_PROCESSING_INSTRUCTION,null);let h=u.nextNode();for(;h;){let b=h.data;Se([be,Ue,He],O=>{b=Ee(b,O," ")}),h.data=b,h=u.nextNode()}},bt=function(a){return a instanceof x&&(typeof a.nodeName!="string"||typeof a.textContent!="string"||typeof a.removeChild!="function"||!(a.attributes instanceof d)||typeof a.removeAttribute!="function"||typeof a.setAttribute!="function"||typeof a.namespaceURI!="string"||typeof a.insertBefore!="function"||typeof a.hasChildNodes!="function")},Xe=function(a){if(!re||typeof a!="object"||a===null)return!1;try{return typeof re(a)=="number"}catch{return!1}};function te(g,a,u){Se(g,h=>{h.call(e,a,u,Ae)})}const ln=function(a){let u=null;if(te(M.beforeSanitizeElements,a,null),bt(a))return Z(a),!0;const h=P(a.nodeName);if(te(M.uponSanitizeElement,a,{tagName:h,allowedTags:$}),De&&a.hasChildNodes()&&!Xe(a.firstElementChild)&&B(/<[/\w!]/g,a.innerHTML)&&B(/<[/\w!]/g,a.textContent)||De&&a.namespaceURI===K&&h==="style"&&Xe(a.firstElementChild)||a.nodeType===Re.progressingInstruction||De&&a.nodeType===Re.comment&&B(/<[/\w]/g,a.data))return Z(a),!0;if(Le[h]||!(se.tagCheck instanceof Function&&se.tagCheck(h))&&!$[h]){if(!Le[h]&&cn(h)&&(I.tagNameCheck instanceof RegExp&&B(I.tagNameCheck,h)||I.tagNameCheck instanceof Function&&I.tagNameCheck(h)))return!1;if(pt&&!Q[h]){const b=ee(a)||a.parentNode,O=xe(a)||a.childNodes;if(O&&b){const L=O.length;for(let W=L-1;W>=0;--W){const ae=ge(O[W],!0);b.insertBefore(ae,S(a))}}}return Z(a),!0}return a instanceof p&&!ir(a)||(h==="noscript"||h==="noembed"||h==="noframes")&&B(/<\/no(script|embed|frames)/i,a.innerHTML)?(Z(a),!0):(ie&&a.nodeType===Re.text&&(u=a.textContent,Se([be,Ue,He],b=>{u=Ee(u,b," ")}),a.textContent!==u&&(_e(e.removed,{element:a.cloneNode()}),a.textContent=u)),te(M.afterSanitizeElements,a,null),!1)},on=function(a,u,h){if(Ge[u]||Zt&&(u==="id"||u==="name")&&(h in n||h in sr))return!1;const b=F[u]||se.attributeCheck instanceof Function&&se.attributeCheck(u,a);if(!(ot&&!Ge[u]&&B(Vn,u))){if(!(Wt&&B(Qn,u))){if(!b||Ge[u]){if(!(cn(a)&&(I.tagNameCheck instanceof RegExp&&B(I.tagNameCheck,a)||I.tagNameCheck instanceof Function&&I.tagNameCheck(a))&&(I.attributeNameCheck instanceof RegExp&&B(I.attributeNameCheck,u)||I.attributeNameCheck instanceof Function&&I.attributeNameCheck(u,a))||u==="is"&&I.allowCustomizedBuiltInElements&&(I.tagNameCheck instanceof RegExp&&B(I.tagNameCheck,h)||I.tagNameCheck instanceof Function&&I.tagNameCheck(h))))return!1}else if(!ft[u]){if(!B(Ut,Ee(h,Bt,""))){if(!((u==="src"||u==="xlink:href"||u==="href")&&a!=="script"&&kn(h,"data:")===0&&Qt[a])){if(!(qt&&!B(Kn,Ee(h,Bt,"")))){if(h)return!1}}}}}}return!0},ar=k({},["annotation-xml","color-profile","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","missing-glyph"]),cn=function(a){return!ar[$e(a)]&&B(Jn,a)},un=function(a){te(M.beforeSanitizeAttributes,a,null);const u=a.attributes;if(!u||bt(a))return;const h={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:F,forceKeepAttr:void 0};let b=u.length;for(;b--;){const O=u[b],L=O.name,W=O.namespaceURI,ae=O.value,ne=P(L),wt=ae;let j=L==="value"?wt:Br(wt);if(h.attrName=ne,h.attrValue=j,h.keepAttr=!0,h.forceKeepAttr=void 0,te(M.uponSanitizeAttribute,a,h),j=h.attrValue,Xt&&(ne==="id"||ne==="name")&&kn(j,Vt)!==0&&(pe(L,a),j=Vt+j),De&&B(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,j)){pe(L,a);continue}if(ne==="attributename"&&gn(j,"href")){pe(L,a);continue}if(h.forceKeepAttr)continue;if(!h.keepAttr){pe(L,a);continue}if(!Yt&&B(/\/>/i,j)){pe(L,a);continue}ie&&Se([be,Ue,He],hn=>{j=Ee(j,hn," ")});const pn=P(a.nodeName);if(!on(pn,ne,j)){pe(L,a);continue}if(E&&typeof y=="object"&&typeof y.getAttributeType=="function"&&!W)switch(y.getAttributeType(pn,ne)){case"TrustedHTML":{j=E.createHTML(j);break}case"TrustedScriptURL":{j=E.createScriptURL(j);break}}if(j!==wt)try{W?a.setAttributeNS(W,L,j):a.setAttribute(L,j),bt(a)?Z(a):mn(e.removed)}catch{pe(L,a)}}te(M.afterSanitizeAttributes,a,null)},Tt=function(a){let u=null;const h=sn(a);for(te(M.beforeSanitizeShadowDOM,a,null);u=h.nextNode();)te(M.uponSanitizeShadowNode,u,null),ln(u),un(u),u.content instanceof i&&Tt(u.content);te(M.afterSanitizeShadowDOM,a,null)},Ve=function(a){if(a.nodeType===Re.element&&a.shadowRoot instanceof i){const b=a.shadowRoot;Ve(b),Tt(b)}const u=a.childNodes;if(!u)return;const h=[];Se(u,b=>{_e(h,b)});for(const b of h)Ve(b)};return e.sanitize=function(g){let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},u=null,h=null,b=null,O=null;if(dt=!g,dt&&(g="<!-->"),typeof g!="string"&&!Xe(g)&&(g=qr(g),typeof g!="string"))throw Qe("dirty is not a string, aborting");if(!e.isSupported)return g;if(ct||xt(a),e.removed=[],typeof g=="string"&&(ve=!1),ve){const ae=g.nodeName;if(typeof ae=="string"){const ne=P(ae);if(!$[ne]||Le[ne])throw Qe("root node is forbidden and cannot be sanitized in-place")}Ve(g)}else if(Xe(g))u=rn("<!---->"),h=u.ownerDocument.importNode(g,!0),h.nodeType===Re.element&&h.nodeName==="BODY"||h.nodeName==="HTML"?u=h:u.appendChild(h),Ve(h);else{if(!Te&&!ie&&!ue&&g.indexOf("<")===-1)return E&&qe?E.createHTML(g):g;if(u=rn(g),!u)return Te?null:qe?oe:""}u&&ut&&Z(u.firstChild);const L=sn(ve?g:u);for(;b=L.nextNode();)ln(b),un(b),b.content instanceof i&&Tt(b.content);if(ve)return ie&&an(g),g;if(Te){if(ie&&an(u),We)for(O=lt.call(u.ownerDocument);u.firstChild;)O.appendChild(u.firstChild);else O=u;return(F.shadowroot||F.shadowrootmode)&&(O=z.call(s,O,!0)),O}let W=ue?u.outerHTML:u.innerHTML;return ue&&$["!doctype"]&&u.ownerDocument&&u.ownerDocument.doctype&&u.ownerDocument.doctype.name&&B(rs,u.ownerDocument.doctype.name)&&(W="<!DOCTYPE "+u.ownerDocument.doctype.name+`>
3
- `+W),ie&&Se([be,Ue,He],ae=>{W=Ee(W,ae," ")}),E&&qe?E.createHTML(W):W},e.setConfig=function(){let g=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};xt(g),ct=!0},e.clearConfig=function(){Ae=null,ct=!1},e.isValidAttribute=function(g,a,u){Ae||xt({});const h=P(g),b=P(a);return on(h,b,u)},e.addHook=function(g,a){typeof a=="function"&&_e(M[g],a)},e.removeHook=function(g,a){if(a!==void 0){const u=jr(M[g],a);return u===-1?void 0:Fr(M[g],u,1)[0]}return mn(M[g])},e.removeHooks=function(g){M[g]=[]},e.removeAllHooks=function(){M=_n()},e}var v=jn(),ls=v;v.sanitize.bind(v);v.isSupported;v.addHook.bind(v);v.removeHook.bind(v);v.removeHooks.bind(v);v.removeAllHooks.bind(v);v.setConfig.bind(v);v.clearConfig.bind(v);v.isValidAttribute.bind(v);v.version;v.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 me=Lt();function Fn(t){me=t}var fe={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,i)=>{let l=typeof i=="string"?i:i.source;return l=l.replace(U.caret,"$1"),n=n.replace(r,l),s},getRegex:()=>new RegExp(n,e)};return s}var os=((t="")=>{try{return!!new RegExp("(?<=1)(?<!1)"+t)}catch{return!1}})(),U={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}}>`))},cs=/^(?:[ \t]*(?:\n|$))+/,us=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,ps=/^ {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+|$)/,hs=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,Dt=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,Bn=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,Un=w(Bn).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(),fs=w(Bn).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(),vt=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,ds=/^[^\n]+/,Mt=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,ms=w(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",Mt).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),gs=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",Pt=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,ks=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",Pt).replace("tag",it).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),Hn=w(vt).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(),xs=w(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",Hn).getRegex(),zt={blockquote:xs,code:us,def:ms,fences:ps,heading:hs,hr:Fe,html:ks,lheading:Un,list:gs,newline:cs,paragraph:Hn,table:fe,text:ds},En=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(),bs={...zt,lheading:fs,table:En,paragraph:w(vt).replace("hr",Fe).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",En).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()},Ts={...zt,html:w(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",Pt).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:fe,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:w(vt).replace("hr",Fe).replace("heading",` *#{1,6} *[^
4
- ]`).replace("lheading",Un).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},ws=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,ys=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,Gn=/^( {2,}|\\)\n(?!\s*$)/,As=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,Ie=/[\p{P}\p{S}]/u,at=/[\s\p{P}\p{S}]/u,$t=/[^\s\p{P}\p{S}]/u,Ss=w(/^((?![*_])punctSpace)/,"u").replace(/punctSpace/g,at).getRegex(),Wn=/(?!~)[\p{P}\p{S}]/u,_s=/(?!~)[\s\p{P}\p{S}]/u,Es=/(?:[^\s\p{P}\p{S}]|~)/u,Rs=w(/link|precode-code|html/,"g").replace("link",/\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-",os?"(?<!`)()":"(^^|[^`])").replace("code",/(?<b>`+)[^`]+\k<b>(?!`)/).replace("html",/<(?! )[^<>]*?>/).getRegex(),qn=/^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/,Ns=w(qn,"u").replace(/punct/g,Ie).getRegex(),Cs=w(qn,"u").replace(/punct/g,Wn).getRegex(),Yn="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",Is=w(Yn,"gu").replace(/notPunctSpace/g,$t).replace(/punctSpace/g,at).replace(/punct/g,Ie).getRegex(),Os=w(Yn,"gu").replace(/notPunctSpace/g,Es).replace(/punctSpace/g,_s).replace(/punct/g,Wn).getRegex(),Ls=w("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,$t).replace(/punctSpace/g,at).replace(/punct/g,Ie).getRegex(),Ds=w(/^~~?(?:((?!~)punct)|[^\s~])/,"u").replace(/punct/g,Ie).getRegex(),vs="^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)",Ms=w(vs,"gu").replace(/notPunctSpace/g,$t).replace(/punctSpace/g,at).replace(/punct/g,Ie).getRegex(),Ps=w(/\\(punct)/,"gu").replace(/punct/g,Ie).getRegex(),zs=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(),$s=w(Pt).replace("(?:-->|$)","-->").getRegex(),js=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",$s).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),tt=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/,Fs=w(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?\s*\)/).replace("label",tt).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),Zn=w(/^!?\[(label)\]\[(ref)\]/).replace("label",tt).replace("ref",Mt).getRegex(),Xn=w(/^!?\[(ref)\](?:\[\])?/).replace("ref",Mt).getRegex(),Bs=w("reflink|nolink(?!\\()","g").replace("reflink",Zn).replace("nolink",Xn).getRegex(),Rn=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,jt={_backpedal:fe,anyPunctuation:Ps,autolink:zs,blockSkip:Rs,br:Gn,code:ys,del:fe,delLDelim:fe,delRDelim:fe,emStrongLDelim:Ns,emStrongRDelimAst:Is,emStrongRDelimUnd:Ls,escape:ws,link:Fs,nolink:Xn,punctuation:Ss,reflink:Zn,reflinkSearch:Bs,tag:js,text:As,url:fe},Us={...jt,link:w(/^!?\[(label)\]\((.*?)\)/).replace("label",tt).getRegex(),reflink:w(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",tt).getRegex()},Ct={...jt,emStrongRDelimAst:Os,emStrongLDelim:Cs,delLDelim:Ds,delRDelim:Ms,url:w(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol",Rn).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",Rn).getRegex()},Hs={...Ct,br:w(Gn).replace("{2,}","*").getRegex(),text:w(Ct.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()},Je={normal:zt,gfm:bs,pedantic:Ts},ze={normal:jt,gfm:Ct,breaks:Hs,pedantic:Us},Gs={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},Nn=t=>Gs[t];function J(t,e){if(e){if(U.escapeTest.test(t))return t.replace(U.escapeReplace,Nn)}else if(U.escapeTestNoEncode.test(t))return t.replace(U.escapeReplaceNoEncode,Nn);return t}function Cn(t){try{t=encodeURI(t).replace(U.percentDecode,"%")}catch{return null}return t}function In(t,e){let n=t.replace(U.findPipe,(i,l,o)=>{let p=!1,c=l;for(;--c>=0&&o[c]==="\\";)p=!p;return p?"|":" |"}),s=n.split(U.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(U.slashPipe,"|");return s}function le(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 On(t){let e=t.split(`
5
- `),n=e.length-1;for(;n>=0&&U.blankLine.test(e[n]);)n--;return e.length-n<=2?t:e.slice(0,n+1).join(`
6
- `)}function Ws(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 qs(t,e=0){let n=e,s="";for(let r of t)if(r===" "){let i=4-n%4;s+=" ".repeat(i),n+=i}else s+=r,n++;return s}function Ln(t,e,n,s,r){let i=e.href,l=e.title||null,o=t[1].replace(r.other.outputLinkReplace,"$1");s.state.inLink=!0;let p={type:t[0].charAt(0)==="!"?"image":"link",raw:n,href:i,title:l,text:o,tokens:s.inlineTokens(o)};return s.state.inLink=!1,p}function Ys(t,e,n){let s=t.match(n.other.indentCodeCompensation);if(s===null)return e;let r=s[1];return e.split(`
7
- `).map(i=>{let l=i.match(n.other.beginningSpace);if(l===null)return i;let[o]=l;return o.length>=r.length?i.slice(r.length):i}).join(`
8
- `)}var nt=class{options;rules;lexer;constructor(t){this.options=t||me}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]:On(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=Ys(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=le(n,"#");(this.options.pedantic||!s||this.rules.other.endingSpaceChar.test(s))&&(n=s.trim())}return{type:"heading",raw:le(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:le(e[0],`
10
- `)}}blockquote(t){let e=this.rules.block.blockquote.exec(t);if(e){let n=le(e[0],`
11
- `).split(`
12
- `),s="",r="",i=[];for(;n.length>0;){let l=!1,o=[],p;for(p=0;p<n.length;p++)if(this.rules.other.blockquoteStart.test(n[p]))o.push(n[p]),l=!0;else if(!l)o.push(n[p]);else break;n=n.slice(p);let c=o.join(`
13
- `),f=c.replace(this.rules.other.blockquoteSetextReplace,`
14
- $1`).replace(this.rules.other.blockquoteSetextReplace2,"");s=s?`${s}
15
- ${c}`:c,r=r?`${r}
16
- ${f}`:f;let d=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(f,i,!0),this.lexer.state.top=d,n.length===0)break;let x=i.at(-1);if(x?.type==="code")break;if(x?.type==="blockquote"){let _=x,y=_.raw+`
17
- `+n.join(`
18
- `),C=this.blockquote(y);i[i.length-1]=C,s=s.substring(0,s.length-_.raw.length)+C.raw,r=r.substring(0,r.length-_.text.length)+C.text;break}else if(x?.type==="list"){let _=x,y=_.raw+`
19
- `+n.join(`
20
- `),C=this.list(y);i[i.length-1]=C,s=s.substring(0,s.length-x.raw.length)+C.raw,r=r.substring(0,r.length-_.raw.length)+C.raw,n=y.substring(i.at(-1).raw.length).split(`
21
- `);continue}}return{type:"blockquote",raw:s,tokens:i,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 i=this.rules.other.listItemRegex(n),l=!1;for(;t;){let p=!1,c="",f="";if(!(e=i.exec(t))||this.rules.block.hr.test(t))break;c=e[0],t=t.substring(c.length);let d=qs(e[2].split(`
22
- `,1)[0],e[1].length),x=t.split(`
23
- `,1)[0],_=!d.trim(),y=0;if(this.options.pedantic?(y=2,f=d.trimStart()):_?y=e[1].length+1:(y=d.search(this.rules.other.nonSpaceChar),y=y>4?1:y,f=d.slice(y),y+=e[1].length),_&&this.rules.other.blankLine.test(x)&&(c+=x+`
24
- `,t=t.substring(x.length+1),p=!0),!p){let C=this.rules.other.nextBulletRegex(y),ge=this.rules.other.hrRegex(y),ke=this.rules.other.fencesBeginRegex(y),S=this.rules.other.headingBeginRegex(y),xe=this.rules.other.htmlBeginRegex(y),ee=this.rules.other.blockquoteBeginRegex(y);for(;t;){let re=t.split(`
25
- `,1)[0],E;if(x=re,this.options.pedantic?(x=x.replace(this.rules.other.listReplaceNesting," "),E=x):E=x.replace(this.rules.other.tabCharGlobal," "),ke.test(x)||S.test(x)||xe.test(x)||ee.test(x)||C.test(x)||ge.test(x))break;if(E.search(this.rules.other.nonSpaceChar)>=y||!x.trim())f+=`
26
- `+E.slice(y);else{if(_||d.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||ke.test(d)||S.test(d)||ge.test(d))break;f+=`
27
- `+x}_=!x.trim(),c+=re+`
28
- `,t=t.substring(re.length+1),d=E.slice(y)}}r.loose||(l?r.loose=!0:this.rules.other.doubleBlankLine.test(c)&&(l=!0)),r.items.push({type:"list_item",raw:c,task:!!this.options.gfm&&this.rules.other.listIsTask.test(f),loose:!1,text:f,tokens:[]}),r.raw+=c}let o=r.items.at(-1);if(o)o.raw=o.raw.trimEnd(),o.text=o.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 c=p.tokens[0];if(p.task&&(c?.type==="text"||c?.type==="paragraph")){p.text=p.text.replace(this.rules.other.listReplaceTask,""),c.raw=c.raw.replace(this.rules.other.listReplaceTask,""),c.text=c.text.replace(this.rules.other.listReplaceTask,"");for(let d=this.lexer.inlineQueue.length-1;d>=0;d--)if(this.rules.other.listIsTask.test(this.lexer.inlineQueue[d].src)){this.lexer.inlineQueue[d].src=this.lexer.inlineQueue[d].src.replace(this.rules.other.listReplaceTask,"");break}let f=this.rules.other.listTaskCheckbox.exec(p.raw);if(f){let d={type:"checkbox",raw:f[0]+" ",checked:f[0]!=="[ ]"};p.checked=d.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=d.raw+p.tokens[0].raw,p.tokens[0].text=d.raw+p.tokens[0].text,p.tokens[0].tokens.unshift(d)):p.tokens.unshift({type:"paragraph",raw:d.raw,text:d.raw,tokens:[d]}):p.tokens.unshift(d)}}else p.task&&(p.task=!1);if(!r.loose){let f=p.tokens.filter(x=>x.type==="space"),d=f.length>0&&f.some(x=>this.rules.other.anyLine.test(x.raw));r.loose=d}}if(r.loose)for(let p of r.items){p.loose=!0;for(let c of p.tokens)c.type==="text"&&(c.type="paragraph")}return r}}html(t){let e=this.rules.block.html.exec(t);if(e){let n=On(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:le(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=In(e[1]),s=e[2].replace(this.rules.other.tableAlignChars,"").split("|"),r=e[3]?.trim()?e[3].replace(this.rules.other.tableRowBlankLine,"").split(`
30
- `):[],i={type:"table",raw:le(e[0],`
31
- `),header:[],align:[],rows:[]};if(n.length===s.length){for(let l of s)this.rules.other.tableAlignRight.test(l)?i.align.push("right"):this.rules.other.tableAlignCenter.test(l)?i.align.push("center"):this.rules.other.tableAlignLeft.test(l)?i.align.push("left"):i.align.push(null);for(let l=0;l<n.length;l++)i.header.push({text:n[l],tokens:this.lexer.inline(n[l]),header:!0,align:i.align[l]});for(let l of r)i.rows.push(In(l,i.header.length).map((o,p)=>({text:o,tokens:this.lexer.inline(o),header:!1,align:i.align[p]})));return i}}lheading(t){let e=this.rules.block.lheading.exec(t);if(e){let n=e[1].trim();return{type:"heading",raw:le(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 i=le(n.slice(0,-1),"\\");if((n.length-i.length)%2===0)return}else{let i=Ws(e[2],"()");if(i===-2)return;if(i>-1){let l=(e[0].indexOf("!")===0?5:4)+e[1].length+i;e[2]=e[2].substring(0,i),e[0]=e[0].substring(0,l).trim(),e[3]=""}}let s=e[2],r="";if(this.options.pedantic){let i=this.rules.other.pedanticHrefTitle.exec(s);i&&(s=i[1],r=i[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)),Ln(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 i=n[0].charAt(0);return{type:"text",raw:i,text:i}}return Ln(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,i,l,o=r,p=0,c=s[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(c.lastIndex=0,e=e.slice(-1*t.length+r);(s=c.exec(e))!==null;){if(i=s[1]||s[2]||s[3]||s[4]||s[5]||s[6],!i)continue;if(l=[...i].length,s[3]||s[4]){o+=l;continue}else if((s[5]||s[6])&&r%3&&!((r+l)%3)){p+=l;continue}if(o-=l,o>0)continue;l=Math.min(l,l+o+p);let f=[...s[0]][0].length,d=t.slice(0,r+s.index+f+l);if(Math.min(r,l)%2){let _=d.slice(1,-1);return{type:"em",raw:d,text:_,tokens:this.lexer.inlineTokens(_)}}let x=d.slice(2,-2);return{type:"strong",raw:d,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,i,l,o=r,p=this.rules.inline.delRDelim;for(p.lastIndex=0,e=e.slice(-1*t.length+r);(s=p.exec(e))!==null;){if(i=s[1]||s[2]||s[3]||s[4]||s[5]||s[6],!i||(l=[...i].length,l!==r))continue;if(s[3]||s[4]){o+=l;continue}if(o-=l,o>0)continue;l=Math.min(l,l+o);let c=[...s[0]][0].length,f=t.slice(0,r+s.index+c+l),d=f.slice(r,-r);return{type:"del",raw:f,text:d,tokens:this.lexer.inlineTokens(d)}}}}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||me,this.options.tokenizer=this.options.tokenizer||new nt,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:U,block:Je.normal,inline:ze.normal};this.options.pedantic?(n.block=Je.pedantic,n.inline=ze.pedantic):this.options.gfm&&(n.block=Je.gfm,this.options.breaks?n.inline=ze.breaks:n.inline=ze.gfm),this.tokenizer.rules=n}static get rules(){return{block:Je,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(U.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(U.tabCharGlobal," ").replace(U.spaceLine,""));let r=1/0;for(;e;){if(e.length<r)r=e.length;else{this.infiniteLoopError(e.charCodeAt(0));break}let i;if(this.options.extensions?.block?.some(o=>(i=o.call({lexer:this},e,n))?(e=e.substring(i.raw.length),n.push(i),!0):!1))continue;if(i=this.tokenizer.space(e)){e=e.substring(i.raw.length);let o=n.at(-1);i.raw.length===1&&o!==void 0?o.raw+=`
35
- `:n.push(i);continue}if(i=this.tokenizer.code(e)){e=e.substring(i.raw.length);let o=n.at(-1);o?.type==="paragraph"||o?.type==="text"?(o.raw+=(o.raw.endsWith(`
36
- `)?"":`
37
- `)+i.raw,o.text+=`
38
- `+i.text,this.inlineQueue.at(-1).src=o.text):n.push(i);continue}if(i=this.tokenizer.fences(e)){e=e.substring(i.raw.length),n.push(i);continue}if(i=this.tokenizer.heading(e)){e=e.substring(i.raw.length),n.push(i);continue}if(i=this.tokenizer.hr(e)){e=e.substring(i.raw.length),n.push(i);continue}if(i=this.tokenizer.blockquote(e)){e=e.substring(i.raw.length),n.push(i);continue}if(i=this.tokenizer.list(e)){e=e.substring(i.raw.length),n.push(i);continue}if(i=this.tokenizer.html(e)){e=e.substring(i.raw.length),n.push(i);continue}if(i=this.tokenizer.def(e)){e=e.substring(i.raw.length);let o=n.at(-1);o?.type==="paragraph"||o?.type==="text"?(o.raw+=(o.raw.endsWith(`
39
- `)?"":`
40
- `)+i.raw,o.text+=`
41
- `+i.raw,this.inlineQueue.at(-1).src=o.text):this.tokens.links[i.tag]||(this.tokens.links[i.tag]={href:i.href,title:i.title},n.push(i));continue}if(i=this.tokenizer.table(e)){e=e.substring(i.raw.length),n.push(i);continue}if(i=this.tokenizer.lheading(e)){e=e.substring(i.raw.length),n.push(i);continue}let l=e;if(this.options.extensions?.startBlock){let o=1/0,p=e.slice(1),c;this.options.extensions.startBlock.forEach(f=>{c=f.call({lexer:this},p),typeof c=="number"&&c>=0&&(o=Math.min(o,c))}),o<1/0&&o>=0&&(l=e.substring(0,o+1))}if(this.state.top&&(i=this.tokenizer.paragraph(l))){let o=n.at(-1);s&&o?.type==="paragraph"?(o.raw+=(o.raw.endsWith(`
42
- `)?"":`
43
- `)+i.raw,o.text+=`
44
- `+i.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=o.text):n.push(i),s=l.length!==e.length,e=e.substring(i.raw.length);continue}if(i=this.tokenizer.text(e)){e=e.substring(i.raw.length);let o=n.at(-1);o?.type==="text"?(o.raw+=(o.raw.endsWith(`
45
- `)?"":`
46
- `)+i.raw,o.text+=`
47
- `+i.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=o.text):n.push(i);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 c=Object.keys(this.tokens.links);if(c.length>0)for(;(r=this.tokenizer.rules.inline.reflinkSearch.exec(s))!==null;)c.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 i;for(;(r=this.tokenizer.rules.inline.blockSkip.exec(s))!==null;)i=r[2]?r[2].length:0,s=s.slice(0,r.index+i)+"["+"a".repeat(r[0].length-i-2)+"]"+s.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);s=this.options.hooks?.emStrongMask?.call({lexer:this},s)??s;let l=!1,o="",p=1/0;for(;e;){if(e.length<p)p=e.length;else{this.infiniteLoopError(e.charCodeAt(0));break}l||(o=""),l=!1;let c;if(this.options.extensions?.inline?.some(d=>(c=d.call({lexer:this},e,n))?(e=e.substring(c.raw.length),n.push(c),!0):!1))continue;if(c=this.tokenizer.escape(e)){e=e.substring(c.raw.length),n.push(c);continue}if(c=this.tokenizer.tag(e)){e=e.substring(c.raw.length),n.push(c);continue}if(c=this.tokenizer.link(e)){e=e.substring(c.raw.length),n.push(c);continue}if(c=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(c.raw.length);let d=n.at(-1);c.type==="text"&&d?.type==="text"?(d.raw+=c.raw,d.text+=c.text):n.push(c);continue}if(c=this.tokenizer.emStrong(e,s,o)){e=e.substring(c.raw.length),n.push(c);continue}if(c=this.tokenizer.codespan(e)){e=e.substring(c.raw.length),n.push(c);continue}if(c=this.tokenizer.br(e)){e=e.substring(c.raw.length),n.push(c);continue}if(c=this.tokenizer.del(e,s,o)){e=e.substring(c.raw.length),n.push(c);continue}if(c=this.tokenizer.autolink(e)){e=e.substring(c.raw.length),n.push(c);continue}if(!this.state.inLink&&(c=this.tokenizer.url(e))){e=e.substring(c.raw.length),n.push(c);continue}let f=e;if(this.options.extensions?.startInline){let d=1/0,x=e.slice(1),_;this.options.extensions.startInline.forEach(y=>{_=y.call({lexer:this},x),typeof _=="number"&&_>=0&&(d=Math.min(d,_))}),d<1/0&&d>=0&&(f=e.substring(0,d+1))}if(c=this.tokenizer.inlineText(f)){e=e.substring(c.raw.length),c.raw.slice(-1)!=="_"&&(o=c.raw.slice(-1)),l=!0;let d=n.at(-1);d?.type==="text"?(d.raw+=c.raw,d.text+=c.text):n.push(c);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)}},rt=class{options;parser;constructor(t){this.options=t||me}space(t){return""}code({text:t,lang:e,escaped:n}){let s=(e||"").match(U.notSpaceStart)?.[0],r=t.replace(U.endingNewline,"")+`
48
- `;return s?'<pre><code class="language-'+J(s)+'">'+(n?r:J(r,!0))+`</code></pre>
49
- `:"<pre><code>"+(n?r:J(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 o=t.items[l];s+=this.listitem(o)}let r=e?"ol":"ul",i=e&&n!==1?' start="'+n+'"':"";return"<"+r+i+`>
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 i=t.rows[r];n="";for(let l=0;l<i.length;l++)n+=this.tablecell(i[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>${J(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=Cn(t);if(r===null)return s;t=r;let i='<a href="'+t+'"';return e&&(i+=' title="'+J(e)+'"'),i+=">"+s+"</a>",i}image({href:t,title:e,text:n,tokens:s}){s&&(n=this.parser.parseInline(s,this.parser.textRenderer));let r=Cn(t);if(r===null)return J(n);t=r;let i=`<img src="${t}" alt="${J(n)}"`;return e&&(i+=` title="${J(e)}"`),i+=">",i}text(t){return"tokens"in t&&t.tokens?this.parser.parseInline(t.tokens):"escaped"in t&&t.escaped?t.text:J(t.text)}},Ft=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||me,this.options.renderer=this.options.renderer||new rt,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new Ft}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,o=this.options.extensions.renderers[l.type].call({parser:this},l);if(o!==!1||!["space","hr","heading","code","table","blockquote","list","html","def","paragraph","text"].includes(l.type)){n+=o||"";continue}}let i=r;switch(i.type){case"space":{n+=this.renderer.space(i);break}case"hr":{n+=this.renderer.hr(i);break}case"heading":{n+=this.renderer.heading(i);break}case"code":{n+=this.renderer.code(i);break}case"table":{n+=this.renderer.table(i);break}case"blockquote":{n+=this.renderer.blockquote(i);break}case"list":{n+=this.renderer.list(i);break}case"checkbox":{n+=this.renderer.checkbox(i);break}case"html":{n+=this.renderer.html(i);break}case"def":{n+=this.renderer.def(i);break}case"paragraph":{n+=this.renderer.paragraph(i);break}case"text":{n+=this.renderer.text(i);break}default:{let l='Token with "'+i.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 i=e[r];if(this.options.extensions?.renderers?.[i.type]){let o=this.options.extensions.renderers[i.type].call({parser:this},i);if(o!==!1||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(i.type)){s+=o||"";continue}}let l=i;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 o='Token with "'+l.type+'" type was not found.';if(this.options.silent)return console.error(o),"";throw new Error(o)}}}return s}},je=class{options;block;constructor(t){this.options=t||me}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}},Zs=class{defaults=Lt();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=V;Renderer=rt;TextRenderer=Ft;Lexer=X;Tokenizer=nt;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 i of r.header)n=n.concat(this.walkTokens(i.tokens,e));for(let i of r.rows)for(let l of i)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(i=>{let l=r[i].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 i=e.renderers[r.name];i?e.renderers[r.name]=function(...l){let o=r.renderer.apply(this,l);return o===!1&&(o=i.apply(this,l)),o}: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 i=e[r.level];i?i.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 rt(this.defaults);for(let i in n.renderer){if(!(i in r))throw new Error(`renderer '${i}' does not exist`);if(["options","parser"].includes(i))continue;let l=i,o=n.renderer[l],p=r[l];r[l]=(...c)=>{let f=o.apply(r,c);return f===!1&&(f=p.apply(r,c)),f||""}}s.renderer=r}if(n.tokenizer){let r=this.defaults.tokenizer||new nt(this.defaults);for(let i in n.tokenizer){if(!(i in r))throw new Error(`tokenizer '${i}' does not exist`);if(["options","rules","lexer"].includes(i))continue;let l=i,o=n.tokenizer[l],p=r[l];r[l]=(...c)=>{let f=o.apply(r,c);return f===!1&&(f=p.apply(r,c)),f}}s.tokenizer=r}if(n.hooks){let r=this.defaults.hooks||new je;for(let i in n.hooks){if(!(i in r))throw new Error(`hook '${i}' does not exist`);if(["options","block"].includes(i))continue;let l=i,o=n.hooks[l],p=r[l];je.passThroughHooks.has(i)?r[l]=c=>{if(this.defaults.async&&je.passThroughHooksRespectAsync.has(i))return(async()=>{let d=await o.call(r,c);return p.call(r,d)})();let f=o.call(r,c);return p.call(r,f)}:r[l]=(...c)=>{if(this.defaults.async)return(async()=>{let d=await o.apply(r,c);return d===!1&&(d=await p.apply(r,c)),d})();let f=o.apply(r,c);return f===!1&&(f=p.apply(r,c)),f}}s.hooks=r}if(n.walkTokens){let r=this.defaults.walkTokens,i=n.walkTokens;s.walkTokens=function(l){let o=[];return o.push(i.call(this,l)),r&&(o=o.concat(r.call(this,l))),o}}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},i=this.onError(!!r.silent,!!r.async);if(this.defaults.async===!0&&s.async===!1)return i(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 i(new Error("marked(): input parameter is undefined or null"));if(typeof e!="string")return i(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,o=await(r.hooks?await r.hooks.provideLexer(t):t?X.lex:X.lexInline)(l,r),p=r.hooks?await r.hooks.processAllTokens(o):o;r.walkTokens&&await Promise.all(this.walkTokens(p,r.walkTokens));let c=await(r.hooks?await r.hooks.provideParser(t):t?V.parse:V.parseInline)(p,r);return r.hooks?await r.hooks.postprocess(c):c})().catch(i);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 o=(r.hooks?r.hooks.provideParser(t):t?V.parse:V.parseInline)(l,r);return r.hooks&&(o=r.hooks.postprocess(o)),o}catch(l){return i(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>"+J(n.message+"",!0)+"</pre>";return e?Promise.resolve(s):s}if(e)return Promise.reject(n);throw n}}},de=new Zs;function A(t,e){return de.parse(t,e)}A.options=A.setOptions=function(t){return de.setOptions(t),A.defaults=de.defaults,Fn(A.defaults),A};A.getDefaults=Lt;A.defaults=me;A.use=function(...t){return de.use(...t),A.defaults=de.defaults,Fn(A.defaults),A};A.walkTokens=function(t,e){return de.walkTokens(t,e)};A.parseInline=de.parseInline;A.Parser=V;A.parser=V.parse;A.Renderer=rt;A.TextRenderer=Ft;A.Lexer=X;A.lexer=X.lex;A.Tokenizer=nt;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 Xs=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 ls.sanitize(e,{USE_PROFILES:{html:!0},ALLOWED_ATTR:["href","name","target","rel","title","class","id"]})},Vs=({agent:t,sourceRepo:e,loadAgent:n,onImport:s})=>{const{t:r}=st(),[i,l]=R.useState({status:"loading",detail:null,error:null});R.useEffect(()=>{let c=!1;return l({status:"loading",detail:null,error:null}),n(t.path).then(f=>{c||l({status:"loaded",detail:f,error:null})}).catch(f=>{c||l({status:"error",detail:null,error:f instanceof Error?f.message:"unknown"})}),()=>{c=!0}},[t.path,n]);const o=`https://github.com/${e}/blob/HEAD/${t.path}`,p=R.useMemo(()=>i.status!=="loaded"||!i.detail?null:Xs(i.detail.body),[i]);return m.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:[m.jsxs("header",{className:"flex min-w-0 flex-col gap-1",children:[m.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[t.emoji?m.jsx("span",{className:"shrink-0 text-lg leading-none",children:t.emoji}):null,m.jsx("h3",{className:"min-w-0 break-words text-base font-semibold text-pri",children:t.name})]}),m.jsx("p",{className:"text-xs text-ter",children:t.description})]}),m.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:[i.status==="loading"?m.jsx("p",{className:"text-ter",children:"…"}):null,i.status==="error"?m.jsxs("p",{className:"text-ter",children:[r("marketplace.loadFailed"),": ",i.error]}):null,i.status==="loaded"&&p?m.jsx("div",{className:"marketplace-prose",dangerouslySetInnerHTML:{__html:p}}):null]},t.path),m.jsxs("footer",{className:"flex items-center justify-between gap-2",children:[m.jsxs("a",{href:o,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"),m.jsx(wr,{size:11,"aria-hidden":!0})]}),m.jsx("button",{type:"button",disabled:i.status!=="loaded"||!i.detail,onClick:()=>{i.detail&&s({name:t.name,description:i.detail.body.trim()})},"data-testid":"marketplace-import-button",className:"icon-btn icon-btn--primary",children:r("marketplace.importButton")})]})]})},Dn="color-mix(in oklab, var(--accent) 8%, transparent)",Qs="color-mix(in oklab, var(--accent) 16%, transparent)",Ks="color-mix(in oklab, var(--accent) 55%, transparent)",Js=t=>({background:t?Qs:"transparent",boxShadow:t?`inset 2px 0 0 ${Ks}`:"none"}),vn=({label:t,count:e,active:n,onClick:s})=>m.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:Js(n),children:[m.jsx("span",{className:"truncate",children:t}),e!==void 0?m.jsx("span",{className:"tabular-nums text-xs text-sec",children:e}):null]}),ei=({categories:t,selected:e,onSelect:n,counts:s,showAll:r,onToggleShowAll:i,hiddenCount:l})=>{const{t:o,language:p}=st(),c=s?Object.values(s).reduce((f,d)=>f+d,0):void 0;return m.jsxs("nav",{className:"flex flex-col gap-0.5","data-testid":"marketplace-category-tree",children:[m.jsx("style",{children:`
67
- .marketplace-category-row[data-active='false']:hover {
68
- background: ${Dn};
69
- color: var(--text-primary);
70
- }
71
- .marketplace-toggle-row:hover {
72
- background: ${Dn};
73
- color: var(--text-primary);
74
- }
75
- `}),m.jsx(vn,{label:o("marketplace.allCategories"),count:c,active:e===null,onClick:()=>n(null)}),t.map(f=>m.jsx(vn,{label:Sr(f,p),count:s?.[f],active:e===f,onClick:()=>n(f)},f)),l>0||r?m.jsx("div",{className:"mt-2 pt-2",style:{borderTop:"1px solid var(--border-bright)"},children:m.jsx("button",{type:"button",onClick:i,"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?o("marketplace.showCoreOnly"):o("marketplace.showAllCategories",{count:l})})}):null]})},ti={status:"idle",data:null,error:null},ni=(t,e)=>{const[n,s]=R.useState(ti),r=R.useRef(new Map),i=R.useRef(new Map);R.useEffect(()=>{if(!e)return;const o=r.current.get(t);if(o){s({status:"loaded",data:o,error:null});return}s({status:"loading",data:null,error:null});let p=!1;return lr(t).then(c=>{p||(r.current.set(t,c),s({status:"loaded",data:c,error:null}))}).catch(c=>{p||s({status:"error",data:null,error:c instanceof Error?c.message:"unknown"})}),()=>{p=!0}},[e,t]);const l=R.useCallback(async o=>{const p=`${t}::${o}`,c=i.current.get(p);if(c)return c;const f=await or(t,o);return i.current.set(p,f),f},[t]);return{manifestState:n,loadAgent:l}},Mn="REPO",ri=(t,e)=>{const n=t("marketplace.sourceLabel",{repo:Mn}),[s,r=""]=n.split(Mn);return m.jsxs(m.Fragment,{children:[s,m.jsx("span",{className:"mono",children:e}),r]})},et=new Set(["engineering","design","product","testing","project-management","specialized","integrations"]),ai=({open:t,onClose:e,onImport:n,importedNames:s})=>{const{t:r,language:i}=st(),{manifestState:l,loadAgent:o}=ni(i,t),[p,c]=R.useState(null),[f,d]=R.useState(null),[x,_]=R.useState(""),y=R.useDeferredValue(x),[C,ge]=R.useState(!0);R.useEffect(()=>{d(null),c(null),_("")},[i]);const ke=T=>{T||e()},S=l.data,xe=R.useMemo(()=>S?S.agents.map(T=>({agent:T,searchText:`${T.name}
76
- ${T.description}`.toLowerCase()})):[],[S]),ee=R.useMemo(()=>{const T=new Map;if(!S)return T;for(const z of S.agents)T.set(z.path,z);return T},[S]),re=R.useMemo(()=>{if(!S)return{};const T={};for(const z of S.agents)T[z.category]=(T[z.category]??0)+1;return T},[S]),E=R.useMemo(()=>{if(!S)return[];const T=C?S.categories:S.categories.filter(z=>et.has(z));return Er(T,i)},[S,C,i]),oe=R.useMemo(()=>S?S.categories.length-E.length:0,[S,E]),ce=R.useMemo(()=>{const T=y.trim().toLowerCase(),z=[];for(const{agent:M,searchText:be}of xe){if(p){if(M.category!==p)continue}else if(!C&&!et.has(M.category))continue;(!T||be.includes(T))&&z.push(M)}return z},[xe,y,p,C]),Oe=R.useCallback(T=>{const z=ee.get(T);z&&d(z)},[ee]),Be=()=>{ge(T=>{const z=!T;return z||(p&&!et.has(p)&&c(null),f&&!et.has(f.category)&&d(null)),z})},lt=T=>{n(T),d(null),e()};return m.jsx(cr,{open:t,onOpenChange:ke,children:m.jsxs(ur,{children:[m.jsx(pr,{"data-testid":"marketplace-overlay",className:"app-overlay fixed inset-0 z-40"}),m.jsx("div",{className:"pointer-events-none fixed inset-0 z-50 grid place-items-center p-4",children:m.jsxs(hr,{"data-testid":"marketplace-content",className:"dialog-scale-pop elev-2 pointer-events-auto flex w-full flex-col rounded-lg border",style:{background:"var(--bg-elevated)",borderColor:"var(--border-bright)",width:"min(1280px, calc(100vw - 32px))",height:"min(820px, calc(100vh - 48px))"},children:[m.jsxs("header",{className:"flex shrink-0 items-center justify-between gap-4 border-b px-5 py-4",style:{borderColor:"var(--border)"},children:[m.jsxs("div",{className:"flex flex-col gap-0.5",children:[m.jsx(fr,{className:"text-lg font-semibold text-pri",children:r("marketplace.title")}),m.jsx(dr,{className:"text-xs text-ter",children:S?ri(r,S.source.repo):" "})]}),m.jsxs("div",{className:"flex items-center gap-2",children:[m.jsxs("div",{className:"relative flex w-72 items-center",children:[m.jsx(kr,{size:14,"aria-hidden":!0,className:"pointer-events-none absolute left-3 text-ter"}),m.jsx("input",{type:"search",value:x,onChange:T=>_(T.target.value),placeholder:r("marketplace.searchPlaceholder"),"data-testid":"marketplace-search",className:"input",style:{paddingLeft:"36px"}})]}),m.jsx(mr,{asChild:!0,children:m.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",children:m.jsx(gr,{size:14,"aria-hidden":!0})})})]})]}),m.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:[m.jsx("aside",{className:"scroll-y min-h-0 px-4 py-3",children:S?m.jsx(ei,{categories:E,selected:p,onSelect:T=>{c(T),d(null),_("")},counts:re,showAll:C,onToggleShowAll:Be,hiddenCount:oe}):null}),m.jsx("section",{className:"scroll-y min-h-0 px-4 py-3","data-testid":"marketplace-agent-grid",children:l.status==="loading"?m.jsx("div",{className:"flex h-full items-center justify-center text-sm text-ter",children:r("marketplace.loading")}):l.status==="error"?m.jsxs("div",{className:"flex h-full items-center justify-center text-sm text-ter",children:[r("marketplace.loadFailed"),": ",l.error]}):ce.length===0?m.jsx("div",{className:"flex h-full items-center justify-center text-sm text-ter",children:r("marketplace.empty")}):m.jsx("div",{className:"grid gap-3",style:{gridTemplateColumns:"repeat(auto-fill, minmax(220px, 1fr))"},children:ce.map(T=>m.jsx(Ir,{agent:T,selected:f?.path===T.path,imported:s?.has(T.name)??!1,onSelect:Oe},T.path))})},p??"__all__"),f&&S?m.jsx("section",{className:"min-h-0",children:m.jsx(Vs,{agent:f,sourceRepo:S.source.repo,loadAgent:o,onImport:lt})}):null]})]})})]})})};export{ai as MarketplaceDrawer};
@@ -1 +0,0 @@
1
- import{r as d,u as z,j as e,a as j,P as C,O as R,C as k,b as N,D as E,T as S,d as M,v as D,X as L,I as T,J as I,K as O}from"./index-CxNL0O-C.js";const A=t=>{switch(t){case"coder":return{badgeClass:"role-badge--coder",label:"Coder"};case"tester":return{badgeClass:"role-badge--tester",label:"Tester"};case"reviewer":return{badgeClass:"role-badge--reviewer",label:"Reviewer"};case"custom":return{badgeClass:"role-badge--custom",label:"Custom"};default:return{badgeClass:"role-badge--custom",label:String(t)}}},w="hive.worker-modal.width",c=480,W=.5,x=t=>{const s=typeof window<"u"?window.innerWidth-24:1200;return Math.min(Math.max(t,c),Math.max(c,s))},v=()=>typeof window>"u"?c:x(Math.round(window.innerWidth*W)),P=()=>{try{const t=localStorage.getItem(w);if(!t)return v();const s=Number.parseInt(t,10);return Number.isFinite(s)?x(s):v()}catch{return v()}},_=()=>{const[t,s]=d.useState(()=>P()),[u,i]=d.useState(!1);d.useEffect(()=>{try{localStorage.setItem(w,String(Math.round(t)))}catch{}},[t]),d.useEffect(()=>{const a=()=>{s(r=>x(r))};return window.addEventListener("resize",a),()=>window.removeEventListener("resize",a)},[]);const m=d.useCallback(a=>r=>{r.preventDefault();const h=r.clientX,l=t;i(!0);const b=document.body.style.cursor,n=document.body.style.userSelect;document.body.style.cursor="col-resize",document.body.style.userSelect="none";const p=f=>{const g=f.clientX-h,y=a==="left"?l-2*g:l+2*g;s(x(y))},o=()=>{i(!1),document.body.style.cursor=b,document.body.style.userSelect=n,document.removeEventListener("pointermove",p),document.removeEventListener("pointerup",o),document.removeEventListener("pointercancel",o)};document.addEventListener("pointermove",p),document.addEventListener("pointerup",o),document.addEventListener("pointercancel",o)},[t]);return{width:t,resizing:u,beginResize:m}},X=({onClose:t,onStart:s,runId:u,startError:i,starting:m,worker:a})=>{const{t:r}=z(),h=A(a.role),l=!!u,b=O(l),n=_(),p=o=>{o||t()};return e.jsx(j,{open:!0,onOpenChange:p,children:e.jsxs(C,{children:[e.jsx(R,{"data-testid":"worker-modal-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",children:e.jsxs(k,{"data-testid":"worker-modal","aria-label":r("worker.detail",{name:a.name}),className:"dialog-scale-pop pointer-events-auto relative flex h-screen max-h-screen max-w-full flex-col overflow-hidden",onEscapeKeyDown:o=>o.preventDefault(),style:{background:"var(--bg-1)",width:`${n.width}px`},children:[e.jsx("div",{role:"separator","aria-orientation":"vertical","aria-label":r("worker.widthResize"),"aria-valuemin":c,"aria-valuenow":Math.round(n.width),className:"modal-resize-handle modal-resize-handle--left",tabIndex:-1,"data-resizing":n.resizing||void 0,onPointerDown:n.beginResize("left")}),e.jsx("div",{role:"separator","aria-orientation":"vertical","aria-label":r("worker.widthResize"),"aria-valuemin":c,"aria-valuenow":Math.round(n.width),className:"modal-resize-handle modal-resize-handle--right",tabIndex:-1,"data-resizing":n.resizing||void 0,onPointerDown:n.beginResize("right")}),e.jsx(N,{className:"sr-only",children:a.name}),e.jsxs(E,{className:"sr-only",children:[h.label," agent — status ",b.label]}),i?e.jsxs("div",{role:"alert",className:"flex shrink-0 items-center gap-2 border-b px-4 py-2 text-xs",style:{background:"color-mix(in oklab, var(--status-red) 10%, transparent)",borderColor:"color-mix(in oklab, var(--status-red) 30%, var(--border))",color:"var(--status-red)"},children:[e.jsx(S,{size:12,"aria-hidden":!0}),e.jsx("span",{className:"break-words",children:i})]}):null,e.jsxs("div",{className:"relative flex min-h-0 flex-1 flex-col p-3","data-testid":"worker-modal-terminal-slot",children:[e.jsx(M,{label:r("common.close"),children:e.jsx(D,{asChild:!0,children:e.jsx("button",{type:"button","aria-label":"Close worker detail",className:"float-action absolute top-4 right-4 z-10",children:e.jsx(L,{size:14,"aria-hidden":!0})})})}),e.jsx("div",{className:"flex min-h-0 flex-1 rounded-lg border",style:{background:"var(--bg-crust)",borderColor:"var(--border)"},children:l?e.jsx("div",{id:`worker-pty-${u}`,className:"flex h-full w-full","data-pty-slot":"worker"}):e.jsxs("div",{className:"m-auto flex max-w-[400px] flex-col items-center gap-3 px-6 text-center",children:[e.jsx(T,{commandPresetId:a.commandPresetId,workerRole:a.role,size:48}),e.jsx("div",{className:"text-sm text-pri",children:a.name}),e.jsxs("div",{className:"text-xs text-ter",children:[a.status==="stopped"?r("worker.terminalStopped"):r("worker.terminalNotStarted"),a.pendingTaskCount>0?r("worker.pendingResume",{count:a.pendingTaskCount}):r("worker.startAgent")]}),e.jsxs("button",{type:"button",onClick:()=>s(a),disabled:m,className:"icon-btn icon-btn--primary","data-testid":"worker-start-empty",children:[e.jsx(I,{size:12,"aria-hidden":!0})," ",r(m?"common.starting":"common.start")]})]})})]})]})})]})})};export{X as WorkerModal};
@@ -1 +0,0 @@
1
- import{c as z,j as e,u as O,T as oe,R as ie,r as k,p as re,a as ce,P as de,O as ue,C as pe,b as he,D as xe,d as S,X as ke,E as me,e as te,f as se,g as X,h as fe,i as ge,k as je,l as be,m as we,n as ye,o as D}from"./index-CxNL0O-C.js";import{j as ve}from"./path-join-7MR1s7b1.js";const Ne=[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M16 8v5a3 3 0 0 0 6 0v-1a10 10 0 1 0-4 8",key:"7n84p3"}]],K=z("at-sign",Ne);const Te=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],_e=z("circle",Te);const Ce=[["path",{d:"m15 10 5 5-5 5",key:"qqa56n"}],["path",{d:"M4 4v7a4 4 0 0 0 4 4h12",key:"z08zvw"}]],Y=z("corner-down-right",Ce);const $e=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 12.5 8 15l2 2.5",key:"1tg20x"}],["path",{d:"m14 12.5 2 2.5-2 2.5",key:"yinavb"}]],Se=z("file-code",$e);const ze=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]],ae=z("file-text",ze);const Ee=[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]],De=z("save",Ee),U=t=>{const n=[];let l="",a=0;const c=()=>{l&&(n.push(l),l="")};let o=0;for(;o<t.length;){const i=t.slice(o),r=i.match(/^\*\*([^*]+?)\*\*/);if(r?.[1]){c(),n.push(e.jsx("strong",{children:U(r[1])},a++)),o+=r[0].length;continue}const s=i.match(/^`([^`]+?)`/);if(s?.[1]){c(),n.push(e.jsx("code",{className:"mono",children:s[1]},a++)),o+=s[0].length;continue}const u=i.match(/^\*([^*]+?)\*/);if(u?.[1]){c(),n.push(e.jsx("em",{children:U(u[1])},a++)),o+=u[0].length;continue}l+=t[o],o+=1}return c(),n},Ae=({content:t,hasConflict:n,onContentChange:l,onKeepLocal:a,onReload:c,onSave:o})=>{const{t:i}=O(),r=s=>{s.preventDefault(),o()};return e.jsxs("form",{onSubmit:r,className:"flex h-full flex-col gap-3",children:[e.jsxs("label",{className:"flex min-h-0 flex-1 flex-col gap-2 text-xs text-sec",children:[e.jsxs("span",{className:"flex items-center justify-between gap-2",children:[e.jsx("span",{className:"font-medium text-sec",children:i("tasks.raw.label")}),e.jsx("span",{className:"mono text-xs text-ter",children:i("tasks.raw.lineCount",{count:t.split(/\r?\n/).length})})]}),e.jsx("textarea",{"aria-label":i("tasks.raw.label"),value:t,onChange:s=>l(s.target.value),className:"mono min-h-[360px] flex-1 resize-none rounded border p-3 text-sm text-pri outline-none focus:border-[var(--accent)]",style:{background:"var(--bg-0)",borderColor:"var(--border)"}})]}),n?e.jsxs("div",{className:"flex items-start gap-2 rounded border p-3 text-xs",style:{borderColor:"var(--status-orange)",color:"var(--status-orange)"},children:[e.jsx(oe,{className:"mt-0.5 shrink-0",size:16}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx("p",{className:"font-medium",children:i("tasks.raw.conflictTitle")}),e.jsx("p",{className:"mt-1 text-ter",children:i("tasks.raw.conflictDescription")})]}),e.jsxs("div",{className:"flex shrink-0 gap-2",children:[e.jsxs("button",{type:"button",onClick:c,className:"icon-btn",children:[e.jsx(ie,{size:14}),i("tasks.raw.reload")]}),e.jsx("button",{type:"button",onClick:a,className:"icon-btn",children:i("tasks.raw.keepLocal")})]})]}):null,e.jsx("div",{className:"flex justify-end border-t pt-3",style:{borderColor:"var(--border)"},children:e.jsxs("button",{type:"submit",className:"icon-btn icon-btn--primary",children:[e.jsx(De,{size:14}),i("tasks.raw.save")]})})]})},B=["#a78bfa","#60a5fa","#5eead4","#86efac","#fde047","#fb923c","#f9a8d4","#fca5a5"],ne=t=>{let n=0;for(let l=0;l<t.length;l+=1)n=n*31+t.charCodeAt(l)>>>0;return B[n%B.length]??B[0]},Me=[{pattern:/^(done|completed?|finished?|ok|success|完成|已完成|搞定)$/i,tone:"green"},{pattern:/^(working|running|in[-_ ]?progress|dispatching|dispatched|进行中|派单中?|执行中|处理中)$/i,tone:"orange"},{pattern:/^(blocked|failed|error|errored|阻塞|失败|出错)$/i,tone:"red"},{pattern:/^(queued|waiting|pending|todo|open|idle|待办|等待中?|队列中|未开始)$/i,tone:"neutral"}],Z=new Set(["owner","assignee","负责","负责人","执行人"]),G=new Set(["status","状态"]),J=new Set(["报告","report","文件","file","path","日志","log","产物"]),Re=/^(.*?)\s*\(([^()]+)\)\s*$/,Le=/\s*[·,,;;]\s*/,Pe=/^([^::]+)[::]\s*(.+)$/,Ke=t=>{for(const{pattern:n,tone:l}of Me)if(n.test(t))return l;return"neutral"},Oe=t=>t.includes("/")||/^[A-Za-z]:\\/.test(t)||(t.match(/\\/g)?.length??0)>=2?!0:/^[A-Za-z0-9._-]+\.[A-Za-z0-9]+$/.test(t),Ie=t=>{const n=t.match(Re);if(!n)return{title:t,meta:[]};const[,l="",a=""]=n;if(!a.trim())return{title:t,meta:[]};const c=a.split(Le).filter(Boolean),o=[];for(const i of c){const r=i.match(Pe);if(!r){o.push({kind:"note",value:i.trim()});continue}const s=(r[1]??"").trim(),u=(r[2]??"").trim(),h=s.toLowerCase();Z.has(h)||Z.has(s)?o.push({kind:"owner",value:u}):G.has(h)||G.has(s)?o.push({kind:"status",value:u,tone:Ke(u)}):J.has(h)||J.has(s)||Oe(u)?o.push({kind:"path",label:s,value:u}):o.push({kind:"note",value:`${s}: ${u}`})}return{title:l.trim(),meta:o}},Q=3,He=({item:t,handlers:n})=>{if(t.kind==="status")return e.jsx("span",{className:`pill pill--${t.tone}`,"data-testid":"task-meta-status",children:t.value});if(t.kind==="owner"){const a={"--owner-tone":ne(t.value)};return n.onSelectOwner?e.jsxs("button",{type:"button",className:"task-owner task-owner--clickable","data-testid":"task-meta-owner","data-owner":t.value,onClick:c=>{c.stopPropagation(),n.onSelectOwner?.(t.value)},style:a,children:[e.jsx(K,{size:10,"aria-hidden":!0}),t.value]}):e.jsxs("span",{className:"task-owner","data-testid":"task-meta-owner","data-owner":t.value,style:a,children:[e.jsx(K,{size:10,"aria-hidden":!0}),t.value]})}return t.kind==="path"?e.jsxs("span",{className:"pill pill--neutral mono inline-flex items-center gap-1","data-testid":"task-meta-path",title:`${t.label}: ${t.value}`,children:[e.jsx(ae,{size:10,"aria-hidden":!0}),t.value]}):e.jsx("span",{className:"text-xs text-ter","data-testid":"task-meta-note",children:t.value})},F=({initial:t,onSubmit:n,onCancel:l,placeholder:a})=>{const[c,o]=k.useState(t),i=()=>{const s=c.trim();if(!s){l();return}n(s)},r=s=>{s.key==="Enter"?(s.preventDefault(),i()):s.key==="Escape"&&(s.preventDefault(),l())};return e.jsx("input",{type:"text",autoFocus:!0,value:c,placeholder:a,onChange:s=>o(s.target.value),onKeyDown:r,onBlur:i,"data-testid":"task-inline-input",className:"task-row__input"})},q=({task:t,handlers:n,depth:l})=>{const{t:a}=O(),c=t.checked?fe:_e,{title:o,meta:i}=Ie(t.text),[r,s]=k.useState(!1),[u,h]=k.useState(!1),[b,A]=k.useState(!1),[_,C]=k.useState(!1),g=k.useRef(null);k.useEffect(()=>()=>{g.current&&clearTimeout(g.current)},[]);const{onToggle:f,onUpdateText:x,onDelete:y,onAppendSubtask:M,onCopyLine:I,onSelectOwner:v,writeDisabled:j=!1}=n,R=!!x&&!j,$=!!y&&!j,N=!!M&&!j,L=!!I,E=!r&&!u&&(R||$||N||L),w=t.children.length,T=ge(t),P=l+1>=Q,H=w>0,V=b?a("tasks.aria.expandSubtasks",{count:w}):a("tasks.aria.collapseSubtasks",{count:w}),p=v?{onSelectOwner:v}:{};return e.jsxs("li",{className:"task-node","data-testid":`task-line-${t.line}`,children:[e.jsxs("div",{className:"task-row group",children:[l>=Q?e.jsx("span",{"aria-hidden":!0,className:"task-row__deep-marker",children:"▸"}):null,e.jsxs("label",{className:"task-row__checkbox-cell",children:[e.jsx("input",{type:"checkbox",checked:t.checked,disabled:j,onChange:()=>{j||f(t.line)},className:"sr-only","data-testid":`task-checkbox-${t.line}`,"aria-label":t.text||`task-line-${t.line}`}),e.jsx("span",{className:`task-row__indicator ${t.checked?"task-status-done":"task-status-open"}`,"aria-hidden":!0,children:e.jsx(c,{size:14})})]}),e.jsx("span",{className:"min-w-0 flex-1",children:r?e.jsx(F,{initial:t.text,placeholder:a("tasks.placeholder.editTask"),onSubmit:d=>{s(!1),x?.(t.line,d)},onCancel:()=>s(!1)}):e.jsxs(e.Fragment,{children:[e.jsxs("span",{className:"flex min-w-0 items-start gap-2",children:[e.jsx("span",{className:`task-row__title min-w-0 flex-1 ${t.checked?"text-ter line-through":"text-pri"}`,children:U(o)}),H?e.jsx("button",{type:"button",className:"task-row__collapse",onClick:d=>{d.stopPropagation(),A(m=>!m)},"data-testid":`task-collapse-${t.line}`,"aria-expanded":!b,"aria-label":V,children:b?e.jsx(se,{size:12,"aria-hidden":!0}):e.jsx(te,{size:12,"aria-hidden":!0})}):null,T?e.jsxs("span",{className:"task-child-count mono","data-testid":`task-progress-${t.line}`,title:a("tasks.progress.subtaskTitle",{done:T.done,total:T.total}),children:[T.done,"/",T.total]}):null]}),i.length>0||t.mentions.length>0?e.jsxs("span",{className:"mt-1.5 flex flex-wrap items-center gap-1.5",children:[i.map(d=>e.jsx(He,{item:d,handlers:p},`${t.line}-meta-${d.kind}-${"label"in d?d.label:""}-${d.value}`)),t.mentions.map(d=>{const m=d.replace(/^@/,""),W={"--owner-tone":ne(m)};return v?e.jsxs("button",{type:"button",className:"task-owner task-owner--clickable","data-testid":`task-mention-${m}`,"data-owner":m,onClick:le=>{le.stopPropagation(),v(m)},style:W,children:[e.jsx(K,{size:10,"aria-hidden":!0}),m]},`${t.line}-mention-${d}`):e.jsxs("span",{className:"task-owner","data-testid":`task-mention-${m}`,"data-owner":m,style:W,children:[e.jsx(K,{size:10,"aria-hidden":!0}),m]},`${t.line}-mention-${d}`)})]}):null]})}),E?e.jsxs("div",{className:"task-row__actions",children:[L?e.jsx(S,{label:a(_?"tasks.action.copied":"tasks.action.copyLine"),children:e.jsx("button",{type:"button",className:"task-row__action",onClick:()=>{I?.(t.line),C(!0),g.current&&clearTimeout(g.current),g.current=setTimeout(()=>{C(!1),g.current=null},1500)},"data-testid":`task-copy-${t.line}`,"aria-label":a(_?"tasks.aria.copiedTaskLine":"tasks.aria.copyTaskLine"),children:_?e.jsx(je,{size:12}):e.jsx(be,{size:12})})}):null,R?e.jsx(S,{label:a("tasks.action.edit"),children:e.jsx("button",{type:"button",className:"task-row__action",onClick:()=>s(!0),"data-testid":`task-edit-${t.line}`,"aria-label":a("tasks.aria.editTask"),children:e.jsx(we,{size:12})})}):null,N?e.jsx(S,{label:a("tasks.action.addSubtask"),children:e.jsx("button",{type:"button",className:"task-row__action",onClick:()=>{A(!1),h(!0)},"data-testid":`task-add-subtask-${t.line}`,"aria-label":a("tasks.aria.addSubtask"),children:e.jsx(Y,{size:12})})}):null,$?e.jsx(S,{label:a("tasks.action.delete"),children:e.jsx("button",{type:"button",className:"task-row__action task-row__action--danger",onClick:()=>y?.(t.line),"data-testid":`task-delete-${t.line}`,"aria-label":a("tasks.aria.deleteTask"),children:e.jsx(ye,{size:12})})}):null]}):null]}),w>0&&!b||u?e.jsxs("ul",{className:`task-children${P?" task-children--deep":""}`,"data-testid":`task-children-${t.line}`,children:[b?null:t.children.map(d=>e.jsx(q,{depth:l+1,handlers:n,task:d},d.line)),u?e.jsx("li",{className:"task-node",children:e.jsxs("div",{className:"task-row task-row--child-input",children:[e.jsx("span",{"aria-hidden":!0,className:"task-row__indicator task-status-open",children:e.jsx(Y,{size:12})}),e.jsx(F,{initial:"",placeholder:a("tasks.placeholder.newSubtask"),onSubmit:d=>{h(!1),M?.(t.line,d)},onCancel:()=>h(!1)})]})}):null]}):null]})},ee=({onSubmit:t,disabled:n=!1,variant:l="ghost"})=>{const{t:a}=O(),[c,o]=k.useState(!1),[i,r]=k.useState(""),s=()=>{const h=i.trim();if(!h){o(!1);return}t(h),r("")},u=h=>{h.key==="Enter"?(h.preventDefault(),s()):h.key==="Escape"&&(h.preventDefault(),r(""),o(!1))};return c?e.jsxs("div",{className:"task-add-input",children:[e.jsx("span",{"aria-hidden":!0,className:"task-add-input__icon",children:e.jsx(X,{size:12})}),e.jsx("input",{type:"text",autoFocus:!0,value:i,placeholder:a("tasks.placeholder.newTask"),onChange:h=>r(h.target.value),onKeyDown:u,onBlur:s,"data-testid":"task-add-input",className:"task-add-input__field"})]}):e.jsxs("button",{type:"button",onClick:()=>o(!0),disabled:n,"data-testid":"task-add-toggle",className:`task-add-toggle${l==="primary"?" task-add-toggle--primary":""}`,children:[e.jsx("span",{"aria-hidden":!0,className:"task-add-toggle__icon",children:e.jsx(X,{size:12})}),e.jsx("span",{children:a("tasks.button.addTask")})]})},Ve=t=>{let n=0,l=0;const a=[],c=[],o=r=>{n+=1,r.checked&&(l+=1);for(const s of r.children)o(s)};for(const r of t)r.checked?c.push(r):a.push(r),o(r);const i=n===0?0:Math.round(l/n*100);return{completedTasks:l,completionPercent:i,doneRoots:c,openRoots:a,totalTasks:n}},Be=({content:t,hasConflict:n,onClose:l,onContentChange:a,onKeepLocal:c,onReload:o,onSave:i,onToggleTaskLine:r,onAppendTask:s,onAppendSubtask:u,onUpdateTaskText:h,onDeleteTask:b,open:A,workspacePath:_,knownWorkerNames:C,onSelectOwner:g,connectionStale:f=!1})=>{const{t:x}=O(),[y,M]=k.useState(!1),v={onToggle:r,onCopyLine:p=>{const d=t.split(/\r?\n/)[p];typeof d=="string"&&navigator.clipboard?.writeText(d).catch(m=>{console.error("[hive] swallowed:tasks.copyLine",m)})},...h&&!f?{onUpdateText:h}:{},...b&&!f?{onDelete:b}:{},...u&&!f?{onAppendSubtask:u}:{},...g?{onSelectOwner:g}:{},...f?{writeDisabled:!0}:{}},j=k.useMemo(()=>re(t,C?{knownWorkerNames:C}:{}),[t,C]),{completedTasks:R,completionPercent:$,doneRoots:N,openRoots:L,totalTasks:E}=k.useMemo(()=>Ve(j),[j]),[w,T]=k.useState(N.length<=3),P=_?ve(_,".hive","tasks.md"):".hive/tasks.md",H=p=>{if(p.key!=="Escape")return;const d=p.target?.tagName;d==="INPUT"||d==="TEXTAREA"||(p.preventDefault(),l())},V=`dialog-scale-pop elev-2 task-dialog__content pointer-events-auto flex flex-col rounded-lg border${f?" task-dialog--stale":""}`;return e.jsx(ce,{open:A,onOpenChange:p=>!p&&l(),children:e.jsxs(de,{children:[e.jsx(ue,{"data-testid":"task-graph-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(pe,{"aria-label":x("tasks.aria.drawer"),"data-testid":"task-graph-drawer","data-connection-stale":f||void 0,onEscapeKeyDown:p=>p.preventDefault(),onKeyDown:H,className:V,style:{background:"var(--bg-1)",borderColor:"var(--border-bright)",height:"min(780px, calc(100vh - 48px))",width:"min(1040px, calc(100vw - 48px))"},children:[e.jsxs("header",{className:"task-drawer__header",children:[e.jsxs("div",{className:"flex min-w-0 flex-1 flex-col gap-0.5",children:[e.jsx(he,{className:"font-semibold text-pri leading-tight",children:x("tasks.title.todo")}),e.jsx(xe,{className:"mono truncate text-xs text-ter",title:P,children:P})]}),E>0?e.jsxs("span",{className:"text-xs text-ter tabular-nums","data-testid":"task-graph-summary",children:[e.jsxs("span",{"data-testid":"task-progress-text",children:[R," / ",E]})," ","· ",$,"%"]}):null,e.jsx(S,{label:x(y?"tasks.action.backToList":"tasks.action.viewSource"),children:e.jsx("button",{type:"button",onClick:()=>M(p=>!p),"data-testid":"task-raw-toggle",className:"icon-btn","aria-label":x(y?"tasks.action.backToList":"tasks.action.viewSource"),children:e.jsx(Se,{size:14})})}),e.jsx(S,{label:x("tasks.action.closeTodo"),children:e.jsx("button",{type:"button",onClick:l,"aria-label":x("tasks.action.closeTodo"),className:"icon-btn",children:e.jsx(ke,{size:14})})})]}),!y&&E>0?e.jsx("div",{"aria-label":x("tasks.aria.progress"),"aria-valuemax":100,"aria-valuemin":0,"aria-valuenow":$,className:"task-progress-thin task-drawer__progress","data-testid":"task-progress-bar",role:"progressbar",children:e.jsx("span",{style:{width:`${$}%`}})}):null,e.jsx("div",{className:"flex-1 scroll-y px-3 py-3 text-sm",children:y?e.jsx(Ae,{content:t,hasConflict:n,onContentChange:a,onKeepLocal:c,onReload:o,onSave:i}):j.length===0?e.jsx("div",{className:"flex h-full items-center justify-center",children:e.jsx(me,{icon:e.jsx(ae,{size:20}),title:x("tasks.empty.title"),description:x("tasks.empty.description"),...s?{action:e.jsx(ee,{variant:"primary",disabled:f,onSubmit:s})}:{}})}):e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsxs("ul",{className:"task-list","data-testid":"task-graph-list",children:[L.map(p=>e.jsx(q,{depth:0,handlers:v,task:p},p.line)),s?e.jsx("li",{children:e.jsx(ee,{disabled:f,onSubmit:s})}):null]}),N.length>0?e.jsxs("div",{className:"mt-1",children:[e.jsxs("button",{type:"button",onClick:()=>T(p=>!p),"aria-expanded":w,"data-testid":"task-completed-toggle",className:"task-completed-toggle",children:[w?e.jsx(te,{size:12,"aria-hidden":!0}):e.jsx(se,{size:12,"aria-hidden":!0}),e.jsx("span",{children:x("tasks.completed.toggle",{count:N.length})})]}),w?e.jsx("ul",{className:"task-list","data-testid":"task-completed-list",children:N.map(p=>e.jsx(q,{depth:0,handlers:v,task:p},p.line))}):null]}):null]})})]})})]})})},We=({tasksFile:t,workspacePath:n,open:l,onClose:a,workers:c,onSelectOwner:o,connectionStale:i})=>{const r=k.useMemo(()=>c?.length?c.map(s=>s.name):void 0,[c]);return e.jsx(Be,{content:t.content,hasConflict:t.hasConflict,onClose:a,onContentChange:t.onChange,onKeepLocal:t.onKeepLocal,onReload:t.onReload,onSave:t.onSave,onToggleTaskLine:s=>{t.toggleTaskAtLine(s).catch(D("tasks.toggleTaskAtLine"))},onAppendTask:s=>{t.appendTask(s).catch(D("tasks.appendTask"))},onAppendSubtask:(s,u)=>{t.appendSubtask(s,u).catch(D("tasks.appendSubtask"))},onUpdateTaskText:(s,u)=>{t.updateTaskText(s,u).catch(D("tasks.updateTaskText"))},onDeleteTask:s=>{t.deleteTask(s).catch(D("tasks.deleteTask"))},open:l,workspacePath:n,...r?{knownWorkerNames:r}:{},...o?{onSelectOwner:o}:{},...i!==void 0?{connectionStale:i}:{}})};export{We as WorkspaceTaskDrawer};