hivehq 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (883) hide show
  1. package/CHANGELOG.md +592 -0
  2. package/LICENSE +208 -0
  3. package/LICENSE.BSL +101 -0
  4. package/NOTICE +15 -0
  5. package/README.en.md +451 -0
  6. package/README.md +329 -0
  7. package/SECURITY.md +59 -0
  8. package/TRADEMARK.md +41 -0
  9. package/assets/hive-hero.png +0 -0
  10. package/assets/hive-team-view.png +0 -0
  11. package/assets/logo.png +0 -0
  12. package/assets/qq-group.jpg +0 -0
  13. package/dist/bin/team +7 -0
  14. package/dist/bin/team.cmd +3 -0
  15. package/dist/src/cli/hive-remote.d.ts +46 -0
  16. package/dist/src/cli/hive-remote.js +257 -0
  17. package/dist/src/cli/hive-update.d.ts +75 -0
  18. package/dist/src/cli/hive-update.js +215 -0
  19. package/dist/src/cli/hive.d.ts +78 -0
  20. package/dist/src/cli/hive.js +336 -0
  21. package/dist/src/cli/team.d.ts +38 -0
  22. package/dist/src/cli/team.js +762 -0
  23. package/dist/src/server/agent-command-resolver.d.ts +17 -0
  24. package/dist/src/server/agent-command-resolver.js +106 -0
  25. package/dist/src/server/agent-exit-classification.d.ts +6 -0
  26. package/dist/src/server/agent-exit-classification.js +6 -0
  27. package/dist/src/server/agent-launch-cache.d.ts +20 -0
  28. package/dist/src/server/agent-launch-cache.js +75 -0
  29. package/dist/src/server/agent-launch-resolver.d.ts +4 -0
  30. package/dist/src/server/agent-launch-resolver.js +38 -0
  31. package/dist/src/server/agent-manager-support.d.ts +36 -0
  32. package/dist/src/server/agent-manager-support.js +318 -0
  33. package/dist/src/server/agent-manager.d.ts +54 -0
  34. package/dist/src/server/agent-manager.js +104 -0
  35. package/dist/src/server/agent-run-bootstrap.d.ts +83 -0
  36. package/dist/src/server/agent-run-bootstrap.js +101 -0
  37. package/dist/src/server/agent-run-exit-handler.d.ts +8 -0
  38. package/dist/src/server/agent-run-exit-handler.js +32 -0
  39. package/dist/src/server/agent-run-start-context.d.ts +24 -0
  40. package/dist/src/server/agent-run-start-context.js +1 -0
  41. package/dist/src/server/agent-run-starter.d.ts +30 -0
  42. package/dist/src/server/agent-run-starter.js +155 -0
  43. package/dist/src/server/agent-run-store.d.ts +51 -0
  44. package/dist/src/server/agent-run-store.js +137 -0
  45. package/dist/src/server/agent-run-sync.d.ts +10 -0
  46. package/dist/src/server/agent-run-sync.js +32 -0
  47. package/dist/src/server/agent-runtime-active-run.d.ts +3 -0
  48. package/dist/src/server/agent-runtime-active-run.js +10 -0
  49. package/dist/src/server/agent-runtime-close.d.ts +5 -0
  50. package/dist/src/server/agent-runtime-close.js +36 -0
  51. package/dist/src/server/agent-runtime-contract.d.ts +48 -0
  52. package/dist/src/server/agent-runtime-contract.js +1 -0
  53. package/dist/src/server/agent-runtime-flow-adapter.d.ts +10 -0
  54. package/dist/src/server/agent-runtime-flow-adapter.js +14 -0
  55. package/dist/src/server/agent-runtime-list-runs.d.ts +3 -0
  56. package/dist/src/server/agent-runtime-list-runs.js +18 -0
  57. package/dist/src/server/agent-runtime-ports.d.ts +22 -0
  58. package/dist/src/server/agent-runtime-ports.js +1 -0
  59. package/dist/src/server/agent-runtime-stop-run.d.ts +4 -0
  60. package/dist/src/server/agent-runtime-stop-run.js +19 -0
  61. package/dist/src/server/agent-runtime-types.d.ts +5 -0
  62. package/dist/src/server/agent-runtime-types.js +1 -0
  63. package/dist/src/server/agent-runtime.d.ts +10 -0
  64. package/dist/src/server/agent-runtime.js +143 -0
  65. package/dist/src/server/agent-session-store.d.ts +7 -0
  66. package/dist/src/server/agent-session-store.js +45 -0
  67. package/dist/src/server/agent-startup-instructions.d.ts +20 -0
  68. package/dist/src/server/agent-startup-instructions.js +36 -0
  69. package/dist/src/server/agent-stdin-dispatcher.d.ts +52 -0
  70. package/dist/src/server/agent-stdin-dispatcher.js +224 -0
  71. package/dist/src/server/agent-tokens.d.ts +15 -0
  72. package/dist/src/server/agent-tokens.js +25 -0
  73. package/dist/src/server/app-state-store.d.ts +10 -0
  74. package/dist/src/server/app-state-store.js +12 -0
  75. package/dist/src/server/app.d.ts +20 -0
  76. package/dist/src/server/app.js +211 -0
  77. package/dist/src/server/claude-command-defaults.d.ts +1 -0
  78. package/dist/src/server/claude-command-defaults.js +5 -0
  79. package/dist/src/server/claude-session-coordinator.d.ts +10 -0
  80. package/dist/src/server/claude-session-coordinator.js +68 -0
  81. package/dist/src/server/claude-session-support.d.ts +1 -0
  82. package/dist/src/server/claude-session-support.js +1 -0
  83. package/dist/src/server/command-preset-defaults.d.ts +11 -0
  84. package/dist/src/server/command-preset-defaults.js +63 -0
  85. package/dist/src/server/command-preset-store.d.ts +49 -0
  86. package/dist/src/server/command-preset-store.js +83 -0
  87. package/dist/src/server/cron-util.d.ts +7 -0
  88. package/dist/src/server/cron-util.js +19 -0
  89. package/dist/src/server/dispatch-ledger-serializer.d.ts +15 -0
  90. package/dist/src/server/dispatch-ledger-serializer.js +14 -0
  91. package/dist/src/server/dispatch-ledger-store.d.ts +108 -0
  92. package/dist/src/server/dispatch-ledger-store.js +241 -0
  93. package/dist/src/server/env-sync-message.d.ts +9 -0
  94. package/dist/src/server/env-sync-message.js +29 -0
  95. package/dist/src/server/feature-flags.d.ts +42 -0
  96. package/dist/src/server/feature-flags.js +24 -0
  97. package/dist/src/server/fs-browse.d.ts +40 -0
  98. package/dist/src/server/fs-browse.js +306 -0
  99. package/dist/src/server/fs-pick-folder.d.ts +25 -0
  100. package/dist/src/server/fs-pick-folder.js +115 -0
  101. package/dist/src/server/fs-sandbox.d.ts +15 -0
  102. package/dist/src/server/fs-sandbox.js +56 -0
  103. package/dist/src/server/hive-team-guidance.d.ts +39 -0
  104. package/dist/src/server/hive-team-guidance.js +295 -0
  105. package/dist/src/server/http-errors.d.ts +22 -0
  106. package/dist/src/server/http-errors.js +44 -0
  107. package/dist/src/server/live-run-registry.d.ts +22 -0
  108. package/dist/src/server/live-run-registry.js +52 -0
  109. package/dist/src/server/local-request-guard.d.ts +3 -0
  110. package/dist/src/server/local-request-guard.js +41 -0
  111. package/dist/src/server/machine-name.d.ts +2 -0
  112. package/dist/src/server/machine-name.js +13 -0
  113. package/dist/src/server/marketplace-store.d.ts +38 -0
  114. package/dist/src/server/marketplace-store.js +85 -0
  115. package/dist/src/server/message-log-store.d.ts +51 -0
  116. package/dist/src/server/message-log-store.js +90 -0
  117. package/dist/src/server/open-target-commands.d.ts +54 -0
  118. package/dist/src/server/open-target-commands.js +204 -0
  119. package/dist/src/server/orchestrator-autostart.d.ts +42 -0
  120. package/dist/src/server/orchestrator-autostart.js +114 -0
  121. package/dist/src/server/orchestrator-launch.d.ts +24 -0
  122. package/dist/src/server/orchestrator-launch.js +71 -0
  123. package/dist/src/server/package-version.d.ts +17 -0
  124. package/dist/src/server/package-version.js +32 -0
  125. package/dist/src/server/path-canonicalization.d.ts +3 -0
  126. package/dist/src/server/path-canonicalization.js +29 -0
  127. package/dist/src/server/platform-path.d.ts +4 -0
  128. package/dist/src/server/platform-path.js +26 -0
  129. package/dist/src/server/post-start-input-writer.d.ts +6 -0
  130. package/dist/src/server/post-start-input-writer.js +242 -0
  131. package/dist/src/server/preset-launch-support.d.ts +6 -0
  132. package/dist/src/server/preset-launch-support.js +98 -0
  133. package/dist/src/server/pty-output-bus.d.ts +8 -0
  134. package/dist/src/server/pty-output-bus.js +32 -0
  135. package/dist/src/server/recovery-summary.d.ts +15 -0
  136. package/dist/src/server/recovery-summary.js +92 -0
  137. package/dist/src/server/remote-audit-store.d.ts +51 -0
  138. package/dist/src/server/remote-audit-store.js +108 -0
  139. package/dist/src/server/remote-config-keys.d.ts +17 -0
  140. package/dist/src/server/remote-config-keys.js +27 -0
  141. package/dist/src/server/remote-control-constants.d.ts +30 -0
  142. package/dist/src/server/remote-control-constants.js +29 -0
  143. package/dist/src/server/remote-device-session.d.ts +40 -0
  144. package/dist/src/server/remote-device-session.js +22 -0
  145. package/dist/src/server/remote-device-store.d.ts +36 -0
  146. package/dist/src/server/remote-device-store.js +67 -0
  147. package/dist/src/server/remote-frame-bridge.d.ts +102 -0
  148. package/dist/src/server/remote-frame-bridge.js +791 -0
  149. package/dist/src/server/remote-gateway-client.d.ts +14 -0
  150. package/dist/src/server/remote-gateway-client.js +36 -0
  151. package/dist/src/server/remote-loopback-auth.d.ts +6 -0
  152. package/dist/src/server/remote-loopback-auth.js +112 -0
  153. package/dist/src/server/remote-pairing-tunnel.d.ts +59 -0
  154. package/dist/src/server/remote-pairing-tunnel.js +146 -0
  155. package/dist/src/server/remote-pairing.d.ts +58 -0
  156. package/dist/src/server/remote-pairing.js +237 -0
  157. package/dist/src/server/remote-tunnel.d.ts +113 -0
  158. package/dist/src/server/remote-tunnel.js +514 -0
  159. package/dist/src/server/report-outbox-store.d.ts +36 -0
  160. package/dist/src/server/report-outbox-store.js +33 -0
  161. package/dist/src/server/restart-policy-support.d.ts +30 -0
  162. package/dist/src/server/restart-policy-support.js +21 -0
  163. package/dist/src/server/restart-policy.d.ts +18 -0
  164. package/dist/src/server/restart-policy.js +77 -0
  165. package/dist/src/server/role-template-store.d.ts +45 -0
  166. package/dist/src/server/role-template-store.js +76 -0
  167. package/dist/src/server/role-templates.d.ts +7 -0
  168. package/dist/src/server/role-templates.js +54 -0
  169. package/dist/src/server/route-helpers.d.ts +9 -0
  170. package/dist/src/server/route-helpers.js +61 -0
  171. package/dist/src/server/route-types.d.ts +121 -0
  172. package/dist/src/server/route-types.js +1 -0
  173. package/dist/src/server/routes-dispatches.d.ts +2 -0
  174. package/dist/src/server/routes-dispatches.js +54 -0
  175. package/dist/src/server/routes-fs.d.ts +2 -0
  176. package/dist/src/server/routes-fs.js +24 -0
  177. package/dist/src/server/routes-marketplace.d.ts +2 -0
  178. package/dist/src/server/routes-marketplace.js +54 -0
  179. package/dist/src/server/routes-open-workspace.d.ts +2 -0
  180. package/dist/src/server/routes-open-workspace.js +47 -0
  181. package/dist/src/server/routes-remote.d.ts +2 -0
  182. package/dist/src/server/routes-remote.js +166 -0
  183. package/dist/src/server/routes-runtime.d.ts +2 -0
  184. package/dist/src/server/routes-runtime.js +79 -0
  185. package/dist/src/server/routes-settings.d.ts +2 -0
  186. package/dist/src/server/routes-settings.js +213 -0
  187. package/dist/src/server/routes-tasks.d.ts +2 -0
  188. package/dist/src/server/routes-tasks.js +47 -0
  189. package/dist/src/server/routes-team-memory.d.ts +2 -0
  190. package/dist/src/server/routes-team-memory.js +154 -0
  191. package/dist/src/server/routes-team-recall.d.ts +2 -0
  192. package/dist/src/server/routes-team-recall.js +119 -0
  193. package/dist/src/server/routes-team.d.ts +2 -0
  194. package/dist/src/server/routes-team.js +351 -0
  195. package/dist/src/server/routes-ui.d.ts +2 -0
  196. package/dist/src/server/routes-ui.js +17 -0
  197. package/dist/src/server/routes-version.d.ts +2 -0
  198. package/dist/src/server/routes-version.js +6 -0
  199. package/dist/src/server/routes-workflow-schedules.d.ts +2 -0
  200. package/dist/src/server/routes-workflow-schedules.js +58 -0
  201. package/dist/src/server/routes-workflows.d.ts +2 -0
  202. package/dist/src/server/routes-workflows.js +83 -0
  203. package/dist/src/server/routes-workspace-memory-dreams.d.ts +2 -0
  204. package/dist/src/server/routes-workspace-memory-dreams.js +105 -0
  205. package/dist/src/server/routes-workspace-memory.d.ts +2 -0
  206. package/dist/src/server/routes-workspace-memory.js +215 -0
  207. package/dist/src/server/routes-workspaces.d.ts +2 -0
  208. package/dist/src/server/routes-workspaces.js +177 -0
  209. package/dist/src/server/routes.d.ts +6 -0
  210. package/dist/src/server/routes.js +55 -0
  211. package/dist/src/server/runtime-database.d.ts +3 -0
  212. package/dist/src/server/runtime-database.js +41 -0
  213. package/dist/src/server/runtime-message-builders.d.ts +7 -0
  214. package/dist/src/server/runtime-message-builders.js +60 -0
  215. package/dist/src/server/runtime-restart-policy.d.ts +18 -0
  216. package/dist/src/server/runtime-restart-policy.js +12 -0
  217. package/dist/src/server/runtime-store-contract.d.ts +162 -0
  218. package/dist/src/server/runtime-store-contract.js +1 -0
  219. package/dist/src/server/runtime-store-dream.d.ts +23 -0
  220. package/dist/src/server/runtime-store-dream.js +16 -0
  221. package/dist/src/server/runtime-store-helpers.d.ts +115 -0
  222. package/dist/src/server/runtime-store-helpers.js +411 -0
  223. package/dist/src/server/runtime-store-memory.d.ts +33 -0
  224. package/dist/src/server/runtime-store-memory.js +37 -0
  225. package/dist/src/server/runtime-store-remote.d.ts +5 -0
  226. package/dist/src/server/runtime-store-remote.js +45 -0
  227. package/dist/src/server/runtime-store-workflows.d.ts +6 -0
  228. package/dist/src/server/runtime-store-workflows.js +108 -0
  229. package/dist/src/server/runtime-store.d.ts +4 -0
  230. package/dist/src/server/runtime-store.js +165 -0
  231. package/dist/src/server/session-capture-claude.d.ts +34 -0
  232. package/dist/src/server/session-capture-claude.js +103 -0
  233. package/dist/src/server/session-capture-codex.d.ts +6 -0
  234. package/dist/src/server/session-capture-codex.js +108 -0
  235. package/dist/src/server/session-capture-gemini.d.ts +5 -0
  236. package/dist/src/server/session-capture-gemini.js +81 -0
  237. package/dist/src/server/session-capture-opencode.d.ts +22 -0
  238. package/dist/src/server/session-capture-opencode.js +75 -0
  239. package/dist/src/server/session-capture.d.ts +77 -0
  240. package/dist/src/server/session-capture.js +123 -0
  241. package/dist/src/server/settings-store.d.ts +22 -0
  242. package/dist/src/server/settings-store.js +22 -0
  243. package/dist/src/server/sqlite-schema-v10.d.ts +2 -0
  244. package/dist/src/server/sqlite-schema-v10.js +13 -0
  245. package/dist/src/server/sqlite-schema-v11.d.ts +2 -0
  246. package/dist/src/server/sqlite-schema-v11.js +10 -0
  247. package/dist/src/server/sqlite-schema-v12.d.ts +2 -0
  248. package/dist/src/server/sqlite-schema-v12.js +21 -0
  249. package/dist/src/server/sqlite-schema-v13.d.ts +2 -0
  250. package/dist/src/server/sqlite-schema-v13.js +4 -0
  251. package/dist/src/server/sqlite-schema-v14.d.ts +2 -0
  252. package/dist/src/server/sqlite-schema-v14.js +84 -0
  253. package/dist/src/server/sqlite-schema-v15.d.ts +2 -0
  254. package/dist/src/server/sqlite-schema-v15.js +73 -0
  255. package/dist/src/server/sqlite-schema-v16.d.ts +2 -0
  256. package/dist/src/server/sqlite-schema-v16.js +6 -0
  257. package/dist/src/server/sqlite-schema-v17.d.ts +2 -0
  258. package/dist/src/server/sqlite-schema-v17.js +15 -0
  259. package/dist/src/server/sqlite-schema-v18.d.ts +2 -0
  260. package/dist/src/server/sqlite-schema-v18.js +6 -0
  261. package/dist/src/server/sqlite-schema-v19.d.ts +2 -0
  262. package/dist/src/server/sqlite-schema-v19.js +17 -0
  263. package/dist/src/server/sqlite-schema-v20.d.ts +2 -0
  264. package/dist/src/server/sqlite-schema-v20.js +20 -0
  265. package/dist/src/server/sqlite-schema-v21.d.ts +2 -0
  266. package/dist/src/server/sqlite-schema-v21.js +20 -0
  267. package/dist/src/server/sqlite-schema-v22.d.ts +2 -0
  268. package/dist/src/server/sqlite-schema-v22.js +27 -0
  269. package/dist/src/server/sqlite-schema-v23.d.ts +2 -0
  270. package/dist/src/server/sqlite-schema-v23.js +43 -0
  271. package/dist/src/server/sqlite-schema-v24.d.ts +2 -0
  272. package/dist/src/server/sqlite-schema-v24.js +34 -0
  273. package/dist/src/server/sqlite-schema-v25.d.ts +2 -0
  274. package/dist/src/server/sqlite-schema-v25.js +127 -0
  275. package/dist/src/server/sqlite-schema-v26.d.ts +2 -0
  276. package/dist/src/server/sqlite-schema-v26.js +56 -0
  277. package/dist/src/server/sqlite-schema-v27.d.ts +6 -0
  278. package/dist/src/server/sqlite-schema-v27.js +92 -0
  279. package/dist/src/server/sqlite-schema-v28.d.ts +2 -0
  280. package/dist/src/server/sqlite-schema-v28.js +19 -0
  281. package/dist/src/server/sqlite-schema-v5.d.ts +2 -0
  282. package/dist/src/server/sqlite-schema-v5.js +61 -0
  283. package/dist/src/server/sqlite-schema-v7.d.ts +2 -0
  284. package/dist/src/server/sqlite-schema-v7.js +70 -0
  285. package/dist/src/server/sqlite-schema-v8.d.ts +2 -0
  286. package/dist/src/server/sqlite-schema-v8.js +6 -0
  287. package/dist/src/server/sqlite-schema-v9.d.ts +2 -0
  288. package/dist/src/server/sqlite-schema-v9.js +6 -0
  289. package/dist/src/server/sqlite-schema.d.ts +3 -0
  290. package/dist/src/server/sqlite-schema.js +353 -0
  291. package/dist/src/server/startup-command-parser.d.ts +20 -0
  292. package/dist/src/server/startup-command-parser.js +72 -0
  293. package/dist/src/server/system-message.d.ts +8 -0
  294. package/dist/src/server/system-message.js +8 -0
  295. package/dist/src/server/task-deps.d.ts +32 -0
  296. package/dist/src/server/task-deps.js +40 -0
  297. package/dist/src/server/tasks-file-watcher.d.ts +47 -0
  298. package/dist/src/server/tasks-file-watcher.js +200 -0
  299. package/dist/src/server/tasks-file.d.ts +23 -0
  300. package/dist/src/server/tasks-file.js +101 -0
  301. package/dist/src/server/tasks-websocket-server.d.ts +8 -0
  302. package/dist/src/server/tasks-websocket-server.js +95 -0
  303. package/dist/src/server/team-authz.d.ts +13 -0
  304. package/dist/src/server/team-authz.js +53 -0
  305. package/dist/src/server/team-autostaff.d.ts +16 -0
  306. package/dist/src/server/team-autostaff.js +16 -0
  307. package/dist/src/server/team-list-enrichment.d.ts +22 -0
  308. package/dist/src/server/team-list-enrichment.js +40 -0
  309. package/dist/src/server/team-list-serializer.d.ts +2 -0
  310. package/dist/src/server/team-list-serializer.js +11 -0
  311. package/dist/src/server/team-memory-digest.d.ts +52 -0
  312. package/dist/src/server/team-memory-digest.js +200 -0
  313. package/dist/src/server/team-memory-dream-applier.d.ts +5 -0
  314. package/dist/src/server/team-memory-dream-applier.js +234 -0
  315. package/dist/src/server/team-memory-dream-http-serializers.d.ts +13 -0
  316. package/dist/src/server/team-memory-dream-http-serializers.js +12 -0
  317. package/dist/src/server/team-memory-dream-ops.d.ts +40 -0
  318. package/dist/src/server/team-memory-dream-ops.js +153 -0
  319. package/dist/src/server/team-memory-dream-reverter.d.ts +22 -0
  320. package/dist/src/server/team-memory-dream-reverter.js +221 -0
  321. package/dist/src/server/team-memory-dream-run-store.d.ts +23 -0
  322. package/dist/src/server/team-memory-dream-run-store.js +211 -0
  323. package/dist/src/server/team-memory-dream-runner.d.ts +37 -0
  324. package/dist/src/server/team-memory-dream-runner.js +178 -0
  325. package/dist/src/server/team-memory-dream-scheduler.d.ts +32 -0
  326. package/dist/src/server/team-memory-dream-scheduler.js +115 -0
  327. package/dist/src/server/team-memory-dream-store.d.ts +19 -0
  328. package/dist/src/server/team-memory-dream-store.js +16 -0
  329. package/dist/src/server/team-memory-dream-types.d.ts +104 -0
  330. package/dist/src/server/team-memory-dream-types.js +23 -0
  331. package/dist/src/server/team-memory-export.d.ts +22 -0
  332. package/dist/src/server/team-memory-export.js +220 -0
  333. package/dist/src/server/team-memory-feature.d.ts +12 -0
  334. package/dist/src/server/team-memory-feature.js +12 -0
  335. package/dist/src/server/team-memory-http-serializers.d.ts +102 -0
  336. package/dist/src/server/team-memory-http-serializers.js +46 -0
  337. package/dist/src/server/team-memory-injection.d.ts +31 -0
  338. package/dist/src/server/team-memory-injection.js +49 -0
  339. package/dist/src/server/team-memory-store.d.ts +116 -0
  340. package/dist/src/server/team-memory-store.js +513 -0
  341. package/dist/src/server/team-operations.d.ts +102 -0
  342. package/dist/src/server/team-operations.js +387 -0
  343. package/dist/src/server/team-recall-store.d.ts +38 -0
  344. package/dist/src/server/team-recall-store.js +205 -0
  345. package/dist/src/server/terminal-flow-control.d.ts +19 -0
  346. package/dist/src/server/terminal-flow-control.js +116 -0
  347. package/dist/src/server/terminal-input-profile.d.ts +10 -0
  348. package/dist/src/server/terminal-input-profile.js +9 -0
  349. package/dist/src/server/terminal-protocol.d.ts +29 -0
  350. package/dist/src/server/terminal-protocol.js +47 -0
  351. package/dist/src/server/terminal-state-mirror.d.ts +21 -0
  352. package/dist/src/server/terminal-state-mirror.js +67 -0
  353. package/dist/src/server/terminal-stream-hub.d.ts +9 -0
  354. package/dist/src/server/terminal-stream-hub.js +192 -0
  355. package/dist/src/server/terminal-ws-server.d.ts +6 -0
  356. package/dist/src/server/terminal-ws-server.js +115 -0
  357. package/dist/src/server/ui-auth-helpers.d.ts +4 -0
  358. package/dist/src/server/ui-auth-helpers.js +28 -0
  359. package/dist/src/server/ui-auth.d.ts +8 -0
  360. package/dist/src/server/ui-auth.js +32 -0
  361. package/dist/src/server/version-service.d.ts +16 -0
  362. package/dist/src/server/version-service.js +72 -0
  363. package/dist/src/server/webhook-notifier.d.ts +34 -0
  364. package/dist/src/server/webhook-notifier.js +47 -0
  365. package/dist/src/server/websocket-upgrade-safety.d.ts +10 -0
  366. package/dist/src/server/websocket-upgrade-safety.js +35 -0
  367. package/dist/src/server/windows-command-line.d.ts +3 -0
  368. package/dist/src/server/windows-command-line.js +9 -0
  369. package/dist/src/server/windows-filename.d.ts +2 -0
  370. package/dist/src/server/windows-filename.js +33 -0
  371. package/dist/src/server/worker-output-tracker.d.ts +14 -0
  372. package/dist/src/server/worker-output-tracker.js +50 -0
  373. package/dist/src/server/workflow-cli-policy.d.ts +60 -0
  374. package/dist/src/server/workflow-cli-policy.js +110 -0
  375. package/dist/src/server/workflow-dispatch-awaiter.d.ts +12 -0
  376. package/dist/src/server/workflow-dispatch-awaiter.js +80 -0
  377. package/dist/src/server/workflow-feature.d.ts +15 -0
  378. package/dist/src/server/workflow-feature.js +15 -0
  379. package/dist/src/server/workflow-http-serializers.d.ts +64 -0
  380. package/dist/src/server/workflow-http-serializers.js +58 -0
  381. package/dist/src/server/workflow-output-schema.d.ts +18 -0
  382. package/dist/src/server/workflow-output-schema.js +41 -0
  383. package/dist/src/server/workflow-run-log-store.d.ts +19 -0
  384. package/dist/src/server/workflow-run-log-store.js +45 -0
  385. package/dist/src/server/workflow-run-store.d.ts +50 -0
  386. package/dist/src/server/workflow-run-store.js +103 -0
  387. package/dist/src/server/workflow-runner.d.ts +147 -0
  388. package/dist/src/server/workflow-runner.js +411 -0
  389. package/dist/src/server/workflow-schedule-create.d.ts +14 -0
  390. package/dist/src/server/workflow-schedule-create.js +41 -0
  391. package/dist/src/server/workflow-schedule-store.d.ts +43 -0
  392. package/dist/src/server/workflow-schedule-store.js +112 -0
  393. package/dist/src/server/workflow-scheduler.d.ts +36 -0
  394. package/dist/src/server/workflow-scheduler.js +97 -0
  395. package/dist/src/server/workflow-script-loader.d.ts +34 -0
  396. package/dist/src/server/workflow-script-loader.js +106 -0
  397. package/dist/src/server/workspace-path-validation.d.ts +1 -0
  398. package/dist/src/server/workspace-path-validation.js +42 -0
  399. package/dist/src/server/workspace-shell-runtime.d.ts +35 -0
  400. package/dist/src/server/workspace-shell-runtime.js +228 -0
  401. package/dist/src/server/workspace-store-contract.d.ts +32 -0
  402. package/dist/src/server/workspace-store-contract.js +1 -0
  403. package/dist/src/server/workspace-store-hydration.d.ts +5 -0
  404. package/dist/src/server/workspace-store-hydration.js +76 -0
  405. package/dist/src/server/workspace-store-mutations.d.ts +14 -0
  406. package/dist/src/server/workspace-store-mutations.js +48 -0
  407. package/dist/src/server/workspace-store-support.d.ts +33 -0
  408. package/dist/src/server/workspace-store-support.js +36 -0
  409. package/dist/src/server/workspace-store.d.ts +5 -0
  410. package/dist/src/server/workspace-store.js +153 -0
  411. package/dist/src/shared/fs-browse.d.ts +1 -0
  412. package/dist/src/shared/fs-browse.js +1 -0
  413. package/dist/src/shared/open-targets.d.ts +20 -0
  414. package/dist/src/shared/open-targets.js +36 -0
  415. package/dist/src/shared/path-input.d.ts +12 -0
  416. package/dist/src/shared/path-input.js +22 -0
  417. package/dist/src/shared/remote-bridge-routing.d.ts +19 -0
  418. package/dist/src/shared/remote-bridge-routing.js +141 -0
  419. package/dist/src/shared/remote-crypto.d.ts +138 -0
  420. package/dist/src/shared/remote-crypto.js +427 -0
  421. package/dist/src/shared/remote-pairing-code.d.ts +7 -0
  422. package/dist/src/shared/remote-pairing-code.js +47 -0
  423. package/dist/src/shared/remote-protocol.d.ts +160 -0
  424. package/dist/src/shared/remote-protocol.js +526 -0
  425. package/dist/src/shared/team-memory.d.ts +11 -0
  426. package/dist/src/shared/team-memory.js +10 -0
  427. package/dist/src/shared/team-recall.d.ts +1 -0
  428. package/dist/src/shared/team-recall.js +1 -0
  429. package/dist/src/shared/types.d.ts +66 -0
  430. package/dist/src/shared/types.js +1 -0
  431. package/dist/vendor/marketplace/en/LICENSE +21 -0
  432. package/dist/vendor/marketplace/en/SOURCES.md +12 -0
  433. package/dist/vendor/marketplace/en/academic/academic-anthropologist.md +125 -0
  434. package/dist/vendor/marketplace/en/academic/academic-geographer.md +127 -0
  435. package/dist/vendor/marketplace/en/academic/academic-historian.md +123 -0
  436. package/dist/vendor/marketplace/en/academic/academic-narratologist.md +118 -0
  437. package/dist/vendor/marketplace/en/academic/academic-psychologist.md +118 -0
  438. package/dist/vendor/marketplace/en/design/design-brand-guardian.md +322 -0
  439. package/dist/vendor/marketplace/en/design/design-image-prompt-engineer.md +236 -0
  440. package/dist/vendor/marketplace/en/design/design-inclusive-visuals-specialist.md +71 -0
  441. package/dist/vendor/marketplace/en/design/design-ui-designer.md +383 -0
  442. package/dist/vendor/marketplace/en/design/design-ux-architect.md +469 -0
  443. package/dist/vendor/marketplace/en/design/design-ux-researcher.md +329 -0
  444. package/dist/vendor/marketplace/en/design/design-visual-storyteller.md +149 -0
  445. package/dist/vendor/marketplace/en/design/design-whimsy-injector.md +438 -0
  446. package/dist/vendor/marketplace/en/engineering/engineering-ai-data-remediation-engineer.md +211 -0
  447. package/dist/vendor/marketplace/en/engineering/engineering-ai-engineer.md +146 -0
  448. package/dist/vendor/marketplace/en/engineering/engineering-autonomous-optimization-architect.md +107 -0
  449. package/dist/vendor/marketplace/en/engineering/engineering-backend-architect.md +235 -0
  450. package/dist/vendor/marketplace/en/engineering/engineering-cms-developer.md +536 -0
  451. package/dist/vendor/marketplace/en/engineering/engineering-code-reviewer.md +76 -0
  452. package/dist/vendor/marketplace/en/engineering/engineering-codebase-onboarding-engineer.md +173 -0
  453. package/dist/vendor/marketplace/en/engineering/engineering-data-engineer.md +306 -0
  454. package/dist/vendor/marketplace/en/engineering/engineering-database-optimizer.md +176 -0
  455. package/dist/vendor/marketplace/en/engineering/engineering-devops-automator.md +376 -0
  456. package/dist/vendor/marketplace/en/engineering/engineering-email-intelligence-engineer.md +353 -0
  457. package/dist/vendor/marketplace/en/engineering/engineering-embedded-firmware-engineer.md +173 -0
  458. package/dist/vendor/marketplace/en/engineering/engineering-feishu-integration-developer.md +598 -0
  459. package/dist/vendor/marketplace/en/engineering/engineering-filament-optimization-specialist.md +283 -0
  460. package/dist/vendor/marketplace/en/engineering/engineering-frontend-developer.md +225 -0
  461. package/dist/vendor/marketplace/en/engineering/engineering-git-workflow-master.md +84 -0
  462. package/dist/vendor/marketplace/en/engineering/engineering-incident-response-commander.md +444 -0
  463. package/dist/vendor/marketplace/en/engineering/engineering-minimal-change-engineer.md +207 -0
  464. package/dist/vendor/marketplace/en/engineering/engineering-mobile-app-builder.md +493 -0
  465. package/dist/vendor/marketplace/en/engineering/engineering-rapid-prototyper.md +462 -0
  466. package/dist/vendor/marketplace/en/engineering/engineering-security-engineer.md +304 -0
  467. package/dist/vendor/marketplace/en/engineering/engineering-senior-developer.md +176 -0
  468. package/dist/vendor/marketplace/en/engineering/engineering-software-architect.md +81 -0
  469. package/dist/vendor/marketplace/en/engineering/engineering-solidity-smart-contract-engineer.md +522 -0
  470. package/dist/vendor/marketplace/en/engineering/engineering-sre.md +90 -0
  471. package/dist/vendor/marketplace/en/engineering/engineering-technical-writer.md +393 -0
  472. package/dist/vendor/marketplace/en/engineering/engineering-threat-detection-engineer.md +534 -0
  473. package/dist/vendor/marketplace/en/engineering/engineering-voice-ai-integration-engineer.md +561 -0
  474. package/dist/vendor/marketplace/en/engineering/engineering-wechat-mini-program-developer.md +350 -0
  475. package/dist/vendor/marketplace/en/finance/finance-bookkeeper-controller.md +260 -0
  476. package/dist/vendor/marketplace/en/finance/finance-financial-analyst.md +234 -0
  477. package/dist/vendor/marketplace/en/finance/finance-fpa-analyst.md +263 -0
  478. package/dist/vendor/marketplace/en/finance/finance-investment-researcher.md +272 -0
  479. package/dist/vendor/marketplace/en/finance/finance-tax-strategist.md +239 -0
  480. package/dist/vendor/marketplace/en/game-development/blender/blender-addon-engineer.md +234 -0
  481. package/dist/vendor/marketplace/en/game-development/game-audio-engineer.md +264 -0
  482. package/dist/vendor/marketplace/en/game-development/game-designer.md +167 -0
  483. package/dist/vendor/marketplace/en/game-development/godot/godot-gameplay-scripter.md +334 -0
  484. package/dist/vendor/marketplace/en/game-development/godot/godot-multiplayer-engineer.md +297 -0
  485. package/dist/vendor/marketplace/en/game-development/godot/godot-shader-developer.md +266 -0
  486. package/dist/vendor/marketplace/en/game-development/level-designer.md +208 -0
  487. package/dist/vendor/marketplace/en/game-development/narrative-designer.md +243 -0
  488. package/dist/vendor/marketplace/en/game-development/roblox-studio/roblox-avatar-creator.md +297 -0
  489. package/dist/vendor/marketplace/en/game-development/roblox-studio/roblox-experience-designer.md +305 -0
  490. package/dist/vendor/marketplace/en/game-development/roblox-studio/roblox-systems-scripter.md +325 -0
  491. package/dist/vendor/marketplace/en/game-development/technical-artist.md +229 -0
  492. package/dist/vendor/marketplace/en/game-development/unity/unity-architect.md +271 -0
  493. package/dist/vendor/marketplace/en/game-development/unity/unity-editor-tool-developer.md +310 -0
  494. package/dist/vendor/marketplace/en/game-development/unity/unity-multiplayer-engineer.md +321 -0
  495. package/dist/vendor/marketplace/en/game-development/unity/unity-shader-graph-artist.md +269 -0
  496. package/dist/vendor/marketplace/en/game-development/unreal-engine/unreal-multiplayer-architect.md +313 -0
  497. package/dist/vendor/marketplace/en/game-development/unreal-engine/unreal-systems-engineer.md +310 -0
  498. package/dist/vendor/marketplace/en/game-development/unreal-engine/unreal-technical-artist.md +256 -0
  499. package/dist/vendor/marketplace/en/game-development/unreal-engine/unreal-world-builder.md +273 -0
  500. package/dist/vendor/marketplace/en/integrations/mcp-memory/backend-architect-with-memory.md +247 -0
  501. package/dist/vendor/marketplace/en/manifest.json +1869 -0
  502. package/dist/vendor/marketplace/en/marketing/marketing-agentic-search-optimizer.md +311 -0
  503. package/dist/vendor/marketplace/en/marketing/marketing-ai-citation-strategist.md +170 -0
  504. package/dist/vendor/marketplace/en/marketing/marketing-app-store-optimizer.md +321 -0
  505. package/dist/vendor/marketplace/en/marketing/marketing-baidu-seo-specialist.md +226 -0
  506. package/dist/vendor/marketplace/en/marketing/marketing-bilibili-content-strategist.md +199 -0
  507. package/dist/vendor/marketplace/en/marketing/marketing-book-co-author.md +110 -0
  508. package/dist/vendor/marketplace/en/marketing/marketing-carousel-growth-engine.md +199 -0
  509. package/dist/vendor/marketplace/en/marketing/marketing-china-ecommerce-operator.md +283 -0
  510. package/dist/vendor/marketplace/en/marketing/marketing-china-market-localization-strategist.md +283 -0
  511. package/dist/vendor/marketplace/en/marketing/marketing-content-creator.md +54 -0
  512. package/dist/vendor/marketplace/en/marketing/marketing-cross-border-ecommerce.md +259 -0
  513. package/dist/vendor/marketplace/en/marketing/marketing-douyin-strategist.md +149 -0
  514. package/dist/vendor/marketplace/en/marketing/marketing-growth-hacker.md +54 -0
  515. package/dist/vendor/marketplace/en/marketing/marketing-instagram-curator.md +113 -0
  516. package/dist/vendor/marketplace/en/marketing/marketing-kuaishou-strategist.md +223 -0
  517. package/dist/vendor/marketplace/en/marketing/marketing-linkedin-content-creator.md +214 -0
  518. package/dist/vendor/marketplace/en/marketing/marketing-livestream-commerce-coach.md +305 -0
  519. package/dist/vendor/marketplace/en/marketing/marketing-podcast-strategist.md +277 -0
  520. package/dist/vendor/marketplace/en/marketing/marketing-private-domain-operator.md +308 -0
  521. package/dist/vendor/marketplace/en/marketing/marketing-reddit-community-builder.md +123 -0
  522. package/dist/vendor/marketplace/en/marketing/marketing-seo-specialist.md +321 -0
  523. package/dist/vendor/marketplace/en/marketing/marketing-short-video-editing-coach.md +412 -0
  524. package/dist/vendor/marketplace/en/marketing/marketing-social-media-strategist.md +125 -0
  525. package/dist/vendor/marketplace/en/marketing/marketing-tiktok-strategist.md +125 -0
  526. package/dist/vendor/marketplace/en/marketing/marketing-twitter-engager.md +126 -0
  527. package/dist/vendor/marketplace/en/marketing/marketing-video-optimization-specialist.md +119 -0
  528. package/dist/vendor/marketplace/en/marketing/marketing-wechat-official-account.md +145 -0
  529. package/dist/vendor/marketplace/en/marketing/marketing-weibo-strategist.md +240 -0
  530. package/dist/vendor/marketplace/en/marketing/marketing-xiaohongshu-specialist.md +138 -0
  531. package/dist/vendor/marketplace/en/marketing/marketing-zhihu-strategist.md +162 -0
  532. package/dist/vendor/marketplace/en/paid-media/paid-media-auditor.md +71 -0
  533. package/dist/vendor/marketplace/en/paid-media/paid-media-creative-strategist.md +71 -0
  534. package/dist/vendor/marketplace/en/paid-media/paid-media-paid-social-strategist.md +71 -0
  535. package/dist/vendor/marketplace/en/paid-media/paid-media-ppc-strategist.md +71 -0
  536. package/dist/vendor/marketplace/en/paid-media/paid-media-programmatic-buyer.md +71 -0
  537. package/dist/vendor/marketplace/en/paid-media/paid-media-search-query-analyst.md +71 -0
  538. package/dist/vendor/marketplace/en/paid-media/paid-media-tracking-specialist.md +71 -0
  539. package/dist/vendor/marketplace/en/product/product-behavioral-nudge-engine.md +80 -0
  540. package/dist/vendor/marketplace/en/product/product-feedback-synthesizer.md +119 -0
  541. package/dist/vendor/marketplace/en/product/product-manager.md +469 -0
  542. package/dist/vendor/marketplace/en/product/product-sprint-prioritizer.md +154 -0
  543. package/dist/vendor/marketplace/en/product/product-trend-researcher.md +159 -0
  544. package/dist/vendor/marketplace/en/project-management/project-management-experiment-tracker.md +198 -0
  545. package/dist/vendor/marketplace/en/project-management/project-management-jira-workflow-steward.md +230 -0
  546. package/dist/vendor/marketplace/en/project-management/project-management-project-shepherd.md +194 -0
  547. package/dist/vendor/marketplace/en/project-management/project-management-studio-operations.md +200 -0
  548. package/dist/vendor/marketplace/en/project-management/project-management-studio-producer.md +203 -0
  549. package/dist/vendor/marketplace/en/project-management/project-manager-senior.md +135 -0
  550. package/dist/vendor/marketplace/en/sales/sales-account-strategist.md +227 -0
  551. package/dist/vendor/marketplace/en/sales/sales-coach.md +271 -0
  552. package/dist/vendor/marketplace/en/sales/sales-deal-strategist.md +180 -0
  553. package/dist/vendor/marketplace/en/sales/sales-discovery-coach.md +225 -0
  554. package/dist/vendor/marketplace/en/sales/sales-engineer.md +182 -0
  555. package/dist/vendor/marketplace/en/sales/sales-outbound-strategist.md +201 -0
  556. package/dist/vendor/marketplace/en/sales/sales-pipeline-analyst.md +267 -0
  557. package/dist/vendor/marketplace/en/sales/sales-proposal-strategist.md +217 -0
  558. package/dist/vendor/marketplace/en/spatial-computing/macos-spatial-metal-engineer.md +337 -0
  559. package/dist/vendor/marketplace/en/spatial-computing/terminal-integration-specialist.md +70 -0
  560. package/dist/vendor/marketplace/en/spatial-computing/visionos-spatial-engineer.md +54 -0
  561. package/dist/vendor/marketplace/en/spatial-computing/xr-cockpit-interaction-specialist.md +32 -0
  562. package/dist/vendor/marketplace/en/spatial-computing/xr-immersive-developer.md +32 -0
  563. package/dist/vendor/marketplace/en/spatial-computing/xr-interface-architect.md +32 -0
  564. package/dist/vendor/marketplace/en/specialized/accounts-payable-agent.md +185 -0
  565. package/dist/vendor/marketplace/en/specialized/agentic-identity-trust.md +387 -0
  566. package/dist/vendor/marketplace/en/specialized/agents-orchestrator.md +367 -0
  567. package/dist/vendor/marketplace/en/specialized/automation-governance-architect.md +216 -0
  568. package/dist/vendor/marketplace/en/specialized/blockchain-security-auditor.md +463 -0
  569. package/dist/vendor/marketplace/en/specialized/compliance-auditor.md +158 -0
  570. package/dist/vendor/marketplace/en/specialized/corporate-training-designer.md +192 -0
  571. package/dist/vendor/marketplace/en/specialized/customer-service.md +398 -0
  572. package/dist/vendor/marketplace/en/specialized/data-consolidation-agent.md +60 -0
  573. package/dist/vendor/marketplace/en/specialized/government-digital-presales-consultant.md +363 -0
  574. package/dist/vendor/marketplace/en/specialized/healthcare-customer-service.md +389 -0
  575. package/dist/vendor/marketplace/en/specialized/healthcare-marketing-compliance.md +395 -0
  576. package/dist/vendor/marketplace/en/specialized/hospitality-guest-services.md +603 -0
  577. package/dist/vendor/marketplace/en/specialized/hr-onboarding.md +451 -0
  578. package/dist/vendor/marketplace/en/specialized/identity-graph-operator.md +260 -0
  579. package/dist/vendor/marketplace/en/specialized/language-translator.md +264 -0
  580. package/dist/vendor/marketplace/en/specialized/legal-billing-time-tracking.md +569 -0
  581. package/dist/vendor/marketplace/en/specialized/legal-client-intake.md +492 -0
  582. package/dist/vendor/marketplace/en/specialized/legal-document-review.md +454 -0
  583. package/dist/vendor/marketplace/en/specialized/loan-officer-assistant.md +555 -0
  584. package/dist/vendor/marketplace/en/specialized/lsp-index-engineer.md +314 -0
  585. package/dist/vendor/marketplace/en/specialized/real-estate-buyer-seller.md +596 -0
  586. package/dist/vendor/marketplace/en/specialized/recruitment-specialist.md +509 -0
  587. package/dist/vendor/marketplace/en/specialized/report-distribution-agent.md +65 -0
  588. package/dist/vendor/marketplace/en/specialized/retail-customer-returns.md +566 -0
  589. package/dist/vendor/marketplace/en/specialized/sales-data-extraction-agent.md +67 -0
  590. package/dist/vendor/marketplace/en/specialized/sales-outreach.md +425 -0
  591. package/dist/vendor/marketplace/en/specialized/specialized-chief-of-staff.md +279 -0
  592. package/dist/vendor/marketplace/en/specialized/specialized-civil-engineer.md +356 -0
  593. package/dist/vendor/marketplace/en/specialized/specialized-cultural-intelligence-strategist.md +88 -0
  594. package/dist/vendor/marketplace/en/specialized/specialized-developer-advocate.md +317 -0
  595. package/dist/vendor/marketplace/en/specialized/specialized-document-generator.md +55 -0
  596. package/dist/vendor/marketplace/en/specialized/specialized-french-consulting-market.md +192 -0
  597. package/dist/vendor/marketplace/en/specialized/specialized-korean-business-navigator.md +216 -0
  598. package/dist/vendor/marketplace/en/specialized/specialized-mcp-builder.md +248 -0
  599. package/dist/vendor/marketplace/en/specialized/specialized-model-qa.md +488 -0
  600. package/dist/vendor/marketplace/en/specialized/specialized-salesforce-architect.md +180 -0
  601. package/dist/vendor/marketplace/en/specialized/specialized-workflow-architect.md +597 -0
  602. package/dist/vendor/marketplace/en/specialized/study-abroad-advisor.md +282 -0
  603. package/dist/vendor/marketplace/en/specialized/supply-chain-strategist.md +582 -0
  604. package/dist/vendor/marketplace/en/support/support-analytics-reporter.md +365 -0
  605. package/dist/vendor/marketplace/en/support/support-executive-summary-generator.md +212 -0
  606. package/dist/vendor/marketplace/en/support/support-finance-tracker.md +442 -0
  607. package/dist/vendor/marketplace/en/support/support-infrastructure-maintainer.md +618 -0
  608. package/dist/vendor/marketplace/en/support/support-legal-compliance-checker.md +588 -0
  609. package/dist/vendor/marketplace/en/support/support-support-responder.md +585 -0
  610. package/dist/vendor/marketplace/en/testing/testing-accessibility-auditor.md +316 -0
  611. package/dist/vendor/marketplace/en/testing/testing-api-tester.md +306 -0
  612. package/dist/vendor/marketplace/en/testing/testing-evidence-collector.md +210 -0
  613. package/dist/vendor/marketplace/en/testing/testing-performance-benchmarker.md +268 -0
  614. package/dist/vendor/marketplace/en/testing/testing-reality-checker.md +236 -0
  615. package/dist/vendor/marketplace/en/testing/testing-test-results-analyzer.md +305 -0
  616. package/dist/vendor/marketplace/en/testing/testing-tool-evaluator.md +394 -0
  617. package/dist/vendor/marketplace/en/testing/testing-workflow-optimizer.md +450 -0
  618. package/dist/vendor/marketplace/zh/LICENSE +22 -0
  619. package/dist/vendor/marketplace/zh/SOURCES.md +12 -0
  620. package/dist/vendor/marketplace/zh/academic/academic-anthropologist.md +124 -0
  621. package/dist/vendor/marketplace/zh/academic/academic-geographer.md +126 -0
  622. package/dist/vendor/marketplace/zh/academic/academic-historian.md +122 -0
  623. package/dist/vendor/marketplace/zh/academic/academic-narratologist.md +117 -0
  624. package/dist/vendor/marketplace/zh/academic/academic-psychologist.md +117 -0
  625. package/dist/vendor/marketplace/zh/academic/academic-study-planner.md +214 -0
  626. package/dist/vendor/marketplace/zh/design/design-brand-guardian.md +321 -0
  627. package/dist/vendor/marketplace/zh/design/design-image-prompt-engineer.md +255 -0
  628. package/dist/vendor/marketplace/zh/design/design-inclusive-visuals-specialist.md +177 -0
  629. package/dist/vendor/marketplace/zh/design/design-ui-designer.md +382 -0
  630. package/dist/vendor/marketplace/zh/design/design-ux-architect.md +482 -0
  631. package/dist/vendor/marketplace/zh/design/design-ux-researcher.md +328 -0
  632. package/dist/vendor/marketplace/zh/design/design-visual-storyteller.md +159 -0
  633. package/dist/vendor/marketplace/zh/design/design-whimsy-injector.md +453 -0
  634. package/dist/vendor/marketplace/zh/engineering/engineering-ai-data-remediation-engineer.md +209 -0
  635. package/dist/vendor/marketplace/zh/engineering/engineering-ai-engineer.md +161 -0
  636. package/dist/vendor/marketplace/zh/engineering/engineering-autonomous-optimization-architect.md +115 -0
  637. package/dist/vendor/marketplace/zh/engineering/engineering-backend-architect.md +234 -0
  638. package/dist/vendor/marketplace/zh/engineering/engineering-cms-developer.md +534 -0
  639. package/dist/vendor/marketplace/zh/engineering/engineering-code-reviewer.md +172 -0
  640. package/dist/vendor/marketplace/zh/engineering/engineering-codebase-onboarding-engineer.md +172 -0
  641. package/dist/vendor/marketplace/zh/engineering/engineering-data-engineer.md +324 -0
  642. package/dist/vendor/marketplace/zh/engineering/engineering-database-optimizer.md +175 -0
  643. package/dist/vendor/marketplace/zh/engineering/engineering-devops-automator.md +375 -0
  644. package/dist/vendor/marketplace/zh/engineering/engineering-dingtalk-integration-developer.md +574 -0
  645. package/dist/vendor/marketplace/zh/engineering/engineering-email-intelligence-engineer.md +349 -0
  646. package/dist/vendor/marketplace/zh/engineering/engineering-embedded-firmware-engineer.md +168 -0
  647. package/dist/vendor/marketplace/zh/engineering/engineering-embedded-linux-driver-engineer.md +255 -0
  648. package/dist/vendor/marketplace/zh/engineering/engineering-feishu-integration-developer.md +597 -0
  649. package/dist/vendor/marketplace/zh/engineering/engineering-filament-optimization-specialist.md +283 -0
  650. package/dist/vendor/marketplace/zh/engineering/engineering-fpga-digital-design-engineer.md +227 -0
  651. package/dist/vendor/marketplace/zh/engineering/engineering-frontend-developer.md +224 -0
  652. package/dist/vendor/marketplace/zh/engineering/engineering-git-workflow-master.md +220 -0
  653. package/dist/vendor/marketplace/zh/engineering/engineering-incident-response-commander.md +465 -0
  654. package/dist/vendor/marketplace/zh/engineering/engineering-iot-solution-architect.md +220 -0
  655. package/dist/vendor/marketplace/zh/engineering/engineering-mechanical-design-engineer.md +311 -0
  656. package/dist/vendor/marketplace/zh/engineering/engineering-minimal-change-engineer.md +206 -0
  657. package/dist/vendor/marketplace/zh/engineering/engineering-mobile-app-builder.md +434 -0
  658. package/dist/vendor/marketplace/zh/engineering/engineering-pc-host-engineer.md +231 -0
  659. package/dist/vendor/marketplace/zh/engineering/engineering-rapid-prototyper.md +461 -0
  660. package/dist/vendor/marketplace/zh/engineering/engineering-security-engineer.md +303 -0
  661. package/dist/vendor/marketplace/zh/engineering/engineering-senior-developer.md +177 -0
  662. package/dist/vendor/marketplace/zh/engineering/engineering-software-architect.md +200 -0
  663. package/dist/vendor/marketplace/zh/engineering/engineering-solidity-smart-contract-engineer.md +541 -0
  664. package/dist/vendor/marketplace/zh/engineering/engineering-sre.md +233 -0
  665. package/dist/vendor/marketplace/zh/engineering/engineering-technical-writer.md +409 -0
  666. package/dist/vendor/marketplace/zh/engineering/engineering-threat-detection-engineer.md +553 -0
  667. package/dist/vendor/marketplace/zh/engineering/engineering-voice-ai-integration-engineer.md +560 -0
  668. package/dist/vendor/marketplace/zh/engineering/engineering-wechat-mini-program-developer.md +288 -0
  669. package/dist/vendor/marketplace/zh/finance/finance-bookkeeper-controller.md +271 -0
  670. package/dist/vendor/marketplace/zh/finance/finance-financial-analyst.md +244 -0
  671. package/dist/vendor/marketplace/zh/finance/finance-financial-forecaster.md +213 -0
  672. package/dist/vendor/marketplace/zh/finance/finance-fpa-analyst.md +272 -0
  673. package/dist/vendor/marketplace/zh/finance/finance-fraud-detector.md +241 -0
  674. package/dist/vendor/marketplace/zh/finance/finance-investment-researcher.md +283 -0
  675. package/dist/vendor/marketplace/zh/finance/finance-invoice-manager.md +242 -0
  676. package/dist/vendor/marketplace/zh/finance/finance-tax-strategist.md +250 -0
  677. package/dist/vendor/marketplace/zh/game-development/blender/blender-addon-engineer.md +233 -0
  678. package/dist/vendor/marketplace/zh/game-development/game-audio-engineer.md +265 -0
  679. package/dist/vendor/marketplace/zh/game-development/game-designer.md +168 -0
  680. package/dist/vendor/marketplace/zh/game-development/godot/godot-gameplay-scripter.md +335 -0
  681. package/dist/vendor/marketplace/zh/game-development/godot/godot-multiplayer-engineer.md +296 -0
  682. package/dist/vendor/marketplace/zh/game-development/godot/godot-shader-developer.md +267 -0
  683. package/dist/vendor/marketplace/zh/game-development/level-designer.md +209 -0
  684. package/dist/vendor/marketplace/zh/game-development/narrative-designer.md +244 -0
  685. package/dist/vendor/marketplace/zh/game-development/roblox-studio/roblox-avatar-creator.md +298 -0
  686. package/dist/vendor/marketplace/zh/game-development/roblox-studio/roblox-experience-designer.md +306 -0
  687. package/dist/vendor/marketplace/zh/game-development/roblox-studio/roblox-systems-scripter.md +325 -0
  688. package/dist/vendor/marketplace/zh/game-development/technical-artist.md +230 -0
  689. package/dist/vendor/marketplace/zh/game-development/unity/unity-architect.md +272 -0
  690. package/dist/vendor/marketplace/zh/game-development/unity/unity-editor-tool-developer.md +300 -0
  691. package/dist/vendor/marketplace/zh/game-development/unity/unity-multiplayer-engineer.md +238 -0
  692. package/dist/vendor/marketplace/zh/game-development/unity/unity-shader-graph-artist.md +270 -0
  693. package/dist/vendor/marketplace/zh/game-development/unreal-engine/unreal-multiplayer-architect.md +314 -0
  694. package/dist/vendor/marketplace/zh/game-development/unreal-engine/unreal-systems-engineer.md +311 -0
  695. package/dist/vendor/marketplace/zh/game-development/unreal-engine/unreal-technical-artist.md +256 -0
  696. package/dist/vendor/marketplace/zh/game-development/unreal-engine/unreal-world-builder.md +274 -0
  697. package/dist/vendor/marketplace/zh/hr/hr-performance-reviewer.md +248 -0
  698. package/dist/vendor/marketplace/zh/hr/hr-recruiter.md +232 -0
  699. package/dist/vendor/marketplace/zh/legal/legal-contract-reviewer.md +240 -0
  700. package/dist/vendor/marketplace/zh/legal/legal-policy-writer.md +308 -0
  701. package/dist/vendor/marketplace/zh/manifest.json +2181 -0
  702. package/dist/vendor/marketplace/zh/marketing/marketing-agentic-search-optimizer.md +312 -0
  703. package/dist/vendor/marketplace/zh/marketing/marketing-ai-citation-strategist.md +169 -0
  704. package/dist/vendor/marketplace/zh/marketing/marketing-app-store-optimizer.md +319 -0
  705. package/dist/vendor/marketplace/zh/marketing/marketing-baidu-seo-specialist.md +220 -0
  706. package/dist/vendor/marketplace/zh/marketing/marketing-bilibili-strategist.md +194 -0
  707. package/dist/vendor/marketplace/zh/marketing/marketing-book-co-author.md +109 -0
  708. package/dist/vendor/marketplace/zh/marketing/marketing-carousel-growth-engine.md +215 -0
  709. package/dist/vendor/marketplace/zh/marketing/marketing-china-ecommerce-operator.md +277 -0
  710. package/dist/vendor/marketplace/zh/marketing/marketing-china-market-localization-strategist.md +282 -0
  711. package/dist/vendor/marketplace/zh/marketing/marketing-content-creator.md +145 -0
  712. package/dist/vendor/marketplace/zh/marketing/marketing-cross-border-ecommerce.md +260 -0
  713. package/dist/vendor/marketplace/zh/marketing/marketing-daily-news-briefing.md +303 -0
  714. package/dist/vendor/marketplace/zh/marketing/marketing-douyin-strategist.md +150 -0
  715. package/dist/vendor/marketplace/zh/marketing/marketing-ecommerce-operator.md +216 -0
  716. package/dist/vendor/marketplace/zh/marketing/marketing-growth-hacker.md +121 -0
  717. package/dist/vendor/marketplace/zh/marketing/marketing-instagram-curator.md +179 -0
  718. package/dist/vendor/marketplace/zh/marketing/marketing-knowledge-commerce-strategist.md +384 -0
  719. package/dist/vendor/marketplace/zh/marketing/marketing-kuaishou-strategist.md +182 -0
  720. package/dist/vendor/marketplace/zh/marketing/marketing-linkedin-content-creator.md +232 -0
  721. package/dist/vendor/marketplace/zh/marketing/marketing-livestream-commerce-coach.md +303 -0
  722. package/dist/vendor/marketplace/zh/marketing/marketing-podcast-strategist.md +278 -0
  723. package/dist/vendor/marketplace/zh/marketing/marketing-private-domain-operator.md +309 -0
  724. package/dist/vendor/marketplace/zh/marketing/marketing-reddit-community-builder.md +127 -0
  725. package/dist/vendor/marketplace/zh/marketing/marketing-seo-specialist.md +298 -0
  726. package/dist/vendor/marketplace/zh/marketing/marketing-short-video-editing-coach.md +413 -0
  727. package/dist/vendor/marketplace/zh/marketing/marketing-social-media-strategist.md +118 -0
  728. package/dist/vendor/marketplace/zh/marketing/marketing-tiktok-strategist.md +124 -0
  729. package/dist/vendor/marketplace/zh/marketing/marketing-twitter-engager.md +132 -0
  730. package/dist/vendor/marketplace/zh/marketing/marketing-video-optimization-specialist.md +128 -0
  731. package/dist/vendor/marketplace/zh/marketing/marketing-wechat-official-account.md +158 -0
  732. package/dist/vendor/marketplace/zh/marketing/marketing-wechat-operator.md +156 -0
  733. package/dist/vendor/marketplace/zh/marketing/marketing-weibo-strategist.md +241 -0
  734. package/dist/vendor/marketplace/zh/marketing/marketing-weixin-channels-strategist.md +297 -0
  735. package/dist/vendor/marketplace/zh/marketing/marketing-xiaohongshu-operator.md +139 -0
  736. package/dist/vendor/marketplace/zh/marketing/marketing-xiaohongshu-specialist.md +151 -0
  737. package/dist/vendor/marketplace/zh/marketing/marketing-zhihu-strategist.md +175 -0
  738. package/dist/vendor/marketplace/zh/paid-media/paid-media-auditor.md +170 -0
  739. package/dist/vendor/marketplace/zh/paid-media/paid-media-creative-strategist.md +173 -0
  740. package/dist/vendor/marketplace/zh/paid-media/paid-media-paid-social-strategist.md +180 -0
  741. package/dist/vendor/marketplace/zh/paid-media/paid-media-ppc-strategist.md +180 -0
  742. package/dist/vendor/marketplace/zh/paid-media/paid-media-programmatic-buyer.md +177 -0
  743. package/dist/vendor/marketplace/zh/paid-media/paid-media-search-query-analyst.md +182 -0
  744. package/dist/vendor/marketplace/zh/paid-media/paid-media-tracking-specialist.md +199 -0
  745. package/dist/vendor/marketplace/zh/product/product-behavioral-nudge-engine.md +246 -0
  746. package/dist/vendor/marketplace/zh/product/product-feedback-synthesizer.md +175 -0
  747. package/dist/vendor/marketplace/zh/product/product-manager.md +474 -0
  748. package/dist/vendor/marketplace/zh/product/product-sprint-prioritizer.md +133 -0
  749. package/dist/vendor/marketplace/zh/product/product-trend-researcher.md +143 -0
  750. package/dist/vendor/marketplace/zh/project-management/project-management-experiment-tracker.md +206 -0
  751. package/dist/vendor/marketplace/zh/project-management/project-management-jira-workflow-steward.md +249 -0
  752. package/dist/vendor/marketplace/zh/project-management/project-management-project-shepherd.md +202 -0
  753. package/dist/vendor/marketplace/zh/project-management/project-management-studio-operations.md +208 -0
  754. package/dist/vendor/marketplace/zh/project-management/project-management-studio-producer.md +211 -0
  755. package/dist/vendor/marketplace/zh/project-management/project-manager-senior.md +135 -0
  756. package/dist/vendor/marketplace/zh/sales/sales-account-strategist.md +243 -0
  757. package/dist/vendor/marketplace/zh/sales/sales-coach.md +291 -0
  758. package/dist/vendor/marketplace/zh/sales/sales-deal-strategist.md +204 -0
  759. package/dist/vendor/marketplace/zh/sales/sales-discovery-coach.md +230 -0
  760. package/dist/vendor/marketplace/zh/sales/sales-engineer.md +200 -0
  761. package/dist/vendor/marketplace/zh/sales/sales-outbound-strategist.md +208 -0
  762. package/dist/vendor/marketplace/zh/sales/sales-pipeline-analyst.md +284 -0
  763. package/dist/vendor/marketplace/zh/sales/sales-proposal-strategist.md +233 -0
  764. package/dist/vendor/marketplace/zh/spatial-computing/macos-spatial-metal-engineer.md +337 -0
  765. package/dist/vendor/marketplace/zh/spatial-computing/terminal-integration-specialist.md +236 -0
  766. package/dist/vendor/marketplace/zh/spatial-computing/visionos-spatial-engineer.md +282 -0
  767. package/dist/vendor/marketplace/zh/spatial-computing/xr-cockpit-interaction-specialist.md +220 -0
  768. package/dist/vendor/marketplace/zh/spatial-computing/xr-immersive-developer.md +229 -0
  769. package/dist/vendor/marketplace/zh/spatial-computing/xr-interface-architect.md +253 -0
  770. package/dist/vendor/marketplace/zh/specialized/accounts-payable-agent.md +212 -0
  771. package/dist/vendor/marketplace/zh/specialized/agentic-identity-trust.md +388 -0
  772. package/dist/vendor/marketplace/zh/specialized/agents-orchestrator.md +366 -0
  773. package/dist/vendor/marketplace/zh/specialized/automation-governance-architect.md +215 -0
  774. package/dist/vendor/marketplace/zh/specialized/blockchain-security-auditor.md +484 -0
  775. package/dist/vendor/marketplace/zh/specialized/compliance-auditor.md +172 -0
  776. package/dist/vendor/marketplace/zh/specialized/corporate-training-designer.md +191 -0
  777. package/dist/vendor/marketplace/zh/specialized/data-consolidation-agent.md +327 -0
  778. package/dist/vendor/marketplace/zh/specialized/gaokao-college-advisor.md +333 -0
  779. package/dist/vendor/marketplace/zh/specialized/government-digital-presales-consultant.md +362 -0
  780. package/dist/vendor/marketplace/zh/specialized/healthcare-customer-service.md +388 -0
  781. package/dist/vendor/marketplace/zh/specialized/healthcare-marketing-compliance.md +394 -0
  782. package/dist/vendor/marketplace/zh/specialized/hospitality-guest-services.md +597 -0
  783. package/dist/vendor/marketplace/zh/specialized/hr-onboarding.md +450 -0
  784. package/dist/vendor/marketplace/zh/specialized/identity-graph-operator.md +270 -0
  785. package/dist/vendor/marketplace/zh/specialized/language-translator.md +275 -0
  786. package/dist/vendor/marketplace/zh/specialized/legal-billing-time-tracking.md +566 -0
  787. package/dist/vendor/marketplace/zh/specialized/legal-client-intake.md +487 -0
  788. package/dist/vendor/marketplace/zh/specialized/legal-document-review.md +452 -0
  789. package/dist/vendor/marketplace/zh/specialized/livestock-archive-auditor.md +135 -0
  790. package/dist/vendor/marketplace/zh/specialized/loan-officer-assistant.md +549 -0
  791. package/dist/vendor/marketplace/zh/specialized/lsp-index-engineer.md +334 -0
  792. package/dist/vendor/marketplace/zh/specialized/prompt-engineer.md +176 -0
  793. package/dist/vendor/marketplace/zh/specialized/real-estate-buyer-seller.md +594 -0
  794. package/dist/vendor/marketplace/zh/specialized/recruitment-specialist.md +508 -0
  795. package/dist/vendor/marketplace/zh/specialized/report-distribution-agent.md +354 -0
  796. package/dist/vendor/marketplace/zh/specialized/retail-customer-returns.md +564 -0
  797. package/dist/vendor/marketplace/zh/specialized/sales-data-extraction-agent.md +159 -0
  798. package/dist/vendor/marketplace/zh/specialized/specialized-ai-policy-writer.md +217 -0
  799. package/dist/vendor/marketplace/zh/specialized/specialized-chief-of-staff.md +278 -0
  800. package/dist/vendor/marketplace/zh/specialized/specialized-civil-engineer.md +355 -0
  801. package/dist/vendor/marketplace/zh/specialized/specialized-cultural-intelligence-strategist.md +168 -0
  802. package/dist/vendor/marketplace/zh/specialized/specialized-developer-advocate.md +334 -0
  803. package/dist/vendor/marketplace/zh/specialized/specialized-document-generator.md +346 -0
  804. package/dist/vendor/marketplace/zh/specialized/specialized-french-consulting-market.md +191 -0
  805. package/dist/vendor/marketplace/zh/specialized/specialized-korean-business-navigator.md +215 -0
  806. package/dist/vendor/marketplace/zh/specialized/specialized-mcp-builder.md +351 -0
  807. package/dist/vendor/marketplace/zh/specialized/specialized-meeting-assistant.md +236 -0
  808. package/dist/vendor/marketplace/zh/specialized/specialized-model-qa.md +507 -0
  809. package/dist/vendor/marketplace/zh/specialized/specialized-pricing-optimizer.md +254 -0
  810. package/dist/vendor/marketplace/zh/specialized/specialized-risk-assessor.md +240 -0
  811. package/dist/vendor/marketplace/zh/specialized/specialized-salesforce-architect.md +179 -0
  812. package/dist/vendor/marketplace/zh/specialized/specialized-workflow-architect.md +596 -0
  813. package/dist/vendor/marketplace/zh/specialized/study-abroad-advisor.md +281 -0
  814. package/dist/vendor/marketplace/zh/specialized/technical-translator-agent.md +167 -0
  815. package/dist/vendor/marketplace/zh/specialized/zk-steward.md +228 -0
  816. package/dist/vendor/marketplace/zh/supply-chain/supply-chain-inventory-forecaster.md +212 -0
  817. package/dist/vendor/marketplace/zh/supply-chain/supply-chain-route-optimizer.md +224 -0
  818. package/dist/vendor/marketplace/zh/supply-chain/supply-chain-strategist.md +581 -0
  819. package/dist/vendor/marketplace/zh/supply-chain/supply-chain-vendor-evaluator.md +232 -0
  820. package/dist/vendor/marketplace/zh/support/support-analytics-reporter.md +364 -0
  821. package/dist/vendor/marketplace/zh/support/support-executive-summary-generator.md +217 -0
  822. package/dist/vendor/marketplace/zh/support/support-finance-tracker.md +447 -0
  823. package/dist/vendor/marketplace/zh/support/support-infrastructure-maintainer.md +623 -0
  824. package/dist/vendor/marketplace/zh/support/support-legal-compliance-checker.md +587 -0
  825. package/dist/vendor/marketplace/zh/support/support-recruitment-specialist.md +508 -0
  826. package/dist/vendor/marketplace/zh/support/support-support-responder.md +584 -0
  827. package/dist/vendor/marketplace/zh/testing/testing-accessibility-auditor.md +329 -0
  828. package/dist/vendor/marketplace/zh/testing/testing-api-tester.md +305 -0
  829. package/dist/vendor/marketplace/zh/testing/testing-embedded-qa-engineer.md +258 -0
  830. package/dist/vendor/marketplace/zh/testing/testing-evidence-collector.md +153 -0
  831. package/dist/vendor/marketplace/zh/testing/testing-performance-benchmarker.md +196 -0
  832. package/dist/vendor/marketplace/zh/testing/testing-reality-checker.md +235 -0
  833. package/dist/vendor/marketplace/zh/testing/testing-test-results-analyzer.md +313 -0
  834. package/dist/vendor/marketplace/zh/testing/testing-tool-evaluator.md +402 -0
  835. package/dist/vendor/marketplace/zh/testing/testing-workflow-optimizer.md +458 -0
  836. package/package.json +131 -0
  837. package/scripts/postinstall-native-artifacts.mjs +113 -0
  838. package/web/dist/assets/AddWorkerDialog-BU2Fn-Mx.js +2 -0
  839. package/web/dist/assets/AddWorkspaceFlow-BV04MkRt.js +1 -0
  840. package/web/dist/assets/FirstRunWizard-DS4IYOrd.js +1 -0
  841. package/web/dist/assets/MarketplaceDrawer-CIQ2B6Fx.js +76 -0
  842. package/web/dist/assets/TaskGraphDrawer-BPMcRocd.js +1 -0
  843. package/web/dist/assets/WhatsNewDialog-DEgVY_LD.js +1 -0
  844. package/web/dist/assets/WorkerModal-DiCcTPpc.js +1 -0
  845. package/web/dist/assets/WorkflowsDrawer-M2CgAJWK.js +1 -0
  846. package/web/dist/assets/WorkspaceMemoryDrawer-ClJIqWck.js +1 -0
  847. package/web/dist/assets/WorkspaceTaskDrawer-gjvXuZ2K.js +1 -0
  848. package/web/dist/assets/addon-clipboard-wHJhZAA4.js +1 -0
  849. package/web/dist/assets/addon-fit-DX4qG4td.js +1 -0
  850. package/web/dist/assets/addon-unicode11-Bt8F3D7-.js +7 -0
  851. package/web/dist/assets/addon-web-links-DIbG5aQx.js +1 -0
  852. package/web/dist/assets/addon-webgl-DCtw1yLn.js +64 -0
  853. package/web/dist/assets/finder-C4Jmsb0B.png +0 -0
  854. package/web/dist/assets/ghostty-D-Js4rdm.png +0 -0
  855. package/web/dist/assets/index-bOMtwrkA.js +73 -0
  856. package/web/dist/assets/index-i9YgsMdD.css +1 -0
  857. package/web/dist/assets/path-join-7MR1s7b1.js +1 -0
  858. package/web/dist/assets/search-CmzeVhy0.js +1 -0
  859. package/web/dist/assets/xterm-B-qIQCd3.js +16 -0
  860. package/web/dist/assets/zed-C5BQT8X3.png +0 -0
  861. package/web/dist/bilibili.ico +0 -0
  862. package/web/dist/cli-icons/claude.png +0 -0
  863. package/web/dist/cli-icons/codex.png +0 -0
  864. package/web/dist/cli-icons/gemini.png +0 -0
  865. package/web/dist/cli-icons/hermes.png +0 -0
  866. package/web/dist/cli-icons/opencode.svg +18 -0
  867. package/web/dist/icons/apple-touch-icon-180.png +0 -0
  868. package/web/dist/icons/icon-192.png +0 -0
  869. package/web/dist/icons/icon-32.png +0 -0
  870. package/web/dist/icons/icon-512-maskable.png +0 -0
  871. package/web/dist/icons/icon-512.png +0 -0
  872. package/web/dist/index.html +39 -0
  873. package/web/dist/logo.png +0 -0
  874. package/web/dist/manifest.webmanifest +60 -0
  875. package/web/dist/screenshots/wide-overview.png +0 -0
  876. package/web/dist/sounds/LICENSE-KENNEY.txt +22 -0
  877. package/web/dist/sounds/hive-beacon.ogg +0 -0
  878. package/web/dist/sounds/hive-cascade.ogg +0 -0
  879. package/web/dist/sounds/hive-chime.ogg +0 -0
  880. package/web/dist/sounds/hive-ping.ogg +0 -0
  881. package/web/dist/sounds/hive-resolve.ogg +0 -0
  882. package/web/dist/sounds/hive-soft.ogg +0 -0
  883. package/web/dist/sw.js +99 -0
