elanous 0.2.13 → 0.2.15

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 (524) hide show
  1. package/apps/pwa/out/404/index.html +1 -1
  2. package/apps/pwa/out/404.html +1 -1
  3. package/apps/pwa/out/_next/static/LZcstaO9_NXypPFmujolv/_buildManifest.js +1 -0
  4. package/apps/pwa/out/_next/static/chunks/{7334.a6679d9168f37aa8.js → 1268.0840ff91e083fcbd.js} +1 -1
  5. package/apps/pwa/out/_next/static/chunks/1307-33ffcc49ab45123b.js +1 -0
  6. package/apps/pwa/out/_next/static/chunks/1826-5d279da64bbbc2de.js +1 -0
  7. package/apps/pwa/out/_next/static/chunks/{9656-c1540088f5859c80.js → 1844-9ec4b1d12f6e80eb.js} +1 -1
  8. package/apps/pwa/out/_next/static/chunks/1866-e7a6999f25548b30.js +1 -0
  9. package/apps/pwa/out/_next/static/chunks/{390.c373e31b3b9d0c41.js → 1948.15f356b15a625597.js} +2 -2
  10. package/apps/pwa/out/_next/static/chunks/211-9c9090c59e2c5907.js +1 -0
  11. package/apps/pwa/out/_next/static/chunks/2196-4700653d12a44b40.js +1 -0
  12. package/apps/pwa/out/_next/static/chunks/224-798346143007ff65.js +1 -0
  13. package/apps/pwa/out/_next/static/chunks/2699-63b73fa4d3bcf6ff.js +1 -0
  14. package/apps/pwa/out/_next/static/chunks/2957-96ffab3d521fb08f.js +1 -0
  15. package/apps/pwa/out/_next/static/chunks/311.e685738f92e6e2ec.js +1 -0
  16. package/apps/pwa/out/_next/static/chunks/3194-807b212fb8eae065.js +1 -0
  17. package/apps/pwa/out/_next/static/chunks/3324-d1d2979821dfa845.js +1 -0
  18. package/apps/pwa/out/_next/static/chunks/3558-bbb5ab553a0471d3.js +1 -0
  19. package/apps/pwa/out/_next/static/chunks/3916-3d02dd1fc257dd3c.js +1 -0
  20. package/apps/pwa/out/_next/static/chunks/4144-a0041c8dc3be57ac.js +1 -0
  21. package/apps/pwa/out/_next/static/chunks/4554-3565eea1f1495ba7.js +1 -0
  22. package/apps/pwa/out/_next/static/chunks/{4685-c3c1c625b71accd1.js → 4614-21403aac730d4586.js} +1 -1
  23. package/apps/pwa/out/_next/static/chunks/{8039-df92e08fede5de8f.js → 4795-f372490b178583fc.js} +1 -1
  24. package/apps/pwa/out/_next/static/chunks/5135-44008fe8b1f2aa41.js +1 -0
  25. package/apps/pwa/out/_next/static/chunks/5233-bf28bd6bd7a32099.js +1 -0
  26. package/apps/pwa/out/_next/static/chunks/5360-be1f1d8f9fcc9755.js +1 -0
  27. package/apps/pwa/out/_next/static/chunks/5977-c952712c87a1f757.js +1 -0
  28. package/apps/pwa/out/_next/static/chunks/5994-ae92c0de046ab9ba.js +1 -0
  29. package/apps/pwa/out/_next/static/chunks/{1452.93700483b9d4fc61.js → 6110.1297d4093fdfbb0d.js} +1 -1
  30. package/apps/pwa/out/_next/static/chunks/6158.9c0449a9a8d0064b.js +2 -0
  31. package/apps/pwa/out/_next/static/chunks/6877-7c6208705c284124.js +1 -0
  32. package/apps/pwa/out/_next/static/chunks/726.83532d69452ee24b.js +1 -0
  33. package/apps/pwa/out/_next/static/chunks/7290-f09c928a06c52e2d.js +1 -0
  34. package/apps/pwa/out/_next/static/chunks/{1829-b453a1b22d3999bb.js → 7327-2d69fb321ba73389.js} +1 -1
  35. package/apps/pwa/out/_next/static/chunks/7395-164e238f471b5d7b.js +1 -0
  36. package/apps/pwa/out/_next/static/chunks/7787-02a1c0b04e25e811.js +1 -0
  37. package/apps/pwa/out/_next/static/chunks/8060-cc008cc6fedfa818.js +1 -0
  38. package/apps/pwa/out/_next/static/chunks/8085-d065d0393c1760f5.js +1 -0
  39. package/apps/pwa/out/_next/static/chunks/8682-7061dd4fa7bd62ed.js +1 -0
  40. package/apps/pwa/out/_next/static/chunks/8827-e2f5b09a8d37e83b.js +1 -0
  41. package/apps/pwa/out/_next/static/chunks/8868-10a3a4440fb0ccd8.js +25 -0
  42. package/apps/pwa/out/_next/static/chunks/{8421-1c4acfb1395a0edf.js → 8949-ecb4128a0858b911.js} +1 -1
  43. package/apps/pwa/out/_next/static/chunks/899-46946fe8363e1262.js +1 -0
  44. package/apps/pwa/out/_next/static/chunks/9070.067c106528ec1ae6.js +1 -0
  45. package/apps/pwa/out/_next/static/chunks/9103-7a3ae7f60af3b99f.js +1 -0
  46. package/apps/pwa/out/_next/static/chunks/{3869-3cd46526879f454c.js → 9247-29d889b809288e65.js} +1 -1
  47. package/apps/pwa/out/_next/static/chunks/935.4ddaa99fc1d1126c.js +1 -0
  48. package/apps/pwa/out/_next/static/chunks/{79f8be9e-957d68913b590b08.js → a9f2b54d-7865aba0f4d2ee49.js} +1 -1
  49. package/apps/pwa/out/_next/static/chunks/app/_not-found/page-c1a96669158471ec.js +1 -0
  50. package/apps/pwa/out/_next/static/chunks/app/approvals/page-0e2c57fe6add4b2a.js +1 -0
  51. package/apps/pwa/out/_next/static/chunks/app/autopilot/page-e05a77df7e005b04.js +1 -0
  52. package/apps/pwa/out/_next/static/chunks/app/board/page-f544338193a9a762.js +1 -0
  53. package/apps/pwa/out/_next/static/chunks/app/botlab/page-5491c115b1f9a923.js +1 -0
  54. package/apps/pwa/out/_next/static/chunks/app/bots/page-b8c49f6b4fa2df91.js +1 -0
  55. package/apps/pwa/out/_next/static/chunks/app/ceo/page-96398e364fbd4548.js +1 -0
  56. package/apps/pwa/out/_next/static/chunks/app/chat/page-976813c91d7394ea.js +1 -0
  57. package/apps/pwa/out/_next/static/chunks/app/consult/page-28b9448091776c06.js +1 -0
  58. package/apps/pwa/out/_next/static/chunks/app/control/page-1d4901eb7c2d8822.js +1 -0
  59. package/apps/pwa/out/_next/static/chunks/app/design-check/page-72d3e7ff35a8c954.js +1 -0
  60. package/apps/pwa/out/_next/static/chunks/app/editor/page-60c7a8e1a4fe62ce.js +1 -0
  61. package/apps/pwa/out/_next/static/chunks/app/exec/page-2a52b316cb143d9c.js +1 -0
  62. package/apps/pwa/out/_next/static/chunks/app/field/page-c3ce483c8d5db370.js +1 -0
  63. package/apps/pwa/out/_next/static/chunks/app/healthz/route-c1a96669158471ec.js +1 -0
  64. package/apps/pwa/out/_next/static/chunks/app/inside/page-13c7b53e0c2519a9.js +1 -0
  65. package/apps/pwa/out/_next/static/chunks/app/intake/page-96f074f6538e8a2c.js +1 -0
  66. package/apps/pwa/out/_next/static/chunks/app/layout-e97be5334d83a9f5.js +1 -0
  67. package/apps/pwa/out/_next/static/chunks/app/live/page-65e484302921a932.js +1 -0
  68. package/apps/pwa/out/_next/static/chunks/app/loops/page-34d08facaf08f556.js +1 -0
  69. package/apps/pwa/out/_next/static/chunks/app/market/page-955ec2da3be4c560.js +1 -0
  70. package/apps/pwa/out/_next/static/chunks/app/missions/[id]/page-9f88fbc15d9058d1.js +1 -0
  71. package/apps/pwa/out/_next/static/chunks/app/morning/page-c1343f9499d86f3f.js +1 -0
  72. package/apps/pwa/out/_next/static/chunks/app/not-found-8739a2e0ae793130.js +1 -0
  73. package/apps/pwa/out/_next/static/chunks/app/observatory/page-c9fc5706b8abaa11.js +1 -0
  74. package/apps/pwa/out/_next/static/chunks/app/ops/checklist/page-d23b12bb92242558.js +1 -0
  75. package/apps/pwa/out/_next/static/chunks/app/ops/release/page-8d47f45a0dc044ac.js +1 -0
  76. package/apps/pwa/out/_next/static/chunks/app/ops/seats/page-c7fea475488201a8.js +1 -0
  77. package/apps/pwa/out/_next/static/chunks/app/outputs/page-e2ee2896811e98d0.js +1 -0
  78. package/apps/pwa/out/_next/static/chunks/app/page-83b19dae8619de05.js +1 -0
  79. package/apps/pwa/out/_next/static/chunks/app/reflection/page-5efbf81124c474ae.js +1 -0
  80. package/apps/pwa/out/_next/static/chunks/app/scheduler/page-85f1a1fc0a82738c.js +1 -0
  81. package/apps/pwa/out/_next/static/chunks/app/sessions/page-da6c08aae0f92768.js +1 -0
  82. package/apps/pwa/out/_next/static/chunks/app/settings/devices/page-06ee266953d9c879.js +1 -0
  83. package/apps/pwa/out/_next/static/chunks/app/settings/page-153c2b3bcc89e8de.js +1 -0
  84. package/apps/pwa/out/_next/static/chunks/app/setup/done/page-87a11e6a05f15199.js +1 -0
  85. package/apps/pwa/out/_next/static/chunks/app/setup/layout-c1a96669158471ec.js +1 -0
  86. package/apps/pwa/out/_next/static/chunks/app/setup/page-7d4182964407c09c.js +1 -0
  87. package/apps/pwa/out/_next/static/chunks/app/share/page-0d6d23b40263a7ea.js +1 -0
  88. package/apps/pwa/out/_next/static/chunks/app/showroom/page-7e8c39241f8eb6d0.js +1 -0
  89. package/apps/pwa/out/_next/static/chunks/app/tasks/page-008c1a96618a4887.js +1 -0
  90. package/apps/pwa/out/_next/static/chunks/app/term/{page-63d14a4d8fe1e1c1.js → page-f5597e894c02cd33.js} +1 -1
  91. package/apps/pwa/out/_next/static/chunks/app/today/page-0337fdf7fb5e37b6.js +1 -0
  92. package/apps/pwa/out/_next/static/chunks/app/trace/page-73735b64bfe1ae67.js +1 -0
  93. package/apps/pwa/out/_next/static/chunks/app/vault/page-8fcec4c9ea2e7f70.js +1 -0
  94. package/apps/pwa/out/_next/static/chunks/app/workflows/chat-ui/page-f7e631e9b4daf66e.js +1 -0
  95. package/apps/pwa/out/_next/static/chunks/app/workflows/page-4881b8f9f63694b4.js +1 -0
  96. package/apps/pwa/out/_next/static/chunks/app/workspace/page-9817c7f9007466cc.js +1 -0
  97. package/apps/pwa/out/_next/static/chunks/app/worktrees/page-97f9f43172a3a90e.js +1 -0
  98. package/apps/pwa/out/_next/static/chunks/{5cd7e3a9-404fd6b8d0ecd44c.js → f6231284-45726550aba08fca.js} +1 -1
  99. package/apps/pwa/out/_next/static/chunks/{f48170cc-d05d28bf87a43bf4.js → f6b7c9ba.64a895b8b2fedbdc.js} +1 -1
  100. package/apps/pwa/out/_next/static/chunks/framework-5c169757551134ed.js +1 -0
  101. package/apps/pwa/out/_next/static/chunks/main-59fe95fed40c7a01.js +1 -0
  102. package/apps/pwa/out/_next/static/chunks/main-app-4ca74dbbee7057c6.js +1 -0
  103. package/apps/pwa/out/_next/static/chunks/pages/_app-13a0a886df4d97a1.js +1 -0
  104. package/apps/pwa/out/_next/static/chunks/pages/_error-6af8591cd3a3f038.js +1 -0
  105. package/apps/pwa/out/_next/static/chunks/webpack-539cde99554be20f.js +1 -0
  106. package/apps/pwa/out/_next/static/css/1f7c958c41ffa3b9.css +1 -0
  107. package/apps/pwa/out/approvals/index.html +1 -1
  108. package/apps/pwa/out/approvals/index.txt +23 -23
  109. package/apps/pwa/out/autopilot/index.html +1 -1
  110. package/apps/pwa/out/autopilot/index.txt +23 -23
  111. package/apps/pwa/out/board/index.html +1 -1
  112. package/apps/pwa/out/board/index.txt +23 -23
  113. package/apps/pwa/out/botlab/index.html +1 -1
  114. package/apps/pwa/out/botlab/index.txt +22 -22
  115. package/apps/pwa/out/bots/index.html +1 -1
  116. package/apps/pwa/out/bots/index.txt +22 -22
  117. package/apps/pwa/out/ceo/index.html +1 -0
  118. package/apps/pwa/out/ceo/index.txt +33 -0
  119. package/apps/pwa/out/chat/index.html +1 -1
  120. package/apps/pwa/out/chat/index.txt +22 -22
  121. package/apps/pwa/out/consult/index.html +1 -1
  122. package/apps/pwa/out/consult/index.txt +23 -23
  123. package/apps/pwa/out/control/index.html +1 -1
  124. package/apps/pwa/out/control/index.txt +23 -23
  125. package/apps/pwa/out/design-check/index.html +1 -1
  126. package/apps/pwa/out/design-check/index.txt +23 -23
  127. package/apps/pwa/out/editor/index.html +1 -1
  128. package/apps/pwa/out/editor/index.txt +23 -23
  129. package/apps/pwa/out/exec/index.html +1 -1
  130. package/apps/pwa/out/exec/index.txt +23 -23
  131. package/apps/pwa/out/field/index.html +1 -1
  132. package/apps/pwa/out/field/index.txt +23 -23
  133. package/apps/pwa/out/healthz +1 -1
  134. package/apps/pwa/out/index.html +1 -1
  135. package/apps/pwa/out/index.txt +22 -22
  136. package/apps/pwa/out/inside/index.html +1 -1
  137. package/apps/pwa/out/inside/index.txt +22 -22
  138. package/apps/pwa/out/intake/index.html +1 -1
  139. package/apps/pwa/out/intake/index.txt +23 -23
  140. package/apps/pwa/out/live/index.html +1 -1
  141. package/apps/pwa/out/live/index.txt +23 -23
  142. package/apps/pwa/out/loops/index.html +1 -0
  143. package/apps/pwa/out/loops/index.txt +30 -0
  144. package/apps/pwa/out/market/index.html +1 -1
  145. package/apps/pwa/out/market/index.txt +22 -22
  146. package/apps/pwa/out/missions/placeholder/index.html +1 -1
  147. package/apps/pwa/out/missions/placeholder/index.txt +22 -22
  148. package/apps/pwa/out/morning/index.html +1 -1
  149. package/apps/pwa/out/morning/index.txt +23 -23
  150. package/apps/pwa/out/observatory/index.html +1 -1
  151. package/apps/pwa/out/observatory/index.txt +23 -23
  152. package/apps/pwa/out/ops/checklist/index.html +1 -1
  153. package/apps/pwa/out/ops/checklist/index.txt +22 -22
  154. package/apps/pwa/out/ops/release/index.html +1 -1
  155. package/apps/pwa/out/ops/release/index.txt +22 -22
  156. package/apps/pwa/out/ops/seats/index.html +1 -1
  157. package/apps/pwa/out/ops/seats/index.txt +22 -22
  158. package/apps/pwa/out/outputs/index.html +1 -1
  159. package/apps/pwa/out/outputs/index.txt +22 -22
  160. package/apps/pwa/out/reflection/index.html +1 -1
  161. package/apps/pwa/out/reflection/index.txt +23 -23
  162. package/apps/pwa/out/scheduler/index.html +1 -1
  163. package/apps/pwa/out/scheduler/index.txt +23 -23
  164. package/apps/pwa/out/sessions/index.html +1 -1
  165. package/apps/pwa/out/sessions/index.txt +22 -22
  166. package/apps/pwa/out/settings/devices/index.html +1 -1
  167. package/apps/pwa/out/settings/devices/index.txt +23 -23
  168. package/apps/pwa/out/settings/index.html +1 -1
  169. package/apps/pwa/out/settings/index.txt +23 -23
  170. package/apps/pwa/out/setup/done/index.html +1 -1
  171. package/apps/pwa/out/setup/done/index.txt +23 -23
  172. package/apps/pwa/out/setup/index.html +1 -1
  173. package/apps/pwa/out/setup/index.txt +23 -23
  174. package/apps/pwa/out/share/index.html +1 -1
  175. package/apps/pwa/out/share/index.txt +23 -23
  176. package/apps/pwa/out/showroom/index.html +1 -1
  177. package/apps/pwa/out/showroom/index.txt +22 -22
  178. package/apps/pwa/out/tasks/index.html +1 -1
  179. package/apps/pwa/out/tasks/index.txt +23 -23
  180. package/apps/pwa/out/term/index.html +1 -1
  181. package/apps/pwa/out/term/index.txt +23 -23
  182. package/apps/pwa/out/today/index.html +1 -1
  183. package/apps/pwa/out/today/index.txt +23 -23
  184. package/apps/pwa/out/trace/index.html +1 -1
  185. package/apps/pwa/out/trace/index.txt +23 -23
  186. package/apps/pwa/out/vault/index.html +1 -1
  187. package/apps/pwa/out/vault/index.txt +23 -23
  188. package/apps/pwa/out/workflows/chat-ui/index.html +1 -1
  189. package/apps/pwa/out/workflows/chat-ui/index.txt +23 -23
  190. package/apps/pwa/out/workflows/index.html +1 -1
  191. package/apps/pwa/out/workflows/index.txt +23 -23
  192. package/apps/pwa/out/workspace/index.html +1 -1
  193. package/apps/pwa/out/workspace/index.txt +23 -23
  194. package/apps/pwa/out/worktrees/index.html +1 -1
  195. package/apps/pwa/out/worktrees/index.txt +23 -23
  196. package/graphs/heal/heal-loop.yaml +1 -1
  197. package/graphs/implement-loop.yaml +1 -1
  198. package/graphs/orchestrator/orchestrator.yaml +59 -0
  199. package/graphs/orchestrator/recipes.yaml +18 -0
  200. package/graphs/release/recipes.yaml +6 -0
  201. package/graphs/release/release-loop.yaml +6 -1
  202. package/graphs/rhythm/daily.yaml +38 -0
  203. package/graphs/rhythm/recipes.yaml +18 -0
  204. package/graphs/rhythm/weekly.yaml +39 -0
  205. package/graphs/video/recipes.yaml +3 -0
  206. package/graphs/video/youtube-summary.yaml +17 -0
  207. package/package.json +1 -1
  208. package/scripts/audit-test-state-writes.ts +72 -17
  209. package/scripts/brand/check.ts +188 -0
  210. package/scripts/ci-typecheck-changed.ts +50 -18
  211. package/scripts/coord-post.sh +11 -1
  212. package/scripts/docs/generate-graph-anatomy.ts +315 -0
  213. package/scripts/docs-cli-check.ts +23 -6
  214. package/scripts/expose-rubric-check.ts +118 -0
  215. package/scripts/expose-rubric-suggest.ts +169 -0
  216. package/scripts/heal/run-role.ts +14 -0
  217. package/scripts/hq/standby-verify.ts +11 -7
  218. package/scripts/lecture-note/node.ts +31 -11
  219. package/scripts/lessons/handbook-page.ts +112 -0
  220. package/scripts/marketing/generate-ax-brief.ts +140 -0
  221. package/scripts/marketing/generate-feature-map.ts +118 -0
  222. package/scripts/release-loop/checklist-gate-node.ts +53 -14
  223. package/scripts/release-loop/gate-node.ts +89 -14
  224. package/scripts/release-loop/publish-node.ts +14 -1
  225. package/scripts/release-loop/unattended-release.ts +23 -1
  226. package/scripts/release-loop/vault-note-node.ts +428 -0
  227. package/scripts/release-story/draft.ts +220 -0
  228. package/scripts/rhythm/daily.ts +570 -0
  229. package/scripts/rhythm/weekly.ts +315 -0
  230. package/scripts/skills/public-check.ts +169 -0
  231. package/scripts/smart-merge/resync-shadow.ts +147 -0
  232. package/scripts/test-deterministic.ts +4 -8
  233. package/scripts/test-diet/effectiveness.ts +195 -0
  234. package/scripts/test-diet/lib.ts +16 -8
  235. package/scripts/test-diet/node.ts +77 -9
  236. package/scripts/ux/demo-rehearsal.ts +2 -2
  237. package/scripts/ux/lib/rehearsal-verdict.ts +1 -0
  238. package/scripts/video/youtube-summary.ts +133 -0
  239. package/skills/diagram-master/SKILL.md +42 -49
  240. package/skills/diagram-master/references/pyproject.toml +4 -1
  241. package/skills/diagram-master/references/routing-guide.md +4 -2
  242. package/skills/grill-me/SKILL.md +1 -0
  243. package/skills/youtube-master/SKILL.md +13 -13
  244. package/skills/youtube-master/package-lock.json +0 -545
  245. package/skills/youtube-master/package.json +2 -5
  246. package/skills/youtube-master/scripts/main.ts +2 -2
  247. package/skills/youtube-master/scripts/transcribe-local.ts +1 -1
  248. package/skills/youtube-master/src/util.ts +30 -7
  249. package/src/agent-env/profile.ts +161 -0
  250. package/src/agent-mission/driver.ts +3 -3
  251. package/src/agent-substrate/pr-reviewer.ts +2 -0
  252. package/src/ask-user-question/pending-questions.ts +5 -0
  253. package/src/auth/github-app-token.ts +112 -13
  254. package/src/autopilot/build/llm-conflict-merge.ts +73 -10
  255. package/src/autopilot/build/merge-intent.ts +53 -0
  256. package/src/briefing/brief-items.ts +121 -0
  257. package/src/chat/index.ts +2 -0
  258. package/src/claims/claims-ledger.ts +232 -0
  259. package/src/claims/claims-render.ts +166 -0
  260. package/src/cli/agent-env-cli.ts +21 -0
  261. package/src/cli/claims-cli.ts +94 -0
  262. package/src/cli/decisions-cli.ts +44 -3
  263. package/src/cli/docs-cli.ts +2 -0
  264. package/src/cli/doctor-cli.ts +23 -1
  265. package/src/cli/doctor-node-modules.ts +147 -0
  266. package/src/cli/flow-cli.ts +11 -0
  267. package/src/cli/freeze-cli.ts +45 -0
  268. package/src/cli/intake-cli.ts +46 -17
  269. package/src/cli/lesson-cli.ts +108 -0
  270. package/src/cli/logs-cli.ts +104 -2
  271. package/src/cli/logs-model-input.ts +131 -0
  272. package/src/cli/pod-cli.ts +2 -0
  273. package/src/cli/pr-cli.ts +29 -1
  274. package/src/cli/private-ledger-commands.ts +54 -4
  275. package/src/cli/pty-drive-verdict.ts +11 -2
  276. package/src/cli/release-cli.ts +190 -33
  277. package/src/cli/rfc-status.ts +91 -0
  278. package/src/cli/seat-requests-cli.ts +52 -0
  279. package/src/connectors/linear.ts +5 -3
  280. package/src/context-bus/condense.ts +15 -20
  281. package/src/context-bus/context-now-public.ts +96 -0
  282. package/src/context-bus/context-now-surfaces.ts +55 -2
  283. package/src/context-bus/context-now.ts +6 -3
  284. package/src/context-bus/coord-events.ts +6 -4
  285. package/src/context-bus/long-term-memory.ts +92 -11
  286. package/src/dashboard/index.ts +75 -22
  287. package/src/dashboard/slash-runtime/chat-persona.ts +66 -0
  288. package/src/dashboard/slash-runtime/dashboard-handlers.ts +99 -0
  289. package/src/dashboard/slash-runtime/loops-table.ts +77 -0
  290. package/src/decisions/decision-cards.ts +33 -7
  291. package/src/decisions/decision-ledger.ts +40 -1
  292. package/src/decisions/proact-meter.ts +286 -0
  293. package/src/decisions/proact1-lite.ts +86 -0
  294. package/src/decisions/web-push-decision-cards.ts +1 -1
  295. package/src/discord/sprint21-runtime.ts +16 -0
  296. package/src/discord-self-message.ts +8 -0
  297. package/src/discord-slash-wire.ts +31 -2
  298. package/src/domains/alert-audit.ts +271 -0
  299. package/src/domains/core-tools.ts +4 -3
  300. package/src/domains/ops-facts-tool.ts +31 -1
  301. package/src/domains/outbound-alert.ts +1 -1
  302. package/src/elanous-config-dir.ts +29 -4
  303. package/src/execution-loop/launch-gate.ts +29 -14
  304. package/src/flow/cards.ts +239 -0
  305. package/src/graph-runner/graph-tick.ts +4 -0
  306. package/src/graph-runner/runner.ts +30 -5
  307. package/src/harness/harness-cli-command.ts +259 -38
  308. package/src/harness/harness-incidents.ts +45 -12
  309. package/src/harness/harness-pod-dispatch.ts +102 -11
  310. package/src/harness/harness-queue-child.ts +3 -3
  311. package/src/harness/harness-queue.ts +583 -65
  312. package/src/harness/helper-repair.ts +87 -0
  313. package/src/harness/helper-scan.ts +151 -0
  314. package/src/harness/launch-stamp.ts +236 -0
  315. package/src/harness/ledger-write-guard-child.fixture.ts +12 -0
  316. package/src/harness/ledger-write-guard.ts +35 -0
  317. package/src/harness/model-input-observation.ts +37 -0
  318. package/src/harness/pod-memory-policy.ts +15 -0
  319. package/src/harness/repository-name.ts +55 -0
  320. package/src/hq/fence-audit.ts +90 -0
  321. package/src/hq/hq.ts +63 -5
  322. package/src/hq/lease.ts +4 -4
  323. package/src/hq/move-plan.ts +126 -0
  324. package/src/hq/promote.ts +332 -0
  325. package/src/index.ts +159 -27
  326. package/src/intake-plane/check.ts +63 -0
  327. package/src/intake-plane/digest.ts +37 -15
  328. package/src/intake-plane/front-classifier.ts +6 -0
  329. package/src/intake-plane/items.ts +3 -2
  330. package/src/intake-plane/lens.ts +177 -0
  331. package/src/intake-plane/linear-wish.ts +39 -11
  332. package/src/intake-plane/route.ts +145 -1
  333. package/src/intake-plane/wish-benchmark-ledger.ts +129 -0
  334. package/src/intake-plane/wish-card.ts +53 -2
  335. package/src/intake-plane/wish-folder.ts +5 -2
  336. package/src/intake-plane/wish-reply.ts +72 -0
  337. package/src/launch-head/seat-goal-queue-lock.fixture.ts +15 -0
  338. package/src/launch-head/seat-goal-queue.ts +198 -0
  339. package/src/lessons/lesson-import.ts +106 -0
  340. package/src/lessons/lesson-ledger.ts +206 -0
  341. package/src/loops/activity.ts +203 -0
  342. package/src/loops/budget.ts +63 -0
  343. package/src/loops/checker.ts +5 -3
  344. package/src/loops/contract/examples/orchestrator.loop.yaml +1 -1
  345. package/src/loops/loop-cli.ts +36 -4
  346. package/src/loops/neighbors.ts +40 -0
  347. package/src/loops/observe.ts +10 -0
  348. package/src/loops/orchestrator/author-depth.ts +220 -0
  349. package/src/loops/orchestrator/author-input-check.ts +82 -0
  350. package/src/loops/orchestrator/author-ledger.ts +232 -0
  351. package/src/loops/orchestrator/finish-rate.ts +175 -0
  352. package/src/loops/orchestrator/overlap.ts +51 -12
  353. package/src/loops/orchestrator/resync-shadow.ts +227 -0
  354. package/src/loops/orchestrator/seat-share.ts +56 -0
  355. package/src/loops/orchestrator/tick.ts +309 -0
  356. package/src/loops/orchestrator/traffic.ts +134 -13
  357. package/src/loops/registry.ts +535 -9
  358. package/src/loops/status-rows.ts +118 -0
  359. package/src/loops/verdict.ts +17 -5
  360. package/src/maturity/bot-slash-catalog.ts +66 -0
  361. package/src/maturity/feature-maturity.ts +9 -5
  362. package/src/maturity/tui-slash-availability.ts +31 -0
  363. package/src/mss/logging/log-store.ts +35 -4
  364. package/src/nexus/api/dashboard.ts +6 -1
  365. package/src/nexus/api/http-server.ts +33 -3
  366. package/src/nexus/api/loop-edges.ts +173 -0
  367. package/src/nexus/api/merge-approvals-gate.ts +1 -1
  368. package/src/nexus/api/schedules-read.ts +18 -1
  369. package/src/nexus/api/seat-requests.ts +79 -56
  370. package/src/nexus/api/task-cards-api.ts +44 -5
  371. package/src/nexus/api/workflows.ts +2 -1
  372. package/src/prompt-enhance/enhance.ts +6 -1
  373. package/src/release-loop/auto-start.ts +51 -0
  374. package/src/release-loop/checklist.ts +22 -4
  375. package/src/release-loop/feature-store.ts +71 -32
  376. package/src/release-loop/landing-freeze.ts +121 -0
  377. package/src/release-loop/merged-pr-checklist.ts +125 -0
  378. package/src/release-loop/placement.ts +302 -0
  379. package/src/release-loop/release-schedule.ts +3 -1
  380. package/src/seat-dispatch/ceo-commands.ts +2 -2
  381. package/src/seat-dispatch/seat-ask.ts +16 -3
  382. package/src/seat-dispatch/seat-questions.ts +58 -0
  383. package/src/seat-dispatch/seat-request-eligibility.ts +19 -0
  384. package/src/seat-dispatch/seat-request-ledger.ts +133 -0
  385. package/src/seat-loop/seat-loop.ts +531 -40
  386. package/src/self-dev/dev-pipeline.ts +14 -6
  387. package/src/self-dev/draft-sweep.ts +162 -6
  388. package/src/self-dev/draft-triage-rules.ts +25 -8
  389. package/src/self-dev/orchestrate.ts +15 -1
  390. package/src/self-dev/review-provider-fallback.ts +6 -1
  391. package/src/self-dev/run-store.ts +73 -1
  392. package/src/self-dev/run-supervisor.ts +57 -2
  393. package/src/self-dev/self-orchestrate-runtime.ts +5 -1
  394. package/src/self-implement/budget-gate.ts +29 -0
  395. package/src/self-implement/expose-gate.ts +47 -0
  396. package/src/self-implement/frozen-merges.ts +295 -0
  397. package/src/self-implement/gate-cli.ts +10 -4
  398. package/src/self-implement/gate-scope.ts +46 -9
  399. package/src/self-implement/goal-archive.ts +222 -0
  400. package/src/self-implement/goal-author.ts +43 -5
  401. package/src/self-implement/goal-clarification-escalation.ts +5 -0
  402. package/src/self-implement/goal-lookup.ts +147 -0
  403. package/src/self-implement/heal-intake.ts +197 -0
  404. package/src/self-implement/host-regate.ts +32 -2
  405. package/src/self-implement/l8-merge-queue.ts +132 -0
  406. package/src/self-implement/orchestrator.ts +299 -48
  407. package/src/self-implement/pipeline-shape.ts +1 -1
  408. package/src/self-implement/revert-guard.ts +97 -0
  409. package/src/self-implement/run-ledger.ts +3 -1
  410. package/src/self-implement/run-status-mapping.ts +2 -0
  411. package/src/self-implement/seams.ts +29 -9
  412. package/src/self-implement/self-implement-cli.ts +1 -0
  413. package/src/self-implement/speed-claims.ts +338 -0
  414. package/src/session/index.ts +2 -0
  415. package/src/steward/triage.ts +74 -3
  416. package/src/steward/working-backwards.ts +4 -1
  417. package/src/task-cards/card-cli.ts +10 -2
  418. package/src/task-cards/card-store.ts +10 -6
  419. package/src/task-orchestrator/surfaces/pod-artifact-return.ts +63 -48
  420. package/src/task-orchestrator/surfaces/pod-command-job.ts +84 -9
  421. package/src/task-orchestrator/surfaces/pod-failure-reason.ts +48 -0
  422. package/src/task-orchestrator/surfaces/pod-lease.ts +5 -2
  423. package/src/task-orchestrator/surfaces/pod-ledger-collect.ts +46 -6
  424. package/src/task-orchestrator/surfaces/pod-pool.ts +60 -8
  425. package/src/task-orchestrator/surfaces/self-implement-pod.ts +224 -49
  426. package/src/task-orchestrator/surfaces/self-implement.ts +5 -1
  427. package/src/telegram-commands.ts +27 -3
  428. package/src/telegram-loops-command.ts +44 -0
  429. package/src/telegram.ts +25 -4
  430. package/src/user-config.ts +146 -18
  431. package/src/version/packed-revision.json +1 -1
  432. package/src/workflow-runtime/nodes/bash.ts +9 -1
  433. package/src/workflow-runtime/storage.ts +31 -13
  434. package/apps/pwa/out/_next/static/D51l8jUBplJrIpWvENsDK/_buildManifest.js +0 -1
  435. package/apps/pwa/out/_next/static/chunks/1159-0c5ef8bc21cb6afb.js +0 -1
  436. package/apps/pwa/out/_next/static/chunks/1394-931c9827067b2276.js +0 -1
  437. package/apps/pwa/out/_next/static/chunks/2176-c379e3ebce874151.js +0 -1
  438. package/apps/pwa/out/_next/static/chunks/2426.8c6ee0c668d53def.js +0 -1
  439. package/apps/pwa/out/_next/static/chunks/3170-7ec60a56fa0e4728.js +0 -1
  440. package/apps/pwa/out/_next/static/chunks/3278-ae6ef084769f6195.js +0 -1
  441. package/apps/pwa/out/_next/static/chunks/3454-988a53dac60a1763.js +0 -1
  442. package/apps/pwa/out/_next/static/chunks/3638-aa80b4641ea439db.js +0 -1
  443. package/apps/pwa/out/_next/static/chunks/3735-fe3402553ac1c9c6.js +0 -1
  444. package/apps/pwa/out/_next/static/chunks/3992-fe5c06d6b31f8b25.js +0 -25
  445. package/apps/pwa/out/_next/static/chunks/4215-c9d91dd644ec1719.js +0 -1
  446. package/apps/pwa/out/_next/static/chunks/4508-5d0161d1e724d735.js +0 -1
  447. package/apps/pwa/out/_next/static/chunks/4733-623a79345b171e1c.js +0 -1
  448. package/apps/pwa/out/_next/static/chunks/4883.3bd969ea1d3aaaff.js +0 -2
  449. package/apps/pwa/out/_next/static/chunks/5250-c78ca295585bbf95.js +0 -1
  450. package/apps/pwa/out/_next/static/chunks/5532.6899a12958a89b72.js +0 -1
  451. package/apps/pwa/out/_next/static/chunks/5845-e6c003ce8d5fd36a.js +0 -1
  452. package/apps/pwa/out/_next/static/chunks/5978-b27004c677119115.js +0 -1
  453. package/apps/pwa/out/_next/static/chunks/6048-4c5c33579bc4ef78.js +0 -1
  454. package/apps/pwa/out/_next/static/chunks/6303-422dbf0f67c72aac.js +0 -1
  455. package/apps/pwa/out/_next/static/chunks/6511-ff8360be3d65aaa4.js +0 -1
  456. package/apps/pwa/out/_next/static/chunks/6588-ba380869b67c4fa7.js +0 -1
  457. package/apps/pwa/out/_next/static/chunks/6751-bb3595948b2e311b.js +0 -1
  458. package/apps/pwa/out/_next/static/chunks/7274-19b7279f18b47ab3.js +0 -1
  459. package/apps/pwa/out/_next/static/chunks/7551-a0e0707b79164ddd.js +0 -1
  460. package/apps/pwa/out/_next/static/chunks/7758-85c2b53f731da024.js +0 -1
  461. package/apps/pwa/out/_next/static/chunks/7777-79f845045aa1ed86.js +0 -1
  462. package/apps/pwa/out/_next/static/chunks/8025-cc24ee5d8f2fb6f8.js +0 -1
  463. package/apps/pwa/out/_next/static/chunks/8206-c6684dcde12be721.js +0 -1
  464. package/apps/pwa/out/_next/static/chunks/8605-9da4678f8a310d18.js +0 -1
  465. package/apps/pwa/out/_next/static/chunks/8725.bf46bb1395dd0fa2.js +0 -1
  466. package/apps/pwa/out/_next/static/chunks/8734-252d511cd276c0dc.js +0 -1
  467. package/apps/pwa/out/_next/static/chunks/8834-ca1cb09c1cb1a6bf.js +0 -1
  468. package/apps/pwa/out/_next/static/chunks/9269.d2a4795bc6812717.js +0 -1
  469. package/apps/pwa/out/_next/static/chunks/9538-2816b90923606459.js +0 -1
  470. package/apps/pwa/out/_next/static/chunks/9906-e7b8b5310a169dfe.js +0 -1
  471. package/apps/pwa/out/_next/static/chunks/app/_not-found/page-d16993889b125c42.js +0 -1
  472. package/apps/pwa/out/_next/static/chunks/app/approvals/page-e5b4e1b256f41076.js +0 -1
  473. package/apps/pwa/out/_next/static/chunks/app/autopilot/page-e49b9b76c565a0b1.js +0 -1
  474. package/apps/pwa/out/_next/static/chunks/app/board/page-b4f032c893b21cc9.js +0 -1
  475. package/apps/pwa/out/_next/static/chunks/app/botlab/page-f14987d5850a31e0.js +0 -1
  476. package/apps/pwa/out/_next/static/chunks/app/bots/page-b433308aad13ceb6.js +0 -1
  477. package/apps/pwa/out/_next/static/chunks/app/chat/page-4c1dbb21861beab2.js +0 -1
  478. package/apps/pwa/out/_next/static/chunks/app/consult/page-c85b816e3b269dbb.js +0 -1
  479. package/apps/pwa/out/_next/static/chunks/app/control/page-f6bc66b919b2ea7d.js +0 -1
  480. package/apps/pwa/out/_next/static/chunks/app/design-check/page-60603c1e056c9b25.js +0 -1
  481. package/apps/pwa/out/_next/static/chunks/app/editor/page-a0ea8f5a2341ee6b.js +0 -1
  482. package/apps/pwa/out/_next/static/chunks/app/exec/page-45c5bf04b4a605e6.js +0 -1
  483. package/apps/pwa/out/_next/static/chunks/app/field/page-36c6c4183353ac9e.js +0 -1
  484. package/apps/pwa/out/_next/static/chunks/app/healthz/route-d16993889b125c42.js +0 -1
  485. package/apps/pwa/out/_next/static/chunks/app/inside/page-cb2eb0fd809980da.js +0 -1
  486. package/apps/pwa/out/_next/static/chunks/app/intake/page-31012264da8a341f.js +0 -1
  487. package/apps/pwa/out/_next/static/chunks/app/layout-50309aeb0bdd554a.js +0 -1
  488. package/apps/pwa/out/_next/static/chunks/app/live/page-bc00e964e855f4df.js +0 -1
  489. package/apps/pwa/out/_next/static/chunks/app/market/page-0696ee3fac9fe56c.js +0 -1
  490. package/apps/pwa/out/_next/static/chunks/app/missions/[id]/page-66c27608f651b866.js +0 -1
  491. package/apps/pwa/out/_next/static/chunks/app/morning/page-6ddd2109b7fc3a80.js +0 -1
  492. package/apps/pwa/out/_next/static/chunks/app/not-found-4e50b7298c1f69a5.js +0 -1
  493. package/apps/pwa/out/_next/static/chunks/app/observatory/page-7a2bf830038a2264.js +0 -1
  494. package/apps/pwa/out/_next/static/chunks/app/ops/checklist/page-1f327f18694fabca.js +0 -1
  495. package/apps/pwa/out/_next/static/chunks/app/ops/release/page-e5cef2fe6e4028df.js +0 -1
  496. package/apps/pwa/out/_next/static/chunks/app/ops/seats/page-cf596128d2b420ba.js +0 -1
  497. package/apps/pwa/out/_next/static/chunks/app/outputs/page-f672536f14f0969f.js +0 -1
  498. package/apps/pwa/out/_next/static/chunks/app/page-b52365662232db89.js +0 -1
  499. package/apps/pwa/out/_next/static/chunks/app/reflection/page-e7a6c80f288b1948.js +0 -1
  500. package/apps/pwa/out/_next/static/chunks/app/scheduler/page-29a709616df9b050.js +0 -1
  501. package/apps/pwa/out/_next/static/chunks/app/sessions/page-fee842d7c2151129.js +0 -1
  502. package/apps/pwa/out/_next/static/chunks/app/settings/devices/page-78b40a344ed22f24.js +0 -1
  503. package/apps/pwa/out/_next/static/chunks/app/settings/page-75d199f448171014.js +0 -1
  504. package/apps/pwa/out/_next/static/chunks/app/setup/done/page-a011dd5b0bff29c5.js +0 -1
  505. package/apps/pwa/out/_next/static/chunks/app/setup/layout-d16993889b125c42.js +0 -1
  506. package/apps/pwa/out/_next/static/chunks/app/setup/page-d92e32d51ab5157e.js +0 -1
  507. package/apps/pwa/out/_next/static/chunks/app/share/page-5f21aed6932ef375.js +0 -1
  508. package/apps/pwa/out/_next/static/chunks/app/showroom/page-1e1a53946804debf.js +0 -1
  509. package/apps/pwa/out/_next/static/chunks/app/tasks/page-a1833cd43d832601.js +0 -1
  510. package/apps/pwa/out/_next/static/chunks/app/today/page-2a511d320f762e06.js +0 -1
  511. package/apps/pwa/out/_next/static/chunks/app/trace/page-1c3e03f88dac1e21.js +0 -1
  512. package/apps/pwa/out/_next/static/chunks/app/vault/page-c4d5289c2ea97a89.js +0 -1
  513. package/apps/pwa/out/_next/static/chunks/app/workflows/chat-ui/page-b91f8952deaeaf27.js +0 -1
  514. package/apps/pwa/out/_next/static/chunks/app/workflows/page-71b43a2588489987.js +0 -1
  515. package/apps/pwa/out/_next/static/chunks/app/workspace/page-2b256feed331546f.js +0 -1
  516. package/apps/pwa/out/_next/static/chunks/app/worktrees/page-505bb96d69a8622c.js +0 -1
  517. package/apps/pwa/out/_next/static/chunks/framework-172630e6aa5e2d7f.js +0 -1
  518. package/apps/pwa/out/_next/static/chunks/main-app-f0fe2d7477845181.js +0 -1
  519. package/apps/pwa/out/_next/static/chunks/main-fc98ac70b44eccb0.js +0 -1
  520. package/apps/pwa/out/_next/static/chunks/pages/_app-5bd7f10271f72413.js +0 -1
  521. package/apps/pwa/out/_next/static/chunks/pages/_error-97d0d85ea05fef9b.js +0 -1
  522. package/apps/pwa/out/_next/static/chunks/webpack-9e4d02d567b98240.js +0 -1
  523. package/apps/pwa/out/_next/static/css/128fb7fb670b2fbf.css +0 -1
  524. /package/apps/pwa/out/_next/static/{D51l8jUBplJrIpWvENsDK → LZcstaO9_NXypPFmujolv}/_ssgManifest.js +0 -0
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8605],{8017:(e,t,r)=>{r.d(t,{L:()=>n});function n(e){let t=e.split("\n"),r=t[0];if(!r)return null;let n=/^\[elanous\/term\/([a-zA-Z]+)\] (.+)$/.exec(r);if(!n)return null;let a=n[1];if("terminalOutput"!==a&&"terminalExit"!==a&&"terminalInputActivity"!==a&&"terminalFrame"!==a)return null;let l=[];for(let e=1;e<t.length;e++){let r=t[e];if(/^<<elanous-term-end /.test(r))break;l.push(r)}try{let e=JSON.parse(l.join("\n"));if("string"!=typeof e.terminalId)return null;if("terminalOutput"===a){if("string"!=typeof e.data)return null;return{method:a,payload:{terminalId:e.terminalId,data:e.data}}}if("terminalExit"===a){if("number"!=typeof e.code)return null;return{method:a,payload:{terminalId:e.terminalId,code:e.code}}}if("terminalFrame"===a){if("string"!=typeof e.frame||"string"!=typeof e.instance||"number"!=typeof e.at||!Number.isFinite(e.at))return null;return{method:a,payload:{terminalId:e.terminalId,frame:e.frame,instance:e.instance,at:e.at}}}if("string"!=typeof e.peerId||"number"!=typeof e.timestamp||"number"!=typeof e.bytes)return null;return{method:a,payload:{terminalId:e.terminalId,peerId:e.peerId,timestamp:e.timestamp,bytes:e.bytes}}}catch(e){return null}}},19719:(e,t,r)=>{r.d(t,{BX:()=>l,Yf:()=>o,dI:()=>a,fb:()=>i,kI:()=>s});var n=r(89174);function a(e){return"alternate"===e.bufferType?{kind:"send",data:"\x02["+(0,n.bu)("pageup")}:{kind:"scroll-pages",pages:-1}}function l(e){return 0===e.lines?{kind:"none"}:"alternate"===e.bufferType?{kind:"wheel",steps:e.lines}:{kind:"scrollback",lines:e.lines}}function s(e){if(!(e.cellHeight>0))return 0;let t=-Math.trunc((e.currentY-e.startY)/e.cellHeight)-e.sentSteps;return 0===t?0:t}function i(e,t,r,n){for(let a=0;a<Math.abs(t);a++)e.dispatchEvent(new WheelEvent("wheel",{deltaY:100*Math.sign(t),deltaMode:0,clientX:r,clientY:n,bubbles:!0,cancelable:!0}))}function o(e){if(!(e.cellHeight>0))return 0;let t=-Math.trunc((e.currentY-e.startY)/e.cellHeight)-(e.currentViewportY-e.startViewportY);return 0===t?0:t}},41015:(e,t,r)=>{r.d(t,{JW:()=>s,Ok:()=>o,WP:()=>u,WU:()=>d,ox:()=>i});var n=r(50733);let a=new Map,l=new Set;function s(e,t){let r={view:t};return a.set(e,r),l.forEach(e=>e()),()=>{a.get(e)===r&&(a.delete(e),l.forEach(e=>e()))}}function i(e){var t,r;return null!=(r=null==(t=a.get(e))?void 0:t.view)?r:null}function o(e){return l.add(e),()=>{l.delete(e)}}let c=new Map;function d(e,t){let r={sender:t};return c.set(e,r),()=>{c.get(e)===r&&c.delete(e)}}function u(e,t){let r=c.get(e);return r?(r.sender(t),!0):((0,n.cY)("webterm.input.no-sender",{terminalId:e,bytes:new TextEncoder().encode(t).length}),!1)}},48605:(e,t,r)=>{r.d(t,{zV:()=>ez});var n=r(54456),a=r(60500),l=r(71829),s=r(77834);let i=(0,s.default)(()=>Promise.all([r.e(3339),r.e(6083),r.e(1452),r.e(4883)]).then(r.bind(r,74883)).then(e=>e.XtermView),{loadableGenerated:{webpack:()=>[74883]},ssr:!1,loading:e=>{let{error:t,retry:r}=e;return(0,n.jsx)("div",{className:"flex h-full min-h-0 w-full items-center justify-center bg-[#0d0c08] text-sm text-[#e9e3d4]",role:t?"alert":"status",children:t?(0,n.jsxs)("div",{className:"flex flex-col items-center gap-2",children:[(0,n.jsx)("span",{children:"터미널을 불러오지 못했습니다."}),(0,n.jsx)("button",{type:"button",className:"rounded border border-[#e9e3d4]/50 px-3 py-1 hover:bg-white/10",onClick:r,children:"다시 시도"})]}):"터미널 연결 중…"})}});function o(e){return(0,n.jsx)(i,{...e})}let c=(0,s.default)(()=>Promise.all([r.e(3339),r.e(6083),r.e(1452),r.e(2426)]).then(r.bind(r,2426)).then(e=>e.PtyLiveView),{loadableGenerated:{webpack:()=>[2426]},ssr:!1,loading:e=>{let{error:t,retry:r}=e;return(0,n.jsx)("div",{className:"flex h-full min-h-0 w-full items-center justify-center bg-[#0d0c08] text-sm text-[#e9e3d4]",role:t?"alert":"status",children:t?(0,n.jsxs)("div",{className:"flex flex-col items-center gap-2",children:[(0,n.jsx)("span",{children:"터미널을 불러오지 못했습니다."}),(0,n.jsx)("button",{type:"button",className:"rounded border border-[#e9e3d4]/50 px-3 py-1 hover:bg-white/10",onClick:r,children:"다시 시도"})]}):"터미널 연결 중…"})}});function d(e){return(0,n.jsx)(c,{...e})}var u=r(50738);let m=e=>"string"==typeof e&&e.trim()?e:null,p={codex:"codex",claude:"claude",gemini:"gemini",grok:"grok",self:"elanous",mission:"elanous 미션",shell:"셸",pty:"PTY"},h={PLAN:"text-sky-400",ROUTE:"text-violet-400",VERIFY:"text-amber-400",HEAL:"text-emerald-400",ESCALATE:"text-rose-400",SHIP:"text-green-400"};function b(e){let{rows:t,client:r,initial:l,onClose:s,stage:i=!1}=e,[o,c]=(0,a.useState)(l);(0,a.useEffect)(()=>{0===o.length&&t.length&&c(function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:3,r=e.filter(e=>e.alive),n=r.filter(e=>e.kind&&["codex","claude","self","mission","gemini","grok"].includes(e.kind)),a=r.filter(e=>!n.includes(e));return[...n,...a].slice(0,t).map(e=>e.id)}(t))},[t,o.length]),(0,a.useEffect)(()=>{let e=new URLSearchParams(window.location.search);o.length?e.set("wall",o.join(",")):e.delete("wall"),window.history.replaceState(null,"","".concat(window.location.pathname,"?").concat(e.toString()))},[o]);let[b,f]=(0,a.useState)([]);(0,a.useEffect)(()=>{let e=!0,t=async()=>{try{var t;let n=await r.fetchJson("/v1/logs?category=harness.decision&store=@active&since=6h&limit=300");e&&f(null!=(t=n.logs)?t:[])}catch(e){}};t();let n=window.setInterval(()=>{document.hidden||t()},5e3);return()=>{e=!1,window.clearInterval(n)}},[r]);let[x,g]=(0,a.useState)(!1);(0,a.useEffect)(()=>{"public"===new URLSearchParams(window.location.search).get("capture")&&g(!0)},[]);let v=(0,a.useMemo)(()=>x?(0,u.yR)(b.map(e=>{var t;return{ts:e.ts,category:"harness.decision",event:"decision",data:null!=(t=e.data)?t:null}})):b,[b,x]),w=(0,a.useMemo)(()=>o.map(e=>t.find(t=>t.id===e)).filter(e=>!!e),[o,t]),y=e=>c(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e].slice(-3));return(0,n.jsxs)("section",{className:"flex h-full min-h-0 flex-col bg-[#0b0a07]","aria-label":"터미널 나란히","data-pty-wall":!0,children:[(0,n.jsxs)("header",{className:"flex flex-wrap items-center gap-2 border-b border-zinc-700 px-3 py-2 text-xs text-zinc-200",children:[(0,n.jsxs)("span",{className:"font-medium",children:["나란히 \xb7 ",w.length,"/3"]}),t.filter(e=>e.alive).slice(0,14).map(e=>{var t,r,a;return(0,n.jsxs)("button",{type:"button",onClick:()=>y(e.id),"aria-pressed":o.includes(e.id),className:"rounded-full border px-2 py-0.5 font-mono ".concat(o.includes(e.id)?"border-emerald-500 bg-emerald-900/40 text-emerald-200":"border-zinc-700 text-zinc-400 hover:bg-zinc-800"),"data-pty-wall-chip":e.id,children:[null!=(r=e.kind)?r:"pty"," \xb7 ",e.nickname||e.id]},"".concat(null!=(a=null==(t=e.sourceRoot)?void 0:t.dbPath)?a:"",":").concat(e.id))}),(0,n.jsx)("button",{type:"button",onClick:s,className:"ml-auto rounded px-2 py-1 text-zinc-400 hover:bg-zinc-800","aria-label":"나란히 닫기",children:"닫기"})]}),0===w.length?(0,n.jsx)("p",{className:"p-6 text-sm text-zinc-400",children:"위에서 PTY 를 1~3개 고르세요 — 살아 있는 에이전트 PTY 가 없으면 비어 있습니다."}):(0,n.jsx)("div",{className:"grid min-h-0 flex-1 gap-1 p-1 ".concat(1===w.length?"grid-cols-1":2===w.length?"grid-cols-2":"grid-cols-3"),children:w.map(e=>{var t,a;let l=function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:3;return t.filter(t=>{var r;let n=null!=(r=t.data)?r:{};return!!e.runId&&n.runId===e.runId||n.target===e.id||n.shard===e.id}).sort((e,t)=>e.ts<t.ts?1:-1).slice(0,r).map(e=>{var t,r,n,a,l;let s=null!=(t=e.data)?t:{};return{ts:e.ts,kind:(null!=(r=m(s.kind))?r:"PLAN").toUpperCase(),what:null!=(n=m(s.what))?n:"(판단)",why:null!=(l=null!=(a=m(s.reason))?a:m(s.why))?l:m(s.purpose),target:m(s.target)}})}(e,v,2);return(0,n.jsxs)("div",{className:"flex min-h-0 flex-col overflow-hidden rounded border border-zinc-800","data-pty-wall-pane":e.id,children:[(0,n.jsxs)("div",{className:"flex items-center gap-2 bg-zinc-900 px-2 py-1 text-[11px]",children:[(0,n.jsx)("span",{className:"rounded bg-violet-900/50 px-1.5 py-0.5 text-violet-200","data-pty-agent":!0,children:function(e){let t=e.externalToolName&&p[e.externalToolName]||e.kind&&p[e.kind]||e.externalToolName||e.kind||"PTY";return"에이전트: ".concat(t).concat(e.runId?" \xb7 런 ".concat(e.runId.replace(/^run-/,"").slice(0,8)):"")}(e)}),(0,n.jsx)("span",{className:"truncate font-mono text-zinc-500",children:e.id})]}),(0,n.jsx)("div",{className:"min-h-[38px] border-b border-zinc-800 bg-zinc-950/80 px-2 py-1 ".concat(i?"text-sm":"text-[11px]"),"aria-label":"의도 띠","data-pty-intent":!0,children:0===l.length?(0,n.jsx)("span",{className:"text-zinc-500",children:"이 PTY 를 모는 판단 신호 없음(사람이 모는 PTY 거나 MAX 계측 꺼짐)"}):l.map(e=>{var t;return(0,n.jsxs)("div",{className:"truncate",children:[(0,n.jsx)("span",{className:"font-mono ".concat(null!=(t=h[e.kind])?t:"text-zinc-300"),children:e.kind})," ",(0,n.jsx)("span",{className:"text-zinc-100",children:e.what}),e.why&&(0,n.jsxs)("span",{className:"text-zinc-400",children:[" \xb7 왜: ",e.why]}),e.target&&(0,n.jsxs)("span",{className:"text-zinc-500",children:[" → ",e.target]})]},"".concat(e.ts,"-").concat(e.what))})}),(0,n.jsx)("div",{className:"min-h-0 flex-1",children:(0,n.jsx)(d,{terminal:e,client:r,onClose:()=>y(e.id)})})]},"".concat(null!=(a=null==(t=e.sourceRoot)?void 0:t.dbPath)?a:"",":").concat(e.id))})})]})}var f=r(53229);let x={connected:{label:"연결됨",color:"bg-emerald-500"},connecting:{label:"연결 중",color:"bg-amber-500"},disconnected:{label:"끊김",color:"bg-rose-500"}};function g(e){let{activeId:t,tabs:r,status:l,onSwitch:s,onAdd:i,actions:o,children:c}=e,[d,u]=(0,a.useState)(!1),[m,p]=(0,a.useState)(!1);return(0,a.useEffect)(()=>{if(!m&&!d)return;let e=e=>{"Escape"===e.key&&(u(!1),p(!1))};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[d,m]),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"relative flex h-10 max-h-10 shrink-0 items-center justify-between border-b border-zinc-800 bg-background px-2","aria-label":"간결한 터미널 상단바",children:[(0,n.jsxs)("div",{className:"relative min-w-0 max-w-[calc(50%_-_12px)] flex-1",children:[(0,n.jsxs)("button",{type:"button",className:"max-w-full truncate rounded px-2 py-1 text-left text-xs","aria-label":"터미널 고르기","aria-expanded":d,onClick:()=>{p(!1),u(e=>!e)},children:[null!=t?t:"터미널 준비 중"," ▾"]}),d&&(0,n.jsxs)("div",{className:"absolute left-0 top-full z-40 max-h-[60vh] min-w-48 overflow-auto rounded border border-zinc-700 bg-background p-1 shadow-xl",role:"menu","aria-label":"열린 터미널",children:[r.map(e=>(0,n.jsx)("button",{type:"button",role:"menuitem",className:"block w-full truncate rounded px-2 py-2 text-left text-sm hover:bg-accent","aria-current":e===t?"true":void 0,onClick:()=>{s(e),u(!1)},children:e},e)),(0,n.jsx)("button",{type:"button",role:"menuitem",className:"block w-full rounded px-2 py-2 text-left text-sm hover:bg-accent",onClick:()=>{i(),u(!1)},children:"+ 새 터미널"})]})]}),(0,n.jsx)("span",{className:"absolute left-1/2 h-2 w-2 -translate-x-1/2 rounded-full ".concat(x[l].color),title:x[l].label,"aria-label":x[l].label,role:"status"}),(0,n.jsx)("button",{type:"button",className:"shrink-0 rounded px-2 py-1 text-lg leading-none","aria-label":"터미널 더보기","aria-expanded":m,onClick:()=>{u(!1),p(e=>!e)},children:"⋯"})]}),m&&(0,n.jsx)("button",{type:"button",className:"fixed inset-0 z-40 bg-black/50","aria-label":"터미널 메뉴 닫기",onClick:()=>p(!1)}),(0,n.jsxs)("section",{className:m?"fixed inset-x-0 bottom-0 z-50 max-h-[75dvh] overflow-y-auto rounded-t-xl border-t border-zinc-700 bg-background p-4 shadow-2xl":"hidden","aria-label":"터미널 더보기 시트","aria-hidden":!m,children:[(0,n.jsxs)("div",{className:"mb-3 flex items-center justify-between",children:[(0,n.jsx)("span",{className:"text-sm font-medium",children:"터미널 동작"}),(0,n.jsx)("button",{type:"button",onClick:()=>p(!1),"aria-label":"터미널 메뉴 닫기",children:"닫기"})]}),(0,n.jsx)("div",{className:"flex flex-wrap gap-2 border-b border-zinc-800 pb-3",children:c}),(0,n.jsx)("div",{className:"pt-3",children:o})]})]})}var v=r(94757),w=r(36581),y=r(50733),k=r(8017);let j=/\x1b(?:\][^\x07\x1b]*(?:\x07|\x1b\\)|\[[0-?]*[ -/]*[@-~]|[@-Z\\-_])/g,N=new Map;function S(e){let{sessionId:t}=e,{client:r,setSessionId:l}=(0,w.Q)(),[s,i]=(0,a.useState)(N),[o,c]=(0,a.useState)(null);(0,a.useEffect)(()=>{let e=r.connectAcp({...t?{sessionId:t}:{},onSession:e=>{e&&e!==t&&l(e)}});(0,y.cY)("tui-mirror.attach",{sessionId:t});let n=e.on("sessionUpdate",e=>{var t,r;let n=(null!=(r=e.params)?r:{}).update;if(!n||"agent_thought_chunk"!==n.sessionUpdate)return;let a=(null==(t=n.content)?void 0:t.type)==="text"?n.content.text:null;a&&i(e=>{let t=function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Date.now(),n=(0,k.L)(t);if(!n||"terminalFrame"!==n.method)return e;let{terminalId:a,frame:l,instance:s,at:i}=n.payload,o="".concat(s).concat("\0").concat(a),c=e.get(o);if(c&&i<c.at)return e;let d=new Map(e);return d.set(o,{key:o,surfaceId:a,frame:l,instance:s,at:i,receivedAt:r}),d}(e,a);return t!==e&&(0,y.cY)("tui-mirror.frame",{bytes:a.length}),t})}),a=setInterval(()=>{i(e=>(function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Date.now(),r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:15e3,n=!1;for(let a of e.values())if(t-a.receivedAt>r){n=!0;break}if(!n)return e;let a=new Map;for(let[n,l]of e)t-l.receivedAt<=r&&a.set(n,l);return a})(e))},5e3);return()=>{clearInterval(a);try{n()}catch(e){}try{e.close()}catch(e){}}},[r,t,l]);let d=(0,a.useMemo)(()=>[...s.values()].sort((e,t)=>t.receivedAt-e.receivedAt||e.key.localeCompare(t.key)),[s]);(0,a.useEffect)(()=>{var e,t;o&&s.has(o)||c(null!=(t=null==(e=d[0])?void 0:e.key)?t:null)},[d,o,s]);let u=o?s.get(o):void 0;return(0,n.jsxs)("div",{className:"flex h-full min-h-0 flex-col bg-zinc-950 text-zinc-100",children:[(0,n.jsxs)("div",{className:"flex flex-wrap items-center gap-2 border-b border-zinc-800 px-3 py-2 text-xs text-zinc-400",children:[(0,n.jsx)("span",{className:"font-semibold text-zinc-200",children:"\uD83D\uDDA5 TUI 관측"}),(0,n.jsx)("span",{"aria-live":"polite",children:0===d.length?"자기신고 화면 대기 중…":"".concat(d.length,"개 화면 \xb7 라이브 미러")}),d.length>0&&(0,n.jsx)("select",{"aria-label":"관측할 TUI 화면 선택",className:"ml-auto rounded border border-zinc-700 bg-zinc-900 px-2 py-1 text-zinc-100",value:null!=o?o:"",onChange:e=>c(e.target.value),children:d.map(e=>(0,n.jsxs)("option",{value:e.key,children:[e.surfaceId," \xb7 ",e.instance]},e.key))})]}),(0,n.jsx)("pre",{className:"m-0 min-h-0 flex-1 overflow-auto whitespace-pre p-3 font-mono text-xs leading-snug text-zinc-100","aria-live":"polite","aria-label":"선택한 TUI 화면의 라이브 렌더 프레임",children:u?u.frame.replace(j,""):"자기신고하는 elanous 화면이 아직 없습니다. 대시보드(elanous)를 실행하면 여기 라이브로 미러링됩니다."})]})}var C=r(67276),I=r(93684),T=r(74591),E=r(35280),A=r(21259),Y=r(55499);function R(e){let{onFrameUploaded:t}=e,{config:r,client:l,sessionId:s}=(0,w.Q)(),i=(0,a.useRef)(null);(0,a.useEffect)(()=>()=>{try{var e;null==(e=i.current)||e.close()}catch(e){}i.current=null},[]);let o=(0,a.useCallback)(async e=>{if(t){try{t(e)}catch(e){}return}if(s){i.current||(i.current=l.connectAcp({sessionId:s}));try{var r;await i.current.send("terminal/camera/frame/notify",{sessionId:s,attachmentId:e.id,ts:null!=(r=e.createdAt)?r:Date.now()})}catch(e){(0,y.cY)("webterm.live-cam.notify-failed",{reason:e instanceof Error?e.message:String(e)})}}},[l,s,t]),c=function(e){var t,r,n;let l=null!=(t=e.intervalMs)?t:1e3,s=null!=(r=e.jpegQuality)?r:.85,i=null!=(n=e.maxDimension)?n:1280,[o,c]=(0,a.useState)({status:"idle",framesUploaded:0,lastAttachmentId:null,error:null}),d=(0,a.useRef)(null),u=(0,a.useRef)(null),m=(0,a.useRef)(null),p=(0,a.useRef)(null),h=(0,a.useRef)(!1),b=(0,a.useRef)(e.onFrameUploaded);b.current=e.onFrameUploaded;let f=(0,a.useRef)({baseUrl:e.baseUrl,token:e.token});f.current={baseUrl:e.baseUrl,token:e.token};let x=(0,a.useCallback)(()=>{null!==p.current&&(clearInterval(p.current),p.current=null);let e=d.current;if(e){for(let t of e.getTracks())try{t.stop()}catch(e){}d.current=null}if(u.current){try{u.current.pause()}catch(e){}u.current.srcObject=null,u.current=null}m.current=null,h.current=!1},[]),g=(0,a.useCallback)(async()=>{if(h.current)return void(0,y.cY)("webterm.live-cam.frame-dropped",{reason:"in-flight"});let e=u.current;if(!e||0===e.videoWidth||0===e.videoHeight)return void(0,y.cY)("webterm.live-cam.frame-skipped",{reason:"video-not-ready"});h.current=!0;try{let r=function(e,t,r){if(e<=r&&t<=r)return{width:e,height:t};let n=e/t;return e>=t?{width:r,height:Math.round(r/n)}:{width:Math.round(r*n),height:r}}(e.videoWidth,e.videoHeight,i),n=m.current;n&&n.width===r.width&&n.height===r.height||(m.current=n=function(e,t){let r=document.createElement("canvas");return r.width=e,r.height=t,r}(r.width,r.height));let a=n.getContext("2d");if(!a)return void(0,y.cY)("webterm.live-cam.no-ctx");a.drawImage(e,0,0,r.width,r.height);let l=await new Promise(e=>{n.toBlob(t=>e(t),"image/jpeg",s)});if(!l)return void(0,y.cY)("webterm.live-cam.toBlob-null");let o="live-frame-".concat(Date.now(),".jpg"),d=await (0,Y.v)({baseUrl:f.current.baseUrl,token:f.current.token,file:l,filename:o});if(!d.ok){c(e=>({...e,error:d.reason})),(0,y.cY)("webterm.live-cam.upload-failed",{reason:d.reason});return}c(e=>({...e,framesUploaded:e.framesUploaded+1,lastAttachmentId:d.meta.id,error:null}));try{var t;null==(t=b.current)||t.call(b,d.meta)}catch(e){(0,y.cY)("webterm.live-cam.onFrameUploaded-throw",{reason:e instanceof Error?e.message:String(e)})}}catch(t){let e=t instanceof Error?t.message:String(t);c(t=>({...t,error:e})),(0,y.cY)("webterm.live-cam.capture-error",{reason:e})}finally{h.current=!1}},[s,i]),v=(0,a.useCallback)(async()=>{var e;let t;if("undefined"==typeof navigator||!(null==(e=navigator.mediaDevices)?void 0:e.getUserMedia))return void c(e=>({...e,status:"unsupported",error:"getUserMedia not available"}));if(!f.current.baseUrl)return void c(e=>({...e,status:"error",error:"daemon baseUrl not configured"}));if(d.current)return;c(e=>({...e,status:"requesting",error:null}));try{t=await navigator.mediaDevices.getUserMedia({video:{facingMode:{ideal:"environment"}}})}catch(r){let e=r instanceof Error?r.message:String(r),t=e.includes("Permission")||e.includes("NotAllowed");c(r=>({...r,status:t?"denied":"error",error:e})),(0,y.cY)("webterm.live-cam.getUserMedia-failed",{reason:e,denied:t});return}d.current=t;let r=document.createElement("video");r.srcObject=t,r.muted=!0,r.playsInline=!0,u.current=r;try{await r.play()}catch(e){(0,y.cY)("webterm.live-cam.video-play-failed",{reason:e instanceof Error?e.message:String(e)})}c(e=>({...e,status:"streaming",framesUploaded:0,error:null})),null!==p.current&&clearInterval(p.current),p.current=setInterval(()=>{g()},l),(0,y.cY)("webterm.live-cam.started",{intervalMs:l})},[g,l]),w=(0,a.useCallback)(()=>{x(),c({status:"idle",framesUploaded:0,lastAttachmentId:null,error:null}),(0,y.cY)("webterm.live-cam.stopped")},[x]);return(0,a.useEffect)(()=>()=>{x()},[x]),{...o,start:v,stop:w,isRunning:"streaming"===o.status}}({baseUrl:r.baseUrl,...r.token?{token:r.token}:{},onFrameUploaded:o});return"unsupported"!==c.status&&r.baseUrl?"denied"===c.status?(0,n.jsx)("button",{type:"button",disabled:!0,className:"rounded border border-rose-300 bg-rose-50 px-2 py-0.5 text-[11px] text-rose-700 dark:border-rose-800 dark:bg-rose-950 dark:text-rose-200",title:"Camera permission denied. Enable in iOS Settings → Safari → Camera, then reload.","data-testid":"live-camera-denied",children:"Camera denied"}):c.isRunning?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("button",{type:"button",onClick:()=>c.stop(),className:"rounded border border-rose-300 bg-rose-50 px-2 py-0.5 text-rose-700 dark:border-rose-800 dark:bg-rose-950 dark:text-rose-200 hover:bg-rose-100 dark:hover:bg-rose-900",title:"Stop live camera","data-testid":"live-camera-stop",children:"■ Stop"}),(0,n.jsxs)("span",{className:"rounded border border-border bg-card px-1.5 py-0.5 font-mono text-[10px] text-muted-foreground","data-testid":"live-camera-stats","aria-live":"polite",children:[c.framesUploaded,"f",c.error?(0,n.jsx)("span",{className:"ml-1 text-rose-500",children:"err"}):null]})]}):(0,n.jsx)("button",{type:"button",disabled:"requesting"===c.status,onClick:()=>{c.start()},className:"rounded border px-2 py-0.5 hover:bg-accent disabled:opacity-50",title:"Start live camera — uploads a 1Hz frame stream so the agent can see what you point at","data-testid":"live-camera-start",children:"requesting"===c.status?"Requesting…":"\uD83D\uDCF9 Live"}):null}function z(e){let{terminalId:t,onClear:r,onRecordingChange:l,onAttached:s,voice:i,variant:o="default"}=e,{client:c,sessionId:d,config:u}=(0,w.Q)(),[m,p]=(0,a.useState)(null),[h,b]=(0,a.useState)(null),[f,x]=(0,a.useState)(!1),[g,v]=(0,a.useState)(null);(0,a.useEffect)(()=>{null==l||l(null!==m)},[m,l]);let k=(0,a.useRef)(null);(0,a.useEffect)(()=>()=>{try{var e;null==(e=k.current)||e.close()}catch(e){}k.current=null},[]),(0,a.useEffect)(()=>{if(!d)return;k.current||(k.current=c.connectAcp({sessionId:d}));let e=k.current,r=!1;return(async()=>{try{var n;let a=await e.send("terminal/record/list",{sessionId:d});if(r)return;let l=null==a||null==(n=a.recordings)?void 0:n.find(e=>e.terminalId===t);l?p({recorderId:l.recorderId,startedAt:l.startedAt}):p(null),b(null),v(null)}catch(e){(0,y.cY)("webterm.controls.list-error",{reason:String(e)})}})(),()=>{r=!0}},[c,d,t]);let j=(0,a.useCallback)(async()=>{if(!d)return void v("session 미설정 — daemon 연결을 먼저 확인하세요");k.current||(k.current=c.connectAcp({sessionId:d}));let e=k.current;x(!0),v(null),b(null);try{var r,n;let a=await e.send("terminal/record/start",{sessionId:d,terminalId:t});(null==a?void 0:a.started)&&a.recorderId?((0,y.cY)("webterm.controls.record.started",{recorderId:a.recorderId,terminalId:t}),p({recorderId:a.recorderId,startedAt:null!=(r=a.startedAt)?r:Date.now()})):v(null!=(n=null==a?void 0:a.reason)?n:"start failed")}catch(e){v(String(e instanceof Error?e.message:e))}finally{x(!1)}},[c,d,t]),N=(0,a.useCallback)(async()=>{var e,r,n,a;if(!d||!m)return;let l=null!=(e=k.current)?e:c.connectAcp({sessionId:d});k.current=l,x(!0),v(null);try{let e=await l.send("terminal/record/stop",{sessionId:d,terminalId:t});(null==e?void 0:e.stopped)&&e.recorderId&&e.downloadUrl?((0,y.cY)("webterm.controls.record.stopped",{recorderId:e.recorderId,frameCount:e.frameCount,elapsedSec:e.elapsedSec}),b({recorderId:e.recorderId,downloadUrl:e.downloadUrl,frameCount:null!=(r=e.frameCount)?r:0,elapsedSec:null!=(n=e.elapsedSec)?n:0}),p(null)):v(null!=(a=null==e?void 0:e.reason)?a:"stop failed")}catch(e){v(String(e instanceof Error?e.message:e))}finally{x(!1)}},[m,c,d,t]);return(0,n.jsxs)("div",{className:"sheet"===o?"flex flex-wrap items-center gap-2 text-xs":"flex flex-wrap items-center gap-2 border-b px-2 py-1 text-xs",children:[(0,n.jsx)("button",{type:"button",className:"rounded border px-2 py-0.5 hover:bg-accent",onClick:()=>{(0,y.cY)("webterm.controls.clear"),r()},children:"clear"}),(0,n.jsx)(E.T,{onAttached:s?e=>s([e]):void 0}),(0,n.jsx)(A.u,{onAttached:s}),(0,n.jsx)(R,{}),i&&(0,n.jsxs)("button",{type:"button",onClick:i.onToggle,disabled:i.disabled,title:i.disabled?"마이크 사용 불가 (insecure context 등)":"".concat(i.phaseLabel," \xb7 xterm 으로 typing"),"data-elanous-action":"webterm-voice-toggle-controls","aria-pressed":i.active,className:(0,T.cn)("inline-flex items-center gap-1 rounded border px-2 py-0.5",i.active?"border-rose-300 bg-rose-100 text-rose-800 dark:border-rose-700 dark:bg-rose-950/40 dark:text-rose-100":"hover:bg-accent",i.disabled&&"cursor-not-allowed opacity-50"),children:[(0,n.jsx)("span",{className:(0,T.cn)("h-1.5 w-1.5 rounded-full",i.dotColor,("listening"===i.phase||"speaking"===i.phase)&&"animate-pulse"),"aria-hidden":"true"}),i.active?(0,n.jsx)(C.A,{className:"h-3.5 w-3.5"}):(0,n.jsx)(I.A,{className:"h-3.5 w-3.5"}),(0,n.jsx)("span",{children:"voice→stdin"})]}),!m&&!h&&(0,n.jsx)("button",{type:"button",disabled:f,className:"rounded border px-2 py-0.5 ".concat(f?"opacity-50":"hover:bg-accent"," text-rose-600 dark:text-rose-400"),onClick:()=>void j(),title:"start asciicast recording",children:"● record"}),m&&(0,n.jsx)("button",{type:"button",disabled:f,className:"rounded border px-2 py-0.5 ".concat(f?"opacity-50":"hover:bg-accent"," bg-rose-600 text-white animate-pulse"),onClick:()=>void N(),title:"stop + save .cast",children:"■ stop"}),h&&(0,n.jsx)("a",{href:(e=>{var t;if(!e)return"";let r=null!=(t=u.baseUrl)?t:"",n=e.includes("?")?"&":"?",a=u.token?"".concat(n,"auth=").concat(encodeURIComponent(u.token)):"";return"".concat(r).concat(e).concat(a)})(h.downloadUrl),download:"".concat(h.recorderId,".cast"),className:"rounded border border-emerald-500 px-2 py-0.5 text-emerald-600 hover:bg-emerald-50 dark:hover:bg-emerald-950",onClick:()=>(0,y.cY)("webterm.controls.download.click",{recorderId:h.recorderId}),title:"".concat(h.frameCount," frames \xb7 ").concat(h.elapsedSec.toFixed(1),"s"),children:"⬇ download .cast"}),h&&(0,n.jsx)("button",{type:"button",className:"rounded border px-2 py-0.5 text-muted-foreground hover:bg-accent",onClick:()=>b(null),title:"dismiss","aria-label":"dismiss download",children:"\xd7"}),(m||h)&&(0,n.jsxs)("span",{className:"ml-auto text-[11px] text-muted-foreground",children:[m&&"● recording",h&&!m&&"✓ ".concat(h.recorderId)]}),g&&(0,n.jsx)("span",{className:"ml-2 max-w-[40%] truncate text-[11px] text-rose-500",title:g,children:g})]})}var P=r(41015),U=r(19719),M=r(89174);let D="elanous.pwa.hwKeyboard",L=/^(Escape|Tab|ArrowUp|ArrowDown|ArrowLeft|ArrowRight|F([1-9]|1[0-2]))$/;function $(e,t){try{null==e||e.setItem(D,t?"1":"0")}catch(e){}}let F=[{key:"esc",label:"Esc",width:"wide",title:"Escape (vim normal mode)"},{key:"tab",label:"Tab",width:"wide",title:"Tab (autocomplete)"},{key:"left",label:"←",width:"narrow",title:"Left arrow"},{key:"down",label:"↓",width:"narrow",title:"Down arrow"},{key:"up",label:"↑",width:"narrow",title:"Up arrow"},{key:"right",label:"→",width:"narrow",title:"Right arrow"}];function Q(e){let{terminalId:t}=e,{sessionId:r}=(0,w.Q)(),[l,s]=(0,a.useState)(()=>(0,P.ox)(t));(0,a.useEffect)(()=>{let e=()=>s((0,P.ox)(t));return e(),(0,P.Ok)(e)},[t]);let i=(0,a.useCallback)(()=>{let e=(0,P.ox)(t);if(!e)return;let n=(0,U.dI)({bufferType:e.buffer.active.type,mouseTracking:e.modes.mouseTrackingMode});"scroll-pages"===n.kind?e.scrollPages(n.pages):r&&(0,P.WP)(t,n.data)},[t,r]),[o,c]=(0,a.useState)(!1),[d,u]=(0,a.useState)(!1),[m,p]=(0,a.useState)(!1);(0,a.useEffect)(()=>{p(function(e){try{return(null==e?void 0:e.getItem(D))==="1"}catch(e){return!1}}(window.localStorage));let e=e=>{var t;t=navigator.userAgent,!e.isComposing&&229!==e.keyCode&&"Unidentified"!==e.key&&"Process"!==e.key&&(L.test(e.key)||(e.ctrlKey||e.metaKey||e.altKey)&&1===e.key.length||/Android/i.test(t)&&1===e.key.length||0)&&p(t=>t||($(window.localStorage,!0),(0,y.cY)("webterm.modifier-bar.hw-keyboard",{key:1===e.key.length?"char":e.key}),!0))};return document.addEventListener("keydown",e,!0),()=>document.removeEventListener("keydown",e,!0)},[]);let h=(0,a.useCallback)(()=>{$(window.localStorage,!1),p(!1)},[]),b=(0,a.useRef)(!1),f=(0,a.useRef)(!1);b.current=o,f.current=d;let x=(0,a.useRef)(null),g=(0,a.useCallback)((e,t)=>{null!==x.current&&(clearTimeout(x.current),x.current=null),(e||t)&&(x.current=setTimeout(()=>{c(!1),u(!1),x.current=null,(0,y.cY)("webterm.modbar.auto-release",{})},5e3))},[]);(0,a.useEffect)(()=>()=>{null!==x.current&&(clearTimeout(x.current),x.current=null)},[]);let v=(0,a.useCallback)(e=>{if(!r)return void(0,y.cY)("webterm.modbar.no-session",{key:e});let n={ctrl:b.current,alt:f.current},a=(0,M.bu)(e,n);(0,y.cY)("webterm.modbar.send",{key:e,ctrl:n.ctrl,alt:n.alt,bytes:a.length});try{(0,P.WP)(t,a)}catch(e){(0,y.cY)("webterm.modbar.send-error",{reason:String(e)})}(n.ctrl||n.alt)&&(c(!1),u(!1),g(!1,!1))},[r,t,g]),k=(0,a.useCallback)(()=>{let e=!b.current;c(e),g(e,f.current)},[g]),j=(0,a.useCallback)(()=>{let e=!f.current;u(e),g(b.current,e)},[g]),N=e=>["flex h-7 items-center justify-center rounded border border-border bg-card font-mono text-[11px] text-muted-foreground hover:bg-muted hover:border-primary hover:text-foreground active:translate-y-px disabled:opacity-50","wide"===e?"px-2 min-w-[36px]":"w-8"].join(" "),S=e=>["flex h-7 items-center justify-center rounded border font-mono text-[11px] px-2 min-w-[36px] active:translate-y-px disabled:opacity-50 transition-colors",e?"border-amber-400 bg-amber-100 text-amber-900 dark:border-amber-500 dark:bg-amber-900 dark:text-amber-100":"border-border bg-card text-muted-foreground hover:bg-muted hover:border-primary hover:text-foreground"].join(" ");return m?(0,n.jsx)("div",{className:"flex items-center border-b border-border bg-background/60 px-2 py-0.5","data-testid":"modifier-bar-collapsed",children:(0,n.jsx)("button",{type:"button",onClick:h,className:"rounded px-1.5 py-0.5 text-[11px] text-muted-foreground hover:text-foreground",title:"물리 키보드가 잡혀 접었다 — 누르면 Esc\xb7Tab\xb7화살표 키 줄을 다시 편다",children:"⌨ 보조 키"})}):(0,n.jsxs)("div",{className:"flex flex-wrap items-center gap-1 border-b border-border bg-background/60 px-2 py-1","data-testid":"modifier-bar",role:"toolbar","aria-label":"Mobile keyboard modifiers",children:[F.map(e=>(0,n.jsx)("button",{type:"button",className:N(e.width),onClick:()=>{v(e.key)},disabled:!r,"aria-label":e.title,title:e.title,"data-testid":"modbar-".concat(e.key),children:e.label},e.key)),(0,n.jsx)("button",{type:"button",className:N("wide"),onClick:i,disabled:!l||!r,"aria-label":"과거 내용 보기",title:"과거 내용 보기 — 한 쪽 위로","data-testid":"modbar-history",children:"⇡ 기록"}),(0,n.jsx)("span",{className:"mx-1 text-[10px] text-muted-foreground/60","aria-hidden":!0,children:"\xb7"}),(0,n.jsx)("button",{type:"button",className:S(o),onClick:k,disabled:!r,"aria-label":"Ctrl modifier ".concat(o?"active":"idle"),"aria-pressed":o,title:"Ctrl modifier — toggles. Combines with arrow keys (e.g. Ctrl+→ = next word). Auto-releases after 5s or one keystroke.","data-testid":"modbar-ctrl",children:"Ctrl"}),(0,n.jsx)("button",{type:"button",className:S(d),onClick:j,disabled:!r,"aria-label":"Alt modifier ".concat(d?"active":"idle"),"aria-pressed":d,title:"Alt modifier — toggles. Combines with Esc/Tab/arrows. Auto-releases after 5s or one keystroke.","data-testid":"modbar-alt",children:"Alt"})]})}var O=r(6045);function H(e){let{foreignActivityTick:t,onPeerCountChange:r}=e,{client:l,sessionId:s}=(0,w.Q)(),[i,o]=(0,a.useState)(0),[c,d]=(0,a.useState)(!1);(0,a.useEffect)(()=>{null==r||r(i)},[i,r]);let u=(0,a.useRef)(null),m=(0,a.useRef)(null),p=(0,a.useCallback)(async()=>{if(!s)return;u.current||(u.current=l.connectAcp({sessionId:s}));let e=u.current;try{let t=await e.send("terminal/peers/count",{sessionId:s});"number"==typeof(null==t?void 0:t.count)&&(o(t.count),(0,y.cY)("webterm.peers.count",{count:t.count}))}catch(e){(0,y.cY)("webterm.peers.count.error",{reason:String(e)})}},[l,s]);return((0,a.useEffect)(()=>{p();let e=()=>{"visible"===document.visibilityState&&p()};return document.addEventListener("visibilitychange",e),()=>{document.removeEventListener("visibilitychange",e)}},[p]),(0,a.useEffect)(()=>()=>{try{var e;null==(e=u.current)||e.close()}catch(e){}u.current=null,m.current&&clearTimeout(m.current)},[]),(0,a.useEffect)(()=>{t&&(d(!0),m.current&&clearTimeout(m.current),m.current=setTimeout(()=>{d(!1),m.current=null,p()},1800))},[t,p]),i<=1&&!c)?null:(0,n.jsxs)("div",{className:"flex items-center gap-2 border-b border-border bg-amber-500/10 px-2 py-0.5 text-[11px]",children:[(0,n.jsx)(O.A,{className:"h-3 w-3 text-amber-600","aria-hidden":!0}),i>1&&(0,n.jsxs)("span",{className:"font-mono text-amber-700 dark:text-amber-400",children:[i," devices"]}),c&&(0,n.jsx)("span",{className:"ml-auto rounded bg-amber-500 px-1.5 py-0.5 font-medium text-white animate-pulse",children:"\uD83D\uDC64 typing"})]})}var _=r(60302);function B(e){let{onAttached:t,pageWide:r=!0}=e,{config:s}=(0,w.Q)(),[i,o]=(0,a.useState)(!1),[c,d]=(0,a.useState)(!1),u=(0,a.useRef)(0),m=(0,a.useCallback)(async e=>{if(0!==e.length){if(!s.baseUrl)return void l.oR.error("Daemon URL 미설정 — Settings 에서 입력");d(!0),(0,y.cY)("webterm.dropzone.drop",{count:e.length,totalBytes:e.reduce((e,t)=>e+t.size,0)});try{let r=await (0,Y.K)(e.map(e=>({file:e,filename:e.name})),{baseUrl:s.baseUrl,...s.token?{token:s.token}:{}}),n=r.filter(e=>e.ok),a=r.filter(e=>!e.ok);n.length>0&&(l.oR.success(1===n.length?"\uD83D\uDCCE ".concat(n[0].meta.filename):"\uD83D\uDCCE ".concat(n.length," files dropped")),null==t||t(n.map(e=>e.meta))),a.length>0&&l.oR.error(1===a.length?"드롭 실패: ".concat(a[0].reason.slice(0,80)):"".concat(a.length," 파일 드롭 실패"))}finally{d(!1)}}},[s.baseUrl,s.token,t]);return((0,a.useEffect)(()=>{if(!r)return;let e=e=>{e.dataTransfer&&e.dataTransfer.types.includes("Files")&&(e.preventDefault(),u.current+=1,o(!0))},t=e=>{e.dataTransfer&&e.dataTransfer.types.includes("Files")&&e.preventDefault()},n=e=>{e.dataTransfer&&e.dataTransfer.types.includes("Files")&&(e.preventDefault(),u.current=Math.max(0,u.current-1),0===u.current&&o(!1))},a=e=>{if(!e.dataTransfer)return;let t=e.dataTransfer.files;t&&0!==t.length&&(e.preventDefault(),u.current=0,o(!1),m(Array.from(t)))};return document.addEventListener("dragenter",e),document.addEventListener("dragover",t),document.addEventListener("dragleave",n),document.addEventListener("drop",a),()=>{document.removeEventListener("dragenter",e),document.removeEventListener("dragover",t),document.removeEventListener("dragleave",n),document.removeEventListener("drop",a)}},[m,r]),i||c)?(0,n.jsx)("div",{className:"pointer-events-none fixed inset-0 z-50 flex items-center justify-center bg-primary/20 backdrop-blur-sm",children:(0,n.jsxs)("div",{className:"rounded-xl border-2 border-dashed border-primary bg-card px-6 py-4 text-center shadow-lg",children:[(0,n.jsx)(_.A,{className:"mx-auto h-10 w-10 text-primary","aria-hidden":!0}),(0,n.jsx)("div",{className:"mt-2 text-sm font-medium text-foreground",children:c?"업로드 중…":"Drop files to attach"}),(0,n.jsx)("div",{className:"mt-1 text-xs text-muted-foreground",children:c?"":"iCloud \xb7 Files.app \xb7 폴더 모두 지원"})]})}):null}var W=r(94810),q=r(67621),K=r(9064),V=r(19978),Z=r(61856),G=r(60796),J=r(75591),X=r(12607),ee=r(78040),et=r(47850),er=r(44797),en=r(49456),ea=r(10080),el=r(84947),es=r(98126);async function ei(e,t){if(!t||0===t.length)return null;try{let r=await e.fetchJson("/v1/sessions/store/".concat(encodeURIComponent(t),"?ifExists=1"));if(!r||!Array.isArray(r.messages))return null;let n=function(e){let t=[];return e.forEach((e,r)=>{let n=function(e,t){let r=e.role;if("tool"===r)return{...(0,es.$Q)("\uD83D\uDEE0️ ".concat(e.toolName||"tool")),id:"hydrate-t-".concat(t)};let n=function(e){if("string"==typeof e)return e;if(!Array.isArray(e))return"";let t=[];for(let n of e)if(n&&"object"==typeof n){let e=n.type;if("text"===e&&"string"==typeof n.text)t.push(n.text);else if("image"===e)t.push("\uD83D\uDCCE image");else if("audio"===e)t.push("\uD83D\uDCCE audio");else if("tool_use"===e){var r;let e=null!=(r=n.name)?r:"tool";t.push("\uD83D\uDEE0️ ".concat(e))}else"tool_result"===e&&t.push("\uD83D\uDEE0️ result")}return t.join("\n").trim()}(e.content);return 0===n.length?null:"user"===r?{...(0,es.tw)(n),id:"hydrate-u-".concat(t)}:"assistant"===r?{id:"hydrate-a-".concat(t),role:"assistant",text:n,timestamp:Date.now(),meta:{provider:"history"}}:"system"===r?null:{...(0,es.$Q)(n),id:"hydrate-m-".concat(t)}}(e,r);n&&t.push(n)}),t.slice(-200)}(r.messages);return(0,y.cY)("webterm.terminal-chat.hydrate.ok",{sessionId:t,serverCount:r.messages.length,mappedCount:n.length}),n}catch(e){return(0,y.cY)("webterm.terminal-chat.hydrate.skip",{sessionId:t,reason:e instanceof Error?e.message:String(e)}),null}}let eo=[":cwd",":capture",":peers",":tab next",":tab prev"];function ec(e){let t=(null!=e?e:"").replace(/\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~])/g,"").replace(/\r/g,"").trim();return t.length>0?t:"(no output)"}let ed=(0,a.forwardRef)(function(e,t){let{terminalId:r,open:s,onTabIntent:i,height:o,voice:c}=e,d="number"==typeof o&&Number.isFinite(o)&&o>0?o:void 0,{client:u,config:m,sessionId:p,setSessionId:h}=(0,w.Q)(),b=(0,a.useRef)(p),f=(0,a.useRef)(null),[x,g]=(0,a.useState)([]),[v,k]=(0,a.useState)(!1),[j,N]=(0,a.useState)(null),[S,E]=(0,a.useState)([]),[A,Y]=(0,a.useState)(!1),R=(0,a.useRef)(async()=>{}),z=(0,a.useRef)(!1);z.current=v;let P=(0,a.useRef)(null),[U,M]=(0,a.useState)(!1),D=(0,el.$)({enabled:!!(null==c?void 0:c.active)&&!U,language:"ko-KR"}),L=(0,a.useRef)(D);L.current=D,(0,a.useEffect)(()=>{b.current=p},[p]),(0,a.useEffect)(()=>{try{var e;null==(e=f.current)||e.close()}catch(e){}if(f.current=null,s&&p)return f.current=u.connectAcp({sessionId:p}),()=>{try{var e;null==(e=f.current)||e.close()}catch(e){}f.current=null}},[u,s,p]),(0,a.useEffect)(()=>{let e=f.current;if(e&&s&&p)return e.on("sessionUpdate",e=>{var t;let r=P.current;if(!r)return;let n=e.params;if(!n||n.sessionId!==p)return;let a=n.update;if(a&&"agent_message_chunk"===a.sessionUpdate&&(null==(t=a.content)?void 0:t.type)==="text"&&"string"==typeof a.content.text){let e=a.content.text;if(0===e.length)return;g(t=>t.map(t=>{var n;return t.id===r?{...t,text:(null!=(n=t.text)?n:"")+e}:t})),L.current.pushText(e)}})},[s,p]);let $=(0,a.useRef)(null);(0,a.useEffect)(()=>{if(!s||!p||$.current===p)return;$.current=p;let e=!1;return(async()=>{let t=await ei(u,p);e||null===t||g(t)})(),()=>{e=!0}},[u,s,p]);let F=(0,a.useCallback)(e=>{g(t=>[...t,e].slice(-200))},[]);(0,a.useImperativeHandle)(t,()=>({submitVoiceTranscript:e=>{let t=e.trim();if(t){if(z.current)return void(0,y.cY)("webterm.terminal-chat.voice.skip-pending",{len:t.length});(0,y.cY)("webterm.terminal-chat.voice.auto-send",{len:t.length}),R.current(t)}}}),[]);let Q=(0,a.useCallback)(()=>{let e=b.current;return e?(f.current||(f.current=u.connectAcp({sessionId:e})),f.current):null},[u]),O=(0,a.useMemo)(()=>({client:u,sessionId:p,provider:m.provider,setSessionId:h,daemon:{baseUrl:m.baseUrl,...m.token?{token:m.token}:{}},messages:x}),[u,m.baseUrl,m.provider,m.token,x,p,h]),H=(0,a.useCallback)(e=>{E(t=>[...t,...e]),(0,y.cY)("webterm.terminal-chat.attach.queue",{terminalId:r,added:e.length,filenames:e.map(e=>e.filename)})},[r]),_=(0,a.useCallback)(e=>{E(t=>t.filter(t=>t.id!==e))},[]),B=(0,a.useCallback)(async e=>{let t=e.startsWith(":")?null:await (0,es.yN)(e,O);if(t){"__CLEAR__"===t.text?g([]):F((0,es.$Q)(t.text,r)),t.newSessionId&&h(t.newSessionId);return}if(!p)return void F((0,es.$Q)("session 미설정",r));let n=Q();if(!n)return void F((0,es.$Q)("session 미설정",r));let a=await n.send("terminal/repl/exec",{sessionId:p,terminalId:r,line:e});F((0,es.$Q)(ec(null==a?void 0:a.output),r)),(null==a?void 0:a.sessionIdChange)&&h(a.sessionIdChange),(null==a?void 0:a.tabIntent)!==void 0&&(null==i||i(a.tabIntent),F((0,es.$Q)("tab intent → ".concat(String(a.tabIntent)),r))),(null==a?void 0:a.injectPath)&&F((0,es.$Q)("captured → ".concat(a.injectPath),r)),(null==a?void 0:a.agentChatModeEnter)&&F((0,es.$Q)("agent chat mode hint — terminal dock already runs plain text as agent turns",r))},[F,O,Q,i,p,h,r]),ed=(0,a.useCallback)(async()=>{let e=b.current;if(e&&j)try{var t;let n=Q();if(!n)return;let a=await n.send("terminal/repl/agent/abort",{sessionId:e,terminalId:r});(0,y.cY)("webterm.terminal-chat.abort",{terminalId:r,aborted:null!=(t=null==a?void 0:a.aborted)&&t}),F((0,es.$Q)((null==a?void 0:a.aborted)?"agent turn aborted":"no active agent turn to abort",r))}catch(t){let e=t instanceof Error?t.message:String(t);F((0,es.$Q)("abort failed: ".concat(e),r))}finally{k(!1),N(null)}},[F,Q,j,r]),eu=(0,a.useCallback)(async e=>{E([]);let t=S.filter(e=>!("string"==typeof e.path&&e.path.length>0)).length;if(t>0){let e=1===t?"첨부 1건이 path 누락으로 누락됐습니다":"첨부 ".concat(t,"건이 path 누락으로 누락됐습니다");l.oR.warning(e),F((0,es.$Q)("⚠ ".concat(e),r)),(0,y.cY)("webterm.terminal-chat.attach.dropped",{terminalId:r,droppedCount:t,totalCount:S.length})}e.length>0&&F((0,es.tw)(e,r)),S.length>0&&F((0,es.$Q)("\uD83D\uDCCE attached: ".concat(S.map(e=>e.filename).join(", ")),r));let n=e.trim();if(n||0!==S.length){k(!0);try{if((0,es.FM)(n))return void await B(n);if(!p)return void F((0,es.$Q)("session 미설정",r));let e=Q();if(!e)return void F((0,es.$Q)("session 미설정",r));N(n);let t="assistant-".concat(Date.now(),"-").concat(Math.random().toString(36).slice(2,6));P.current=t,F({id:t,role:"assistant",text:"",timestamp:Date.now(),terminalId:r}),(0,y.cY)("webterm.terminal-chat.turn.start",{terminalId:r,sessionId:p,len:n.length,attachCount:S.length,placeholderId:t});let a=S.filter(e=>e.path).map(e=>"[attached] ".concat(e.path)),l=a.length>0?"".concat(a.join("\n"),"\n\n").concat(n).trimEnd():n,s=await e.send("terminal/repl/exec",{sessionId:p,terminalId:r,line:":agent ".concat(l)});(null==s?void 0:s.agent)?(g(e=>e.map(e=>e.id===t?{...e,text:e.text&&e.text.length>=s.agent.markdown.length?e.text:s.agent.markdown,meta:{provider:s.agent.modelLabel,stopReason:s.agent.stopReason}}:e)),L.current.flush()):(g(e=>e.filter(e=>e.id!==t)),F((0,es.$Q)(ec(null==s?void 0:s.output),r))),(0,y.cY)("webterm.terminal-chat.turn.end",{terminalId:r,hasAgent:!!(null==s?void 0:s.agent)})}catch(n){let e=n instanceof Error?n.message:String(n),t=P.current;t&&g(e=>e.filter(e=>e.id!==t)),L.current.cancel(),F((0,es.$Q)("error: ".concat(e),r)),l.oR.error("terminal chat failed: ".concat(e))}finally{P.current=null,k(!1),N(null)}}},[F,Q,B,S,p,r]);return((0,a.useEffect)(()=>{R.current=eu},[eu]),s)?(0,n.jsxs)("div",{className:"shrink-0 border-t border-border bg-background/95","data-terminal-chat-dock":!0,children:[(0,n.jsxs)("div",{className:"flex items-center gap-2 border-b border-border/80 px-3 py-2",children:[(0,n.jsxs)("div",{className:"flex min-w-0 flex-1 items-center gap-2",children:[(0,n.jsx)("span",{className:"inline-flex h-7 w-7 items-center justify-center rounded-md border border-primary/30 bg-primary/10 text-primary",children:(0,n.jsx)(q.A,{className:"h-4 w-4"})}),(0,n.jsxs)("div",{className:"min-w-0",children:[(0,n.jsx)("div",{className:"truncate text-sm font-medium",children:"Terminal Chat Dock"}),(0,n.jsxs)("div",{className:"truncate text-[11px] text-muted-foreground",children:[r," \xb7 plain text = contextual agent turn \xb7 ",(0,n.jsx)("code",{className:"rounded bg-muted px-1",children:":commands"})," stay local"]})]})]}),(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[c&&(0,n.jsxs)("button",{type:"button",onClick:c.onToggle,disabled:c.disabled,title:c.disabled?"마이크 사용 불가 (insecure context 등)":c.phaseLabel,"data-elanous-action":"webterm-voice-toggle-dock","aria-pressed":c.active,className:(0,T.cn)("inline-flex h-7 items-center gap-1.5 rounded-md border px-2 text-[11px]",c.active?"border-rose-300 bg-rose-100 text-rose-800 dark:border-rose-700 dark:bg-rose-950/40 dark:text-rose-100":"border-border hover:bg-accent",c.disabled&&"cursor-not-allowed opacity-50"),children:[(0,n.jsx)("span",{className:(0,T.cn)("h-1.5 w-1.5 rounded-full",c.dotColor,("listening"===c.phase||"speaking"===c.phase)&&"animate-pulse"),"aria-hidden":"true"}),c.active?(0,n.jsx)(C.A,{className:"h-3.5 w-3.5"}):(0,n.jsx)(I.A,{className:"h-3.5 w-3.5"}),(0,n.jsx)("span",{className:"hidden sm:inline",children:c.phaseLabel})]}),c&&c.active&&D.supported&&(0,n.jsx)("button",{type:"button",onClick:()=>{U||L.current.cancel(),M(e=>!e)},title:U?"음성 응답 켜기":"음성 응답 끄기","data-elanous-action":"webterm-tts-mute-toggle","aria-pressed":U,className:(0,T.cn)("inline-flex h-7 items-center justify-center rounded-md border px-2 text-[11px]",U?"border-border bg-muted text-muted-foreground":"border-fuchsia-300 bg-fuchsia-50 text-fuchsia-800 dark:border-fuchsia-700 dark:bg-fuchsia-950/40 dark:text-fuchsia-100"),children:U?(0,n.jsx)(K.A,{className:"h-3.5 w-3.5"}):(0,n.jsx)(V.A,{className:"h-3.5 w-3.5"})}),(0,n.jsx)(er.Qh,{}),(0,n.jsx)(W.vG,{children:(0,n.jsx)(et.rm,{})}),(0,n.jsx)(W.vG,{children:(0,n.jsx)(en.D,{})}),j&&(0,n.jsxs)(ea.$,{variant:"destructive",size:"sm",onClick:()=>void ed(),title:"abort active terminal-context agent turn",children:[(0,n.jsx)(Z.A,{className:"h-3.5 w-3.5"}),"Stop"]}),(0,n.jsxs)("div",{className:"relative",children:[(0,n.jsx)(ea.$,{variant:"outline",size:"icon-sm",onClick:()=>Y(e=>!e),"aria-label":"terminal quick commands",title:"terminal quick commands",children:(0,n.jsx)(G.A,{className:"h-3.5 w-3.5"})}),A&&(0,n.jsx)("div",{className:"absolute right-0 top-full z-40 mt-1 w-44 rounded-md border border-border bg-popover p-1 shadow-md",children:eo.map(e=>(0,n.jsx)("button",{type:"button",className:"block w-full rounded px-2 py-1 text-left font-mono text-[11px] hover:bg-accent",onClick:()=>{Y(!1),eu(e)},children:e},e))})]})]})]}),j&&(0,n.jsxs)("div",{className:"flex items-center gap-2 border-b border-border/70 px-3 py-2 text-[11px] text-muted-foreground",children:[(0,n.jsx)(J.A,{className:"h-3.5 w-3.5 animate-spin"}),(0,n.jsxs)("span",{className:"truncate",children:["terminal-context agent turn in progress",j.length>0?" \xb7 ".concat(j.slice(0,120)).concat(j.length>120?"…":""):""]})]}),(0,n.jsxs)("div",{className:(0,T.cn)("grid grid-rows-[1fr_auto]",void 0===d?"h-[clamp(160px,30vh,360px)] min-h-[200px]":void 0),...void 0===d?{}:{style:{height:d}},children:[(0,n.jsx)(X.D,{messages:x,pending:v,tabId:"dock-".concat(r)}),(0,n.jsx)(ee.V,{onSubmit:eu,disabled:v,attachments:S,onAttached:H,onRemoveAttachment:_,tabId:"dock-".concat(r),...c?{voice:c}:{}})]})]}):null});var eu=r(35448),em=r(75361);let ep=/^100\.(6[4-9]|[7-9]\d|1[01]\d|12[0-7])\./;function eh(){if(!window.location)return{isSecure:!1,reason:"unknown",hostname:"",protocol:""};let e=function(e,t){let r="https:"===e,n="http:"===e;return"localhost"===t||"127.0.0.1"===t||"[::1]"===t||"::1"===t?{isSecure:!0,reason:"localhost",hostname:t,protocol:e}:r&&/\.ts\.net$/i.test(t)?{isSecure:!0,reason:"https-tsnet",hostname:t,protocol:e}:r?{isSecure:!0,reason:"https-other",hostname:t,protocol:e}:n&&ep.test(t)?{isSecure:!1,reason:"http-tailscale",hostname:t,protocol:e,guidance:"Tailscale 100.x 주소는 HTTP라 마이크 권한이 차단됩니다. `tailscale serve` 또는 funnel 로 ts.net HTTPS 호스트를 노출하면 마이크가 동작합니다."}:n?{isSecure:!1,reason:"http-other",hostname:t,protocol:e,guidance:"브라우저는 HTTP origin 에서 마이크 접근을 차단합니다. HTTPS 로 접속하거나 localhost 로 옮기세요."}:{isSecure:!1,reason:"unknown",hostname:t,protocol:e}}(window.location.protocol,window.location.hostname);return e.isSecure&&!1===window.isSecureContext?{...e,isSecure:!1,reason:"unknown",guidance:"현재 origin 이 secure context 가 아닙니다 (브라우저 판정). HTTPS 로 접속하세요."}:e}let eb="elanous.webterm.voiceBanner.dismissed",ef={isSecure:!1,reason:"unknown",hostname:"",protocol:""};function ex(){var e;let{statusOverride:t}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},[r,l]=(0,a.useState)(!1),[s,i]=(0,a.useState)(null!=t?t:ef);if((0,a.useEffect)(()=>{l(function(){try{return"1"===window.sessionStorage.getItem(eb)}catch(e){return!1}}()),i(null!=t?t:eh())},[t]),s.isSecure||r)return null;let o="http-tailscale"===s.reason?"\uD83C\uDF99 Tailscale HTTP 에서 마이크가 차단됩니다":"\uD83C\uDF99 마이크 사용을 위해 HTTPS 가 필요합니다";return(0,n.jsxs)("div",{role:"alert","aria-live":"polite","data-testid":"webterm-voice-banner","data-reason":s.reason,className:"flex items-start gap-2 border-b border-amber-300 bg-amber-50 px-3 py-2 text-[12px] text-amber-900 dark:border-amber-700 dark:bg-amber-950/40 dark:text-amber-100",children:[(0,n.jsx)(eu.A,{className:"mt-[1px] h-3.5 w-3.5 shrink-0","aria-hidden":"true"}),(0,n.jsxs)("div",{className:"flex-1",children:[(0,n.jsx)("div",{className:"font-medium",children:o}),(0,n.jsx)("div",{className:"mt-0.5 text-amber-800/90 dark:text-amber-200/80",children:null!=(e=s.guidance)?e:"브라우저는 secure context (HTTPS \xb7 localhost) 에서만 마이크를 허용합니다."}),"http-tailscale"===s.reason&&(0,n.jsxs)("div",{className:"mt-1 font-mono text-[11px] text-amber-700 dark:text-amber-200/90",children:[(0,n.jsx)("code",{children:"tailscale serve --bg --https=443 31415"})," ","or"," ",(0,n.jsx)("a",{href:"https://tailscale.com/kb/1242/tailscale-serve",target:"_blank",rel:"noopener noreferrer",className:"underline hover:text-amber-900 dark:hover:text-amber-50",children:"ts.net HTTPS 가이드"})]})]}),(0,n.jsx)("button",{type:"button",onClick:()=>{try{window.sessionStorage.setItem(eb,"1")}catch(e){}l(!0)},"aria-label":"dismiss banner",title:"이 창을 닫을 때까지 숨기기",className:"rounded p-0.5 text-amber-700 hover:bg-amber-100 dark:text-amber-200 dark:hover:bg-amber-900/40",children:(0,n.jsx)(em.A,{className:"h-3.5 w-3.5"})})]})}async function eg(e){var t;let{terminalId:r,paths:n}=e,a=null==(t=e.alsoCopyToClipboard)||t,l=n.filter(e=>"string"==typeof e&&e.length>0).map(e=>"'".concat(e.replace(/'/g,"'\\''"),"'")).join(" ");if(!l)return{injected:!1,copied:!1};let s="".concat(l," "),i=!1;try{(i=(0,P.WP)(r,s))?(0,y.cY)("webterm.attach.inject.ok",{terminalId:r,pathCount:n.length,bytes:s.length}):(0,y.cY)("webterm.attach.inject.error",{terminalId:r,reason:"no-sender"})}catch(e){(0,y.cY)("webterm.attach.inject.error",{terminalId:r,reason:String(e)})}let o=!1;if(a&&"undefined"!=typeof navigator&&navigator.clipboard)try{await navigator.clipboard.writeText(l),o=!0,(0,y.cY)("webterm.attach.clipboard.ok",{pathCount:n.length})}catch(e){(0,y.cY)("webterm.attach.clipboard.skip",{reason:String(e)})}return{injected:i,copied:o}}var ev=r(5883),ew=r(53680),ey=r(65845),ek=r(79450);function ej(e){return e.length<=32?e:"…".concat(e.slice(-32))}function eN(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Date.now();if("number"!=typeof e||!Number.isFinite(e)||!Number.isFinite(t)||e>t)return null;let r=new Date(e);return Number.isFinite(r.getTime())?(0,ek.KW)(r.toISOString(),t):null}function eS(e){let t=new Map,r=new Set,n=new Set,a=[];for(let r of e){var l,s;if(n.has(r.id))continue;n.add(r.id),a.push(r);let e=null==(l=r.runId)?void 0:l.trim();if(!e)continue;let i=null!=(s=t.get(e))?s:[];i.push(r),t.set(e,i)}let i=[];for(let[e,n]of t){let t=function(e){let t=e.filter(e=>e.alive&&Number.isFinite(e.startedAt));if(0===t.length)return;let r=Math.max(...t.map(e=>{let{startedAt:t}=e;return t})),n=t.filter(e=>{let{startedAt:t}=e;return t===r});return 1===n.length?n[0]:void 0}(n);if(!t){for(let e of n)r.add(e.id);continue}i.push({runId:e,split:t.id,tabs:n.filter(e=>e.id!==t.id).map(e=>{let{id:t}=e;return t})})}let o=new Set(i.flatMap(e=>{let{split:t,tabs:r}=e;return[t,...r]}));return{layouts:i,unknown:a.filter(e=>{let{id:t}=e;return r.has(t)&&!o.has(t)}).map(e=>{let{id:t}=e;return{id:t,reason:"relationship-unavailable"}})}}function eC(e){return{layouts:e.layouts.map(e=>{let{runId:t,split:r,tabs:n}=e;return{runId:t,slots:[{terminalId:r,position:"split"},...n.map(e=>({terminalId:e,position:"tab"}))]}}),unknown:e.unknown.map(e=>({...e}))}}let eI=["terminal","observe","pty-list"],eT="elanous.webterm.activeId",eE="elanous.webterm.panelsMinimized",eA="elanous.webterm.chatDockOpen";function eY(e){return e.sourceRoot?{sourceRoot:e.sourceRoot.dbPath}:{}}function eR(e){let{layout:t,sessionId:r,onForeignInputActivity:a,terminalIds:l,activeId:s=null,visible:i=!0,clearRequests:c}=e,d=t.layouts.flatMap(e=>e.slots),u=new Map(d.map(e=>[e.terminalId,e])),m=new Set(t.layouts.map(e=>{var t;return null==(t=e.slots[0])?void 0:t.terminalId}).filter(e=>!!e)),p=void 0===l?d.map(e=>e.terminalId):[...new Set([...l,...s?[s]:[],...d.map(e=>e.terminalId)])],h=new Set(d.length>0?d.map(e=>e.terminalId):s?[s]:[]);return(0,n.jsxs)("div",{className:i?"grid h-full min-h-0 grid-cols-2 gap-2 p-2":"hidden","aria-label":"런별 터미널 배치",children:[t.layouts.map(e=>{let{runId:t}=e;return(0,n.jsx)("section",{className:"sr-only","aria-label":"런 ".concat(t," 터미널")},t)}),p.map(e=>{var t,l;let d=u.get(e),p=i&&h.has(e),b=null!=(t=null==d?void 0:d.position)?t:e===s?"single":"inactive-tab";return(0,n.jsxs)("div",{className:p?"".concat(m.has(e)?"col-start-1 ":"").concat((null==d?void 0:d.position)==="split"?"min-h-0 border border-emerald-600":(null==d?void 0:d.position)==="tab"?"min-h-0 border border-zinc-700":"col-span-2 h-full min-h-0"):"hidden","data-pane-position":b,"data-terminal-id":e,children:[d&&(0,n.jsxs)("p",{className:"sr-only",children:["split"===d.position?"분할 터미널":"탭 터미널",": ",e]}),(0,n.jsx)(o,{sessionId:r,terminalId:e,clearRequest:null!=(l=null==c?void 0:c[e])?l:0,onForeignInputActivity:a},e)]},e)}),t.unknown.map(e=>{let{id:t,reason:r}=e;return(0,n.jsxs)("p",{className:"text-xs text-muted-foreground","data-terminal-id":t,"data-pane-relationship":r,children:["터미널 ",t,": 관계를 알 수 없어 배치하지 않았습니다."]},t)})]})}function ez(){var e,t,r;let{initialPtyId:s=null,onPtySelection:i}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{client:o,config:c,sessionId:u}=(0,w.Q)(),{isCoarsePointer:m}=function(){let[e,t]=(0,a.useState)(!1);return(0,a.useEffect)(()=>{if(!window.matchMedia)return;let e=window.matchMedia("(pointer: coarse)");t(e.matches);let r=e=>{t(e.matches)};return"function"==typeof e.addEventListener?(e.addEventListener("change",r),()=>e.removeEventListener("change",r)):"function"==typeof e.addListener?(e.addListener(r),()=>e.removeListener(r)):void 0},[]),{isCoarsePointer:e}}(),{compact:p}=(0,v.K)(),[h,x]=(0,a.useState)(null),[k,j]=(0,a.useState)({}),[N,C]=(0,a.useState)([]),[I,T]=(0,a.useState)(!1),[E,A]=(0,a.useState)(null),[Y,R]=(0,a.useState)(null),[U,M]=(0,a.useState)(!1);(0,a.useEffect)(()=>{var e,t;let r=null!=(t=null==(e=window.location)?void 0:e.search)?t:"",n=function(e){let t=new URLSearchParams(e).get("wall");return t?t.split(",").map(e=>e.trim()).filter(Boolean).slice(0,3):[]}(r);n.length&&R(n),"1"===new URLSearchParams(r).get("stage")&&M(!0)},[]);let[D,L]=(0,a.useState)({status:"pending"}),$=function(e,t){let r="ready"===e.status&&"local"===e.issuedBy&&"restored-tab"!==e.fallbackReason,n="ready"===e.status&&e.fallbackReason?e.fallbackReason:"사유 미상";return{placeholder:t?null:"pending"===e.status?e.slow?"데몬이 느립니다 — 터미널을 만드는 중… (기다리는 중)":"터미널 이름을 준비하는 중…":"터미널 이름을 로컬에서 정했습니다 (".concat(n,")."),fallbackBanner:r?"터미널 이름을 로컬에서 정했습니다 (".concat(n,"). 데몬 발급을 확인하지 못했습니다."):null}}(D,null!==h),F=(0,a.useCallback)(e=>{L(e),"pending"===e.status&&x(null)},[]),O=(0,a.useRef)(!1),_=(0,a.useRef)(!1),[W,q]=(0,a.useState)("terminal"),K={view:W,buttons:eI.map(e=>({view:e,selected:e===W}))},V=(0,a.useCallback)(e=>{q(t=>"observe"===e&&"observe"===t?"terminal":e)},[]),[Z,G]=(0,a.useState)(!!s),[J,X]=(0,a.useState)([]),[ee,et]=(0,a.useState)(),[er,en]=(0,a.useState)(new Map),[ea,el]=(0,a.useState)("loading"),[es,ei]=(0,a.useState)(null),[eo,ec]=(0,a.useState)(null),eu=(0,a.useRef)(!1),em=null!=(r=null==es?void 0:es.id)?r:null,ep=es?(0,ey.x3)(es):null,[eb,ef]=(0,a.useState)("raw"),[ek,ez]=(0,a.useState)(new Map),[eP,eU]=(0,a.useState)(new Map),[eM,eD]=(0,a.useState)({status:"unrequested"}),eL=(0,a.useRef)(0),e$=(0,a.useRef)(0);(0,a.useEffect)(()=>{if("terminal"!==W&&"pty-list"!==W)return;let e=!1;el("loading");let t=setTimeout(()=>{(async()=>{try{let[t,r]=await Promise.all([o.listTerminals((0,ey.tC)(Z)),o.listProgressFrames().catch(e=>((0,y.cY)("webterm.pty-list.progress.error",{reason:String(e)}),null))]);if(e)return;X((0,ey.xu)(t.terminals)),et(t.scope),en(r?(0,ey.gA)(r.logs):new Map),el("idle")}catch(t){if(e)return;X([]),et(void 0),en(new Map),el("error"),(0,y.cY)("webterm.pty-list.error",{reason:String(t)})}})()},"terminal"!==W||s?0:1200);return()=>{e=!0,clearTimeout(t)}},[o,Z,W,s]),(0,a.useEffect)(()=>{null===ep||J.some(e=>(0,ey.x3)(e)===ep)||(eL.current+=1,e$.current+=1,ei(null),eD({status:"unrequested"}))},[J,ep]);let eF=(0,a.useCallback)((e,t)=>{let{id:r}=e,n=(0,ey.x3)(e),a=++eL.current;if("raw"===t){ez(e=>new Map(e).set(n,{status:"loading"})),o.fetchTerminalScrollback(e.id,100,eY(e)).then(e=>{eL.current===a&&e.id===r&&ez(t=>new Map(t).set(n,{status:"ready",scrollback:e.scrollback}))}).catch(e=>{eL.current===a&&(ez(e=>new Map(e).set(n,{status:"error"})),(0,y.cY)("webterm.pty-list.scrollback.error",{id:r,reason:String(e)}))});return}eU(e=>new Map(e).set(n,{status:"loading"})),o.fetchTerminalFrame(e.id,eY(e)).then(e=>{eL.current===a&&e.id===r&&eU(t=>new Map(t).set(n,{status:"ready",frame:e.frame,frameAt:e.frameAt,frameSource:e.frameSource}))}).catch(e=>{eL.current===a&&(eU(e=>new Map(e).set(n,{status:"error"})),(0,y.cY)("webterm.pty-list.frame.error",{id:r,reason:String(e)}))})},[o]),eQ=(0,a.useCallback)(function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],{id:r}=e;if(t&&(T(!1),A(e),null==i||i(e)),ep===(0,ey.x3)(e))return;let n=++e$.current;ei(e),eD({status:"loading"}),eF(e,eb),o.fetchTerminalLineage(r).then(e=>{e$.current===n&&e.key===r&&eD({status:"ready",lineage:e})}).catch(e=>{e$.current===n&&(eD({status:"error"}),(0,y.cY)("webterm.pty-list.lineage.error",{id:r,reason:String(e)}))})},[o,i,eb,eF,ep]);(0,a.useEffect)(()=>{if(eu.current||"loading"===ea||(eu.current=!0,!s))return;if("error"===ea){ec({kind:"list-unavailable"}),q("pty-list"),(0,y.cY)("webterm.initial-pty-selection",{ptyId:s,kind:"list-unavailable",reason:"pty-list-error"});return}let e=(0,ey.hH)(s,J);ec(e),"selected"!==e.kind&&q("pty-list"),(0,y.cY)("webterm.initial-pty-selection",{ptyId:s,kind:e.kind,reason:e.reason}),"selected"===e.kind&&(eQ(e.terminal),A(e.terminal))},[eQ,s,ea,J]);let eO=(0,a.useCallback)(e=>{e!==eb&&(ef(e),es&&eF(es,e))},[eb,eF,es]),eH=(0,a.useCallback)(async e=>{var t;let r=window.prompt("새 PTY 이름을 입력하세요.",null!=(t=e.nickname)?t:"");if(null!==r)try{let t=await o.renameTerminal(e.id,r),n=function(e){switch(e.status){case"success":return"PTY 이름을 '".concat(e.name,"'(으)로 바꿨습니다.");case"invalid-name":return"이 이름은 사용할 수 없습니다. 다른 이름을 입력해 주세요.";case"unknown-pty":return"이 PTY를 찾을 수 없습니다. 목록을 새로고침한 뒤 다시 시도해 주세요.";case"denied":return"이 PTY의 이름을 바꿀 권한이 없습니다.";case"failed":return"PTY 이름 변경에 실패했습니다. 잠시 후 다시 시도해 주세요.";case"owner-unreachable":return"PTY 소유 프로세스에 연결할 수 없어 이름을 바꾸지 못했습니다.";default:return e}}(t);"success"===t.status?l.oR.success(n):l.oR.error(n)}catch(e){l.oR.error("PTY 이름 변경 요청에 실패했습니다: ".concat(String(e)))}},[o]),e_=(0,a.useMemo)(()=>(0,ey.lH)(Z,J,ee,ep,ek,eb,eP),[eP,Z,J,ee,eb,ek,ep]),eB=(0,a.useMemo)(()=>(0,ey.Kh)(em,eM),[eM,em]),eW=(0,a.useMemo)(()=>(function(e,t){let r=t.trim();return r?{layouts:e.layouts.filter(e=>{let{slots:t}=e;return t.some(e=>e.terminalId===r)}).map(e=>({runId:e.runId,slots:e.slots.map(e=>({...e}))})),unknown:e.unknown.map(e=>({...e}))}:{layouts:[],unknown:e.unknown.map(e=>({...e}))}})(null===E&&(null===s||I)?eC(eS(J)):eC(eS(J.filter(e=>{var t;return e.id!==(null!=(t=null==E?void 0:E.id)?t:s)&&N.includes(e.id)}))),null!=h?h:""),[J,N,E,I,s,h]);(0,a.useEffect)(()=>{if(O.current||s||"loading"===ea)return;if(0===J.length){_.current||(_.current=!0,(0,y.cY)("webterm.initial-selection",{skipped:!0,reason:"no-terminals",listState:ea}));return}O.current=!0;let e=(0,ey.Dw)({storedId:null,fallbackId:h,terminals:J});(0,y.cY)("webterm.initial-selection",{terminalId:e.terminalId,reason:e.reason,rowCount:J.length}),e.terminalId!==h&&x(e.terminalId)},[J,ea]);let[eq,eK]=(0,a.useState)(0),[eV,eZ]=(0,a.useState)(!1),[eG,eJ]=(0,a.useState)(!0),[eX,e0]=(0,a.useState)(!1),[e1,e2]=(0,a.useState)(0),[e5,e3]=(0,a.useState)(null),e4=(0,a.useCallback)(e=>{e3({intent:e,nonce:Date.now()})},[]),e8=(0,a.useRef)(null),[e7,e9]=(0,a.useState)("none"),e6=(0,a.useRef)(e7);e6.current=e7;let te=(0,a.useRef)(h);te.current=h;let tt=(0,a.useCallback)(e=>{let t=e.trim();if(!t)return;let r=e6.current;if("controls"===r){let e=te.current;if(!e)return;if(!(0,P.WP)(e,t+" ")){(0,y.cY)("webterm.voice.stdin-inject-failed",{len:t.length,terminalId:e,reason:"no-sender"}),l.oR.error("터미널 입력 전송 실패 — 터미널 연결을 확인하고 다시 말해 주세요.");return}(0,y.cY)("webterm.voice.stdin-inject",{len:t.length,terminalId:e})}else if("dock"===r){var n;null==(n=e8.current)||n.submitVoiceTranscript(t)}else(0,y.cY)("webterm.voice.transcript-no-source",{len:t.length})},[]),tr=o.voiceWsUrl(),tn=(0,ev.sS)({wsUrl:tr,...c.token?{token:c.token}:{},onTranscript:tt}),ta=(0,a.useMemo)(()=>eh(),[]),tl=!c.baseUrl||!ta.isSecure,ts=(0,a.useCallback)(()=>{tn.active&&"dock"===e7?(e9("none"),tn.toggle()):(e9("dock"),tn.active||tn.toggle())},[tn,e7]),ti=(0,a.useCallback)(()=>{tn.active&&"controls"===e7?(e9("none"),tn.toggle()):(e9("controls"),tn.active||tn.toggle())},[tn,e7]),to=(0,a.useMemo)(()=>({active:tn.active&&"dock"===e7,phase:tn.phase,dotColor:ew.x[tn.phase],phaseLabel:ew.g[tn.phase],disabled:tl,onToggle:ts}),[tn.active,tn.phase,e7,tl,ts]),tc=(0,a.useMemo)(()=>({active:tn.active&&"controls"===e7,phase:tn.phase,dotColor:ew.x[tn.phase],phaseLabel:ew.g[tn.phase],disabled:tl,onToggle:ti}),[tn.active,tn.phase,e7,tl,ti]),td=(0,a.useRef)(ts);td.current=ts,(0,a.useEffect)(()=>{let e=e=>{"m"===e.key.toLowerCase()&&e.shiftKey&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),(0,y.cY)("webterm.voice.shortcut.toggle"),eJ(!0),td.current())};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[]),(0,a.useEffect)(()=>{let e=window.localStorage.getItem(eT);e&&e.length>0&&(!s||e!==s)&&(x(e),O.current=!0),"1"===window.localStorage.getItem(eE)&&eZ(!0),"0"===window.localStorage.getItem(eA)&&eJ(!1)},[]);let tu=(0,a.useCallback)(async e=>{if(!u||!h||0===e.length)return;let t=e.map(e=>e.path).filter(e=>"string"==typeof e&&e.length>0);if(0===t.length)return void(0,y.cY)("webterm.attach.no-path",{count:e.length});let r=await eg({terminalId:h,paths:t});if(r.injected){let e=1===t.length?"터미널에 path 첨부됨":"".concat(t.length," paths 터미널에 첨부됨"),n=r.copied?" \xb7 clipboard 도 복사":"";l.oR.success(e+n)}else l.oR.error("터미널 inject 실패 — 직접 paste 해주세요")},[o,u,h]),tm=(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("button",{type:"button","aria-pressed":K.buttons[0].selected,onClick:()=>{A(null),T(!0),V("terminal")},className:"rounded px-2 py-1 text-xs ".concat(K.buttons[0].selected?"bg-emerald-700 text-white":"bg-zinc-800 text-zinc-300 hover:bg-zinc-700"),children:"터미널"}),(0,n.jsxs)("button",{type:"button","aria-pressed":K.buttons[1].selected,onClick:()=>{A(null),T(!0),V("observe")},className:"rounded px-2 py-1 text-xs ".concat(K.buttons[1].selected?"bg-emerald-700 text-white":"bg-zinc-800 text-zinc-300 hover:bg-zinc-700"),title:"자기신고하는 elanous 대시보드 TUI 를 라이브로 관측(읽기 전용)",children:["\uD83D\uDDA5 TUI 관측 ",K.buttons[1].selected?"ON":"OFF"]}),(0,n.jsx)("button",{type:"button","aria-pressed":K.buttons[2].selected,onClick:()=>{A(null),T(!0),V("pty-list")},className:"rounded px-2 py-1 text-xs ".concat(K.buttons[2].selected?"bg-emerald-700 text-white":"bg-zinc-800 text-zinc-300 hover:bg-zinc-700"),children:"PTY 목록"}),(0,n.jsx)("button",{type:"button","aria-pressed":null!==Y,onClick:()=>R(e=>null===e?[]:null),className:"rounded px-2 py-1 text-xs ".concat(null!==Y?"bg-emerald-700 text-white":"bg-zinc-800 text-zinc-300 hover:bg-zinc-700"),"data-elanous-action":"pty-wall",children:"▦ 나란히"})]}),tp=h&&(0,n.jsx)(z,{terminalId:h,onClear:()=>j(e=>{var t;return{...e,[h]:(null!=(t=e[h])?t:0)+1}}),onRecordingChange:e0,onAttached:tu,voice:tc,variant:p?"sheet":"default"});return(0,n.jsxs)("div",{className:"flex h-full flex-col",children:[(0,n.jsx)(f.ZO,{variant:p?"sheet":"default",renderSheet:e=>{let{tabs:t,status:r,onSwitch:a,onAdd:l,actions:s}=e;return(0,n.jsxs)(g,{activeId:h,tabs:t,status:r,onSwitch:a,onAdd:l,actions:s,children:[tm,tp]})},activeId:h,onActiveChange:e=>{x(e),window.localStorage.setItem(eT,e),A(null),T(!0),q("terminal")},onInitialTerminalState:F,minimized:eV,onToggleMinimize:()=>{eZ(e=>{let t=!e;return window.localStorage.setItem(eE,t?"1":"0"),t})},recording:eX,peerCount:e1,chatDockOpen:eG,onToggleChatDock:()=>{if(eV){eZ(!1),window.localStorage.setItem(eE,"0"),eJ(!0),window.localStorage.setItem(eA,"1");return}eJ(e=>{let t=!e;return window.localStorage.setItem(eA,t?"1":"0"),requestAnimationFrame(()=>{window.dispatchEvent(new Event("resize"))}),t})},tabIntent:e5,onTabsChange:C,suspendInitialSpawn:!!s&&!I}),$.fallbackBanner&&(0,n.jsx)("p",{className:"border-b border-amber-700/50 bg-amber-950/30 px-3 py-1 text-xs text-amber-200",role:"status",children:$.fallbackBanner}),(0,n.jsx)(ex,{}),!p&&(0,n.jsx)("div",{className:eV?"hidden":"flex items-center gap-2 border-b border-zinc-800 px-3 py-1",children:tm}),h?(0,n.jsxs)("div",{className:eV||"terminal"!==W||null!==E||s&&!I?"hidden":"contents",children:[p?(0,n.jsx)("div",{className:"hidden",children:(0,n.jsx)(H,{foreignActivityTick:eq,onPeerCountChange:e2})}):(0,n.jsx)(H,{foreignActivityTick:eq,onPeerCountChange:e2}),!p&&tp,m&&(0,n.jsx)(Q,{terminalId:h}),(0,n.jsx)(B,{onAttached:tu})]}):null,(0,n.jsxs)("div",{className:"relative flex-1 min-h-0",children:[null!==Y&&(0,n.jsx)("div",{className:U?"fixed inset-0 z-50":"absolute inset-0 z-20","data-pty-wall-stage":U?"1":void 0,children:(0,n.jsx)(b,{rows:J,client:o,initial:Y,stage:U,onClose:()=>{R(null);let e=new URLSearchParams(window.location.search);e.delete("wall"),window.history.replaceState(null,"","".concat(window.location.pathname).concat(e.toString()?"?".concat(e):""))}})}),(0,n.jsx)(eR,{layout:eW,sessionId:u,terminalIds:N.filter(e=>e!==(null==E?void 0:E.id)&&(I||e!==s)),activeId:h&&(h===(null==E?void 0:E.id)||!I&&h===s)?null:h,clearRequests:k,visible:null!==h&&"terminal"===W&&null===E&&(!s||I),onForeignInputActivity:()=>eK(e=>e+1)}),E&&(0,n.jsx)(d,{terminal:E,client:o,onClose:()=>{T(!0),A(null),V("terminal")}},(0,ey.x3)(E)),E||"terminal"!==W||h&&(!s||I)?E?null:"pty-list"===W?(0,n.jsxs)("div",{className:"h-full overflow-auto p-3","aria-label":"데몬 PTY 목록",children:[(0,n.jsxs)("label",{className:"mb-3 flex items-center gap-2 text-sm",children:[(0,n.jsx)("input",{type:"checkbox",checked:e_.includeAll,onChange:e=>G(e.target.checked)}),"다른 인스턴스도 보기"]}),e_.scopeSummary&&(0,n.jsx)("p",{className:"mb-3 text-xs text-muted-foreground","aria-label":"PTY 목록 범위 요약",children:e_.scopeSummary}),(null==eo?void 0:eo.kind)==="ambiguous"&&(0,n.jsxs)("p",{className:"mb-3 text-xs text-amber-500",role:"status","aria-label":"URL PTY 선택 상태",children:["주소의 PTY ",s,"가 ",eo.candidates.length,"개 행과 맞아 선택하지 않았습니다."]}),(null==eo?void 0:eo.kind)==="list-unavailable"&&(0,n.jsxs)("p",{className:"mb-3 text-xs text-rose-500",role:"status","aria-label":"URL PTY 선택 상태",children:["PTY 목록을 읽지 못해 주소의 PTY ",s,"를 확인할 수 없습니다. 목록이 비었다는 뜻이 \xab아닙니다\xbb."]}),(null==eo?void 0:eo.kind)==="not-found"&&(0,n.jsxs)("p",{className:"mb-3 text-xs text-rose-500",role:"status","aria-label":"URL PTY 선택 상태",children:["주소의 PTY ",s,"를 찾지 못했습니다 (",eo.reason,")."]}),(null==(t=e_.rows.find(e=>e.view))||null==(e=t.view)?void 0:e.visible)&&(0,n.jsx)("div",{className:"mb-3 flex gap-2","aria-label":"PTY 화면 보기",children:e_.rows.find(e=>e.view).view.modes.map(e=>(0,n.jsx)("button",{type:"button","aria-pressed":e.selected,onClick:()=>eO(e.mode),className:"rounded px-2 py-1 text-xs ".concat(e.selected?"bg-emerald-700 text-white":"bg-zinc-800 text-zinc-300 hover:bg-zinc-700"),children:e.label},e.mode))}),"loading"===ea?(0,n.jsx)("p",{className:"text-sm text-muted-foreground",children:"PTY 목록을 불러오는 중…"}):"error"===ea?(0,n.jsx)("p",{className:"text-sm text-rose-500",children:"PTY 목록을 불러오지 못했습니다."}):0===J.length?(0,n.jsx)("p",{className:"text-sm text-muted-foreground",children:"데몬이 아는 PTY가 없습니다."}):(0,n.jsx)("ul",{className:"space-y-2",children:e_.rows.map(e=>{let{terminal:t}=e,r=function(e){var t,r,n;let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Date.now(),l=e.name||e.id,s=function(e,t,r){let n=[e,t].filter(Boolean).join("/")||r;if(!n||!e||n.length<=32)return n&&ej(n);if(!t)return e.length<=32?e:"…".concat(e.slice(-31));let a=32-e.length-2;return a<=0?e.length<=32?e:"…".concat(e.slice(-31)):"".concat(e,"/…").concat(t.slice(-a))}(e.treeName,e.worktreeName,e.workdir),i=function(e){var t;if(!(null==e?void 0:e.name)&&!(null==e?void 0:e.dbPath))return null;let r=[e.name&&ej(e.name),e.dbPath&&((t=e.dbPath).length<=32?t:"".concat(t.slice(0,31),"…"))].filter(e=>!!e);return"세션: ".concat(r.join(" \xb7 "))}(e.sourceRoot),o=eN(e.startedAt,a),c=void 0===e.lastControlAt?null:eN(e.lastControlAt,a);return{title:l,details:[...l===e.id?[]:[e.id],...e.status?["상태: ".concat(e.status)]:[],...e.kind?["종류: ".concat(e.kind)]:[],...e.nickname?["별명: ".concat(ej(e.nickname))]:[],...s?["위치: ".concat(s)]:[],e.alive?"생존: 실행 중":0===e.exitCode?"종료: 정상 종료 (exit 0)":"number"==typeof e.exitCode?"종료: 비정상 종료 (exit ".concat(e.exitCode,")"):"종료: 종료 코드 미상",function(e){if("direct-human"===e.terminalOriginCategory)return"출처: 사람";if("elanous"===e.terminalOriginCategory)return"출처: elanous";if("external-tool"===e.terminalOriginCategory)return e.externalToolName?"출처: 외부 도구 \xb7 ".concat(ej(e.externalToolName)):"출처: 외부 도구";let t=e.terminalOriginReason?" \xb7 ".concat(ej(e.terminalOriginReason)):"";return"출처: 이 행에서는 알 수 없음".concat(t)}(e),...e.controller?["통제: ".concat(ej(e.controller))]:[],"write"===(t=e.accessMode)?"접근: 쓰기":"read"===t?"접근: 읽기":"auto"===t?"접근: 자동":"접근: 이 행에서는 알 수 없음","running"===(r=e.ownerRunUsage)?"소유 런: 실행 중":"terminated-live-owner"===r?"소유 런: 종료됐지만 터미널 유지":"no-run-id"===r?"소유 런: 소유 런 정보 없음":"소유 런: 이 행에서는 알 수 없음",...e.instance?["우주: ".concat(ej(e.instance))]:[],...e.runId?["런: ".concat((n=e.runId).length<=8?n:"".concat(n.slice(0,8),"…"))]:[],...i?[i]:[],...o?["시작: ".concat(o)]:[],"마지막 제어: ".concat(null!=c?c:"이 행에서는 알 수 없음")]}}(t),a=er.get(t.id);return(0,n.jsxs)("li",{className:"rounded border p-2 text-sm ".concat(e.selected?"border-emerald-500":"border-border"),children:[(0,n.jsxs)("button",{type:"button",className:"w-full text-left","aria-pressed":e.selected,onClick:()=>eQ(t,!0),children:[(0,n.jsx)("p",{className:"font-medium",children:r.title}),r.details.map((e,r)=>(0,n.jsx)("p",{className:0===r?"font-mono text-xs text-muted-foreground":"text-xs text-muted-foreground",children:e},"".concat(t.id,"-").concat(e))),a&&(0,n.jsxs)("p",{className:"mt-1 text-xs text-muted-foreground","aria-label":"현재 활동: ".concat("complete"===a.status?"완료":"진행 중"),children:["complete"===a.status?"완료":"진행 중",": ",a.line,a.hasMissingFrames?" \xb7 일부 진행 프레임 누락":""]})]}),(0,n.jsx)("button",{type:"button",className:"mt-2 rounded bg-zinc-800 px-2 py-1 text-xs text-zinc-100 hover:bg-zinc-700",onClick:()=>{eH(t)},children:"이름 바꾸기"}),e.selected&&eB&&(0,n.jsxs)("section",{className:"mt-2 rounded bg-zinc-900 p-2 text-xs","aria-label":"선택 PTY 계보",children:[(0,n.jsx)("p",{className:"font-medium",children:"계보"}),"loading"===eB.kind&&(0,n.jsx)("p",{className:"text-muted-foreground",children:"계보를 불러오는 중…"}),"error"===eB.kind&&(0,n.jsx)("p",{className:"text-rose-400",children:"계보를 불러오지 못했습니다."}),"empty"===eB.kind&&(0,n.jsx)("p",{className:"text-muted-foreground",children:"연결된 다른 화면이 없습니다."}),eB.unreadablePayloadsSummary&&(0,n.jsx)("p",{className:"text-muted-foreground",children:eB.unreadablePayloadsSummary}),eB.groups.map(e=>(0,n.jsxs)("div",{className:"mt-2",children:[(0,n.jsxs)("p",{className:"font-mono",children:["묶음: ",e.joinedBy," \xb7 ",e.key]}),(0,n.jsx)("ul",{className:"mt-1 space-y-1",children:e.rows.map(e=>(0,n.jsxs)("li",{className:e.selected?"rounded bg-emerald-900 px-1 text-emerald-100":"",children:[e.selected?"현재 선택 \xb7 ":"",e.ptyId," \xb7 ",e.kind," \xb7 ",e.instance," \xb7 ",(0,ey.cl)(e.alive,e.closed)," \xb7 시작 ",(0,ey.OZ)(e.startedAt)]},e.ptyId))})]},"".concat(e.joinedBy,"-").concat(e.key)))]}),e.view&&(0,n.jsxs)("div",{className:"mt-2",children:[e.view.display.frameInfo&&(0,n.jsx)("p",{className:"mb-1 font-mono text-xs text-muted-foreground","aria-label":"렌더 화면 정보",children:e.view.display.frameInfo}),e.view.display.frameMetadata&&(0,n.jsxs)("p",{className:"mb-1 text-xs text-muted-foreground","aria-label":"렌더 프레임 메타데이터",children:["관측: ",e.view.display.frameMetadata.frameAt," \xb7 출처: ",e.view.display.frameMetadata.frameSource]}),(0,n.jsx)("pre",{className:"whitespace-pre-wrap rounded bg-zinc-950 p-2 text-xs ".concat("error"===e.view.display.kind?"text-rose-400":"text-zinc-100"),children:e.view.display.text})]})]},(0,ey.x3)(t))})})]}):"observe"===W?(0,n.jsx)(S,{sessionId:u},u):null:(0,n.jsxs)("div",{className:"flex h-full flex-col items-center justify-center gap-2 text-sm text-muted-foreground",role:"status","aria-live":"polite",children:[(null==eo?void 0:eo.kind)==="list-unavailable"&&(0,n.jsxs)("p",{className:"text-xs text-rose-500","aria-label":"URL PTY 선택 상태",children:["PTY 목록을 읽지 못해 주소의 PTY ",s,"를 확인할 수 없습니다. 목록이 비었다는 뜻이 \xab아닙니다\xbb."]}),(0,n.jsx)("span",{children:$.placeholder})]})]}),h&&!eV&&"terminal"===W&&!E&&(!s||I)&&(0,n.jsx)(ed,{ref:e8,terminalId:h,open:eG,onTabIntent:e4,voice:to})]})}},50738:(e,t,r)=>{r.d(t,{Er:()=>a,cj:()=>c,dc:()=>s,yR:()=>o});let n=/^(oauth\.|harness\.decision|llm\.router)/;function a(e){let t=[],r=e=>{"string"==typeof e&&e.trim()&&!t.includes(e.trim())&&t.push(e.trim())};for(let t of e){var a;let e=null!=(a=t.data)?a:{};if(t.category.startsWith("oauth.")){for(let t of["from","to","name","account"])r(e[t]);if(Array.isArray(e.usage))for(let t of e.usage)r(null==t?void 0:t.name);continue}if(n.test(t.category))for(let t of(r(e.account),["what","why","reason"])){let n=e[t];if("string"==typeof n)for(let e of n.matchAll(/계정\s+([A-Za-z0-9][\w.-]*)/g))r(e[1])}}return t}function l(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function s(e){let t=new Map(e.map((e,t)=>[e,"account-".concat(t+1)])),r=e.length?RegExp("(^|[^\\w-])(".concat(e.map(l).sort((e,t)=>t.length-e.length).join("|"),")(?![\\w-])"),"g"):null,n=new Map;return(e,a)=>{let l=e.replace(/\b[a-z0-9-]+\.tail[0-9a-f]+\.ts\.net\b/gi,"tailnet-host").replace(/\bmsb\d+\b/gi,e=>(e=>{let t=e.toLowerCase();n.has(t)||n.set(t,"remote-".concat(n.size+1));let r=n.get(t);return e===e.toUpperCase()?r.toUpperCase():r})(e)).replace(/\bmbp\b/gi,e=>e===e.toUpperCase()?"LOCAL":"local").replace(/\/Users\/[^/\s"']+/g,"~").replace(/(크레딧|credits?|💳)(\s*[:=]?\s*)[\d][\d,.]*/gi,"$1$2•••").replace(/[\d][\d,.]*(\s*)(크레딧|credits?)/gi,"•••$1$2").replace(/\$\s?[\d][\d,.]*/g,"$•••").replace(/(잔량?|remaining|left)(\s*[:=]?\s*)(?:[A-Za-z0-9][\w.-]*\s+)?\d+(?:\.\d+)?\s?%/gi,"$1$2•••");return a&&r&&(l=l.replace(r,(e,r,n)=>{var a;return"".concat(r).concat(null!=(a=t.get(n))?a:"account")})),l}}function i(e,t){if("string"==typeof e)return t(e);if(Array.isArray(e))return e.map(e=>i(e,t));if(e&&"object"==typeof e){let r={};for(let[n,a]of Object.entries(e))"apiEquivalentUsd"===n||"usd"===n||/credit(s|Balance)?$/i.test(n)||(r[n]=i(a,t));return r}return e}function o(e){let t=s(a(e));return e.map(e=>{let r=n.test(e.category);return{...e,event:t(e.event,!1),data:e.data?i(e.data,e=>t(e,r)):e.data}})}function c(e,t){let r=s(t);return i(e,e=>r(e,!0))}},89174:(e,t,r)=>{r.d(t,{bu:()=>s});let n={ctrl:!1,alt:!1};function a(e){if(!e.ctrl&&!e.alt)return null;let t=0;return e.alt&&(t+=2),e.ctrl&&(t+=4),1+t}let l={up:"A",down:"B",right:"C",left:"D"};function s(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:n;switch(e){case"esc":return t.alt?"\x1b\x1b":"\x1b";case"tab":return t.alt?"\x1b ":" ";case"pageup":case"pagedown":{let r="pageup"===e?5:6,n=a(t);return null===n?"\x1b[".concat(r,"~"):"\x1b[".concat(r,";").concat(n,"~")}case"up":case"down":case"left":case"right":{let r=l[e],n=a(t);return null===n?"\x1b[".concat(r):"\x1b[1;".concat(n).concat(r)}}}}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8725],{88725:(e,t,r)=>{function a(e,t){let r=Error(t);return r.code=e,r}async function n(e){if(!e.type.startsWith("video/"))throw a("unsupported","not a video file: ".concat(e.type||"(unknown)"));let t=URL.createObjectURL(e),r=document.createElement("video");r.src=t,r.muted=!0,r.preload="auto",r.playsInline=!0;try{var n;await new Promise((e,t)=>{r.addEventListener("error",()=>t(a("decode","video decode error")),{once:!0}),r.addEventListener("loadedmetadata",()=>e(),{once:!0})});let t=(n=r.duration,!Number.isFinite(n)||n<=0?0:n<2?Math.max(.05,.1*n):1);await new Promise((e,n)=>{r.addEventListener("error",()=>n(a("seek","video seek error")),{once:!0}),r.addEventListener("seeked",()=>e(),{once:!0});try{r.currentTime=t}catch(e){n(a("seek",e instanceof Error?e.message:String(e)))}});let o=r.videoWidth,i=r.videoHeight;if(0===o||0===i)throw a("no-frame","video has zero dimensions");let d=document.createElement("canvas");d.width=o,d.height=i;let c=d.getContext("2d");if(!c)throw a("decode","canvas 2d context unavailable");return c.drawImage(r,0,0,o,i),{frameDataUrl:d.toDataURL("image/png"),durationSec:Number.isFinite(r.duration)?r.duration:0,widthPx:o,heightPx:i,mimeType:e.type}}finally{URL.revokeObjectURL(t),r.removeAttribute("src");try{r.load()}catch(e){}}}r.d(t,{extractKeyFrame:()=>n})}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8734],{3493:(t,n,e)=>{e.d(n,{A:()=>i});var r=e(11258);function i(t){return"string"==typeof t?new r.LN([[document.querySelector(t)]],[document.documentElement]):new r.LN([[t]],r.zr)}},10612:(t,n,e)=>{e.d(n,{Ay:()=>a,GK:()=>o,Rw:()=>i,vr:()=>r});let r={passive:!1},i={capture:!0,passive:!1};function o(t){t.stopImmediatePropagation()}function a(t){t.preventDefault(),t.stopImmediatePropagation()}},11258:(t,n,e)=>{e.d(n,{LN:()=>Y,Ay:()=>D,zr:()=>R});var r=e(43176),i=e(58479),o=e(22197),a=Array.prototype.find;function u(){return this.firstElementChild}var s=Array.prototype.filter;function l(){return Array.from(this.children)}function c(t){return Array(t.length)}function f(t,n){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=n}function h(t,n,e,r,i,o){for(var a,u=0,s=n.length,l=o.length;u<l;++u)(a=n[u])?(a.__data__=o[u],r[u]=a):e[u]=new f(t,o[u]);for(;u<s;++u)(a=n[u])&&(i[u]=a)}function p(t,n,e,r,i,o,a){var u,s,l,c=new Map,h=n.length,p=o.length,d=Array(h);for(u=0;u<h;++u)(s=n[u])&&(d[u]=l=a.call(s,s.__data__,u,n)+"",c.has(l)?i[u]=s:c.set(l,s));for(u=0;u<p;++u)l=a.call(t,o[u],u,o)+"",(s=c.get(l))?(r[u]=s,s.__data__=o[u],c.delete(l)):e[u]=new f(t,o[u]);for(u=0;u<h;++u)(s=n[u])&&c.get(d[u])===s&&(i[u]=s)}function d(t){return t.__data__}function v(t,n){return t<n?-1:t>n?1:t>=n?0:NaN}f.prototype={constructor:f,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,n){return this._parent.insertBefore(t,n)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}};var y=e(74524),m=e(42179);function g(t){return t.trim().split(/^|\s+/)}function _(t){return t.classList||new w(t)}function w(t){this._node=t,this._names=g(t.getAttribute("class")||"")}function x(t,n){for(var e=_(t),r=-1,i=n.length;++r<i;)e.add(n[r])}function b(t,n){for(var e=_(t),r=-1,i=n.length;++r<i;)e.remove(n[r])}function A(){this.textContent=""}function k(){this.innerHTML=""}function M(){this.nextSibling&&this.parentNode.appendChild(this)}function N(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}w.prototype={add:function(t){0>this._names.indexOf(t)&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var n=this._names.indexOf(t);n>=0&&(this._names.splice(n,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};var E=e(80065);function z(t){var n=(0,y.A)(t);return(n.local?function(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}:function(t){return function(){var n=this.ownerDocument,e=this.namespaceURI;return e===E.g&&n.documentElement.namespaceURI===E.g?n.createElement(t):n.createElementNS(e,t)}})(n)}function $(){return null}function S(){var t=this.parentNode;t&&t.removeChild(this)}function T(){var t=this.cloneNode(!1),n=this.parentNode;return n?n.insertBefore(t,this.nextSibling):t}function C(){var t=this.cloneNode(!0),n=this.parentNode;return n?n.insertBefore(t,this.nextSibling):t}function P(t){return function(){var n=this.__on;if(n){for(var e,r=0,i=-1,o=n.length;r<o;++r)(e=n[r],t.type&&e.type!==t.type||e.name!==t.name)?n[++i]=e:this.removeEventListener(e.type,e.listener,e.options);++i?n.length=i:delete this.__on}}}function X(t,n,e){return function(){var r,i=this.__on,o=function(t){n.call(this,t,this.__data__)};if(i){for(var a=0,u=i.length;a<u;++a)if((r=i[a]).type===t.type&&r.name===t.name){this.removeEventListener(r.type,r.listener,r.options),this.addEventListener(r.type,r.listener=o,r.options=e),r.value=n;return}}this.addEventListener(t.type,o,e),r={type:t.type,name:t.name,value:n,listener:o,options:e},i?i.push(r):this.__on=[r]}}var j=e(77397);function q(t,n,e){var r=(0,j.A)(t),i=r.CustomEvent;"function"==typeof i?i=new i(n,e):(i=r.document.createEvent("Event"),e?(i.initEvent(n,e.bubbles,e.cancelable),i.detail=e.detail):i.initEvent(n,!1,!1)),t.dispatchEvent(i)}var R=[null];function Y(t,n){this._groups=t,this._parents=n}function O(){return new Y([[document.documentElement]],R)}Y.prototype=O.prototype={constructor:Y,select:function(t){"function"!=typeof t&&(t=(0,r.A)(t));for(var n=this._groups,e=n.length,i=Array(e),o=0;o<e;++o)for(var a,u,s=n[o],l=s.length,c=i[o]=Array(l),f=0;f<l;++f)(a=s[f])&&(u=t.call(a,a.__data__,f,s))&&("__data__"in a&&(u.__data__=a.__data__),c[f]=u);return new Y(i,this._parents)},selectAll:function(t){if("function"==typeof t){var n;n=t,t=function(){var t;return t=n.apply(this,arguments),null==t?[]:Array.isArray(t)?t:Array.from(t)}}else t=(0,i.A)(t);for(var e=this._groups,r=e.length,o=[],a=[],u=0;u<r;++u)for(var s,l=e[u],c=l.length,f=0;f<c;++f)(s=l[f])&&(o.push(t.call(s,s.__data__,f,l)),a.push(s));return new Y(o,a)},selectChild:function(t){var n;return this.select(null==t?u:(n="function"==typeof t?t:(0,o.j)(t),function(){return a.call(this.children,n)}))},selectChildren:function(t){var n;return this.selectAll(null==t?l:(n="function"==typeof t?t:(0,o.j)(t),function(){return s.call(this.children,n)}))},filter:function(t){"function"!=typeof t&&(t=(0,o.A)(t));for(var n=this._groups,e=n.length,r=Array(e),i=0;i<e;++i)for(var a,u=n[i],s=u.length,l=r[i]=[],c=0;c<s;++c)(a=u[c])&&t.call(a,a.__data__,c,u)&&l.push(a);return new Y(r,this._parents)},data:function(t,n){if(!arguments.length)return Array.from(this,d);var e=n?p:h,r=this._parents,i=this._groups;"function"!=typeof t&&(x=t,t=function(){return x});for(var o=i.length,a=Array(o),u=Array(o),s=Array(o),l=0;l<o;++l){var c=r[l],f=i[l],v=f.length,y="object"==typeof(w=t.call(c,c&&c.__data__,l,r))&&"length"in w?w:Array.from(w),m=y.length,g=u[l]=Array(m),_=a[l]=Array(m);e(c,f,g,_,s[l]=Array(v),y,n);for(var w,x,b,A,k=0,M=0;k<m;++k)if(b=g[k]){for(k>=M&&(M=k+1);!(A=_[M])&&++M<m;);b._next=A||null}}return(a=new Y(a,r))._enter=u,a._exit=s,a},enter:function(){return new Y(this._enter||this._groups.map(c),this._parents)},exit:function(){return new Y(this._exit||this._groups.map(c),this._parents)},join:function(t,n,e){var r=this.enter(),i=this,o=this.exit();return"function"==typeof t?(r=t(r))&&(r=r.selection()):r=r.append(t+""),null!=n&&(i=n(i))&&(i=i.selection()),null==e?o.remove():e(o),r&&i?r.merge(i).order():i},merge:function(t){for(var n=t.selection?t.selection():t,e=this._groups,r=n._groups,i=e.length,o=r.length,a=Math.min(i,o),u=Array(i),s=0;s<a;++s)for(var l,c=e[s],f=r[s],h=c.length,p=u[s]=Array(h),d=0;d<h;++d)(l=c[d]||f[d])&&(p[d]=l);for(;s<i;++s)u[s]=e[s];return new Y(u,this._parents)},selection:function(){return this},order:function(){for(var t=this._groups,n=-1,e=t.length;++n<e;)for(var r,i=t[n],o=i.length-1,a=i[o];--o>=0;)(r=i[o])&&(a&&4^r.compareDocumentPosition(a)&&a.parentNode.insertBefore(r,a),a=r);return this},sort:function(t){function n(n,e){return n&&e?t(n.__data__,e.__data__):!n-!e}t||(t=v);for(var e=this._groups,r=e.length,i=Array(r),o=0;o<r;++o){for(var a,u=e[o],s=u.length,l=i[o]=Array(s),c=0;c<s;++c)(a=u[c])&&(l[c]=a);l.sort(n)}return new Y(i,this._parents).order()},call:function(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this},nodes:function(){return Array.from(this)},node:function(){for(var t=this._groups,n=0,e=t.length;n<e;++n)for(var r=t[n],i=0,o=r.length;i<o;++i){var a=r[i];if(a)return a}return null},size:function(){let t=0;for(let n of this)++t;return t},empty:function(){return!this.node()},each:function(t){for(var n=this._groups,e=0,r=n.length;e<r;++e)for(var i,o=n[e],a=0,u=o.length;a<u;++a)(i=o[a])&&t.call(i,i.__data__,a,o);return this},attr:function(t,n){var e=(0,y.A)(t);if(arguments.length<2){var r=this.node();return e.local?r.getAttributeNS(e.space,e.local):r.getAttribute(e)}return this.each((null==n?e.local?function(t){return function(){this.removeAttributeNS(t.space,t.local)}}:function(t){return function(){this.removeAttribute(t)}}:"function"==typeof n?e.local?function(t,n){return function(){var e=n.apply(this,arguments);null==e?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,e)}}:function(t,n){return function(){var e=n.apply(this,arguments);null==e?this.removeAttribute(t):this.setAttribute(t,e)}}:e.local?function(t,n){return function(){this.setAttributeNS(t.space,t.local,n)}}:function(t,n){return function(){this.setAttribute(t,n)}})(e,n))},style:m.A,property:function(t,n){return arguments.length>1?this.each((null==n?function(t){return function(){delete this[t]}}:"function"==typeof n?function(t,n){return function(){var e=n.apply(this,arguments);null==e?delete this[t]:this[t]=e}}:function(t,n){return function(){this[t]=n}})(t,n)):this.node()[t]},classed:function(t,n){var e=g(t+"");if(arguments.length<2){for(var r=_(this.node()),i=-1,o=e.length;++i<o;)if(!r.contains(e[i]))return!1;return!0}return this.each(("function"==typeof n?function(t,n){return function(){(n.apply(this,arguments)?x:b)(this,t)}}:n?function(t){return function(){x(this,t)}}:function(t){return function(){b(this,t)}})(e,n))},text:function(t){return arguments.length?this.each(null==t?A:("function"==typeof t?function(t){return function(){var n=t.apply(this,arguments);this.textContent=null==n?"":n}}:function(t){return function(){this.textContent=t}})(t)):this.node().textContent},html:function(t){return arguments.length?this.each(null==t?k:("function"==typeof t?function(t){return function(){var n=t.apply(this,arguments);this.innerHTML=null==n?"":n}}:function(t){return function(){this.innerHTML=t}})(t)):this.node().innerHTML},raise:function(){return this.each(M)},lower:function(){return this.each(N)},append:function(t){var n="function"==typeof t?t:z(t);return this.select(function(){return this.appendChild(n.apply(this,arguments))})},insert:function(t,n){var e="function"==typeof t?t:z(t),i=null==n?$:"function"==typeof n?n:(0,r.A)(n);return this.select(function(){return this.insertBefore(e.apply(this,arguments),i.apply(this,arguments)||null)})},remove:function(){return this.each(S)},clone:function(t){return this.select(t?C:T)},datum:function(t){return arguments.length?this.property("__data__",t):this.node().__data__},on:function(t,n,e){var r,i,o=(t+"").trim().split(/^|\s+/).map(function(t){var n="",e=t.indexOf(".");return e>=0&&(n=t.slice(e+1),t=t.slice(0,e)),{type:t,name:n}}),a=o.length;if(arguments.length<2){var u=this.node().__on;if(u){for(var s,l=0,c=u.length;l<c;++l)for(r=0,s=u[l];r<a;++r)if((i=o[r]).type===s.type&&i.name===s.name)return s.value}return}for(r=0,u=n?X:P;r<a;++r)this.each(u(o[r],n,e));return this},dispatch:function(t,n){return this.each(("function"==typeof n?function(t,n){return function(){return q(this,t,n.apply(this,arguments))}}:function(t,n){return function(){return q(this,t,n)}})(t,n))},[Symbol.iterator]:function*(){for(var t=this._groups,n=0,e=t.length;n<e;++n)for(var r,i=t[n],o=0,a=i.length;o<a;++o)(r=i[o])&&(yield r)}};let D=O},14821:(t,n,e)=>{function r(t){return((t=Math.exp(t))+1/t)/2}e.d(n,{A:()=>i});let i=function t(n,e,i){function o(t,o){var a,u,s=t[0],l=t[1],c=t[2],f=o[0],h=o[1],p=o[2],d=f-s,v=h-l,y=d*d+v*v;if(y<1e-12)u=Math.log(p/c)/n,a=function(t){return[s+t*d,l+t*v,c*Math.exp(n*t*u)]};else{var m=Math.sqrt(y),g=(p*p-c*c+i*y)/(2*c*e*m),_=(p*p-c*c-i*y)/(2*p*e*m),w=Math.log(Math.sqrt(g*g+1)-g);u=(Math.log(Math.sqrt(_*_+1)-_)-w)/n,a=function(t){var i,o,a=t*u,f=r(w),h=c/(e*m)*(f*(((i=Math.exp(2*(i=n*a+w)))-1)/(i+1))-((o=Math.exp(o=w))-1/o)/2);return[s+h*d,l+h*v,c*f/r(n*a+w)]}}return a.duration=1e3*u*n/Math.SQRT2,a}return o.rho=function(n){var e=Math.max(.001,+n),r=e*e;return t(e,r,r*r)},o}(Math.SQRT2,2,4)},19847:(t,n,e)=>{e.d(n,{A:()=>r});function r(t,n){return t*=1,n*=1,function(e){return t*(1-e)+n*e}}},19965:(t,n,e)=>{e.d(n,{A:()=>u});var r={value:()=>{}};function i(){for(var t,n=0,e=arguments.length,r={};n<e;++n){if(!(t=arguments[n]+"")||t in r||/[\s.]/.test(t))throw Error("illegal type: "+t);r[t]=[]}return new o(r)}function o(t){this._=t}function a(t,n,e){for(var i=0,o=t.length;i<o;++i)if(t[i].name===n){t[i]=r,t=t.slice(0,i).concat(t.slice(i+1));break}return null!=e&&t.push({name:n,value:e}),t}o.prototype=i.prototype={constructor:o,on:function(t,n){var e,r=this._,i=(t+"").trim().split(/^|\s+/).map(function(t){var n="",e=t.indexOf(".");if(e>=0&&(n=t.slice(e+1),t=t.slice(0,e)),t&&!r.hasOwnProperty(t))throw Error("unknown type: "+t);return{type:t,name:n}}),o=-1,u=i.length;if(arguments.length<2){for(;++o<u;)if((e=(t=i[o]).type)&&(e=function(t,n){for(var e,r=0,i=t.length;r<i;++r)if((e=t[r]).name===n)return e.value}(r[e],t.name)))return e;return}if(null!=n&&"function"!=typeof n)throw Error("invalid callback: "+n);for(;++o<u;)if(e=(t=i[o]).type)r[e]=a(r[e],t.name,n);else if(null==n)for(e in r)r[e]=a(r[e],t.name,null);return this},copy:function(){var t={},n=this._;for(var e in n)t[e]=n[e].slice();return new o(t)},call:function(t,n){if((e=arguments.length-2)>0)for(var e,r,i=Array(e),o=0;o<e;++o)i[o]=arguments[o+2];if(!this._.hasOwnProperty(t))throw Error("unknown type: "+t);for(r=this._[t],o=0,e=r.length;o<e;++o)r[o].value.apply(n,i)},apply:function(t,n,e){if(!this._.hasOwnProperty(t))throw Error("unknown type: "+t);for(var r=this._[t],i=0,o=r.length;i<o;++i)r[i].value.apply(n,e)}};let u=i},22197:(t,n,e)=>{function r(t){return function(){return this.matches(t)}}function i(t){return function(n){return n.matches(t)}}e.d(n,{A:()=>r,j:()=>i})},22973:(t,n,e)=>{e.d(n,{M4:()=>v,O1:()=>y,tB:()=>p});var r,i,o=0,a=0,u=0,s=0,l=0,c=0,f="object"==typeof performance&&performance.now?performance:Date,h="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function p(){return l||(h(d),l=f.now()+c)}function d(){l=0}function v(){this._call=this._time=this._next=null}function y(t,n,e){var r=new v;return r.restart(t,n,e),r}function m(){l=(s=f.now())+c,o=a=0;try{p(),++o;for(var t,n=r;n;)(t=l-n._time)>=0&&n._call.call(void 0,t),n=n._next;--o}finally{o=0,function(){for(var t,n,e=r,o=1/0;e;)e._call?(o>e._time&&(o=e._time),t=e,e=e._next):(n=e._next,e._next=null,e=t?t._next=n:r=n);i=t,_(o)}(),l=0}}function g(){var t=f.now(),n=t-s;n>1e3&&(c-=n,s=t)}function _(t){!o&&(a&&(a=clearTimeout(a)),t-l>24?(t<1/0&&(a=setTimeout(m,t-f.now()-c)),u&&(u=clearInterval(u))):(u||(s=f.now(),u=setInterval(g,1e3)),o=1,h(m)))}v.prototype=y.prototype={constructor:v,restart:function(t,n,e){if("function"!=typeof t)throw TypeError("callback is not a function");e=(null==e?p():+e)+(null==n?0:+n),this._next||i===this||(i?i._next=this:r=this,i=this),this._call=t,this._time=e,_()},stop:function(){this._call&&(this._call=null,this._time=1/0,_())}}},28304:(t,n,e)=>{e.d(n,{s_:()=>b,GS:()=>h,_V:()=>p});var r=e(19965),i=e(74222),o=e(14821),a=e(3493),u=e(63992),s=e(44452);let l=t=>()=>t;function c(t,{sourceEvent:n,target:e,transform:r,dispatch:i}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:n,enumerable:!0,configurable:!0},target:{value:e,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:i}})}function f(t,n,e){this.k=t,this.x=n,this.y=e}f.prototype={constructor:f,scale:function(t){return 1===t?this:new f(this.k*t,this.x,this.y)},translate:function(t,n){return 0===t&0===n?this:new f(this.k,this.x+this.k*t,this.y+this.k*n)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var h=new f(1,0,0);function p(t){for(;!t.__zoom;)if(!(t=t.parentNode))return h;return t.__zoom}function d(t){t.stopImmediatePropagation()}function v(t){t.preventDefault(),t.stopImmediatePropagation()}function y(t){return(!t.ctrlKey||"wheel"===t.type)&&!t.button}function m(){var t=this;return t instanceof SVGElement?(t=t.ownerSVGElement||t).hasAttribute("viewBox")?[[(t=t.viewBox.baseVal).x,t.y],[t.x+t.width,t.y+t.height]]:[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]:[[0,0],[t.clientWidth,t.clientHeight]]}function g(){return this.__zoom||h}function _(t){return-t.deltaY*(1===t.deltaMode?.05:t.deltaMode?1:.002)*(t.ctrlKey?10:1)}function w(){return navigator.maxTouchPoints||"ontouchstart"in this}function x(t,n,e){var r=t.invertX(n[0][0])-e[0][0],i=t.invertX(n[1][0])-e[1][0],o=t.invertY(n[0][1])-e[0][1],a=t.invertY(n[1][1])-e[1][1];return t.translate(i>r?(r+i)/2:Math.min(0,r)||Math.max(0,i),a>o?(o+a)/2:Math.min(0,o)||Math.max(0,a))}function b(){var t,n,e,p=y,b=m,A=x,k=_,M=w,N=[0,1/0],E=[[-1/0,-1/0],[1/0,1/0]],z=250,$=o.A,S=(0,r.A)("start","zoom","end"),T=0,C=10;function P(t){t.property("__zoom",g).on("wheel.zoom",D,{passive:!1}).on("mousedown.zoom",B).on("dblclick.zoom",V).filter(M).on("touchstart.zoom",I).on("touchmove.zoom",L).on("touchend.zoom touchcancel.zoom",G).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function X(t,n){return(n=Math.max(N[0],Math.min(N[1],n)))===t.k?t:new f(n,t.x,t.y)}function j(t,n,e){var r=n[0]-e[0]*t.k,i=n[1]-e[1]*t.k;return r===t.x&&i===t.y?t:new f(t.k,r,i)}function q(t){return[(+t[0][0]+ +t[1][0])/2,(+t[0][1]+ +t[1][1])/2]}function R(t,n,e,r){t.on("start.zoom",function(){Y(this,arguments).event(r).start()}).on("interrupt.zoom end.zoom",function(){Y(this,arguments).event(r).end()}).tween("zoom",function(){var t=arguments,i=Y(this,t).event(r),o=b.apply(this,t),a=null==e?q(o):"function"==typeof e?e.apply(this,t):e,u=Math.max(o[1][0]-o[0][0],o[1][1]-o[0][1]),s=this.__zoom,l="function"==typeof n?n.apply(this,t):n,c=$(s.invert(a).concat(u/s.k),l.invert(a).concat(u/l.k));return function(t){if(1===t)t=l;else{var n=c(t),e=u/n[2];t=new f(e,a[0]-n[0]*e,a[1]-n[1]*e)}i.zoom(null,t)}})}function Y(t,n,e){return!e&&t.__zooming||new O(t,n)}function O(t,n){this.that=t,this.args=n,this.active=0,this.sourceEvent=null,this.extent=b.apply(t,n),this.taps=0}function D(t,...n){if(p.apply(this,arguments)){var e=Y(this,n).event(t),r=this.__zoom,i=Math.max(N[0],Math.min(N[1],r.k*Math.pow(2,k.apply(this,arguments)))),o=(0,u.A)(t);if(e.wheel)(e.mouse[0][0]!==o[0]||e.mouse[0][1]!==o[1])&&(e.mouse[1]=r.invert(e.mouse[0]=o)),clearTimeout(e.wheel);else{if(r.k===i)return;e.mouse=[o,r.invert(o)],(0,s.G)(this),e.start()}v(t),e.wheel=setTimeout(function(){e.wheel=null,e.end()},150),e.zoom("mouse",A(j(X(r,i),e.mouse[0],e.mouse[1]),e.extent,E))}}function B(t,...n){if(!e&&p.apply(this,arguments)){var r=t.currentTarget,o=Y(this,n,!0).event(t),l=(0,a.A)(t.view).on("mousemove.zoom",function(t){if(v(t),!o.moved){var n=t.clientX-f,e=t.clientY-h;o.moved=n*n+e*e>T}o.event(t).zoom("mouse",A(j(o.that.__zoom,o.mouse[0]=(0,u.A)(t,r),o.mouse[1]),o.extent,E))},!0).on("mouseup.zoom",function(t){l.on("mousemove.zoom mouseup.zoom",null),(0,i.y)(t.view,o.moved),v(t),o.event(t).end()},!0),c=(0,u.A)(t,r),f=t.clientX,h=t.clientY;(0,i.A)(t.view),d(t),o.mouse=[c,this.__zoom.invert(c)],(0,s.G)(this),o.start()}}function V(t,...n){if(p.apply(this,arguments)){var e=this.__zoom,r=(0,u.A)(t.changedTouches?t.changedTouches[0]:t,this),i=e.invert(r),o=e.k*(t.shiftKey?.5:2),s=A(j(X(e,o),r,i),b.apply(this,n),E);v(t),z>0?(0,a.A)(this).transition().duration(z).call(R,s,r,t):(0,a.A)(this).call(P.transform,s,r,t)}}function I(e,...r){if(p.apply(this,arguments)){var i,o,a,l,c=e.touches,f=c.length,h=Y(this,r,e.changedTouches.length===f).event(e);for(d(e),o=0;o<f;++o)a=c[o],l=[l=(0,u.A)(a,this),this.__zoom.invert(l),a.identifier],h.touch0?h.touch1||h.touch0[2]===l[2]||(h.touch1=l,h.taps=0):(h.touch0=l,i=!0,h.taps=1+!!t);t&&(t=clearTimeout(t)),i&&(h.taps<2&&(n=l[0],t=setTimeout(function(){t=null},500)),(0,s.G)(this),h.start())}}function L(t,...n){if(this.__zooming){var e,r,i,o,a=Y(this,n).event(t),s=t.changedTouches,l=s.length;for(v(t),e=0;e<l;++e)r=s[e],i=(0,u.A)(r,this),a.touch0&&a.touch0[2]===r.identifier?a.touch0[0]=i:a.touch1&&a.touch1[2]===r.identifier&&(a.touch1[0]=i);if(r=a.that.__zoom,a.touch1){var c=a.touch0[0],f=a.touch0[1],h=a.touch1[0],p=a.touch1[1],d=(d=h[0]-c[0])*d+(d=h[1]-c[1])*d,y=(y=p[0]-f[0])*y+(y=p[1]-f[1])*y;r=X(r,Math.sqrt(d/y)),i=[(c[0]+h[0])/2,(c[1]+h[1])/2],o=[(f[0]+p[0])/2,(f[1]+p[1])/2]}else{if(!a.touch0)return;i=a.touch0[0],o=a.touch0[1]}a.zoom("touch",A(j(r,i,o),a.extent,E))}}function G(t,...r){if(this.__zooming){var i,o,s=Y(this,r).event(t),l=t.changedTouches,c=l.length;for(d(t),e&&clearTimeout(e),e=setTimeout(function(){e=null},500),i=0;i<c;++i)o=l[i],s.touch0&&s.touch0[2]===o.identifier?delete s.touch0:s.touch1&&s.touch1[2]===o.identifier&&delete s.touch1;if(s.touch1&&!s.touch0&&(s.touch0=s.touch1,delete s.touch1),s.touch0)s.touch0[1]=this.__zoom.invert(s.touch0[0]);else if(s.end(),2===s.taps&&(o=(0,u.A)(o,this),Math.hypot(n[0]-o[0],n[1]-o[1])<C)){var f=(0,a.A)(this).on("dblclick.zoom");f&&f.apply(this,arguments)}}}return P.transform=function(t,n,e,r){var i=t.selection?t.selection():t;i.property("__zoom",g),t!==i?R(t,n,e,r):i.interrupt().each(function(){Y(this,arguments).event(r).start().zoom(null,"function"==typeof n?n.apply(this,arguments):n).end()})},P.scaleBy=function(t,n,e,r){P.scaleTo(t,function(){var t=this.__zoom.k,e="function"==typeof n?n.apply(this,arguments):n;return t*e},e,r)},P.scaleTo=function(t,n,e,r){P.transform(t,function(){var t=b.apply(this,arguments),r=this.__zoom,i=null==e?q(t):"function"==typeof e?e.apply(this,arguments):e,o=r.invert(i),a="function"==typeof n?n.apply(this,arguments):n;return A(j(X(r,a),i,o),t,E)},e,r)},P.translateBy=function(t,n,e,r){P.transform(t,function(){return A(this.__zoom.translate("function"==typeof n?n.apply(this,arguments):n,"function"==typeof e?e.apply(this,arguments):e),b.apply(this,arguments),E)},null,r)},P.translateTo=function(t,n,e,r,i){P.transform(t,function(){var t=b.apply(this,arguments),i=this.__zoom,o=null==r?q(t):"function"==typeof r?r.apply(this,arguments):r;return A(h.translate(o[0],o[1]).scale(i.k).translate("function"==typeof n?-n.apply(this,arguments):-n,"function"==typeof e?-e.apply(this,arguments):-e),t,E)},r,i)},O.prototype={event:function(t){return t&&(this.sourceEvent=t),this},start:function(){return 1==++this.active&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(t,n){return this.mouse&&"mouse"!==t&&(this.mouse[1]=n.invert(this.mouse[0])),this.touch0&&"touch"!==t&&(this.touch0[1]=n.invert(this.touch0[0])),this.touch1&&"touch"!==t&&(this.touch1[1]=n.invert(this.touch1[0])),this.that.__zoom=n,this.emit("zoom"),this},end:function(){return 0==--this.active&&(delete this.that.__zooming,this.emit("end")),this},emit:function(t){var n=(0,a.A)(this.that).datum();S.call(t,this.that,new c(t,{sourceEvent:this.sourceEvent,target:P,type:t,transform:this.that.__zoom,dispatch:S}),n)}},P.wheelDelta=function(t){return arguments.length?(k="function"==typeof t?t:l(+t),P):k},P.filter=function(t){return arguments.length?(p="function"==typeof t?t:l(!!t),P):p},P.touchable=function(t){return arguments.length?(M="function"==typeof t?t:l(!!t),P):M},P.extent=function(t){return arguments.length?(b="function"==typeof t?t:l([[+t[0][0],+t[0][1]],[+t[1][0],+t[1][1]]]),P):b},P.scaleExtent=function(t){return arguments.length?(N[0]=+t[0],N[1]=+t[1],P):[N[0],N[1]]},P.translateExtent=function(t){return arguments.length?(E[0][0]=+t[0][0],E[1][0]=+t[1][0],E[0][1]=+t[0][1],E[1][1]=+t[1][1],P):[[E[0][0],E[0][1]],[E[1][0],E[1][1]]]},P.constrain=function(t){return arguments.length?(A=t,P):A},P.duration=function(t){return arguments.length?(z=+t,P):z},P.interpolate=function(t){return arguments.length?($=t,P):$},P.on=function(){var t=S.on.apply(S,arguments);return t===S?P:t},P.clickDistance=function(t){return arguments.length?(T=(t*=1)*t,P):Math.sqrt(T)},P.tapDistance=function(t){return arguments.length?(C=+t,P):C},P}p.prototype=f.prototype},42179:(t,n,e)=>{e.d(n,{A:()=>i,j:()=>o});var r=e(77397);function i(t,n,e){return arguments.length>1?this.each((null==n?function(t){return function(){this.style.removeProperty(t)}}:"function"==typeof n?function(t,n,e){return function(){var r=n.apply(this,arguments);null==r?this.style.removeProperty(t):this.style.setProperty(t,r,e)}}:function(t,n,e){return function(){this.style.setProperty(t,n,e)}})(t,n,null==e?"":e)):o(this.node(),t)}function o(t,n){return t.style.getPropertyValue(n)||(0,r.A)(t).getComputedStyle(t,null).getPropertyValue(n)}},43176:(t,n,e)=>{function r(){}function i(t){return null==t?r:function(){return this.querySelector(t)}}e.d(n,{A:()=>i})},44452:(t,n,e)=>{e.d(n,{G:()=>d});var r,i=e(11258),o=e(19965),a=e(22973);function u(t,n,e){var r=new a.M4;return n=null==n?0:+n,r.restart(e=>{r.stop(),t(e+n)},n,e),r}var s=(0,o.A)("start","end","cancel","interrupt"),l=[];function c(t,n,e,r,i,o){var c=t.__transition;if(c){if(e in c)return}else t.__transition={};!function(t,n,e){var r,i=t.__transition;function o(a){var c,f,h,p;if(1!==e.state)return l();for(c in i)if((p=i[c]).name===e.name){if(3===p.state)return u(o);4===p.state?(p.state=6,p.timer.stop(),p.on.call("interrupt",t,t.__data__,p.index,p.group),delete i[c]):+c<n&&(p.state=6,p.timer.stop(),p.on.call("cancel",t,t.__data__,p.index,p.group),delete i[c])}if(u(function(){3===e.state&&(e.state=4,e.timer.restart(s,e.delay,e.time),s(a))}),e.state=2,e.on.call("start",t,t.__data__,e.index,e.group),2===e.state){for(c=0,e.state=3,r=Array(h=e.tween.length),f=-1;c<h;++c)(p=e.tween[c].value.call(t,t.__data__,e.index,e.group))&&(r[++f]=p);r.length=f+1}}function s(n){for(var i=n<e.duration?e.ease.call(null,n/e.duration):(e.timer.restart(l),e.state=5,1),o=-1,a=r.length;++o<a;)r[o].call(t,i);5===e.state&&(e.on.call("end",t,t.__data__,e.index,e.group),l())}function l(){for(var r in e.state=6,e.timer.stop(),delete i[n],i)return;delete t.__transition}i[n]=e,e.timer=(0,a.O1)(function(t){e.state=1,e.timer.restart(o,e.delay,e.time),e.delay<=t&&o(t-e.delay)},0,e.time)}(t,e,{name:n,index:r,group:i,on:s,tween:l,time:o.time,delay:o.delay,duration:o.duration,ease:o.ease,timer:null,state:0})}function f(t,n){var e=p(t,n);if(e.state>0)throw Error("too late; already scheduled");return e}function h(t,n){var e=p(t,n);if(e.state>3)throw Error("too late; already running");return e}function p(t,n){var e=t.__transition;if(!e||!(e=e[n]))throw Error("transition not found");return e}function d(t,n){var e,r,i,o=t.__transition,a=!0;if(o){for(i in n=null==n?null:n+"",o){if((e=o[i]).name!==n){a=!1;continue}r=e.state>2&&e.state<5,e.state=6,e.timer.stop(),e.on.call(r?"interrupt":"cancel",t,t.__data__,e.index,e.group),delete o[i]}a&&delete t.__transition}}var v=e(19847),y=180/Math.PI,m={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function g(t,n,e,r,i,o){var a,u,s;return(a=Math.sqrt(t*t+n*n))&&(t/=a,n/=a),(s=t*e+n*r)&&(e-=t*s,r-=n*s),(u=Math.sqrt(e*e+r*r))&&(e/=u,r/=u,s/=u),t*r<n*e&&(t=-t,n=-n,s=-s,a=-a),{translateX:i,translateY:o,rotate:Math.atan2(n,t)*y,skewX:Math.atan(s)*y,scaleX:a,scaleY:u}}function _(t,n,e,r){function i(t){return t.length?t.pop()+" ":""}return function(o,a){var u,s,l,c,f=[],h=[];return o=t(o),a=t(a),!function(t,r,i,o,a,u){if(t!==i||r!==o){var s=a.push("translate(",null,n,null,e);u.push({i:s-4,x:(0,v.A)(t,i)},{i:s-2,x:(0,v.A)(r,o)})}else(i||o)&&a.push("translate("+i+n+o+e)}(o.translateX,o.translateY,a.translateX,a.translateY,f,h),u=o.rotate,s=a.rotate,u!==s?(u-s>180?s+=360:s-u>180&&(u+=360),h.push({i:f.push(i(f)+"rotate(",null,r)-2,x:(0,v.A)(u,s)})):s&&f.push(i(f)+"rotate("+s+r),l=o.skewX,c=a.skewX,l!==c?h.push({i:f.push(i(f)+"skewX(",null,r)-2,x:(0,v.A)(l,c)}):c&&f.push(i(f)+"skewX("+c+r),!function(t,n,e,r,o,a){if(t!==e||n!==r){var u=o.push(i(o)+"scale(",null,",",null,")");a.push({i:u-4,x:(0,v.A)(t,e)},{i:u-2,x:(0,v.A)(n,r)})}else(1!==e||1!==r)&&o.push(i(o)+"scale("+e+","+r+")")}(o.scaleX,o.scaleY,a.scaleX,a.scaleY,f,h),o=a=null,function(t){for(var n,e=-1,r=h.length;++e<r;)f[(n=h[e]).i]=n.x(t);return f.join("")}}}var w=_(function(t){let n=new("function"==typeof DOMMatrix?DOMMatrix:WebKitCSSMatrix)(t+"");return n.isIdentity?m:g(n.a,n.b,n.c,n.d,n.e,n.f)},"px, ","px)","deg)"),x=_(function(t){return null==t?m:(r||(r=document.createElementNS("http://www.w3.org/2000/svg","g")),r.setAttribute("transform",t),t=r.transform.baseVal.consolidate())?g((t=t.matrix).a,t.b,t.c,t.d,t.e,t.f):m},", ",")",")"),b=e(74524);function A(t,n,e){var r=t._id;return t.each(function(){var t=h(this,r);(t.value||(t.value={}))[n]=e.apply(this,arguments)}),function(t){return p(t,r).value[n]}}var k=e(46549),M=e(55268),N=e(47511);function E(t,n){var e;return("number"==typeof n?v.A:n instanceof k.Ay?M.Ay:(e=(0,k.Ay)(n))?(n=e,M.Ay):N.A)(t,n)}var z=e(22197),$=e(43176),S=e(58479),T=i.Ay.prototype.constructor,C=e(42179);function P(t){return function(){this.style.removeProperty(t)}}var X=0;function j(t,n,e,r){this._groups=t,this._parents=n,this._name=e,this._id=r}var q=i.Ay.prototype;j.prototype=(function(t){return(0,i.Ay)().transition(t)}).prototype={constructor:j,select:function(t){var n=this._name,e=this._id;"function"!=typeof t&&(t=(0,$.A)(t));for(var r=this._groups,i=r.length,o=Array(i),a=0;a<i;++a)for(var u,s,l=r[a],f=l.length,h=o[a]=Array(f),d=0;d<f;++d)(u=l[d])&&(s=t.call(u,u.__data__,d,l))&&("__data__"in u&&(s.__data__=u.__data__),h[d]=s,c(h[d],n,e,d,h,p(u,e)));return new j(o,this._parents,n,e)},selectAll:function(t){var n=this._name,e=this._id;"function"!=typeof t&&(t=(0,S.A)(t));for(var r=this._groups,i=r.length,o=[],a=[],u=0;u<i;++u)for(var s,l=r[u],f=l.length,h=0;h<f;++h)if(s=l[h]){for(var d,v=t.call(s,s.__data__,h,l),y=p(s,e),m=0,g=v.length;m<g;++m)(d=v[m])&&c(d,n,e,m,v,y);o.push(v),a.push(s)}return new j(o,a,n,e)},selectChild:q.selectChild,selectChildren:q.selectChildren,filter:function(t){"function"!=typeof t&&(t=(0,z.A)(t));for(var n=this._groups,e=n.length,r=Array(e),i=0;i<e;++i)for(var o,a=n[i],u=a.length,s=r[i]=[],l=0;l<u;++l)(o=a[l])&&t.call(o,o.__data__,l,a)&&s.push(o);return new j(r,this._parents,this._name,this._id)},merge:function(t){if(t._id!==this._id)throw Error();for(var n=this._groups,e=t._groups,r=n.length,i=e.length,o=Math.min(r,i),a=Array(r),u=0;u<o;++u)for(var s,l=n[u],c=e[u],f=l.length,h=a[u]=Array(f),p=0;p<f;++p)(s=l[p]||c[p])&&(h[p]=s);for(;u<r;++u)a[u]=n[u];return new j(a,this._parents,this._name,this._id)},selection:function(){return new T(this._groups,this._parents)},transition:function(){for(var t=this._name,n=this._id,e=++X,r=this._groups,i=r.length,o=0;o<i;++o)for(var a,u=r[o],s=u.length,l=0;l<s;++l)if(a=u[l]){var f=p(a,n);c(a,t,e,l,u,{time:f.time+f.delay+f.duration,delay:0,duration:f.duration,ease:f.ease})}return new j(r,this._parents,t,e)},call:q.call,nodes:q.nodes,node:q.node,size:q.size,empty:q.empty,each:q.each,on:function(t,n){var e,r,i,o,a,u,s=this._id;return arguments.length<2?p(this.node(),s).on.on(t):this.each((e=s,r=t,i=n,u=(r+"").trim().split(/^|\s+/).every(function(t){var n=t.indexOf(".");return n>=0&&(t=t.slice(0,n)),!t||"start"===t})?f:h,function(){var t=u(this,e),n=t.on;n!==o&&(a=(o=n).copy()).on(r,i),t.on=a}))},attr:function(t,n){var e=(0,b.A)(t),r="transform"===e?x:E;return this.attrTween(t,"function"==typeof n?(e.local?function(t,n,e){var r,i,o;return function(){var a,u,s=e(this);return null==s?void this.removeAttributeNS(t.space,t.local):(a=this.getAttributeNS(t.space,t.local))===(u=s+"")?null:a===r&&u===i?o:(i=u,o=n(r=a,s))}}:function(t,n,e){var r,i,o;return function(){var a,u,s=e(this);return null==s?void this.removeAttribute(t):(a=this.getAttribute(t))===(u=s+"")?null:a===r&&u===i?o:(i=u,o=n(r=a,s))}})(e,r,A(this,"attr."+t,n)):null==n?(e.local?function(t){return function(){this.removeAttributeNS(t.space,t.local)}}:function(t){return function(){this.removeAttribute(t)}})(e):(e.local?function(t,n,e){var r,i,o=e+"";return function(){var a=this.getAttributeNS(t.space,t.local);return a===o?null:a===r?i:i=n(r=a,e)}}:function(t,n,e){var r,i,o=e+"";return function(){var a=this.getAttribute(t);return a===o?null:a===r?i:i=n(r=a,e)}})(e,r,n))},attrTween:function(t,n){var e="attr."+t;if(arguments.length<2)return(e=this.tween(e))&&e._value;if(null==n)return this.tween(e,null);if("function"!=typeof n)throw Error();var r=(0,b.A)(t);return this.tween(e,(r.local?function(t,n){var e,r;function i(){var i=n.apply(this,arguments);return i!==r&&(e=(r=i)&&function(n){this.setAttributeNS(t.space,t.local,i.call(this,n))}),e}return i._value=n,i}:function(t,n){var e,r;function i(){var i=n.apply(this,arguments);return i!==r&&(e=(r=i)&&function(n){this.setAttribute(t,i.call(this,n))}),e}return i._value=n,i})(r,n))},style:function(t,n,e){var r,i,o,a,u,s,l,c,f,p,d,v,y,m,g,_,x,b,k,M,N,z="transform"==(t+="")?w:E;return null==n?this.styleTween(t,(r=t,function(){var t=(0,C.j)(this,r),n=(this.style.removeProperty(r),(0,C.j)(this,r));return t===n?null:t===i&&n===o?a:a=z(i=t,o=n)})).on("end.style."+t,P(t)):"function"==typeof n?this.styleTween(t,(u=t,s=A(this,"style."+t,n),function(){var t=(0,C.j)(this,u),n=s(this),e=n+"";return null==n&&(this.style.removeProperty(u),e=n=(0,C.j)(this,u)),t===e?null:t===l&&e===c?f:(c=e,f=z(l=t,n))})).each((p=this._id,x="end."+(_="style."+(d=t)),function(){var t=h(this,p),n=t.on,e=null==t.value[_]?g||(g=P(d)):void 0;(n!==v||m!==e)&&(y=(v=n).copy()).on(x,m=e),t.on=y})):this.styleTween(t,(b=t,N=n+"",function(){var t=(0,C.j)(this,b);return t===N?null:t===k?M:M=z(k=t,n)}),e).on("end.style."+t,null)},styleTween:function(t,n,e){var r="style."+(t+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(null==n)return this.tween(r,null);if("function"!=typeof n)throw Error();return this.tween(r,function(t,n,e){var r,i;function o(){var o=n.apply(this,arguments);return o!==i&&(r=(i=o)&&function(n){this.style.setProperty(t,o.call(this,n),e)}),r}return o._value=n,o}(t,n,null==e?"":e))},text:function(t){var n,e;return this.tween("text","function"==typeof t?(n=A(this,"text",t),function(){var t=n(this);this.textContent=null==t?"":t}):(e=null==t?"":t+"",function(){this.textContent=e}))},textTween:function(t){var n="text";if(arguments.length<1)return(n=this.tween(n))&&n._value;if(null==t)return this.tween(n,null);if("function"!=typeof t)throw Error();return this.tween(n,function(t){var n,e;function r(){var r=t.apply(this,arguments);return r!==e&&(n=(e=r)&&function(t){this.textContent=r.call(this,t)}),n}return r._value=t,r}(t))},remove:function(){var t;return this.on("end.remove",(t=this._id,function(){var n=this.parentNode;for(var e in this.__transition)if(+e!==t)return;n&&n.removeChild(this)}))},tween:function(t,n){var e=this._id;if(t+="",arguments.length<2){for(var r,i=p(this.node(),e).tween,o=0,a=i.length;o<a;++o)if((r=i[o]).name===t)return r.value;return null}return this.each((null==n?function(t,n){var e,r;return function(){var i=h(this,t),o=i.tween;if(o!==e){r=e=o;for(var a=0,u=r.length;a<u;++a)if(r[a].name===n){(r=r.slice()).splice(a,1);break}}i.tween=r}}:function(t,n,e){var r,i;if("function"!=typeof e)throw Error();return function(){var o=h(this,t),a=o.tween;if(a!==r){i=(r=a).slice();for(var u={name:n,value:e},s=0,l=i.length;s<l;++s)if(i[s].name===n){i[s]=u;break}s===l&&i.push(u)}o.tween=i}})(e,t,n))},delay:function(t){var n=this._id;return arguments.length?this.each(("function"==typeof t?function(t,n){return function(){f(this,t).delay=+n.apply(this,arguments)}}:function(t,n){return n*=1,function(){f(this,t).delay=n}})(n,t)):p(this.node(),n).delay},duration:function(t){var n=this._id;return arguments.length?this.each(("function"==typeof t?function(t,n){return function(){h(this,t).duration=+n.apply(this,arguments)}}:function(t,n){return n*=1,function(){h(this,t).duration=n}})(n,t)):p(this.node(),n).duration},ease:function(t){var n=this._id;return arguments.length?this.each(function(t,n){if("function"!=typeof n)throw Error();return function(){h(this,t).ease=n}}(n,t)):p(this.node(),n).ease},easeVarying:function(t){var n;if("function"!=typeof t)throw Error();return this.each((n=this._id,function(){var e=t.apply(this,arguments);if("function"!=typeof e)throw Error();h(this,n).ease=e}))},end:function(){var t,n,e=this,r=e._id,i=e.size();return new Promise(function(o,a){var u={value:a},s={value:function(){0==--i&&o()}};e.each(function(){var e=h(this,r),i=e.on;i!==t&&((n=(t=i).copy())._.cancel.push(u),n._.interrupt.push(u),n._.end.push(s)),e.on=n}),0===i&&o()})},[Symbol.iterator]:q[Symbol.iterator]};var R={time:null,delay:0,duration:250,ease:function(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}};i.Ay.prototype.interrupt=function(t){return this.each(function(){d(this,t)})},i.Ay.prototype.transition=function(t){var n,e;t instanceof j?(n=t._id,t=t._name):(n=++X,(e=R).time=(0,a.tB)(),t=null==t?null:t+"");for(var r=this._groups,i=r.length,o=0;o<i;++o)for(var u,s=r[o],l=s.length,f=0;f<l;++f)(u=s[f])&&c(u,t,n,f,s,e||function(t,n){for(var e;!(e=t.__transition)||!(e=e[n]);)if(!(t=t.parentNode))throw Error(`transition ${n} not found`);return e}(u,n));return new j(r,this._parents,t,n)}},46549:(t,n,e)=>{function r(t,n,e){t.prototype=n.prototype=e,e.constructor=t}function i(t,n){var e=Object.create(t.prototype);for(var r in n)e[r]=n[r];return e}function o(){}e.d(n,{Ay:()=>_,Qh:()=>b});var a="\\s*([+-]?\\d+)\\s*",u="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",s="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",l=/^#([0-9a-f]{3,8})$/,c=RegExp(`^rgb\\(${a},${a},${a}\\)$`),f=RegExp(`^rgb\\(${s},${s},${s}\\)$`),h=RegExp(`^rgba\\(${a},${a},${a},${u}\\)$`),p=RegExp(`^rgba\\(${s},${s},${s},${u}\\)$`),d=RegExp(`^hsl\\(${u},${s},${s}\\)$`),v=RegExp(`^hsla\\(${u},${s},${s},${u}\\)$`),y={aliceblue:0xf0f8ff,antiquewhite:0xfaebd7,aqua:65535,aquamarine:8388564,azure:0xf0ffff,beige:0xf5f5dc,bisque:0xffe4c4,black:0,blanchedalmond:0xffebcd,blue:255,blueviolet:9055202,brown:0xa52a2a,burlywood:0xdeb887,cadetblue:6266528,chartreuse:8388352,chocolate:0xd2691e,coral:0xff7f50,cornflowerblue:6591981,cornsilk:0xfff8dc,crimson:0xdc143c,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:0xb8860b,darkgray:0xa9a9a9,darkgreen:25600,darkgrey:0xa9a9a9,darkkhaki:0xbdb76b,darkmagenta:9109643,darkolivegreen:5597999,darkorange:0xff8c00,darkorchid:0x9932cc,darkred:9109504,darksalmon:0xe9967a,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:0xff1493,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:0xb22222,floralwhite:0xfffaf0,forestgreen:2263842,fuchsia:0xff00ff,gainsboro:0xdcdcdc,ghostwhite:0xf8f8ff,gold:0xffd700,goldenrod:0xdaa520,gray:8421504,green:32768,greenyellow:0xadff2f,grey:8421504,honeydew:0xf0fff0,hotpink:0xff69b4,indianred:0xcd5c5c,indigo:4915330,ivory:0xfffff0,khaki:0xf0e68c,lavender:0xe6e6fa,lavenderblush:0xfff0f5,lawngreen:8190976,lemonchiffon:0xfffacd,lightblue:0xadd8e6,lightcoral:0xf08080,lightcyan:0xe0ffff,lightgoldenrodyellow:0xfafad2,lightgray:0xd3d3d3,lightgreen:9498256,lightgrey:0xd3d3d3,lightpink:0xffb6c1,lightsalmon:0xffa07a,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:0xb0c4de,lightyellow:0xffffe0,lime:65280,limegreen:3329330,linen:0xfaf0e6,magenta:0xff00ff,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:0xba55d3,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:0xc71585,midnightblue:1644912,mintcream:0xf5fffa,mistyrose:0xffe4e1,moccasin:0xffe4b5,navajowhite:0xffdead,navy:128,oldlace:0xfdf5e6,olive:8421376,olivedrab:7048739,orange:0xffa500,orangered:0xff4500,orchid:0xda70d6,palegoldenrod:0xeee8aa,palegreen:0x98fb98,paleturquoise:0xafeeee,palevioletred:0xdb7093,papayawhip:0xffefd5,peachpuff:0xffdab9,peru:0xcd853f,pink:0xffc0cb,plum:0xdda0dd,powderblue:0xb0e0e6,purple:8388736,rebeccapurple:6697881,red:0xff0000,rosybrown:0xbc8f8f,royalblue:4286945,saddlebrown:9127187,salmon:0xfa8072,sandybrown:0xf4a460,seagreen:3050327,seashell:0xfff5ee,sienna:0xa0522d,silver:0xc0c0c0,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:0xfffafa,springgreen:65407,steelblue:4620980,tan:0xd2b48c,teal:32896,thistle:0xd8bfd8,tomato:0xff6347,turquoise:4251856,violet:0xee82ee,wheat:0xf5deb3,white:0xffffff,whitesmoke:0xf5f5f5,yellow:0xffff00,yellowgreen:0x9acd32};function m(){return this.rgb().formatHex()}function g(){return this.rgb().formatRgb()}function _(t){var n,e;return t=(t+"").trim().toLowerCase(),(n=l.exec(t))?(e=n[1].length,n=parseInt(n[1],16),6===e?w(n):3===e?new A(n>>8&15|n>>4&240,n>>4&15|240&n,(15&n)<<4|15&n,1):8===e?x(n>>24&255,n>>16&255,n>>8&255,(255&n)/255):4===e?x(n>>12&15|n>>8&240,n>>8&15|n>>4&240,n>>4&15|240&n,((15&n)<<4|15&n)/255):null):(n=c.exec(t))?new A(n[1],n[2],n[3],1):(n=f.exec(t))?new A(255*n[1]/100,255*n[2]/100,255*n[3]/100,1):(n=h.exec(t))?x(n[1],n[2],n[3],n[4]):(n=p.exec(t))?x(255*n[1]/100,255*n[2]/100,255*n[3]/100,n[4]):(n=d.exec(t))?$(n[1],n[2]/100,n[3]/100,1):(n=v.exec(t))?$(n[1],n[2]/100,n[3]/100,n[4]):y.hasOwnProperty(t)?w(y[t]):"transparent"===t?new A(NaN,NaN,NaN,0):null}function w(t){return new A(t>>16&255,t>>8&255,255&t,1)}function x(t,n,e,r){return r<=0&&(t=n=e=NaN),new A(t,n,e,r)}function b(t,n,e,r){var i;return 1==arguments.length?((i=t)instanceof o||(i=_(i)),i)?new A((i=i.rgb()).r,i.g,i.b,i.opacity):new A:new A(t,n,e,null==r?1:r)}function A(t,n,e,r){this.r=+t,this.g=+n,this.b=+e,this.opacity=+r}function k(){return`#${z(this.r)}${z(this.g)}${z(this.b)}`}function M(){let t=N(this.opacity);return`${1===t?"rgb(":"rgba("}${E(this.r)}, ${E(this.g)}, ${E(this.b)}${1===t?")":`, ${t})`}`}function N(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function E(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function z(t){return((t=E(t))<16?"0":"")+t.toString(16)}function $(t,n,e,r){return r<=0?t=n=e=NaN:e<=0||e>=1?t=n=NaN:n<=0&&(t=NaN),new T(t,n,e,r)}function S(t){if(t instanceof T)return new T(t.h,t.s,t.l,t.opacity);if(t instanceof o||(t=_(t)),!t)return new T;if(t instanceof T)return t;var n=(t=t.rgb()).r/255,e=t.g/255,r=t.b/255,i=Math.min(n,e,r),a=Math.max(n,e,r),u=NaN,s=a-i,l=(a+i)/2;return s?(u=n===a?(e-r)/s+(e<r)*6:e===a?(r-n)/s+2:(n-e)/s+4,s/=l<.5?a+i:2-a-i,u*=60):s=l>0&&l<1?0:u,new T(u,s,l,t.opacity)}function T(t,n,e,r){this.h=+t,this.s=+n,this.l=+e,this.opacity=+r}function C(t){return(t=(t||0)%360)<0?t+360:t}function P(t){return Math.max(0,Math.min(1,t||0))}function X(t,n,e){return(t<60?n+(e-n)*t/60:t<180?e:t<240?n+(e-n)*(240-t)/60:n)*255}r(o,_,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:m,formatHex:m,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return S(this).formatHsl()},formatRgb:g,toString:g}),r(A,b,i(o,{brighter(t){return t=null==t?1.4285714285714286:Math.pow(1.4285714285714286,t),new A(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=null==t?.7:Math.pow(.7,t),new A(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new A(E(this.r),E(this.g),E(this.b),N(this.opacity))},displayable(){return -.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:k,formatHex:k,formatHex8:function(){return`#${z(this.r)}${z(this.g)}${z(this.b)}${z((isNaN(this.opacity)?1:this.opacity)*255)}`},formatRgb:M,toString:M})),r(T,function(t,n,e,r){return 1==arguments.length?S(t):new T(t,n,e,null==r?1:r)},i(o,{brighter(t){return t=null==t?1.4285714285714286:Math.pow(1.4285714285714286,t),new T(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=null==t?.7:Math.pow(.7,t),new T(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,n=isNaN(t)||isNaN(this.s)?0:this.s,e=this.l,r=e+(e<.5?e:1-e)*n,i=2*e-r;return new A(X(t>=240?t-240:t+120,i,r),X(t,i,r),X(t<120?t+240:t-120,i,r),this.opacity)},clamp(){return new T(C(this.h),P(this.s),P(this.l),N(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){let t=N(this.opacity);return`${1===t?"hsl(":"hsla("}${C(this.h)}, ${100*P(this.s)}%, ${100*P(this.l)}%${1===t?")":`, ${t})`}`}}))},47511:(t,n,e)=>{e.d(n,{A:()=>a});var r=e(19847),i=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,o=RegExp(i.source,"g");function a(t,n){var e,a,u,s,l,c=i.lastIndex=o.lastIndex=0,f=-1,h=[],p=[];for(t+="",n+="";(u=i.exec(t))&&(s=o.exec(n));)(l=s.index)>c&&(l=n.slice(c,l),h[f]?h[f]+=l:h[++f]=l),(u=u[0])===(s=s[0])?h[f]?h[f]+=s:h[++f]=s:(h[++f]=null,p.push({i:f,x:(0,r.A)(u,s)})),c=o.lastIndex;return c<n.length&&(l=n.slice(c),h[f]?h[f]+=l:h[++f]=l),h.length<2?p[0]?(e=p[0].x,function(t){return e(t)+""}):(a=n,function(){return a}):(n=p.length,function(t){for(var e,r=0;r<n;++r)h[(e=p[r]).i]=e.x(t);return h.join("")})}},55268:(t,n,e)=>{e.d(n,{Ay:()=>u});var r=e(46549);function i(t,n,e,r,i){var o=t*t,a=o*t;return((1-3*t+3*o-a)*n+(4-6*o+3*a)*e+(1+3*t+3*o-3*a)*r+a*i)/6}var o=e(95406);function a(t,n){var e=n-t;return e?function(n){return t+n*e}:(0,o.A)(isNaN(t)?n:t)}let u=function t(n){var e,i=1==(e=+n)?a:function(t,n){var r,i,a;return n-t?(r=t,i=n,r=Math.pow(r,a=e),i=Math.pow(i,a)-r,a=1/a,function(t){return Math.pow(r+t*i,a)}):(0,o.A)(isNaN(t)?n:t)};function u(t,n){var e=i((t=(0,r.Qh)(t)).r,(n=(0,r.Qh)(n)).r),o=i(t.g,n.g),u=i(t.b,n.b),s=a(t.opacity,n.opacity);return function(n){return t.r=e(n),t.g=o(n),t.b=u(n),t.opacity=s(n),t+""}}return u.gamma=t,u}(1);function s(t){return function(n){var e,i,o=n.length,a=Array(o),u=Array(o),s=Array(o);for(e=0;e<o;++e)i=(0,r.Qh)(n[e]),a[e]=i.r||0,u[e]=i.g||0,s[e]=i.b||0;return a=t(a),u=t(u),s=t(s),i.opacity=1,function(t){return i.r=a(t),i.g=u(t),i.b=s(t),i+""}}}s(function(t){var n=t.length-1;return function(e){var r=e<=0?e=0:e>=1?(e=1,n-1):Math.floor(e*n),o=t[r],a=t[r+1],u=r>0?t[r-1]:2*o-a,s=r<n-1?t[r+2]:2*a-o;return i((e-r/n)*n,u,o,a,s)}}),s(function(t){var n=t.length;return function(e){var r=Math.floor(((e%=1)<0?++e:e)*n),o=t[(r+n-1)%n],a=t[r%n],u=t[(r+1)%n],s=t[(r+2)%n];return i((e-r/n)*n,o,a,u,s)}})},56308:(t,n,e)=>{e.d(n,{A:()=>d});var r=e(19965),i=e(3493),o=e(63992),a=e(74222),u=e(10612);let s=t=>()=>t;function l(t,{sourceEvent:n,subject:e,target:r,identifier:i,active:o,x:a,y:u,dx:s,dy:l,dispatch:c}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:n,enumerable:!0,configurable:!0},subject:{value:e,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:i,enumerable:!0,configurable:!0},active:{value:o,enumerable:!0,configurable:!0},x:{value:a,enumerable:!0,configurable:!0},y:{value:u,enumerable:!0,configurable:!0},dx:{value:s,enumerable:!0,configurable:!0},dy:{value:l,enumerable:!0,configurable:!0},_:{value:c}})}function c(t){return!t.ctrlKey&&!t.button}function f(){return this.parentNode}function h(t,n){return null==n?{x:t.x,y:t.y}:n}function p(){return navigator.maxTouchPoints||"ontouchstart"in this}function d(){var t,n,e,d,v=c,y=f,m=h,g=p,_={},w=(0,r.A)("start","drag","end"),x=0,b=0;function A(t){t.on("mousedown.drag",k).filter(g).on("touchstart.drag",E).on("touchmove.drag",z,u.vr).on("touchend.drag touchcancel.drag",$).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function k(r,o){if(!d&&v.call(this,r,o)){var s=S(this,y.call(this,r,o),r,o,"mouse");s&&((0,i.A)(r.view).on("mousemove.drag",M,u.Rw).on("mouseup.drag",N,u.Rw),(0,a.A)(r.view),(0,u.GK)(r),e=!1,t=r.clientX,n=r.clientY,s("start",r))}}function M(r){if((0,u.Ay)(r),!e){var i=r.clientX-t,o=r.clientY-n;e=i*i+o*o>b}_.mouse("drag",r)}function N(t){(0,i.A)(t.view).on("mousemove.drag mouseup.drag",null),(0,a.y)(t.view,e),(0,u.Ay)(t),_.mouse("end",t)}function E(t,n){if(v.call(this,t,n)){var e,r,i=t.changedTouches,o=y.call(this,t,n),a=i.length;for(e=0;e<a;++e)(r=S(this,o,t,n,i[e].identifier,i[e]))&&((0,u.GK)(t),r("start",t,i[e]))}}function z(t){var n,e,r=t.changedTouches,i=r.length;for(n=0;n<i;++n)(e=_[r[n].identifier])&&((0,u.Ay)(t),e("drag",t,r[n]))}function $(t){var n,e,r=t.changedTouches,i=r.length;for(d&&clearTimeout(d),d=setTimeout(function(){d=null},500),n=0;n<i;++n)(e=_[r[n].identifier])&&((0,u.GK)(t),e("end",t,r[n]))}function S(t,n,e,r,i,a){var u,s,c,f=w.copy(),h=(0,o.A)(a||e,n);if(null!=(c=m.call(t,new l("beforestart",{sourceEvent:e,target:A,identifier:i,active:x,x:h[0],y:h[1],dx:0,dy:0,dispatch:f}),r)))return u=c.x-h[0]||0,s=c.y-h[1]||0,function e(a,p,d){var v,y=h;switch(a){case"start":_[i]=e,v=x++;break;case"end":delete _[i],--x;case"drag":h=(0,o.A)(d||p,n),v=x}f.call(a,t,new l(a,{sourceEvent:p,subject:c,target:A,identifier:i,active:v,x:h[0]+u,y:h[1]+s,dx:h[0]-y[0],dy:h[1]-y[1],dispatch:f}),r)}}return A.filter=function(t){return arguments.length?(v="function"==typeof t?t:s(!!t),A):v},A.container=function(t){return arguments.length?(y="function"==typeof t?t:s(t),A):y},A.subject=function(t){return arguments.length?(m="function"==typeof t?t:s(t),A):m},A.touchable=function(t){return arguments.length?(g="function"==typeof t?t:s(!!t),A):g},A.on=function(){var t=w.on.apply(w,arguments);return t===w?A:t},A.clickDistance=function(t){return arguments.length?(b=(t*=1)*t,A):Math.sqrt(b)},A}l.prototype.on=function(){var t=this._.on.apply(this._,arguments);return t===this._?this:t}},58479:(t,n,e)=>{function r(){return[]}function i(t){return null==t?r:function(){return this.querySelectorAll(t)}}e.d(n,{A:()=>i})},63992:(t,n,e)=>{e.d(n,{A:()=>r});function r(t,n){if(t=function(t){let n;for(;n=t.sourceEvent;)t=n;return t}(t),void 0===n&&(n=t.currentTarget),n){var e=n.ownerSVGElement||n;if(e.createSVGPoint){var r=e.createSVGPoint();return r.x=t.clientX,r.y=t.clientY,[(r=r.matrixTransform(n.getScreenCTM().inverse())).x,r.y]}if(n.getBoundingClientRect){var i=n.getBoundingClientRect();return[t.clientX-i.left-n.clientLeft,t.clientY-i.top-n.clientTop]}}return[t.pageX,t.pageY]}},74222:(t,n,e)=>{e.d(n,{A:()=>o,y:()=>a});var r=e(3493),i=e(10612);function o(t){var n=t.document.documentElement,e=(0,r.A)(t).on("dragstart.drag",i.Ay,i.Rw);"onselectstart"in n?e.on("selectstart.drag",i.Ay,i.Rw):(n.__noselect=n.style.MozUserSelect,n.style.MozUserSelect="none")}function a(t,n){var e=t.document.documentElement,o=(0,r.A)(t).on("dragstart.drag",null);n&&(o.on("click.drag",i.Ay,i.Rw),setTimeout(function(){o.on("click.drag",null)},0)),"onselectstart"in e?o.on("selectstart.drag",null):(e.style.MozUserSelect=e.__noselect,delete e.__noselect)}},74524:(t,n,e)=>{e.d(n,{A:()=>i});var r=e(80065);function i(t){var n=t+="",e=n.indexOf(":");return e>=0&&"xmlns"!==(n=t.slice(0,e))&&(t=t.slice(e+1)),r.A.hasOwnProperty(n)?{space:r.A[n],local:t}:t}},77397:(t,n,e)=>{e.d(n,{A:()=>r});function r(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}},80065:(t,n,e)=>{e.d(n,{A:()=>i,g:()=>r});var r="http://www.w3.org/1999/xhtml";let i={svg:"http://www.w3.org/2000/svg",xhtml:r,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"}},82030:(t,n,e)=>{e.d(n,{A:()=>function t(n,e){var s,l,c=typeof e;return null==e||"boolean"===c?(0,u.A)(e):("number"===c?o.A:"string"===c?(l=(0,r.Ay)(e))?(e=l,i.Ay):a.A:e instanceof r.Ay?i.Ay:e instanceof Date?function(t,n){var e=new Date;return t*=1,n*=1,function(r){return e.setTime(t*(1-r)+n*r),e}}:!ArrayBuffer.isView(s=e)||s instanceof DataView?Array.isArray(e)?function(n,e){var r,i=e?e.length:0,o=n?Math.min(i,n.length):0,a=Array(o),u=Array(i);for(r=0;r<o;++r)a[r]=t(n[r],e[r]);for(;r<i;++r)u[r]=e[r];return function(t){for(r=0;r<o;++r)u[r]=a[r](t);return u}}:"function"!=typeof e.valueOf&&"function"!=typeof e.toString||isNaN(e)?function(n,e){var r,i={},o={};for(r in(null===n||"object"!=typeof n)&&(n={}),(null===e||"object"!=typeof e)&&(e={}),e)r in n?i[r]=t(n[r],e[r]):o[r]=e[r];return function(t){for(r in i)o[r]=i[r](t);return o}}:o.A:function(t,n){n||(n=[]);var e,r=t?Math.min(n.length,t.length):0,i=n.slice();return function(o){for(e=0;e<r;++e)i[e]=t[e]*(1-o)+n[e]*o;return i}})(n,e)}});var r=e(46549),i=e(55268),o=e(19847),a=e(47511),u=e(95406)},95406:(t,n,e)=>{e.d(n,{A:()=>r});let r=t=>()=>t}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8834],{966:(e,t,r)=>{function n(e,t){var r,n;let a=null!=(r=t.minDistance)?r:100,s=null!=(n=t.minVelocity)?n:.3,i=0,l=0,d=0,o=!1,c=null,u=e=>{var r;null!=(r=t.shouldIgnore)&&r.call(t,e.target)||(i=e.clientX,l=e.clientY,d=e.timeStamp,o=!0,c=e.pointerId)},m=e=>{if(!o||e.pointerId!==c)return;o=!1,c=null;let r=e.clientX-i,n=e.clientY-l,u=Math.max(1,e.timeStamp-d),m=Math.abs(r),p=Math.abs(n);m<a||p>=m||m/u<s||t.onSwipe(r<0?"left":"right")},p=()=>{o=!1,c=null};return e.addEventListener("pointerdown",u),e.addEventListener("pointerup",m),e.addEventListener("pointercancel",p),()=>{e.removeEventListener("pointerdown",u),e.removeEventListener("pointerup",m),e.removeEventListener("pointercancel",p)}}function a(e,t){let r=0,n=0,a=0,s=!1,i=null,l=e=>{var l;null!=(l=t.shouldIgnore)&&l.call(t,e.target)||(r=e.clientX,n=e.clientY,a=e.timeStamp,s=!0,i=e.pointerId)},d=e=>{if(!s||e.pointerId!==i)return;s=!1,i=null;let l=function(e){var t,r;let n=null!=(t=e.minDistance)?t:100,a=null!=(r=e.minVelocity)?r:.3,s=Math.abs(e.dx),i=Math.abs(e.dy),l=Math.max(1,e.dt),d=Math.max(s,i);return d<n||d/l<a?null:s>=i?e.dx<0?"left":"right":e.dy<0?"up":"down"}({dx:e.clientX-r,dy:e.clientY-n,dt:e.timeStamp-a,...void 0!==t.minDistance?{minDistance:t.minDistance}:{},...void 0!==t.minVelocity?{minVelocity:t.minVelocity}:{}});l&&t.onSwipe(l)},o=()=>{s=!1,i=null};return e.addEventListener("pointerdown",l),e.addEventListener("pointerup",d),e.addEventListener("pointercancel",o),()=>{e.removeEventListener("pointerdown",l),e.removeEventListener("pointerup",d),e.removeEventListener("pointercancel",o)}}r.d(t,{gI:()=>n,ix:()=>a})},18834:(e,t,r)=>{r.d(t,{SY:()=>A});var n=r(54456),a=r(60500),s=r(36581),i=r(10080),l=r(95734);let d=["absorbed","discarded","routed","checked"],o={new:"대기 중",queued:"대기 중",absorbed:"흡수됨",routed:"다른 갈래로 넘김",checked:"확인됨",discarded:"버림",deferred:"미룸"};function c(e){var t,r,n;return null===e?{label:"찾을 수 없음",settled:!1,noteRef:null}:{label:Object.hasOwn(o,e.status)?o[e.status]:e.status,settled:d.includes(e.status),noteRef:null!=(n=null==(r=e.outputs)||null==(t=r.find(e=>"note"===e.kind))?void 0:t.ref)?n:null}}let u={"headless.spawn":"실행 시작","gate.baseline":"게이트 검사","review.diff-scope":"리뷰 중","headless.done":"실행 종료","run-terminal":"종료"};function m(e){var t,r,n,a,s;let i=e.at(-1),l=e.find(e=>"run-terminal"===e.event),d=null==l||null==(t=l.payload)?void 0:t.runStatus;return{stage:i?null!=(n=u[i.event])?n:i.event:null,lastEventAt:null!=(a=null==i?void 0:i.ts)?a:null,done:void 0!==l,outcome:l?"completed"===d||"failed"===d?d:"unknown":null,error:null!=(s=null==l||null==(r=l.payload)?void 0:r.error)?s:null}}var p=r(71829),g=r(50733),f=r(966);class h{preview(e){return this.client.fetchJson("/v1/intake/pipeline-preview",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(e)})}commit(e){return this.client.fetchJson("/v1/intake/pipeline-commit",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(e)})}async submitPhotoOcr(e,t){let r=new FormData;return r.append("image",e,t),r.append("polishMode","minimal"),await this.client.fetchJson("/v1/notes/from-image",{method:"POST",body:r})}constructor(e){this.client=e}}var x=r(21569);let k={pending:"대기",approved:"승인",rejected:"거절",deferred:"잠시 멈춤"},v={pending:"bg-muted text-muted-foreground ring-border",approved:"bg-emerald-500/15 text-emerald-700 ring-emerald-500/30",rejected:"bg-rose-500/15 text-rose-700 ring-rose-500/30",deferred:"bg-amber-500/15 text-amber-700 ring-amber-500/30"},b={high:"bg-orange-500/15 text-orange-700 ring-orange-500/30",medium:"bg-sky-500/15 text-sky-700 ring-sky-500/30",low:"bg-muted text-muted-foreground ring-border"},y={research:"\uD83D\uDD0D","research-and-plan":"\uD83D\uDCCB","dev-feature":"⚙","dev-spec":"\uD83D\uDCD0",cognitive:"\uD83E\uDDE0",debug:"\uD83D\uDEE0","workflow-update":"↻"};function w(e){var t,r;let{card:a,verdict:s,active:i,stackIndex:l=0}=e,d=i?0:6*l,o=i?1:Math.max(.92,1-.04*l),c=i?1:Math.max(.6,1-.18*l),{task:u}=a,m=u.urls.length+u.keywords.length+u.refs.length;return(0,n.jsxs)("article",{"data-testid":"memo-intake-card","data-task-key":u.taskKey,"data-active":i?"true":"false","data-stack-index":l,"data-verdict":s,className:"absolute inset-0 flex flex-col gap-2 rounded-2xl border border-border bg-card p-5 shadow-lg ring-1 ring-foreground/5",style:{zIndex:i?30:30-l,transform:"translateY(".concat(d,"px) scale(").concat(o,")"),opacity:c},children:[(0,n.jsxs)("header",{className:"flex items-start justify-between gap-3",children:[(0,n.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,n.jsx)("p",{className:"truncate text-[10px] uppercase tracking-wider text-muted-foreground","data-testid":"memo-card-mission",children:a.missionTitle}),(0,n.jsx)("h3",{className:"font-heading text-base font-medium leading-snug","data-testid":"memo-card-title",children:u.title})]}),(0,n.jsx)("span",{"data-testid":"memo-card-verdict",className:"shrink-0 rounded-full px-2 py-0.5 text-[10px] font-medium ring-1 ".concat(v[s]),children:k[s]})]}),(0,n.jsx)("p",{className:"line-clamp-3 text-sm text-foreground","data-testid":"memo-card-intent",children:u.intent}),(0,n.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5 text-[10px]",children:[(0,n.jsxs)("span",{"data-testid":"memo-card-category",className:"inline-flex items-center gap-1 rounded-full bg-muted px-2 py-0.5 text-muted-foreground ring-1 ring-border",children:[(0,n.jsx)("span",{"aria-hidden":!0,children:null!=(t=y[u.category])?t:"•"}),u.category]}),(0,n.jsx)("span",{"data-testid":"memo-card-priority",className:"rounded-full px-2 py-0.5 font-medium ring-1 ".concat(null!=(r=b[u.priority])?r:b.low),children:u.priority}),u.workflowEligible?(0,n.jsx)("span",{"data-testid":"memo-card-workflow",className:"rounded-full bg-violet-500/15 px-2 py-0.5 text-violet-700 ring-1 ring-violet-500/30",children:"workflow"}):(0,n.jsx)("span",{"data-testid":"memo-card-workflow",className:"rounded-full bg-muted px-2 py-0.5 text-muted-foreground ring-1 ring-border",children:"no-workflow"}),m>0&&(0,n.jsxs)("span",{"data-testid":"memo-card-refs",className:"rounded-full bg-muted px-2 py-0.5 text-muted-foreground ring-1 ring-border",children:[m," ref",1===m?"":"s"]})]}),i&&(0,n.jsxs)("footer",{"data-testid":"memo-card-hint",className:"mt-auto grid grid-cols-2 gap-1 pt-2 text-[10px] text-muted-foreground",children:[(0,n.jsx)("span",{children:"← 거절"}),(0,n.jsx)("span",{className:"text-right",children:"승인 →"}),(0,n.jsx)("span",{children:"↑ 잠시 멈춤"}),(0,n.jsx)("span",{className:"text-right",children:"펼치기 ↓"})]})]})}function j(e,t,r,n){x.K.emit({surface:"pwa",intent:{layer:"selection",kind:"pwa.selection.toggle_change",target:{kind:"toggle",id:e},value:{from:t,to:r}},...n?{context:{active_workflow_run_id:n}}:{}})}let N={left:"reject",right:"approve",up:"defer",down:"expand"},I={ArrowLeft:"reject",ArrowRight:"approve",ArrowUp:"defer",ArrowDown:"expand"," ":"approve"},R={reject:"rejected",approve:"approved",defer:"deferred"};function S(){let{initialMemo:e,onClose:t}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{client:r}=(0,s.Q)(),l=(0,a.useMemo)(()=>new h(r),[r]),[d,o]=(0,a.useState)(null!=e?e:""),[c,u]=(0,a.useState)(!1),[m,f]=(0,a.useState)(null),[x,k]=(0,a.useState)({}),[v,b]=(0,a.useState)(0),[y,w]=(0,a.useState)(null),[N,I]=(0,a.useState)(null),[S,O]=(0,a.useState)(!1),[z,Y]=(0,a.useState)(""),D=(0,a.useRef)(null),[K,A]=(0,a.useState)(!1),[P,$]=(0,a.useState)(!1),[J,_]=(0,a.useState)(!1),[X,H]=(0,a.useState)(!1),V=(0,a.useMemo)(()=>m?function(e){let t=[];for(let r of e)for(let e of r.tasks)t.push({missionId:r.id,missionTitle:r.title,task:e});return t}(m.decomposition.missions):[],[m]),U=(0,a.useMemo)(()=>{let e={approved:0,rejected:0,deferred:0,pending:0};for(let r of V){var t;let n=null!=(t=x[r.task.taskKey])?t:"pending";e[n]+=1}return e},[V,x]),B=U.approved+U.rejected+U.deferred>0,q=(0,a.useMemo)(()=>V.filter(e=>"approved"===x[e.task.taskKey]).map(e=>e.task.taskKey),[V,x]),F=(0,a.useCallback)(()=>{f(null),k({}),b(0),w(null),I(null),O(!1),Y(""),null==t||t()},[t]),Q=(0,a.useCallback)(()=>{var e;null==(e=D.current)||e.click()},[]),W=(0,a.useCallback)(async e=>{var t,r;let n=null==(t=e.target.files)?void 0:t[0];if(e.target.value="",n){(0,g.cY)("intake.memo-preview.photo.pick",{name:n.name,size:n.size,type:n.type}),A(!0);try{let e=await l.submitPhotoOcr(n,n.name||"memo-photo.jpg"),t=(null!=(r=e.markdown)?r:"").trim();if(!t)return void p.oR.error("OCR 결과가 비어 있습니다 — 사진을 다시 찍거나 다른 이미지를 선택하세요.");o(e=>e.trim()?"".concat(t,"\n\n---\n\n").concat(e):t),p.oR.success("OCR 추가됨 (provider=".concat(e.provider," \xb7 ").concat(t.length,"자) — 수정 후 Run preview 누르세요."))}catch(e){p.oR.error("OCR 실패: ".concat(e instanceof Error?e.message:e)),(0,g.cY)("intake.memo-preview.photo.error",{err:String(e)})}finally{A(!1)}}},[l]),G=(0,a.useCallback)(async()=>{let e=d.trim(),t=z.trim();if(e&&t&&m){(0,g.cY)("intake.memo-preview.refine",{hintLen:t.length,useRealLlm:P}),u(!0),w(null),I(null);try{let r=await l.preview({rawText:e,refinementHint:t,priorDecomposition:{missions:m.decomposition.missions},...P?{useRealLlm:!0}:{},...X?{useRealEnrich:!0}:{}});f(r),k({}),b(0),Y(""),O(!1)}catch(e){p.oR.error("refine failed: ".concat(e instanceof Error?e.message:e)),(0,g.cY)("intake.memo-preview.refine.error",{err:String(e)})}finally{u(!1)}}},[l,d,z,m,P,X]),Z=(0,a.useCallback)(async()=>{let e=d.trim();if(e){(0,g.cY)("intake.memo-preview.submit",{length:e.length,useRealLlm:P,useRealEnrich:X}),u(!0),w(null),I(null);try{let t=await l.preview({rawText:e,...P?{useRealLlm:!0}:{},...X?{useRealEnrich:!0}:{}});f(t),k({}),b(0)}catch(e){p.oR.error("pipeline preview failed: ".concat(e instanceof Error?e.message:e)),(0,g.cY)("intake.memo-preview.error",{err:String(e)})}finally{u(!1)}}},[l,d,P,X]),ee=(0,a.useCallback)(e=>{if(!V.length||v>=V.length)return;let t=V[v];if((0,g.cY)("intake.memo-preview.decision",{taskKey:t.task.taskKey,decision:e}),"expand"===e)return void w(t);k(r=>({...r,[t.task.taskKey]:R[e]})),b(e=>Math.min(e+1,V.length))},[V,v]),et=(0,a.useCallback)(()=>{V.length&&((0,g.cY)("intake.memo-preview.approve-all-pending",{count:U.pending}),k(e=>{let t={...e};for(let e of V){var r;(null!=(r=t[e.task.taskKey])?r:"pending")==="pending"&&(t[e.task.taskKey]="approved")}return t}))},[V,U.pending]),er=(0,a.useCallback)(async()=>{var e,t,r;let n=d.trim();if(!n)return;let a=B?q:void 0;if(B&&0===q.length)return void p.oR.error("승인된 카드가 없습니다 — 카드를 → 스와이프해서 승인하세요.");(0,g.cY)("intake.memo-preview.register.submit",{length:n.length,mode:B?"selective":"express",includeCount:null!=(e=null==a?void 0:a.length)?e:null,useRealLlm:P,commitToTox:J}),u(!0);try{let e={rawText:n,...a?{includeTaskKeys:a}:{},...P?{useRealLlm:!0}:{},...X?{useRealEnrich:!0}:{}},s=J?await l.commit(e):await l.preview({...e,register:!0});f(s);let i=s.register;if(i){let e=null!=(r=null==(t=i.skippedTaskKeys)?void 0:t.length)?r:0;I({missions:i.missionIds.length,tasks:i.taskIds.length,skipped:e});let n=e>0?" \xb7 ".concat(e," skipped"):"",a=J?"~/.elanous/tasks/tasks.db":"in-memory";p.oR.success("registered ".concat(i.missionIds.length," mission").concat(1===i.missionIds.length?"":"s"," \xb7 ").concat(i.taskIds.length," task").concat(1===i.taskIds.length?"":"s"," (").concat(a,")").concat(n))}else p.oR.error("register skipped — endpoint returned no register payload")}catch(e){p.oR.error("register failed: ".concat(e instanceof Error?e.message:e)),(0,g.cY)("intake.memo-preview.register.error",{err:String(e)})}finally{u(!1)}},[l,d,B,q,P,J,X]);return(0,n.jsxs)("section",{className:"mx-auto flex max-w-md flex-col gap-4 p-4","data-testid":"memo-intake-preview",children:[(0,n.jsxs)("header",{className:"space-y-1",children:[(0,n.jsx)("h2",{className:"font-heading text-lg font-medium",children:"New from memo"}),(0,n.jsx)("p",{className:"text-xs text-muted-foreground",children:"Raw memo dump → 자동 task graph. ←/→/↑/↓ swipe = 거절/승인/잠시 멈춤/펼치기."}),(0,n.jsxs)("label",{"data-testid":"memo-intake-llm-toggle",className:"flex items-center gap-2 text-[10px] text-muted-foreground",children:[(0,n.jsx)("input",{type:"checkbox",checked:P,onChange:e=>{let t=e.target.checked;j("use-real-llm",P,t,null==m?void 0:m.intakeId),$(t)},disabled:c||K,"data-testid":"memo-intake-llm-toggle-input"}),(0,n.jsxs)("span",{children:[(0,n.jsx)("strong",{className:P?"text-foreground":"",children:"Enable Real LLM"})," ","— ",P?"실 streamLLM 호출 (provider 는 ~/.elanous/config.json \xb7 user-config 우선)":"LLM 미호출 \xb7 skeleton fallback \xb7 pipeline 흐름 + cards 렌더만 검증"]})]}),(0,n.jsxs)("label",{"data-testid":"memo-intake-enrich-toggle",className:"flex items-center gap-2 text-[10px] text-muted-foreground",children:[(0,n.jsx)("input",{type:"checkbox",checked:X,onChange:e=>{let t=e.target.checked;j("use-real-enrich",X,t,null==m?void 0:m.intakeId),H(t)},disabled:c||K,"data-testid":"memo-intake-enrich-toggle-input"}),(0,n.jsxs)("span",{children:[(0,n.jsx)("strong",{className:X?"text-foreground":"",children:"Enable Real enrich"})," ","— ",X?"URL fetch + gh repo view 호출 (keyword crawl 은 stub \xb7 FU-I7b.2)":'모든 enrichment 가 per-row "no plugin" diag \xb7 외부 HTTP 호출 0']})]}),(0,n.jsxs)("label",{"data-testid":"memo-intake-commit-toggle",className:"flex items-center gap-2 text-[10px] text-muted-foreground",children:[(0,n.jsx)("input",{type:"checkbox",checked:J,onChange:e=>{let t=e.target.checked;j("commit-to-tox",J,t,null==m?void 0:m.intakeId),_(t)},disabled:c||K,"data-testid":"memo-intake-commit-toggle-input"}),(0,n.jsxs)("span",{children:[(0,n.jsx)("strong",{className:J?"text-rose-700 dark:text-rose-400":"",children:"Commit to real TOX"})," ","— ",J?"Register 가 ~/.elanous/tasks/tasks.db 에 실 mission/task 쓰기 + workflow YAML 디스크 저장 (되돌릴 수 없음)":"Register 가 in-memory store 만 사용 \xb7 사용자 TOX 미터치"]})]})]}),(0,n.jsx)("textarea",{value:d,onChange:e=>o(e.target.value),placeholder:"- 스크린 레코딩 능력 흡수\n https://github.com/siddharthvaddem/openscreen\n- 이미지 바로 보기 안 되는 이유 분석\n\n==== 다이어그램 강화 ====\n위젯 surface \xb7 Mermaid \xb7 DrawIO repo 확인",rows:6,disabled:c,"data-testid":"memo-intake-textarea",className:"w-full resize-y rounded-md border border-input bg-background px-3 py-2 font-mono text-sm shadow-xs focus:outline-none focus:ring-2 focus:ring-ring"}),(0,n.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,n.jsx)(i.$,{type:"button",size:"sm",onClick:()=>void Z(),disabled:c||K||!d.trim(),"data-testid":"memo-intake-submit",children:c&&!m?"Running…":"Run preview"}),(0,n.jsx)(i.$,{type:"button",size:"sm",variant:"ghost",onClick:Q,disabled:c||K,"data-testid":"memo-intake-photo","aria-label":"upload photo for OCR",title:"사진 / 화이트보드 / post-it → OCR → memo",children:K?"⏳ OCR…":"\uD83D\uDCF7 Photo"}),(0,n.jsx)("input",{ref:D,type:"file",accept:"image/*",capture:"environment",className:"hidden","data-testid":"memo-intake-photo-input",onChange:e=>void W(e)}),m&&(0,n.jsx)(i.$,{type:"button",size:"sm",variant:"ghost",onClick:F,disabled:c,"data-testid":"memo-intake-reset",children:"Reset"})]}),m&&(0,n.jsx)(L,{res:m,registered:N}),m&&null===N&&(0,n.jsx)(E,{open:S,hint:z,busy:c,onToggle:()=>O(e=>!e),onHintChange:Y,onSubmit:()=>void G()}),m&&V.length>0&&(0,n.jsx)(M,{cards:V,verdicts:x,topIndex:v,onSwipe:ee}),m&&V.length>0&&(0,n.jsx)(C,{tallies:U,total:V.length}),m&&V.length>0&&(0,n.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,n.jsx)(i.$,{type:"button",size:"sm",variant:"ghost",onClick:et,disabled:c||0===U.pending||null!==N,"data-testid":"memo-intake-approve-pending",children:"Approve all pending (".concat(U.pending,")")}),(0,n.jsx)(i.$,{type:"button",size:"sm",onClick:()=>void er(),disabled:c||null!==N||B&&0===q.length,"data-testid":"memo-intake-register",children:N?"Registered ✓ (".concat(N.tasks," tasks)"):c?"Registering…":B?"Register approved (".concat(q.length,")"):"Register all (".concat(V.length,")")}),(0,n.jsx)("span",{className:"text-[10px] text-muted-foreground",children:"".concat(v," / ").concat(V.length," reviewed")})]}),y&&(0,n.jsx)(T,{card:y,onClose:()=>w(null)})]})}function C(e){let{tallies:t,total:r}=e;return(0,n.jsxs)("div",{"data-testid":"memo-intake-tally",className:"flex flex-wrap items-center gap-2 text-[10px] text-muted-foreground",children:[(0,n.jsxs)("span",{className:"font-medium",children:[r," 카드"]}),(0,n.jsxs)("span",{"data-testid":"memo-tally-approved",className:"rounded-full bg-emerald-500/15 px-2 py-0.5 text-emerald-700 ring-1 ring-emerald-500/30",children:["✓ ",t.approved]}),(0,n.jsxs)("span",{"data-testid":"memo-tally-rejected",className:"rounded-full bg-rose-500/15 px-2 py-0.5 text-rose-700 ring-1 ring-rose-500/30",children:["✗ ",t.rejected]}),(0,n.jsxs)("span",{"data-testid":"memo-tally-deferred",className:"rounded-full bg-amber-500/15 px-2 py-0.5 text-amber-700 ring-1 ring-amber-500/30",children:["⏸ ",t.deferred]}),(0,n.jsxs)("span",{"data-testid":"memo-tally-pending",className:"rounded-full bg-muted px-2 py-0.5 ring-1 ring-border",children:["… ",t.pending]})]})}function E(e){let{open:t,hint:r,busy:a,onToggle:s,onHintChange:l,onSubmit:d}=e;return(0,n.jsxs)("div",{"data-testid":"memo-intake-refine",className:"space-y-2",children:[(0,n.jsx)(i.$,{type:"button",size:"sm",variant:"ghost",onClick:s,disabled:a,"data-testid":"memo-intake-refine-toggle",className:"text-xs",children:t?"↓ Hide refine":"↻ Refine decomposition"}),t&&(0,n.jsxs)("div",{className:"space-y-2 rounded-lg border border-dashed border-border bg-card/30 p-3",children:[(0,n.jsx)("p",{className:"text-[10px] text-muted-foreground",children:"LLM 에 다시 prompt — 원본 memo + 이전 분해 + hint 를 함께 보냅니다. 결과 카드의 verdict 는 초기화됩니다."}),(0,n.jsx)("textarea",{value:r,onChange:e=>l(e.target.value),placeholder:'예: "missions 더 작게" \xb7 "P0 만 남겨" \xb7 "t-9 ~ t-11 을 하나로 합쳐"',rows:2,disabled:a,"data-testid":"memo-intake-refine-textarea",className:"w-full resize-y rounded-md border border-input bg-background px-2 py-1.5 text-xs shadow-xs focus:outline-none focus:ring-2 focus:ring-ring"}),(0,n.jsx)(i.$,{type:"button",size:"sm",onClick:d,disabled:a||!r.trim(),"data-testid":"memo-intake-refine-submit",children:a?"Refining…":"Re-run with hint"})]})]})}function L(e){let{res:t,registered:r}=e;return(0,n.jsxs)("div",{"data-testid":"memo-intake-summary",className:"space-y-1 rounded-lg border border-dashed border-border bg-card/50 p-3 text-xs text-muted-foreground",children:[(0,n.jsxs)("p",{children:["intake ",(0,n.jsx)("code",{"data-testid":"memo-intake-id",className:"rounded bg-muted px-1 text-foreground",children:t.intakeId})," \xb7 ",t.decomposition.fallback?"skeleton fallback":"live"]}),(0,n.jsxs)("p",{children:[t.decomposition.missionCount," mission",1===t.decomposition.missionCount?"":"s"," \xb7"," ",t.decomposition.taskCount," task",1===t.decomposition.taskCount?"":"s"," \xb7"," ","workflow-eligible ",t.categorize.counts.workflowEligible,"/",t.categorize.counts.total," \xb7"," ","deps ",t.align.dependencyCount]}),r&&(0,n.jsxs)("p",{"data-testid":"memo-intake-registered",className:"text-emerald-600 dark:text-emerald-400",children:["✓ registered ",r.missions," mission",1===r.missions?"":"s"," \xb7 ",r.tasks," task",1===r.tasks?"":"s"," (in-memory)",r.skipped>0?" \xb7 ".concat(r.skipped," skipped"):""]})]})}function M(e){let{cards:t,verdicts:r,topIndex:s,onSwipe:i}=e,l=(0,a.useRef)(null),d=(0,a.useRef)(i);if((0,a.useEffect)(()=>{d.current=i},[i]),(0,a.useEffect)(()=>{let e=l.current;if(e)return(0,f.ix)(e,{onSwipe:e=>d.current(N[e])})},[]),(0,a.useEffect)(()=>{if(s>=t.length)return;let e=e=>{let t=I[e.key];t&&(e.preventDefault(),d.current(t))};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[s,t.length]),s>=t.length)return(0,n.jsx)("div",{"data-testid":"memo-deck-empty",className:"flex h-72 items-center justify-center rounded-2xl border border-dashed border-border text-sm text-muted-foreground",children:'모든 카드 검토 완료 — 아래 "Approve all & Register" 를 눌러 등록.'});let o=t.slice(s,s+3);return(0,n.jsxs)("div",{ref:l,"data-testid":"memo-deck","data-top-index":s,role:"region","aria-label":"memo intake card deck \xb7 좌우 = 거절/승인 \xb7 위 = 잠시 멈춤 \xb7 아래 = 펼치기",tabIndex:0,className:"relative h-80 select-none touch-none",children:[o.map((e,t)=>{var a;return(0,n.jsx)(w,{card:e,verdict:null!=(a=r[e.task.taskKey])?a:"pending",active:0===t,stackIndex:t},e.task.taskKey)}),(0,n.jsxs)("div",{"data-testid":"memo-deck-progress",className:"absolute -bottom-6 left-0 right-0 text-center text-[10px] text-muted-foreground",children:[s+1," / ",t.length]})]})}function T(e){let{card:t,onClose:r}=e,{task:a}=t;return(0,n.jsx)("div",{"data-testid":"memo-card-expand",role:"dialog","aria-modal":"true",className:"fixed inset-0 z-50 flex items-end justify-center bg-foreground/40 p-4 sm:items-center",onClick:r,children:(0,n.jsxs)("div",{onClick:e=>e.stopPropagation(),className:"w-full max-w-md space-y-3 rounded-2xl border border-border bg-card p-5 shadow-xl",children:[(0,n.jsxs)("header",{className:"space-y-1",children:[(0,n.jsx)("p",{className:"text-[10px] uppercase tracking-wider text-muted-foreground",children:t.missionTitle}),(0,n.jsx)("h3",{className:"font-heading text-base font-medium",children:a.title})]}),(0,n.jsx)("p",{className:"text-sm text-foreground",children:a.intent}),(a.urls.length>0||a.keywords.length>0||a.refs.length>0)&&(0,n.jsxs)("div",{className:"space-y-1 text-xs text-muted-foreground",children:[a.urls.length>0&&(0,n.jsxs)("p",{"data-testid":"memo-card-expand-urls",children:["URLs: ",a.urls.join(" \xb7 ")]}),a.keywords.length>0&&(0,n.jsxs)("p",{"data-testid":"memo-card-expand-keywords",children:["Keywords: ",a.keywords.join(" \xb7 ")]}),a.refs.length>0&&(0,n.jsxs)("p",{"data-testid":"memo-card-expand-refs",children:["Refs: ",a.refs.join(" \xb7 ")]})]}),(0,n.jsxs)("p",{className:"text-[10px] text-muted-foreground",children:[a.category," \xb7 ",a.priority," priority \xb7 ",a.workflowEligible?"workflow":"no-workflow"," \xb7 confidence ",a.confidence]}),(0,n.jsx)("div",{className:"flex justify-end pt-1",children:(0,n.jsx)(i.$,{type:"button",size:"sm",variant:"ghost",onClick:r,"data-testid":"memo-card-expand-close",children:"Close"})})]})})}let O="elanous.intake.recent",z={absorb:"→ 흡수",tasks:"→ 작업",graph:"→ 그래프","ask-human":"→ 직접 고르세요"};function Y(e){if(null==e?void 0:e.storage)return e.storage;try{return globalThis.localStorage}catch(e){return null}}function D(e){try{var t;let r=null==(t=Y(e))?void 0:t.getItem(O);if(!r)return[];let n=JSON.parse(r);return Array.isArray(n)?n:[]}catch(e){return[]}}async function K(e,t,r){let n=(0,l.cE)(r);return"absorb"===t?{absorbIds:(await (0,l.IH)(e,r)).ids,recentPreview:n}:{acceptanceId:(await (0,l.ZJ)(e,r)).acceptanceId,recentPreview:n}}function A(){var e,t;let{state:r,deps:d}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{client:o}=(0,s.Q)(),[u,p]=(0,a.useState)(""),[g,f]=(0,a.useState)(!1),[h,x]=(0,a.useState)(null),[k,v]=(0,a.useState)(null),[b,y]=(0,a.useState)(null),[w,j]=(0,a.useState)(null),[N,I]=(0,a.useState)({}),[R,C]=(0,a.useState)(!1),[E,L]=(0,a.useState)(""),[M,T]=(0,a.useState)([]),[A,P]=(0,a.useState)({}),$=(0,a.useRef)(A),J=(0,a.useMemo)(()=>[...new Set(M.filter(e=>"absorb"===e.track).flatMap(e=>{var t;return null!=(t=e.ids)?t:[]}))],[M]),_=(0,a.useRef)(J);_.current=J;let X=(0,a.useRef)(()=>{}),[H,V]=(0,a.useState)(null),[U,B]=(0,a.useState)(!1),q=(0,a.useRef)(!1),F=(0,a.useRef)(0),Q=(0,a.useRef)(u);Q.current=u;let W=(0,a.useRef)(null),G=(0,a.useRef)(N),Z=(0,a.useRef)(M),ee=(0,a.useMemo)(()=>[...new Set([...M.filter(e=>"graph"===e.track).map(e=>e.runId),null==w?void 0:w.runId].filter(e=>!!e))],[M,null==w?void 0:w.runId]);(0,a.useEffect)(()=>{T(D(d))},[d]),(0,a.useEffect)(()=>{Z.current=M},[M]),(0,a.useEffect)(()=>{let e=!1,t=new Map,r=async n=>{var a;if(e||!_.current.includes(n)||c(null!=(a=$.current[n])?a:null).settled)return;let s=null;try{s=await (0,l.Gm)(o,n)}catch(e){}e||($.current={...$.current,[n]:s},P($.current),_.current.includes(n)&&!c(s).settled?t.set(n,setTimeout(()=>{r(n)},6e4)):t.delete(n))};return X.current=e=>{var n;t.has(e)||c(null!=(n=$.current[e])?n:null).settled||(t.set(e,null),r(e))},_.current.forEach(X.current),()=>{for(let r of(e=!0,t.values()))null!==r&&clearTimeout(r);t.clear(),X.current=()=>{}}},[o]),(0,a.useEffect)(()=>{J.forEach(X.current)},[J]);let et=(0,a.useCallback)(e=>{var t,r;T(function(e,t){let r=[e,...D(t)].slice(0,20);try{var n;null==(n=Y(t))||n.setItem(O,JSON.stringify(r))}catch(e){}return r}({...e,at:null!=(r=null==d||null==(t=d.now)?void 0:t.call(d))?r:new Date().toISOString()},d))},[d]),er=(0,a.useCallback)(async()=>{let e=u.trim();if(e&&!g){f(!0),x(null),v(null);try{var t;let r=await K(o,"absorb",e);v(null!=(t=r.absorbIds)?t:[]),et({track:"absorb",preview:r.recentPreview,ids:r.absorbIds})}catch(e){x(e instanceof Error?e.message:String(e))}finally{f(!1)}}},[g,o,et,u]),en=(0,a.useCallback)(()=>{let e=u.trim();e&&!g&&(L(e),C(!0),et({track:"split",preview:(0,l.cE)(e)}))},[g,et,u]),ea=(0,a.useCallback)(async()=>{let e=u.trim();if(e&&!g){f(!0),x(null),y(null),j(null);try{var t;let r=await K(o,"graph",e);y(null!=(t=r.acceptanceId)?t:null),W.current=Date.now(),et({track:"graph",preview:r.recentPreview,acceptanceId:r.acceptanceId})}catch(e){x(e instanceof Error?e.message:String(e))}finally{f(!1)}}},[g,o,et,u]);(0,a.useEffect)(()=>{let e=++F.current;if(V(null),!u.trim())return;let t=function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e)},n=e.trim();if(!n)return()=>{};let a=r.setTimeout(()=>t(n),500);return()=>r.clearTimeout(a)}(u,t=>{(0,l.sg)(o,t).then(t=>{F.current===e&&V(t)},()=>{F.current===e&&V(null)})});return()=>{++F.current,t()}},[o,u]);let es=(0,a.useCallback)(async()=>{let e=u.trim();if(!e||q.current||g||(null==H?void 0:H.reason)!=="rule-unknown")return;let t=++F.current;q.current=!0,B(!0);try{let r=await (0,l.sg)(o,e,{classify:!0});F.current===t&&Q.current.trim()===e&&V(r)}catch(r){F.current===t&&Q.current.trim()===e&&V({track:"ask-human",confidence:0,reason:"classifier-failed:request-error",decidedBy:"classifier"})}finally{q.current=!1,B(!1)}},[g,o,null==H?void 0:H.reason,u]);(0,a.useEffect)(()=>{if(!b)return;let e=!1,t=async()=>{var t,r;if(e)return;let n=null!=(t=W.current)?t:Date.now();if(!(Date.now()-n>3e5))try{let t=await (0,l.PM)(o,b);if(!e&&(j(t),t.runId&&Z.current.some(e=>"graph"===e.track&&e.acceptanceId===b&&e.runId!==t.runId))){let e=Z.current.map(e=>"graph"===e.track&&e.acceptanceId===b?{...e,runId:t.runId}:e);Z.current=e;try{null==(r=Y(d))||r.setItem(O,JSON.stringify(e))}catch(e){}T(e)}}catch(e){}};t();let r=setInterval(()=>{t()},5e3);return()=>{e=!0,clearInterval(r)}},[b,o,d]),(0,a.useEffect)(()=>{G.current=N},[N]),(0,a.useEffect)(()=>{let e;if(0===ee.length)return;let t=!1,r=!1,n=async()=>{if(t||r)return;let a=ee.filter(e=>{var t;return!m(null!=(t=G.current[e])?t:[]).done});if(0!==a.length){r=!0;try{let e=await Promise.allSettled(a.map(e=>(0,l.dy)(o,e)));if(t)return;let r={};e.forEach((e,t)=>{"fulfilled"===e.status&&(r[a[t]]=e.value)}),Object.keys(r).length>0&&(G.current={...G.current,...r},I(G.current))}finally{r=!1,!t&&ee.some(e=>{var t;return!m(null!=(t=G.current[e])?t:[]).done})&&(e=setTimeout(()=>{n()},3e4))}}};return n(),()=>{t=!0,e&&clearTimeout(e)}},[o,ee]);let ei=null!=r?r:{text:u,busy:g,error:h,absorbIds:k,acceptanceId:b,graph:w,runEvents:N,splitOpen:R,splitMemo:E,recent:M,route:H},el=(0,a.useMemo)(()=>{var e,t;return ei.acceptanceId?{acceptanceId:ei.acceptanceId,phase:null==(e=ei.graph)?void 0:e.phase,runId:null==(t=ei.graph)?void 0:t.runId}:null},[ei.acceptanceId,ei.graph]),ed=0===ei.text.trim().length,eo=null!=(e=ei.route)?e:null,ec=eo?"absorb"===(t=eo.track)?"absorb":"tasks"===t?"split":"graph"===t?"graph":null:null,eu=e=>ec===e?"ring-2 ring-ring":void 0;return(0,n.jsxs)("section",{className:"mx-auto flex max-w-lg flex-col gap-4 p-4","data-testid":"intake-front-door",children:[(0,n.jsx)("header",{className:"space-y-1",children:(0,n.jsx)("h1",{className:"font-heading text-lg font-medium",children:"Intake"})}),(0,n.jsx)("textarea",{value:ei.text,onChange:e=>p(e.target.value),rows:6,disabled:ei.busy,"data-testid":"intake-front-door-field","aria-label":"intake",className:"w-full resize-y rounded-md border border-input bg-background px-3 py-2 text-sm shadow-xs focus:outline-none focus:ring-2 focus:ring-ring"}),(0,n.jsx)("p",{className:"text-xs text-muted-foreground","data-testid":"intake-front-door-explainer",children:"보내면 elanous 가 이 글을 처리합니다(흡수 \xb7 작업 분할 \xb7 그래프 실행)."}),eo&&(0,n.jsxs)("div",{"data-testid":"intake-route-chip","data-auto-submit":"0",className:"space-y-0.5 text-sm",children:[(0,n.jsx)("p",{"data-testid":"intake-route-chip-label",children:z[eo.track]}),"classifier"===eo.decidedBy&&(0,n.jsxs)("p",{"data-testid":"intake-route-chip-classifier",children:["분류기 판정 \xb7 확신 ",Math.round(100*eo.confidence),"%"]}),(0,n.jsx)("p",{"data-testid":"intake-route-chip-reason",className:"text-xs text-muted-foreground",children:function(e){if("classifier"!==e.decidedBy)return e.reason;if(e.reason.startsWith("classifier-failed:"))return"분류기가 못 갈랐습니다 — 직접 골라 주세요";if(e.reason.startsWith("classifier-low-confidence:")){var t,r;let n=e.reason.slice(26);return"분류기 추정: ".concat(null!=(r=null==(t=z[n])?void 0:t.slice(2))?r:n," (확신 낮음)")}return e.reason}(eo)}),"rule-unknown"===eo.reason&&(0,n.jsx)(i.$,{type:"button",size:"sm",variant:"outline",disabled:U||ei.busy||ed,onClick:()=>void es(),"data-testid":"intake-route-classify",children:"분류기로 가르기"})]}),(0,n.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,n.jsx)(i.$,{type:"button",size:"sm",className:eu("absorb"),"aria-pressed":"absorb"===ec,disabled:ed||ei.busy,onClick:()=>void er(),"data-testid":"intake-absorb","data-emphasized":"absorb"===ec?"true":"false",children:"흡수"}),(0,n.jsx)(i.$,{type:"button",size:"sm",variant:"outline",className:eu("split"),"aria-pressed":"split"===ec,disabled:ed||ei.busy,onClick:en,"data-testid":"intake-split","data-emphasized":"split"===ec?"true":"false",children:"작업으로 나누기"}),(0,n.jsx)(i.$,{type:"button",size:"sm",variant:"secondary",className:eu("graph"),"aria-pressed":"graph"===ec,disabled:ed||ei.busy,onClick:()=>void ea(),"data-testid":"intake-graph","data-emphasized":"graph"===ec?"true":"false",children:"그래프로 실행"})]}),ei.absorbIds&&(0,n.jsxs)("div",{"data-testid":"intake-absorb-result",className:"space-y-1 text-sm",children:[(0,n.jsx)("p",{children:"대기열에 넣었습니다(아침 정기 흡수에서 처리)"}),(0,n.jsx)("ul",{children:ei.absorbIds.map(e=>(0,n.jsx)("li",{"data-testid":"intake-absorb-id",children:e},e))})]}),el&&(0,n.jsxs)("div",{"data-testid":"intake-graph-result",className:"space-y-1 text-sm",children:[(0,n.jsx)("p",{"data-testid":"intake-acceptance-id",children:el.acceptanceId}),el.phase&&(0,n.jsx)("p",{"data-testid":"intake-graph-phase",children:el.phase}),el.runId&&(0,n.jsx)("p",{"data-testid":"intake-graph-run",children:el.runId})]}),ei.error&&(0,n.jsx)("p",{className:"text-sm text-destructive","data-testid":"intake-front-door-error",children:ei.error}),ei.splitOpen&&(0,n.jsx)("div",{"data-testid":"intake-split-host",children:(0,n.jsx)(S,{initialMemo:ei.splitMemo,onClose:()=>C(!1)})}),ei.recent.length>0&&(0,n.jsx)("ul",{"data-testid":"intake-recent",className:"space-y-1 text-xs text-muted-foreground",children:ei.recent.map((e,t)=>{var r;let a=(e=>{var t,r,n;let a=null!=(r=e.runId)?r:e.acceptanceId===ei.acceptanceId?null==el?void 0:el.runId:void 0;return a?m(null!=(n=null==(t=ei.runEvents)?void 0:t[a])?n:[]):null})(e);return(0,n.jsxs)("li",{"data-testid":"intake-recent-row",children:[e.track," \xb7 ",e.preview,e.ids?" \xb7 ".concat(e.ids.join(", ")):"","absorb"===e.track&&(null==(r=e.ids)?void 0:r.map(e=>{var t,r;let a=Object.hasOwn(A,e)?c(null!=(t=A[e])?t:null):null;return(0,n.jsxs)("span",{"data-testid":"intake-absorb-status",children:[" \xb7 흡수: ",null!=(r=null==a?void 0:a.label)?r:"조회 중",(null==a?void 0:a.noteRef)?" \xb7 ".concat(a.noteRef):""]},e)})),e.acceptanceId?" \xb7 ".concat(e.acceptanceId):"",(null==a?void 0:a.stage)&&(0,n.jsxs)("span",{"data-testid":"intake-run-stage",children:[" \xb7 단계: ",a.stage]}),(null==a?void 0:a.lastEventAt)&&(0,n.jsxs)("time",{"data-testid":"intake-run-last-event",dateTime:a.lastEventAt,children:[" \xb7 마지막 사건: ",a.lastEventAt]}),(null==a?void 0:a.done)&&(0,n.jsxs)("span",{"data-testid":"intake-run-outcome",children:[" \xb7 ","completed"===a.outcome?"완료":"failed"===a.outcome?"실패":"결과 미상",a.error?" \xb7 ".concat(a.error.split("\n")[0]):""]})]},"".concat(e.at,"-").concat(t))})})]})}}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9269],{39269:(e,s,t)=>{t.d(s,{parseTerminalSse:()=>n});function n(e){let s,t=[],n=e;for(;(s=n.indexOf("\n\n"))>=0;){let e,r=n.slice(0,s);n=n.slice(s+2);let p="message",o=[];for(let e of r.split("\n"))e.startsWith("event: ")?p=e.slice(7).trim():e.startsWith("data: ")&&o.push(e.slice(6));if(0===o.length)continue;try{e=JSON.parse(o.join("\n"))}catch(e){continue}let a=null!=e?e:{};"mode"===p&&("bytes"===a.mode||"screen"===a.mode)?t.push({type:"mode",mode:a.mode,..."number"==typeof a.pollMs?{pollMs:a.pollMs}:{}}):"reset"===p&&"string"==typeof a.screen?t.push({type:"reset",screen:a.screen}):"data"===p&&"string"==typeof e?t.push({type:"data",chunk:e}):"screen"===p&&"string"==typeof a.screen?t.push({type:"screen",screen:a.screen}):"status"===p&&"string"==typeof a.status?t.push({type:"status",status:a.status}):"end"===p&&t.push({type:"end",reason:"string"==typeof a.reason?a.reason:"end"})}return{events:t,rest:n}}}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9538],{5318:(t,e,s)=>{s.d(e,{Cp:()=>y,EN:()=>p,F$:()=>f,GU:()=>Q,MK:()=>l,S$:()=>r,ZM:()=>F,ZZ:()=>S,Zw:()=>a,d2:()=>h,f8:()=>v,gn:()=>o,hT:()=>P,j3:()=>u,lQ:()=>n,nJ:()=>d,nU:()=>c,ox:()=>j,pl:()=>O,y9:()=>q,yy:()=>w});var i=s(17251),r="undefined"==typeof window||"Deno"in globalThis;function n(){}function a(t,e){return"function"==typeof t?t(e):t}function o(t){return"number"==typeof t&&t>=0&&t!==1/0}function u(t,e){return Math.max(t+(e||0)-Date.now(),0)}function h(t,e){return"function"==typeof t?t(e):t}function c(t,e){return"function"==typeof t?t(e):t}function l(t,e){let{type:s="all",exact:i,fetchStatus:r,predicate:n,queryKey:a,stale:o}=t;if(a){if(i){if(e.queryHash!==f(a,e.options))return!1}else if(!y(e.queryKey,a))return!1}if("all"!==s){let t=e.isActive();if("active"===s&&!t||"inactive"===s&&t)return!1}return("boolean"!=typeof o||e.isStale()===o)&&(!r||r===e.state.fetchStatus)&&(!n||!!n(e))}function d(t,e){let{exact:s,status:i,predicate:r,mutationKey:n}=t;if(n){if(!e.options.mutationKey)return!1;if(s){if(p(e.options.mutationKey)!==p(n))return!1}else if(!y(e.options.mutationKey,n))return!1}return(!i||e.state.status===i)&&(!r||!!r(e))}function f(t,e){return(e?.queryKeyHashFn||p)(t)}function p(t){return JSON.stringify(t,(t,e)=>g(e)?Object.keys(e).sort().reduce((t,s)=>(t[s]=e[s],t),{}):e)}function y(t,e){return t===e||typeof t==typeof e&&!!t&&!!e&&"object"==typeof t&&"object"==typeof e&&Object.keys(e).every(s=>y(t[s],e[s]))}var m=Object.prototype.hasOwnProperty;function v(t,e){if(!e||Object.keys(t).length!==Object.keys(e).length)return!1;for(let s in t)if(t[s]!==e[s])return!1;return!0}function b(t){return Array.isArray(t)&&t.length===Object.keys(t).length}function g(t){if(!C(t))return!1;let e=t.constructor;if(void 0===e)return!0;let s=e.prototype;return!!C(s)&&!!s.hasOwnProperty("isPrototypeOf")&&Object.getPrototypeOf(t)===Object.prototype}function C(t){return"[object Object]"===Object.prototype.toString.call(t)}function w(t){return new Promise(e=>{i.zs.setTimeout(e,t)})}function O(t,e,s){return"function"==typeof s.structuralSharing?s.structuralSharing(t,e):!1!==s.structuralSharing?function t(e,s,i=0){if(e===s)return e;if(i>500)return s;let r=b(e)&&b(s);if(!r&&!(g(e)&&g(s)))return s;let n=(r?e:Object.keys(e)).length,a=r?s:Object.keys(s),o=a.length,u=r?Array(o):{},h=0;for(let c=0;c<o;c++){let o=r?c:a[c],l=e[o],d=s[o];if(l===d){u[o]=l,(r?c<n:m.call(e,o))&&h++;continue}if(null===l||null===d||"object"!=typeof l||"object"!=typeof d){u[o]=d;continue}let f=t(l,d,i+1);u[o]=f,f===l&&h++}return n===o&&h===n?e:u}(t,e):e}function q(t,e,s=0){let i=[...t,e];return s&&i.length>s?i.slice(1):i}function S(t,e,s=0){let i=[e,...t];return s&&i.length>s?i.slice(0,-1):i}var P=Symbol();function F(t,e){return!t.queryFn&&e?.initialPromise?()=>e.initialPromise:t.queryFn&&t.queryFn!==P?t.queryFn:()=>Promise.reject(Error(`Missing queryFn: '${t.queryHash}'`))}function Q(t,e){return"function"==typeof t?t(...e):!!t}function j(t,e,s){let i,r=!1;return Object.defineProperty(t,"signal",{enumerable:!0,get:()=>(i??=e(),r||(r=!0,i.aborted?s():i.addEventListener("abort",s,{once:!0})),i)}),t}},6730:(t,e,s)=>{s.d(e,{II:()=>l,cc:()=>c,v_:()=>h});var i=s(56542),r=s(86117),n=s(74682),a=s(40309),o=s(5318);function u(t){return Math.min(1e3*2**t,3e4)}function h(t){return(t??"online")!=="online"||r.t.isOnline()}var c=class extends Error{constructor(t){super("CancelledError"),this.revert=t?.revert,this.silent=t?.silent}};function l(t){let e,s=!1,l=0,d=(0,n.T)(),f=()=>i.m.isFocused()&&("always"===t.networkMode||r.t.isOnline())&&t.canRun(),p=()=>h(t.networkMode)&&t.canRun(),y=t=>{"pending"===d.status&&(e?.(),d.resolve(t))},m=t=>{"pending"===d.status&&(e?.(),d.reject(t))},v=()=>new Promise(s=>{e=t=>{("pending"!==d.status||f())&&s(t)},t.onPause?.()}).then(()=>{e=void 0,"pending"===d.status&&t.onContinue?.()}),b=()=>{let e;if("pending"!==d.status)return;let i=0===l?t.initialPromise:void 0;try{e=i??t.fn()}catch(t){e=Promise.reject(t)}Promise.resolve(e).then(y).catch(e=>{if("pending"!==d.status)return;let i=t.retry??3*!a.H.isServer(),r=t.retryDelay??u,n="function"==typeof r?r(l,e):r,h=!0===i||"number"==typeof i&&l<i||"function"==typeof i&&i(l,e);if(s||!h)return void m(e);l++,t.onFail?.(l,e),(0,o.yy)(n).then(()=>f()?void 0:v()).then(()=>{s?m(e):b()})})};return{promise:d,status:()=>d.status,cancel:e=>{if("pending"===d.status){let s=new c(e);m(s),t.onCancel?.(s)}},continue:()=>(e?.(),d),cancelRetry:()=>{s=!0},continueRetry:()=>{s=!1},canStart:p,start:()=>(p()?b():v().then(b),d)}}},12146:(t,e,s)=>{s.d(e,{$:()=>o,s:()=>a});var i=s(23515),r=s(46050),n=s(6730),a=class extends r.k{#t;#e;#s;#i;constructor(t){super(),this.#t=t.client,this.mutationId=t.mutationId,this.#s=t.mutationCache,this.#e=[],this.state=t.state||o(),this.setOptions(t.options),this.scheduleGc()}setOptions(t){this.options=t,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(t){this.#e.includes(t)||(this.#e.push(t),this.clearGcTimeout(),this.#s.notify({type:"observerAdded",mutation:this,observer:t}))}removeObserver(t){this.#e=this.#e.filter(e=>e!==t),this.scheduleGc(),this.#s.notify({type:"observerRemoved",mutation:this,observer:t})}optionalRemove(){this.#e.length||("pending"===this.state.status?this.scheduleGc():this.#s.remove(this))}continue(){return this.#i?.continue()??this.execute(this.state.variables)}async execute(t){let e=()=>{this.#r({type:"continue"})},s={client:this.#t,meta:this.options.meta,mutationKey:this.options.mutationKey};this.#i=(0,n.II)({fn:()=>this.options.mutationFn?this.options.mutationFn(t,s):Promise.reject(Error("No mutationFn found")),onFail:(t,e)=>{this.#r({type:"failed",failureCount:t,error:e})},onPause:()=>{this.#r({type:"pause"})},onContinue:e,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>this.#s.canRun(this)});let i="pending"===this.state.status,r=!this.#i.canStart();try{if(i)e();else{this.#r({type:"pending",variables:t,isPaused:r}),this.#s.config.onMutate&&await this.#s.config.onMutate(t,this,s);let e=await this.options.onMutate?.(t,s);e!==this.state.context&&this.#r({type:"pending",context:e,variables:t,isPaused:r})}let n=await this.#i.start();return await this.#s.config.onSuccess?.(n,t,this.state.context,this,s),await this.options.onSuccess?.(n,t,this.state.context,s),await this.#s.config.onSettled?.(n,null,this.state.variables,this.state.context,this,s),await this.options.onSettled?.(n,null,t,this.state.context,s),this.#r({type:"success",data:n}),n}catch(e){try{await this.#s.config.onError?.(e,t,this.state.context,this,s)}catch(t){Promise.reject(t)}try{await this.options.onError?.(e,t,this.state.context,s)}catch(t){Promise.reject(t)}try{await this.#s.config.onSettled?.(void 0,e,this.state.variables,this.state.context,this,s)}catch(t){Promise.reject(t)}try{await this.options.onSettled?.(void 0,e,t,this.state.context,s)}catch(t){Promise.reject(t)}throw this.#r({type:"error",error:e}),e}finally{this.#s.runNext(this)}}#r(t){this.state=(e=>{switch(t.type){case"failed":return{...e,failureCount:t.failureCount,failureReason:t.error};case"pause":return{...e,isPaused:!0};case"continue":return{...e,isPaused:!1};case"pending":return{...e,context:t.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:t.isPaused,status:"pending",variables:t.variables,submittedAt:Date.now()};case"success":return{...e,data:t.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...e,data:void 0,error:t.error,failureCount:e.failureCount+1,failureReason:t.error,isPaused:!1,status:"error"}}})(this.state),i.jG.batch(()=>{this.#e.forEach(e=>{e.onMutationUpdate(t)}),this.#s.notify({mutation:this,type:"updated",action:t})})}};function o(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}},17251:(t,e,s)=>{s.d(e,{Zq:()=>n,zs:()=>r});var i={setTimeout:(t,e)=>setTimeout(t,e),clearTimeout:t=>clearTimeout(t),setInterval:(t,e)=>setInterval(t,e),clearInterval:t=>clearInterval(t)},r=new class{#n=i;#a=!1;setTimeoutProvider(t){this.#n=t}setTimeout(t,e){return this.#n.setTimeout(t,e)}clearTimeout(t){this.#n.clearTimeout(t)}setInterval(t,e){return this.#n.setInterval(t,e)}clearInterval(t){this.#n.clearInterval(t)}};function n(t){setTimeout(t,0)}},23515:(t,e,s)=>{s.d(e,{jG:()=>r});var i=s(17251).Zq,r=function(){let t=[],e=0,s=t=>{t()},r=t=>{t()},n=i,a=i=>{e?t.push(i):n(()=>{s(i)})};return{batch:i=>{let a;e++;try{a=i()}finally{--e||(()=>{let e=t;t=[],e.length&&n(()=>{r(()=>{e.forEach(t=>{s(t)})})})})()}return a},batchCalls:t=>(...e)=>{a(()=>{t(...e)})},schedule:a,setNotifyFunction:t=>{s=t},setBatchNotifyFunction:t=>{r=t},setScheduler:t=>{n=t}}}()},40309:(t,e,s)=>{s.d(e,{H:()=>r});var i=s(5318),r=(()=>{let t=()=>i.S$;return{isServer:()=>t(),setIsServer(e){t=e}}})()},40324:(t,e,s)=>{s.d(e,{E:()=>f});var i=s(5318),r=s(50902),n=s(23515),a=s(46484),o=class extends a.Q{constructor(t={}){super(),this.config=t,this.#o=new Map}#o;build(t,e,s){let n=e.queryKey,a=e.queryHash??(0,i.F$)(n,e),o=this.get(a);return o||(o=new r.X({client:t,queryKey:n,queryHash:a,options:t.defaultQueryOptions(e),state:s,defaultOptions:t.getQueryDefaults(n)}),this.add(o)),o}add(t){this.#o.has(t.queryHash)||(this.#o.set(t.queryHash,t),this.notify({type:"added",query:t}))}remove(t){let e=this.#o.get(t.queryHash);e&&(t.destroy(),e===t&&this.#o.delete(t.queryHash),this.notify({type:"removed",query:t}))}clear(){n.jG.batch(()=>{this.getAll().forEach(t=>{this.remove(t)})})}get(t){return this.#o.get(t)}getAll(){return[...this.#o.values()]}find(t){let e={exact:!0,...t};return this.getAll().find(t=>(0,i.MK)(e,t))}findAll(t={}){let e=this.getAll();return Object.keys(t).length>0?e.filter(e=>(0,i.MK)(t,e)):e}notify(t){n.jG.batch(()=>{this.listeners.forEach(e=>{e(t)})})}onFocus(){n.jG.batch(()=>{this.getAll().forEach(t=>{t.onFocus()})})}onOnline(){n.jG.batch(()=>{this.getAll().forEach(t=>{t.onOnline()})})}},u=s(12146),h=class extends a.Q{constructor(t={}){super(),this.config=t,this.#u=new Set,this.#h=new Map,this.#c=0}#u;#h;#c;build(t,e,s){let i=new u.s({client:t,mutationCache:this,mutationId:++this.#c,options:t.defaultMutationOptions(e),state:s});return this.add(i),i}add(t){this.#u.add(t);let e=c(t);if("string"==typeof e){let s=this.#h.get(e);s?s.push(t):this.#h.set(e,[t])}this.notify({type:"added",mutation:t})}remove(t){if(this.#u.delete(t)){let e=c(t);if("string"==typeof e){let s=this.#h.get(e);if(s)if(s.length>1){let e=s.indexOf(t);-1!==e&&s.splice(e,1)}else s[0]===t&&this.#h.delete(e)}}this.notify({type:"removed",mutation:t})}canRun(t){let e=c(t);if("string"!=typeof e)return!0;{let s=this.#h.get(e),i=s?.find(t=>"pending"===t.state.status);return!i||i===t}}runNext(t){let e=c(t);if("string"!=typeof e)return Promise.resolve();{let s=this.#h.get(e)?.find(e=>e!==t&&e.state.isPaused);return s?.continue()??Promise.resolve()}}clear(){n.jG.batch(()=>{this.#u.forEach(t=>{this.notify({type:"removed",mutation:t})}),this.#u.clear(),this.#h.clear()})}getAll(){return Array.from(this.#u)}find(t){let e={exact:!0,...t};return this.getAll().find(t=>(0,i.nJ)(e,t))}findAll(t={}){return this.getAll().filter(e=>(0,i.nJ)(t,e))}notify(t){n.jG.batch(()=>{this.listeners.forEach(e=>{e(t)})})}resumePausedMutations(){let t=this.getAll().filter(t=>t.state.isPaused);return n.jG.batch(()=>Promise.all(t.map(t=>t.continue().catch(i.lQ))))}};function c(t){return t.options.scope?.id}var l=s(56542),d=s(86117),f=class{#l;#s;#d;#f;#p;#y;#m;#v;constructor(t={}){this.#l=t.queryCache||new o,this.#s=t.mutationCache||new h,this.#d=t.defaultOptions||{},this.#f=new Map,this.#p=new Map,this.#y=0}mount(){this.#y++,1===this.#y&&(this.#m=l.m.subscribe(async t=>{t&&(await this.resumePausedMutations(),this.#l.onFocus())}),this.#v=d.t.subscribe(async t=>{t&&(await this.resumePausedMutations(),this.#l.onOnline())}))}unmount(){this.#y--,0===this.#y&&(this.#m?.(),this.#m=void 0,this.#v?.(),this.#v=void 0)}isFetching(t){return this.#l.findAll({...t,fetchStatus:"fetching"}).length}isMutating(t){return this.#s.findAll({...t,status:"pending"}).length}getQueryData(t){let e=this.defaultQueryOptions({queryKey:t});return this.#l.get(e.queryHash)?.state.data}ensureQueryData(t){let e=this.defaultQueryOptions(t),s=this.#l.build(this,e),r=s.state.data;return void 0===r?this.fetchQuery(t):(t.revalidateIfStale&&s.isStaleByTime((0,i.d2)(e.staleTime,s))&&this.prefetchQuery(e),Promise.resolve(r))}getQueriesData(t){return this.#l.findAll(t).map(({queryKey:t,state:e})=>[t,e.data])}setQueryData(t,e,s){let r=this.defaultQueryOptions({queryKey:t}),n=this.#l.get(r.queryHash),a=n?.state.data,o=(0,i.Zw)(e,a);if(void 0!==o)return this.#l.build(this,r).setData(o,{...s,manual:!0})}setQueriesData(t,e,s){return n.jG.batch(()=>this.#l.findAll(t).map(({queryKey:t})=>[t,this.setQueryData(t,e,s)]))}getQueryState(t){let e=this.defaultQueryOptions({queryKey:t});return this.#l.get(e.queryHash)?.state}removeQueries(t){let e=this.#l;n.jG.batch(()=>{e.findAll(t).forEach(t=>{e.remove(t)})})}resetQueries(t,e){let s=this.#l;return n.jG.batch(()=>(s.findAll(t).forEach(t=>{t.reset()}),this.refetchQueries({type:"active",...t},e)))}cancelQueries(t,e={}){let s={revert:!0,...e};return Promise.all(n.jG.batch(()=>this.#l.findAll(t).map(t=>t.cancel(s)))).then(i.lQ).catch(i.lQ)}invalidateQueries(t,e={}){return n.jG.batch(()=>(this.#l.findAll(t).forEach(t=>{t.invalidate()}),t?.refetchType==="none")?Promise.resolve():this.refetchQueries({...t,type:t?.refetchType??t?.type??"active"},e))}refetchQueries(t,e={}){let s={...e,cancelRefetch:e.cancelRefetch??!0};return Promise.all(n.jG.batch(()=>this.#l.findAll(t).filter(t=>!t.isDisabled()&&!t.isStatic()).map(t=>{let e=t.fetch(void 0,s);return s.throwOnError||(e=e.catch(i.lQ)),"paused"===t.state.fetchStatus?Promise.resolve():e}))).then(i.lQ)}fetchQuery(t){let e=this.defaultQueryOptions(t);void 0===e.retry&&(e.retry=!1);let s=this.#l.build(this,e);return s.isStaleByTime((0,i.d2)(e.staleTime,s))?s.fetch(e):Promise.resolve(s.state.data)}prefetchQuery(t){return this.fetchQuery(t).then(i.lQ).catch(i.lQ)}fetchInfiniteQuery(t){return t._type="infinite",this.fetchQuery(t)}prefetchInfiniteQuery(t){return this.fetchInfiniteQuery(t).then(i.lQ).catch(i.lQ)}ensureInfiniteQueryData(t){return t._type="infinite",this.ensureQueryData(t)}resumePausedMutations(){return d.t.isOnline()?this.#s.resumePausedMutations():Promise.resolve()}getQueryCache(){return this.#l}getMutationCache(){return this.#s}getDefaultOptions(){return this.#d}setDefaultOptions(t){this.#d=t}setQueryDefaults(t,e){this.#f.set((0,i.EN)(t),{queryKey:t,defaultOptions:e})}getQueryDefaults(t){let e=[...this.#f.values()],s={};return e.forEach(e=>{(0,i.Cp)(t,e.queryKey)&&Object.assign(s,e.defaultOptions)}),s}setMutationDefaults(t,e){this.#p.set((0,i.EN)(t),{mutationKey:t,defaultOptions:e})}getMutationDefaults(t){let e=[...this.#p.values()],s={};return e.forEach(e=>{(0,i.Cp)(t,e.mutationKey)&&Object.assign(s,e.defaultOptions)}),s}defaultQueryOptions(t){if(t._defaulted)return t;let e={...this.#d.queries,...this.getQueryDefaults(t.queryKey),...t,_defaulted:!0};return e.queryHash||(e.queryHash=(0,i.F$)(e.queryKey,e)),void 0===e.refetchOnReconnect&&(e.refetchOnReconnect="always"!==e.networkMode),void 0===e.throwOnError&&(e.throwOnError=!!e.suspense),!e.networkMode&&e.persister&&(e.networkMode="offlineFirst"),e.queryFn===i.hT&&(e.enabled=!1),e}defaultMutationOptions(t){return t?._defaulted?t:{...this.#d.mutations,...t?.mutationKey&&this.getMutationDefaults(t.mutationKey),...t,_defaulted:!0}}clear(){this.#l.clear(),this.#s.clear()}}},46050:(t,e,s)=>{s.d(e,{k:()=>a});var i=s(17251),r=s(40309),n=s(5318),a=class{#b;destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),(0,n.gn)(this.gcTime)&&(this.#b=i.zs.setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(t){this.gcTime=Math.max(this.gcTime||0,t??(r.H.isServer()?1/0:3e5))}clearGcTimeout(){void 0!==this.#b&&(i.zs.clearTimeout(this.#b),this.#b=void 0)}}},46484:(t,e,s)=>{s.d(e,{Q:()=>i});var i=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(t){return this.listeners.add(t),this.onSubscribe(),()=>{this.listeners.delete(t),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}}},50902:(t,e,s)=>{s.d(e,{X:()=>u,k:()=>h});var i=s(5318),r=s(23515),n=s(6730),a=s(46050);function o(t,{pages:e,pageParams:s}){let i=e.length-1;return e.length>0?t.getNextPageParam(e[i],e,s[i],s):void 0}var u=class extends a.k{#g;#C;#w;#O;#t;#i;#d;#q;constructor(t){super(),this.#q=!1,this.#d=t.defaultOptions,this.setOptions(t.options),this.observers=[],this.#t=t.client,this.#O=this.#t.getQueryCache(),this.queryKey=t.queryKey,this.queryHash=t.queryHash,this.#C=l(this.options),this.state=t.state??this.#C,this.scheduleGc()}get meta(){return this.options.meta}get queryType(){return this.#g}get promise(){return this.#i?.promise}setOptions(t){if(this.options={...this.#d,...t},t?._type&&(this.#g=t._type),this.updateGcTime(this.options.gcTime),this.state&&void 0===this.state.data){let t=l(this.options);void 0!==t.data&&(this.setState(c(t.data,t.dataUpdatedAt)),this.#C=t)}}optionalRemove(){this.observers.length||"idle"!==this.state.fetchStatus||this.#O.remove(this)}setData(t,e){let s=(0,i.pl)(this.state.data,t,this.options);return this.#r({data:s,type:"success",dataUpdatedAt:e?.updatedAt,manual:e?.manual}),s}setState(t){this.#r({type:"setState",state:t})}cancel(t){let e=this.#i?.promise;return this.#i?.cancel(t),e?e.then(i.lQ).catch(i.lQ):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}get resetState(){return this.#C}reset(){this.destroy(),this.setState(this.resetState)}isActive(){return this.observers.some(t=>!1!==(0,i.nU)(t.options.enabled,this))}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===i.hT||!this.isFetched()}isFetched(){return this.state.dataUpdateCount+this.state.errorUpdateCount>0}isStatic(){return this.getObserversCount()>0&&this.observers.some(t=>"static"===(0,i.d2)(t.options.staleTime,this))}isStale(){return this.getObserversCount()>0?this.observers.some(t=>t.getCurrentResult().isStale):void 0===this.state.data||this.state.isInvalidated}isStaleByTime(t=0){return void 0===this.state.data||"static"!==t&&(!!this.state.isInvalidated||!(0,i.j3)(this.state.dataUpdatedAt,t))}onFocus(){let t=this.observers.find(t=>t.shouldFetchOnWindowFocus());t?.refetch({cancelRefetch:!1}),this.#i?.continue()}onOnline(){let t=this.observers.find(t=>t.shouldFetchOnReconnect());t?.refetch({cancelRefetch:!1}),this.#i?.continue()}addObserver(t){this.observers.includes(t)||(this.observers.push(t),this.clearGcTimeout(),this.#O.notify({type:"observerAdded",query:this,observer:t}))}removeObserver(t){this.observers.includes(t)&&(this.observers=this.observers.filter(e=>e!==t),this.observers.length||(this.#i&&(this.#q||this.#S()?this.#i.cancel({revert:!0}):this.#i.cancelRetry()),this.scheduleGc()),this.#O.notify({type:"observerRemoved",query:this,observer:t}))}getObserversCount(){return this.observers.length}#S(){return"paused"===this.state.fetchStatus&&"pending"===this.state.status}invalidate(){this.state.isInvalidated||this.#r({type:"invalidate"})}async fetch(t,e){var s;if("idle"!==this.state.fetchStatus&&this.#i?.status()!=="rejected"){if(void 0!==this.state.data&&e?.cancelRefetch)this.cancel({silent:!0});else if(this.#i)return this.#i.continueRetry(),this.#i.promise}if(t&&this.setOptions(t),!this.options.queryFn){let t=this.observers.find(t=>t.options.queryFn);t&&this.setOptions(t.options)}let r=new AbortController,a=t=>{Object.defineProperty(t,"signal",{enumerable:!0,get:()=>(this.#q=!0,r.signal)})},u=()=>{let t=(0,i.ZM)(this.options,e),s=(()=>{let t={client:this.#t,queryKey:this.queryKey,meta:this.meta};return a(t),t})();return(this.#q=!1,this.options.persister)?this.options.persister(t,s,this):t(s)},h=(()=>{let t={fetchOptions:e,options:this.options,queryKey:this.queryKey,client:this.#t,state:this.state,fetchFn:u};return a(t),t})(),c="infinite"===this.#g?(s=this.options.pages,{onFetch:(t,e)=>{let r=t.options,n=t.fetchOptions?.meta?.fetchMore?.direction,a=t.state.data?.pages||[],u=t.state.data?.pageParams||[],h={pages:[],pageParams:[]},c=0,l=async()=>{let e=!1,l=(0,i.ZM)(t.options,t.fetchOptions),d=async(s,r,n)=>{if(e)return Promise.reject(t.signal.reason);if(null==r&&s.pages.length)return Promise.resolve(s);let a=(()=>{let s={client:t.client,queryKey:t.queryKey,pageParam:r,direction:n?"backward":"forward",meta:t.options.meta};return(0,i.ox)(s,()=>t.signal,()=>e=!0),s})(),o=await l(a),{maxPages:u}=t.options,h=n?i.ZZ:i.y9;return{pages:h(s.pages,o,u),pageParams:h(s.pageParams,r,u)}};if(n&&a.length){let t="backward"===n,e={pages:a,pageParams:u},s=(t?function(t,{pages:e,pageParams:s}){return e.length>0?t.getPreviousPageParam?.(e[0],e,s[0],s):void 0}:o)(r,e);h=await d(e,s,t)}else{let t=s??a.length;do{let t=0===c?u[0]??r.initialPageParam:o(r,h);if(c>0&&null==t)break;h=await d(h,t),c++}while(c<t)}return h};t.options.persister?t.fetchFn=()=>t.options.persister?.(l,{client:t.client,queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},e):t.fetchFn=l}}):this.options.behavior;c?.onFetch(h,this),this.#w=this.state,("idle"===this.state.fetchStatus||this.state.fetchMeta!==h.fetchOptions?.meta)&&this.#r({type:"fetch",meta:h.fetchOptions?.meta}),this.#i=(0,n.II)({initialPromise:e?.initialPromise,fn:h.fetchFn,onCancel:t=>{t instanceof n.cc&&t.revert&&this.setState({...this.#w,fetchStatus:"idle"}),r.abort()},onFail:(t,e)=>{this.#r({type:"failed",failureCount:t,error:e})},onPause:()=>{this.#r({type:"pause"})},onContinue:()=>{this.#r({type:"continue"})},retry:h.options.retry,retryDelay:h.options.retryDelay,networkMode:h.options.networkMode,canRun:()=>!0});try{let t=await this.#i.start();if(void 0===t)throw Error(`${this.queryHash} data is undefined`);return this.setData(t),this.#O.config.onSuccess?.(t,this),this.#O.config.onSettled?.(t,this.state.error,this),t}catch(t){if(t instanceof n.cc){if(t.silent)return this.#i.promise;else if(t.revert){if(void 0===this.state.data)throw t;return this.state.data}}throw this.#r({type:"error",error:t}),this.#O.config.onError?.(t,this),this.#O.config.onSettled?.(this.state.data,t,this),t}finally{this.scheduleGc()}}#r(t){let e=e=>{switch(t.type){case"failed":return{...e,fetchFailureCount:t.failureCount,fetchFailureReason:t.error};case"pause":return{...e,fetchStatus:"paused"};case"continue":return{...e,fetchStatus:"fetching"};case"fetch":return{...e,...h(e.data,this.options),fetchMeta:t.meta??null};case"success":let s={...e,...c(t.data,t.dataUpdatedAt),dataUpdateCount:e.dataUpdateCount+1,...!t.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};return this.#w=t.manual?s:void 0,s;case"error":let i=t.error;return{...e,error:i,errorUpdateCount:e.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:e.fetchFailureCount+1,fetchFailureReason:i,fetchStatus:"idle",status:"error",isInvalidated:!0};case"invalidate":return{...e,isInvalidated:!0};case"setState":return{...e,...t.state}}};this.state=e(this.state),r.jG.batch(()=>{this.observers.forEach(t=>{t.onQueryUpdate()}),this.#O.notify({query:this,type:"updated",action:t})})}};function h(t,e){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:(0,n.v_)(e.networkMode)?"fetching":"paused",...void 0===t&&{error:null,status:"pending"}}}function c(t,e){return{data:t,dataUpdatedAt:e??Date.now(),error:null,isInvalidated:!1,status:"success"}}function l(t){let e="function"==typeof t.initialData?t.initialData():t.initialData,s=void 0!==e,i=s?"function"==typeof t.initialDataUpdatedAt?t.initialDataUpdatedAt():t.initialDataUpdatedAt:0;return{data:e,dataUpdateCount:0,dataUpdatedAt:s?i??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:s?"success":"pending",fetchStatus:"idle"}}},56542:(t,e,s)=>{s.d(e,{m:()=>r});var i=s(46484),r=new class extends i.Q{#P;#F;#Q;constructor(){super(),this.#Q=t=>{if("undefined"!=typeof window&&window.addEventListener){let e=()=>t();return window.addEventListener("visibilitychange",e,!1),()=>{window.removeEventListener("visibilitychange",e)}}}}onSubscribe(){this.#F||this.setEventListener(this.#Q)}onUnsubscribe(){this.hasListeners()||(this.#F?.(),this.#F=void 0)}setEventListener(t){this.#Q=t,this.#F?.(),this.#F=t(t=>{"boolean"==typeof t?this.setFocused(t):this.onFocus()})}setFocused(t){this.#P!==t&&(this.#P=t,this.onFocus())}onFocus(){let t=this.isFocused();this.listeners.forEach(e=>{e(t)})}isFocused(){return"boolean"==typeof this.#P?this.#P:globalThis.document?.visibilityState!=="hidden"}}},59405:(t,e,s)=>{s.d(e,{Ht:()=>o,jE:()=>a});var i=s(60500),r=s(54456),n=i.createContext(void 0),a=t=>{let e=i.useContext(n);if(t)return t;if(!e)throw Error("No QueryClient set, use QueryClientProvider to set one");return e},o=t=>{let{client:e,children:s}=t;return i.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),(0,r.jsx)(n.Provider,{value:e,children:s})}},74682:(t,e,s)=>{s.d(e,{T:()=>i});function i(){let t,e,s=new Promise((s,i)=>{t=s,e=i});function i(t){Object.assign(s,t),delete s.resolve,delete s.reject}return s.status="pending",s.catch(()=>{}),s.resolve=e=>{i({status:"fulfilled",value:e}),t(e)},s.reject=t=>{i({status:"rejected",reason:t}),e(t)},s}},86117:(t,e,s)=>{s.d(e,{t:()=>r});var i=s(46484),r=new class extends i.Q{#j=!0;#F;#Q;constructor(){super(),this.#Q=t=>{if("undefined"!=typeof window&&window.addEventListener){let e=()=>t(!0),s=()=>t(!1);return window.addEventListener("online",e,!1),window.addEventListener("offline",s,!1),()=>{window.removeEventListener("online",e),window.removeEventListener("offline",s)}}}}onSubscribe(){this.#F||this.setEventListener(this.#Q)}onUnsubscribe(){this.hasListeners()||(this.#F?.(),this.#F=void 0)}setEventListener(t){this.#Q=t,this.#F?.(),this.#F=t(this.setOnline.bind(this))}setOnline(t){this.#j!==t&&(this.#j=t,this.listeners.forEach(e=>{e(t)}))}isOnline(){return this.#j}}}}]);