elanous 0.2.20 → 0.2.22

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 (456) 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/aBi6EyMtLsrl7J8eH4kF7/_buildManifest.js +1 -0
  4. package/apps/pwa/out/_next/static/chunks/088d8e8a.8069543d082bec12.js +160 -0
  5. package/apps/pwa/out/_next/static/chunks/1109.78a7a3288c0259d9.js +148 -0
  6. package/apps/pwa/out/_next/static/chunks/115.1c6690b8604f81c4.js +32 -0
  7. package/apps/pwa/out/_next/static/chunks/119fc678.6f591cdb84ca5791.js +1 -0
  8. package/apps/pwa/out/_next/static/chunks/1262.76a3f08e67c5f816.js +309 -0
  9. package/apps/pwa/out/_next/static/chunks/1307-08b716476f1d50af.js +1 -0
  10. package/apps/pwa/out/_next/static/chunks/1358d292.5c87f12cad6eaa91.js +122 -0
  11. package/apps/pwa/out/_next/static/chunks/1438.27a1a7b8f2308004.js +149 -0
  12. package/apps/pwa/out/_next/static/chunks/1442.02d85cd88f4c1eac.js +79 -0
  13. package/apps/pwa/out/_next/static/chunks/1501-1aad662d82ba43f7.js +1 -0
  14. package/apps/pwa/out/_next/static/chunks/1584.9e2dd53da6e6d4b1.js +24 -0
  15. package/apps/pwa/out/_next/static/chunks/1586.b989b0614afb77e6.js +1 -0
  16. package/apps/pwa/out/_next/static/chunks/1609.2ad355062870151f.js +1 -0
  17. package/apps/pwa/out/_next/static/chunks/1612-f6df0fc0eed7157b.js +1 -0
  18. package/apps/pwa/out/_next/static/chunks/1923.37f1d5fe7ebe3860.js +27 -0
  19. package/apps/pwa/out/_next/static/chunks/1948.5f35b39eef222a94.js +5 -0
  20. package/apps/pwa/out/_next/static/chunks/1993.3fd074a2a246234e.js +1 -0
  21. package/apps/pwa/out/_next/static/chunks/2140.d2daf9ee96e295d1.js +1 -0
  22. package/apps/pwa/out/_next/static/chunks/2212.0359851457473efc.js +1 -0
  23. package/apps/pwa/out/_next/static/chunks/224.583e562365a52f74.js +1 -0
  24. package/apps/pwa/out/_next/static/chunks/2328.0f37465646bafa7d.js +36 -0
  25. package/apps/pwa/out/_next/static/chunks/2372.bf71372184991937.js +286 -0
  26. package/apps/pwa/out/_next/static/chunks/{2489-ff55a35b202c0f94.js → 2489-d238d3e2eb5b2bf5.js} +1 -1
  27. package/apps/pwa/out/_next/static/chunks/2549-a8515c86f9e8cb96.js +1 -0
  28. package/apps/pwa/out/_next/static/chunks/2655.72cc6a97276c5acc.js +1 -0
  29. package/apps/pwa/out/_next/static/chunks/2743-ef6e8c3ced74cce5.js +1 -0
  30. package/apps/pwa/out/_next/static/chunks/2840-5458ad50c49cac6a.js +1 -0
  31. package/apps/pwa/out/_next/static/chunks/2856.f75d5baef7f49b74.js +1 -0
  32. package/apps/pwa/out/_next/static/chunks/3344.0de4b0ec5a454b7a.js +1 -0
  33. package/apps/pwa/out/_next/static/chunks/335.a13f339e97893437.js +94 -0
  34. package/apps/pwa/out/_next/static/chunks/3394.646348f34b2500be.js +1 -0
  35. package/apps/pwa/out/_next/static/chunks/3443.6276909b53d72d53.js +1 -0
  36. package/apps/pwa/out/_next/static/chunks/3495.abd4254d808bf2dc.js +1 -0
  37. package/apps/pwa/out/_next/static/chunks/3522-1de1319d028ac89c.js +25 -0
  38. package/apps/pwa/out/_next/static/chunks/3721.ba5b82db0d9a5572.js +1 -0
  39. package/apps/pwa/out/_next/static/chunks/3857-5985236d9307f676.js +1 -0
  40. package/apps/pwa/out/_next/static/chunks/3919.9ff7dc25afefee33.js +74 -0
  41. package/apps/pwa/out/_next/static/chunks/3998.bd9a69d9b50e9bd2.js +1 -0
  42. package/apps/pwa/out/_next/static/chunks/4003.ab6db1dc266576c9.js +1 -0
  43. package/apps/pwa/out/_next/static/chunks/4216.e8ac94b9fe6b96ab.js +1 -0
  44. package/apps/pwa/out/_next/static/chunks/4327.c44dc2b55cb43ee5.js +34 -0
  45. package/apps/pwa/out/_next/static/chunks/4401.94257d497b6d26bc.js +1 -0
  46. package/apps/pwa/out/_next/static/chunks/4559.17ca2cdbaa8d414f.js +115 -0
  47. package/apps/pwa/out/_next/static/chunks/4588.ad3364cb7fb97ada.js +86 -0
  48. package/apps/pwa/out/_next/static/chunks/4706.97e734bd4c9816ca.js +1 -0
  49. package/apps/pwa/out/_next/static/chunks/4982.6e44352f751b9a1b.js +77 -0
  50. package/apps/pwa/out/_next/static/chunks/5342.49c5c5a530e62b50.js +1 -0
  51. package/apps/pwa/out/_next/static/chunks/5360-08a80abdf3a4da99.js +1 -0
  52. package/apps/pwa/out/_next/static/chunks/5431.66c58ab1327ee0b7.js +1 -0
  53. package/apps/pwa/out/_next/static/chunks/5633-d6852385000738ef.js +1 -0
  54. package/apps/pwa/out/_next/static/chunks/5717.bcfcb96e701b82e0.js +90 -0
  55. package/apps/pwa/out/_next/static/chunks/5755-30d102586789bf7f.js +1 -0
  56. package/apps/pwa/out/_next/static/chunks/5957.3f1a4012388dd962.js +1 -0
  57. package/apps/pwa/out/_next/static/chunks/5977-5b9e8a45a5b0c823.js +1 -0
  58. package/apps/pwa/out/_next/static/chunks/602.9bf02ac8e9502598.js +1 -0
  59. package/apps/pwa/out/_next/static/chunks/6020.3a1b347e2d2dfacc.js +8 -0
  60. package/apps/pwa/out/_next/static/chunks/{6158.af2e93b7adff709b.js → 6158.566c890adc06a459.js} +1 -1
  61. package/apps/pwa/out/_next/static/chunks/6375.fce1d174ba6d0324.js +64 -0
  62. package/apps/pwa/out/_next/static/chunks/6546.92a828aef441271f.js +1 -0
  63. package/apps/pwa/out/_next/static/chunks/658.957fdb0a8c6c6c8e.js +287 -0
  64. package/apps/pwa/out/_next/static/chunks/6706.323590aabb8b1293.js +226 -0
  65. package/apps/pwa/out/_next/static/chunks/6747.b67947f293a4c02d.js +1 -0
  66. package/apps/pwa/out/_next/static/chunks/6767.8e6c5f6e744fcd9f.js +38 -0
  67. package/apps/pwa/out/_next/static/chunks/6868.000b24a3045c5574.js +1 -0
  68. package/apps/pwa/out/_next/static/chunks/6946.bba74e9c96050f30.js +1 -0
  69. package/apps/pwa/out/_next/static/chunks/7033.a558f1b2f6912a53.js +1 -0
  70. package/apps/pwa/out/_next/static/chunks/7065.46029c26c53eac50.js +1 -0
  71. package/apps/pwa/out/_next/static/chunks/7087.6fae577d09249bc1.js +1 -0
  72. package/apps/pwa/out/_next/static/chunks/7175-350f4ce2873bc038.js +1 -0
  73. package/apps/pwa/out/_next/static/chunks/722.de8d9801e0f6d414.js +41 -0
  74. package/apps/pwa/out/_next/static/chunks/7497.57981e9d7a75a52a.js +24 -0
  75. package/apps/pwa/out/_next/static/chunks/7630.2b9a68659053ff4e.js +193 -0
  76. package/apps/pwa/out/_next/static/chunks/7672.4af122ad892117c7.js +1 -0
  77. package/apps/pwa/out/_next/static/chunks/771.6ab889a233e7dae7.js +1 -0
  78. package/apps/pwa/out/_next/static/chunks/7899.597af4a9996c907f.js +1 -0
  79. package/apps/pwa/out/_next/static/chunks/79b78388.663188133449d707.js +1 -0
  80. package/apps/pwa/out/_next/static/chunks/8096.f7da0776cfde6300.js +1 -0
  81. package/apps/pwa/out/_next/static/chunks/8194.484f51e273d9abd2.js +217 -0
  82. package/apps/pwa/out/_next/static/chunks/8769.815ca69879f608b4.js +104 -0
  83. package/apps/pwa/out/_next/static/chunks/8857-aa1cc4ac90af4d40.js +1 -0
  84. package/apps/pwa/out/_next/static/chunks/88729267.9c6c000157c83f2f.js +62 -0
  85. package/apps/pwa/out/_next/static/chunks/8f835b4f.048eeb02299e3e12.js +1 -0
  86. package/apps/pwa/out/_next/static/chunks/9068.5f2764fccf86c1b2.js +93 -0
  87. package/apps/pwa/out/_next/static/chunks/9247-55bcfbb0e8057f59.js +1 -0
  88. package/apps/pwa/out/_next/static/chunks/9451.ebfb0dcc9c02250f.js +23 -0
  89. package/apps/pwa/out/_next/static/chunks/9559.e648369b1d57cf9a.js +62 -0
  90. package/apps/pwa/out/_next/static/chunks/9832.2ab2e818013574c7.js +1 -0
  91. package/apps/pwa/out/_next/static/chunks/a9f2b54d-40c16bd0efdb04b8.js +1 -0
  92. package/apps/pwa/out/_next/static/chunks/app/approvals/{page-c855c24de7db74fe.js → page-88459e0903da2803.js} +1 -1
  93. package/apps/pwa/out/_next/static/chunks/app/autopilot/{page-85b316bb4235980b.js → page-d85c43f46f58716b.js} +1 -1
  94. package/apps/pwa/out/_next/static/chunks/app/board/{page-9b2b26a33cb2cd42.js → page-4e645600579ae952.js} +1 -1
  95. package/apps/pwa/out/_next/static/chunks/app/botlab/{page-c9955fde67b1bcb5.js → page-87edbfd19117823b.js} +1 -1
  96. package/apps/pwa/out/_next/static/chunks/app/bots/page-7f0c2b7801ac6a54.js +1 -0
  97. package/apps/pwa/out/_next/static/chunks/app/ceo/page-bf1f030a9d1adffd.js +1 -0
  98. package/apps/pwa/out/_next/static/chunks/app/chat/{page-4ba4abe096b6c2a8.js → page-cbaf66b1e1804adf.js} +1 -1
  99. package/apps/pwa/out/_next/static/chunks/app/consult/{page-575d4a8b4f7becb2.js → page-80ed511e02c81412.js} +1 -1
  100. package/apps/pwa/out/_next/static/chunks/app/control/{page-f5d56ff5f45ad164.js → page-9f5610caaa06178c.js} +1 -1
  101. package/apps/pwa/out/_next/static/chunks/app/decisions/{page-2260e9eef0357421.js → page-ec8f3575e339de74.js} +1 -1
  102. package/apps/pwa/out/_next/static/chunks/app/design-check/page-86d753e460f1a989.js +1 -0
  103. package/apps/pwa/out/_next/static/chunks/app/editor/page-4166a7d51cf0a57d.js +1 -0
  104. package/apps/pwa/out/_next/static/chunks/app/exec/{page-466bf0ee16ad1432.js → page-2a19c5cd3b562580.js} +1 -1
  105. package/apps/pwa/out/_next/static/chunks/app/field/{page-a23bc71713bcc08f.js → page-b6a09cde2e07521a.js} +1 -1
  106. package/apps/pwa/out/_next/static/chunks/app/inside/page-f7eae1518ca0c353.js +1 -0
  107. package/apps/pwa/out/_next/static/chunks/app/intake/page-456a8573ad811381.js +1 -0
  108. package/apps/pwa/out/_next/static/chunks/app/layout-8462d6a543cbb2d9.js +1 -0
  109. package/apps/pwa/out/_next/static/chunks/app/live/page-2974cdfb87c0f9c9.js +1 -0
  110. package/apps/pwa/out/_next/static/chunks/app/live-run/page-f927ffa25f3c86d1.js +1 -0
  111. package/apps/pwa/out/_next/static/chunks/app/loops/{page-35bfec2e631d3eae.js → page-abd86cd832aaa011.js} +1 -1
  112. package/apps/pwa/out/_next/static/chunks/app/market/page-79daf68f6256adaa.js +1 -0
  113. package/apps/pwa/out/_next/static/chunks/app/missions/[id]/{page-f9ccb1b1adbea14d.js → page-8c3f168fc3f91939.js} +1 -1
  114. package/apps/pwa/out/_next/static/chunks/app/morning/{page-ec102c9b8b691e37.js → page-786fb4504d0f2fa9.js} +1 -1
  115. package/apps/pwa/out/_next/static/chunks/app/not-found-75209f14597dcb8f.js +1 -0
  116. package/apps/pwa/out/_next/static/chunks/app/observatory/page-bf30affe3a85af7e.js +1 -0
  117. package/apps/pwa/out/_next/static/chunks/app/ops/checklist/page-1187a44b7515434b.js +1 -0
  118. package/apps/pwa/out/_next/static/chunks/app/ops/release/page-3d0910185a66ed54.js +1 -0
  119. package/apps/pwa/out/_next/static/chunks/app/ops/seats/page-f401ee1dd5a26e25.js +1 -0
  120. package/apps/pwa/out/_next/static/chunks/app/outputs/page-5dfe7604fd842784.js +1 -0
  121. package/apps/pwa/out/_next/static/chunks/app/page-76cf838050a8d681.js +1 -0
  122. package/apps/pwa/out/_next/static/chunks/app/reflection/{page-db03ae3589a81c9e.js → page-7ec8e289b4c14df6.js} +1 -1
  123. package/apps/pwa/out/_next/static/chunks/app/scheduler/{page-4a6463b97f0ad94f.js → page-8c8ac17d52be2a79.js} +1 -1
  124. package/apps/pwa/out/_next/static/chunks/app/sessions/{page-75bffecc9aa1004e.js → page-d359ab048d63a9d9.js} +1 -1
  125. package/apps/pwa/out/_next/static/chunks/app/settings/devices/page-b8b345c880bf78d1.js +1 -0
  126. package/apps/pwa/out/_next/static/chunks/app/settings/{page-31d5b875760bb62d.js → page-f151cc10ad026940.js} +1 -1
  127. package/apps/pwa/out/_next/static/chunks/app/setup/done/page-9875f103057da433.js +1 -0
  128. package/apps/pwa/out/_next/static/chunks/app/setup/page-9789328af9a9aa62.js +1 -0
  129. package/apps/pwa/out/_next/static/chunks/app/share/{page-46d5201d2207a511.js → page-bf495a1e284f4e00.js} +1 -1
  130. package/apps/pwa/out/_next/static/chunks/app/showroom/page-a263d94bca4be22a.js +1 -0
  131. package/apps/pwa/out/_next/static/chunks/app/tasks/page-3962eab8ec58d16e.js +1 -0
  132. package/apps/pwa/out/_next/static/chunks/app/term/{page-cf0a4b4abead71ea.js → page-9abcfac07e02a542.js} +1 -1
  133. package/apps/pwa/out/_next/static/chunks/app/today/page-bee49f927c333abb.js +1 -0
  134. package/apps/pwa/out/_next/static/chunks/app/trace/page-bac2d56dcb02d955.js +1 -0
  135. package/apps/pwa/out/_next/static/chunks/app/vault/page-937cbcc13176295c.js +1 -0
  136. package/apps/pwa/out/_next/static/chunks/app/workflows/chat-ui/page-d09495594f7f480d.js +1 -0
  137. package/apps/pwa/out/_next/static/chunks/app/workflows/{page-0acc8e198f7b0dfb.js → page-69cb93d1a2e57e0e.js} +1 -1
  138. package/apps/pwa/out/_next/static/chunks/app/workspace/{page-34882c84f84021c5.js → page-72ec543928d67c3e.js} +1 -1
  139. package/apps/pwa/out/_next/static/chunks/app/worktrees/page-82906eeda0186a7b.js +1 -0
  140. package/apps/pwa/out/_next/static/chunks/d70879db.c66c56a95a91efc6.js +66 -0
  141. package/apps/pwa/out/_next/static/chunks/f8626309.a4e5d362b1d55e59.js +1 -0
  142. package/apps/pwa/out/_next/static/chunks/webpack-f2b4016b9b981bc8.js +1 -0
  143. package/apps/pwa/out/_next/static/css/{d3427996da11e480.css → b9d8151e48998417.css} +1 -1
  144. package/apps/pwa/out/_next/static/css/f2bd5257e6af88d8.css +1 -0
  145. package/apps/pwa/out/approvals/index.html +1 -1
  146. package/apps/pwa/out/approvals/index.txt +14 -14
  147. package/apps/pwa/out/autopilot/index.html +1 -1
  148. package/apps/pwa/out/autopilot/index.txt +14 -14
  149. package/apps/pwa/out/board/index.html +1 -1
  150. package/apps/pwa/out/board/index.txt +14 -14
  151. package/apps/pwa/out/botlab/index.html +1 -1
  152. package/apps/pwa/out/botlab/index.txt +14 -14
  153. package/apps/pwa/out/bots/index.html +1 -1
  154. package/apps/pwa/out/bots/index.txt +14 -14
  155. package/apps/pwa/out/ceo/index.html +1 -1
  156. package/apps/pwa/out/ceo/index.txt +14 -14
  157. package/apps/pwa/out/chat/index.html +1 -1
  158. package/apps/pwa/out/chat/index.txt +14 -14
  159. package/apps/pwa/out/consult/index.html +1 -1
  160. package/apps/pwa/out/consult/index.txt +14 -14
  161. package/apps/pwa/out/control/index.html +1 -1
  162. package/apps/pwa/out/control/index.txt +14 -14
  163. package/apps/pwa/out/decisions/index.html +1 -1
  164. package/apps/pwa/out/decisions/index.txt +14 -14
  165. package/apps/pwa/out/design-check/index.html +1 -1
  166. package/apps/pwa/out/design-check/index.txt +14 -14
  167. package/apps/pwa/out/editor/index.html +1 -1
  168. package/apps/pwa/out/editor/index.txt +15 -15
  169. package/apps/pwa/out/exec/index.html +1 -1
  170. package/apps/pwa/out/exec/index.txt +14 -14
  171. package/apps/pwa/out/field/index.html +1 -1
  172. package/apps/pwa/out/field/index.txt +14 -14
  173. package/apps/pwa/out/healthz +1 -1
  174. package/apps/pwa/out/index.html +1 -1
  175. package/apps/pwa/out/index.txt +14 -14
  176. package/apps/pwa/out/inside/index.html +1 -1
  177. package/apps/pwa/out/inside/index.txt +15 -15
  178. package/apps/pwa/out/intake/index.html +1 -1
  179. package/apps/pwa/out/intake/index.txt +14 -14
  180. package/apps/pwa/out/live/index.html +1 -1
  181. package/apps/pwa/out/live/index.txt +14 -14
  182. package/apps/pwa/out/live-run/index.html +1 -0
  183. package/apps/pwa/out/live-run/index.txt +35 -0
  184. package/apps/pwa/out/loops/index.html +1 -1
  185. package/apps/pwa/out/loops/index.txt +14 -14
  186. package/apps/pwa/out/market/index.html +1 -1
  187. package/apps/pwa/out/market/index.txt +14 -14
  188. package/apps/pwa/out/missions/placeholder/index.html +1 -1
  189. package/apps/pwa/out/missions/placeholder/index.txt +14 -14
  190. package/apps/pwa/out/morning/index.html +1 -1
  191. package/apps/pwa/out/morning/index.txt +14 -14
  192. package/apps/pwa/out/observatory/index.html +1 -1
  193. package/apps/pwa/out/observatory/index.txt +14 -14
  194. package/apps/pwa/out/ops/checklist/index.html +1 -1
  195. package/apps/pwa/out/ops/checklist/index.txt +14 -14
  196. package/apps/pwa/out/ops/release/index.html +1 -1
  197. package/apps/pwa/out/ops/release/index.txt +14 -14
  198. package/apps/pwa/out/ops/seats/index.html +1 -1
  199. package/apps/pwa/out/ops/seats/index.txt +14 -14
  200. package/apps/pwa/out/outputs/index.html +1 -1
  201. package/apps/pwa/out/outputs/index.txt +14 -14
  202. package/apps/pwa/out/reflection/index.html +1 -1
  203. package/apps/pwa/out/reflection/index.txt +15 -15
  204. package/apps/pwa/out/scheduler/index.html +1 -1
  205. package/apps/pwa/out/scheduler/index.txt +14 -14
  206. package/apps/pwa/out/sessions/index.html +1 -1
  207. package/apps/pwa/out/sessions/index.txt +14 -14
  208. package/apps/pwa/out/settings/devices/index.html +1 -1
  209. package/apps/pwa/out/settings/devices/index.txt +14 -14
  210. package/apps/pwa/out/settings/index.html +1 -1
  211. package/apps/pwa/out/settings/index.txt +14 -14
  212. package/apps/pwa/out/setup/done/index.html +1 -1
  213. package/apps/pwa/out/setup/done/index.txt +14 -14
  214. package/apps/pwa/out/setup/index.html +1 -1
  215. package/apps/pwa/out/setup/index.txt +14 -14
  216. package/apps/pwa/out/share/index.html +1 -1
  217. package/apps/pwa/out/share/index.txt +14 -14
  218. package/apps/pwa/out/showroom/index.html +1 -1
  219. package/apps/pwa/out/showroom/index.txt +14 -14
  220. package/apps/pwa/out/tasks/index.html +1 -1
  221. package/apps/pwa/out/tasks/index.txt +14 -14
  222. package/apps/pwa/out/term/index.html +1 -1
  223. package/apps/pwa/out/term/index.txt +14 -14
  224. package/apps/pwa/out/today/index.html +1 -1
  225. package/apps/pwa/out/today/index.txt +14 -14
  226. package/apps/pwa/out/trace/index.html +1 -1
  227. package/apps/pwa/out/trace/index.txt +14 -14
  228. package/apps/pwa/out/vault/index.html +1 -1
  229. package/apps/pwa/out/vault/index.txt +14 -14
  230. package/apps/pwa/out/workflows/chat-ui/index.html +1 -1
  231. package/apps/pwa/out/workflows/chat-ui/index.txt +14 -14
  232. package/apps/pwa/out/workflows/index.html +1 -1
  233. package/apps/pwa/out/workflows/index.txt +14 -14
  234. package/apps/pwa/out/workspace/index.html +1 -1
  235. package/apps/pwa/out/workspace/index.txt +14 -14
  236. package/apps/pwa/out/worktrees/index.html +1 -1
  237. package/apps/pwa/out/worktrees/index.txt +14 -14
  238. package/graphs/catalog/catalog.yaml +1 -1
  239. package/graphs/drafts/recipes.yaml +6 -6
  240. package/graphs/implement-loop.yaml +277 -5
  241. package/graphs/test-diet/recipes.yaml +3 -0
  242. package/graphs/test-diet/test-diet.yaml +3 -1
  243. package/package.json +1 -1
  244. package/scripts/coord-channel-watch.sh +31 -4
  245. package/scripts/docs-lint.ts +4 -1
  246. package/scripts/f-session-monitor.ts +69 -0
  247. package/scripts/hq/standby-snapshot.ts +7 -3
  248. package/scripts/knowledge-compress.ts +11 -0
  249. package/scripts/marketing/generate-ax-brief.ts +18 -1
  250. package/scripts/measure-nl-routing-corpus.ts +11 -3
  251. package/scripts/nightly-docops.ts +90 -3
  252. package/scripts/release-loop/gate-node.ts +5 -5
  253. package/scripts/release-loop/shard-plan.ts +50 -5
  254. package/scripts/research-coo-admin-dates.ts +39 -0
  255. package/scripts/rhythm/daily.ts +2 -1
  256. package/scripts/skills/public-check.ts +7 -2
  257. package/scripts/smart-merge/resync-shadow.ts +5 -3
  258. package/scripts/test-diet/lib.ts +81 -1
  259. package/scripts/test-diet/node.ts +48 -2
  260. package/scripts/verify-coo-admin-evidence.ts +83 -0
  261. package/src/acp/client.ts +4 -2
  262. package/src/agent/run-context.ts +4 -0
  263. package/src/agent-env/profile.ts +25 -5
  264. package/src/agent-mission/driver.ts +26 -12
  265. package/src/agent-mission/supervisor-metrics.ts +17 -2
  266. package/src/agent-substrate/acp-reviewer.ts +12 -5
  267. package/src/agent-substrate/pr-reviewer.ts +11 -4
  268. package/src/agent-substrate/review-intent.ts +102 -3
  269. package/src/autopilot/build/llm-conflict-merge.ts +22 -8
  270. package/src/autopilot/pr-manager.ts +18 -8
  271. package/src/away/release-watch.ts +47 -8
  272. package/src/briefing/brief-items.ts +104 -11
  273. package/src/browser-cdp/client.ts +10 -5
  274. package/src/chat/index.ts +1 -0
  275. package/src/cli/brief-cli.ts +20 -2
  276. package/src/cli/config-classify.ts +83 -0
  277. package/src/cli/control-cli.ts +14 -0
  278. package/src/cli/decisions-cli.ts +26 -16
  279. package/src/cli/logs-model-input.ts +1 -1
  280. package/src/cli/ops-cli.ts +11 -0
  281. package/src/cli/ops-overview-cli.ts +50 -0
  282. package/src/cli/pod-cli.ts +1 -0
  283. package/src/cli/pr-cli.ts +65 -8
  284. package/src/cli/release-cli.ts +21 -4
  285. package/src/cli/tasks-cli.ts +214 -1
  286. package/src/connectors/types.ts +6 -6
  287. package/src/context-bus/context-now-surfaces.ts +18 -0
  288. package/src/context-bus/coord-events.ts +32 -4
  289. package/src/context-bus/long-term-memory.ts +23 -6
  290. package/src/context-bus/nightly-condense.ts +169 -21
  291. package/src/control/control-status.ts +87 -0
  292. package/src/control-plane/light-member.ts +5 -3
  293. package/src/control-plane/member.ts +172 -7
  294. package/src/core-turn/run-goal-loop.ts +22 -1
  295. package/src/dashboard/index.ts +40 -4
  296. package/src/dashboard/slash-runtime/dashboard-handlers.ts +9 -0
  297. package/src/decisions/decision-cards.ts +20 -1
  298. package/src/decisions/decision-ledger.ts +11 -8
  299. package/src/decisions/web-push-decision-cards.ts +19 -3
  300. package/src/discord-self-message.ts +2 -2
  301. package/src/domains/coo-admin-dates.evidence.json +876 -0
  302. package/src/domains/coo-admin-tool.ts +48 -14
  303. package/src/domains/ops-status.ts +53 -0
  304. package/src/domains/outbound-alert.ts +24 -1
  305. package/src/esc-abort-gate.ts +3 -1
  306. package/src/exec-requests/planner.ts +6 -0
  307. package/src/graph-kinds/registry.ts +6 -6
  308. package/src/graph-runner/graph-cli.ts +91 -2
  309. package/src/graph-runner/graph-run-api.ts +20 -0
  310. package/src/graph-runner/graph-tick.ts +73 -12
  311. package/src/graph-runner/runner.ts +43 -11
  312. package/src/graph-unify/wf-to-graph.ts +79 -0
  313. package/src/graph-wizard/archetypes.ts +88 -0
  314. package/src/graph-wizard/generate.ts +577 -0
  315. package/src/graph-wizard/saved-steps.ts +120 -0
  316. package/src/graph-wizard/steps.ts +206 -0
  317. package/src/harness/harness-cli-command.ts +186 -32
  318. package/src/harness/harness-queue.ts +58 -14
  319. package/src/harness/launch-advice.ts +23 -0
  320. package/src/index.ts +43 -11
  321. package/src/intake-plane/digest.ts +18 -11
  322. package/src/knowledge/conclusion-compress.ts +93 -0
  323. package/src/knowledge/know-find.ts +9 -2
  324. package/src/knowledge/query.ts +20 -0
  325. package/src/llm.ts +26 -16
  326. package/src/loops/neighbor-runtime.ts +88 -0
  327. package/src/loops/orchestrator/author-depth.ts +29 -11
  328. package/src/loops/orchestrator/overlap.ts +7 -1
  329. package/src/loops/orchestrator/resync-shadow.ts +1 -1
  330. package/src/loops/orchestrator/tick.ts +35 -2
  331. package/src/loops/orchestrator/traffic.ts +2 -0
  332. package/src/loops/registry.ts +5 -0
  333. package/src/market/publish.ts +17 -1
  334. package/src/maturity/feature-maturity.ts +4 -2
  335. package/src/mss/logging/redaction.ts +17 -0
  336. package/src/nexus/api/draft-metrics.ts +128 -0
  337. package/src/nexus/api/graph-peer-edit.ts +77 -0
  338. package/src/nexus/api/graph-wizard-api.ts +61 -0
  339. package/src/nexus/api/graphs-api.ts +193 -17
  340. package/src/nexus/api/harness-traversal.ts +205 -0
  341. package/src/nexus/api/http-server.ts +122 -6
  342. package/src/nexus/api/plugins-market.ts +24 -0
  343. package/src/nexus/index.ts +3 -2
  344. package/src/nexus/outbound/router.ts +28 -8
  345. package/src/oauth/claude-pty-maturity.ts +24 -0
  346. package/src/oauth/fallback-chain.ts +27 -14
  347. package/src/onboarding/first-run.ts +3 -0
  348. package/src/ops/overview-collect.ts +345 -0
  349. package/src/ops/overview-seat-era.ts +90 -0
  350. package/src/ops/overview.ts +223 -0
  351. package/src/plugins/maker/market-bundle.ts +9 -0
  352. package/src/plugins/maker/plugin-maker.ts +9 -3
  353. package/src/plugins/maker/wizard-generate.ts +73 -9
  354. package/src/policy/llm-policy.ts +11 -6
  355. package/src/release-loop/checklist-board.ts +27 -0
  356. package/src/release-loop/checklist.ts +38 -0
  357. package/src/release-loop/gate-shards.ts +7 -2
  358. package/src/seat-address/seat-address.ts +1 -0
  359. package/src/seat-loop/seat-loop.ts +174 -20
  360. package/src/seat-loop/seat-report.ts +29 -1
  361. package/src/self-dev/ask-launch-flow.ts +4 -2
  362. package/src/self-dev/ask-launch-io.ts +3 -1
  363. package/src/self-dev/dev-cli.ts +90 -8
  364. package/src/self-dev/dev-pipeline.ts +20 -1
  365. package/src/self-dev/draft-sweep.ts +45 -8
  366. package/src/self-dev/graph-journey-nodes.ts +157 -0
  367. package/src/self-dev/graph-journey-route.ts +105 -0
  368. package/src/self-dev/launch-preflight.ts +43 -3
  369. package/src/self-dev/orchestrate.ts +3 -0
  370. package/src/self-dev/release-path-guard.ts +7 -4
  371. package/src/self-dev/review-provider-fallback.ts +83 -0
  372. package/src/self-dev/run-supervisor.ts +5 -1
  373. package/src/self-implement/frozen-merges.ts +23 -0
  374. package/src/self-implement/goal-author.ts +14 -0
  375. package/src/self-implement/harness-policy-gates.ts +7 -5
  376. package/src/self-implement/heal-intake.ts +3 -0
  377. package/src/self-implement/host-regate.ts +28 -14
  378. package/src/self-implement/l8-merge-queue.ts +80 -8
  379. package/src/self-implement/orchestrator.ts +84 -28
  380. package/src/self-implement/seams.ts +8 -3
  381. package/src/self-implement/self-implement-cli.ts +4 -0
  382. package/src/self-implement/self-implement-runtime.ts +12 -0
  383. package/src/session-runtime/index.ts +5 -3
  384. package/src/shell-env-bootstrap.ts +35 -6
  385. package/src/steward/triage.ts +25 -8
  386. package/src/storage/file-lock.ts +33 -4
  387. package/src/task-agent/card-evidence.ts +6 -0
  388. package/src/task-agent/completion-evidence.ts +31 -3
  389. package/src/task-agent/cover.ts +61 -0
  390. package/src/task-agent/live-moves.ts +126 -3
  391. package/src/task-agent/parent-host.ts +315 -0
  392. package/src/task-agent/shadow.ts +19 -4
  393. package/src/task-agent/task-hand.ts +11 -2
  394. package/src/task-orchestrator/surfaces/pod-command-job.ts +41 -6
  395. package/src/task-orchestrator/surfaces/pod-gate-deps.ts +123 -0
  396. package/src/task-orchestrator/surfaces/pod-pool.ts +138 -15
  397. package/src/task-orchestrator/surfaces/self-implement-pod.ts +39 -6
  398. package/src/task-orchestrator/surfaces/self-implement.ts +7 -0
  399. package/src/telegram-commands.ts +8 -0
  400. package/src/telegram-project-command.ts +6 -0
  401. package/src/telegram.ts +2 -2
  402. package/src/tool-runtime/browser-runtime.ts +87 -3
  403. package/src/tool-runtime/index.ts +1 -0
  404. package/src/typecheck-ratchet.ts +2 -1
  405. package/src/user-config.ts +55 -8
  406. package/src/version/packed-revision.json +1 -1
  407. package/src/workflow-runtime/executor.ts +24 -2
  408. package/src/workflow-runtime/triggers/registry.ts +27 -0
  409. package/src/workflow-runtime/triggers/schedule-source.ts +30 -3
  410. package/apps/pwa/out/_next/static/Bam1YziK2iH9bN4K0utGk/_buildManifest.js +0 -1
  411. package/apps/pwa/out/_next/static/chunks/1307-77fad80cf54477c6.js +0 -1
  412. package/apps/pwa/out/_next/static/chunks/1612-f60c0c93ec773f81.js +0 -1
  413. package/apps/pwa/out/_next/static/chunks/1844-9ec4b1d12f6e80eb.js +0 -1
  414. package/apps/pwa/out/_next/static/chunks/1866-e7a6999f25548b30.js +0 -1
  415. package/apps/pwa/out/_next/static/chunks/1948.15f356b15a625597.js +0 -5
  416. package/apps/pwa/out/_next/static/chunks/2116-6429c188eb846ab8.js +0 -1
  417. package/apps/pwa/out/_next/static/chunks/224-e7be8f762fe74986.js +0 -1
  418. package/apps/pwa/out/_next/static/chunks/2549-89c518a4c8ed4d00.js +0 -1
  419. package/apps/pwa/out/_next/static/chunks/2957-96ffab3d521fb08f.js +0 -1
  420. package/apps/pwa/out/_next/static/chunks/3857-995ea9f5ef33d71e.js +0 -1
  421. package/apps/pwa/out/_next/static/chunks/5360-be1f1d8f9fcc9755.js +0 -1
  422. package/apps/pwa/out/_next/static/chunks/5755-ea7ed88eb956f47b.js +0 -1
  423. package/apps/pwa/out/_next/static/chunks/5977-94ed6f78e9814b2b.js +0 -1
  424. package/apps/pwa/out/_next/static/chunks/7748-6e51bfe927019f5c.js +0 -25
  425. package/apps/pwa/out/_next/static/chunks/9247-c1753a059e7bac08.js +0 -1
  426. package/apps/pwa/out/_next/static/chunks/a9f2b54d-33c0689b70ed8cf3.js +0 -1
  427. package/apps/pwa/out/_next/static/chunks/app/bots/page-7a852956c74015a3.js +0 -1
  428. package/apps/pwa/out/_next/static/chunks/app/ceo/page-c5a5c621be0e04ae.js +0 -1
  429. package/apps/pwa/out/_next/static/chunks/app/design-check/page-7c058069c5e7fa63.js +0 -1
  430. package/apps/pwa/out/_next/static/chunks/app/editor/page-dc5da0b8a2edb8a4.js +0 -1
  431. package/apps/pwa/out/_next/static/chunks/app/inside/page-ed4a6f799f005d09.js +0 -1
  432. package/apps/pwa/out/_next/static/chunks/app/intake/page-9cd565005b93aca6.js +0 -1
  433. package/apps/pwa/out/_next/static/chunks/app/layout-55f0f40c6db95f15.js +0 -1
  434. package/apps/pwa/out/_next/static/chunks/app/live/page-474cb5888ea0e8f3.js +0 -1
  435. package/apps/pwa/out/_next/static/chunks/app/market/page-9ca21f9ad3208a61.js +0 -1
  436. package/apps/pwa/out/_next/static/chunks/app/not-found-a9c2cfa8dda922a5.js +0 -1
  437. package/apps/pwa/out/_next/static/chunks/app/observatory/page-6da35144878feb6d.js +0 -1
  438. package/apps/pwa/out/_next/static/chunks/app/ops/checklist/page-f6055495e9ed7ea8.js +0 -1
  439. package/apps/pwa/out/_next/static/chunks/app/ops/release/page-25204694fa9984a5.js +0 -1
  440. package/apps/pwa/out/_next/static/chunks/app/ops/seats/page-a60e035f151d84d3.js +0 -1
  441. package/apps/pwa/out/_next/static/chunks/app/outputs/page-189c587f36874538.js +0 -1
  442. package/apps/pwa/out/_next/static/chunks/app/page-c56634bde705a65d.js +0 -1
  443. package/apps/pwa/out/_next/static/chunks/app/settings/devices/page-a8d2fe0c669e0de4.js +0 -1
  444. package/apps/pwa/out/_next/static/chunks/app/setup/done/page-c26fa10aac6c21c4.js +0 -1
  445. package/apps/pwa/out/_next/static/chunks/app/setup/page-68793c6e10331d66.js +0 -1
  446. package/apps/pwa/out/_next/static/chunks/app/showroom/page-d81c07a7b4f618ae.js +0 -1
  447. package/apps/pwa/out/_next/static/chunks/app/tasks/page-be1c4e8697f22360.js +0 -1
  448. package/apps/pwa/out/_next/static/chunks/app/today/page-a4717e2c4bf7a28f.js +0 -1
  449. package/apps/pwa/out/_next/static/chunks/app/trace/page-0fd895fab9b62c1b.js +0 -1
  450. package/apps/pwa/out/_next/static/chunks/app/vault/page-8b6c1454a8e8f306.js +0 -1
  451. package/apps/pwa/out/_next/static/chunks/app/workflows/chat-ui/page-c6e4364d9de8f717.js +0 -1
  452. package/apps/pwa/out/_next/static/chunks/app/worktrees/page-0506a1e0e4bdb2f5.js +0 -1
  453. package/apps/pwa/out/_next/static/chunks/webpack-c260571513bf43c2.js +0 -1
  454. package/apps/pwa/out/_next/static/css/c23d959d3ee15e57.css +0 -1
  455. /package/apps/pwa/out/_next/static/{Bam1YziK2iH9bN4K0utGk → aBi6EyMtLsrl7J8eH4kF7}/_ssgManifest.js +0 -0
  456. /package/skills/project-onboarding/{skill.md → SKILL.md} +0 -0
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2549],{6405:(e,t,n)=>{"use strict";e.exports=n(19472)},18928:(e,t,n)=>{"use strict";function o(e,t){if(Object.is(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(let[n,o]of e)if(!Object.is(o,t.get(n)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}let n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(let o of n)if(!Object.prototype.hasOwnProperty.call(t,o)||!Object.is(e[o],t[o]))return!1;return!0}n.d(t,{x:()=>o})},19472:(e,t,n)=>{"use strict";var o=n(46124),r="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},i=o.useState,a=o.useEffect,l=o.useLayoutEffect,s=o.useDebugValue;function u(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!r(e,n)}catch(e){return!0}}var d="undefined"==typeof window||void 0===window.document||void 0===window.document.createElement?function(e,t){return t()}:function(e,t){var n=t(),o=i({inst:{value:n,getSnapshot:t}}),r=o[0].inst,d=o[1];return l(function(){r.value=n,r.getSnapshot=t,u(r)&&d({inst:r})},[e,n,t]),a(function(){return u(r)&&d({inst:r}),e(function(){u(r)&&d({inst:r})})},[e]),s(n),n};t.useSyncExternalStore=void 0!==o.useSyncExternalStore?o.useSyncExternalStore:d},41863:(e,t,n)=>{"use strict";var o=n(46124),r=n(6405),i="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},a=r.useSyncExternalStore,l=o.useRef,s=o.useEffect,u=o.useMemo,d=o.useDebugValue;t.useSyncExternalStoreWithSelector=function(e,t,n,o,r){var c=l(null);if(null===c.current){var h={hasValue:!1,value:null};c.current=h}else h=c.current;var f=a(e,(c=u(function(){function e(e){if(!s){if(s=!0,a=e,e=o(e),void 0!==r&&h.hasValue){var t=h.value;if(r(t,e))return l=t}return l=e}if(t=l,i(a,e))return t;var n=o(e);return void 0!==r&&r(t,n)?(a=e,t):(a=e,l=n)}var a,l,s=!1,u=void 0===n?null:n;return[function(){return e(t())},null===u?void 0:function(){return e(u())}]},[t,n,o,r]))[0],c[1]);return s(function(){h.hasValue=!0,h.value=f},[f]),d(f),f}},58603:(e,t,n)=>{"use strict";var o=n(99027);n.o(o,"useParams")&&n.d(t,{useParams:function(){return o.useParams}}),n.o(o,"usePathname")&&n.d(t,{usePathname:function(){return o.usePathname}}),n.o(o,"useRouter")&&n.d(t,{useRouter:function(){return o.useRouter}}),n.o(o,"useSearchParams")&&n.d(t,{useSearchParams:function(){return o.useSearchParams}})},69280:(e,t,n)=>{"use strict";n.d(t,{Do:()=>a,Eo:()=>es,Er:()=>eh,Ff:()=>Z,Fp:()=>em,HF:()=>M,Hm:()=>eT,I$:()=>eU,IO:()=>H,Jo:()=>S,KE:()=>W,M_:()=>eL,Mi:()=>F,No:()=>eq,Q6:()=>ea,QE:()=>en,Qc:()=>i,R4:()=>G,TG:()=>l,Tq:()=>L,U$:()=>z,Ue:()=>J,WZ:()=>o,X6:()=>Y,YN:()=>ei,ZO:()=>g,_s:()=>er,aE:()=>k,aQ:()=>e2,aW:()=>eN,aZ:()=>A,ah:()=>e$,b$:()=>E,b5:()=>eH,bK:()=>w,bi:()=>eC,di:()=>e5,e_:()=>ep,kM:()=>C,kO:()=>tt,kf:()=>q,mW:()=>X,ny:()=>r,oB:()=>$,oN:()=>eA,oj:()=>eu,q1:()=>ef,qX:()=>ew,qn:()=>eK,r8:()=>eY,rN:()=>eE,s_:()=>K,tM:()=>v,tn:()=>m,uD:()=>et,uL:()=>eX,uj:()=>eb,us:()=>eo,v5:()=>ec,vS:()=>eD,xN:()=>u,xc:()=>x,yX:()=>s,zj:()=>Q});var o,r,i,a,l,s,u,d=n(33114),c=n(663),h=n(96390),f=n(19630),y=n(12028),p=n(57535);let x={error001:()=>"[React Flow]: Seems like you have not used zustand provider as an ancestor. Help: https://reactflow.dev/error#001",error002:()=>"It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.",error003:e=>`Node type "${e}" not found. Using fallback type "default".`,error004:()=>"The React Flow parent container needs a width and a height to render the graph.",error005:()=>"Only child nodes can use a parent extent.",error006:()=>"Can't create edge. An edge needs a source and a target.",error007:e=>`The old edge with id=${e} does not exist.`,error009:e=>`Marker type "${e}" doesn't exist.`,error008:(e,{id:t,sourceHandle:n,targetHandle:o})=>`Couldn't create edge for ${e} handle id: "${"source"===e?n:o}", edge id: ${t}.`,error010:()=>"Handle: No node id found. Make sure to only use a Handle inside a custom Node.",error011:e=>`Edge type "${e}" not found. Using fallback type "default".`,error012:e=>`Node with id "${e}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`,error013:(e="react")=>`It seems that you haven't loaded the styles. Please import '@xyflow/${e}/dist/style.css' or base.css to make sure everything is working properly.`,error014:()=>"useNodeConnections: No node ID found. Call useNodeConnections inside a custom Node or provide a node ID.",error015:()=>"It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs."},g=[[-1/0,-1/0],[1/0,1/0]],m=["Enter"," ","Escape"],v={"node.a11yDescription.default":"Press enter or space to select a node. Press delete to remove it and escape to cancel.","node.a11yDescription.keyboardDisabled":"Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.","node.a11yDescription.ariaLiveMessage":({direction:e,x:t,y:n})=>`Moved selected node ${e}. New position, x: ${t}, y: ${n}`,"edge.a11yDescription.default":"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.","controls.ariaLabel":"Control Panel","controls.zoomIn.ariaLabel":"Zoom In","controls.zoomOut.ariaLabel":"Zoom Out","controls.fitView.ariaLabel":"Fit View","controls.interactive.ariaLabel":"Toggle Interactivity","minimap.ariaLabel":"Mini Map","handle.ariaLabel":"Handle"};!function(e){e.Strict="strict",e.Loose="loose"}(o||(o={})),function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"}(r||(r={})),function(e){e.Partial="partial",e.Full="full"}(i||(i={}));let w={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null};!function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"}(a||(a={})),function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"}(l||(l={})),function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"}(s||(s={}));let b={[s.Left]:s.Right,[s.Right]:s.Left,[s.Top]:s.Bottom,[s.Bottom]:s.Top};function M(e){return null===e?null:e?"valid":"invalid"}let E=e=>"id"in e&&"source"in e&&"target"in e,$=e=>"id"in e&&"position"in e&&!("source"in e)&&!("target"in e),P=e=>"id"in e&&"internals"in e&&!("source"in e)&&!("target"in e),I=(e,t=[0,0])=>{let{width:n,height:o}=et(e),r=e.origin??t,i=n*r[0],a=o*r[1];return{x:e.position.x-i,y:e.position.y-a}},S=(e,t={nodeOrigin:[0,0]})=>0===e.length?{x:0,y:0,width:0,height:0}:V(e.reduce((e,n)=>{let o="string"==typeof n,r=t.nodeLookup||o?void 0:n;return t.nodeLookup&&(r=o?t.nodeLookup.get(n):P(n)?n:t.nodeLookup.get(n.id)),R(e,r?j(r,t.nodeOrigin):{x:0,y:0,x2:0,y2:0})},{x:1/0,y:1/0,x2:-1/0,y2:-1/0})),A=(e,t={})=>{let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0},o=!1;return e.forEach(e=>{(void 0===t.filter||t.filter(e))&&(n=R(n,j(e)),o=!0)}),o?V(n):{x:0,y:0,width:0,height:0}},z=(e,t,[n,o,r]=[0,0,1],i=!1,a=!1)=>{let l={...Z(t,[n,o,r]),width:t.width/r,height:t.height/r},s=[];for(let t of e.values()){let{measured:e,selectable:n=!0,hidden:o=!1}=t;if(a&&!n||o)continue;let r=e.width??t.width??t.initialWidth??null,u=e.height??t.height??t.initialHeight??null,d=Y(l,C(t)),c=(r??0)*(u??0),h=i&&d>0;(!t.internals.handleBounds||h||d>=c||t.dragging)&&s.push(t)}return s};async function H({nodes:e,width:t,height:n,panZoom:o,minZoom:r,maxZoom:i},a){if(0===e.size)return Promise.resolve(!0);let l=G(A(function(e,t){let n=new Map,o=t?.nodes?new Set(t.nodes.map(e=>e.id)):null;return e.forEach(e=>{e.measured.width&&e.measured.height&&(t?.includeHiddenNodes||!e.hidden)&&(!o||o.has(e.id))&&n.set(e.id,e)}),n}(e,a)),t,n,a?.minZoom??r,a?.maxZoom??i,a?.padding??.1);return await o.setViewport(l,{duration:a?.duration,ease:a?.ease,interpolate:a?.interpolate}),Promise.resolve(!0)}function k({nodeId:e,nextPosition:t,nodeLookup:n,nodeOrigin:o=[0,0],nodeExtent:r,onError:i}){let a=n.get(e),l=a.parentId?n.get(a.parentId):void 0,{x:s,y:u}=l?l.internals.positionAbsolute:{x:0,y:0},d=a.origin??o,c=a.extent||r;if("parent"!==a.extent||a.expandParent)l&&ee(a.extent)&&(c=[[a.extent[0][0]+s,a.extent[0][1]+u],[a.extent[1][0]+s,a.extent[1][1]+u]]);else if(l){let e=l.measured.width,t=l.measured.height;e&&t&&(c=[[s,u],[s+e,u+t]])}else i?.("005",x.error005());let h=ee(c)?N(t,c,a.measured):t;return(void 0===a.measured.width||void 0===a.measured.height)&&i?.("015",x.error015()),{position:{x:h.x-s+(a.measured.width??0)*d[0],y:h.y-u+(a.measured.height??0)*d[1]},positionAbsolute:h}}async function L({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:o,onBeforeDelete:r}){let i=new Set(e.map(e=>e.id)),a=[];for(let e of n){if(!1===e.deletable)continue;let t=i.has(e.id),n=!t&&e.parentId&&a.find(t=>t.id===e.parentId);(t||n)&&a.push(e)}let l=new Set(t.map(e=>e.id)),s=o.filter(e=>!1!==e.deletable),u=((e,t)=>{let n=new Set;return e.forEach(e=>{n.add(e.id)}),t.filter(e=>n.has(e.source)||n.has(e.target))})(a,s);for(let e of s)l.has(e.id)&&!u.find(t=>t.id===e.id)&&u.push(e);if(!r)return{edges:u,nodes:a};let d=await r({nodes:a,edges:u});return"boolean"==typeof d?d?{edges:u,nodes:a}:{edges:[],nodes:[]}:d}let B=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),N=(e={x:0,y:0},t,n)=>({x:B(e.x,t[0][0],t[1][0]-(n?.width??0)),y:B(e.y,t[0][1],t[1][1]-(n?.height??0))});function T(e,t,n){let{width:o,height:r}=et(n),{x:i,y:a}=n.internals.positionAbsolute;return N(e,[[i,a],[i+o,a+r]],t)}let O=(e,t,n)=>e<t?B(Math.abs(e-t),1,t)/t:e>n?-B(Math.abs(e-n),1,t)/t:0,_=(e,t,n=15,o=40)=>[O(e.x,o,t.width-o)*n,O(e.y,o,t.height-o)*n],R=(e,t)=>({x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x2,t.x2),y2:Math.max(e.y2,t.y2)}),D=({x:e,y:t,width:n,height:o})=>({x:e,y:t,x2:e+n,y2:t+o}),V=({x:e,y:t,x2:n,y2:o})=>({x:e,y:t,width:n-e,height:o-t}),C=(e,t=[0,0])=>{let{x:n,y:o}=P(e)?e.internals.positionAbsolute:I(e,t);return{x:n,y:o,width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}},j=(e,t=[0,0])=>{let{x:n,y:o}=P(e)?e.internals.positionAbsolute:I(e,t);return{x:n,y:o,x2:n+(e.measured?.width??e.width??e.initialWidth??0),y2:o+(e.measured?.height??e.height??e.initialHeight??0)}},F=(e,t)=>V(R(D(e),D(t))),Y=(e,t)=>Math.ceil(Math.max(0,Math.min(e.x+e.width,t.x+t.width)-Math.max(e.x,t.x))*Math.max(0,Math.min(e.y+e.height,t.y+t.height)-Math.max(e.y,t.y))),X=e=>q(e.width)&&q(e.height)&&q(e.x)&&q(e.y),q=e=>!isNaN(e)&&isFinite(e),W=(e,t)=>{},K=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),Z=({x:e,y:t},[n,o,r],i=!1,a=[1,1])=>{let l={x:(e-n)/r,y:(t-o)/r};return i?K(l,a):l},Q=({x:e,y:t},[n,o,r])=>({x:e*r+n,y:t*r+o});function U(e,t){if("number"==typeof e)return Math.floor((t-t/(1+e))*.5);if("string"==typeof e&&e.endsWith("px")){let t=parseFloat(e);if(!Number.isNaN(t))return Math.floor(t)}if("string"==typeof e&&e.endsWith("%")){let n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(t*n*.01)}return console.error(`[React Flow] The padding value "${e}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}let G=(e,t,n,o,r,i)=>{let a=function(e,t,n){if("string"==typeof e||"number"==typeof e){let o=U(e,n),r=U(e,t);return{top:o,right:r,bottom:o,left:r,x:2*r,y:2*o}}if("object"==typeof e){let o=U(e.top??e.y??0,n),r=U(e.bottom??e.y??0,n),i=U(e.left??e.x??0,t),a=U(e.right??e.x??0,t);return{top:o,right:a,bottom:r,left:i,x:i+a,y:o+r}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}(i,t,n),l=B(Math.min((t-a.x)/e.width,(n-a.y)/e.height),o,r),s=e.x+e.width/2,u=e.y+e.height/2,d=t/2-s*l,c=n/2-u*l,h=function(e,t,n,o,r,i){let{x:a,y:l}=Q(e,[t,n,o]),{x:s,y:u}=Q({x:e.x+e.width,y:e.y+e.height},[t,n,o]);return{left:Math.floor(a),top:Math.floor(l),right:Math.floor(r-s),bottom:Math.floor(i-u)}}(e,d,c,l,t,n),f={left:Math.min(h.left-a.left,0),top:Math.min(h.top-a.top,0),right:Math.min(h.right-a.right,0),bottom:Math.min(h.bottom-a.bottom,0)};return{x:d-f.left+f.right,y:c-f.top+f.bottom,zoom:l}},J=()=>"undefined"!=typeof navigator&&navigator?.userAgent?.indexOf("Mac")>=0;function ee(e){return null!=e&&"parent"!==e}function et(e){return{width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}}function en(e){return(e.measured?.width??e.width??e.initialWidth)!==void 0&&(e.measured?.height??e.height??e.initialHeight)!==void 0}function eo(e,t={width:0,height:0},n,o,r){let i={...e},a=o.get(n);if(a){let e=a.origin||r;i.x+=a.internals.positionAbsolute.x-(t.width??0)*e[0],i.y+=a.internals.positionAbsolute.y-(t.height??0)*e[1]}return i}function er(e,t){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}function ei(){let e,t;return{promise:new Promise((n,o)=>{e=n,t=o}),resolve:e,reject:t}}function ea(e){return{...v,...e||{}}}function el(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:o,containerBounds:r}){let{x:i,y:a}=ef(e),l=Z({x:i-(r?.left??0),y:a-(r?.top??0)},o),{x:s,y:u}=n?K(l,t):l;return{xSnapped:s,ySnapped:u,...l}}let es=e=>({width:e.offsetWidth,height:e.offsetHeight}),eu=e=>e?.getRootNode?.()||window?.document,ed=["INPUT","SELECT","TEXTAREA"];function ec(e){let t=e.composedPath?.()?.[0]||e.target;return t?.nodeType===1&&(ed.includes(t.nodeName)||t.hasAttribute("contenteditable")||!!t.closest(".nokey"))}let eh=e=>"clientX"in e,ef=(e,t)=>{let n=eh(e),o=n?e.clientX:e.touches?.[0].clientX,r=n?e.clientY:e.touches?.[0].clientY;return{x:o-(t?.left??0),y:r-(t?.top??0)}},ey=(e,t,n,o,r)=>{let i=t.querySelectorAll(`.${e}`);return i&&i.length?Array.from(i).map(t=>{let i=t.getBoundingClientRect();return{id:t.getAttribute("data-handleid"),type:e,nodeId:r,position:t.getAttribute("data-handlepos"),x:(i.left-n.left)/o,y:(i.top-n.top)/o,...es(t)}}):null};function ep({sourceX:e,sourceY:t,targetX:n,targetY:o,sourceControlX:r,sourceControlY:i,targetControlX:a,targetControlY:l}){let s=.125*e+.375*r+.375*a+.125*n,u=.125*t+.375*i+.375*l+.125*o,d=Math.abs(s-e),c=Math.abs(u-t);return[s,u,d,c]}function ex(e,t){return e>=0?.5*e:25*t*Math.sqrt(-e)}function eg({pos:e,x1:t,y1:n,x2:o,y2:r,c:i}){switch(e){case s.Left:return[t-ex(t-o,i),n];case s.Right:return[t+ex(o-t,i),n];case s.Top:return[t,n-ex(n-r,i)];case s.Bottom:return[t,n+ex(r-n,i)]}}function em({sourceX:e,sourceY:t,sourcePosition:n=s.Bottom,targetX:o,targetY:r,targetPosition:i=s.Top,curvature:a=.25}){let[l,u]=eg({pos:n,x1:e,y1:t,x2:o,y2:r,c:a}),[d,c]=eg({pos:i,x1:o,y1:r,x2:e,y2:t,c:a}),[h,f,y,p]=ep({sourceX:e,sourceY:t,targetX:o,targetY:r,sourceControlX:l,sourceControlY:u,targetControlX:d,targetControlY:c});return[`M${e},${t} C${l},${u} ${d},${c} ${o},${r}`,h,f,y,p]}function ev({sourceX:e,sourceY:t,targetX:n,targetY:o}){let r=Math.abs(n-e)/2,i=Math.abs(o-t)/2;return[n<e?n+r:n-r,o<t?o+i:o-i,r,i]}function ew({sourceNode:e,targetNode:t,selected:n=!1,zIndex:o=0,elevateOnSelect:r=!1,zIndexMode:i="basic"}){if("manual"===i)return o;let a=Math.max(e.parentId||r&&e.selected?e.internals.z:0,t.parentId||r&&t.selected?t.internals.z:0);return(r&&n?o+1e3:o)+a}function eb({sourceNode:e,targetNode:t,width:n,height:o,transform:r}){let i=R(j(e),j(t));return i.x===i.x2&&(i.x2+=1),i.y===i.y2&&(i.y2+=1),Y({x:-r[0]/r[2],y:-r[1]/r[2],width:n/r[2],height:o/r[2]},V(i))>0}let eM=({source:e,sourceHandle:t,target:n,targetHandle:o})=>`xy-edge__${e}${t||""}-${n}${o||""}`,eE=(e,t,n={})=>{let o;if(!e.source||!e.target)return W("006",x.error006()),t;let r=n.getEdgeId||eM;return((e,t)=>t.some(t=>t.source===e.source&&t.target===e.target&&(t.sourceHandle===e.sourceHandle||!t.sourceHandle&&!e.sourceHandle)&&(t.targetHandle===e.targetHandle||!t.targetHandle&&!e.targetHandle)))(o=E(e)?{...e}:{...e,id:r(e)},t)?t:(null===o.sourceHandle&&delete o.sourceHandle,null===o.targetHandle&&delete o.targetHandle,t.concat(o))};function e$({sourceX:e,sourceY:t,targetX:n,targetY:o}){let[r,i,a,l]=ev({sourceX:e,sourceY:t,targetX:n,targetY:o});return[`M ${e},${t}L ${n},${o}`,r,i,a,l]}let eP={[s.Left]:{x:-1,y:0},[s.Right]:{x:1,y:0},[s.Top]:{x:0,y:-1},[s.Bottom]:{x:0,y:1}},eI=({source:e,sourcePosition:t=s.Bottom,target:n})=>t===s.Left||t===s.Right?e.x<n.x?{x:1,y:0}:{x:-1,y:0}:e.y<n.y?{x:0,y:1}:{x:0,y:-1},eS=(e,t)=>Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function eA({sourceX:e,sourceY:t,sourcePosition:n=s.Bottom,targetX:o,targetY:r,targetPosition:i=s.Top,borderRadius:a=5,centerX:l,centerY:u,offset:d=20,stepPosition:c=.5}){let[h,f,y,p,x]=function({source:e,sourcePosition:t=s.Bottom,target:n,targetPosition:o=s.Top,center:r,offset:i,stepPosition:a}){let l,u,d=eP[t],c=eP[o],h={x:e.x+d.x*i,y:e.y+d.y*i},f={x:n.x+c.x*i,y:n.y+c.y*i},y=eI({source:h,sourcePosition:t,target:f}),p=0!==y.x?"x":"y",x=y[p],g=[],m={x:0,y:0},v={x:0,y:0},[,,w,b]=ev({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(d[p]*c[p]==-1){"x"===p?(l=r.x??h.x+(f.x-h.x)*a,u=r.y??(h.y+f.y)/2):(l=r.x??(h.x+f.x)/2,u=r.y??h.y+(f.y-h.y)*a);let e=[{x:l,y:h.y},{x:l,y:f.y}],t=[{x:h.x,y:u},{x:f.x,y:u}];g=d[p]===x?"x"===p?e:t:"x"===p?t:e}else{let r=[{x:h.x,y:f.y}],a=[{x:f.x,y:h.y}];if(g="x"===p?d.x===x?a:r:d.y===x?r:a,t===o){let t=Math.abs(e[p]-n[p]);if(t<=i){let o=Math.min(i-1,i-t);d[p]===x?m[p]=(h[p]>e[p]?-1:1)*o:v[p]=(f[p]>n[p]?-1:1)*o}}if(t!==o){let e="x"===p?"y":"x",t=d[p]===c[e],n=h[e]>f[e],o=h[e]<f[e];(1===d[p]&&(!t&&n||t&&o)||1!==d[p]&&(!t&&o||t&&n))&&(g="x"===p?r:a)}let s={x:h.x+m.x,y:h.y+m.y},y={x:f.x+v.x,y:f.y+v.y};Math.max(Math.abs(s.x-g[0].x),Math.abs(y.x-g[0].x))>=Math.max(Math.abs(s.y-g[0].y),Math.abs(y.y-g[0].y))?(l=(s.x+y.x)/2,u=g[0].y):(l=g[0].x,u=(s.y+y.y)/2)}let M={x:h.x+m.x,y:h.y+m.y},E={x:f.x+v.x,y:f.y+v.y};return[[e,...M.x!==g[0].x||M.y!==g[0].y?[M]:[],...g,...E.x!==g[g.length-1].x||E.y!==g[g.length-1].y?[E]:[],n],l,u,w,b]}({source:{x:e,y:t},sourcePosition:n,target:{x:o,y:r},targetPosition:i,center:{x:l,y:u},offset:d,stepPosition:c}),g=`M${h[0].x} ${h[0].y}`;for(let e=1;e<h.length-1;e++)g+=function(e,t,n,o){let r=Math.min(eS(e,t)/2,eS(t,n)/2,o),{x:i,y:a}=t;if(e.x===i&&i===n.x||e.y===a&&a===n.y)return`L${i} ${a}`;if(e.y===a){let t=e.x<n.x?-1:1,o=e.y<n.y?1:-1;return`L ${i+r*t},${a}Q ${i},${a} ${i},${a+r*o}`}let l=e.x<n.x?1:-1,s=e.y<n.y?-1:1;return`L ${i},${a+r*s}Q ${i},${a} ${i+r*l},${a}`}(h[e-1],h[e],h[e+1],a);return[g+=`L${h[h.length-1].x} ${h[h.length-1].y}`,f,y,p,x]}function ez(e){return e&&!!(e.internals.handleBounds||e.handles?.length)&&!!(e.measured.width||e.width||e.initialWidth)}function eH(e){let{sourceNode:t,targetNode:n}=e;if(!ez(t)||!ez(n))return null;let r=t.internals.handleBounds||ek(t.handles),i=n.internals.handleBounds||ek(n.handles),a=eB(r?.source??[],e.sourceHandle),l=eB(e.connectionMode===o.Strict?i?.target??[]:(i?.target??[]).concat(i?.source??[]),e.targetHandle);if(!a||!l)return e.onError?.("008",x.error008(!a?"source":"target",{id:e.id,sourceHandle:e.sourceHandle,targetHandle:e.targetHandle})),null;let u=a?.position||s.Bottom,d=l?.position||s.Top,c=eL(t,a,u),h=eL(n,l,d);return{sourceX:c.x,sourceY:c.y,targetX:h.x,targetY:h.y,sourcePosition:u,targetPosition:d}}function ek(e){if(!e)return null;let t=[],n=[];for(let o of e)o.width=o.width??1,o.height=o.height??1,"source"===o.type?t.push(o):"target"===o.type&&n.push(o);return{source:t,target:n}}function eL(e,t,n=s.Left,o=!1){let r=(t?.x??0)+e.internals.positionAbsolute.x,i=(t?.y??0)+e.internals.positionAbsolute.y,{width:a,height:l}=t??et(e);if(o)return{x:r+a/2,y:i+l/2};switch(t?.position??n){case s.Top:return{x:r+a/2,y:i};case s.Right:return{x:r+a,y:i+l/2};case s.Bottom:return{x:r+a/2,y:i+l};case s.Left:return{x:r,y:i+l/2}}}function eB(e,t){return e&&(t?e.find(e=>e.id===t):e[0])||null}function eN(e,t){if(!e)return"";if("string"==typeof e)return e;let n=t?`${t}__`:"";return`${n}${Object.keys(e).sort().map(t=>`${t}=${e[t]}`).join("&")}`}function eT(e,{id:t,defaultColor:n,defaultMarkerStart:o,defaultMarkerEnd:r}){let i=new Set;return e.reduce((e,a)=>([a.markerStart||o,a.markerEnd||r].forEach(o=>{if(o&&"object"==typeof o){let r=eN(o,t);i.has(r)||(e.push({id:r,color:o.color||n,...o}),i.add(r))}}),e),[]).sort((e,t)=>e.id.localeCompare(t.id))}let eO={nodeOrigin:[0,0],nodeExtent:g,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},e_={...eO,checkEquality:!0};function eR(e,t){let n={...e};for(let e in t)void 0!==t[e]&&(n[e]=t[e]);return n}function eD(e,t,n){let o=eR(eO,n);for(let n of e.values())if(n.parentId)ej(n,e,t,o);else{let e=N(I(n,o.nodeOrigin),ee(n.extent)?n.extent:o.nodeExtent,et(n));n.internals.positionAbsolute=e}}function eV(e){return"manual"===e}function eC(e,t,n,o={}){let r=eR(e_,o),i={i:0},a=new Map(t),l=r?.elevateNodesOnSelect&&!eV(r.zIndexMode)?1e3:0,s=e.length>0,u=!1;for(let d of(t.clear(),n.clear(),e)){let e=a.get(d.id);if(r.checkEquality&&d===e?.internals.userNode)t.set(d.id,e);else{let n=N(I(d,r.nodeOrigin),ee(d.extent)?d.extent:r.nodeExtent,et(d));e={...r.defaults,...d,measured:{width:d.measured?.width,height:d.measured?.height},internals:{positionAbsolute:n,handleBounds:function(e,t){if(!e.handles)return e.measured?t?.internals.handleBounds:void 0;let n=[],o=[];for(let t of e.handles){let r={id:t.id,width:t.width??1,height:t.height??1,nodeId:e.id,x:t.x,y:t.y,position:t.position,type:t.type};"source"===t.type?n.push(r):"target"===t.type&&o.push(r)}return{source:n,target:o}}(d,e),z:eF(d,l,r.zIndexMode),userNode:d}},t.set(d.id,e)}void 0!==e.measured&&void 0!==e.measured.width&&void 0!==e.measured.height||e.hidden||(s=!1),d.parentId&&ej(e,t,n,o,i),u||=d.selected??!1}return{nodesInitialized:s,hasSelectedNodes:u}}function ej(e,t,n,o,r){let{elevateNodesOnSelect:i,nodeOrigin:a,nodeExtent:l,zIndexMode:s}=eR(eO,o),u=e.parentId,d=t.get(u);if(!d)return void console.warn(`Parent node ${u} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);!function(e,t){if(!e.parentId)return;let n=t.get(e.parentId);n?n.set(e.id,e):t.set(e.parentId,new Map([[e.id,e]]))}(e,n),r&&!d.parentId&&void 0===d.internals.rootParentIndex&&"auto"===s&&(d.internals.rootParentIndex=++r.i,d.internals.z=d.internals.z+10*r.i),r&&void 0!==d.internals.rootParentIndex&&(r.i=d.internals.rootParentIndex);let{x:c,y:h,z:f}=function(e,t,n,o,r,i){let{x:a,y:l}=t.internals.positionAbsolute,s=et(e),u=I(e,n),d=ee(e.extent)?N(u,e.extent,s):u,c=N({x:a+d.x,y:l+d.y},o,s);"parent"===e.extent&&(c=T(c,s,t));let h=eF(e,r,i),f=t.internals.z??0;return{x:c.x,y:c.y,z:f>=h?f+1:h}}(e,d,a,l,i&&!eV(s)?1e3:0,s),{positionAbsolute:y}=e.internals,p=c!==y.x||h!==y.y;(p||f!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:p?{x:c,y:h}:y,z:f}})}function eF(e,t,n){let o=q(e.zIndex)?e.zIndex:0;return eV(n)?o:o+(e.selected?t:0)}function eY(e,t,n,o=[0,0]){let r=[],i=new Map;for(let n of e){let e=t.get(n.parentId);if(!e)continue;let o=F(i.get(n.parentId)?.expandedRect??C(e),n.rect);i.set(n.parentId,{expandedRect:o,parent:e})}return i.size>0&&i.forEach(({expandedRect:t,parent:i},a)=>{let l=i.internals.positionAbsolute,s=et(i),u=i.origin??o,d=t.x<l.x?Math.round(Math.abs(l.x-t.x)):0,c=t.y<l.y?Math.round(Math.abs(l.y-t.y)):0,h=Math.max(s.width,Math.round(t.width)),f=Math.max(s.height,Math.round(t.height)),y=(h-s.width)*u[0],p=(f-s.height)*u[1];(d>0||c>0||y||p)&&(r.push({id:a,type:"position",position:{x:i.position.x-d+y,y:i.position.y-c+p}}),n.get(a)?.forEach(t=>{e.some(e=>e.id===t.id)||r.push({id:t.id,type:"position",position:{x:t.position.x+d,y:t.position.y+c}})})),(s.width<t.width||s.height<t.height||d||c)&&r.push({id:a,type:"dimensions",setAttributes:!0,dimensions:{width:h+(d?u[0]*d-y:0),height:f+(c?u[1]*c-p:0)}})}),r}function eX(e,t,n,o,r,i,a){let l=o?.querySelector(".xyflow__viewport"),s=!1;if(!l)return{changes:[],updatedInternals:s};let u=[],d=window.getComputedStyle(l),{m22:c}=new window.DOMMatrixReadOnly(d.transform),h=[];for(let o of e.values()){let e=t.get(o.id);if(!e)continue;if(e.hidden){t.set(e.id,{...e,internals:{...e.internals,handleBounds:void 0}}),s=!0;continue}let l=es(o.nodeElement),d=e.measured.width!==l.width||e.measured.height!==l.height;if(l.width&&l.height&&(d||!e.internals.handleBounds||o.force)){let f=o.nodeElement.getBoundingClientRect(),y=ee(e.extent)?e.extent:i,{positionAbsolute:p}=e.internals;e.parentId&&"parent"===e.extent?p=T(p,l,t.get(e.parentId)):y&&(p=N(p,y,l));let x={...e,measured:l,internals:{...e.internals,positionAbsolute:p,handleBounds:{source:ey("source",o.nodeElement,f,c,e.id),target:ey("target",o.nodeElement,f,c,e.id)}}};t.set(e.id,x),e.parentId&&ej(x,t,n,{nodeOrigin:r,zIndexMode:a}),s=!0,d&&(u.push({id:e.id,type:"dimensions",dimensions:l}),e.expandParent&&e.parentId&&h.push({id:e.id,parentId:e.parentId,rect:C(x,r)}))}}if(h.length>0){let e=eY(h,t,n,r);u.push(...e)}return{changes:u,updatedInternals:s}}async function eq({delta:e,panZoom:t,transform:n,translateExtent:o,width:r,height:i}){if(!t||!e.x&&!e.y)return Promise.resolve(!1);let a=await t.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[r,i]],o);return Promise.resolve(!!a&&(a.x!==n[0]||a.y!==n[1]||a.k!==n[2]))}function eW(e,t,n,o,r,i){let a=r,l=o.get(a)||new Map;o.set(a,l.set(n,t)),a=`${r}-${e}`;let s=o.get(a)||new Map;if(o.set(a,s.set(n,t)),i){a=`${r}-${e}-${i}`;let l=o.get(a)||new Map;o.set(a,l.set(n,t))}}function eK(e,t,n){for(let o of(e.clear(),t.clear(),n)){let{source:n,target:r,sourceHandle:i=null,targetHandle:a=null}=o,l={edgeId:o.id,source:n,target:r,sourceHandle:i,targetHandle:a},s=`${n}-${i}--${r}-${a}`;eW("source",l,`${r}-${a}--${n}-${i}`,e,n,i),eW("target",l,s,e,r,a),t.set(o.id,o)}}function eZ(e,t,n){let o=e;do{if(o?.matches?.(t))return!0;if(o===n)break;o=o?.parentElement}while(o);return!1}function eQ({nodeId:e,dragItems:t,nodeLookup:n,dragging:o=!0}){let r=[];for(let[e,i]of t){let t=n.get(e)?.internals.userNode;t&&r.push({...t,position:i.position,dragging:o})}if(!e)return[r[0],r];let i=n.get(e)?.internals.userNode;return[i?{...i,position:t.get(e)?.position||i.position,dragging:o}:r[0],r]}function eU({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:o,onDragStop:r}){let i={x:null,y:null},a=0,l=new Map,s=!1,u={x:0,y:0},h=null,f=!1,y=null,p=!1,x=!1,g=null;return{update:function({noDragClassName:m,handleSelector:v,domNode:w,isSelectable:b,nodeId:M,nodeClickDistance:E=0}){function $({x:e,y:n}){let{nodeLookup:r,nodeExtent:a,snapGrid:s,snapToGrid:u,nodeOrigin:d,onNodeDrag:c,onSelectionDrag:h,onError:f,updateNodePositions:y}=t();i={x:e,y:n};let p=!1,m=l.size>1,v=m&&a?D(A(l)):null,w=m&&u?function({dragItems:e,snapGrid:t,x:n,y:o}){let r=e.values().next().value;if(!r)return null;let i={x:n-r.distance.x,y:o-r.distance.y},a=K(i,t);return{x:a.x-i.x,y:a.y-i.y}}({dragItems:l,snapGrid:s,x:e,y:n}):null;for(let[t,o]of l){if(!r.has(t))continue;let i={x:e-o.distance.x,y:n-o.distance.y};u&&(i=w?{x:Math.round(i.x+w.x),y:Math.round(i.y+w.y)}:K(i,s));let l=null;if(m&&a&&!o.extent&&v){let{positionAbsolute:e}=o.internals,t=e.x-v.x+a[0][0],n=e.x+o.measured.width-v.x2+a[1][0];l=[[t,e.y-v.y+a[0][1]],[n,e.y+o.measured.height-v.y2+a[1][1]]]}let{position:c,positionAbsolute:h}=k({nodeId:t,nextPosition:i,nodeLookup:r,nodeExtent:l||a,nodeOrigin:d,onError:f});p=p||o.position.x!==c.x||o.position.y!==c.y,o.position=c,o.internals.positionAbsolute=h}if(x=x||p,p&&(y(l,!0),g&&(o||c||!M&&h))){let[e,t]=eQ({nodeId:M,dragItems:l,nodeLookup:r});o?.(g,l,e,t),c?.(g,e,t),M||h?.(g,t)}}async function P(){if(!h)return;let{transform:e,panBy:n,autoPanSpeed:o,autoPanOnNodeDrag:r}=t();if(!r){s=!1,cancelAnimationFrame(a);return}let[l,d]=_(u,h,o);(0!==l||0!==d)&&(i.x=(i.x??0)-l/e[2],i.y=(i.y??0)-d/e[2],await n({x:l,y:d})&&$(i)),a=requestAnimationFrame(P)}function I(o){let{nodeLookup:r,multiSelectionActive:a,nodesDraggable:s,transform:u,snapGrid:d,snapToGrid:c,selectNodesOnDrag:y,onNodeDragStart:p,onSelectionDragStart:x,unselectNodesAndEdges:g}=t();f=!0,y&&b||a||!M||r.get(M)?.selected||g(),b&&y&&M&&e?.(M);let m=el(o.sourceEvent,{transform:u,snapGrid:d,snapToGrid:c,containerBounds:h});if(i=m,(l=function(e,t,n,o){let r=new Map;for(let[i,a]of e)if((a.selected||a.id===o)&&(!a.parentId||!function e(t,n){if(!t.parentId)return!1;let o=n.get(t.parentId);return!!o&&(!!o.selected||e(o,n))}(a,e))&&(a.draggable||t&&void 0===a.draggable)){let t=e.get(i);t&&r.set(i,{id:i,position:t.position||{x:0,y:0},distance:{x:n.x-t.internals.positionAbsolute.x,y:n.y-t.internals.positionAbsolute.y},extent:t.extent,parentId:t.parentId,origin:t.origin,expandParent:t.expandParent,internals:{positionAbsolute:t.internals.positionAbsolute||{x:0,y:0}},measured:{width:t.measured.width??0,height:t.measured.height??0}})}return r}(r,s,m,M)).size>0&&(n||p||!M&&x)){let[e,t]=eQ({nodeId:M,dragItems:l,nodeLookup:r});n?.(o.sourceEvent,l,e,t),p?.(o.sourceEvent,e,t),M||x?.(o.sourceEvent,t)}}y=(0,c.A)(w);let S=(0,d.A)().clickDistance(E).on("start",e=>{let{domNode:n,nodeDragThreshold:o,transform:r,snapGrid:a,snapToGrid:l}=t();h=n?.getBoundingClientRect()||null,p=!1,x=!1,g=e.sourceEvent,0===o&&I(e),i=el(e.sourceEvent,{transform:r,snapGrid:a,snapToGrid:l,containerBounds:h}),u=ef(e.sourceEvent,h)}).on("drag",e=>{let{autoPanOnNodeDrag:n,transform:o,snapGrid:r,snapToGrid:a,nodeDragThreshold:d,nodeLookup:c}=t(),y=el(e.sourceEvent,{transform:o,snapGrid:r,snapToGrid:a,containerBounds:h});if(g=e.sourceEvent,("touchmove"===e.sourceEvent.type&&e.sourceEvent.touches.length>1||M&&!c.has(M))&&(p=!0),!p){if(!s&&n&&f&&(s=!0,P()),!f){let t=ef(e.sourceEvent,h),n=t.x-u.x,o=t.y-u.y;Math.sqrt(n*n+o*o)>d&&I(e)}(i.x!==y.xSnapped||i.y!==y.ySnapped)&&l&&f&&(u=ef(e.sourceEvent,h),$(y))}}).on("end",e=>{if(f&&!p&&(s=!1,f=!1,cancelAnimationFrame(a),l.size>0)){let{nodeLookup:n,updateNodePositions:o,onNodeDragStop:i,onSelectionDragStop:a}=t();if(x&&(o(l,!1),x=!1),r||i||!M&&a){let[t,o]=eQ({nodeId:M,dragItems:l,nodeLookup:n,dragging:!1});r?.(e.sourceEvent,l,t,o),i?.(e.sourceEvent,t,o),M||a?.(e.sourceEvent,o)}}}).filter(e=>{let t=e.target;return!e.button&&(!m||!eZ(t,`.${m}`,w))&&(!v||eZ(t,v,w))});y.call(S)},destroy:function(){y?.on(".drag",null)}}}function eG(e,t,n,o,r,i=!1){let a=o.get(e);if(!a)return null;let l="strict"===r?a.internals.handleBounds?.[t]:[...a.internals.handleBounds?.source??[],...a.internals.handleBounds?.target??[]],s=(n?l?.find(e=>e.id===n):l?.[0])??null;return s&&i?{...s,...eL(a,s,s.position,!0)}:s}function eJ(e,t){return e?e:t?.classList.contains("target")?"target":t?.classList.contains("source")?"source":null}let e0=()=>!0;function e1(e,{handle:t,connectionMode:n,fromNodeId:r,fromHandleId:i,fromType:a,doc:l,lib:s,flowId:u,isValidConnection:d=e0,nodeLookup:c}){let h="target"===a,f=t?l.querySelector(`.${s}-flow__handle[data-id="${u}-${t?.nodeId}-${t?.id}-${t?.type}"]`):null,{x:y,y:p}=ef(e),x=l.elementFromPoint(y,p),g=x?.classList.contains(`${s}-flow__handle`)?x:f,m={handleDomNode:g,isValid:!1,connection:null,toHandle:null};if(g){let e=eJ(void 0,g),t=g.getAttribute("data-nodeid"),a=g.getAttribute("data-handleid"),l=g.classList.contains("connectable"),s=g.classList.contains("connectableend");if(!t||!e)return m;let u={source:h?t:r,sourceHandle:h?a:i,target:h?r:t,targetHandle:h?i:a};m.connection=u,m.isValid=l&&s&&(n===o.Strict?h&&"source"===e||!h&&"target"===e:t!==r||a!==i)&&d(u),m.toHandle=eG(t,e,a,c,n,!0)}return m}let e2={onPointerDown:function(e,{connectionMode:t,connectionRadius:n,handleId:o,nodeId:r,edgeUpdaterType:i,isTarget:a,domNode:l,nodeLookup:u,lib:d,autoPanOnConnect:c,flowId:h,panBy:f,cancelConnection:y,onConnectStart:p,onConnect:x,onConnectEnd:g,isValidConnection:m=e0,onReconnectEnd:v,updateConnection:w,getTransform:M,getFromHandle:E,autoPanSpeed:$,dragThreshold:P=1,handleDomNode:I}){let S,A=eu(e.target),z=0,{x:H,y:k}=ef(e),L=eJ(i,I),B=l?.getBoundingClientRect(),N=!1;if(!B||!L)return;let T=eG(r,L,o,u,t);if(!T)return;let O=ef(e,B),R=!1,D=null,V=!1,j=null,F={...T,nodeId:r,type:L,position:T.position},X=u.get(r),q={inProgress:!0,isValid:null,from:eL(X,F,s.Left,!0),fromHandle:F,fromPosition:F.position,fromNode:X,to:O,toHandle:null,toPosition:b[F.position],toNode:null,pointer:O};function W(){N=!0,w(q),p?.(e,{nodeId:r,handleId:o,handleType:L})}function K(e){var i,l;let y;if(!N){let{x:t,y:n}=ef(e),o=t-H,r=n-k;if(!(o*o+r*r>P*P))return;W()}if(!E()||!F)return void U(e);let p=M();S=function(e,t,n,o){let r=[],i=1/0;for(let a of function(e,t,n){let o=[],r={x:e.x-n,y:e.y-n,width:2*n,height:2*n};for(let e of t.values())Y(r,C(e))>0&&o.push(e);return o}(e,n,t+250))for(let n of[...a.internals.handleBounds?.source??[],...a.internals.handleBounds?.target??[]]){if(o.nodeId===n.nodeId&&o.type===n.type&&o.id===n.id)continue;let{x:l,y:s}=eL(a,n,n.position,!0),u=Math.sqrt(Math.pow(l-e.x,2)+Math.pow(s-e.y,2));u>t||(u<i?(r=[{...n,x:l,y:s}],i=u):u===i&&r.push({...n,x:l,y:s}))}if(!r.length)return null;if(r.length>1){let e="source"===o.type?"target":"source";return r.find(t=>t.type===e)??r[0]}return r[0]}(Z(O=ef(e,B),p,!1,[1,1]),n,u,F),R||(!function e(){if(!c||!B)return;let[t,n]=_(O,B,$);f({x:t,y:n}),z=requestAnimationFrame(e)}(),R=!0);let x=e1(e,{handle:S,connectionMode:t,fromNodeId:r,fromHandleId:o,fromType:a?"target":"source",isValidConnection:m,doc:A,lib:d,flowId:h,nodeLookup:u});j=x.handleDomNode,D=x.connection,i=!!S,l=x.isValid,y=null,l?y=!0:i&&!l&&(y=!1),V=y;let g=u.get(r),v=g?eL(g,F,s.Left,!0):q.from,I={...q,from:v,isValid:V,to:x.toHandle&&V?Q({x:x.toHandle.x,y:x.toHandle.y},p):O,toHandle:x.toHandle,toPosition:V&&x.toHandle?x.toHandle.position:b[F.position],toNode:x.toHandle?u.get(x.toHandle.nodeId):null,pointer:O};w(I),q=I}function U(e){if(!("touches"in e)||!(e.touches.length>0)){if(N){(S||j)&&D&&V&&x?.(D);let{inProgress:t,...n}=q,o={...n,toPosition:q.toHandle?q.toPosition:null};g?.(e,o),i&&v?.(e,o)}y(),cancelAnimationFrame(z),R=!1,V=!1,D=null,j=null,A.removeEventListener("mousemove",K),A.removeEventListener("mouseup",U),A.removeEventListener("touchmove",K),A.removeEventListener("touchend",U)}}0===P&&W(),A.addEventListener("mousemove",K),A.addEventListener("mouseup",U),A.addEventListener("touchmove",K),A.addEventListener("touchend",U)},isValid:e1};function e5({domNode:e,panZoom:t,getTransform:n,getViewScale:o}){let r=(0,c.A)(e);return{update:function({translateExtent:e,width:i,height:a,zoomStep:l=1,pannable:s=!0,zoomable:u=!0,inversePan:d=!1}){let c=[0,0],h=(0,f.s_)().on("start",e=>{("mousedown"===e.sourceEvent.type||"touchstart"===e.sourceEvent.type)&&(c=[e.sourceEvent.clientX??e.sourceEvent.touches[0].clientX,e.sourceEvent.clientY??e.sourceEvent.touches[0].clientY])}).on("zoom",s?r=>{let l=n();if("mousemove"!==r.sourceEvent.type&&"touchmove"!==r.sourceEvent.type||!t)return;let s=[r.sourceEvent.clientX??r.sourceEvent.touches[0].clientX,r.sourceEvent.clientY??r.sourceEvent.touches[0].clientY],u=[s[0]-c[0],s[1]-c[1]];c=s;let h=o()*Math.max(l[2],Math.log(l[2]))*(d?-1:1),f={x:l[0]-u[0]*h,y:l[1]-u[1]*h};t.setViewportConstrained({x:f.x,y:f.y,zoom:l[2]},[[0,0],[i,a]],e)}:null).on("zoom.wheel",u?e=>{if("wheel"!==e.sourceEvent.type||!t)return;let o=n(),r=e.sourceEvent.ctrlKey&&J()?10:1,i=-e.sourceEvent.deltaY*(1===e.sourceEvent.deltaMode?.05:e.sourceEvent.deltaMode?1:.002)*l,a=o[2]*Math.pow(2,i*r);t.scaleTo(a)}:null);r.call(h,{})},destroy:function(){r.on("zoom",null)},pointer:h.A}}let e3=e=>({x:e.x,y:e.y,zoom:e.k}),e4=({x:e,y:t,zoom:n})=>f.GS.translate(e,t).scale(n),e6=(e,t)=>e.target.closest(`.${t}`),e7=(e,t)=>2===t&&Array.isArray(e)&&e.includes(2),e8=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,e9=(e,t=0,n=e8,o=()=>{})=>{let r="number"==typeof t&&t>0;return r||o(),r?e.transition().duration(t).ease(n).on("end",o):e},te=e=>{let t=e.ctrlKey&&J()?10:1;return-e.deltaY*(1===e.deltaMode?.05:e.deltaMode?1:.002)*t};function tt({domNode:e,minZoom:t,maxZoom:n,translateExtent:o,viewport:i,onPanZoom:a,onPanZoomStart:l,onPanZoomEnd:s,onDraggingChange:u}){let d={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{x:0,y:0,zoom:0},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},x=e.getBoundingClientRect(),g=(0,f.s_)().scaleExtent([t,n]).translateExtent(o),m=(0,c.A)(e).call(g);E({x:i.x,y:i.y,zoom:B(i.zoom,t,n)},[[0,0],[x.width,x.height]],o);let v=m.on("wheel.zoom"),w=m.on("dblclick.zoom");function b(e,t){return m?new Promise(n=>{g?.interpolate(t?.interpolate==="linear"?y.A:p.A).transform(e9(m,t?.duration,t?.ease,()=>n(!0)),e)}):Promise.resolve(!1)}function M(){g.on("zoom",null)}async function E(e,t,n){let o=e4(e),r=g?.constrain()(o,t,n);return r&&await b(r),new Promise(e=>e(r))}return g.wheelDelta(te),{update:function({noWheelClassName:e,noPanClassName:t,onPaneContextMenu:n,userSelectionActive:o,panOnScroll:i,panOnDrag:c,panOnScrollMode:f,panOnScrollSpeed:y,preventScrolling:p,zoomOnPinch:x,zoomOnScroll:b,zoomOnDoubleClick:E,zoomActivationKeyPressed:$,lib:P,onTransformChange:I,connectionInProgress:S,paneClickDistance:A,selectionOnDrag:z}){o&&!d.isZoomingOrPanning&&M();let H=i&&!$&&!o;g.clickDistance(z?1/0:!q(A)||A<0?0:A);let k=H?function({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:o,panOnScrollMode:i,panOnScrollSpeed:a,zoomOnPinch:l,onPanZoomStart:s,onPanZoom:u,onPanZoomEnd:d}){return c=>{if(e6(c,t))return c.ctrlKey&&c.preventDefault(),!1;c.preventDefault(),c.stopImmediatePropagation();let f=n.property("__zoom").k||1;if(c.ctrlKey&&l){let e=(0,h.A)(c),t=f*Math.pow(2,te(c));o.scaleTo(n,t,e,c);return}let y=1===c.deltaMode?20:1,p=i===r.Vertical?0:c.deltaX*y,x=i===r.Horizontal?0:c.deltaY*y;!J()&&c.shiftKey&&i!==r.Vertical&&(p=c.deltaY*y,x=0),o.translateBy(n,-(p/f)*a,-(x/f)*a,{internal:!0});let g=e3(n.property("__zoom"));clearTimeout(e.panScrollTimeout),e.isPanScrolling?(u?.(c,g),e.panScrollTimeout=setTimeout(()=>{d?.(c,g),e.isPanScrolling=!1},150)):(e.isPanScrolling=!0,s?.(c,g))}}({zoomPanValues:d,noWheelClassName:e,d3Selection:m,d3Zoom:g,panOnScrollMode:f,panOnScrollSpeed:y,zoomOnPinch:x,onPanZoomStart:l,onPanZoom:a,onPanZoomEnd:s}):function({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(o,r){let i="wheel"===o.type,a=!t&&i&&!o.ctrlKey,l=e6(o,e);if(o.ctrlKey&&i&&l&&o.preventDefault(),a||l)return null;o.preventDefault(),n.call(this,o,r)}}({noWheelClassName:e,preventScrolling:p,d3ZoomHandler:v});if(m.on("wheel.zoom",k,{passive:!1}),!o){let e=function({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return o=>{if(o.sourceEvent?.internal)return;let r=e3(o.transform);e.mouseButton=o.sourceEvent?.button||0,e.isZoomingOrPanning=!0,e.prevViewport=r,o.sourceEvent?.type==="mousedown"&&t(!0),n&&n?.(o.sourceEvent,r)}}({zoomPanValues:d,onDraggingChange:u,onPanZoomStart:l});g.on("start",e);let t=function({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:o,onPanZoom:r}){return i=>{e.usedRightMouseButton=!!(n&&e7(t,e.mouseButton??0)),i.sourceEvent?.sync||o([i.transform.x,i.transform.y,i.transform.k]),r&&!i.sourceEvent?.internal&&r?.(i.sourceEvent,e3(i.transform))}}({zoomPanValues:d,panOnDrag:c,onPaneContextMenu:!!n,onPanZoom:a,onTransformChange:I});g.on("zoom",t);let o=function({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:o,onPanZoomEnd:r,onPaneContextMenu:i}){return a=>{if(!a.sourceEvent?.internal&&(e.isZoomingOrPanning=!1,i&&e7(t,e.mouseButton??0)&&!e.usedRightMouseButton&&a.sourceEvent&&i(a.sourceEvent),e.usedRightMouseButton=!1,o(!1),r)){let t=e3(a.transform);e.prevViewport=t,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{r?.(a.sourceEvent,t)},150*!!n)}}}({zoomPanValues:d,panOnDrag:c,panOnScroll:i,onPaneContextMenu:n,onPanZoomEnd:s,onDraggingChange:u});g.on("end",o)}let L=function({zoomActivationKeyPressed:e,zoomOnScroll:t,zoomOnPinch:n,panOnDrag:o,panOnScroll:r,zoomOnDoubleClick:i,userSelectionActive:a,noWheelClassName:l,noPanClassName:s,lib:u,connectionInProgress:d}){return c=>{let h=e||t,f=n&&c.ctrlKey,y="wheel"===c.type;if(1===c.button&&"mousedown"===c.type&&(e6(c,`${u}-flow__node`)||e6(c,`${u}-flow__edge`)))return!0;if(!o&&!h&&!r&&!i&&!n||a||d&&!y||e6(c,l)&&y||e6(c,s)&&(!y||r&&y&&!e)||!n&&c.ctrlKey&&y)return!1;if(!n&&"touchstart"===c.type&&c.touches?.length>1)return c.preventDefault(),!1;if(!h&&!r&&!f&&y||!o&&("mousedown"===c.type||"touchstart"===c.type)||Array.isArray(o)&&!o.includes(c.button)&&"mousedown"===c.type)return!1;let p=Array.isArray(o)&&o.includes(c.button)||!c.button||c.button<=1;return(!c.ctrlKey||y)&&p}}({zoomActivationKeyPressed:$,panOnDrag:c,zoomOnScroll:b,panOnScroll:i,zoomOnDoubleClick:E,zoomOnPinch:x,userSelectionActive:o,noPanClassName:t,noWheelClassName:e,lib:P,connectionInProgress:S});g.filter(L),E?m.on("dblclick.zoom",w):m.on("dblclick.zoom",null)},destroy:M,setViewport:async function e(e,t){let n=e4(e);return await b(n,t),new Promise(e=>e(n))},setViewportConstrained:E,getViewport:function(){let e=m?(0,f._V)(m.node()):{x:0,y:0,k:1};return{x:e.x,y:e.y,zoom:e.k}},scaleTo:function(e,t){return m?new Promise(n=>{g?.interpolate(t?.interpolate==="linear"?y.A:p.A).scaleTo(e9(m,t?.duration,t?.ease,()=>n(!0)),e)}):Promise.resolve(!1)},scaleBy:function(e,t){return m?new Promise(n=>{g?.interpolate(t?.interpolate==="linear"?y.A:p.A).scaleBy(e9(m,t?.duration,t?.ease,()=>n(!0)),e)}):Promise.resolve(!1)},setScaleExtent:function(e){g?.scaleExtent(e)},setTranslateExtent:function(e){g?.translateExtent(e)},syncViewport:function(e){if(m){let t=e4(e),n=m.property("__zoom");(n.k!==e.zoom||n.x!==e.x||n.y!==e.y)&&g?.transform(m,t,null,{sync:!0})}},setClickDistance:function(e){let t=!q(e)||e<0?0:e;g?.clickDistance(t)}}}!function(e){e.Line="line",e.Handle="handle"}(u||(u={}))},71588:()=>{},71791:(e,t,n)=>{"use strict";e.exports=n(41863)},88175:(e,t,n)=>{"use strict";n.d(t,{h:()=>c,n:()=>u});var o=n(46124),r=n(71791);let i=e=>{let t,n=new Set,o=(e,o)=>{let r="function"==typeof e?e(t):e;if(!Object.is(r,t)){let e=t;t=(null!=o?o:"object"!=typeof r||null===r)?r:Object.assign({},t,r),n.forEach(n=>n(t,e))}},r=()=>t,i={setState:o,getState:r,getInitialState:()=>a,subscribe:e=>(n.add(e),()=>n.delete(e)),destroy:()=>{console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),n.clear()}},a=t=e(o,r,i);return i},{useDebugValue:a}=o,{useSyncExternalStoreWithSelector:l}=r,s=e=>e;function u(e,t=s,n){let o=l(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return a(o),o}let d=(e,t)=>{let n=(e=>e?i(e):i)(e),o=(e,o=t)=>u(n,e,o);return Object.assign(o,n),o},c=(e,t)=>e?d(e,t):d},97102:(e,t,n)=>{"use strict";n.d(t,{A:()=>function e(t){if("string"==typeof t||"number"==typeof t)return""+t;let n="";if(Array.isArray(t))for(let o=0,r;o<t.length;o++)""!==(r=e(t[o]))&&(n+=(n&&" ")+r);else for(let e in t)t[e]&&(n+=(n&&" ")+e);return n}})}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2957],{25432:(t,n,e)=>{e.d(n,{A:()=>r});function r(t){return(t()-.5)*1e-6}},31980:(t,n,e)=>{e.d(n,{A:()=>r});function r(t){return function(){return t}}},38393:(t,n,e)=>{e.d(n,{n5:()=>C});var r=e(77043),i=e(39860),u=e(12028),o=e(663),a=e(96390),s=e(68662);let l=t=>()=>t;function h(t,{sourceEvent:n,target:e,selection:r,mode:i,dispatch:u}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:n,enumerable:!0,configurable:!0},target:{value:e,enumerable:!0,configurable:!0},selection:{value:r,enumerable:!0,configurable:!0},mode:{value:i,enumerable:!0,configurable:!0},_:{value:u}})}function c(t){t.preventDefault(),t.stopImmediatePropagation()}var f={name:"drag"},y={name:"space"},v={name:"handle"},d={name:"center"};let{abs:x,max:p,min:g}=Math;function _(t){return[+t[0],+t[1]]}function w(t){return[_(t[0]),_(t[1])]}var b={name:"x",handles:["w","e"].map(q),input:function(t,n){return null==t?null:[[+t[0],n[0][1]],[+t[1],n[1][1]]]},output:function(t){return t&&[t[0][0],t[1][0]]}},A={name:"y",handles:["n","s"].map(q),input:function(t,n){return null==t?null:[[n[0][0],+t[0]],[n[1][0],+t[1]]]},output:function(t){return t&&[t[0][1],t[1][1]]}};["n","w","e","s","nw","ne","sw","se"].map(q);var m={overlay:"crosshair",selection:"move",n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},N={e:"w",w:"e",nw:"ne",ne:"nw",se:"sw",sw:"se"},k={n:"s",s:"n",nw:"sw",ne:"se",se:"ne",sw:"nw"},M={overlay:1,selection:1,n:null,e:1,s:null,w:-1,nw:-1,ne:1,se:1,sw:-1},z={overlay:1,selection:1,n:-1,e:null,s:1,w:null,nw:-1,ne:-1,se:1,sw:1};function q(t){return{type:t}}function E(t){return!t.ctrlKey&&!t.button}function K(){var t=this.ownerSVGElement||this;return 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]]}function P(){return navigator.maxTouchPoints||"ontouchstart"in this}function T(t){for(;!t.__brush;)if(!(t=t.parentNode))return;return t.__brush}function C(){return function(t){var n,e=K,_=E,C=P,V=!0,j=(0,r.A)("start","brush","end"),D=6;function G(n){var e=n.property("__brush",J).selectAll(".overlay").data([q("overlay")]);e.enter().append("rect").attr("class","overlay").attr("pointer-events","all").attr("cursor",m.overlay).merge(e).each(function(){var t=T(this).extent;(0,o.A)(this).attr("x",t[0][0]).attr("y",t[0][1]).attr("width",t[1][0]-t[0][0]).attr("height",t[1][1]-t[0][1])}),n.selectAll(".selection").data([q("selection")]).enter().append("rect").attr("class","selection").attr("cursor",m.selection).attr("fill","#777").attr("fill-opacity",.3).attr("stroke","#fff").attr("shape-rendering","crispEdges");var r=n.selectAll(".handle").data(t.handles,function(t){return t.type});r.exit().remove(),r.enter().append("rect").attr("class",function(t){return"handle handle--"+t.type}).attr("cursor",function(t){return m[t.type]}),n.each(I).attr("fill","none").attr("pointer-events","all").on("mousedown.brush",O).filter(C).on("touchstart.brush",O).on("touchmove.brush",F).on("touchend.brush touchcancel.brush",H).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function I(){var t=(0,o.A)(this),n=T(this).selection;n?(t.selectAll(".selection").style("display",null).attr("x",n[0][0]).attr("y",n[0][1]).attr("width",n[1][0]-n[0][0]).attr("height",n[1][1]-n[0][1]),t.selectAll(".handle").style("display",null).attr("x",function(t){return"e"===t.type[t.type.length-1]?n[1][0]-D/2:n[0][0]-D/2}).attr("y",function(t){return"s"===t.type[0]?n[1][1]-D/2:n[0][1]-D/2}).attr("width",function(t){return"n"===t.type||"s"===t.type?n[1][0]-n[0][0]+D:D}).attr("height",function(t){return"e"===t.type||"w"===t.type?n[1][1]-n[0][1]+D:D})):t.selectAll(".selection,.handle").style("display","none").attr("x",null).attr("y",null).attr("width",null).attr("height",null)}function S(t,n,e){var r=t.__brush.emitter;return!r||e&&r.clean?new B(t,n,e):r}function B(t,n,e){this.that=t,this.args=n,this.state=t.__brush,this.active=0,this.clean=e}function O(e){if((!n||e.touches)&&_.apply(this,arguments)){var r,u,l,h,w,q,E,K,P,C,j,D=this,G=e.target.__data__.type,B=(V&&e.metaKey?G="overlay":G)==="selection"?f:V&&e.altKey?d:v,O=t===A?null:M[G],F=t===b?null:z[G],H=T(D),J=H.extent,L=H.selection,Q=J[0][0],R=J[0][1],U=J[1][0],W=J[1][1],X=0,Y=0,Z=O&&F&&V&&e.shiftKey,$=Array.from(e.touches||[e],t=>{let n=t.identifier;return(t=(0,a.A)(t,D)).point0=t.slice(),t.identifier=n,t});(0,s.G)(D);var tt=S(D,arguments,!0).beforestart();if("overlay"===G){L&&(P=!0);let n=[$[0],$[1]||$[0]];H.selection=L=[[r=t===A?Q:g(n[0][0],n[1][0]),l=t===b?R:g(n[0][1],n[1][1])],[w=t===A?U:p(n[0][0],n[1][0]),E=t===b?W:p(n[0][1],n[1][1])]],$.length>1&&tu(e)}else r=L[0][0],l=L[0][1],w=L[1][0],E=L[1][1];u=r,h=l,q=w,K=E;var tn=(0,o.A)(D).attr("pointer-events","none"),te=tn.selectAll(".overlay").attr("cursor",m[G]);if(e.touches)tt.moved=ti,tt.ended=to;else{var tr=(0,o.A)(e.view).on("mousemove.brush",ti,!0).on("mouseup.brush",to,!0);V&&tr.on("keydown.brush",function(t){switch(t.keyCode){case 16:Z=O&&F;break;case 18:B===v&&(O&&(w=q-X*O,r=u+X*O),F&&(E=K-Y*F,l=h+Y*F),B=d,tu(t));break;case 32:(B===v||B===d)&&(O<0?w=q-X:O>0&&(r=u-X),F<0?E=K-Y:F>0&&(l=h-Y),B=y,te.attr("cursor",m.selection),tu(t));break;default:return}c(t)},!0).on("keyup.brush",function(t){switch(t.keyCode){case 16:Z&&(C=j=Z=!1,tu(t));break;case 18:B===d&&(O<0?w=q:O>0&&(r=u),F<0?E=K:F>0&&(l=h),B=v,tu(t));break;case 32:B===y&&(t.altKey?(O&&(w=q-X*O,r=u+X*O),F&&(E=K-Y*F,l=h+Y*F),B=d):(O<0?w=q:O>0&&(r=u),F<0?E=K:F>0&&(l=h),B=v),te.attr("cursor",m[G]),tu(t));break;default:return}c(t)},!0),(0,i.A)(e.view)}I.call(D),tt.start(e,B.name)}function ti(t){for(let n of t.changedTouches||[t])for(let t of $)t.identifier===n.identifier&&(t.cur=(0,a.A)(n,D));if(Z&&!C&&!j&&1===$.length){let t=$[0];x(t.cur[0]-t[0])>x(t.cur[1]-t[1])?j=!0:C=!0}for(let t of $)t.cur&&(t[0]=t.cur[0],t[1]=t.cur[1]);P=!0,c(t),tu(t)}function tu(t){var n;let e=$[0],i=e.point0;switch(X=e[0]-i[0],Y=e[1]-i[1],B){case y:case f:O&&(X=p(Q-r,g(U-w,X)),u=r+X,q=w+X),F&&(Y=p(R-l,g(W-E,Y)),h=l+Y,K=E+Y);break;case v:$[1]?(O&&(u=p(Q,g(U,$[0][0])),q=p(Q,g(U,$[1][0])),O=1),F&&(h=p(R,g(W,$[0][1])),K=p(R,g(W,$[1][1])),F=1)):(O<0?(X=p(Q-r,g(U-r,X)),u=r+X,q=w):O>0&&(X=p(Q-w,g(U-w,X)),u=r,q=w+X),F<0?(Y=p(R-l,g(W-l,Y)),h=l+Y,K=E):F>0&&(Y=p(R-E,g(W-E,Y)),h=l,K=E+Y));break;case d:O&&(u=p(Q,g(U,r-X*O)),q=p(Q,g(U,w+X*O))),F&&(h=p(R,g(W,l-Y*F)),K=p(R,g(W,E+Y*F)))}q<u&&(O*=-1,n=r,r=w,w=n,n=u,u=q,q=n,G in N&&te.attr("cursor",m[G=N[G]])),K<h&&(F*=-1,n=l,l=E,E=n,n=h,h=K,K=n,G in k&&te.attr("cursor",m[G=k[G]])),H.selection&&(L=H.selection),C&&(u=L[0][0],q=L[1][0]),j&&(h=L[0][1],K=L[1][1]),(L[0][0]!==u||L[0][1]!==h||L[1][0]!==q||L[1][1]!==K)&&(H.selection=[[u,h],[q,K]],I.call(D),tt.brush(t,B.name))}function to(t){var e;if(t.stopImmediatePropagation(),t.touches){if(t.touches.length)return;n&&clearTimeout(n),n=setTimeout(function(){n=null},500)}else(0,i.y)(t.view,P),tr.on("keydown.brush keyup.brush mousemove.brush mouseup.brush",null);tn.attr("pointer-events","all"),te.attr("cursor",m.overlay),H.selection&&(L=H.selection),((e=L)[0][0]===e[1][0]||e[0][1]===e[1][1])&&(H.selection=null,I.call(D)),tt.end(t,B.name)}}function F(t){S(this,arguments).moved(t)}function H(t){S(this,arguments).ended(t)}function J(){var n=this.__brush||{selection:null};return n.extent=w(e.apply(this,arguments)),n.dim=t,n}return G.move=function(n,e,r){n.tween?n.on("start.brush",function(t){S(this,arguments).beforestart().start(t)}).on("interrupt.brush end.brush",function(t){S(this,arguments).end(t)}).tween("brush",function(){var n=this,r=n.__brush,i=S(n,arguments),o=r.selection,a=t.input("function"==typeof e?e.apply(this,arguments):e,r.extent),s=(0,u.A)(o,a);function l(t){r.selection=1===t&&null===a?null:s(t),I.call(n),i.brush()}return null!==o&&null!==a?l:l(1)}):n.each(function(){var n=arguments,i=this.__brush,u=t.input("function"==typeof e?e.apply(this,n):e,i.extent),o=S(this,n).beforestart();(0,s.G)(this),i.selection=null===u?null:u,I.call(this),o.start(r).brush(r).end(r)})},G.clear=function(t,n){G.move(t,null,n)},B.prototype={beforestart:function(){return 1==++this.active&&(this.state.emitter=this,this.starting=!0),this},start:function(t,n){return this.starting?(this.starting=!1,this.emit("start",t,n)):this.emit("brush",t),this},brush:function(t,n){return this.emit("brush",t,n),this},end:function(t,n){return 0==--this.active&&(delete this.state.emitter,this.emit("end",t,n)),this},emit:function(n,e,r){var i=(0,o.A)(this.that).datum();j.call(n,this.that,new h(n,{sourceEvent:e,target:G,selection:t.output(this.state.selection),mode:r,dispatch:j}),i)}},G.extent=function(t){return arguments.length?(e="function"==typeof t?t:l(w(t)),G):e},G.filter=function(t){return arguments.length?(_="function"==typeof t?t:l(!!t),G):_},G.touchable=function(t){return arguments.length?(C="function"==typeof t?t:l(!!t),G):C},G.handleSize=function(t){return arguments.length?(D=+t,G):D},G.keyModifiers=function(t){return arguments.length?(V=!!t,G):V},G.on=function(){var t=j.on.apply(j,arguments);return t===j?G:t},G}(b)}},47082:(t,n,e)=>{e.d(n,{A:()=>s});var r=e(81127),i=e(31980),u=e(25432);function o(t){return t.x+t.vx}function a(t){return t.y+t.vy}function s(t){var n,e,s,l=1,h=1;function c(){for(var t,i,c,y,v,d,x,p=n.length,g=0;g<h;++g)for(t=0,i=(0,r.A)(n,o,a).visitAfter(f);t<p;++t)x=(d=e[(c=n[t]).index])*d,y=c.x+c.vx,v=c.y+c.vy,i.visit(_);function _(t,n,e,r,i){var o=t.data,a=t.r,h=d+a;if(o){if(o.index>c.index){var f=y-o.x-o.vx,p=v-o.y-o.vy,g=f*f+p*p;g<h*h&&(0===f&&(g+=(f=(0,u.A)(s))*f),0===p&&(g+=(p=(0,u.A)(s))*p),g=(h-(g=Math.sqrt(g)))/g*l,c.vx+=(f*=g)*(h=(a*=a)/(x+a)),c.vy+=(p*=g)*h,o.vx-=f*(h=1-h),o.vy-=p*h)}return}return n>y+h||r<y-h||e>v+h||i<v-h}}function f(t){if(t.data)return t.r=e[t.data.index];for(var n=t.r=0;n<4;++n)t[n]&&t[n].r>t.r&&(t.r=t[n].r)}function y(){if(n){var r,i,u=n.length;for(r=0,e=Array(u);r<u;++r)e[(i=n[r]).index]=+t(i,r,n)}}return"function"!=typeof t&&(t=(0,i.A)(null==t?1:+t)),c.initialize=function(t,e){n=t,s=e,y()},c.iterations=function(t){return arguments.length?(h=+t,c):h},c.strength=function(t){return arguments.length?(l=+t,c):l},c.radius=function(n){return arguments.length?(t="function"==typeof n?n:(0,i.A)(+n),y(),c):t},c}},52973:(t,n,e)=>{e.d(n,{A:()=>r});function r(t,n){var e,r=1;function i(){var i,u,o=e.length,a=0,s=0;for(i=0;i<o;++i)a+=(u=e[i]).x,s+=u.y;for(a=(a/o-t)*r,s=(s/o-n)*r,i=0;i<o;++i)u=e[i],u.x-=a,u.y-=s}return null==t&&(t=0),null==n&&(n=0),i.initialize=function(t){e=t},i.x=function(n){return arguments.length?(t=+n,i):t},i.y=function(t){return arguments.length?(n=+t,i):n},i.strength=function(t){return arguments.length?(r=+t,i):r},i}},56830:(t,n,e)=>{e.d(n,{A:()=>s,x:()=>u,y:()=>o});var r=e(77043),i=e(49243);function u(t){return t.x}function o(t){return t.y}var a=Math.PI*(3-Math.sqrt(5));function s(t){let n;var e,u=1,o=.001,s=1-Math.pow(.001,1/300),l=0,h=.6,c=new Map,f=(0,i.O1)(d),y=(0,r.A)("tick","end"),v=(n=1,()=>(n=(1664525*n+0x3c6ef35f)%0x100000000)/0x100000000);function d(){x(),y.call("tick",e),u<o&&(f.stop(),y.call("end",e))}function x(n){var r,i,o=t.length;void 0===n&&(n=1);for(var a=0;a<n;++a)for(u+=(l-u)*s,c.forEach(function(t){t(u)}),r=0;r<o;++r)null==(i=t[r]).fx?i.x+=i.vx*=h:(i.x=i.fx,i.vx=0),null==i.fy?i.y+=i.vy*=h:(i.y=i.fy,i.vy=0);return e}function p(){for(var n,e=0,r=t.length;e<r;++e){if((n=t[e]).index=e,null!=n.fx&&(n.x=n.fx),null!=n.fy&&(n.y=n.fy),isNaN(n.x)||isNaN(n.y)){var i=10*Math.sqrt(.5+e),u=e*a;n.x=i*Math.cos(u),n.y=i*Math.sin(u)}(isNaN(n.vx)||isNaN(n.vy))&&(n.vx=n.vy=0)}}function g(n){return n.initialize&&n.initialize(t,v),n}return null==t&&(t=[]),p(),e={tick:x,restart:function(){return f.restart(d),e},stop:function(){return f.stop(),e},nodes:function(n){return arguments.length?(t=n,p(),c.forEach(g),e):t},alpha:function(t){return arguments.length?(u=+t,e):u},alphaMin:function(t){return arguments.length?(o=+t,e):o},alphaDecay:function(t){return arguments.length?(s=+t,e):+s},alphaTarget:function(t){return arguments.length?(l=+t,e):l},velocityDecay:function(t){return arguments.length?(h=1-t,e):1-h},randomSource:function(t){return arguments.length?(v=t,c.forEach(g),e):v},force:function(t,n){return arguments.length>1?(null==n?c.delete(t):c.set(t,g(n)),e):c.get(t)},find:function(n,e,r){var i,u,o,a,s,l=0,h=t.length;for(null==r?r=1/0:r*=r,l=0;l<h;++l)(o=(i=n-(a=t[l]).x)*i+(u=e-a.y)*u)<r&&(s=a,r=o);return s},on:function(t,n){return arguments.length>1?(y.on(t,n),e):y.on(t)}}}},73855:(t,n,e)=>{e.d(n,{A:()=>r});let r=(0,e(3704).A)("crosshair",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"22",x2:"18",y1:"12",y2:"12",key:"l9bcsi"}],["line",{x1:"6",x2:"2",y1:"12",y2:"12",key:"13hhkx"}],["line",{x1:"12",x2:"12",y1:"6",y2:"2",key:"10w3f3"}],["line",{x1:"12",x2:"12",y1:"22",y2:"18",key:"15g9kq"}]])},81127:(t,n,e)=>{function r(t,n,e,r){if(isNaN(n)||isNaN(e))return t;var i,u,o,a,s,l,h,c,f,y=t._root,v={data:r},d=t._x0,x=t._y0,p=t._x1,g=t._y1;if(!y)return t._root=v,t;for(;y.length;)if((l=n>=(u=(d+p)/2))?d=u:p=u,(h=e>=(o=(x+g)/2))?x=o:g=o,i=y,!(y=y[c=h<<1|l]))return i[c]=v,t;if(a=+t._x.call(null,y.data),s=+t._y.call(null,y.data),n===a&&e===s)return v.next=y,i?i[c]=v:t._root=v,t;do i=i?i[c]=[,,,,]:t._root=[,,,,],(l=n>=(u=(d+p)/2))?d=u:p=u,(h=e>=(o=(x+g)/2))?x=o:g=o;while((c=h<<1|l)==(f=(s>=o)<<1|a>=u));return i[f]=y,i[c]=v,t}function i(t,n,e,r,i){this.node=t,this.x0=n,this.y0=e,this.x1=r,this.y1=i}function u(t){return t[0]}function o(t){return t[1]}function a(t,n,e){var r=new s(null==n?u:n,null==e?o:e,NaN,NaN,NaN,NaN);return null==t?r:r.addAll(t)}function s(t,n,e,r,i,u){this._x=t,this._y=n,this._x0=e,this._y0=r,this._x1=i,this._y1=u,this._root=void 0}function l(t){for(var n={data:t.data},e=n;t=t.next;)e=e.next={data:t.data};return n}e.d(n,{A:()=>a});var h=a.prototype=s.prototype;h.copy=function(){var t,n,e=new s(this._x,this._y,this._x0,this._y0,this._x1,this._y1),r=this._root;if(!r)return e;if(!r.length)return e._root=l(r),e;for(t=[{source:r,target:e._root=[,,,,]}];r=t.pop();)for(var i=0;i<4;++i)(n=r.source[i])&&(n.length?t.push({source:n,target:r.target[i]=[,,,,]}):r.target[i]=l(n));return e},h.add=function(t){let n=+this._x.call(null,t),e=+this._y.call(null,t);return r(this.cover(n,e),n,e,t)},h.addAll=function(t){var n,e,i,u,o=t.length,a=Array(o),s=Array(o),l=1/0,h=1/0,c=-1/0,f=-1/0;for(e=0;e<o;++e)!(isNaN(i=+this._x.call(null,n=t[e]))||isNaN(u=+this._y.call(null,n)))&&(a[e]=i,s[e]=u,i<l&&(l=i),i>c&&(c=i),u<h&&(h=u),u>f&&(f=u));if(l>c||h>f)return this;for(this.cover(l,h).cover(c,f),e=0;e<o;++e)r(this,a[e],s[e],t[e]);return this},h.cover=function(t,n){if(isNaN(t*=1)||isNaN(n*=1))return this;var e=this._x0,r=this._y0,i=this._x1,u=this._y1;if(isNaN(e))i=(e=Math.floor(t))+1,u=(r=Math.floor(n))+1;else{for(var o,a,s=i-e||1,l=this._root;e>t||t>=i||r>n||n>=u;)switch(a=(n<r)<<1|t<e,(o=[,,,,])[a]=l,l=o,s*=2,a){case 0:i=e+s,u=r+s;break;case 1:e=i-s,u=r+s;break;case 2:i=e+s,r=u-s;break;case 3:e=i-s,r=u-s}this._root&&this._root.length&&(this._root=l)}return this._x0=e,this._y0=r,this._x1=i,this._y1=u,this},h.data=function(){var t=[];return this.visit(function(n){if(!n.length)do t.push(n.data);while(n=n.next)}),t},h.extent=function(t){return arguments.length?this.cover(+t[0][0],+t[0][1]).cover(+t[1][0],+t[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]},h.find=function(t,n,e){var r,u,o,a,s,l,h,c=this._x0,f=this._y0,y=this._x1,v=this._y1,d=[],x=this._root;for(x&&d.push(new i(x,c,f,y,v)),null==e?e=1/0:(c=t-e,f=n-e,y=t+e,v=n+e,e*=e);l=d.pop();)if((x=l.node)&&!((u=l.x0)>y)&&!((o=l.y0)>v)&&!((a=l.x1)<c)&&!((s=l.y1)<f))if(x.length){var p=(u+a)/2,g=(o+s)/2;d.push(new i(x[3],p,g,a,s),new i(x[2],u,g,p,s),new i(x[1],p,o,a,g),new i(x[0],u,o,p,g)),(h=(n>=g)<<1|t>=p)&&(l=d[d.length-1],d[d.length-1]=d[d.length-1-h],d[d.length-1-h]=l)}else{var _=t-this._x.call(null,x.data),w=n-this._y.call(null,x.data),b=_*_+w*w;if(b<e){var A=Math.sqrt(e=b);c=t-A,f=n-A,y=t+A,v=n+A,r=x.data}}return r},h.remove=function(t){if(isNaN(u=+this._x.call(null,t))||isNaN(o=+this._y.call(null,t)))return this;var n,e,r,i,u,o,a,s,l,h,c,f,y=this._root,v=this._x0,d=this._y0,x=this._x1,p=this._y1;if(!y)return this;if(y.length)for(;;){if((l=u>=(a=(v+x)/2))?v=a:x=a,(h=o>=(s=(d+p)/2))?d=s:p=s,n=y,!(y=y[c=h<<1|l]))return this;if(!y.length)break;(n[c+1&3]||n[c+2&3]||n[c+3&3])&&(e=n,f=c)}for(;y.data!==t;)if(r=y,!(y=y.next))return this;return((i=y.next)&&delete y.next,r)?i?r.next=i:delete r.next:n?(i?n[c]=i:delete n[c],(y=n[0]||n[1]||n[2]||n[3])&&y===(n[3]||n[2]||n[1]||n[0])&&!y.length&&(e?e[f]=y:this._root=y)):this._root=i,this},h.removeAll=function(t){for(var n=0,e=t.length;n<e;++n)this.remove(t[n]);return this},h.root=function(){return this._root},h.size=function(){var t=0;return this.visit(function(n){if(!n.length)do++t;while(n=n.next)}),t},h.visit=function(t){var n,e,r,u,o,a,s=[],l=this._root;for(l&&s.push(new i(l,this._x0,this._y0,this._x1,this._y1));n=s.pop();)if(!t(l=n.node,r=n.x0,u=n.y0,o=n.x1,a=n.y1)&&l.length){var h=(r+o)/2,c=(u+a)/2;(e=l[3])&&s.push(new i(e,h,c,o,a)),(e=l[2])&&s.push(new i(e,r,c,h,a)),(e=l[1])&&s.push(new i(e,h,u,o,c)),(e=l[0])&&s.push(new i(e,r,u,h,c))}return this},h.visitAfter=function(t){var n,e=[],r=[];for(this._root&&e.push(new i(this._root,this._x0,this._y0,this._x1,this._y1));n=e.pop();){var u=n.node;if(u.length){var o,a=n.x0,s=n.y0,l=n.x1,h=n.y1,c=(a+l)/2,f=(s+h)/2;(o=u[0])&&e.push(new i(o,a,s,c,f)),(o=u[1])&&e.push(new i(o,c,s,l,f)),(o=u[2])&&e.push(new i(o,a,f,c,h)),(o=u[3])&&e.push(new i(o,c,f,l,h))}r.push(n)}for(;n=r.pop();)t(n.node,n.x0,n.y0,n.x1,n.y1);return this},h.x=function(t){return arguments.length?(this._x=t,this):this._x},h.y=function(t){return arguments.length?(this._y=t,this):this._y}},83183:(t,n,e)=>{e.d(n,{A:()=>a});var r=e(81127),i=e(31980),u=e(25432),o=e(56830);function a(){var t,n,e,a,s,l=(0,i.A)(-30),h=1,c=1/0,f=.81;function y(e){var i,u=t.length,s=(0,r.A)(t,o.x,o.y).visitAfter(d);for(a=e,i=0;i<u;++i)n=t[i],s.visit(x)}function v(){if(t){var n,e,r=t.length;for(n=0,s=Array(r);n<r;++n)s[(e=t[n]).index]=+l(e,n,t)}}function d(t){var n,e,r,i,u,o=0,a=0;if(t.length){for(r=i=u=0;u<4;++u)(n=t[u])&&(e=Math.abs(n.value))&&(o+=n.value,a+=e,r+=e*n.x,i+=e*n.y);t.x=r/a,t.y=i/a}else{(n=t).x=n.data.x,n.y=n.data.y;do o+=s[n.data.index];while(n=n.next)}t.value=o}function x(t,r,i,o){if(!t.value)return!0;var l=t.x-n.x,y=t.y-n.y,v=o-r,d=l*l+y*y;if(v*v/f<d)return d<c&&(0===l&&(d+=(l=(0,u.A)(e))*l),0===y&&(d+=(y=(0,u.A)(e))*y),d<h&&(d=Math.sqrt(h*d)),n.vx+=l*t.value*a/d,n.vy+=y*t.value*a/d),!0;if(!t.length&&!(d>=c)){(t.data!==n||t.next)&&(0===l&&(d+=(l=(0,u.A)(e))*l),0===y&&(d+=(y=(0,u.A)(e))*y),d<h&&(d=Math.sqrt(h*d)));do t.data!==n&&(v=s[t.data.index]*a/d,n.vx+=l*v,n.vy+=y*v);while(t=t.next)}}return y.initialize=function(n,r){t=n,e=r,v()},y.strength=function(t){return arguments.length?(l="function"==typeof t?t:(0,i.A)(+t),v(),y):l},y.distanceMin=function(t){return arguments.length?(h=t*t,y):Math.sqrt(h)},y.distanceMax=function(t){return arguments.length?(c=t*t,y):Math.sqrt(c)},y.theta=function(t){return arguments.length?(f=t*t,y):Math.sqrt(f)},y}},90932:(t,n,e)=>{e.d(n,{A:()=>a});var r=e(31980),i=e(25432);function u(t){return t.index}function o(t,n){var e=t.get(n);if(!e)throw Error("node not found: "+n);return e}function a(t){var n,e,a,s,l,h,c=u,f=function(t){return 1/Math.min(s[t.source.index],s[t.target.index])},y=(0,r.A)(30),v=1;function d(r){for(var u=0,o=t.length;u<v;++u)for(var a,s,c,f,y,d,x,p=0;p<o;++p)s=(a=t[p]).source,d=((d=Math.sqrt((f=(c=a.target).x+c.vx-s.x-s.vx||(0,i.A)(h))*f+(y=c.y+c.vy-s.y-s.vy||(0,i.A)(h))*y))-e[p])/d*r*n[p],f*=d,y*=d,c.vx-=f*(x=l[p]),c.vy-=y*x,s.vx+=f*(x=1-x),s.vy+=y*x}function x(){if(a){var r,i,u=a.length,h=t.length,f=new Map(a.map((t,n)=>[c(t,n,a),t]));for(r=0,s=Array(u);r<h;++r)(i=t[r]).index=r,"object"!=typeof i.source&&(i.source=o(f,i.source)),"object"!=typeof i.target&&(i.target=o(f,i.target)),s[i.source.index]=(s[i.source.index]||0)+1,s[i.target.index]=(s[i.target.index]||0)+1;for(r=0,l=Array(h);r<h;++r)i=t[r],l[r]=s[i.source.index]/(s[i.source.index]+s[i.target.index]);n=Array(h),p(),e=Array(h),g()}}function p(){if(a)for(var e=0,r=t.length;e<r;++e)n[e]=+f(t[e],e,t)}function g(){if(a)for(var n=0,r=t.length;n<r;++n)e[n]=+y(t[n],n,t)}return null==t&&(t=[]),d.initialize=function(t,n){a=t,h=n,x()},d.links=function(n){return arguments.length?(t=n,x(),d):t},d.id=function(t){return arguments.length?(c=t,d):c},d.iterations=function(t){return arguments.length?(v=+t,d):v},d.strength=function(t){return arguments.length?(f="function"==typeof t?t:(0,r.A)(+t),p(),d):f},d.distance=function(t){return arguments.length?(y="function"==typeof t?t:(0,r.A)(+t),g(),d):y},d}}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3857],{12958:(e,t,n)=>{n.d(t,{a:()=>o});var r=n(55539),a=n(46124),l=n(74780);let s=e=>JSON.stringify([e.graphId,e.runId]);function o(e){let{client:t,approvals:n,onDecided:o,onPendingChange:i}=e,c=(0,a.useMemo)(()=>(0,l.ll)({client:t}),[t]),[d,u]=(0,a.useState)([]),[m,h]=(0,a.useState)({}),[p,f]=(0,a.useState)(null),[g,x]=(0,a.useState)(""),b=(0,a.useRef)(0),v=n.map(s).join("|");function y(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:m;u(e),i(n.filter(n=>!t[s(n)]&&e.some(e=>s(e)===s(n))).length)}async function w(e,t){let r=s(e);if(p||m[r]||!n.some(e=>s(e)===r)||!d.some(e=>s(e)===r))return;let a=b.current;f(r),x("");try{if(await c.decide(e.graphId,e.runId,t),b.current!==a)return;let n={...m,[r]:t};h(n),y(d,n),o();let l=await c.list();b.current===a&&y(l.items,n)}catch(e){b.current===a&&x((0,l.LP)(e,"decide"))}finally{b.current===a&&f(null)}}return((0,a.useEffect)(()=>{let e=++b.current;return(u([]),x(""),v)?(c.list().then(t=>{b.current===e&&y(t.items)}).catch(t=>{b.current===e&&x((0,l.LP)(t,"list"))}),()=>{b.current+=1}):(i(0),()=>{b.current+=1})},[c,v]),0===n.length)?null:(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsx)("h3",{className:"font-semibold",children:"게시 승인"}),g&&(0,r.jsx)("p",{role:"alert",className:"text-sm text-destructive",children:g}),(0,r.jsx)("ul",{className:"space-y-2",children:n.map(e=>{let t=s(e),n=d.some(e=>s(e)===t);return(0,r.jsxs)("li",{className:"rounded-lg border border-border bg-background px-4 py-3 text-sm",children:[(0,r.jsx)("p",{children:e.message}),m[t]?(0,r.jsx)("p",{className:"mt-2 text-muted-foreground",children:"approved"===m[t]?"승인됨":"보류됨"}):n?(0,r.jsxs)("div",{className:"mt-2 flex gap-2",children:[(0,r.jsx)("button",{type:"button",disabled:null!==p,onClick:()=>void w(e,"approved"),className:"rounded-lg bg-primary px-3 py-1 text-primary-foreground disabled:opacity-50",children:"승인"}),(0,r.jsx)("button",{type:"button",disabled:null!==p,onClick:()=>void w(e,"rejected"),className:"rounded-lg border border-border px-3 py-1 disabled:opacity-50",children:"보류"})]}):(0,r.jsx)("p",{className:"mt-2 text-muted-foreground",children:"대기 중인 승인이 아닙니다."})]},t)})})]})}},43537:(e,t,n)=>{function r(e){return null!==e&&"object"==typeof e&&!Array.isArray(e)}function a(e){return"string"==typeof e}function l(e){return a(e)&&/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{1,3})?Z$/.test(e)&&Number.isFinite(Date.parse(e))&&new Date(e).toISOString().slice(0,19)===e.slice(0,19)}function s(e){return r(e)&&a(e.nodeId)&&(null===e.ok||"boolean"==typeof e.ok)&&a(e.summary)&&(void 0===e.startedAt||null===e.startedAt||a(e.startedAt))&&(void 0===e.endedAt||null===e.endedAt||a(e.endedAt))}n.d(t,{HG:()=>b,Kh:()=>x,Nn:()=>f,oc:()=>g});let o=new Set(["pending","running","done","retry","timeout","failed"]),i=e=>void 0===e||"number"==typeof e&&Number.isFinite(e);function c(e){return!!(r(e)&&a(e.runId)&&a(e.status)&&a(e.startedAt)&&(null===e.version||a(e.version))&&Array.isArray(e.path)&&e.path.every(a)&&Array.isArray(e.nodes)&&e.nodes.every(s))&&(void 0!==e.gateShards&&!function(e){if(!r(e)||!a(e.version)||!a(e.updatedAt)||!Array.isArray(e.shards)||!r(e.summary))return!1;let t=e.summary;return e.shards.every(e=>r(e)&&a(e.id)&&o.has(e.state)&&i(e.plannedMin)&&i(e.installSec)&&i(e.rc)&&(void 0===e.waitReason||a(e.waitReason)))&&Number.isInteger(t.total)&&r(t.counts)&&[...o].every(e=>Number.isInteger(t.counts[e]))&&Array.isArray(t.waitReasons)&&t.waitReasons.every(e=>r(e)&&a(e.reason)&&Number.isInteger(e.count))&&(null===t.etaMin||"number"==typeof t.etaMin)&&(null===t.staleMin||"number"==typeof t.staleMin)&&(void 0===t.overrunMin||"number"==typeof t.overrunMin)}(e.gateShards)&&delete e.gateShards,!0)}function d(e){return r(e)&&a(e.id)&&a(e.title)&&a(e.status)&&(void 0===e.owner||a(e.owner))&&a(e.updatedAt)&&(void 0===e.evidence||a(e.evidence))}let u=e=>Number.isInteger(e)&&e>=0;function m(e){return r(e)&&a(e.id)&&a(e.title)&&(null===e.open||u(e.open))&&(null===e.landed||u(e.landed))&&(null===e.blocked||Array.isArray(e.blocked)&&e.blocked.every(e=>r(e)&&a(e.id)&&a(e.title)))}function h(e){return r(e)&&["OP","MK","TC","UX"].includes(e.seat)&&(void 0===e.role||a(e.role))&&(null===e.now||r(e.now)&&a(e.now.text)&&a(e.now.at))&&(null===e.landed||Array.isArray(e.landed)&&e.landed.every(e=>r(e)&&u(e.pr)&&a(e.title)&&a(e.at)&&(null===e.checklistId||a(e.checklistId))))&&(null===e.blocked||Array.isArray(e.blocked)&&e.blocked.every(e=>r(e)&&a(e.id)&&a(e.title)&&"red"===e.status))&&(null===e.pendingDecisions||u(e.pendingDecisions))&&(null===e.checklist||r(e.checklist)&&["green","yellow","red","done"].every(t=>u(e.checklist[t])))&&(void 0===e.subSeats||null===e.subSeats||Array.isArray(e.subSeats)&&e.subSeats.every(m))}async function p(e,t,n){try{let r=await e.fetchResponse(t,{method:"GET"});if(403===r.status)return{kind:"forbidden"};if(!r.ok)return{kind:"error",status:r.status};let a=n(await r.json());return null===a?{kind:"error",status:r.status}:{kind:"ready",data:a}}catch(e){return{kind:"error",status:0}}}function f(e,t){return p(e,"/v1/ops/seats".concat(t?"?date=".concat(encodeURIComponent(t)):""),e=>r(e)&&a(e.date)&&Array.isArray(e.seats)&&e.seats.every(h)&&new Set(e.seats.map(e=>e.seat)).size===e.seats.length?{date:e.date,seats:e.seats}:null)}function g(e,t){return p(e,"/v1/ops/release/runs".concat(t?"?version=".concat(encodeURIComponent(t)):""),e=>Array.isArray(e)&&e.every(c)?e:null)}function x(e,t,n){return p(e,"/v1/ops/release/runs/".concat(encodeURIComponent(t),"/nodes/").concat(encodeURIComponent(n),"/log"),e=>r(e)&&a(e.log)?{log:e.log}:null)}function b(e,t){return p(e,"/v1/ops/checklist?version=".concat(encodeURIComponent(t)),e=>{var t,n,s,o;if(!(r(e)&&a(e.version)&&(void 0===e.codename||a(e.codename))&&Array.isArray(e.items)&&e.items.every(d)&&["green","yellow","red","done"].every(t=>void 0===e[t]||Number.isInteger(e[t])&&e[t]>=0)&&(void 0===e.blocked||Array.isArray(e.blocked)&&e.blocked.every(a))&&(void 0===e.byOwner||r(e.byOwner)&&Object.values(e.byOwner).every(e=>Number.isInteger(e)&&e>=0))&&(void 0===e.history||Array.isArray(e.history))))return null;let i={green:0,yellow:0,red:0,done:0};for(let t of e.items)t.status in i&&i[t.status]++;return{version:e.version,...void 0!==e.codename?{codename:e.codename}:{},schedule:r(e.schedule)&&l(e.schedule.cutAt)&&(null===e.schedule.landBy||l(e.schedule.landBy))?{cutAt:e.schedule.cutAt,landBy:e.schedule.landBy}:null,items:e.items,green:null!=(t=e.green)?t:i.green,yellow:null!=(n=e.yellow)?n:i.yellow,red:null!=(s=e.red)?s:i.red,done:null!=(o=e.done)?o:i.done,...void 0!==e.blocked?{blocked:e.blocked}:{},...void 0!==e.byOwner?{byOwner:e.byOwner}:{},...void 0!==e.history?{history:e.history}:{}}})}},53857:(e,t,n)=>{n.d(t,{ChatPanel:()=>e4});var r=n(55539),a=n(46124),l=n(92156),s=n(94226),o=n(16190),i=n(46586),c=n(3558),d=n.n(c),u=n(71923),m=n(15151),h=n(43537),p=n(37768);function f(){let{client:e}=(0,m.Q)(),[t,n]=(0,a.useState)([]);if((0,a.useEffect)(()=>{if("undefined"==typeof document)return;let t=!0,r=!1,a=async()=>{if(!t||r||document.hidden)return;r=!0;let a=new Intl.DateTimeFormat("sv-SE",{timeZone:"Asia/Seoul"}).format(new Date),l=await (0,h.Nn)(e,a);r=!1,t&&n((0,p.z)("ready"===l.kind?l.data:null,Date.now()))};n([]),a();let l=globalThis.setInterval(()=>{a()},6e4),s=()=>{document.hidden||a()};return document.addEventListener("visibilitychange",s),()=>{t=!1,globalThis.clearInterval(l),document.removeEventListener("visibilitychange",s)}},[e]),0===t.length)return null;let l=t.map(e=>{let{seat:t,text:n,ago:r}=e;return"".concat(t," ").concat(n," \xb7 ").concat(r)}).join(" | ");return(0,r.jsx)("div",{role:"status","aria-label":"지금 자리들이 하는 일",title:l,className:"h-8 min-h-8 min-w-0 shrink-0 overflow-hidden text-ellipsis whitespace-nowrap border-b border-border bg-background px-3 text-xs leading-8 text-muted-foreground",children:t.map((e,t)=>{let{seat:n,text:a,ago:l}=e;return(0,r.jsxs)("span",{children:[t>0&&" | ",n," ",a," \xb7 ",l]},n)})})}var g=n(3180),x=n(72215);function b(){let{client:e}=(0,m.Q)(),[t,n]=(0,a.useState)(!1),[l,s]=(0,a.useState)(!1),[o,i]=(0,a.useState)(""),c=(0,a.useRef)(!1),d=(0,a.useRef)(0),u=(0,a.useRef)(!1);(0,a.useEffect)(()=>(n("speechSynthesis"in window&&"undefined"!=typeof SpeechSynthesisUtterance),()=>{d.current++,u.current&&"speechSynthesis"in window&&window.speechSynthesis.cancel()}),[]);let h=async()=>{if(c.current||!t)return;c.current=!0;let n=++d.current;s(!0),i(""),u.current&&window.speechSynthesis.cancel(),u.current=!1;try{let t=await e.fetchResponse("/v1/context/now?format=voice",{method:"GET"});if(!t.ok)throw Error("HTTP ".concat(t.status));let r=await t.json();if(!r||"object"!=typeof r||!("text"in r)||"string"!=typeof r.text||!r.text.trim())throw Error("invalid voice summary");if(n!==d.current)return;let a=new SpeechSynthesisUtterance(r.text);a.lang="ko-KR",a.onend=()=>{n===d.current&&(u.current=!1)},a.onerror=()=>{n===d.current&&(u.current=!1)},u.current=!0,window.speechSynthesis.speak(a),(0,x.cY)("chat.now.speak",{outcome:"spoken"})}catch(e){if(n!==d.current)return;u.current=!1,i("지금 상황을 읽지 못했습니다. 다시 시도해 주세요."),(0,x.cY)("chat.now.speak",{outcome:"error",reason:String(e)})}finally{n===d.current&&(c.current=!1,s(!1))}};return(0,r.jsxs)("div",{className:"flex shrink-0 items-center gap-1",children:[(0,r.jsxs)("button",{type:"button","data-elanous-action":"chat-now-speak","aria-label":"지금 상황 듣기",title:t?"지금 상황 두 문장 듣기":"이 브라우저는 음성 읽기를 지원하지 않습니다",disabled:!t||l,onClick:()=>void h(),className:"inline-flex min-h-9 items-center gap-1.5 rounded-full border border-border bg-background px-3 text-xs font-medium text-foreground hover:bg-muted disabled:cursor-not-allowed disabled:opacity-50",children:[(0,r.jsx)(g.A,{className:"h-4 w-4","aria-hidden":"true"}),(0,r.jsx)("span",{children:"지금 상황 듣기"})]}),o&&(0,r.jsx)("span",{role:"alert",className:"text-xs text-rose-600",children:o})]})}var v=n(12958),y=n(74780);function w(){let{mobileOpen:e,onCount:t}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{client:n}=(0,m.Q)(),l=(0,a.useMemo)(()=>(0,y.ll)({client:n}),[n]),[s,o]=(0,a.useState)({client:n,items:[],pending:0,expanded:!1}),i=(0,a.useRef)(n);i.current=n;let c=(0,a.useRef)(!1),d=(0,a.useRef)(0),u=s.client===n?s:null,h=(0,a.useCallback)(async()=>{if(!c.current||i.current!==n||"undefined"!=typeof document&&document.hidden)return;let e=++d.current;try{let t=await l.list();if(!c.current||i.current!==n||d.current!==e)return;o(r=>i.current===n&&d.current===e?{client:n,items:t.items,pending:t.items.length,expanded:t.items.length>0&&r.client===n&&r.expanded}:r)}catch(t){if(!c.current||i.current!==n||d.current!==e)return;o(t=>i.current===n&&d.current===e?{client:n,items:[],pending:0,expanded:!1}:t)}},[l,n]);if((0,a.useEffect)(()=>{c.current=!0,o({client:n,items:[],pending:0,expanded:!1}),h();let e=globalThis.setInterval(()=>{h()},3e4),t=()=>{document.hidden||h()};return"undefined"!=typeof document&&document.addEventListener("visibilitychange",t),()=>{c.current=!1,d.current+=1,globalThis.clearInterval(e),"undefined"!=typeof document&&document.removeEventListener("visibilitychange",t)}},[n,h]),(0,a.useEffect)(()=>{var e,t;(0,x.cY)("chat.approvals",{pending:null!=(e=null==u?void 0:u.pending)?e:0,expanded:null!=(t=null==u?void 0:u.expanded)&&t})},[null==u?void 0:u.pending,null==u?void 0:u.expanded]),(0,a.useEffect)(()=>{var e;null==t||t(null!=(e=null==u?void 0:u.pending)?e:0)},[t,null==u?void 0:u.pending]),!(null==u?void 0:u.pending)||t&&!e)return null;let p=(0,r.jsx)(v.a,{client:n,approvals:u.items,onDecided:()=>{h()},onPendingChange:e=>{i.current===n&&o(t=>t.client===n?{...t,pending:e,...0===e?{items:[],expanded:!1}:{}}:t)}});return t?(0,r.jsx)("div",{id:"chat-approvals-panel",className:"max-h-[min(50vh,24rem)] overflow-y-auto border-b border-border p-3",children:p}):(0,r.jsxs)("div",{className:"shrink-0 border-b border-border bg-background px-3 py-1.5 text-sm",children:[(0,r.jsxs)("button",{type:"button","aria-expanded":u.expanded,"aria-controls":"chat-approvals-panel",onClick:()=>o(e=>e.client===n?{...e,expanded:!e.expanded}:e),className:"rounded-full border border-border bg-muted px-3 py-1 font-medium text-foreground hover:bg-muted/70",children:["승인 대기 ",u.pending]}),u.expanded&&(0,r.jsx)("div",{id:"chat-approvals-panel",className:"mt-2 max-h-[min(50vh,24rem)] overflow-y-auto rounded-lg border border-border p-3",children:p})]})}var j=n(33626);function k(){var e;let{mobileOpen:t,onCount:n}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{client:l}=(0,m.Q)(),[s,o]=(0,a.useState)({client:l,items:[],expanded:!1,decided:{},busy:null}),i=(0,a.useRef)(l);i.current=l;let c=(0,a.useRef)(!1),d=(0,a.useRef)(0),u=(0,a.useRef)(null),h=s.client===l?s:null,p=(0,a.useCallback)(async()=>{if(!c.current||i.current!==l||"undefined"!=typeof document&&document.hidden)return;let e=++d.current;try{let t=await (0,j.qK)(l);if(!c.current||i.current!==l||d.current!==e)return;o(e=>e.client===l?{...e,items:[...t,...e.items.filter(n=>e.decided[n.id]&&!t.some(e=>e.id===n.id))],expanded:e.expanded&&(t.length>0||e.items.some(t=>e.decided[t.id]))}:e)}catch(t){if(!c.current||i.current!==l||d.current!==e)return;o(e=>e.client===l?{...e,items:[],expanded:!1}:e)}},[l]);(0,a.useEffect)(()=>{c.current=!0,u.current=null,o({client:l,items:[],expanded:!1,decided:{},busy:null}),p();let e=globalThis.setInterval(()=>{p()},3e4),t=()=>{document.hidden||p()};return"undefined"!=typeof document&&document.addEventListener("visibilitychange",t),()=>{c.current=!1,u.current=null,d.current+=1,globalThis.clearInterval(e),"undefined"!=typeof document&&document.removeEventListener("visibilitychange",t)}},[l,p]);let f=async(e,t)=>{if(!u.current&&!s.busy&&!s.decided[e.id]){u.current=e.id,o(t=>t.client===l?{...t,busy:e.id}:t);try{if(await (0,j.LD)(l,e.id,t.id),!c.current||i.current!==l)return;u.current=null,o(n=>n.client===l?{...n,busy:null,decided:{...n.decided,[e.id]:t.label}}:n),await p()}catch(e){c.current&&i.current===l&&(u.current=null,o(e=>e.client===l?{...e,busy:null}:e))}}},g=null!=(e=null==h?void 0:h.items.filter(e=>!h.decided[e.id]).length)?e:0;if((0,a.useEffect)(()=>{null==n||n(g)},[n,g]),!h||!g&&!(h.expanded&&h.items.some(e=>h.decided[e.id]))||n&&!t)return null;let x=(0,r.jsx)("ul",{id:"chat-decisions-panel",className:"mt-2 max-h-[min(50vh,24rem)] space-y-2 overflow-y-auto rounded-lg border border-border p-3",children:h.items.map(e=>(0,r.jsxs)("li",{className:"rounded-lg border border-border p-3",children:[(0,r.jsx)("h3",{className:"font-semibold",children:e.title}),(0,r.jsx)("p",{className:"truncate text-muted-foreground",title:e.situation,children:e.situation}),h.decided[e.id]?(0,r.jsxs)("p",{role:"status",children:["결정함 — ",h.decided[e.id]]}):(0,r.jsx)("div",{className:"mt-2 flex flex-wrap gap-2",children:e.options.map(t=>(0,r.jsxs)("button",{type:"button",disabled:!!h.busy,onClick:()=>{f(e,t)},className:"rounded-md border border-border px-2 py-1 hover:bg-muted disabled:opacity-50",children:[t.label,"option"in e.recommendation&&e.recommendation.option===t.id&&(0,r.jsx)("span",{className:"ml-1 text-primary",children:"추천"})]},t.id))})]},e.id))});return n?x:(0,r.jsxs)("div",{className:"shrink-0 border-b border-border bg-background px-3 py-1.5 text-sm",children:[(0,r.jsxs)("button",{type:"button","aria-expanded":h.expanded,"aria-controls":"chat-decisions-panel",onClick:()=>o(e=>e.client===l?{...e,expanded:!e.expanded}:e),className:"rounded-full border border-border bg-muted px-3 py-1 font-medium text-foreground hover:bg-muted/70",children:["대표 결정 ",g]}),h.expanded&&x]})}function N(e){let{activity:t,decisions:n,menu:a}=e,l="active"===t.kind?t.run.progressLine||t.run.runId:"quiet"===t.kind?"없음":"loading"===t.kind?"확인 중":"확인 불가";return(0,r.jsxs)("div",{"data-elanous-mobile-chat-status":"",role:"status",className:"flex h-10 min-h-10 min-w-0 items-center gap-3 border-b border-border bg-background px-3 text-xs",children:[(0,r.jsxs)("span",{className:"min-w-0 flex-1 truncate",title:l,children:["지금 도는 일 \xb7 ",l]}),(0,r.jsxs)("span",{className:"shrink-0",children:["대기 결정 \xb7 ",null!=n?n:"—"]}),a]})}var S=n(73426),I=n(9851);function C(e){let{queue:t,onRemove:n,onClear:a}=e;return 0===t.length?null:(0,r.jsxs)("div",{className:"flex shrink-0 flex-wrap items-center gap-1.5 border-t border-border bg-background px-3 py-2","aria-label":"보낼 차례",children:[t.map((e,t)=>(0,r.jsxs)("span",{className:"inline-flex max-w-full items-center gap-1 rounded-full border border-border bg-muted px-2 py-1 text-xs",children:[(0,r.jsxs)("span",{className:"max-w-[160px] truncate",title:e.text,children:[t+1," \xb7 ",Array.from(e.text).slice(0,20).join("")]}),(0,r.jsx)("button",{type:"button",onClick:()=>n(e.id),"aria-label":"".concat(t+1,"번 지우기"),className:"rounded-full px-1 hover:bg-background",children:"\xd7"})]},e.id)),(0,r.jsx)("button",{type:"button",onClick:a,className:"rounded px-2 py-1 text-xs text-muted-foreground hover:bg-muted",children:"모두 지우기"})]})}function A(e){let t={files:[],tooLarge:0,tooMany:0};for(let n of e)n.file.size>0x1400000?t.tooLarge+=1:t.files.length>=10?t.tooMany+=1:t.files.push(n);return t}function E(e){return!!(e&&Array.from(e.types).includes("Files"))}function R(){return(0,r.jsx)("div",{role:"status","aria-label":"여기에 놓으면 첨부","data-elanous-chat-drop-overlay":"",className:"pointer-events-none absolute inset-0 z-30 flex items-center justify-center bg-background/80 backdrop-blur-sm",children:(0,r.jsxs)("div",{className:"mx-4 rounded-2xl border-2 border-dashed border-primary/60 bg-card/90 px-8 py-6 text-center shadow-lg",children:[(0,r.jsx)("p",{className:"text-lg font-semibold text-foreground",children:"여기에 놓으면 첨부"}),(0,r.jsxs)("p",{className:"mt-2 text-sm text-muted-foreground",children:["파일 ",10,"개까지 \xb7 큰 파일은 빠집니다"]})]})})}function D(e,t,n){if("drop"===t||"end"===t||!n)return{visible:!1,depth:0};let r="enter"===t?e.depth+1:Math.max(0,e.depth-1);return{visible:r>0,depth:r}}var q=n(64667),T=n(3155),L=n(25503);class U{list(){return this.client.fetchJson("/v1/projects")}create(e){return this.client.fetchJson("/v1/projects",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({name:e})})}assign(e,t){return this.client.fetchJson("/v1/sessions/store/".concat(encodeURIComponent(e)),{method:"PATCH",headers:{"content-type":"application/json"},body:JSON.stringify({projectId:t})})}constructor(e){this.client=e}}let O="elanous.chat.projectSelection",M="elanous-chat-pending-projects-changed",F="elanous-chat-projects-changed";function P(){window.dispatchEvent(new Event(F))}let Y="elanous.chat.pendingProjects";function _(){try{var e;let t=JSON.parse(null!=(e=localStorage.getItem(Y))?e:"{}");if(t&&"object"==typeof t&&!Array.isArray(t))return Object.fromEntries(Object.entries(t).filter(e=>{let[t,n]=e;return t&&"string"==typeof n&&n}))}catch(e){}return{}}function J(e){try{localStorage.setItem(Y,JSON.stringify(e))}catch(e){return!1}return window.dispatchEvent(new Event(M)),!0}function z(e){let{projects:t,selection:n,onChange:l,onCreate:s}=e,[o,i]=(0,a.useState)(!1),[c,d]=(0,a.useState)(""),[u,m]=(0,a.useState)(!1);return(0,r.jsxs)("div",{className:"space-y-2",children:[0===t.length&&!o&&(0,r.jsx)("button",{type:"button",onClick:()=>i(!0),className:"text-sm text-muted-foreground hover:text-foreground",children:"+ 프로젝트 만들기"}),t.length>0&&(0,r.jsxs)("select",{"aria-label":"프로젝트 바꾸기",value:n,onChange:e=>{if("create"===e.target.value)return void i(!0);l(e.target.value)},className:"w-full rounded-lg border border-border bg-background px-3 py-2 text-sm",children:[(0,r.jsx)("option",{value:"all",children:"모든 대화"}),(0,r.jsx)("option",{value:"none",children:"받은 대화(프로젝트 없음)"}),t.map(e=>(0,r.jsx)("option",{value:e.id,children:e.name},e.id)),(0,r.jsx)("option",{value:"create",children:"+ 프로젝트 만들기"})]}),o&&(0,r.jsxs)("form",{onSubmit:e=>{e.preventDefault();let t=c.trim();t&&s(t).then(()=>{i(!1),d(""),m(!1)}).catch(()=>m(!0))},className:"flex gap-2",children:[(0,r.jsx)("input",{"aria-label":"프로젝트 이름",autoFocus:!0,value:c,maxLength:80,onChange:e=>d(e.target.value),className:"min-w-0 flex-1 rounded-lg border border-border bg-background px-2 py-1 text-sm"}),(0,r.jsx)("button",{type:"submit",className:"rounded-lg border border-border px-2 text-sm",children:"만들기"}),u&&(0,r.jsx)("span",{role:"alert",children:"프로젝트를 만들지 못했습니다"})]})]})}function $(e){var t,n;let{compact:l=!1}=e,{client:s,sessionId:o}=(0,m.Q)(),i=(0,L.t)(),[c,d]=(0,a.useState)([]),[u,h]=(0,a.useState)(!0),[p,f]=(0,a.useState)(!1),[g,x]=(0,a.useState)(0),[b,v]=(0,a.useState)(!1),[y,w]=(0,a.useState)(null),[j,k]=(0,a.useState)(!1),[N,S]=(0,a.useState)(!0),[I,C]=(0,a.useState)([]),[A,E]=(0,a.useState)(0),[R,D]=(0,a.useState)(null),q=(0,a.useRef)(null),O=(0,a.useRef)(null),Y=(0,a.useRef)(null),z=(0,a.useRef)(new Set),$=!!(o&&I.includes(o)),Q=(0,a.useRef)(null),G=(0,a.useRef)(o);G.current=o;let[K,B]=(0,a.useState)(""),[H,W]=(0,a.useState)(!1),[Z,V]=(0,a.useState)("");(0,a.useEffect)(()=>{let e=!0,t=0;d([]),f(!1);let n=()=>{let n=++t;h(!0),new U(s).list().then(r=>{let{projects:a}=r;e&&n===t&&(d(null!=a?a:[]),f(!1))}).catch(()=>{e&&n===t&&f(!0)}).finally(()=>{e&&n===t&&h(!1)})};return n(),window.addEventListener(F,n),()=>{e=!1,window.removeEventListener(F,n)}},[s,g]),(0,a.useEffect)(()=>{let e=!0;return(S(!0),D(null),k(!1),Q.current=null,w(null),o)?(s.fetchJson("/v1/sessions/store/".concat(encodeURIComponent(o),"?ifExists=1")).then(t=>{var n,r,a,l;e&&(k(!!t.meta),Q.current=null!=(r=null==(n=t.meta)?void 0:n.projectId)?r:null,z.current.has(o)||w(t.meta?null!=(a=t.meta.projectId)?a:null:null!=(l=_()[o])?l:null),D(o),S(!1))}).catch(()=>{e&&(D(null),B("프로젝트를 확인하지 못했습니다"),S(!1))}),()=>{e=!1}):void S(!1)},[s,o,A]),(0,a.useEffect)(()=>{B(""),W(!1),q.current=null,Y.current=null},[o]),(0,a.useEffect)(()=>{if(!o)return;let e=()=>{let e=_()[o];e&&(Y.current=null),z.current.has(o)||(R===o&&j&&e!==Q.current?E(e=>e+1):R===o&&w(null!=e?e:null))};return window.addEventListener(M,e),()=>window.removeEventListener(M,e)},[o,R,j]),(0,a.useEffect)(()=>{o&&R===o&&!j&&!$&&q.current!==o&&i.some(e=>e.id===o)&&(q.current=o,D(null),E(e=>e+1))},[o,R,j,$,i]),(0,a.useEffect)(()=>{if(!o||!j||N||$)return;let e=_()[o];!e||z.current.has(o)||O.current===o||Y.current==="".concat(o,":").concat(e)||(O.current=o,new U(s).assign(o,e).then(()=>{G.current===o&&(Q.current=e);let t=_();t[o]===e&&(delete t[o],J(t),G.current!==o||z.current.has(o)||w(e)),(0,T.hG)(s).forceRefresh()}).catch(()=>{Y.current="".concat(o,":").concat(e);let t=_();t[o]===e&&(delete t[o],J(t)),G.current===o&&(w(Q.current),B("프로젝트를 바꾸지 못했습니다"))}).finally(()=>{O.current=null}))},[s,o,j,N,$,A]);let X=async function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(!o||R!==o||N||p&&!t||z.current.has(o)||O.current===o)return!1;z.current.add(o),C(e=>[...e,o]),B("");try{if(j){await new U(s).assign(o,e),G.current===o&&(Q.current=e),(0,T.hG)(s).forceRefresh();let t=_();t[o]&&(delete t[o],J(t))}else{let t=_();if(e?t[o]=e:delete t[o],!J(t))throw Error("pending project storage unavailable")}return G.current===o&&w(e),!0}catch(e){return G.current===o&&B("프로젝트를 바꾸지 못했습니다"),!1}finally{z.current.delete(o),C(e=>e.filter(e=>e!==o))}},ee=y?null!=(n=null==(t=c.find(e=>e.id===y))?void 0:t.name)?n:"알 수 없는 프로젝트":"프로젝트 없음";return(0,r.jsxs)("div",{className:l?"relative flex min-w-0 items-center gap-1.5 text-xs":"flex min-w-0 items-center gap-1.5 text-xs",children:[(0,r.jsx)("label",{htmlFor:"chat-current-project",className:l?"sr-only":"shrink-0 text-muted-foreground",children:"프로젝트"}),(0,r.jsxs)("select",{id:"chat-current-project","aria-label":"현재 대화 프로젝트",title:o&&R===o&&!N?"현재 프로젝트: ".concat(ee):"프로젝트 확인 중…",value:o&&R===o&&!N?null!=y?y:"":"loading",disabled:!o||R!==o||N||u||$||O.current===o||p,onChange:e=>{if("create"===e.target.value){u||p||W(!0);return}X(e.target.value||null)},className:"".concat(l?"w-20 max-w-[24vw]":"max-w-36"," min-w-0 truncate rounded-md border border-border bg-background px-2 py-1 text-foreground focus-visible:outline focus-visible:outline-2 focus-visible:outline-ring"),children:[(!o||R!==o||N)&&(0,r.jsx)("option",{value:"loading",children:"프로젝트 확인 중…"}),(0,r.jsx)("option",{value:"",children:"프로젝트 없음"}),y&&!c.some(e=>e.id===y)&&(0,r.jsx)("option",{value:y,children:"알 수 없는 프로젝트"}),c.map(e=>(0,r.jsx)("option",{value:e.id,children:e.name},e.id)),l&&(0,r.jsx)("option",{value:"create",children:"+ 프로젝트 만들기"})]}),!l&&(0,r.jsx)("button",{type:"button","aria-label":"프로젝트 만들기",title:"프로젝트 만들기",disabled:!o||R!==o||N||u||$||p,onClick:()=>W(e=>!e),className:"shrink-0 rounded px-1 hover:bg-muted",children:"+"}),H&&(0,r.jsxs)("form",{onSubmit:e=>{e.preventDefault();let t=Z.trim();!t||!o||R!==o||N||u||p||$||b||(v(!0),B(""),new U(s).create(t).then(async e=>{let{project:t}=e;d(e=>[...e,t]);let n=await X(t.id,!0);P(),n&&(W(!1),V(""))}).catch(()=>B("프로젝트를 만들지 못했습니다")).finally(()=>v(!1)))},className:l?"absolute right-0 top-full z-50 mt-1 flex items-center gap-1 rounded-lg border border-border bg-popover p-2 shadow-lg":"flex min-w-0 items-center gap-1",children:[(0,r.jsx)("input",{"aria-label":"새 프로젝트 이름",autoFocus:!0,maxLength:80,value:Z,onChange:e=>V(e.target.value),className:"w-24 rounded border border-border bg-background px-1 py-1"}),(0,r.jsx)("button",{type:"submit",disabled:$||b||!o||R!==o||u||p,className:"rounded border border-border px-1",children:"만들기"})]}),(o&&R!==o&&!N||p)&&(0,r.jsx)("button",{type:"button","aria-label":"프로젝트 다시 확인",onClick:()=>{B(""),E(e=>e+1),p&&x(e=>e+1)},className:"rounded border border-border px-1",children:"다시 시도"}),(K||p)&&(0,r.jsx)("span",{role:"alert",className:"text-destructive",children:K||"프로젝트 목록을 불러오지 못했습니다"})]})}var Q=n(44373),G=n(8114);function K(e){let{segmentKey:t,value:n,glyph:a}=e,l=function(e){var t;let n=/(\d{1,3})\s*%/.exec(e);if(!n)return null;let r=Number.parseInt(null!=(t=n[1])?t:"",10);return Number.isFinite(r)?Math.max(0,Math.min(100,r)):null}(n);if(null===l)return(0,r.jsxs)("span",{"data-elanous-hud-key":t,"data-elanous-hud-gauge":"false",className:"inline-flex items-center gap-1 font-mono text-[11px] text-muted-foreground",children:[a?(0,r.jsx)("span",{"aria-hidden":"true",children:a}):null,(0,r.jsx)("span",{children:n})]});let{bar:s,text:o}=l>=80?{bar:"bg-pink-400",text:"text-pink-300"}:l>=60?{bar:"bg-amber-400",text:"text-amber-300"}:{bar:"bg-emerald-500",text:"text-emerald-300"};return(0,r.jsxs)("span",{"data-elanous-hud-key":t,"data-elanous-hud-gauge":"true","data-elanous-hud-percent":String(l),className:"inline-flex items-center gap-1.5 font-mono text-[11px]",children:[a?(0,r.jsx)("span",{"aria-hidden":"true",className:"text-muted-foreground",children:a}):null,(0,r.jsx)("span",{role:"progressbar","aria-valuenow":l,"aria-valuemin":0,"aria-valuemax":100,"aria-label":"".concat(t," ").concat(l,"%"),className:"relative h-2 w-20 overflow-hidden rounded bg-muted/30",children:(0,r.jsx)("span",{"aria-hidden":"true",style:{width:"".concat(l,"%")},className:(0,Q.cn)("block h-full",s)})}),(0,r.jsx)("span",{className:(0,Q.cn)("tabular-nums",o),children:n})]})}let B=new Set(["variant","workspace","model","token-gauge","ctx","agent-activity","agents"]),H=new Set(["token-gauge","ctx"]),W={normal:"text-foreground",warn:"text-amber-300",danger:"text-pink-300",success:"text-emerald-300",info:"text-sky-300",muted:"text-muted-foreground"};function Z(e){var t,n;let{segment:a}=e;if(H.has(a.key))return(0,r.jsx)(K,{segmentKey:a.key,value:a.value,...void 0!==a.glyph?{glyph:a.glyph}:{}});let l=a.tone?W[a.tone]:W.normal;return(0,r.jsxs)("span",{"data-elanous-hud-key":a.key,"data-elanous-hud-tone":null!=(t=a.tone)?t:"normal","data-elanous-hud-priority":String(null!=(n=a.priority)?n:50),className:(0,Q.cn)("inline-flex items-center gap-1 font-mono text-[11px]",l),children:[a.glyph?(0,r.jsx)("span",{"aria-hidden":"true",children:a.glyph}):null,(0,r.jsx)("span",{children:a.value})]})}function V(e){let{segments:t,row:n,className:a}=e;return 0===t.length?null:(0,r.jsx)("div",{"data-elanous-hud-row":n,className:(0,Q.cn)("flex flex-wrap items-center gap-x-3 gap-y-1",a),children:t.map((e,t)=>(0,r.jsxs)("span",{className:"flex items-center gap-x-3",children:[t>0?(0,r.jsx)("span",{"aria-hidden":"true",className:"text-muted-foreground",children:"\xb7"}):null,(0,r.jsx)(Z,{segment:e})]},e.key))})}function X(e){let{segments:t}=e;if(0===t.length)return null;let{top:n,bottom:a}=function(e){let t=[],n=[];for(let r of e)B.has(r.key)?t.push(r):n.push(r);return{top:t,bottom:n}}(t);return(0,r.jsxs)("div",{"data-elanous-hud":"strip",role:"status","aria-label":"HUD status",className:"flex flex-col gap-0.5 border-b border-border/40 bg-muted/10 px-3 py-1.5",children:[(0,r.jsx)(V,{segments:n,row:"top"}),(0,r.jsx)(V,{segments:a,row:"bottom",className:"hidden sm:flex"})]})}let ee=[];function et(){return ee}function en(){let e=(0,a.useSyncExternalStore)(G.er,G.Wl,et);return(0,r.jsx)(X,{segments:e})}function er(e,t){if("string"!=typeof e)return t;let n=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(?:\.\d+)?(?:Z|[+-](\d{2}):(\d{2}))$/.exec(e);if(!n)return t;let[,r,a,l,s,o,i,c,d]=n,u=Number(r),m=Number(a),h=Number(l),p=[31,u%4==0&&(u%100!=0||u%400==0)?29:28,31,30,31,30,31,31,30,31,30,31][m-1];if(h<1||void 0===p||h>p||Number(s)>23||Number(o)>59||Number(i)>59||void 0!==c&&(Number(c)>23||Number(d)>59))return t;let f=Date.parse(e);return Number.isFinite(f)?f:t}var ea=n(5997),el=n(65194),es=n(67903),eo=n(36898),ei=n(56360),ec=n(76573),ed=n(75342),eu=n(14222);let em={idle:"음성 대기",connecting:"데몬 연결 중…",listening:"듣는 중",processing:"생각 중…",speaking:"말하는 중",error:"음성 오류"},eh={idle:"마이크를 켜서 대화를 시작하세요.",connecting:"잠시만 기다려주세요.",listening:"문장이 끝나면 자동으로 전송됩니다.",processing:"서버가 응답을 생성하는 중입니다.",speaking:"음성 응답을 재생하는 중입니다.",error:"아래 메시지를 확인하고 다시 시도하세요."},ep={idle:"bg-slate-400",connecting:"bg-amber-500",listening:"bg-emerald-500",processing:"bg-sky-500",speaking:"bg-fuchsia-500",error:"bg-rose-600"};function ef(e){let{active:t,phase:n,errorMsg:a,onToggle:l,ttsSupported:i=!1,ttsMuted:c=!1,onTtsToggle:d,onInterrupt:u}=e,m="speaking"===n&&"function"==typeof u;return(0,r.jsxs)("div",{"data-elanous-voice-overlay":!0,"aria-hidden":!t,className:(0,Q.cn)("pointer-events-none absolute inset-0 z-10 flex items-center justify-center transition-opacity duration-300",t?"pointer-events-auto opacity-100":"opacity-0"),children:[(0,r.jsx)("div",{className:"absolute inset-0 bg-background/60 backdrop-blur-md"}),(0,r.jsxs)("div",{className:"relative mx-4 flex w-full max-w-sm flex-col items-center gap-5 rounded-xl border border-border bg-card px-6 py-7 text-center shadow-xl",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 text-sm",children:[(0,r.jsx)("span",{className:(0,Q.cn)("h-2.5 w-2.5 rounded-full",ep[n],("listening"===n||"speaking"===n||"connecting"===n)&&"animate-pulse"),"aria-hidden":!0}),(0,r.jsx)("span",{className:"font-medium tracking-wide",children:em[n]})]}),(0,r.jsx)("p",{className:"text-xs text-muted-foreground",children:eh[n]}),(0,r.jsx)("button",{type:"button",onClick:m?u:l,"data-elanous-action":m?"voice-overlay-interrupt":"voice-overlay-toggle",className:(0,Q.cn)("inline-flex h-16 w-16 items-center justify-center rounded-full text-white transition-colors",m?"bg-amber-500 hover:bg-amber-400 animate-pulse":"connecting"===n||"processing"===n?"bg-sky-500 hover:bg-sky-400":"error"===n?"bg-rose-600 hover:bg-rose-500":"bg-rose-500 hover:bg-rose-400"),"aria-label":m?"끼어들기":"마이크 끄기",children:m?(0,r.jsx)(ei.A,{className:"h-7 w-7"}):"connecting"===n||"processing"===n?(0,r.jsx)(ec.A,{className:"h-7 w-7 animate-spin"}):"error"===n?(0,r.jsx)(ed.A,{className:"h-7 w-7"}):(0,r.jsx)(s.A,{className:"h-7 w-7"})}),a&&(0,r.jsx)("p",{className:"max-w-xs text-xs text-rose-500",children:a}),(0,r.jsxs)("div",{className:"flex items-center gap-4",children:[i&&d&&(0,r.jsxs)("button",{type:"button",onClick:d,"data-elanous-action":"voice-overlay-tts-toggle",className:"inline-flex items-center gap-1.5 text-xs text-muted-foreground hover:text-foreground","aria-label":c?"음성 응답 켜기":"음성 응답 끄기","aria-pressed":!c,children:[c?(0,r.jsx)(eu.A,{className:"h-3.5 w-3.5"}):(0,r.jsx)(g.A,{className:"h-3.5 w-3.5"}),(0,r.jsx)("span",{children:c?"음성 응답 OFF":"음성 응답 ON"})]}),(0,r.jsxs)("button",{type:"button",onClick:l,className:"inline-flex items-center gap-1.5 text-xs text-muted-foreground hover:text-foreground","aria-label":"음성 닫고 텍스트로 돌아가기",children:[(0,r.jsx)(o.A,{className:"h-3.5 w-3.5"}),(0,r.jsx)("span",{children:"음성 끄기"})]})]})]})]})}function eg(e){let{open:t,onClose:n,lines:l}=e,[s,o]=(0,a.useState)(""),i=(0,a.useMemo)(()=>{if(!s.trim())return null;try{return RegExp(s,"i")}catch(e){return null}},[s]),c=(0,a.useMemo)(()=>s.trim().toLowerCase(),[s]),d=(0,a.useMemo)(()=>{let e=l.length>200?l.slice(l.length-200):l;return i?e.filter(e=>i.test(e.category)||i.test(e.event)):c?e.filter(e=>e.category.toLowerCase().includes(c)||e.event.toLowerCase().includes(c)):e},[l,i,c]);return(0,r.jsx)("div",{"data-elanous-debug-tap-drawer":t?"open":"closed",className:(0,Q.cn)("fixed bottom-0 left-0 right-0 z-50 transition-transform duration-200 ease-out","pointer-events-none",t?"translate-y-0":"translate-y-full"),role:"region","aria-label":"Debug Tap Drawer","aria-hidden":!t,children:(0,r.jsxs)("div",{className:(0,Q.cn)("pointer-events-auto mx-auto flex max-h-[60vh] w-full max-w-[1100px] flex-col","rounded-t-md border border-b-0 border-border bg-card shadow-xl"),children:[(0,r.jsxs)("header",{className:"flex items-center justify-between gap-2 border-b border-border/60 px-3 py-2",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("span",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:"Debug Tap"}),(0,r.jsxs)("span",{className:"text-[10px] text-muted-foreground/70","data-elanous-debug-tap-count":d.length,"data-elanous-debug-tap-total":l.length,children:[d.length,"/",l.length]})]}),(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("input",{type:"text",placeholder:"regex filter…",value:s,onChange:e=>o(e.target.value),spellCheck:!1,autoComplete:"off",className:(0,Q.cn)("w-40 rounded border border-border bg-background px-2 py-1 text-[11px] font-mono","focus:outline-none focus:ring-1 focus:ring-primary"),"data-elanous-debug-tap-filter":"","aria-label":"Filter debug lines"}),(0,r.jsx)("button",{type:"button",onClick:n,className:"rounded px-2 py-1 text-xs text-muted-foreground hover:bg-muted hover:text-foreground","aria-label":"Close debug drawer","data-elanous-debug-tap-close":"",children:"✕"})]})]}),(0,r.jsx)("ul",{className:"flex-1 overflow-y-auto px-3 py-2 text-[11px] font-mono","data-elanous-debug-tap-list":"",children:0===d.length?(0,r.jsx)("li",{className:"italic text-muted-foreground/60",children:0===l.length?"(no debug lines yet)":"(no matches for filter)"}):d.map((e,t)=>(0,r.jsx)(ex,{line:e},"".concat(e.loggedAt,"-").concat(e.seq,"-").concat(t)))})]})})}function ex(e){let{line:t}=e,n=new Date(t.loggedAt).toISOString().slice(11,23);return(0,r.jsxs)("li",{"data-elanous-debug-tap-line":"","data-elanous-category":t.category,"data-elanous-event":t.event,className:"py-0.5",children:[(0,r.jsxs)("span",{className:"text-muted-foreground/70",children:["[",n,"]"]})," ",(0,r.jsxs)("span",{className:"text-amber-400",children:["[",t.category,"]"]})," ",(0,r.jsx)("span",{className:"text-foreground",children:t.event}),void 0!==t.data&&(0,r.jsxs)("details",{className:"ml-4 text-muted-foreground",children:[(0,r.jsx)("summary",{className:"cursor-pointer select-none text-[10px]",children:"data"}),(0,r.jsx)("pre",{className:"m-0 mt-1 whitespace-pre-wrap break-all text-[10px] text-muted-foreground/80",children:function(e){try{return JSON.stringify(e,null,2)}catch(t){return String(e)}}(t.data)})]})]})}var eb=n(60516),ev=n(56974),ey=n(87969),ew=n(25042),ej=n(9734),ek=n(30158),eN=n(2021);let eS="Other";function eI(e){let{request:t,onSubmit:n,onCancel:a,onChatAboutThis:l}=e;return(0,r.jsx)(ew.lG,{open:null!==t,onOpenChange:e=>{e||a()},children:(0,r.jsx)(ew.Cf,{className:"max-w-2xl",children:t?(0,r.jsx)(eC,{request:t,onSubmit:n,onCancel:a,onChatAboutThis:l}):null})})}function eC(e){let{request:t,onSubmit:n,onCancel:l,onChatAboutThis:s}=e,[o,i]=(0,a.useState)(()=>Object.fromEntries(t.questions.map(e=>[e.id,new Set]))),[c,d]=(0,a.useState)({}),[u,m]=(0,a.useState)({}),h=1===t.questions.length?t.questions[0].header:"Pick options",p=(0,a.useMemo)(()=>{for(let n of t.questions){var e;let t=null!=(e=o[n.id])?e:new Set,r=eR(n,o,u);if(0===t.size&&!r)return!1}return!0},[t.questions,o,u]);return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(ew.c7,{children:[(0,r.jsx)(ew.L3,{children:h}),1===t.questions.length?(0,r.jsx)(ew.rr,{children:t.questions[0].question}):(0,r.jsxs)(ew.rr,{children:[t.questions.length," questions"]})]}),(0,r.jsx)(eN.F,{className:"max-h-[60vh] pr-2",children:(0,r.jsx)("div",{className:"flex flex-col gap-6 py-2",children:t.questions.map(e=>{var t;return(0,r.jsx)(eA,{question:e,isSelected:t=>{var n,r,a;return n=e.id,null!=(a=null==(r=o[n])?void 0:r.has(t))&&a},onToggle:t=>{i(n=>{var r;let a={...n},l=new Set(null!=(r=a[e.id])?r:[]);return e.multiSelect?l.has(t)?l.delete(t):l.add(t):(l.clear(),l.add(t),m(t=>({...t,[e.id]:!1}))),a[e.id]=l,a})},otherActive:eR(e,o,u),onToggleOther:()=>{e.multiSelect?m(t=>{var n;return{...t,[e.id]:!(null!=(n=t[e.id])&&n)}}):i(t=>{let n={...t};return n[e.id]=new Set([eS]),n})},otherText:null!=(t=c[e.id])?t:"",onOtherText:t=>d(n=>({...n,[e.id]:t}))},e.id)})})}),(0,r.jsxs)(ew.Es,{className:"flex-wrap gap-2 sm:justify-between",children:[(0,r.jsx)(ej.$,{variant:"ghost",onClick:s,"aria-label":"Chat about this",children:"\uD83D\uDCAC Chat about this"}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)(ej.$,{variant:"outline",onClick:l,children:"Cancel"}),(0,r.jsx)(ej.$,{onClick:function(){let e={},r={};for(let n of t.questions){var a,l;let t=Array.from(null!=(a=o[n.id])?a:[]);if(eR(n,o,u)&&!t.includes(eS)&&t.push(eS),0!==t.length&&(n.multiSelect?e[n.id]=t:e[n.id]=t[0],t.includes(eS))){let e=(null!=(l=c[n.id])?l:"").trim();e.length>0&&(r[n.id]=e)}}let s={answers:e};Object.keys(r).length>0&&(s.otherText=r),n(s)},disabled:!p,children:"Submit"})]})]})]})}function eA(e){var t,n;let{question:a}=e;return(0,r.jsxs)("section",{className:"flex flex-col gap-2",children:[""!==e.question.id?(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("span",{className:"rounded-full bg-primary/15 px-2 py-0.5 text-xs font-medium text-primary",children:a.header}),a.multiSelect?(0,r.jsx)("span",{className:"text-xs text-muted-foreground",children:"multi-select"}):null]}):null,(0,r.jsxs)("div",{className:"flex flex-col gap-1.5",children:[a.options.map(t=>{var n;return(0,r.jsx)(eE,{multi:null!=(n=a.multiSelect)&&n,option:t,selected:e.isSelected(t.label),onToggle:()=>e.onToggle(t.label)},t.label)}),null==(t=a.includeOther)||t?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(eE,{multi:null!=(n=a.multiSelect)&&n,option:{label:"Other",description:"Type your own response"},selected:e.otherActive,onToggle:e.onToggleOther}),e.otherActive?(0,r.jsx)(ek.p,{value:e.otherText,onChange:t=>e.onOtherText(t.target.value),placeholder:"Type your own response","aria-label":"Other response",className:"ml-8"}):null]}):null]})]})}function eE(e){let{multi:t,option:n,selected:a,onToggle:l}=e;return(0,r.jsxs)("button",{type:"button",role:t?"checkbox":"radio","aria-checked":a,onClick:l,className:"\n flex items-start gap-3 rounded-md border p-3 text-left\n transition-colors\n ".concat(a?"border-primary bg-primary/10":"border-border hover:bg-muted/40","\n "),children:[(0,r.jsx)("span",{className:"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center ".concat(t?"rounded":"rounded-full"," border ").concat(a?"border-primary bg-primary text-primary-foreground":"border-muted-foreground/40"),"aria-hidden":"true",children:a?t?"✓":"●":null}),(0,r.jsxs)("span",{className:"flex flex-col gap-0.5",children:[(0,r.jsx)("span",{className:"font-medium",children:n.label}),(0,r.jsx)("span",{className:"text-sm text-muted-foreground",children:n.description}),n.preview?(0,r.jsx)("span",{className:"mt-1 rounded bg-muted/40 px-2 py-1 text-xs font-mono text-muted-foreground",children:n.preview}):null]})]})}function eR(e,t,n){var r,a,l;return e.multiSelect?null!=(a=n[e.id])&&a:null!=(l=null==(r=t[e.id])?void 0:r.has(eS))&&l}function eD(e){if(void 0===e)return"";if("string"==typeof e)return e;try{var t;return null!=(t=JSON.stringify(e,null,2))?t:""}catch(e){return""}}function eq(e){let{request:t,receivedAt:n,onChoose:l,onCancel:s}=e,[o,i]=(0,a.useState)(()=>Date.now());(0,a.useEffect)(()=>{if(!t)return;i(Date.now());let e=setInterval(()=>i(Date.now()),1e3);return()=>clearInterval(e)},[t]);let c=t?eD(t.toolCall.rawInput):"",d=t?function(e){if(e&&"object"==typeof e&&!Array.isArray(e)){for(let t of["file_path","filePath","path","command","cmd"])if("string"==typeof e[t])return e[t].slice(0,80)}return eD(e).replace(/\s+/g," ").slice(0,80)}(t.toolCall.rawInput):"",u=Math.max(0,Math.ceil((n+6e4-o)/1e3));return(0,r.jsx)(ew.lG,{open:null!==t,onOpenChange:e=>{!e&&t&&s(t)},children:(0,r.jsx)(ew.Cf,{className:"max-w-lg",children:t&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(ew.c7,{children:[(0,r.jsx)(ew.L3,{children:"이 작업을 실행할까요?"}),(0,r.jsxs)(ew.rr,{children:["도구: ",t.toolCall.title]})]}),d&&(0,r.jsx)("p",{className:"truncate font-mono text-sm",title:d,children:d}),c&&(0,r.jsxs)("details",{className:"text-sm",children:[(0,r.jsx)("summary",{className:"cursor-pointer",children:"자세히"}),(0,r.jsx)("pre",{className:"mt-2 max-h-48 overflow-auto whitespace-pre-wrap break-all rounded bg-muted p-2",children:c})]}),(0,r.jsxs)("p",{className:"text-xs text-muted-foreground","aria-live":"off",children:["남은 시간: ",u,"초"]}),(0,r.jsxs)(ew.Es,{className:"flex-wrap gap-2",children:[(0,r.jsx)(ej.$,{onClick:()=>l(t,"allow_once"),children:"이번만 허용"}),(0,r.jsx)(ej.$,{variant:"outline",onClick:()=>l(t,"allow_always"),children:"이 도구는 항상 허용"}),(0,r.jsx)(ej.$,{variant:"outline",onClick:()=>l(t,"reject_once"),children:"거절"})]})]})})})}let eT={outcome:{outcome:"cancelled"}},eL=["allow_once","allow_always","reject_once","reject_always"],eU="unverified";var eO=n(60750),eM=n(67327);function eF(e,t){var n;return"error"!==t.kind?null:null!=(n=function(e){if(!e||"object"!=typeof e)return null;let{error:t,message:n,holder:r}=e;return"turn_busy"!==t?null:{message:"string"==typeof n?n:"This session is currently receiving input. Please try again when that turn finishes.",holder:"string"==typeof r&&r.trim()?r:null}}(t.payload))?n:e}var eP=n(61897);function eY(e){return"string"==typeof e.mediaType&&e.mediaType.toLowerCase().startsWith("image/")}async function e_(e,t){let n=e.downloadUrl.startsWith("http")?e.downloadUrl:"".concat(t.baseUrl.replace(/\/$/,"")).concat(e.downloadUrl),r={};t.token&&(r.authorization="Bearer ".concat(t.token));let a=await fetch(n,{headers:r});if(!a.ok)throw Error("fetch attachment ".concat(e.id," failed: ").concat(a.status));return function(e){let t=new Uint8Array(e),n="";for(let e=0;e<t.length;e+=32768)n+=String.fromCharCode(...t.subarray(e,e+32768));return btoa(n)}(await a.arrayBuffer())}async function eJ(e,t,n){if(0===t.length)return null;let r=[];for(let a of(e.length>0&&r.push({type:"text",text:e}),t))if(eY(a))try{let e=await e_(a,n);r.push({type:"image",mimeType:a.mediaType,data:e})}catch(t){let e=t instanceof Error?t.message:String(t);r.push({type:"text",text:"[image fetch failed: ".concat(a.filename," — ").concat(e,"]")})}else r.push({type:"resource_link",uri:a.path?"file://".concat(a.path):a.downloadUrl,mimeType:a.mediaType,name:a.filename});return r}let ez="elanous.pwa.pendingCardFollowups";function e$(e,t){try{var n;let r=JSON.parse(null!=(n=e.getItem(ez))?n:"[]");if(!Array.isArray(r))return[];return r.filter(e=>!!e&&"object"==typeof e&&"string"==typeof e.sessionId&&e.sessionId.length>0&&"string"==typeof e.id&&e.id.length>0&&"number"==typeof e.startedAt&&Number.isFinite(e.startedAt)&&e.startedAt<=t&&t-e.startedAt<9e5)}catch(e){return[]}}function eQ(e,t){try{t.length?e.setItem(ez,JSON.stringify(t)):e.removeItem(ez)}catch(e){}}function eG(){try{return window.localStorage}catch(e){return}}async function eK(e,t,n,r){let a=await e.fetchResponse("/v1/card-followup",{...r?{signal:r}:{},method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({attachmentId:t,...void 0===n?{}:{context:n}})});if(!a.ok)throw Error("card followup start failed: ".concat(a.status));let l=await a.json();if("string"!=typeof l.id||!l.id)throw Error("card followup start returned no id");return l.id}async function eB(e,t){let n,{intervalMs:r=3e3,signal:a,onStatus:l,startedAt:s}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=void 0===s?6e5:Math.max(0,s+9e5-Date.now()),i=Date.now()+o,c={status:"failed"},d=new AbortController,u=a?AbortSignal.any([a,d.signal]):d.signal,m=!1,h=function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return new Promise((n,r)=>{let l;if(u.aborted){var s;r(null!=(s=null==a?void 0:a.reason)?s:Error("aborted"));return}let o="undefined"==typeof document?void 0:document,i=()=>{clearTimeout(l),null==o||o.removeEventListener("visibilitychange",c),u.removeEventListener("abort",d)},c=()=>{(null==o?void 0:o.visibilityState)!=="hidden"&&(i(),n())},d=()=>{var e;i(),r(null!=(e=null==a?void 0:a.reason)?e:Error("aborted"))};l=setTimeout(()=>{i(),n()},e),t&&(null==o||o.addEventListener("visibilitychange",c)),u.addEventListener("abort",d,{once:!0})})},p=async()=>{for(;Date.now()<i;){var n,s;if(null==a?void 0:a.aborted)throw null!=(n=a.reason)?n:Error("aborted");if("undefined"!=typeof document&&"hidden"===document.visibilityState){await h(i-Date.now(),!0);continue}let o=await e.fetchResponse("/v1/card-followup/".concat(encodeURIComponent(t)),{signal:u});if(!o.ok)throw Error("card followup poll failed: ".concat(o.status));let d=await o.json();if(null==a?void 0:a.aborted)throw null!=(s=a.reason)?s:Error("aborted");if(m)return c;if(null==l||l(d.status),"done"===d.status||"not-card"===d.status||"failed"===d.status)return d;await h(Math.min(Math.max(0,r),Math.max(0,i-Date.now())))}return null==l||l("failed"),c};try{return await Promise.race([p(),new Promise(e=>{n=setTimeout(()=>{m=!0,d.abort(),null==l||l("failed"),e(c)},o)})])}finally{clearTimeout(n)}}function eH(){var e,t;let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{compact:c}=(0,u.K)(),[h,p]=(0,a.useState)(!1),[g,v]=(0,a.useState)(!1),[y,j]=(0,a.useState)(0),[T,L]=(0,a.useState)(0),U=(0,a.useRef)(null);(0,a.useEffect)(()=>{if(!h)return;let e=e=>{U.current&&U.current.contains(e.target)||p(!1)},t=e=>{"Escape"===e.key&&p(!1)};return document.addEventListener("pointerdown",e),document.addEventListener("keydown",t),()=>{document.removeEventListener("pointerdown",e),document.removeEventListener("keydown",t)}},[h]),(0,a.useEffect)(()=>{c||p(!1)},[c]);let{client:O,config:M,sessionId:F,setSessionId:P}=(0,m.Q)(),[Y,_]=(0,a.useState)([]),[J,z]=(0,a.useState)(),[K,B]=(0,a.useState)(!1),[H,W]=(0,a.useState)([]),Z=(0,a.useRef)([]),V=(0,a.useRef)(F),X=(0,a.useRef)(F),ee=(0,a.useRef)(null),et=(0,a.useRef)(0),ei=(0,a.useRef)(0),ec=(0,a.useRef)(!1),[ed,eu]=(0,a.useState)(null),em=V.current!==F&&ee.current!==F?[]:H;(0,a.useLayoutEffect)(()=>{X.current=F,V.current!==F&&(ee.current!==F&&(et.current++,Z.current=[],W([]),_([]),eS.current&&B(!1)),V.current=F,ee.current=null)},[F]);let eh=e=>{Z.current=e,W(e)},[ep,ex]=(0,a.useState)(null),[ew,ej]=(0,a.useState)(null),[ek,eN]=(0,a.useState)([]),eS=(0,a.useRef)(null),eC=(0,a.useRef)(null);(0,a.useEffect)(()=>()=>{var e;eC.current!==X.current&&(null==(e=eS.current)||e.abort())},[F]),(0,a.useEffect)(()=>()=>{var e;null==(e=eS.current)||e.abort()},[]);let[eA,eE]=(0,a.useState)({visible:!1,depth:0});(0,a.useEffect)(()=>{let e=()=>eE(e=>D(e,"end",!1));return window.addEventListener("dragend",e),()=>window.removeEventListener("dragend",e)},[]);let eR=(0,a.useRef)(!1),eD=(0,a.useRef)(null),e_=(0,a.useRef)(null),[ez,eH]=(0,a.useState)(null),eW=(0,a.useMemo)(()=>{try{let e=new URLSearchParams(window.location.search);return"on"===e.get("debug-tap")}catch(e){return!1}},[]),[eZ,eV]=(0,a.useState)(eW),eX=(0,a.useMemo)(()=>{let e=[];for(let t of Y)if(Array.isArray(t.blocks)){for(let n of t.blocks)if("debug_session"===n.kind)for(let t of n.lines)e.push({seq:t.seq,category:t.category,event:t.event,...void 0!==t.data?{data:t.data}:{},loggedAt:t.loggedAt})}return e},[Y]),e0=(0,a.useRef)(async()=>{}),e1=(0,a.useRef)(!1);e1.current=K;let e2=(0,a.useRef)(async()=>{}),e3=O.voiceWsUrl(),e5=(0,a.useCallback)(e=>{let t=e.trim();if(t){if(e1.current)return void(0,x.cY)("chat.voice.skip-pending",{len:t.length});(0,x.cY)("chat.voice.auto-send",{len:t.length}),e0.current(t)}},[]),e4=(0,ev.sS)({wsUrl:e3,...M.token?{token:M.token}:{},onTranscript:e5}),e6=!!M.baseUrl;e2.current=()=>e4.toggle();let[e8,e7]=(0,a.useState)(!1),e9=(0,ey.$)({enabled:e4.active&&!e8,language:"ko-KR"}),te=(0,a.useCallback)(()=>{null==ew||ew.abort(),(0,x.cY)("webterm.chat.stop",{had:!!ew})},[ew]);(0,a.useEffect)(()=>{if(!ew)return;let e=e=>{var t;if("Escape"!==e.key)return;let n=e.target,r=null==n||null==(t=n.tagName)?void 0:t.toLowerCase();"input"===r||"textarea"===r||null!=n&&n.isContentEditable||(e.preventDefault(),te())};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[ew,te]),(0,a.useEffect)(()=>{let e=e=>{"m"===e.key.toLowerCase()&&e.shiftKey&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),(0,x.cY)("chat.voice.shortcut.toggle"),e2.current())};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[]);let tt=(0,a.useCallback)(e=>{eN(t=>[...t,...e]),(0,x.cY)("webterm.chat.attach.queue",{added:e.length,filenames:e.map(e=>e.filename)})},[]),tn=async e=>{let{files:t,tooLarge:n,tooMany:r}=e;if(n&&eM.oR.error("".concat(n," files exceed the 20 MB attachment limit")),r&&eM.oR.error("".concat(r," files exceed the 10-file attachment limit")),0===t.length)return;if(!M.baseUrl)return void eM.oR.error("Daemon URL 미설정 — Settings 에서 입력");let a=await (0,eP.K)(t,{baseUrl:M.baseUrl,...M.token?{token:M.token}:{}}),l=a.filter(e=>e.ok).map(e=>e.meta),s=a.filter(e=>!e.ok);l.length&&(tt(l),eM.oR.success(1===l.length?"\uD83D\uDCCE ".concat(l[0].filename):"\uD83D\uDCCE ".concat(l.length," files attached"))),s.length&&eM.oR.error(1===s.length?"업로드 실패: ".concat(s[0].reason.slice(0,80)):"".concat(s.length," 파일 업로드 실패"))};(0,a.useEffect)(()=>{try{let e=window.sessionStorage.getItem("elanous.pwa.shareAttachments");if(!e)return;window.sessionStorage.removeItem("elanous.pwa.shareAttachments");let t=JSON.parse(e);if(!Array.isArray(t)||0===t.length)return;eN(e=>[...e,...t]);let n=1===t.length?"1 file shared from another app":"".concat(t.length," files shared from another app");eM.oR.success(n),(0,x.cY)("pwa.chat.share-attachments.consume",{count:t.length})}catch(e){(0,x.cY)("pwa.chat.share-attachments.parse-failed",{reason:e instanceof Error?e.message:String(e)})}},[]),(0,a.useEffect)(()=>{if(!F)return;let e=!0;return(async()=>{try{let t=await O.fetchJson("/v1/sessions/store/".concat(encodeURIComponent(F),"?ifExists=1"));if(!e||!(null==t?void 0:t.messages)||0===t.messages.length)return;_(e=>e.some(e=>!e.id.startsWith("m-card-resume-"))?e:[...function(e,t){let n,r,a=[],l=[];for(let o of e){var s;if("tool"===o.role){for(let e of(0===l.length&&(r=o.ts),function(e,t){let n,r=function(e,t){var n,r;let a,l=String(null!=(n=e.toolName)?n:"");try{a=JSON.parse(String(null!=(r=e.toolResult)?r:""))}catch(e){a=void 0}let s=a&&"object"==typeof a&&!Array.isArray(a)?a:void 0,o=null==s?void 0:s._meta,i=o&&"object"==typeof o&&!Array.isArray(o)?o.ui:void 0,c=i&&"object"==typeof i&&!Array.isArray(i)?i.resourceUri:void 0,d=null==s?void 0:s["ui/resourceUri"],u="string"==typeof c?c:"string"==typeof d?d:void 0;return void 0!==u&&""!==u.trim()?{kind:"mcp_app",toolId:t,toolName:l,screenUrl:u,...void 0!==a?{toolResult:a}:{}}:{kind:"tool_use",id:t,name:l,status:"done",...void 0!==s&&void 0!==e.toolArgs?{args:{raw:String(e.toolArgs)}}:{}}}(e,t);try{var a;n=JSON.parse(String(null!=(a=e.toolResult)?a:""))}catch(e){n=void 0}let l=(0,G.uS)(n).map(e=>({kind:"image",...e})),s=[];return(0,G.ki)(s,null!=n?n:e.toolResult),[...l,r,...s]}(o,"restore-tool-".concat(l.length,"-").concat(a.length))))"image"===e.kind&&l.some(t=>"image"===t.kind&&t.src===e.src)||l.push(e);continue}if("user"!==o.role&&"assistant"!==o.role)continue;let e=String(null!=(s=o.content)?s:""),i=String(null!=e?e:"").split("\n").filter(e=>!/^\[tool_(use|result)\]$/.test(e.trim())).join("\n"),c="assistant"===o.role?"assistant":"user";if(""===i.trim()){l.length>0&&"assistant"===c&&(a.push({id:"restore-".concat(a.length),role:c,text:"",blocks:l,timestamp:er(r,t+a.length)}),l=[],r=void 0);continue}let d=i!==e,u=void 0!==n&&n.role===c&&n.text===i&&(d||n.wasStripped)&&0===l.length;if(n={role:c,text:i,wasStripped:d},u)continue;let m=l.length>0&&"assistant"===c?[...l,{kind:"text",text:i}]:void 0,h=er(void 0!==m?r:o.ts,t+a.length);void 0!==m&&(l=[],r=void 0),a.push({id:"restore-".concat(a.length),role:c,text:i,...void 0!==m?{blocks:m}:{},timestamp:h})}return l.length>0&&a.push({id:"restore-".concat(a.length),role:"assistant",text:"",blocks:l,timestamp:er(r,t+a.length)}),a}(t.messages,Date.now()),...e])}catch(e){}})(),()=>{e=!1}},[F,O]);let tr=(0,a.useCallback)(e=>{eN(t=>t.filter(t=>t.id!==e))},[]),ta={client:O,sessionId:F,provider:M.provider,setSessionId:P,daemon:{baseUrl:M.baseUrl,...M.token?{token:M.token}:{}},messages:Y},tl=e=>{_(t=>[...t,e])},ts=async(e,t,n,r,a)=>{var l;let s=await eB(O,e,{signal:r.signal,...void 0===a?{}:{startedAt:a},onStatus:e=>(0,x.cY)("pwa.chat.card-followup",{phase:"poll",status:e})});if(r.signal.aborted||X.current!==t)return"terminal";let o=eG();return(o&&function(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:Date.now();eQ(e,e$(e,r).filter(e=>e.sessionId!==t||e.id!==n))}(o,t,e),"not-card"===s.status)?(_(e=>e.filter(e=>e.id!==n)),(0,x.cY)("pwa.chat.card-followup",{phase:"fallback",status:s.status}),"not-card"):("done"===s.status&&(null==(l=s.replies)?void 0:l.length)===3&&s.replies.every(e=>"string"==typeof e)?(_(e=>[...e.filter(e=>e.id!==n),...s.replies.map((e,t)=>({id:"".concat(n,"-").concat(t),role:"assistant",text:e,timestamp:Date.now(),meta:{provider:M.provider}}))]),(0,x.cY)("pwa.chat.card-followup",{phase:"complete",status:"done"})):(_(e=>e.map(e=>e.id===n?{...e,text:"명함 정리에 실패했습니다 — 다시 보내 주세요"}:e)),(0,x.cY)("pwa.chat.card-followup",{phase:"complete",status:"failed"})),"terminal")};(0,a.useEffect)(()=>{if(!F)return;let e=eG();if(!e)return;let t=(function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Date.now(),r=e$(e,n);return eQ(e,r),r.filter(e=>e.sessionId===t)})(e,F).map(e=>{let{id:t,startedAt:n}=e,r=new AbortController,a="m-card-resume-".concat(t);return _(e=>e.some(e=>e.id===a)?e:[...e,{id:a,role:"assistant",text:"명함 읽는 중… 조사 중…",timestamp:n,meta:{provider:M.provider}}]),ts(t,F,a,r,n).catch(()=>{r.signal.aborted||X.current!==F||_(e=>e.map(e=>e.id===a?{...e,text:"명함 정리에 실패했습니다 — 다시 보내 주세요"}:e))}),r});return()=>{t.forEach(e=>e.abort())}},[O,F]);let to=async function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];ex(e=>eF(e,{kind:"turn-begin"})),(0,x.cY)("webterm.chat.input",{len:e.length,attachCount:ek.length});let r=t?[]:ek;t||eN([]);let a=t?{ok:!1}:function(e,t){if(1!==t.length||!t[0]||!eY(t[0])||!t[0].id)return{ok:!1};let n=e.trim();if(!n)return{ok:!0,attachmentId:t[0].id};let r=n.replace(/메일\s*초안/g,"메일초안").split(/[\s,]+/).filter(Boolean);return!r.length||r.some(e=>!/^(?:명함|전략|메일초안|crm)$/i.test(e))?{ok:!1}:{ok:!0,attachmentId:t[0].id,context:n}}(e,r),l=!1;if(a.ok){let t=X.current;if(!t){var s;ee.current=t=(0,ea.f6)(),X.current=t,null==(s=n.onSessionAdopt)||s.call(n,t),P(t)}let o=new AbortController;eS.current=o,eC.current=t,l=!0,e.length>0&&tl((0,G.tw)(e)),tl((0,G.$Q)("\uD83D\uDCCE attached: ".concat(r.map(e=>e.filename).join(", "))));let i="m-card-".concat(Date.now(),"-").concat(Math.random().toString(36).slice(2,6));tl({id:i,role:"assistant",text:"명함 읽는 중… 조사 중…",timestamp:Date.now(),meta:{provider:M.provider}}),B(!0),(0,x.cY)("pwa.chat.card-followup",{phase:"start",status:"judging"});try{let e=await eK(O,a.attachmentId,a.context,o.signal);if(o.signal.aborted||X.current!==t)return;let n=eG(),r=Date.now();n&&function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Date.now(),r=e$(e,n).filter(e=>e.sessionId!==t.sessionId||e.id!==t.id);if(!t.sessionId||!t.id||!Number.isFinite(t.startedAt)||t.startedAt>n||n-t.startedAt>=9e5)return eQ(e,r);eQ(e,[...r,t])}(n,{sessionId:t,id:e,startedAt:r});let l=await ts(e,t,i,o,r);if("terminal"===l||o.signal.aborted||X.current!==t)return}catch(e){if(o.signal.aborted||X.current!==t)return;_(e=>e.map(e=>e.id===i?{...e,text:"명함 정리에 실패했습니다 — 다시 보내 주세요"}:e)),(0,x.cY)("pwa.chat.card-followup",{phase:"complete",status:"failed"});return}finally{eS.current===o&&(eS.current=null),o.signal.aborted||X.current!==t||(B(!1),ex(e=>eF(e,{kind:"turn-end"})))}}let o=r.filter(eY),i=r.filter(e=>!eY(e)),c=function(e){if(!e)return!0;let t=e.toLowerCase();return!!("auto"===t||t.startsWith("anthropic")||"anthropic"===t||t.startsWith("codex")||"openai-codex"===t||t.startsWith("openai")||"openai"===t||t.startsWith("gemini")||"gemini"===t||t.startsWith("grok")||"grok"===t||t.startsWith("local"))}(M.provider),d=o.length>0&&c;o.length>0&&!c&&eM.oR.warning("이 모델은 이미지 입력을 지원하지 않습니다 — ".concat(o.length,"개 이미지가 무시됩니다. (vision 모델로 전환 후 재첨부)"));let u=i.map(e=>e.path?"[attached] ".concat(e.path):"").filter(e=>e.length>0),m=u.length>0?"".concat(u.join("\n"),"\n\n").concat(e).trimEnd():e,h=null;if(d&&M.baseUrl)try{h=await eJ(m,o,{baseUrl:M.baseUrl,token:M.token})}catch(t){let e=t instanceof Error?t.message:String(t);(0,x.cY)("webterm.chat.attach.contentblock.error",{msg:e}),eM.oR.error("이미지 첨부 변환 실패 — 텍스트만 전송: ".concat(e)),h=null}!l&&(e.length>0&&tl((0,G.tw)(e)),r.length>0&&tl((0,G.$Q)("\uD83D\uDCCE attached: ".concat(r.map(e=>e.filename).join(", ")))));let p=e?await (0,G.yN)(e,ta):null;if(p){if("__CLEAR__"===p.text)_([]);else{let e=(0,G.$Q)(p.text);p.harnessAsk&&(e.blocks=[{kind:"harness_ask",acceptanceId:p.harnessAsk.acceptanceId}]),tl(e)}p.newSessionId&&(et.current++,eh([]),V.current=p.newSessionId,X.current=p.newSessionId,P(p.newSessionId));return}if(!M.baseUrl)return void tl((0,G.$Q)("error: daemon baseUrl not configured. Visit /settings."));B(!0),eR.current=!0;let f="m-stream-".concat(Date.now(),"-").concat(Math.random().toString(36).slice(2,6));tl({id:f,role:"assistant",text:"",timestamp:Date.now(),meta:{provider:M.provider}});let g=new AbortController;ej(g);let b=0,v=e_.current,y=!!(v&&F&&M.baseUrl),w=null;(0,x.cY)("webterm.chat.runturn.path",{useAcpPath:y,hasAcp:!!v,hasSession:!!F});let j=e=>{_(t=>t.map(t=>t.id===f?{...t,text:e}:t)),e.length>b&&(e9.pushText(e.slice(b)),b=e.length)},k=e=>{_(t=>t.map(t=>t.id===f?{...t,blocks:e}:t))};try{y&&(w=O.connectAcp({sessionId:F}));let{message:e,newSessionId:t}=y?await (0,G.py)(w,m,{...ta,sessionId:await w.ready||F},{signal:g.signal,...h?{userContent:h}:{},onPartial:j,onPartialBlocks:k}):await (0,G.HD)(m,ta,{signal:g.signal,...h?{userContent:h}:{},...eZ?{debugTap:!0}:{},onPartial:j,onPartialBlocks:k,onError:e=>ex(t=>eF(t,{kind:"error",payload:e}))});ex(e=>eF(e,{kind:"turn-end"})),_(t=>t.map(t=>t.id===f?e:t)),t&&t!==F&&X.current===F&&(ee.current=t,X.current=t,P(t)),e9.flush()}catch(n){let e=g.signal.aborted,t=n instanceof Error?n.message:String(n);e9.cancel(),e?(_(e=>e.map(e=>e.id===f?{...e,meta:{...e.meta,stopReason:"aborted"}}:e)),(0,x.cY)("webterm.chat.runturn.stream.abort",{reason:t})):(_(e=>e.filter(e=>e.id!==f)),tl((0,G.$Q)("error: ".concat(t))),eM.oR.error("chat failed: ".concat(t)),(0,x.cY)("webterm.chat.runturn.error",{reason:t,useAcpPath:y}))}finally{null==w||w.close(),B(!1),ej(null),eR.current=!1}},ti=async function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(ec.current||!t&&Z.current.length>0){var n,r;if(!t&&(ek.length>0||/^[\s]*[:/]/.test(e))){eM.oR.info("답이 끝난 뒤 보내 주세요"),z(t=>{var n;return{text:e,id:(null!=(n=null==t?void 0:t.id)?n:0)+1}});return}let a=(n=Z.current,(r={id:++ei.current,text:e}).text.trim()?n.length>=5?{queue:[...n],error:"줄이 찼습니다"}:{queue:[...n,{...r,text:r.text.trim()}]}:{queue:[...n]});a.error?(eM.oR.info(a.error),z(t=>{var n;return{text:e,id:(null!=(n=null==t?void 0:t.id)?n:0)+1}})):eh(a.queue);return}ec.current=!0;let a=et.current,l=X.current;try{await to(e,t)}finally{ec.current=!1,a!==et.current&&(0,x.cY)("webterm.chat.queue.session-changed",{turnSessionId:l,currentSessionId:X.current}),eu({generation:et.current,sessionId:X.current})}};(0,a.useEffect)(()=>{var e;if(ec.current||0===Z.current.length||!ed||ed.generation!==et.current||ed.sessionId!==F)return;let{entry:t,queue:n}={entry:(e=Z.current)[0],queue:e.slice(1)};t&&(eh(n),e0.current(t.text,!0))},[ed]),e0.current=ti,(0,a.useEffect)(()=>{ex(e=>eF(e,{kind:"session-change"}))},[F]),(0,a.useEffect)(()=>{if(!F||!M.baseUrl)return;let e=(0,G.lY)(O,F,{isLocalTurnInFlight:()=>eR.current,provider:M.provider,onPlaceholder:e=>{let{sessionId:t}=e;ex(e=>eF(e,{kind:"turn-begin"}));let n="m-obs-".concat(Date.now(),"-").concat(Math.random().toString(36).slice(2,6)),r={id:n,role:"assistant",text:"",timestamp:Date.now(),meta:{provider:M.provider}};return(0,x.cY)("webterm.chat.observer.placeholder",{id:n,turnSessionId:t}),_(e=>[...e,r]),eD.current=n,n},onPartialBlocks:(e,t)=>{_(n=>n.map(n=>n.id===e?{...n,blocks:t}:n))},onFinalize:(e,t)=>{ex(e=>eF(e,{kind:"turn-end"})),_(n=>n.map(n=>n.id===e?t:n)),eD.current===e&&(eD.current=null)},onError:(e,t)=>{ex(e=>eF(e,{kind:"error",payload:t})),(0,x.cY)("webterm.chat.observer.error",{placeholderId:e,error:t.error}),_(n=>n.map(n=>n.id===e?{...n,meta:{...n.meta,stopReason:t.error}}:n)),eD.current===e&&(eD.current=null)}});return()=>{e()}},[O,F,M.baseUrl,M.provider]),(0,a.useEffect)(()=>{if(!F||!M.baseUrl)return;let e=O.subscribeChatFeedbackEvents(F,{agentStatus:{onFeedback:e=>{_(t=>{if(0===t.length)return t;for(let n=t.length-1;n>=0;n--){if("assistant"!==t[n].role)continue;let r=t[n],a=Array.isArray(r.blocks)?[...r.blocks]:[];if("applied"!==(0,eb.K4)(a,e))break;let l={...r,blocks:a};return[...t.slice(0,n),l,...t.slice(n+1)]}return t})},onError:e=>{(0,x.cY)("webterm.agent-status.error",e)}},hudSegment:{onFeedback:e=>(0,G.Ju)(e),onError:e=>{(0,x.cY)("webterm.hud-segment.error",e)}}});return()=>{e()}},[O,F,M.baseUrl]),(0,a.useEffect)(()=>{if(!F||!M.baseUrl)return;let e=null;try{e=O.connectAcp({sessionId:F,onSession:e=>{if(e&&e!==F){var t;(0,x.cY)("webterm.chat.acp.session-adopt",{previous:F,issued:e}),X.current===F&&(ee.current=e,X.current=e,null==(t=n.onSessionAdopt)||t.call(n,e),P(e))}}})}catch(e){(0,x.cY)("webterm.chat.acp.connect-failed",{reason:String(e)});return}e_.current=e,eH(e);let t=e;(0,x.x8)(async e=>{let n=JSON.parse(e);return await t.send("elanous/debug-logs/ingest",{records:n.records}),!0});let r=(0,G.ZH)(e,F,{isLocalTurnInFlight:()=>eR.current,isRemoteSseTurnInFlight:()=>null!==eD.current,onPlaceholder:e=>{let{sessionId:t}=e;ex(e=>eF(e,{kind:"turn-begin"}));let n="m-acp-".concat(Date.now(),"-").concat(Math.random().toString(36).slice(2,6)),r={id:n,role:"assistant",text:"",timestamp:Date.now(),meta:{provider:M.provider}};return(0,x.cY)("webterm.chat.acp.foreign-placeholder",{id:n,turnSessionId:t}),_(e=>[...e,r]),n},onPartialBlocks:(e,t)=>{let n=t.find(e=>"text"===e.kind),r=t.some(e=>"image"===e.kind||"tool_use"===e.kind);_(a=>a.map(a=>a.id===e?{...a,...n?{text:n.text}:{},...r?{blocks:t}:{}}:a))},onFinalize:e=>{(0,x.cY)("webterm.chat.acp.foreign-finalize",{placeholderId:e})}});return()=>{r(),(0,x.x8)(null);try{null==e||e.close()}catch(e){}e_.current===e&&(e_.current=null),eH(null)}},[O,F,M.baseUrl,M.provider]);let tc=function(e){var t;let{acp:n,onComposerPrefill:r}=e,[l,s]=(0,a.useState)(null),o=(0,a.useRef)(null),i=(0,a.useCallback)(e=>{o.current=e,s(e)},[]),c=(0,a.useCallback)(e=>{let t=o.current;t&&(t.resolve(e),i(null))},[i]);(0,a.useEffect)(()=>{if(!n)return;let e=n.onRequest("elanous/ask/request",async e=>{let t=function(e){if(!e||"object"!=typeof e||"string"!=typeof e.id||!e.id||!e.request||"object"!=typeof e.request)return null;let t=e.request;return Array.isArray(t.questions)&&0!==t.questions.length?{id:e.id,request:e.request}:null}(e);if(!t)return{answers:{},cancelled:!0};let n=o.current;return n&&n.resolve({answers:{},cancelled:!0}),await new Promise(e=>{i({request:t.request,resolve:e,askId:t.id})})}),t=n.on("sessionUpdate",()=>{}),r=n.onAny(e=>{var t;if("elanous/ask/cancel"!==e.method||void 0!==e.id)return;let n=(t=e.params)&&"object"==typeof t&&"string"==typeof t.id&&t.id?{id:t.id,..."string"==typeof t.reason?{reason:t.reason}:{}}:null;if(!n)return;let r=o.current;r&&r.askId===n.id&&c({answers:{},cancelled:!0})});return()=>{e(),t(),r();let n=o.current;n&&(n.resolve({answers:{},cancelled:!0}),o.current=null)}},[n,i,c]);let d=(0,a.useCallback)(e=>{c(e)},[c]),u=(0,a.useCallback)(()=>{c({answers:{},cancelled:!0})},[c]),m=(0,a.useCallback)(()=>{let e=o.current;e&&r&&r(e.request),c({answers:{},cancelled:!0})},[c,r]);return{pendingRequest:null!=(t=null==l?void 0:l.request)?t:null,submit:d,cancel:u,chatAboutThis:m}}({acp:ez,onComposerPrefill:e=>{let t=e.questions[0];if(!t)return;let n="[ Q: ".concat(t.question.trim()," ]\n\n");(0,el.vn)(n),z(e=>{var t;return{text:n,id:(null!=(t=null==e?void 0:e.id)?t:0)+1}}),eM.oR.info("\uD83D\uDCAC 입력 영역에 질문 prefill 됨 (Chat about this)")}}),td=function(e){var t,n;let{acp:r,sessionId:l}=e,[s,o]=(0,a.useState)(null),i=(0,a.useRef)(null),c=(0,a.useRef)(l);c.current=l;let d=(0,a.useCallback)((e,t,n)=>{let r=i.current;r&&(!n||r.request===n)&&(i.current=null,clearTimeout(r.timer),o(null),(0,x.cY)("pwa.tool-approval.".concat("cancelled"===t?"cancelled":"decided"),{tool:eU,choice:t}),r.resolve(e))},[]);(0,a.useEffect)(()=>{if(!r)return;let e=r.onRequest("session/request_permission",e=>{let t=function(e){try{if(!e||"object"!=typeof e)return null;let t=e.toolCall;if(!t||"object"!=typeof t||"string"!=typeof e.sessionId||!e.sessionId||"string"!=typeof t.toolCallId||!t.toolCallId||"string"!=typeof t.title||!t.title||!Array.isArray(e.options))return null;let n=e.options.map(e=>{if(!e||"object"!=typeof e||"string"!=typeof e.optionId||!e.optionId||"string"!=typeof e.kind||!eL.includes(e.kind))throw Error("invalid option");return{optionId:e.optionId,kind:e.kind}});if(new Set(n.map(e=>e.optionId)).size!==n.length||new Set(n.map(e=>e.kind)).size!==n.length||["allow_once","allow_always","reject_once"].some(e=>!n.some(t=>t.kind===e)))return null;return{sessionId:e.sessionId,toolCall:{toolCallId:t.toolCallId,title:t.title,...void 0!==t.rawInput?{rawInput:t.rawInput}:{}},options:n}}catch(e){return null}}(e);return t&&t.sessionId===c.current?((0,x.cY)("pwa.tool-approval.requested",{tool:eU,choice:null}),d(eT,"cancelled"),new Promise(e=>{let n={request:t,receivedAt:Date.now(),resolve:e,timer:setTimeout(()=>{i.current===n&&d(eT,"cancelled")},6e4)};i.current=n,o(n)})):((0,x.cY)("pwa.tool-approval.cancelled",{tool:eU,choice:"cancelled"}),eT)}),t="function"==typeof r.onState?r.onState(e=>{("CLOSED"===e||"FAILED"===e)&&d(eT,"cancelled")}):()=>{};return()=>{e(),t(),d(eT,"cancelled")}},[r,d]),(0,a.useEffect)(()=>{i.current&&i.current.request.sessionId!==l&&d(eT,"cancelled")},[l,d]);let u=(0,a.useCallback)((e,t)=>{var n;if((null==(n=i.current)?void 0:n.request)!==e)return;let r=e.options.find(e=>e.kind===t);r&&d({outcome:{outcome:"selected",optionId:r.optionId}},t,e)},[d]),m=(0,a.useCallback)(e=>d(eT,"cancelled",e),[d]);return{pendingRequest:null!=(t=null==s?void 0:s.request)?t:null,receivedAt:null!=(n=null==s?void 0:s.receivedAt)?n:0,choose:u,cancel:m}}({acp:ez,sessionId:F}),tu=(0,r.jsxs)("button",{type:"button",onClick:()=>void e4.toggle(),disabled:!e6,title:e6?null!=(e=e4.errorMsg)?e:eO.g[e4.phase]:"daemon URL 미설정 — Settings 에서 Base URL 입력","data-elanous-action":"chat-voice-toggle",className:(0,Q.cn)("inline-flex items-center gap-1.5 rounded-full border px-2.5 py-1 text-xs font-medium transition-colors",e4.active?"border-rose-500/40 bg-rose-500/10 text-rose-600 hover:bg-rose-500/20":"border-border bg-background text-foreground hover:bg-muted",!e6&&"cursor-not-allowed opacity-50"),children:[(0,r.jsx)("span",{className:(0,Q.cn)("h-2 w-2 rounded-full",eO.x[e4.phase],("listening"===e4.phase||"speaking"===e4.phase)&&"animate-pulse"),"aria-hidden":!0}),e4.active?(0,r.jsx)(s.A,{className:"h-3.5 w-3.5"}):(0,r.jsx)(o.A,{className:"h-3.5 w-3.5"}),(0,r.jsx)("span",{className:"hidden sm:inline",children:eO.g[e4.phase]})]});return(0,r.jsxs)("div",{className:"relative flex h-full flex-col",onPaste:e=>{let t=function(e,t){if(!e)return A([]);let n=[];if(e.items.length>0)for(let t of Array.from(e.items)){if("file"!==t.kind)continue;let e=t.getAsFile();e&&n.push(e)}else n.push(...Array.from(e.files));return A(n.map(e=>({file:e,filename:e.name||"paste-".concat(t,".png")})))}(e.clipboardData,Date.now());(0!==t.files.length||0!==t.tooLarge||0!==t.tooMany)&&(e.preventDefault(),tn(t))},onDragEnter:e=>{eE(t=>D(t,"enter",E(e.dataTransfer)))},onDragLeave:e=>{eE(t=>D(t,"leave",E(e.dataTransfer)))},onDragOver:e=>{E(e.dataTransfer)&&e.preventDefault()},onDrop:e=>{var t;eE(t=>D(t,"drop",E(e.dataTransfer)));let n=A((t=e.dataTransfer)?Array.from(t.files,e=>({file:e,filename:e.name})):[]);(0!==n.files.length||0!==n.tooLarge||0!==n.tooMany)&&(e.preventDefault(),tn(n))},children:[eA.visible&&(0,r.jsx)(R,{}),n.mobileSimple&&c&&(0,r.jsx)(N,{activity:null!=(t=n.mobileActivity)?t:{kind:"loading"},decisions:T,menu:(0,r.jsxs)("div",{ref:U,className:"relative shrink-0",children:[(0,r.jsx)("button",{type:"button","aria-label":"채팅 메뉴","aria-expanded":h,"aria-controls":"chat-mobile-menu",onClick:()=>p(e=>!e),className:"rounded-lg p-1 hover:bg-muted",children:(0,r.jsx)(i.A,{className:"h-5 w-5","aria-hidden":"true"})}),h&&(0,r.jsxs)("div",{id:"chat-mobile-menu",className:"absolute right-0 top-full z-50 mt-2 flex max-h-[70dvh] w-[min(19rem,calc(100vw-1rem))] flex-col gap-2 overflow-y-auto rounded-lg border border-border bg-popover p-3 shadow-lg",children:[(0,r.jsxs)("nav",{"aria-label":"채팅 이동",className:"flex gap-3 text-sm",children:[(0,r.jsx)(d(),{href:"/",className:"rounded px-2 py-1 hover:bg-muted",children:"홈"}),(0,r.jsx)(d(),{href:"/workspace",className:"rounded px-2 py-1 hover:bg-muted",children:"워크스페이스"}),(0,r.jsx)(d(),{href:"/settings",className:"rounded px-2 py-1 hover:bg-muted",children:"설정"})]}),n.conversationButton,(0,r.jsx)(q.Qh,{sessionId:F,...n.onAttachRequest?{onAttachRequest:n.onAttachRequest}:{},...n.onForgetRequest?{onForgetRequest:n.onForgetRequest}:{}}),(0,r.jsx)($,{compact:!0}),(0,r.jsx)(b,{}),(0,r.jsx)(l.vG,{children:(0,r.jsx)(es.rm,{})}),(0,r.jsx)(l.vG,{children:(0,r.jsx)(eo.D,{})}),tu]})]})}),c&&!n.mobileSimple?(0,r.jsxs)("div",{"data-elanous-chat-compact-header":"",className:"flex h-11 max-h-11 min-w-0 shrink-0 items-center gap-2 border-b border-border bg-background px-3 whitespace-nowrap",children:[n.leading&&(0,r.jsx)("div",{className:"shrink-0",children:n.leading}),(0,r.jsx)("div",{className:"min-w-0 flex-1 [&>div]:min-w-0 [&>div]:max-w-full [&>div>div:first-child]:min-w-0 [&>div>div:first-child]:max-w-full [&>div>div:first-child]:overflow-hidden [&>div>div:first-child>span:last-child]:shrink-0 [&>div>div:first-child_span]:min-w-0 [&>div>div:first-child_span]:truncate [&>div>div[role=menu]]:max-w-[calc(100vw-4rem)]",children:(0,r.jsx)(q.Qh,{sessionId:F,...n.onAttachRequest?{onAttachRequest:n.onAttachRequest}:{},...n.onForgetRequest?{onForgetRequest:n.onForgetRequest}:{}})}),(0,r.jsx)("div",{className:"min-w-0 shrink-0",children:(0,r.jsx)($,{compact:!0})}),(0,r.jsx)(b,{}),(0,r.jsxs)("div",{ref:U,className:"relative shrink-0",children:[(0,r.jsx)("button",{type:"button","aria-label":"채팅 더보기","aria-expanded":h,"aria-controls":"chat-header-more",onClick:()=>p(e=>!e),className:"inline-flex h-8 w-8 items-center justify-center rounded-lg hover:bg-muted",children:(0,r.jsx)(i.A,{className:"h-5 w-5","aria-hidden":"true"})}),h&&(0,r.jsxs)("div",{id:"chat-header-more",className:"absolute right-0 top-full z-50 mt-1 flex max-w-[calc(100vw-1.5rem)] flex-col gap-2 rounded-lg border border-border bg-popover p-3 shadow-lg",children:[(0,r.jsx)(l.vG,{children:(0,r.jsx)(es.rm,{})}),(0,r.jsx)(l.vG,{children:(0,r.jsx)(eo.D,{})}),tu]})]})]}):n.mobileSimple&&c?null:(0,r.jsxs)("div",{className:"flex shrink-0 items-center justify-between gap-3 border-b border-border bg-background px-4 py-2",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)(q.Qh,{sessionId:F,...n.onAttachRequest?{onAttachRequest:n.onAttachRequest}:{},...n.onForgetRequest?{onForgetRequest:n.onForgetRequest}:{}}),(0,r.jsx)(l.vG,{children:(0,r.jsx)(es.rm,{})}),(0,r.jsx)(l.vG,{children:(0,r.jsx)(eo.D,{})})]}),(0,r.jsxs)("div",{className:"flex min-w-0 items-center gap-2",children:[(0,r.jsx)($,{}),(0,r.jsx)(b,{}),tu]})]}),!(n.mobileSimple&&c)&&(0,r.jsx)(f,{}),n.mobileSimple&&c&&y+T>0&&(0,r.jsx)("div",{className:"shrink-0 px-3 py-1.5",children:(0,r.jsxs)("button",{type:"button","aria-expanded":g,"aria-controls":"chat-mobile-actions",onClick:()=>v(e=>!e),className:"rounded-full border border-border bg-muted px-3 py-1 text-xs font-medium",children:["승인\xb7결정 ",y+T]})}),n.mobileSimple&&c?(0,r.jsxs)("div",{id:"chat-mobile-actions",children:[(0,r.jsx)(w,{mobileOpen:g,onCount:j}),(0,r.jsx)(k,{mobileOpen:g,onCount:L})]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(w,{}),(0,r.jsx)(k,{})]}),!(n.mobileSimple&&c)&&(0,r.jsx)(en,{}),(0,r.jsxs)("div",{className:"relative flex flex-1 min-h-0 flex-col",children:[(0,r.jsx)(S.D,{messages:Y,pending:K,mobileSimple:!!(n.mobileSimple&&c),...n.tabId?{tabId:n.tabId}:{}}),ep&&(0,r.jsxs)("div",{role:"alert",className:"mx-4 mb-3 flex shrink-0 items-start justify-between gap-3 rounded-md border border-amber-500/40 bg-amber-500/10 px-3 py-2 text-sm text-foreground","data-elanous-turn-busy-banner":"",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"font-medium",children:"이 대화는 지금 응답 중입니다"}),(0,r.jsx)("p",{className:"text-muted-foreground",children:ep.message}),(0,r.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:ep.holder?"Current input holder: ".concat(ep.holder):"The current input holder is not available."})]}),(0,r.jsx)("button",{type:"button",onClick:()=>ex(null),className:"rounded px-2 py-1 text-xs text-muted-foreground hover:bg-amber-500/10 hover:text-foreground","aria-label":"응답 중 알림 닫기",children:"Dismiss"})]}),(0,r.jsx)(ef,{active:e4.active,phase:e4.phase,errorMsg:e4.errorMsg,onToggle:()=>void e4.toggle(),ttsSupported:e9.supported,ttsMuted:e8,onTtsToggle:()=>e7(e=>!e),onInterrupt:()=>{try{e9.cancel()}catch(e){}e4.interrupt()}})]}),K&&ew&&(0,r.jsxs)("div",{className:"flex shrink-0 items-center justify-end gap-2 border-t border-border bg-muted/30 px-4 py-1.5 text-xs",children:[(0,r.jsx)("span",{className:"text-muted-foreground",children:"streaming…"}),(0,r.jsx)("button",{type:"button",onClick:te,className:"rounded border border-border bg-background px-2 py-0.5 font-mono hover:bg-muted","data-elanous-action":"chat-stop",title:"Stop the running turn (Esc)",children:"Stop ⎋"})]}),(0,r.jsx)(C,{queue:em,onRemove:e=>{var t;return eh((t=Z.current,t.filter(t=>t.id!==e)))},onClear:()=>eh([])}),(0,r.jsx)(I.V,{onSubmit:ti,prefill:J,attachments:ek,onAttached:tt,onRemoveAttachment:tr,voice:{active:e4.active,phase:e4.phase,dotColor:eO.x[e4.phase],phaseLabel:eO.g[e4.phase],disabled:!e6,onToggle:()=>void e4.toggle()},...n.tabId?{tabId:n.tabId}:{},onListFiles:ez&&F?async e=>{var t,n;let r=await ez.send("elanous/fs/list",{sessionId:F,query:e,limit:50}),a=(null!=(t=r.entries)?t:[]).filter(e=>"string"==typeof(null==e?void 0:e.name)&&"boolean"==typeof(null==e?void 0:e.isDir)&&"string"==typeof(null==e?void 0:e.relPath)).map(e=>({name:e.name,isDir:e.isDir,relPath:e.relPath}));return{cwd:null!=(n=r.cwd)?n:"",entries:a}}:void 0,onListSkills:ez&&F?async e=>{var t;return{entries:(null!=(t=(await ez.send("elanous/skills/list",{sessionId:F,query:e})).entries)?t:[]).filter(e=>"string"==typeof(null==e?void 0:e.name)&&"string"==typeof(null==e?void 0:e.description)).map(e=>({name:e.name,description:e.description}))}}:void 0}),eW&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(eg,{open:eZ,onClose:()=>eV(!1),lines:eX}),!eZ&&(0,r.jsxs)("button",{type:"button",onClick:()=>eV(!0),"data-elanous-debug-tap-reopen":"",className:(0,Q.cn)("fixed bottom-3 right-3 z-40 rounded-full border border-border bg-card px-3 py-1.5","text-[11px] font-mono text-muted-foreground shadow hover:bg-muted hover:text-foreground"),"aria-label":"Reopen debug drawer",title:"Reopen Debug Tap drawer",children:["⌁ debug (",eX.length,")"]})]}),(0,r.jsx)(eI,{request:tc.pendingRequest,onSubmit:tc.submit,onCancel:tc.cancel,onChatAboutThis:tc.chatAboutThis}),(0,r.jsx)(eq,{request:td.pendingRequest,receivedAt:td.receivedAt,onChoose:td.choose,onCancel:td.cancel})]})}var eW=n(8819),eZ=n(21383);function eV(e,t){var n,r;return(null==t?void 0:t.trim())||(null==(r=e.lastMsgPreview)||null==(n=r.trim().split(/\r?\n/)[0])?void 0:n.trim())||"대화"}function eX(e,t){try{"undefined"!=typeof localStorage&&localStorage.setItem(e,t)}catch(e){}}function e0(e){let{onSelect:t}=e,n=(0,m.Q)(),l=(0,L.t)({activePoll:!0}),[s,o]=(0,a.useState)({}),[i,c]=(0,a.useState)(""),[d,u]=(0,a.useState)([]),[h,p]=(0,a.useState)("all"),[f,g]=(0,a.useState)([]),[x,b]=(0,a.useState)(_);(0,a.useEffect)(()=>{let e=()=>{b(_()),j({})};return window.addEventListener(M,e),()=>window.removeEventListener(M,e)},[]);let[v,y]=(0,a.useState)({}),[w,j]=(0,a.useState)({}),k=(0,a.useRef)(new Set),N=e=>{let t=e(_());J(t),b(t)};(0,a.useEffect)(()=>{var e;p(null!=(e=function(e){try{return"undefined"==typeof localStorage?null:localStorage.getItem(e)}catch(e){return null}}(O))?e:"all");let t=!0,r=0,a=()=>{let e=++r;new U(n.client).list().then(n=>{var a;t&&e===r&&u(null!=(a=n.projects)?a:[])}).catch(()=>{})};return a(),window.addEventListener(F,a),()=>{t=!1,window.removeEventListener(F,a)}},[n.client]),(0,a.useEffect)(()=>{let e=!0,t=d.length>0&&"all"!==h&&"none"!==h?"?projectId=".concat(encodeURIComponent(h)):"";return n.client.fetchJson("/v1/sessions/store".concat(t)).then(t=>{var n;if(!e)return;let r=null!=(n=t.sessions)?n:[];g(r),o(Object.fromEntries(r.map(e=>[e.id,e.title])))}).catch(()=>{}),()=>{e=!1}},[n.client,l,d,h]),(0,a.useEffect)(()=>{let e=Object.keys(x).filter(e=>l.some(t=>t.id===e)&&!f.some(t=>t.id===e));if(0===e.length)return;let t=!0;for(let r of e)n.client.fetchJson("/v1/sessions/store/".concat(encodeURIComponent(r),"?ifExists=1")).then(e=>{t&&e.meta&&g(t=>t.some(e=>e.id===r)?t:[...t,e.meta])}).catch(()=>{});return()=>{t=!1}},[f,n.client,x,l]),(0,a.useEffect)(()=>{for(let[e,t]of Object.entries(x)){if(e===n.sessionId||w[e]===t||!l.some(t=>t.id===e)||k.current.has(e))continue;let r=f.find(t=>t.id===e);if(r&&_()[e]===t){if(r.projectId===t||v[e]===t){N(t=>{let n={...t};return delete n[e],n});continue}k.current.add(e),new U(n.client).assign(e,t).then(()=>{y(n=>({...n,[e]:t})),g(n=>n.map(n=>n.id===e?{...n,projectId:t}:n)),_()[e]===t&&N(t=>{let n={...t};return delete n[e],n})}).catch(()=>{j(n=>({...n,[e]:t})),_()[e]===t&&N(t=>{let n={...t};return delete n[e],n})}).finally(()=>{k.current.delete(e)})}}},[v,w,f,n.client,n.sessionId,x,l]);let S=d.some(e=>e.id===h)||"none"===h?h:"all",I=0===d.length||"all"===S?l:l.filter(e=>x[e.id]?x[e.id]===S:"none"===S?!f.some(t=>t.id===e.id&&t.projectId)&&!v[e.id]:v[e.id]===S||f.some(t=>t.id===e.id&&t.projectId===S)),C=[...I].filter(e=>{var t;return"".concat(eV(e,s[e.id])," ").concat(null!=(t=e.lastMsgPreview)?t:"").toLocaleLowerCase().includes(i.trim().toLocaleLowerCase())}).sort((e,t)=>Date.parse(t.lastTurnAt)-Date.parse(e.lastTurnAt)),A=()=>{let e=(0,ea.Zr)();d.length>0&&"all"!==S&&"none"!==S&&N(t=>({...t,[e]:S})),n.setSessionId(e),null==t||t()};return(0,r.jsxs)("nav",{"aria-label":"대화 목록",className:"flex h-full min-h-0 flex-col bg-background",children:[(0,r.jsxs)("div",{className:"shrink-0 space-y-3 border-b border-border p-3",children:[(0,r.jsx)(z,{projects:d,selection:S,onChange:e=>{p(e),eX(O,e)},onCreate:async e=>{let{project:t}=await new U(n.client).create(e);u(e=>[...e,t]),p(t.id),eX(O,t.id),P()}}),(0,r.jsxs)("button",{type:"button",onClick:A,className:"flex w-full items-center gap-2 rounded-lg bg-primary px-3 py-2 text-sm font-medium text-primary-foreground hover:bg-primary/90",children:[(0,r.jsx)(eW.A,{className:"h-4 w-4","aria-hidden":"true"})," 새 대화"]}),(0,r.jsxs)("label",{className:"flex items-center gap-2 rounded-lg border border-border bg-muted/30 px-2.5 py-2 focus-within:ring-2 focus-within:ring-ring",children:[(0,r.jsx)(eZ.A,{className:"h-4 w-4 shrink-0 text-muted-foreground","aria-hidden":"true"}),(0,r.jsx)("input",{"aria-label":"대화 검색",type:"search",value:i,onChange:e=>c(e.target.value),placeholder:"대화 검색",className:"min-w-0 flex-1 bg-transparent text-sm outline-none placeholder:text-muted-foreground"})]})]}),(0,r.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto p-2",children:0===I.length?(0,r.jsxs)("div",{className:"space-y-3 px-2 py-8 text-center text-sm text-muted-foreground",children:[(0,r.jsx)("p",{children:"아직 대화가 없습니다"}),(0,r.jsx)("button",{type:"button",onClick:A,className:"rounded-lg border border-border px-3 py-2 text-foreground hover:bg-muted",children:"+ 새 대화"})]}):0===C.length?(0,r.jsx)("p",{className:"px-2 py-8 text-center text-sm text-muted-foreground",children:"검색 결과가 없습니다"}):(0,r.jsx)("ul",{className:"space-y-1",children:C.map(e=>(0,r.jsx)("li",{children:(0,r.jsxs)("button",{type:"button","aria-current":n.sessionId===e.id?"page":void 0,onClick:()=>{P(),n.setSessionId(e.id),null==t||t()},className:"w-full rounded-lg px-3 py-2.5 text-left transition-colors ".concat(n.sessionId===e.id?"bg-primary/10 text-primary ring-1 ring-inset ring-primary/25":"text-foreground hover:bg-muted"),children:[(0,r.jsx)("span",{className:"block truncate text-sm font-medium",children:eV(e,s[e.id])}),(0,r.jsxs)("span",{className:"mt-1 block truncate text-xs text-muted-foreground",children:[function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Date.now(),n=Date.parse(e);if(!Number.isFinite(n))return"";let r=Math.max(0,Math.floor((t-n)/6e4));if(r<1)return"방금 전";if(r<60)return"".concat(r,"분 전");let a=Math.floor(r/60);if(a<24)return"".concat(a,"시간 전");let l=Math.floor(a/24);return l<7?"".concat(l,"일 전"):new Date(n).toLocaleDateString()}(e.lastTurnAt)," \xb7 ",e.msgCount,"개 메시지"]})]})},e.id))})})]})}var e1=n(35622),e2=n(69147),e3=n(44614),e5=n(89709);function e4(){var e;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{compact:n}=(0,u.K)(),l=!!t.mobileSimple&&n,s=(0,e5.DE)(),o=(0,e3.tg)(),{client:i,sessionId:c,setSessionId:d}=(0,m.Q)(),[h,p]=(0,a.useState)(c||"default"),[f,g]=(0,a.useState)(!1);(0,a.useEffect)(()=>{if(!f)return;let e=e=>{"Escape"===e.key&&g(!1)};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[f]);let x=(0,a.useRef)(null);(0,a.useEffect)(()=>{if(x.current===c){x.current=null;return}x.current=null,p(c||"default")},[c]);let b=(0,a.useRef)(t.sessionId),v=(0,a.useRef)(c),y=null!=(e=null==o?void 0:o.state.activeId)?e:null;(0,a.useEffect)(()=>{let e=t.sessionId;if(o&&t.tabId&&e&&c){var n,r;let a=function(e){if(!e.isActive||e.tabSessionId===e.daemonSessionId)return"none";let t=e.prevTabSessionId!==e.tabSessionId,n=e.prevDaemonSessionId!==e.daemonSessionId;return t||!n?"adopt-tab":"record-global"}({isActive:y===t.tabId,tabSessionId:e,daemonSessionId:c,prevTabSessionId:null!=(n=b.current)?n:e,prevDaemonSessionId:null!=(r=v.current)?r:c});"adopt-tab"===a?d(e):"record-global"===a&&o.updateChatTab(t.tabId,{sessionId:c})}b.current=t.sessionId,v.current=c},[o,y,t.tabId,t.sessionId,c,d]);let w=o&&t.tabId?()=>o.openPicker({kind:"attachToTab",tabId:t.tabId}):void 0,j=o&&t.sessionId?async()=>{let e=(0,T.hG)(i);await e.forget(t.sessionId)}:void 0,k=(0,r.jsx)("button",{type:"button",onClick:()=>g(!0),"aria-label":"대화 목록","aria-expanded":f,"aria-controls":"chat-conversation-drawer",className:"inline-flex h-8 w-8 shrink-0 items-center justify-center rounded-lg hover:bg-muted",children:(0,r.jsx)(e1.A,{className:"h-4 w-4","aria-hidden":"true"})}),N=(0,r.jsx)(eH,{onSessionAdopt:e=>{x.current=e},...t.showConversationList&&n&&!l?{leading:k}:{},...l?{mobileSimple:l,mobileActivity:s,conversationButton:k}:{},...w?{onAttachRequest:w}:{},...j?{onForgetRequest:j}:{},...t.tabId?{tabId:t.tabId}:{}},h);return t.showConversationList?(0,r.jsxs)("div",{className:"flex h-full min-h-0 min-w-0",children:[(0,r.jsx)("aside",{className:n?"hidden":"hidden h-full w-[260px] shrink-0 border-r border-border md:block",children:(0,r.jsx)(e0,{})}),(0,r.jsxs)("div",{className:"flex min-h-0 min-w-0 flex-1 flex-col",children:[!n&&(0,r.jsx)("div",{className:"shrink-0 border-b border-border bg-background px-3 py-2 md:hidden",children:(0,r.jsxs)("button",{type:"button",onClick:()=>g(!0),"aria-label":"대화 목록","aria-expanded":f,"aria-controls":"chat-conversation-drawer",className:"inline-flex items-center gap-2 rounded-lg px-2 py-1.5 text-sm font-medium hover:bg-muted",children:[(0,r.jsx)(e1.A,{className:"h-4 w-4","aria-hidden":"true"})," 대화 목록"]})}),(0,r.jsx)("div",{className:"min-h-0 min-w-0 flex-1",children:N})]}),f&&(0,r.jsxs)("div",{className:n?"fixed inset-0 z-50":"fixed inset-0 z-50 md:hidden",children:[(0,r.jsx)("button",{type:"button","aria-label":"대화 목록 닫기",onClick:()=>g(!1),className:"absolute inset-0 bg-black/50"}),(0,r.jsxs)("aside",{id:"chat-conversation-drawer",role:"dialog","aria-modal":"true","aria-label":"대화 목록",className:"relative h-full w-[min(260px,85vw)] bg-background shadow-xl",children:[(0,r.jsx)("button",{type:"button","aria-label":"대화 목록 닫기",onClick:()=>g(!1),className:"absolute right-2 top-2 z-10 rounded p-1 hover:bg-muted",children:(0,r.jsx)(e2.A,{className:"h-4 w-4"})}),(0,r.jsx)(e0,{onSelect:()=>g(!1)})]})]})]}):N}},74780:(e,t,n)=>{function r(e){return{slides:e.slides.map(e=>{let{image:t,caption:n,include:r}=e;return{image:t,caption:n,include:r}}),caption:{hook:e.caption.hook,body:e.caption.body},hashtags:[...e.hashtags],cover:{text:e.cover.text,sub:e.cover.sub},location:e.location}}n.d(t,{$Y:()=>s,LP:()=>i,Mz:()=>r,ll:()=>d,rH:()=>o});class a extends Error{constructor(e,t){super(t),this.status=e,this.name="GraphApprovalsApiError"}}let l={list:"목록을 보려면",decide:"승인하려면",save:"초안을 저장하려면"},s="/app/settings/#bearer-token";function o(e){return e instanceof a&&(401===e.status||403===e.status)}function i(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"decide";return e instanceof a?401===e.status||403===e.status?"".concat(l[t]," 이 기기를 데몬에 연결해야 합니다 — 설정 › 데몬 연결 › 연결 토큰 칸에 토큰을 넣어 주세요."):404===e.status?"이 실행을 찾지 못했습니다. 목록을 다시 확인해 주세요.":409===e.status?"이미 결정된 실행입니다. 목록을 다시 확인해 주세요.":400===e.status?"결정 내용을 확인한 뒤 다시 시도해 주세요.":"승인 요청을 처리하지 못했습니다. 잠시 뒤 다시 시도해 주세요.":e instanceof TypeError?"서버에 연결하지 못했습니다. 연결 상태를 확인해 주세요.":"승인 요청을 처리하지 못했습니다. 잠시 뒤 다시 시도해 주세요."}let c="/v1/graph-approvals";function d(e){var t,n;let r=(null!=(t=e.baseUrl)?t:"").replace(/\/+$/,""),l=null!=(n=e.fetchImpl)?n:fetch;async function s(t,n){let s={...n,headers:{"content-type":"application/json",...e.authHeader?{authorization:e.authHeader}:{}}},o=e.client?await e.client.fetchResponse(t,s):await l("".concat(r).concat(t),s),i=await o.json().catch(()=>null);if(!o.ok){let e=i&&"object"==typeof i&&"error"in i&&"string"==typeof i.error?i.error:"request-failed";throw new a(o.status,e)}return i}return{list:()=>s(c),decide:(e,t,n)=>s("".concat(c,"/").concat(encodeURIComponent(e),"/").concat(encodeURIComponent(t)),{method:"POST",body:JSON.stringify({decision:n})}),saveFeedDraft:(e,t,n)=>s("".concat(c,"/").concat(encodeURIComponent(e),"/").concat(encodeURIComponent(t),"/feed-draft"),{method:"PUT",body:JSON.stringify(n)}),feedMedia:async(t,n,s)=>{let o="".concat(c,"/").concat(encodeURIComponent(t),"/").concat(encodeURIComponent(n),"/media?path=").concat(encodeURIComponent(s)),i={headers:e.authHeader?{authorization:e.authHeader}:{}},d=e.client?await e.client.fetchResponse(o,i):await l("".concat(r).concat(o),i);if(!d.ok)throw new a(d.status,"media-failed");return d.blob()}}}}}]);