@@ -0,0 +1 @@
1
+ import{c as D,j as e,K as L,_ as le,a0 as ie,u as oe,R as re,P as ce,O as de,C as ue,r as f,a1 as pe,T as M,X as he,E as xe,h as W,i as ee,a2 as q,q as me,a3 as ke,Q as fe,t as ge,a4 as be,m as je}from"./index-bOMtwrkA.js";import{j as we}from"./path-join-7MR1s7b1.js";const ye=[["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"}]],I=D("at-sign",ye);const ve=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],Ne=D("circle",ve);const _e=[["path",{d:"m15 10 5 5-5 5",key:"qqa56n"}],["path",{d:"M4 4v7a4 4 0 0 0 4 4h12",key:"z08zvw"}]],U=D("corner-down-right",_e);const Te=[["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"}]],Ce=D("file-code",Te);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 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]],te=D("file-text",$e);const ze=[["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"}]],Se=D("save",ze),V=t=>{const n=[];let l="",a=0;const c=()=>{l&&(n.push(l),l="")};let i=0;for(;i<t.length;){const o=t.slice(i),r=o.match(/^\*\*([^*]+?)\*\*/);if(r?.[1]){c(),n.push(e.jsx("strong",{children:V(r[1])},a++)),i+=r[0].length;continue}const s=o.match(/^`([^`]+?)`/);if(s?.[1]){c(),n.push(e.jsx("code",{className:"mono",children:s[1]},a++)),i+=s[0].length;continue}const u=o.match(/^\*([^*]+?)\*/);if(u?.[1]){c(),n.push(e.jsx("em",{children:V(u[1])},a++)),i+=u[0].length;continue}l+=t[i],i+=1}return c(),n},Ee=({content:t,hasConflict:n,onContentChange:l,onKeepLocal:a,onReload:c,onSave:i})=>{const{t:o}=L(),r=s=>{s.preventDefault(),i()};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:o("tasks.raw.label")}),e.jsx("span",{className:"mono text-xs text-ter",children:o("tasks.raw.lineCount",{count:t.split(/\r?\n/).length})})]}),e.jsx("textarea",{"aria-label":o("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(le,{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:o("tasks.raw.conflictTitle")}),e.jsx("p",{className:"mt-1 text-ter",children:o("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}),o("tasks.raw.reload")]}),e.jsx("button",{type:"button",onClick:a,className:"icon-btn",children:o("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(Se,{size:14}),o("tasks.raw.save")]})})]})},H=["#a78bfa","#60a5fa","#5eead4","#86efac","#fde047","#fb923c","#f9a8d4","#fca5a5"],se=t=>{let n=0;for(let l=0;l<t.length;l+=1)n=n*31+t.charCodeAt(l)>>>0;return H[n%H.length]??H[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"}],G=new Set(["owner","assignee","负责","负责人","执行人"]),X=new Set(["status","状态"]),Y=new Set(["报告","report","文件","file","path","日志","log","产物"]),De=/^(.*?)\s*\(([^()]+)\)\s*$/,Re=/\s*[·,,;;]\s*/,Ae=/^([^::]+)[::]\s*(.+)$/,Le=t=>{for(const{pattern:n,tone:l}of Me)if(n.test(t))return l;return"neutral"},Pe=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),Ke=t=>{const n=t.match(De);if(!n)return{title:t,meta:[]};const[,l="",a=""]=n;if(!a.trim())return{title:t,meta:[]};const c=a.split(Re).filter(Boolean),i=[];for(const o of c){const r=o.match(Ae);if(!r){i.push({kind:"note",value:o.trim()});continue}const s=(r[1]??"").trim(),u=(r[2]??"").trim(),d=s.toLowerCase();G.has(d)||G.has(s)?i.push({kind:"owner",value:u}):X.has(d)||X.has(s)?i.push({kind:"status",value:u,tone:Le(u)}):Y.has(d)||Y.has(s)||Pe(u)?i.push({kind:"path",label:s,value:u}):i.push({kind:"note",value:`${s}: ${u}`})}return{title:l.trim(),meta:i}},Z=3,Ie=({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":se(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(I,{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(I,{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(te,{size:10,"aria-hidden":!0}),t.value]}):e.jsx("span",{className:"text-xs text-ter","data-testid":"task-meta-note",children:t.value})},Q=({initial:t,onSubmit:n,onCancel:l,placeholder:a})=>{const[c,i]=f.useState(t),o=()=>{const s=c.trim();if(!s){l();return}n(s)},r=s=>{s.key==="Enter"?(s.preventDefault(),o()):s.key==="Escape"&&(s.preventDefault(),l())};return e.jsx("input",{type:"text",autoFocus:!0,value:c,placeholder:a,onChange:s=>i(s.target.value),onKeyDown:r,onBlur:o,"data-testid":"task-inline-input",className:"task-row__input"})},B=({task:t,handlers:n,depth:l})=>{const{t:a}=L(),c=t.checked?me:Ne,{title:i,meta:o}=Ke(t.text),[r,s]=f.useState(!1),[u,d]=f.useState(!1),[g,_]=f.useState(!1),[w,v]=f.useState(!1),x=f.useRef(null);f.useEffect(()=>()=>{x.current&&clearTimeout(x.current)},[]);const{onToggle:p,onUpdateText:y,onDelete:T,onAppendSubtask:R,onCopyLine:C,onSelectOwner:m,writeDisabled:b=!1}=n,z=!!y&&!b,$=!!T&&!b,P=!!R&&!b,S=!!C,A=!r&&!u&&(z||$||P||S),E=t.children.length,N=ke(t),k=l+1>=Z,K=E>0,O=g?a("tasks.aria.expandSubtasks",{count:E}):a("tasks.aria.collapseSubtasks",{count:E}),ae=m?{onSelectOwner:m}:{};return e.jsxs("li",{className:"task-node","data-testid":`task-line-${t.line}`,children:[e.jsxs("div",{className:"task-row group",children:[l>=Z?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:b,onChange:()=>{b||p(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(Q,{initial:t.text,placeholder:a("tasks.placeholder.editTask"),onSubmit:h=>{s(!1),y?.(t.line,h)},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:V(i)}),K?e.jsx("button",{type:"button",className:"task-row__collapse",onClick:h=>{h.stopPropagation(),_(j=>!j)},"data-testid":`task-collapse-${t.line}`,"aria-expanded":!g,"aria-label":O,children:g?e.jsx(ee,{size:12,"aria-hidden":!0}):e.jsx(W,{size:12,"aria-hidden":!0})}):null,N?e.jsxs("span",{className:"task-child-count mono","data-testid":`task-progress-${t.line}`,title:a("tasks.progress.subtaskTitle",{done:N.done,total:N.total}),children:[N.done,"/",N.total]}):null]}),o.length>0||t.mentions.length>0?e.jsxs("span",{className:"mt-1.5 flex flex-wrap items-center gap-1.5",children:[o.map(h=>e.jsx(Ie,{item:h,handlers:ae},`${t.line}-meta-${h.kind}-${"label"in h?h.label:""}-${h.value}`)),t.mentions.map(h=>{const j=h.replace(/^@/,""),F={"--owner-tone":se(j)};return m?e.jsxs("button",{type:"button",className:"task-owner task-owner--clickable","data-testid":`task-mention-${j}`,"data-owner":j,onClick:ne=>{ne.stopPropagation(),m(j)},style:F,children:[e.jsx(I,{size:10,"aria-hidden":!0}),j]},`${t.line}-mention-${h}`):e.jsxs("span",{className:"task-owner","data-testid":`task-mention-${j}`,"data-owner":j,style:F,children:[e.jsx(I,{size:10,"aria-hidden":!0}),j]},`${t.line}-mention-${h}`)})]}):null]})}),A?e.jsxs("div",{className:"task-row__actions pointer-coarse:opacity-100",children:[S?e.jsx(M,{label:a(w?"tasks.action.copied":"tasks.action.copyLine"),children:e.jsx("button",{type:"button",className:"task-row__action pointer-coarse:h-10 pointer-coarse:w-10",onClick:()=>{C?.(t.line),v(!0),x.current&&clearTimeout(x.current),x.current=setTimeout(()=>{v(!1),x.current=null},1500)},"data-testid":`task-copy-${t.line}`,"aria-label":a(w?"tasks.aria.copiedTaskLine":"tasks.aria.copyTaskLine"),children:w?e.jsx(fe,{size:12}):e.jsx(ge,{size:12})})}):null,z?e.jsx(M,{label:a("tasks.action.edit"),children:e.jsx("button",{type:"button",className:"task-row__action pointer-coarse:h-10 pointer-coarse:w-10",onClick:()=>s(!0),"data-testid":`task-edit-${t.line}`,"aria-label":a("tasks.aria.editTask"),children:e.jsx(be,{size:12})})}):null,P?e.jsx(M,{label:a("tasks.action.addSubtask"),children:e.jsx("button",{type:"button",className:"task-row__action pointer-coarse:h-10 pointer-coarse:w-10",onClick:()=>{_(!1),d(!0)},"data-testid":`task-add-subtask-${t.line}`,"aria-label":a("tasks.aria.addSubtask"),children:e.jsx(U,{size:12})})}):null,$?e.jsx(M,{label:a("tasks.action.delete"),children:e.jsx("button",{type:"button",className:"task-row__action task-row__action--danger pointer-coarse:h-10 pointer-coarse:w-10",onClick:()=>T?.(t.line),"data-testid":`task-delete-${t.line}`,"aria-label":a("tasks.aria.deleteTask"),children:e.jsx(je,{size:12})})}):null]}):null]}),E>0&&!g||u?e.jsxs("ul",{className:`task-children${k?" task-children--deep":""}`,"data-testid":`task-children-${t.line}`,children:[g?null:t.children.map(h=>e.jsx(B,{depth:l+1,handlers:n,task:h},h.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(U,{size:12})}),e.jsx(Q,{initial:"",placeholder:a("tasks.placeholder.newSubtask"),onSubmit:h=>{d(!1),R?.(t.line,h)},onCancel:()=>d(!1)})]})}):null]}):null]})},J=({onSubmit:t,disabled:n=!1,variant:l="ghost"})=>{const{t:a}=L(),[c,i]=f.useState(!1),[o,r]=f.useState(""),s=()=>{const d=o.trim();if(!d){i(!1);return}t(d),r("")},u=d=>{d.key==="Enter"?(d.preventDefault(),s()):d.key==="Escape"&&(d.preventDefault(),r(""),i(!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(q,{size:12})}),e.jsx("input",{type:"text",autoFocus:!0,value:o,placeholder:a("tasks.placeholder.newTask"),onChange:d=>r(d.target.value),onKeyDown:u,onBlur:s,"data-testid":"task-add-input",className:"task-add-input__field"})]}):e.jsxs("button",{type:"button",onClick:()=>i(!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(q,{size:12})}),e.jsx("span",{children:a("tasks.button.addTask")})]})},Oe=t=>{let n=0,l=0;const a=[],c=[],i=r=>{n+=1,r.checked&&(l+=1);for(const s of r.children)i(s)};for(const r of t)r.checked?c.push(r):a.push(r),i(r);const o=n===0?0:Math.round(l/n*100);return{completedTasks:l,completionPercent:o,doneRoots:c,openRoots:a,totalTasks:n}},He=({content:t,hasConflict:n,onClose:l,onContentChange:a,onKeepLocal:c,onReload:i,onSave:o,onToggleTaskLine:r,onAppendTask:s,onAppendSubtask:u,onUpdateTaskText:d,onDeleteTask:g,workspacePath:_,knownWorkerNames:w,onSelectOwner:v,connectionStale:x=!1})=>{const{t:p}=L(),[y,T]=f.useState(!1),C={onToggle:r,onCopyLine:k=>{const K=t.split(/\r?\n/)[k];typeof K=="string"&&navigator.clipboard?.writeText(K).catch(O=>{console.error("[hive] swallowed:tasks.copyLine",O)})},...d&&!x?{onUpdateText:d}:{},...g&&!x?{onDelete:g}:{},...u&&!x?{onAppendSubtask:u}:{},...v?{onSelectOwner:v}:{},...x?{writeDisabled:!0}:{}},m=f.useMemo(()=>pe(t,w?{knownWorkerNames:w}:{}),[t,w]),{completedTasks:b,completionPercent:z,doneRoots:$,openRoots:P,totalTasks:S}=f.useMemo(()=>Oe(m),[m]),[A,E]=f.useState($.length<=3),N=_?we(_,".hive","tasks.md"):".hive/tasks.md";return e.jsxs("div",{className:"flex h-full min-h-0 flex-col","data-testid":"task-graph-content",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("span",{className:"text-base font-semibold text-pri leading-tight",children:p("tasks.title.todo")}),e.jsx("span",{className:"mono truncate text-xs text-ter",title:N,children:N})]}),S>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:[b," / ",S]})," ","· ",z,"%"]}):null,e.jsx(M,{label:p(y?"tasks.action.backToList":"tasks.action.viewSource"),children:e.jsx("button",{type:"button",onClick:()=>T(k=>!k),"data-testid":"task-raw-toggle",className:"icon-btn pointer-coarse:min-h-10","aria-label":p(y?"tasks.action.backToList":"tasks.action.viewSource"),children:e.jsx(Ce,{size:14})})}),l?e.jsx(M,{label:p("tasks.action.closeTodo"),children:e.jsx("button",{type:"button",onClick:l,"aria-label":p("tasks.action.closeTodo"),className:"icon-btn pointer-coarse:min-h-10",children:e.jsx(he,{size:14})})}):null]}),!y&&S>0?e.jsx("div",{"aria-label":p("tasks.aria.progress"),"aria-valuemax":100,"aria-valuemin":0,"aria-valuenow":z,className:"task-progress-thin task-drawer__progress","data-testid":"task-progress-bar",role:"progressbar",children:e.jsx("span",{style:{width:`${z}%`}})}):null,e.jsx("div",{className:"scroll-y flex-1 px-4 py-3 text-sm",children:y?e.jsx(Ee,{content:t,hasConflict:n,onContentChange:a,onKeepLocal:c,onReload:i,onSave:o}):m.length===0?e.jsx("div",{className:"flex h-full items-center justify-center",children:e.jsx(xe,{icon:e.jsx(te,{size:20}),title:p("tasks.empty.title"),description:p("tasks.empty.description"),...s?{action:e.jsx(J,{variant:"primary",disabled:x,onSubmit:s})}:{}})}):e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsxs("ul",{className:"task-list","data-testid":"task-graph-list",children:[P.map(k=>e.jsx(B,{depth:0,handlers:C,task:k},k.line)),s?e.jsx("li",{children:e.jsx(J,{disabled:x,onSubmit:s})}):null]}),$.length>0?e.jsxs("div",{className:"mt-1",children:[e.jsxs("button",{type:"button",onClick:()=>E(k=>!k),"aria-expanded":A,"data-testid":"task-completed-toggle",className:"task-completed-toggle pointer-coarse:min-h-10",children:[A?e.jsx(W,{size:12,"aria-hidden":!0}):e.jsx(ee,{size:12,"aria-hidden":!0}),e.jsx("span",{children:p("tasks.completed.toggle",{count:$.length})})]}),A?e.jsx("ul",{className:"task-list","data-testid":"task-completed-list",children:$.map(k=>e.jsx(B,{depth:0,handlers:C,task:k},k.line))}):null]}):null]})})]})},Fe=({content:t,hasConflict:n,onClose:l,onContentChange:a,onKeepLocal:c,onReload:i,onSave:o,onToggleTaskLine:r,onAppendTask:s,onAppendSubtask:u,onUpdateTaskText:d,onDeleteTask:g,open:_,workspacePath:w,knownWorkerNames:v,onSelectOwner:x,connectionStale:p=!1})=>{const{t:y}=L(),T=oe(),R=m=>{if(m.key!=="Escape")return;const b=m.target?.tagName;b==="INPUT"||b==="TEXTAREA"||(m.preventDefault(),l())},C=`dialog-scale-pop elev-2 task-dialog__content pointer-events-auto flex flex-col rounded-lg border${p?" task-dialog--stale":""}`;return e.jsx(re,{open:_,onOpenChange:m=>!m&&l(),children:e.jsxs(ce,{children:[e.jsx(de,{"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.jsx(ue,{"aria-label":y("tasks.aria.drawer"),"data-testid":"task-graph-drawer","data-connection-stale":p||void 0,"data-mobile":T||void 0,onEscapeKeyDown:m=>m.preventDefault(),onKeyDown:R,className:C,style:T?{background:"var(--bg-1)",borderColor:"var(--border-bright)"}:{background:"var(--bg-1)",borderColor:"var(--border-bright)",height:"min(780px, calc(100vh - 48px))",width:"min(1040px, calc(100vw - 48px))"},children:e.jsx(He,{content:t,hasConflict:n,onClose:l,onContentChange:a,onKeepLocal:c,onReload:i,onSave:o,onToggleTaskLine:r,workspacePath:w,...s?{onAppendTask:s}:{},...u?{onAppendSubtask:u}:{},...d?{onUpdateTaskText:d}:{},...g?{onDeleteTask:g}:{},...v?{knownWorkerNames:v}:{},...x?{onSelectOwner:x}:{},...p?{connectionStale:p}:{}})})})]})})};export{He as TaskGraphContent,Fe as TaskGraphDrawer};
@@ -0,0 +1 @@
1
+ import{K as x,j as e,R as d,P as m,O as p,C as h,S as j,d as v,U as f}from"./index-bOMtwrkA.js";const N=({open:n,entries:r,onClose:t})=>{const{t:a,language:i}=x(),c=s=>{s||t()};return e.jsx(d,{open:n,onOpenChange:c,children:e.jsxs(m,{children:[e.jsx(p,{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(h,{"aria-label":a("whatsNew.title"),className:"dialog-scale-pop elev-2 pointer-events-auto flex max-h-[calc(100vh-64px)] w-[480px] max-w-[calc(100vw-32px)] flex-col rounded-lg border p-6",style:{background:"var(--bg-elevated)",borderColor:"var(--border-bright)"},children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{"aria-hidden":!0,className:"flex h-10 w-10 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(j,{size:20})}),e.jsxs("div",{children:[e.jsx(v,{className:"text-lg font-semibold text-pri",children:a("whatsNew.title")}),e.jsx(f,{className:"text-xs text-ter",children:a("whatsNew.subtitle")})]})]}),e.jsx("div",{className:"-mr-2 mt-4 flex flex-col gap-5 overflow-y-auto pr-2",children:r.map(s=>{const o=i==="zh"?s.zh:s.en;return e.jsxs("section",{className:"flex flex-col gap-2",children:[e.jsxs("div",{className:"flex items-baseline gap-2",children:[e.jsx("span",{className:"text-sm font-medium text-pri",children:a("whatsNew.versionLabel",{version:s.version})}),e.jsx("span",{className:"text-xs text-ter",children:s.date})]}),e.jsx("ul",{className:"flex flex-col gap-1.5",children:o.map(l=>e.jsxs("li",{className:"flex items-start gap-2 text-sm text-sec",children:[e.jsx("span",{"aria-hidden":!0,className:"mt-1.5 h-1 w-1 shrink-0 rounded-full bg-accent"}),e.jsx("span",{children:l})]},l))})]},s.version)})}),e.jsx("div",{className:"mt-5 flex justify-end",children:e.jsx("button",{type:"button",onClick:t,className:"icon-btn icon-btn--primary justify-center",children:a("whatsNew.gotIt")})})]})})]})})};export{N as WhatsNewDialog};
@@ -0,0 +1 @@
1
+ import{r as d,K as z,u as k,a9 as f,j as e,R,P as C,O as N,C as M,d as E,U as S,_ as L,T,v as D,X as I,aa as O,k as W,ab as A,ac as P}from"./index-bOMtwrkA.js";const _=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)}}},y="hive.worker-modal.width",u=480,F=.5,x=t=>{const o=typeof window<"u"?window.innerWidth-24:1200;return Math.min(Math.max(t,u),Math.max(u,o))},g=()=>typeof window>"u"?u:x(Math.round(window.innerWidth*F)),K=()=>{try{const t=localStorage.getItem(y);if(!t)return g();const o=Number.parseInt(t,10);return Number.isFinite(o)?x(o):g()}catch{return g()}},$=()=>{const[t,o]=d.useState(()=>K()),[m,c]=d.useState(!1);d.useEffect(()=>{try{localStorage.setItem(y,String(Math.round(t)))}catch{}},[t]),d.useEffect(()=>{const s=()=>{o(a=>x(a))};return window.addEventListener("resize",s),()=>window.removeEventListener("resize",s)},[]);const p=d.useCallback(s=>a=>{a.preventDefault();const r=a.clientX,h=t;c(!0);const b=document.body.style.cursor,v=document.body.style.userSelect;document.body.style.cursor="col-resize",document.body.style.userSelect="none";const n=i=>{const w=i.clientX-r,j=s==="left"?h-2*w:h+2*w;o(x(j))},l=()=>{c(!1),document.body.style.cursor=b,document.body.style.userSelect=v,document.removeEventListener("pointermove",n),document.removeEventListener("pointerup",l),document.removeEventListener("pointercancel",l)};document.addEventListener("pointermove",n),document.addEventListener("pointerup",l),document.addEventListener("pointercancel",l)},[t]);return{width:t,resizing:m,beginResize:p}},X=({onClose:t,onStart:o,runId:m,startError:c,starting:p,worker:s})=>{const{t:a}=z(),r=k(),h=_(s.role),b=!!m,v=A(b),n=$();d.useLayoutEffect(()=>{if(!r)return;const i=P();return f(!0),()=>f(i)},[r]);const l=i=>{i||t()};return e.jsx(R,{open:!0,onOpenChange:l,children:e.jsxs(C,{children:[e.jsx(N,{"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(M,{"data-testid":"worker-modal","aria-label":a("worker.detail",{name:s.name}),className:"dialog-scale-pop pointer-events-auto relative flex h-screen max-h-screen max-w-full flex-col overflow-hidden","data-mobile":r||void 0,onEscapeKeyDown:i=>i.preventDefault(),style:r?{background:"var(--bg-1)"}:{background:"var(--bg-1)",width:`${n.width}px`},children:[r?null:e.jsxs(e.Fragment,{children:[e.jsx("div",{role:"separator","aria-orientation":"vertical","aria-label":a("worker.widthResize"),"aria-valuemin":u,"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":a("worker.widthResize"),"aria-valuemin":u,"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(E,{className:"sr-only",children:s.name}),e.jsxs(S,{className:"sr-only",children:[h.label," agent — status ",v.label]}),c?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(L,{size:12,"aria-hidden":!0}),e.jsx("span",{className:"break-words",children:c})]}):null,e.jsxs("div",{className:`relative flex min-h-0 flex-1 flex-col${r?"":" p-3"}`,"data-testid":"worker-modal-terminal-slot",children:[e.jsx(T,{label:a("common.close"),children:e.jsx(D,{asChild:!0,children:e.jsx("button",{type:"button","aria-label":"Close worker detail","data-testid":"worker-modal-close",className:`float-action absolute z-10 ${r?"top-2 right-2":"top-4 right-4"}`,style:r?{minHeight:44,minWidth:44}:void 0,children:e.jsx(I,{size:r?16:14,"aria-hidden":!0})})})}),e.jsx("div",{className:`flex min-h-0 flex-1${r?"":" rounded-lg border"}`,style:{background:"var(--bg-crust)",borderColor:"var(--border)"},children:b?e.jsx("div",{id:`worker-pty-${m}`,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(O,{commandPresetId:s.commandPresetId,workerRole:s.role,size:48}),e.jsx("div",{className:"text-sm text-pri",children:s.name}),e.jsxs("div",{className:"text-xs text-ter",children:[s.status==="stopped"?a("worker.terminalStopped"):a("worker.terminalNotStarted"),s.pendingTaskCount>0?a("worker.pendingResume",{count:s.pendingTaskCount}):a("worker.startAgent")]}),e.jsxs("button",{type:"button",onClick:()=>o(s),disabled:p,className:"icon-btn icon-btn--primary","data-testid":"worker-start-empty",children:[e.jsx(W,{size:12,"aria-hidden":!0})," ",a(p?"common.starting":"common.start")]})]})})]})]})})]})})};export{X as WorkerModal};
@@ -0,0 +1 @@
1
+ import{c as C,r as d,l as I,a as F,g as q,j as e,s as H,T as v,X as M,E as U,b as S,u as V,R as P,P as L,O as E,C as W,d as D,e as X,f as B,h as A,i as O,k as J,m as G,n as K,o as Q,p as Y,q as Z,L as ee,t as $,M as te,v as se,w as ae}from"./index-bOMtwrkA.js";const re=[["path",{d:"M16 14v2.2l1.6 1",key:"fo4ql5"}],["path",{d:"M16 2v4",key:"4m81vk"}],["path",{d:"M21 7.5V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h3.5",key:"1osxxc"}],["path",{d:"M3 10h5",key:"r794hk"}],["path",{d:"M8 2v4",key:"1cmpym"}],["circle",{cx:"16",cy:"16",r:"6",key:"qoo3c4"}]],le=C("calendar-clock",re);const ne=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M8 12h8",key:"1wcyev"}]],R=C("circle-minus",ne);const oe=[["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"M2.586 16.726A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2h6.624a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586z",key:"2d38gg"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]],ie=C("octagon-x",oe);const ce=[["rect",{x:"14",y:"3",width:"5",height:"18",rx:"1",key:"kaeet6"}],["rect",{x:"5",y:"3",width:"5",height:"18",rx:"1",key:"1wsw3u"}]],de=C("pause",ce),T=2e3,ue=({workspaceId:t,enabled:s})=>{const[a,l]=d.useState([]),[u,n]=d.useState([]),[i,m]=d.useState(null),[w,p]=d.useState(!1),b=d.useRef(!1),x=d.useRef(null),o=d.useCallback(async()=>{if(t)try{const c=await I(t);b.current||l(c)}catch(c){b.current||m(c instanceof Error?c.message:String(c))}},[t]),h=d.useCallback(async()=>{if(t)try{const c=await F(t);b.current||n(c)}catch(c){b.current||m(c instanceof Error?c.message:String(c))}},[t]),r=d.useCallback(async()=>{if(!(!t||!s)){p(!0);try{await Promise.all([o(),h()])}finally{b.current||p(!1)}}},[t,s,o,h]),g=d.useCallback(async()=>{await h()},[h]);return d.useEffect(()=>{if(b.current=!1,!t)return()=>{b.current=!0,x.current&&(clearTimeout(x.current),x.current=null)};m(null),p(!0),Promise.all([o(),h()]).finally(()=>{b.current||p(!1)});const c=async()=>{b.current||(await o(),!b.current&&(x.current=setTimeout(c,T)))};return x.current=setTimeout(c,T),()=>{b.current=!0,x.current&&(clearTimeout(x.current),x.current=null)}},[s,t,o,h]),{runs:a,schedules:u,error:i,loading:w,refresh:r,refreshSchedules:g}},y=[{cli:"claude",label:"Claude Code"},{cli:"codex",label:"Codex"},{cli:"opencode",label:"OpenCode"},{cli:"gemini",label:"Gemini"},{cli:"hermes",label:"Hermes"}],xe=()=>{const[t,s]=d.useState(y.map(r=>r.cli)),[a,l]=d.useState("claude"),[u,n]=d.useState(!1),[i,m]=d.useState(!1),[w,p]=d.useState(null);d.useEffect(()=>{let r=!1;return q().then(g=>{if(r)return;const c=y.map(f=>f.cli).filter(f=>g.allowed.includes(f));s(c.length>0?c:y.map(f=>f.cli)),l(y.some(f=>f.cli===g.default)?g.default:"claude"),n(!0)}).catch(()=>n(!0)),()=>{r=!0}},[]);const b=r=>{p(null),s(g=>{const c=g.includes(r)?g.filter(f=>f!==r):[...g,r];return!c.includes(a)&&c.length>0&&l(c[0]),c})},x=r=>{p(null),l(r),t.includes(r)||s(g=>[...g,r])},o=!i&&t.length>0&&t.includes(a),h=async()=>{if(o){m(!0),p(null);try{const r=await H({default:a,allowed:t}),g=y.map(c=>c.cli).filter(c=>r.allowed.includes(c));s(g),l(r.default),p("saved")}catch{p("error")}finally{m(!1)}}};return e.jsxs("section",{className:"mb-3 rounded border px-2 py-2 text-[11px] leading-snug text-ter",style:{borderColor:"var(--border)"},"data-testid":"workflow-cli-policy",children:[e.jsx("div",{className:"mb-1.5 font-semibold text-sec",children:"Workflow agent CLI"}),e.jsx("p",{className:"mb-2",children:"Which CLI a workflow agent launches when its script doesn't name one, and which CLIs are allowed. Custom role templates keep their own CLI."}),e.jsxs("fieldset",{className:"mb-2 flex flex-wrap items-center gap-3",children:[e.jsx("legend",{className:"mb-1 font-medium text-ter",children:"Default"}),y.map(r=>e.jsxs("label",{className:"flex cursor-pointer items-center gap-1",children:[e.jsx("input",{type:"radio",name:"workflow-default-cli",checked:a===r.cli,onChange:()=>x(r.cli)}),r.label]},r.cli))]}),e.jsxs("fieldset",{className:"mb-2 flex flex-wrap items-center gap-3",children:[e.jsx("legend",{className:"mb-1 font-medium text-ter",children:"Allowed"}),y.map(r=>e.jsxs("label",{className:"flex cursor-pointer items-center gap-1",children:[e.jsx("input",{type:"checkbox",checked:t.includes(r.cli),onChange:()=>b(r.cli)}),r.label]},r.cli))]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("button",{type:"button",className:"icon-btn icon-btn--primary justify-center",onClick:h,disabled:!o,children:i?"Saving…":"Save"}),!o&&t.length===0?e.jsx("span",{style:{color:"var(--text-error)"},children:"Pick at least one CLI"}):null,w==="saved"?e.jsx("span",{style:{color:"var(--accent)"},children:"Saved"}):null,w==="error"?e.jsx("span",{style:{color:"var(--text-error)"},children:"Failed to save"}):null,u?null:e.jsx("span",{children:"Loading…"})]})]})},me={running:e.jsx(ee,{size:14,className:"animate-spin","aria-label":"running"}),completed:e.jsx(Z,{size:14,"aria-label":"completed"}),failed:e.jsx(Y,{size:14,"aria-label":"failed"}),interrupted:e.jsx(R,{size:14,"aria-label":"interrupted"}),stopped:e.jsx(R,{size:14,"aria-label":"stopped"})},pe=t=>{const s=t.split(/[\\/]/);return s[s.length-1]??t},he=t=>{const s=Math.floor((Date.now()-t)/1e3);return s<60?`${s}s ago`:s<3600?`${Math.floor(s/60)}m ago`:s<86400?`${Math.floor(s/3600)}h ago`:`${Math.floor(s/86400)}d ago`},k=(t,s=80)=>{if(!t)return"";const a=t.trim();return a.length<=s?a:`${a.slice(0,s-1)}…`},fe=(t,s)=>{const a=(s??Date.now())-t;if(a<1e3)return`${a}ms`;const l=Math.floor(a/1e3);if(l<60)return`${l}s`;if(l<3600){const i=Math.floor(l/60),m=l%60;return m===0?`${i}m`:`${i}m${m}s`}const u=Math.floor(l/3600),n=Math.floor(l%3600/60);return n===0?`${u}h`:`${u}h${n}m`},be=t=>{if(t==null)return null;if(typeof t=="string")return t;try{return JSON.stringify(t)}catch{return null}},ge=t=>typeof t=="string"?t:JSON.stringify(t,null,2),we=t=>{const s=new Map,a=[];for(const n of t)if(n.parentRunId){const i=s.get(n.parentRunId)??[];i.push(n),s.set(n.parentRunId,i)}else a.push(n);const l=[];for(const n of a){l.push({run:n,depth:0});const i=s.get(n.id)??[];for(const m of i)l.push({run:m,depth:1})}const u=new Set(l.map(n=>n.run.id));for(const n of t)u.has(n.id)||l.push({run:n,depth:0});return l},je={queued:{mark:"○",tone:"text-ter"},submitted:{mark:"◐",tone:"text-accent"},reported:{mark:"●",tone:"text-success"},cancelled:{mark:"⊘",tone:"text-error"}},ye=({dispatch:t})=>{const[s,a]=d.useState(!1),[l,u]=d.useState(null),[n,i]=d.useState(null),m=je[t.status],w=t.label??`step-${t.stepIndex??"?"}`,p=t.reportText?k(t.reportText,80):null,b=t.status==="submitted"&&t.lastPtyLine?k(t.lastPtyLine,80):null,x=t.status==="submitted"?b?null:"awaiting report…":t.status==="cancelled"?"cancelled":t.status==="queued"?"queued":null;return d.useEffect(()=>{if(u(null),i(null),!s)return;let o=!1;return ae(t.workspaceId,t.id).then(h=>{o||u(h)}).catch(h=>{o||i(h instanceof Error?h.message:String(h))}),()=>{o=!0}},[t.id,t.workspaceId,s]),e.jsxs("div",{className:"rounded text-xs","data-testid":`workflow-dispatch-row-${t.id}`,"data-dispatch-status":t.status,children:[e.jsxs("button",{type:"button",onClick:()=>a(o=>!o),className:"flex w-full items-start gap-2 px-2 py-1 text-left hover:bg-[var(--bg-0)] pointer-coarse:min-h-11","aria-expanded":s,children:[e.jsx("span",{className:`mt-0.5 shrink-0 ${m.tone}`,"aria-hidden":!0,children:m.mark}),e.jsxs("span",{className:"mt-0.5 shrink-0 text-ter tabular-nums",children:["#",t.stepIndex??"?"]}),e.jsxs("span",{className:"min-w-0 flex-1",children:[e.jsx("span",{className:"font-mono text-pri",children:w}),p?e.jsxs("span",{className:"ml-2 text-ter",children:["↳ ",p]}):b?e.jsxs("span",{className:"ml-2 font-mono text-ter",title:t.lastPtyLine,"data-testid":`workflow-dispatch-pty-${t.id}`,children:["⟶ ",b]}):x?e.jsx("span",{className:"ml-2 italic text-ter",children:x}):null]})]}),s?e.jsxs("div",{className:"ml-7 mr-2 mb-1 space-y-1 rounded border px-2 py-1.5",style:{borderColor:"var(--border)",background:"var(--bg-0)"},children:[t.text?e.jsxs("div",{children:[e.jsx("div",{className:"mb-0.5 text-[10px] uppercase tracking-wide text-ter",children:"prompt"}),e.jsx("div",{className:"whitespace-pre-wrap text-pri",children:t.text})]}):null,t.reportText?e.jsxs("div",{children:[e.jsx("div",{className:"mt-1 mb-0.5 text-[10px] uppercase tracking-wide text-ter",children:"report"}),e.jsx("div",{className:"whitespace-pre-wrap text-pri",children:t.reportText})]}):null,l&&l.length>0?e.jsxs("div",{children:[e.jsx("div",{className:"mt-1 mb-0.5 text-[10px] uppercase tracking-wide text-ter",children:"memory injected"}),e.jsx("ul",{className:"space-y-1",children:l.map(o=>e.jsxs("li",{className:"break-words text-sec",children:[e.jsxs("span",{className:"text-ter",children:["[",o.memory.kind,"]"]})," ",k(o.memory.body,120)]},o.id))})]}):null,n?e.jsxs("div",{className:"text-error",children:["Memory: ",n]}):null]}):null]})},ve=t=>{const s=[],a=new Map;for(const l of t){const u=l.phase??"—";let n=a.get(u);n||(n={title:u,dispatches:[]},a.set(u,n),s.push(n)),n.dispatches.push(l)}return s},Ne=({group:t,runStatus:s,defaultOpen:a})=>{const[l,u]=d.useState(a),n=t.dispatches.filter(p=>p.status==="reported"||p.status==="cancelled").length,i=t.dispatches.length,m=n===i,w=!m&&s==="running";return e.jsxs("div",{className:"rounded border",style:{borderColor:"var(--border)"},"data-testid":`workflow-phase-${t.title}`,children:[e.jsxs("button",{type:"button",onClick:()=>u(p=>!p),className:"flex w-full items-center gap-2 px-2 py-1.5 text-left text-xs hover:bg-[var(--bg-0)] pointer-coarse:min-h-11","aria-expanded":l,children:[e.jsx("span",{className:"shrink-0 text-ter",children:l?e.jsx(A,{size:12}):e.jsx(O,{size:12})}),e.jsxs("span",{className:"min-w-0 flex-1 truncate",children:[e.jsx("span",{className:"font-semibold text-pri",children:t.title==="—"?"(no phase)":t.title}),e.jsxs("span",{className:"ml-2 text-ter",children:[i," agent",i===1?"":"s"]})]}),e.jsxs("span",{className:`shrink-0 tabular-nums ${m?"text-success":w?"text-accent":"text-ter"}`,children:[n,"/",i,w?" ⟳":m?" ✓":""]})]}),l?e.jsx("div",{className:"space-y-0.5 border-t py-1",style:{borderColor:"var(--border)"},"data-testid":`workflow-phase-body-${t.title}`,children:t.dispatches.map(p=>e.jsx(ye,{dispatch:p},p.id))}):null]})},ke=({runId:t,result:s})=>{const[a,l]=d.useState(!1),[u,n]=d.useState(!1),i=ge(s),m=async()=>{try{await navigator.clipboard.writeText(i),n(!0),setTimeout(()=>n(!1),1200)}catch{}};return e.jsxs("div",{className:"mb-2 rounded border px-2 py-1.5",style:{borderColor:"var(--accent)",background:"color-mix(in oklab, var(--accent) 8%, transparent)"},"data-testid":`workflow-run-result-${t}`,children:[e.jsxs("div",{className:"mb-1 flex items-center justify-between",children:[e.jsx("div",{className:"text-[10px] font-semibold uppercase tracking-wide text-accent",children:"Result"}),e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(v,{label:u?"Copied!":"Copy result",children:e.jsx("button",{type:"button",onClick:m,"aria-label":"Copy result",className:"icon-btn pointer-coarse:min-h-11 pointer-coarse:min-w-11","data-testid":`workflow-run-result-copy-${t}`,children:e.jsx($,{size:11})})}),e.jsx(v,{label:"Expand",children:e.jsx("button",{type:"button",onClick:()=>l(!0),"aria-label":"Expand result",className:"icon-btn pointer-coarse:min-h-11 pointer-coarse:min-w-11","data-testid":`workflow-run-result-expand-${t}`,children:e.jsx(te,{size:11})})})]})]}),e.jsx("pre",{className:"whitespace-pre-wrap break-words font-mono text-xs text-pri",children:i}),a?e.jsx(P,{open:a,onOpenChange:w=>l(w),children:e.jsxs(L,{children:[e.jsx(E,{className:"fixed inset-0 z-40 bg-black/60"}),e.jsxs(W,{className:"fixed inset-4 z-50 flex flex-col rounded-lg border bg-[var(--bg-1)] p-3 shadow-xl md:inset-8 lg:inset-16",style:{borderColor:"var(--border)"},"data-testid":`workflow-run-result-modal-${t}`,children:[e.jsxs("div",{className:"mb-2 flex items-center justify-between",children:[e.jsx(D,{className:"text-sm font-semibold",children:"Workflow result"}),e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(v,{label:u?"Copied!":"Copy",children:e.jsx("button",{type:"button",onClick:m,"aria-label":"Copy",className:"icon-btn pointer-coarse:min-h-11 pointer-coarse:min-w-11",children:e.jsx($,{size:14})})}),e.jsx(se,{asChild:!0,children:e.jsx("button",{type:"button","aria-label":"Close",className:"icon-btn pointer-coarse:min-h-11 pointer-coarse:min-w-11",children:e.jsx(M,{size:14})})})]})]}),e.jsx("textarea",{readOnly:!0,value:i,className:"min-h-0 flex-1 resize-none rounded border bg-[var(--bg-0)] p-2 font-mono text-xs",style:{borderColor:"var(--border)"}})]})]})}):null]})},z=({run:t,onStop:s})=>{const[a,l]=d.useState(!1),[u,n]=d.useState(null),[i,m]=d.useState(null),[w,p]=d.useState(!1),[b,x]=d.useState(null),[o,h]=d.useState(!1),r=[];t.phase&&r.push(`phase: ${t.phase}`),t.agentCount>0&&r.push(`${t.agentCount} agent${t.agentCount===1?"":"s"}`),t.status!=="running"&&r.push(fe(t.startedAt,t.finishedAt));const g=be(t.args),c=g?k(g,60):null;return d.useEffect(()=>{if(!a)return;let f=!1;return p(!0),x(null),Promise.all([X(t.id),B(t.id)]).then(([j,N])=>{f||(n(j),m(N))}).catch(j=>{f||x(j instanceof Error?j.message:String(j))}).finally(()=>{f||p(!1)}),()=>{f=!0}},[a,t.id,t.status]),e.jsxs("div",{className:"rounded border text-xs",style:{borderColor:"var(--border)"},"data-testid":`workflow-run-row-${t.id}`,"data-run-status":t.status,children:[e.jsxs("div",{className:"flex items-center",children:[e.jsxs("button",{type:"button",onClick:()=>l(f=>!f),className:"flex min-w-0 flex-1 items-center gap-2 px-2 py-1.5 text-left hover:bg-[var(--bg-0)] pointer-coarse:min-h-11","aria-expanded":a,"data-testid":`workflow-run-toggle-${t.id}`,children:[e.jsx("span",{className:"shrink-0 text-ter",children:a?e.jsx(A,{size:12}):e.jsx(O,{size:12})}),e.jsx("span",{className:"shrink-0",children:me[t.status]}),e.jsx("span",{className:"min-w-0 flex-1 truncate font-medium",children:t.name}),e.jsx("span",{className:"text-ter tabular-nums",children:t.status==="running"?"running":he(t.finishedAt??t.startedAt)})]}),t.status==="running"?e.jsx(v,{label:"Stop run",children:e.jsx("button",{type:"button",onClick:async()=>{h(!0);try{await s()}finally{h(!1)}},disabled:o,"aria-label":"Stop workflow run",className:"icon-btn mr-1 disabled:opacity-50 pointer-coarse:min-h-11 pointer-coarse:min-w-11","data-testid":`workflow-run-stop-${t.id}`,children:e.jsx(ie,{size:12})})}):null]}),r.length>0||c?e.jsxs("div",{className:"flex flex-wrap items-center gap-x-2 gap-y-0.5 border-t px-2 py-1 text-[10px] text-ter",style:{borderColor:"var(--border)"},"data-testid":`workflow-run-meta-${t.id}`,children:[r.length>0?e.jsx("span",{children:r.join(" · ")}):null,c?e.jsxs("span",{className:"font-mono",title:g??void 0,children:["args: ",c]}):null]}):null,a?e.jsxs("div",{className:"space-y-1 border-t px-2 py-1.5",style:{borderColor:"var(--border)"},"data-testid":`workflow-run-detail-${t.id}`,children:[t.result!==null&&t.result!==void 0?e.jsx(ke,{runId:t.id,result:t.result}):null,b?e.jsx("div",{className:"text-error",children:b}):w&&u===null?e.jsx("div",{className:"text-ter",children:"Loading…"}):u&&u.length>0?(()=>{const f=ve(u),j=f.length-1;return e.jsx("div",{className:"space-y-1.5",children:f.map((N,_)=>e.jsx(Ne,{group:N,runStatus:t.status,defaultOpen:f.length===1||_===j},N.title))})})():e.jsx("div",{className:"text-ter italic",children:"No agent() calls in this run."}),i&&i.length>0?e.jsxs("div",{className:"mt-2 rounded border px-2 py-1.5",style:{borderColor:"var(--border)",background:"var(--bg-0)"},"data-testid":`workflow-run-logs-${t.id}`,children:[e.jsxs("div",{className:"mb-1 text-[10px] font-semibold uppercase tracking-wide text-ter",children:["Narrator (",i.length," line",i.length===1?"":"s",")"]}),e.jsx("ul",{className:"space-y-0.5 font-mono text-[11px]",children:i.map(f=>e.jsx("li",{className:"text-sec",children:f.message},f.id))})]}):null,t.error?e.jsxs("div",{className:"text-error",children:["Run error: ",t.error]}):null]}):null]})},Ce=({schedule:t,onToggle:s,onDelete:a})=>e.jsxs("div",{className:"flex items-center gap-2 rounded border px-2 py-1.5 text-xs",style:{borderColor:"var(--border)"},"data-testid":`workflow-schedule-row-${t.id}`,"data-schedule-enabled":t.enabled?"true":"false",children:[e.jsx(le,{size:14,className:"shrink-0 text-ter"}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx("div",{className:"truncate font-medium",children:pe(t.scriptPath)}),e.jsx("div",{className:"truncate font-mono text-ter",children:t.cron})]}),e.jsx(v,{label:t.enabled?"Pause":"Resume",children:e.jsx("button",{type:"button",onClick:()=>{s(!t.enabled)},"aria-label":t.enabled?"Pause schedule":"Resume schedule",className:"icon-btn pointer-coarse:min-h-11 pointer-coarse:min-w-11","data-testid":`workflow-schedule-toggle-${t.id}`,children:t.enabled?e.jsx(de,{size:12}):e.jsx(J,{size:12})})}),e.jsx(v,{label:"Delete schedule",children:e.jsx("button",{type:"button",onClick:()=>{a()},"aria-label":"Delete schedule",className:"icon-btn pointer-coarse:min-h-11 pointer-coarse:min-w-11","data-testid":`workflow-schedule-delete-${t.id}`,children:e.jsx(G,{size:12})})})]}),Se=({workspaceId:t,onClose:s})=>{const{runs:a,schedules:l,error:u,refresh:n,refreshSchedules:i}=ue({workspaceId:t,enabled:!0}),[m,w]=d.useState("all"),p=async(x,o)=>{await Q(x,{enabled:o}),await i()},b=async x=>{await K(x),await i()};return e.jsxs("div",{className:"flex h-full min-h-0 flex-col","data-testid":"workflows-content",children:[e.jsxs("header",{className:"flex items-center justify-between border-b px-4 py-2",style:{borderColor:"var(--border)"},children:[e.jsx("h2",{className:"text-base font-semibold text-pri",children:"Workflows"}),s?e.jsx(v,{label:"Close",children:e.jsx("button",{type:"button",onClick:s,"aria-label":"Close workflows",className:"icon-btn pointer-coarse:min-h-11 pointer-coarse:min-w-11",children:e.jsx(M,{size:14})})}):null]}),e.jsxs("div",{className:"scroll-y flex-1 px-4 py-3",children:[u?e.jsx("div",{className:"mb-3 rounded border px-2 py-1.5 text-xs",style:{borderColor:"var(--border)",color:"var(--text-error)"},"data-testid":"workflows-error",children:u}):null,e.jsxs("div",{className:"mb-3 rounded border px-2 py-1.5 text-[11px] leading-snug text-ter",style:{borderColor:"var(--border)",background:"color-mix(in oklab, var(--accent) 6%, transparent)"},children:["Workflows are authored and run by the orchestrator — just tell it what you want and it writes + fires one via ",e.jsx("code",{className:"font-mono",children:"team workflow run --stdin"})," ","(recurring runs go through ",e.jsx("code",{className:"font-mono",children:"team workflow schedule"}),"). This panel is a live observation window: watch each run's phases and agents, and pause or delete schedules."]}),e.jsx(xe,{}),e.jsxs("section",{className:"mb-4",children:[e.jsxs("div",{className:"mb-2 flex items-center justify-between",children:[e.jsx("h3",{className:"text-xs font-medium uppercase tracking-wide text-ter",children:"Recent runs"}),a.length>0?(()=>{const x=a.filter(r=>r.status==="running").length,o=a.filter(r=>r.status==="failed"||r.status==="stopped"||r.status==="interrupted").length,h=({id:r,label:g,count:c})=>e.jsxs("button",{type:"button",onClick:()=>w(r),"aria-pressed":m===r,"data-testid":`workflow-runs-filter-${r}`,className:`rounded-full border px-2 py-0.5 text-[10px] pointer-coarse:min-h-9 pointer-coarse:px-3 pointer-coarse:text-xs ${m===r?"border-accent text-accent":"text-ter hover:text-sec"}`,style:{borderColor:m===r?"var(--accent)":"var(--border)"},children:[g," ",c]});return e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(h,{id:"all",label:"All",count:a.length}),e.jsx(h,{id:"running",label:"Running",count:x}),e.jsx(h,{id:"failed",label:"Failed",count:o})]})})():null]}),a.length===0?e.jsx(U,{title:"No runs yet",description:"Try asking the orchestrator to do something that fans out across multiple agents."}):(()=>{const x=m==="all"?a:m==="running"?a.filter(o=>o.status==="running"):a.filter(o=>o.status==="failed"||o.status==="stopped"||o.status==="interrupted");return x.length===0?e.jsx("p",{className:"text-xs text-ter italic","data-testid":"workflow-runs-empty-filter",children:"No runs matching this filter."}):e.jsx("ul",{className:"space-y-1.5",children:we(x.slice(0,20)).map(({run:o,depth:h})=>e.jsx("li",{className:h>0?"pl-4":"","data-testid":`workflow-run-tree-${o.id}`,"data-depth":h,children:h>0?e.jsxs("div",{className:"flex items-start gap-1",children:[e.jsx("span",{className:"select-none text-ter","aria-hidden":"true",children:"└─"}),e.jsx("div",{className:"min-w-0 flex-1",children:e.jsx(z,{run:o,onStop:async()=>{await S(o.id),await n()}})})]}):e.jsx(z,{run:o,onStop:async()=>{await S(o.id),await n()}})},o.id))})})()]}),l.length>0?e.jsxs("section",{className:"mb-4","data-testid":"workflows-schedules-section",children:[e.jsx("h3",{className:"mb-2 text-xs font-medium uppercase tracking-wide text-ter",children:"Schedules"}),e.jsx("ul",{className:"space-y-1.5",children:l.map(x=>e.jsx("li",{children:e.jsx(Ce,{schedule:x,onToggle:o=>p(x.id,o),onDelete:()=>b(x.id)})},x.id))})]}):null]})]})},Re=({open:t,onClose:s,workspaceId:a})=>{const l=V();return e.jsx(P,{open:t,onOpenChange:u=>!u&&s(),children:e.jsxs(L,{children:[e.jsx(E,{"data-testid":"workflows-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(W,{"data-testid":"workflows-drawer","aria-label":"Workflows","data-mobile":l||void 0,className:"dialog-scale-pop elev-2 pointer-events-auto flex flex-col rounded-lg border",style:l?{background:"var(--bg-1)",borderColor:"var(--border-bright)"}:{background:"var(--bg-1)",borderColor:"var(--border-bright)",height:"min(640px, calc(100vh - 48px))",width:"min(560px, calc(100vw - 48px))"},children:[e.jsx(D,{className:"sr-only",children:"Workflows"}),e.jsx(Se,{workspaceId:a,onClose:s})]})})]})})};export{Se as WorkflowsContent,Re as WorkflowsDrawer};
@@ -0,0 +1 @@
1
+ import{c as h,u as X,r as l,x as J,y as Y,z as Z,j as e,R as ee,P as te,O as se,C as re,d as ae,T as v,X as ne,L as w,S as q,E as F,A as O,B as ie,D as le,F as oe,G as ce,H as B,I as de}from"./index-bOMtwrkA.js";import{S as xe}from"./search-CmzeVhy0.js";const pe=[["rect",{width:"20",height:"5",x:"2",y:"3",rx:"1",key:"1wp1u1"}],["path",{d:"M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8",key:"1s80jp"}],["path",{d:"M10 12h4",key:"a56b0p"}]],me=h("archive",pe);const he=[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]],ue=h("eye-off",he);const be=[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],je=h("eye",be);const ve=[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M15 9.34V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H7.89",key:"znwnzq"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M9 9v1.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h11",key:"c9qhm2"}]],fe=h("pin-off",ve);const ge=[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z",key:"1nkz8b"}]],ye=h("pin",ge);const Ne=[["path",{d:"M14 17H5",key:"gfn3mx"}],["path",{d:"M19 7h-9",key:"6i9tg"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}],["circle",{cx:"7",cy:"7",r:"3",key:"dfmy0x"}]],we=h("settings-2",Ne),ke=[{id:"active",label:"Active"},{id:"archived",label:"Archived"},{id:"dreams",label:"Dreams"}],Se={decision:"Decision",fact:"Fact",pitfall:"Pitfall",preference:"Preference",procedure_ref:"Procedure"},Ce=new Intl.DateTimeFormat(void 0,{day:"2-digit",hour:"2-digit",minute:"2-digit",month:"short"}),k=r=>r?Ce.format(new Date(r)):"Never",H=(r,a=140)=>{const s=r.trim();return s.length<=a?s:`${s.slice(0,a-1)}…`},Me=r=>{const a=r.sources[0];return a?.actorNameSnapshot?`${r.source} · ${a.actorNameSnapshot}`:r.source},Ee=r=>r==="dreams"?null:r,Re=({busy:r,memory:a,onArchive:s,onToggleDisabled:d,onTogglePinned:c})=>{const[i,u]=l.useState(!1);return e.jsxs("li",{className:"rounded border p-3","data-testid":`memory-row-${a.id}`,style:{background:"var(--bg-1)",borderColor:"var(--border)"},children:[e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsxs("button",{type:"button",onClick:()=>u(o=>!o),"aria-expanded":i,className:"min-w-0 flex-1 text-left focus-visible:outline focus-visible:outline-1 focus-visible:outline-offset-2 focus-visible:outline-[var(--accent)]",children:[e.jsxs("div",{className:"mb-1 flex flex-wrap items-center gap-1.5 text-[11px]",children:[e.jsx("span",{className:"rounded border px-1.5 py-0.5 text-ter",style:{borderColor:"var(--border)"},children:Se[a.kind]}),a.pinned?e.jsx("span",{className:"text-accent",children:"Pinned"}):null,a.disabled?e.jsx("span",{className:"text-ter",children:"Disabled"}):null,e.jsx("span",{className:"text-ter",children:Me(a)})]}),e.jsx("p",{className:"break-words text-sm text-pri leading-snug",children:i?a.body:H(a.body)}),e.jsxs("div",{className:"mt-2 flex flex-wrap gap-1 text-[11px] text-ter",children:[a.tags.map(o=>e.jsx("span",{className:"rounded border px-1.5 py-0.5",style:{borderColor:"var(--border)"},children:o},o)),e.jsxs("span",{children:["Updated ",k(a.updatedAt)]}),e.jsxs("span",{children:["Injected ",k(a.lastInjectedAt)]})]})]}),e.jsx("div",{className:"flex shrink-0 items-center gap-1",children:a.status==="active"?e.jsxs(e.Fragment,{children:[e.jsx(v,{label:a.pinned?"Unpin":"Pin",children:e.jsx("button",{type:"button",disabled:r,onClick:()=>c(a),"aria-label":a.pinned?"Unpin memory":"Pin memory",className:"icon-btn pointer-coarse:min-h-10 pointer-coarse:min-w-10",children:a.pinned?e.jsx(fe,{size:13}):e.jsx(ye,{size:13})})}),e.jsx(v,{label:a.disabled?"Enable":"Disable",children:e.jsx("button",{type:"button",disabled:r,onClick:()=>d(a),"aria-label":a.disabled?"Enable memory injection":"Disable memory injection",className:"icon-btn pointer-coarse:min-h-10 pointer-coarse:min-w-10",children:a.disabled?e.jsx(je,{size:13}):e.jsx(ue,{size:13})})}),e.jsx(v,{label:"Archive",children:e.jsx("button",{type:"button",disabled:r,onClick:()=>s(a),"aria-label":"Archive memory",className:"icon-btn icon-btn--danger pointer-coarse:min-h-10 pointer-coarse:min-w-10",children:e.jsx(me,{size:13})})})]}):null})]}),i?e.jsxs("div",{className:"mt-3 border-t pt-3 text-xs text-sec",style:{borderColor:"var(--border)"},children:[e.jsx("h4",{className:"mb-2 font-medium text-ter uppercase",children:"Sources"}),a.sources.length===0?e.jsx("p",{className:"text-ter",children:"No source evidence."}):e.jsx("ul",{className:"space-y-2",children:a.sources.map(o=>e.jsxs("li",{className:"break-words",children:[e.jsxs("div",{className:"text-ter",children:[o.sourceType,o.actorNameSnapshot?` · ${o.actorNameSnapshot}`:"",o.actorRoleSnapshot?` · ${o.actorRoleSnapshot}`:""]}),o.excerpt?e.jsx("p",{className:"mt-0.5",children:o.excerpt}):null]},o.id))})]}):null]})},V=({label:r,checked:a,disabled:s,onChange:d})=>e.jsxs("label",{className:"flex items-center justify-between gap-3 rounded border px-3 py-2 text-sm",style:{borderColor:"var(--border)"},children:[e.jsx("span",{className:"text-sec",children:r}),e.jsx("input",{type:"checkbox",checked:a,disabled:s,onChange:c=>d(c.currentTarget.checked),className:"h-4 w-4 accent-[var(--accent)]"})]}),De=r=>r.report?[`${r.report.added.length} added`,`${r.report.rewritten.length} rewritten`,`${r.report.archived.length} archived`,`${r.report.merged.length} merged`].join(" · "):r.error?`Error · ${H(r.error,90)}`:"No report",Ae=r=>r.inputSeqFrom===null||r.inputSeqTo===null?"No input":`Seq ${r.inputSeqFrom}-${r.inputSeqTo}`,ze=({busy:r,onRevert:a,run:s})=>{const[d,c]=l.useState(!1);return e.jsxs("li",{className:"rounded border p-3","data-testid":`dream-run-${s.id}`,style:{background:"var(--bg-1)",borderColor:"var(--border)"},children:[e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsxs("button",{type:"button",onClick:()=>c(i=>!i),"aria-expanded":d,className:"min-w-0 flex-1 text-left focus-visible:outline focus-visible:outline-1 focus-visible:outline-offset-2 focus-visible:outline-[var(--accent)]",children:[e.jsxs("div",{className:"mb-1 flex flex-wrap items-center gap-1.5 text-[11px]",children:[e.jsx("span",{className:"rounded border px-1.5 py-0.5 text-ter",style:{borderColor:"var(--border)"},children:s.status}),e.jsx("span",{className:"text-ter",children:s.trigger}),e.jsx("span",{className:"text-ter",children:Ae(s)}),e.jsxs("span",{className:"text-ter",children:["Started ",k(s.startedAt)]})]}),e.jsx("p",{className:"break-words text-sm text-pri leading-snug",children:De(s)}),s.finishedAt?e.jsxs("p",{className:"mt-1 text-[11px] text-ter",children:["Finished ",k(s.finishedAt)]}):null]}),s.status==="completed"?e.jsx(v,{label:"Revert",children:e.jsx("button",{type:"button",disabled:r,onClick:()=>a(s),"aria-label":"Revert dream run",className:"icon-btn icon-btn--danger pointer-coarse:min-h-10 pointer-coarse:min-w-10",children:r?e.jsx(w,{size:13,className:"animate-spin"}):e.jsx(oe,{size:13})})}):null]}),d&&s.report?e.jsxs("div",{className:"mt-3 border-t pt-3 text-xs text-sec",style:{borderColor:"var(--border)"},children:[s.report.added.length>0?e.jsxs("div",{className:"mb-2",children:[e.jsx("h4",{className:"mb-1 font-medium text-ter uppercase",children:"Added"}),e.jsx("ul",{className:"space-y-1",children:s.report.added.map(i=>e.jsxs("li",{className:"break-words",children:[i.kind,": ",i.body]},i.id))})]}):null,s.report.rewritten.length>0?e.jsxs("p",{className:"mb-1",children:["Rewritten: ",s.report.rewritten.map(i=>i.id).join(", ")]}):null,s.report.archived.length>0?e.jsxs("p",{className:"mb-1",children:["Archived: ",s.report.archived.map(i=>i.id).join(", ")]}):null,s.report.merged.length>0?e.jsxs("p",{children:["Merged: ",s.report.merged.map(i=>i.into).join(", ")]}):null]}):null,d&&s.error?e.jsx("p",{className:"mt-3 break-words border-t pt-3 text-xs text-ter",style:{borderColor:"var(--border)"},children:s.error}):null]})},Pe=({open:r,onClose:a,workspaceId:s})=>{const d=X(),[c,i]=l.useState("active"),[u,o]=l.useState(""),[f,S]=l.useState([]),[g,C]=l.useState([]),[M,y]=l.useState(null),[P,E]=l.useState(!1),[_,x]=l.useState(null),[K,L]=l.useState(null),[R,N]=l.useState(null),[D,A]=l.useState(null),[z,T]=l.useState(null),b=l.useRef(0),m=Ee(c),j=l.useCallback(async()=>{const t=b.current+1;if(b.current=t,!s||!r){S([]),C([]),y(null),E(!1);return}E(!0),x(null),S([]),C([]),y(null);try{const[n,p,Q]=await Promise.all([J(s),m?Y(s,{query:u,status:m}):Promise.resolve([]),m?Promise.resolve([]):Z(s,{limit:20})]);if(b.current!==t)return;y(n),S(p),C(Q)}catch(n){b.current===t&&x(n instanceof Error?n.message:String(n))}finally{b.current===t&&E(!1)}},[r,u,m,s]);l.useEffect(()=>{j()},[j]);const $=async(t,n)=>{if(s){L(t.id),x(null);try{await n(s),await j()}catch(p){x(p instanceof Error?p.message:String(p))}finally{L(null)}}},U=l.useMemo(()=>({current:m?f.length:g.length}),[g.length,f.length,m]),W=async t=>{if(s){x(null);try{y(await le(s,t))}catch(n){x(n instanceof Error?n.message:String(n))}}},G=async()=>{if(s){N("run-now"),x(null);try{await ie(s),await j()}catch(t){x(t instanceof Error?t.message:String(t))}finally{N(null)}}},I=async t=>{if(s){N(t.id),x(null);try{await ce(s,t.id),await j()}catch(n){x(n instanceof Error?n.message:String(n))}finally{N(null)}}};return e.jsxs(e.Fragment,{children:[e.jsx(ee,{open:r,onOpenChange:t=>!t&&a(),children:e.jsxs(te,{children:[e.jsx(se,{"data-testid":"memory-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(re,{"data-testid":"memory-drawer","aria-label":"Memory","data-mobile":d||void 0,className:"dialog-scale-pop elev-2 pointer-events-auto flex flex-col rounded-lg border",style:d?{background:"var(--bg-1)",borderColor:"var(--border-bright)"}:{background:"var(--bg-1)",borderColor:"var(--border-bright)",height:"min(720px, calc(100vh - 48px))",width:"min(780px, calc(100vw - 48px))"},children:[e.jsxs("header",{className:"flex items-center justify-between border-b px-4 py-2",style:{borderColor:"var(--border)"},children:[e.jsxs("div",{className:"min-w-0",children:[e.jsx(ae,{className:"text-base font-semibold text-pri",children:"Memory"}),e.jsx("p",{className:"text-xs text-ter",children:"Workspace knowledge, Dream runs, and injection controls"})]}),e.jsx(v,{label:"Close",children:e.jsx("button",{type:"button",onClick:a,"aria-label":"Close memory",className:"icon-btn pointer-coarse:min-h-11 pointer-coarse:min-w-11",children:e.jsx(ne,{size:14})})})]}),e.jsxs("div",{className:"flex items-center gap-2 border-b px-4 py-2",style:{borderColor:"var(--border)"},children:[e.jsx("div",{className:"flex min-w-0 flex-1 items-center gap-1",children:ke.map(t=>e.jsx("button",{type:"button",onClick:()=>i(t.id),"aria-pressed":c===t.id,className:`rounded border px-2 py-1 text-xs pointer-coarse:min-h-10 ${c===t.id?"border-accent text-accent":"text-ter hover:text-pri"}`,style:{borderColor:c===t.id?"var(--accent)":"var(--border)"},children:t.label},t.id))}),m?e.jsxs("label",{className:"relative block w-52 max-w-[38vw]",children:[e.jsx("span",{className:"sr-only",children:"Search memory"}),e.jsx(xe,{size:13,className:"pointer-events-none absolute left-2 top-1/2 -translate-y-1/2 text-ter"}),e.jsx("input",{value:u,onChange:t=>o(t.currentTarget.value),placeholder:"Search…",name:"memory-search",autoComplete:"off",className:"h-8 w-full rounded border bg-transparent pl-7 pr-2 text-xs text-pri outline-none focus-visible:border-[var(--accent)]",style:{borderColor:"var(--border)"}})]}):null]}),e.jsxs("div",{className:"scroll-y min-h-0 flex-1 px-4 py-3",children:[_?e.jsx("div",{className:"mb-3 rounded border px-2 py-1.5 text-xs",style:{borderColor:"var(--border)",color:"var(--text-error)"},children:_}):null,e.jsxs("section",{className:"mb-4",children:[e.jsxs("div",{className:"mb-2 flex items-center justify-between gap-2 text-xs text-ter",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(we,{size:13}),e.jsxs("span",{children:[U.current," ",m?"entries":"runs"]})]}),c==="dreams"?e.jsxs("button",{type:"button",onClick:G,disabled:R!==null,className:"inline-flex h-8 items-center gap-1.5 rounded border px-2 text-xs text-pri hover:border-[var(--accent)] disabled:opacity-60 pointer-coarse:min-h-10",style:{borderColor:"var(--border)"},children:[R==="run-now"?e.jsx(w,{size:13,className:"animate-spin"}):e.jsx(q,{size:13}),"Run now"]}):null]}),M?e.jsxs("div",{className:"grid gap-2 sm:grid-cols-2",children:[e.jsx(V,{label:"Memory injection",checked:M.enabled,onChange:t=>W({enabled:t})}),e.jsx(V,{label:"Dream processing",checked:M.dreamEnabled,onChange:t=>W({dreamEnabled:t})})]}):null]}),c==="dreams"?P?e.jsxs("div",{className:"flex h-[320px] items-center justify-center text-ter",children:[e.jsx(w,{size:18,className:"animate-spin"}),e.jsx("span",{className:"ml-2 text-sm",children:"Loading…"})]}):g.length===0?e.jsx("div",{className:"flex h-[320px] items-center justify-center",children:e.jsx(F,{icon:e.jsx(q,{size:20}),title:"No dream runs yet",description:"Run history appears after a manual or scheduled Dream pass."})}):e.jsx("ul",{className:"space-y-2",children:g.map(t=>e.jsx(ze,{run:t,busy:R===t.id,onRevert:T},t.id))}):P?e.jsxs("div",{className:"flex h-[320px] items-center justify-center text-ter",children:[e.jsx(w,{size:18,className:"animate-spin"}),e.jsx("span",{className:"ml-2 text-sm",children:"Loading…"})]}):f.length===0?e.jsx("div",{className:"flex h-[320px] items-center justify-center",children:e.jsx(F,{title:"No memory entries",description:"Entries appear here after the orchestrator adds memory or Dream extracts it."})}):e.jsx("ul",{className:"space-y-2",children:f.map(t=>e.jsx(Re,{memory:t,busy:K===t.id,onArchive:A,onToggleDisabled:n=>$(n,p=>B(p,n.id,{disabled:!n.disabled})),onTogglePinned:n=>$(n,p=>B(p,n.id,{pinned:!n.pinned}))},t.id))})]})]})})]})}),e.jsx(O,{open:D!==null,onOpenChange:t=>{t||A(null)},title:"Archive Memory",description:"Archived memory stops appearing in startup, recovery, and dispatch injection.",confirmLabel:"Archive",confirmKind:"danger",onConfirm:()=>{if(!D)return;const t=D;A(null),$(t,n=>de(n,t.id))}}),e.jsx(O,{open:z!==null,onOpenChange:t=>{t||T(null)},title:"Revert Dream Run",description:"This restores the memory rows changed by the selected Dream run and archives entries it added.",confirmLabel:"Revert",confirmKind:"danger",onConfirm:()=>{if(!z)return;const t=z;T(null),I(t)}})]})};export{Pe as WorkspaceMemoryDrawer};
@@ -0,0 +1 @@
1
+ import{r as k,j as h,J as e}from"./index-bOMtwrkA.js";import{TaskGraphDrawer as g}from"./TaskGraphDrawer-BPMcRocd.js";import"./path-join-7MR1s7b1.js";const x=({tasksFile:a,workspacePath:T,open:c,onClose:r,workers:n,onSelectOwner:p,connectionStale:d})=>{const s=k.useMemo(()=>n?.length?n.map(o=>o.name):void 0,[n]);return h.jsx(g,{content:a.content,hasConflict:a.hasConflict,onClose:r,onContentChange:a.onChange,onKeepLocal:a.onKeepLocal,onReload:a.onReload,onSave:a.onSave,onToggleTaskLine:o=>{a.toggleTaskAtLine(o).catch(e("tasks.toggleTaskAtLine"))},onAppendTask:o=>{a.appendTask(o).catch(e("tasks.appendTask"))},onAppendSubtask:(o,t)=>{a.appendSubtask(o,t).catch(e("tasks.appendSubtask"))},onUpdateTaskText:(o,t)=>{a.updateTaskText(o,t).catch(e("tasks.updateTaskText"))},onDeleteTask:o=>{a.deleteTask(o).catch(e("tasks.deleteTask"))},open:c,workspacePath:T,...s?{knownWorkerNames:s}:{},...p?{onSelectOwner:p}:{},...d!==void 0?{connectionStale:d}:{}})};export{x as WorkspaceTaskDrawer};
@@ -0,0 +1 @@
1
+ var T="3.7.8",j=T,u=typeof Buffer=="function",g=typeof TextDecoder=="function"?new TextDecoder:void 0,B=typeof TextEncoder=="function"?new TextEncoder:void 0,I="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",d=Array.prototype.slice.call(I),f=(e=>{let t={};return e.forEach((r,a)=>t[r]=a),t})(d),V=/^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/,o=String.fromCharCode.bind(String),C=typeof Uint8Array.from=="function"?Uint8Array.from.bind(Uint8Array):e=>new Uint8Array(Array.prototype.slice.call(e,0)),_=e=>e.replace(/=/g,"").replace(/[+\/]/g,t=>t=="+"?"-":"_"),w=e=>e.replace(/[^A-Za-z0-9\+\/]/g,""),U=e=>{let t,r,a,i,n="",s=e.length%3;for(let c=0;c<e.length;){if((r=e.charCodeAt(c++))>255||(a=e.charCodeAt(c++))>255||(i=e.charCodeAt(c++))>255)throw new TypeError("invalid character found");t=r<<16|a<<8|i,n+=d[t>>18&63]+d[t>>12&63]+d[t>>6&63]+d[t&63]}return s?n.slice(0,s-3)+"===".substring(s):n},x=typeof btoa=="function"?e=>btoa(e):u?e=>Buffer.from(e,"binary").toString("base64"):U,b=u?e=>Buffer.from(e).toString("base64"):e=>{let t=[];for(let r=0,a=e.length;r<a;r+=4096)t.push(o.apply(null,e.subarray(r,r+4096)));return x(t.join(""))},p=(e,t=!1)=>t?_(b(e)):b(e),$=e=>{if(e.length<2){var t=e.charCodeAt(0);return t<128?e:t<2048?o(192|t>>>6)+o(128|t&63):o(224|t>>>12&15)+o(128|t>>>6&63)+o(128|t&63)}else{var t=65536+(e.charCodeAt(0)-55296)*1024+(e.charCodeAt(1)-56320);return o(240|t>>>18&7)+o(128|t>>>12&63)+o(128|t>>>6&63)+o(128|t&63)}},L=/[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g,F=e=>e.replace(L,$),m=u?e=>Buffer.from(e,"utf8").toString("base64"):B?e=>b(B.encode(e)):e=>x(F(e)),l=(e,t=!1)=>t?_(m(e)):m(e),v=e=>l(e,!0),H=/[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g,N=e=>{switch(e.length){case 4:var t=(7&e.charCodeAt(0))<<18|(63&e.charCodeAt(1))<<12|(63&e.charCodeAt(2))<<6|63&e.charCodeAt(3),r=t-65536;return o((r>>>10)+55296)+o((r&1023)+56320);case 3:return o((15&e.charCodeAt(0))<<12|(63&e.charCodeAt(1))<<6|63&e.charCodeAt(2));default:return o((31&e.charCodeAt(0))<<6|63&e.charCodeAt(1))}},S=e=>e.replace(H,N),P=e=>{if(e=e.replace(/\s+/g,""),!V.test(e))throw new TypeError("malformed base64.");e+="==".slice(2-(e.length&3));let t,r,a,i=[];for(let n=0;n<e.length;)t=f[e.charAt(n++)]<<18|f[e.charAt(n++)]<<12|(r=f[e.charAt(n++)])<<6|(a=f[e.charAt(n++)]),r===64?i.push(o(t>>16&255)):a===64?i.push(o(t>>16&255,t>>8&255)):i.push(o(t>>16&255,t>>8&255,t&255));return i.join("")},y=typeof atob=="function"?e=>atob(w(e)):u?e=>Buffer.from(e,"base64").toString("binary"):P,R=u?e=>C(Buffer.from(e,"base64")):e=>C(y(e).split("").map(t=>t.charCodeAt(0))),E=e=>R(D(e)),k=u?e=>Buffer.from(e,"base64").toString("utf8"):g?e=>g.decode(R(e)):e=>S(y(e)),D=e=>w(e.replace(/[-_]/g,t=>t=="-"?"+":"/")),A=e=>k(D(e)),q=e=>{if(typeof e!="string")return!1;let t=e.replace(/\s+/g,"").replace(/={0,2}$/,"");return!/[^\s0-9a-zA-Z\+/]/.test(t)||!/[^\s0-9a-zA-Z\-_]/.test(t)},z=e=>({value:e,enumerable:!1,writable:!0,configurable:!0}),O=function(){let e=(t,r)=>Object.defineProperty(String.prototype,t,z(r));e("fromBase64",function(){return A(this)}),e("toBase64",function(t){return l(this,t)}),e("toBase64URI",function(){return l(this,!0)}),e("toBase64URL",function(){return l(this,!0)}),e("toUint8Array",function(){return E(this)})},Z=function(){let e=(t,r)=>Object.defineProperty(Uint8Array.prototype,t,z(r));e("toBase64",function(t){return p(this,t)}),e("toBase64URI",function(){return p(this,!0)}),e("toBase64URL",function(){return p(this,!0)})},G=()=>{O(),Z()},h={version:T,VERSION:j,atob:y,atobPolyfill:P,btoa:x,btoaPolyfill:U,fromBase64:A,toBase64:l,encode:l,encodeURI:v,encodeURL:v,utob:F,btou:S,decode:A,isValid:q,fromUint8Array:p,toUint8Array:E,extendString:O,extendUint8Array:Z,extendBuiltins:G},M=class{constructor(e=new K,t=new J){this._base64=e,this._provider=t}activate(e){this._terminal=e,this._disposable=e.parser.registerOscHandler(52,t=>this._setOrReportClipboard(t))}dispose(){return this._disposable?.dispose()}_readText(e,t){let r=this._base64.encodeText(t);this._terminal?.input(`\x1B]52;${e};${r}\x07`,!1)}_setOrReportClipboard(e){let t=e.split(";");if(t.length<2)return!0;let r=t[0],a=t[1];if(a==="?"){let s=this._provider.readText(r);return s instanceof Promise?s.then(c=>(this._readText(r,c),!0)):(this._readText(r,s),!0)}let i="";try{i=this._base64.decodeText(a)}catch{}let n=this._provider.writeText(r,i);return n instanceof Promise?n.then(()=>!0):!0}},J=class{async readText(e){return e!=="c"?Promise.resolve(""):navigator.clipboard.readText()}async writeText(e,t){return e!=="c"?Promise.resolve():navigator.clipboard.writeText(t)}},K=class{encodeText(e){return h.encode(e)}decodeText(e){let t=h.decode(e);return!h.isValid(e)||h.encode(t)!==e?"":t}};export{K as Base64,J as BrowserClipboardProvider,M as ClipboardAddon};
@@ -0,0 +1 @@
1
+ var p=2,c=1,d=class{activate(e){this._terminal=e}dispose(){}fit(){let e=this.proposeDimensions();if(!e||!this._terminal||isNaN(e.cols)||isNaN(e.rows))return;let i=this._terminal._core;(this._terminal.rows!==e.rows||this._terminal.cols!==e.cols)&&(i._renderService.clear(),this._terminal.resize(e.cols,e.rows))}proposeDimensions(){if(!this._terminal||!this._terminal.element||!this._terminal.element.parentElement)return;let e=this._terminal._core._renderService.dimensions;if(e.css.cell.width===0||e.css.cell.height===0)return;let i=this._terminal.options.scrollback===0?0:this._terminal.options.overviewRuler?.width||14,s=window.getComputedStyle(this._terminal.element.parentElement),l=parseInt(s.getPropertyValue("height")),o=Math.max(0,parseInt(s.getPropertyValue("width"))),t=window.getComputedStyle(this._terminal.element),r={top:parseInt(t.getPropertyValue("padding-top")),bottom:parseInt(t.getPropertyValue("padding-bottom")),right:parseInt(t.getPropertyValue("padding-right")),left:parseInt(t.getPropertyValue("padding-left"))},a=r.top+r.bottom,n=r.right+r.left,h=l-a,m=o-n-i;return{cols:Math.max(p,Math.floor(m/e.css.cell.width)),rows:Math.max(c,Math.floor(h/e.css.cell.height))}}};export{d as FitAddon};
@@ -0,0 +1,7 @@
1
+ var V=[[768,879],[1155,1158],[1160,1161],[1425,1469],[1471,1471],[1473,1474],[1476,1477],[1479,1479],[1536,1539],[1552,1557],[1611,1630],[1648,1648],[1750,1764],[1767,1768],[1770,1773],[1807,1807],[1809,1809],[1840,1866],[1958,1968],[2027,2035],[2305,2306],[2364,2364],[2369,2376],[2381,2381],[2385,2388],[2402,2403],[2433,2433],[2492,2492],[2497,2500],[2509,2509],[2530,2531],[2561,2562],[2620,2620],[2625,2626],[2631,2632],[2635,2637],[2672,2673],[2689,2690],[2748,2748],[2753,2757],[2759,2760],[2765,2765],[2786,2787],[2817,2817],[2876,2876],[2879,2879],[2881,2883],[2893,2893],[2902,2902],[2946,2946],[3008,3008],[3021,3021],[3134,3136],[3142,3144],[3146,3149],[3157,3158],[3260,3260],[3263,3263],[3270,3270],[3276,3277],[3298,3299],[3393,3395],[3405,3405],[3530,3530],[3538,3540],[3542,3542],[3633,3633],[3636,3642],[3655,3662],[3761,3761],[3764,3769],[3771,3772],[3784,3789],[3864,3865],[3893,3893],[3895,3895],[3897,3897],[3953,3966],[3968,3972],[3974,3975],[3984,3991],[3993,4028],[4038,4038],[4141,4144],[4146,4146],[4150,4151],[4153,4153],[4184,4185],[4448,4607],[4959,4959],[5906,5908],[5938,5940],[5970,5971],[6002,6003],[6068,6069],[6071,6077],[6086,6086],[6089,6099],[6109,6109],[6155,6157],[6313,6313],[6432,6434],[6439,6440],[6450,6450],[6457,6459],[6679,6680],[6912,6915],[6964,6964],[6966,6970],[6972,6972],[6978,6978],[7019,7027],[7616,7626],[7678,7679],[8203,8207],[8234,8238],[8288,8291],[8298,8303],[8400,8431],[12330,12335],[12441,12442],[43014,43014],[43019,43019],[43045,43046],[64286,64286],[65024,65039],[65056,65059],[65279,65279],[65529,65531]],ge=[[68097,68099],[68101,68102],[68108,68111],[68152,68154],[68159,68159],[119143,119145],[119155,119170],[119173,119179],[119210,119213],[119362,119364],[917505,917505],[917536,917631],[917760,917999]],g;function me(e,t){let s=0,l=t.length-1,u;if(e<t[0][0]||e>t[l][1])return!1;for(;l>=s;)if(u=s+l>>1,e>t[u][1])s=u+1;else if(e<t[u][0])l=u-1;else return!0;return!1}var we=class{constructor(){if(this.version="6",!g){g=new Uint8Array(65536),g.fill(1),g[0]=0,g.fill(0,1,32),g.fill(0,127,160),g.fill(2,4352,4448),g[9001]=2,g[9002]=2,g.fill(2,11904,42192),g[12351]=1,g.fill(2,44032,55204),g.fill(2,63744,64256),g.fill(2,65040,65050),g.fill(2,65072,65136),g.fill(2,65280,65377),g.fill(2,65504,65511);for(let e=0;e<V.length;++e)g.fill(0,V[e][0],V[e][1]+1)}}wcwidth(e){return e<32?0:e<127?1:e<65536?g[e]:me(e,ge)?0:e>=131072&&e<=196605||e>=196608&&e<=262141?2:1}charProperties(e,t){let s=this.wcwidth(e),l=s===0&&t!==0;if(l){let u=z.extractWidth(t);u===0?l=!1:u>s&&(s=u)}return z.createPropertyValue(0,s,l)}},ye=class{constructor(){this.listeners=[],this.unexpectedErrorHandler=function(e){setTimeout(()=>{throw e.stack?te.isErrorNoTelemetry(e)?new te(e.message+`
2
+
3
+ `+e.stack):new Error(e.message+`
4
+
5
+ `+e.stack):e},0)}}addListener(e){return this.listeners.push(e),()=>{this._removeListener(e)}}emit(e){this.listeners.forEach(t=>{t(e)})}_removeListener(e){this.listeners.splice(this.listeners.indexOf(e),1)}setUnexpectedErrorHandler(e){this.unexpectedErrorHandler=e}getUnexpectedErrorHandler(){return this.unexpectedErrorHandler}onUnexpectedError(e){this.unexpectedErrorHandler(e),this.emit(e)}onUnexpectedExternalError(e){this.unexpectedErrorHandler(e)}},be=new ye;function G(e){Ee(e)||be.onUnexpectedError(e)}var Y="Canceled";function Ee(e){return e instanceof Le?!0:e instanceof Error&&e.name===Y&&e.message===Y}var Le=class extends Error{constructor(){super(Y),this.name=this.message}},te=class X extends Error{constructor(t){super(t),this.name="CodeExpectedError"}static fromError(t){if(t instanceof X)return t;let s=new X;return s.message=t.message,s.stack=t.stack,s}static isErrorNoTelemetry(t){return t.name==="CodeExpectedError"}};function ke(e,t){let s=this,l=!1,u;return function(){return l||(l=!0,t||(u=e.apply(s,arguments))),u}}var xe;(e=>{function t(d){return d<0}e.isLessThan=t;function s(d){return d<=0}e.isLessThanOrEqual=s;function l(d){return d>0}e.isGreaterThan=l;function u(d){return d===0}e.isNeitherLessOrGreaterThan=u,e.greaterThan=1,e.lessThan=-1,e.neitherLessOrGreaterThan=0})(xe||={});var se;(e=>{function t(h){return h&&typeof h=="object"&&typeof h[Symbol.iterator]=="function"}e.is=t;let s=Object.freeze([]);function l(){return s}e.empty=l;function*u(h){yield h}e.single=u;function d(h){return t(h)?h:u(h)}e.wrap=d;function m(h){return h||s}e.from=m;function*y(h){for(let f=h.length-1;f>=0;f--)yield h[f]}e.reverse=y;function E(h){return!h||h[Symbol.iterator]().next().done===!0}e.isEmpty=E;function L(h){return h[Symbol.iterator]().next().value}e.first=L;function F(h,f){let _=0;for(let w of h)if(f(w,_++))return!0;return!1}e.some=F;function S(h,f){for(let _ of h)if(f(_))return _}e.find=S;function*U(h,f){for(let _ of h)f(_)&&(yield _)}e.filter=U;function*R(h,f){let _=0;for(let w of h)yield f(w,_++)}e.map=R;function*H(h,f){let _=0;for(let w of h)yield*f(w,_++)}e.flatMap=H;function*I(...h){for(let f of h)yield*f}e.concat=I;function $(h,f,_){let w=_;for(let C of h)w=f(w,C);return w}e.reduce=$;function*T(h,f,_=h.length){for(f<0&&(f+=h.length),_<0?_+=h.length:_>h.length&&(_=h.length);f<_;f++)yield h[f]}e.slice=T;function q(h,f=Number.POSITIVE_INFINITY){let _=[];if(f===0)return[_,h];let w=h[Symbol.iterator]();for(let C=0;C<f;C++){let W=w.next();if(W.done)return[_,e.empty()];_.push(W.value)}return[_,{[Symbol.iterator](){return w}}]}e.consume=q;async function j(h){let f=[];for await(let _ of h)f.push(_);return Promise.resolve(f)}e.asyncToArray=j})(se||={});function ie(e){if(se.is(e)){let t=[];for(let s of e)if(s)try{s.dispose()}catch(l){t.push(l)}if(t.length===1)throw t[0];if(t.length>1)throw new AggregateError(t,"Encountered errors while disposing of store");return Array.isArray(e)?[]:e}else if(e)return e.dispose(),e}function Te(...e){return ne(()=>ie(e))}function ne(e){return{dispose:ke(()=>{e()})}}var oe=class le{constructor(){this._toDispose=new Set,this._isDisposed=!1}dispose(){this._isDisposed||(this._isDisposed=!0,this.clear())}get isDisposed(){return this._isDisposed}clear(){if(this._toDispose.size!==0)try{ie(this._toDispose)}finally{this._toDispose.clear()}}add(t){if(!t)return t;if(t===this)throw new Error("Cannot register a disposable on itself!");return this._isDisposed?le.DISABLE_DISPOSED_WARNING||console.warn(new Error("Trying to add a disposable to a DisposableStore that has already been disposed of. The added object will be leaked!").stack):this._toDispose.add(t),t}delete(t){if(t){if(t===this)throw new Error("Cannot dispose a disposable on itself!");this._toDispose.delete(t),t.dispose()}}deleteAndLeak(t){t&&this._toDispose.has(t)&&(this._toDispose.delete(t),void 0)}};oe.DISABLE_DISPOSED_WARNING=!1;var ee=oe,O=class{constructor(){this._store=new ee,this._store}dispose(){this._store.dispose()}_register(e){if(e===this)throw new Error("Cannot register a disposable on itself!");return this._store.add(e)}};O.None=Object.freeze({dispose(){}});var Ce=globalThis.performance&&typeof globalThis.performance.now=="function",De=class ae{static create(t){return new ae(t)}constructor(t){this._now=Ce&&t===!1?Date.now:globalThis.performance.now.bind(globalThis.performance),this._startTime=this._now(),this._stopTime=-1}stop(){this._stopTime=this._now()}reset(){this._startTime=this._now(),this._stopTime=-1}elapsed(){return this._stopTime!==-1?this._stopTime-this._startTime:this._now()-this._startTime}},Ae;(e=>{e.None=()=>O.None;function t(o,r){return S(o,()=>{},0,void 0,!0,void 0,r)}e.defer=t;function s(o){return(r,n=null,i)=>{let a=!1,c;return c=o(p=>{if(!a)return c?c.dispose():a=!0,r.call(n,p)},null,i),a&&c.dispose(),c}}e.once=s;function l(o,r,n){return L((i,a=null,c)=>o(p=>i.call(a,r(p)),null,c),n)}e.map=l;function u(o,r,n){return L((i,a=null,c)=>o(p=>{r(p),i.call(a,p)},null,c),n)}e.forEach=u;function d(o,r,n){return L((i,a=null,c)=>o(p=>r(p)&&i.call(a,p),null,c),n)}e.filter=d;function m(o){return o}e.signal=m;function y(...o){return(r,n=null,i)=>{let a=Te(...o.map(c=>c(p=>r.call(n,p))));return F(a,i)}}e.any=y;function E(o,r,n,i){let a=n;return l(o,c=>(a=r(a,c),a),i)}e.reduce=E;function L(o,r){let n,i={onWillAddFirstListener(){n=o(a.fire,a)},onDidRemoveLastListener(){n?.dispose()}},a=new x(i);return r?.add(a),a.event}function F(o,r){return r instanceof Array?r.push(o):r&&r.add(o),o}function S(o,r,n=100,i=!1,a=!1,c,p){let v,b,D,M=0,A,pe={leakWarningThreshold:c,onWillAddFirstListener(){v=o(_e=>{M++,b=r(b,_e),i&&!D&&(P.fire(b),b=void 0),A=()=>{let ve=b;b=void 0,D=void 0,(!i||M>1)&&P.fire(ve),M=0},typeof n=="number"?(clearTimeout(D),D=setTimeout(A,n)):D===void 0&&(D=0,queueMicrotask(A))})},onWillRemoveListener(){a&&M>0&&A?.()},onDidRemoveLastListener(){A=void 0,v.dispose()}},P=new x(pe);return p?.add(P),P.event}e.debounce=S;function U(o,r=0,n){return e.debounce(o,(i,a)=>i?(i.push(a),i):[a],r,void 0,!0,void 0,n)}e.accumulate=U;function R(o,r=(i,a)=>i===a,n){let i=!0,a;return d(o,c=>{let p=i||!r(c,a);return i=!1,a=c,p},n)}e.latch=R;function H(o,r,n){return[e.filter(o,r,n),e.filter(o,i=>!r(i),n)]}e.split=H;function I(o,r=!1,n=[],i){let a=n.slice(),c=o(b=>{a?a.push(b):v.fire(b)});i&&i.add(c);let p=()=>{a?.forEach(b=>v.fire(b)),a=null},v=new x({onWillAddFirstListener(){c||(c=o(b=>v.fire(b)),i&&i.add(c))},onDidAddFirstListener(){a&&(r?setTimeout(p):p())},onDidRemoveLastListener(){c&&c.dispose(),c=null}});return i&&i.add(v),v.event}e.buffer=I;function $(o,r){return(n,i,a)=>{let c=r(new q);return o(function(p){let v=c.evaluate(p);v!==T&&n.call(i,v)},void 0,a)}}e.chain=$;let T=Symbol("HaltChainable");class q{constructor(){this.steps=[]}map(r){return this.steps.push(r),this}forEach(r){return this.steps.push(n=>(r(n),n)),this}filter(r){return this.steps.push(n=>r(n)?n:T),this}reduce(r,n){let i=n;return this.steps.push(a=>(i=r(i,a),i)),this}latch(r=(n,i)=>n===i){let n=!0,i;return this.steps.push(a=>{let c=n||!r(a,i);return n=!1,i=a,c?a:T}),this}evaluate(r){for(let n of this.steps)if(r=n(r),r===T)break;return r}}function j(o,r,n=i=>i){let i=(...v)=>p.fire(n(...v)),a=()=>o.on(r,i),c=()=>o.removeListener(r,i),p=new x({onWillAddFirstListener:a,onDidRemoveLastListener:c});return p.event}e.fromNodeEventEmitter=j;function h(o,r,n=i=>i){let i=(...v)=>p.fire(n(...v)),a=()=>o.addEventListener(r,i),c=()=>o.removeEventListener(r,i),p=new x({onWillAddFirstListener:a,onDidRemoveLastListener:c});return p.event}e.fromDOMEventEmitter=h;function f(o){return new Promise(r=>s(o)(r))}e.toPromise=f;function _(o){let r=new x;return o.then(n=>{r.fire(n)},()=>{r.fire(void 0)}).finally(()=>{r.dispose()}),r.event}e.fromPromise=_;function w(o,r){return o(n=>r.fire(n))}e.forward=w;function C(o,r,n){return r(n),o(i=>r(i))}e.runAndSubscribe=C;class W{constructor(r,n){this._observable=r,this._counter=0,this._hasChanged=!1;let i={onWillAddFirstListener:()=>{r.addObserver(this)},onDidRemoveLastListener:()=>{r.removeObserver(this)}};this.emitter=new x(i),n&&n.add(this.emitter)}beginUpdate(r){this._counter++}handlePossibleChange(r){}handleChange(r,n){this._hasChanged=!0}endUpdate(r){this._counter--,this._counter===0&&(this._observable.reportChanges(),this._hasChanged&&(this._hasChanged=!1,this.emitter.fire(this._observable.get())))}}function de(o,r){return new W(o,r).emitter.event}e.fromObservable=de;function fe(o){return(r,n,i)=>{let a=0,c=!1,p={beginUpdate(){a++},endUpdate(){a--,a===0&&(o.reportChanges(),c&&(c=!1,r.call(n)))},handlePossibleChange(){},handleChange(){c=!0}};o.addObserver(p),o.reportChanges();let v={dispose(){o.removeObserver(p)}};return i instanceof ee?i.add(v):Array.isArray(i)&&i.push(v),v}}e.fromObservableLight=fe})(Ae||={});var Z=class Q{constructor(t){this.listenerCount=0,this.invocationCount=0,this.elapsedOverall=0,this.durations=[],this.name=`${t}_${Q._idPool++}`,Q.all.add(this)}start(t){this._stopWatch=new De,this.listenerCount=t}stop(){if(this._stopWatch){let t=this._stopWatch.elapsed();this.durations.push(t),this.elapsedOverall+=t,this.invocationCount+=1,this._stopWatch=void 0}}};Z.all=new Set,Z._idPool=0;var Se=Z,We=-1,he=class ue{constructor(t,s,l=(ue._idPool++).toString(16).padStart(3,"0")){this._errorHandler=t,this.threshold=s,this.name=l,this._warnCountdown=0}dispose(){this._stacks?.clear()}check(t,s){let l=this.threshold;if(l<=0||s<l)return;this._stacks||(this._stacks=new Map);let u=this._stacks.get(t.value)||0;if(this._stacks.set(t.value,u+1),this._warnCountdown-=1,this._warnCountdown<=0){this._warnCountdown=l*.5;let[d,m]=this.getMostFrequentStack(),y=`[${this.name}] potential listener LEAK detected, having ${s} listeners already. MOST frequent listener (${m}):`;console.warn(y),console.warn(d);let E=new Ne(y,d);this._errorHandler(E)}return()=>{let d=this._stacks.get(t.value)||0;this._stacks.set(t.value,d-1)}}getMostFrequentStack(){if(!this._stacks)return;let t,s=0;for(let[l,u]of this._stacks)(!t||s<u)&&(t=[l,u],s=u);return t}};he._idPool=1;var Me=he,Pe=class ce{constructor(t){this.value=t}static create(){let t=new Error;return new ce(t.stack??"")}print(){console.warn(this.value.split(`
6
+ `).slice(2).join(`
7
+ `))}},Ne=class extends Error{constructor(e,t){super(e),this.name="ListenerLeakError",this.stack=t}},Oe=class extends Error{constructor(e,t){super(e),this.name="ListenerRefusalError",this.stack=t}},ze=0,B=class{constructor(e){this.value=e,this.id=ze++}},Fe=2,Ue,x=class{constructor(e){this._size=0,this._options=e,this._leakageMon=this._options?.leakWarningThreshold?new Me(e?.onListenerError??G,this._options?.leakWarningThreshold??We):void 0,this._perfMon=this._options?._profName?new Se(this._options._profName):void 0,this._deliveryQueue=this._options?.deliveryQueue}dispose(){this._disposed||(this._disposed=!0,this._deliveryQueue?.current===this&&this._deliveryQueue.reset(),this._listeners&&(this._listeners=void 0,this._size=0),this._options?.onDidRemoveLastListener?.(),this._leakageMon?.dispose())}get event(){return this._event??=(e,t,s)=>{if(this._leakageMon&&this._size>this._leakageMon.threshold**2){let m=`[${this._leakageMon.name}] REFUSES to accept new listeners because it exceeded its threshold by far (${this._size} vs ${this._leakageMon.threshold})`;console.warn(m);let y=this._leakageMon.getMostFrequentStack()??["UNKNOWN stack",-1],E=new Oe(`${m}. HINT: Stack shows most frequent listener (${y[1]}-times)`,y[0]);return(this._options?.onListenerError||G)(E),O.None}if(this._disposed)return O.None;t&&(e=e.bind(t));let l=new B(e),u;this._leakageMon&&this._size>=Math.ceil(this._leakageMon.threshold*.2)&&(l.stack=Pe.create(),u=this._leakageMon.check(l.stack,this._size+1)),this._listeners?this._listeners instanceof B?(this._deliveryQueue??=new Re,this._listeners=[this._listeners,l]):this._listeners.push(l):(this._options?.onWillAddFirstListener?.(this),this._listeners=l,this._options?.onDidAddFirstListener?.(this)),this._size++;let d=ne(()=>{u?.(),this._removeListener(l)});return s instanceof ee?s.add(d):Array.isArray(s)&&s.push(d),d},this._event}_removeListener(e){if(this._options?.onWillRemoveListener?.(this),!this._listeners)return;if(this._size===1){this._listeners=void 0,this._options?.onDidRemoveLastListener?.(this),this._size=0;return}let t=this._listeners,s=t.indexOf(e);if(s===-1)throw console.log("disposed?",this._disposed),console.log("size?",this._size),console.log("arr?",JSON.stringify(this._listeners)),new Error("Attempted to dispose unknown listener");this._size--,t[s]=void 0;let l=this._deliveryQueue.current===this;if(this._size*Fe<=t.length){let u=0;for(let d=0;d<t.length;d++)t[d]?t[u++]=t[d]:l&&(this._deliveryQueue.end--,u<this._deliveryQueue.i&&this._deliveryQueue.i--);t.length=u}}_deliver(e,t){if(!e)return;let s=this._options?.onListenerError||G;if(!s){e.value(t);return}try{e.value(t)}catch(l){s(l)}}_deliverQueue(e){let t=e.current._listeners;for(;e.i<e.end;)this._deliver(t[e.i++],e.value);e.reset()}fire(e){if(this._deliveryQueue?.current&&(this._deliverQueue(this._deliveryQueue),this._perfMon?.stop()),this._perfMon?.start(this._size),this._listeners)if(this._listeners instanceof B)this._deliver(this._listeners,e);else{let t=this._deliveryQueue;t.enqueue(this,e,this._listeners.length),this._deliverQueue(t)}this._perfMon?.stop()}hasListeners(){return this._size>0}},Re=class{constructor(){this.i=-1,this.end=0}enqueue(e,t,s){this.i=0,this.end=s,this.current=e,this.value=t}reset(){this.i=this.end,this.current=void 0,this.value=void 0}},z=class N{constructor(){this._providers=Object.create(null),this._active="",this._onChange=new x,this.onChange=this._onChange.event;let t=new we;this.register(t),this._active=t.version,this._activeProvider=t}static extractShouldJoin(t){return(t&1)!==0}static extractWidth(t){return t>>1&3}static extractCharKind(t){return t>>3}static createPropertyValue(t,s,l=!1){return(t&16777215)<<3|(s&3)<<1|(l?1:0)}dispose(){this._onChange.dispose()}get versions(){return Object.keys(this._providers)}get activeVersion(){return this._active}set activeVersion(t){if(!this._providers[t])throw new Error(`unknown Unicode version "${t}"`);this._active=t,this._activeProvider=this._providers[t],this._onChange.fire(t)}register(t){this._providers[t.version]=t}wcwidth(t){return this._activeProvider.wcwidth(t)}getStringCellWidth(t){let s=0,l=0,u=t.length;for(let d=0;d<u;++d){let m=t.charCodeAt(d);if(55296<=m&&m<=56319){if(++d>=u)return s+this.wcwidth(m);let L=t.charCodeAt(d);56320<=L&&L<=57343?m=(m-55296)*1024+L-56320+65536:s+=this.wcwidth(L)}let y=this.charProperties(m,l),E=N.extractWidth(y);N.extractShouldJoin(y)&&(E-=N.extractWidth(l)),s+=E,l=y}return s}charProperties(t,s){return this._activeProvider.charProperties(t,s)}},J=[[768,879],[1155,1161],[1425,1469],[1471,1471],[1473,1474],[1476,1477],[1479,1479],[1536,1541],[1552,1562],[1564,1564],[1611,1631],[1648,1648],[1750,1757],[1759,1764],[1767,1768],[1770,1773],[1807,1807],[1809,1809],[1840,1866],[1958,1968],[2027,2035],[2045,2045],[2070,2073],[2075,2083],[2085,2087],[2089,2093],[2137,2139],[2259,2306],[2362,2362],[2364,2364],[2369,2376],[2381,2381],[2385,2391],[2402,2403],[2433,2433],[2492,2492],[2497,2500],[2509,2509],[2530,2531],[2558,2558],[2561,2562],[2620,2620],[2625,2626],[2631,2632],[2635,2637],[2641,2641],[2672,2673],[2677,2677],[2689,2690],[2748,2748],[2753,2757],[2759,2760],[2765,2765],[2786,2787],[2810,2815],[2817,2817],[2876,2876],[2879,2879],[2881,2884],[2893,2893],[2902,2902],[2914,2915],[2946,2946],[3008,3008],[3021,3021],[3072,3072],[3076,3076],[3134,3136],[3142,3144],[3146,3149],[3157,3158],[3170,3171],[3201,3201],[3260,3260],[3263,3263],[3270,3270],[3276,3277],[3298,3299],[3328,3329],[3387,3388],[3393,3396],[3405,3405],[3426,3427],[3530,3530],[3538,3540],[3542,3542],[3633,3633],[3636,3642],[3655,3662],[3761,3761],[3764,3772],[3784,3789],[3864,3865],[3893,3893],[3895,3895],[3897,3897],[3953,3966],[3968,3972],[3974,3975],[3981,3991],[3993,4028],[4038,4038],[4141,4144],[4146,4151],[4153,4154],[4157,4158],[4184,4185],[4190,4192],[4209,4212],[4226,4226],[4229,4230],[4237,4237],[4253,4253],[4448,4607],[4957,4959],[5906,5908],[5938,5940],[5970,5971],[6002,6003],[6068,6069],[6071,6077],[6086,6086],[6089,6099],[6109,6109],[6155,6158],[6277,6278],[6313,6313],[6432,6434],[6439,6440],[6450,6450],[6457,6459],[6679,6680],[6683,6683],[6742,6742],[6744,6750],[6752,6752],[6754,6754],[6757,6764],[6771,6780],[6783,6783],[6832,6846],[6912,6915],[6964,6964],[6966,6970],[6972,6972],[6978,6978],[7019,7027],[7040,7041],[7074,7077],[7080,7081],[7083,7085],[7142,7142],[7144,7145],[7149,7149],[7151,7153],[7212,7219],[7222,7223],[7376,7378],[7380,7392],[7394,7400],[7405,7405],[7412,7412],[7416,7417],[7616,7673],[7675,7679],[8203,8207],[8234,8238],[8288,8292],[8294,8303],[8400,8432],[11503,11505],[11647,11647],[11744,11775],[12330,12333],[12441,12442],[42607,42610],[42612,42621],[42654,42655],[42736,42737],[43010,43010],[43014,43014],[43019,43019],[43045,43046],[43204,43205],[43232,43249],[43263,43263],[43302,43309],[43335,43345],[43392,43394],[43443,43443],[43446,43449],[43452,43453],[43493,43493],[43561,43566],[43569,43570],[43573,43574],[43587,43587],[43596,43596],[43644,43644],[43696,43696],[43698,43700],[43703,43704],[43710,43711],[43713,43713],[43756,43757],[43766,43766],[44005,44005],[44008,44008],[44013,44013],[64286,64286],[65024,65039],[65056,65071],[65279,65279],[65529,65531]],He=[[66045,66045],[66272,66272],[66422,66426],[68097,68099],[68101,68102],[68108,68111],[68152,68154],[68159,68159],[68325,68326],[68900,68903],[69446,69456],[69633,69633],[69688,69702],[69759,69761],[69811,69814],[69817,69818],[69821,69821],[69837,69837],[69888,69890],[69927,69931],[69933,69940],[70003,70003],[70016,70017],[70070,70078],[70089,70092],[70191,70193],[70196,70196],[70198,70199],[70206,70206],[70367,70367],[70371,70378],[70400,70401],[70459,70460],[70464,70464],[70502,70508],[70512,70516],[70712,70719],[70722,70724],[70726,70726],[70750,70750],[70835,70840],[70842,70842],[70847,70848],[70850,70851],[71090,71093],[71100,71101],[71103,71104],[71132,71133],[71219,71226],[71229,71229],[71231,71232],[71339,71339],[71341,71341],[71344,71349],[71351,71351],[71453,71455],[71458,71461],[71463,71467],[71727,71735],[71737,71738],[72148,72151],[72154,72155],[72160,72160],[72193,72202],[72243,72248],[72251,72254],[72263,72263],[72273,72278],[72281,72283],[72330,72342],[72344,72345],[72752,72758],[72760,72765],[72767,72767],[72850,72871],[72874,72880],[72882,72883],[72885,72886],[73009,73014],[73018,73018],[73020,73021],[73023,73029],[73031,73031],[73104,73105],[73109,73109],[73111,73111],[73459,73460],[78896,78904],[92912,92916],[92976,92982],[94031,94031],[94095,94098],[113821,113822],[113824,113827],[119143,119145],[119155,119170],[119173,119179],[119210,119213],[119362,119364],[121344,121398],[121403,121452],[121461,121461],[121476,121476],[121499,121503],[121505,121519],[122880,122886],[122888,122904],[122907,122913],[122915,122916],[122918,122922],[123184,123190],[123628,123631],[125136,125142],[125252,125258],[917505,917505],[917536,917631],[917760,917999]],K=[[4352,4447],[8986,8987],[9001,9002],[9193,9196],[9200,9200],[9203,9203],[9725,9726],[9748,9749],[9800,9811],[9855,9855],[9875,9875],[9889,9889],[9898,9899],[9917,9918],[9924,9925],[9934,9934],[9940,9940],[9962,9962],[9970,9971],[9973,9973],[9978,9978],[9981,9981],[9989,9989],[9994,9995],[10024,10024],[10060,10060],[10062,10062],[10067,10069],[10071,10071],[10133,10135],[10160,10160],[10175,10175],[11035,11036],[11088,11088],[11093,11093],[11904,11929],[11931,12019],[12032,12245],[12272,12283],[12288,12329],[12334,12350],[12353,12438],[12443,12543],[12549,12591],[12593,12686],[12688,12730],[12736,12771],[12784,12830],[12832,12871],[12880,19903],[19968,42124],[42128,42182],[43360,43388],[44032,55203],[63744,64255],[65040,65049],[65072,65106],[65108,65126],[65128,65131],[65281,65376],[65504,65510]],Ie=[[94176,94179],[94208,100343],[100352,101106],[110592,110878],[110928,110930],[110948,110951],[110960,111355],[126980,126980],[127183,127183],[127374,127374],[127377,127386],[127488,127490],[127504,127547],[127552,127560],[127568,127569],[127584,127589],[127744,127776],[127789,127797],[127799,127868],[127870,127891],[127904,127946],[127951,127955],[127968,127984],[127988,127988],[127992,128062],[128064,128064],[128066,128252],[128255,128317],[128331,128334],[128336,128359],[128378,128378],[128405,128406],[128420,128420],[128507,128591],[128640,128709],[128716,128716],[128720,128722],[128725,128725],[128747,128748],[128756,128762],[128992,129003],[129293,129393],[129395,129398],[129402,129442],[129445,129450],[129454,129482],[129485,129535],[129648,129651],[129656,129658],[129664,129666],[129680,129685],[131072,196605],[196608,262141]],k;function re(e,t){let s=0,l=t.length-1,u;if(e<t[0][0]||e>t[l][1])return!1;for(;l>=s;)if(u=s+l>>1,e>t[u][1])s=u+1;else if(e<t[u][0])l=u-1;else return!0;return!1}var $e=class{constructor(){if(this.version="11",!k){k=new Uint8Array(65536),k.fill(1),k[0]=0,k.fill(0,1,32),k.fill(0,127,160);for(let e=0;e<J.length;++e)k.fill(0,J[e][0],J[e][1]+1);for(let e=0;e<K.length;++e)k.fill(2,K[e][0],K[e][1]+1)}}wcwidth(e){return e<32?0:e<127?1:e<65536?k[e]:re(e,He)?0:re(e,Ie)?2:1}charProperties(e,t){let s=this.wcwidth(e),l=s===0&&t!==0;if(l){let u=z.extractWidth(t);u===0?l=!1:u>s&&(s=u)}return z.createPropertyValue(0,s,l)}},qe=class{activate(e){e.unicode.register(new $e)}dispose(){}};export{qe as Unicode11Addon};
@@ -0,0 +1 @@
1
+ var L=class{constructor(s,e,t,r={}){this._terminal=s,this._regex=e,this._handler=t,this._options=r}provideLinks(s,e){let t=x.computeLink(s,this._regex,this._terminal,this._handler);e(this._addCallbacks(t))}_addCallbacks(s){return s.map(e=>(e.leave=this._options.leave,e.hover=(t,r)=>{if(this._options.hover){let{range:l}=e;this._options.hover(t,r,l)}},e))}};function m(s){try{let e=new URL(s),t=e.password&&e.username?`${e.protocol}//${e.username}:${e.password}@${e.host}`:e.username?`${e.protocol}//${e.username}@${e.host}`:`${e.protocol}//${e.host}`;return s.toLocaleLowerCase().startsWith(t.toLocaleLowerCase())}catch{return!1}}var x=class d{static computeLink(e,t,r,l){let h=new RegExp(t.source,(t.flags||"")+"g"),[i,n]=d._getWindowedLineStrings(e-1,r),a=i.join(""),o,c=[];for(;o=h.exec(a);){let p=o[0];if(!m(p))continue;let[u,g]=d._mapStrIdx(r,n,0,o.index),[f,_]=d._mapStrIdx(r,u,g,p.length);if(u===-1||g===-1||f===-1||_===-1)continue;let v={start:{x:g+1,y:u+1},end:{x:_,y:f+1}};c.push({range:v,text:p,activate:l})}return c}static _getWindowedLineStrings(e,t){let r,l=e,h=e,i=0,n="",a=[];if(r=t.buffer.active.getLine(e)){let o=r.translateToString(!0);if(r.isWrapped&&o[0]!==" "){for(i=0;(r=t.buffer.active.getLine(--l))&&i<2048&&(n=r.translateToString(!0),i+=n.length,a.push(n),!(!r.isWrapped||n.indexOf(" ")!==-1)););a.reverse()}for(a.push(o),i=0;(r=t.buffer.active.getLine(++h))&&r.isWrapped&&i<2048&&(n=r.translateToString(!0),i+=n.length,a.push(n),n.indexOf(" ")===-1););}return[a,l]}static _mapStrIdx(e,t,r,l){let h=e.buffer.active,i=h.getNullCell(),n=r;for(;l;){let a=h.getLine(t);if(!a)return[-1,-1];for(let o=n;o<a.length;++o){a.getCell(o,i);let c=i.getChars();if(i.getWidth()&&(l-=c.length||1,o===a.length-1&&c==="")){let p=h.getLine(t+1);p&&p.isWrapped&&(p.getCell(0,i),i.getWidth()===2&&(l+=1))}if(l<0)return[t,o]}t++,n=0}return[t,n]}},w=/(https?|HTTPS?):[/]{2}[^\s"'!*(){}|\\\^<>`]*[^\s"':,.!?{}|\\\^~\[\]`()<>]/;function k(s,e){let t=window.open();if(t){try{t.opener=null}catch{}t.location.href=e}else console.warn("Opening link blocked as opener could not be cleared")}var b=class{constructor(s=k,e={}){this._handler=s,this._options=e}activate(s){this._terminal=s;let e=this._options,t=e.urlRegex||w;this._linkProvider=this._terminal.registerLinkProvider(new L(this._terminal,t,this._handler,e))}dispose(){this._linkProvider?.dispose()}};export{b as WebLinksAddon};