elanous 0.2.40 → 0.2.41

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 (558) hide show
  1. package/README.md +7 -7
  2. package/apps/pwa/out/404/index.html +1 -1
  3. package/apps/pwa/out/404.html +1 -1
  4. package/apps/pwa/out/_next/static/{HjeK7zONHfR7op1hKXp4k → GiOLWmt4MqDZePubBjA4Q}/_buildManifest.js +1 -1
  5. package/apps/pwa/out/_next/static/chunks/1115.434ae2ecb0ad986d.js +149 -0
  6. package/apps/pwa/out/_next/static/chunks/1121.667cec0bcdbb3fdb.js +36 -0
  7. package/apps/pwa/out/_next/static/chunks/{9184.45afbf44fec87574.js → 1178.1aa9cad0e7695427.js} +1 -1
  8. package/apps/pwa/out/_next/static/chunks/{2829-734fe8bf2eee7347.js → 1197-54da59d250a6e476.js} +1 -1
  9. package/apps/pwa/out/_next/static/chunks/{6749.0744ce6eb08d40e9.js → 1219.7e17964e0e7cd8e5.js} +3 -3
  10. package/apps/pwa/out/_next/static/chunks/1245.1cfd13b26dbd71d6.js +287 -0
  11. package/apps/pwa/out/_next/static/chunks/1494-f93046ff5c5a124d.js +1 -0
  12. package/apps/pwa/out/_next/static/chunks/1609.2b312797599b8e45.js +1 -0
  13. package/apps/pwa/out/_next/static/chunks/1661.0dd330f3d89f73f3.js +1 -0
  14. package/apps/pwa/out/_next/static/chunks/167-0c121e4b47e0f9da.js +1 -0
  15. package/apps/pwa/out/_next/static/chunks/1700.cdc2bf8cc685e221.js +90 -0
  16. package/apps/pwa/out/_next/static/chunks/1703-78e46acad29f3cfc.js +1 -0
  17. package/apps/pwa/out/_next/static/chunks/1765.679b29625c8e88d4.js +77 -0
  18. package/apps/pwa/out/_next/static/chunks/{2226.2cf61ec781827219.js → 1800.f7ff51dc4978a958.js} +2 -2
  19. package/apps/pwa/out/_next/static/chunks/1971-7efb628c471dc5a0.js +1 -0
  20. package/apps/pwa/out/_next/static/chunks/1999-8de7b7bb36801913.js +1 -0
  21. package/apps/pwa/out/_next/static/chunks/{9175.2de5209a5ce6f68a.js → 2073.689dcb2680113d76.js} +1 -1
  22. package/apps/pwa/out/_next/static/chunks/2198-557d49184104d165.js +1 -0
  23. package/apps/pwa/out/_next/static/chunks/221-440ce67fa9f5c839.js +1 -0
  24. package/apps/pwa/out/_next/static/chunks/{5383.bdfa5d886e39a826.js → 2263.e09b6edea33bad2d.js} +1 -1
  25. package/apps/pwa/out/_next/static/chunks/2427-8ed8e98624cbd664.js +1 -0
  26. package/apps/pwa/out/_next/static/chunks/2457-725c5827bc003795.js +1 -0
  27. package/apps/pwa/out/_next/static/chunks/2491-2718b15a5ccb75a5.js +1 -0
  28. package/apps/pwa/out/_next/static/chunks/2527-5c636a43c7cc5dde.js +1 -0
  29. package/apps/pwa/out/_next/static/chunks/2692-1027cb16fe4ccf49.js +1 -0
  30. package/apps/pwa/out/_next/static/chunks/{9069.657590a84afb8fac.js → 2743.5d3f76948be32b34.js} +2 -2
  31. package/apps/pwa/out/_next/static/chunks/{6624.981ef7caeb680560.js → 2773.0e80b9d325fb5635.js} +2 -2
  32. package/apps/pwa/out/_next/static/chunks/2873-0f3cb56c8e3528ea.js +1 -0
  33. package/apps/pwa/out/_next/static/chunks/{4864a2ca.1c1c280a7772c5e5.js → 2fdf2931.b431eee4fb468bc3.js} +1 -1
  34. package/apps/pwa/out/_next/static/chunks/{9189505a.980427ac048c8c60.js → 2fe2c302.41b517f88d6fe502.js} +1 -1
  35. package/apps/pwa/out/_next/static/chunks/{9992.07ce73c10bd5e6a1.js → 3097.864e92bdaa2f4d15.js} +2 -2
  36. package/apps/pwa/out/_next/static/chunks/3136-d6870ba63300a93e.js +1 -0
  37. package/apps/pwa/out/_next/static/chunks/3173-0289113d434e83b7.js +1 -0
  38. package/apps/pwa/out/_next/static/chunks/3230-49298c3b73ef2268.js +1 -0
  39. package/apps/pwa/out/_next/static/chunks/325-dd9208a1a0ab7ce4.js +1 -0
  40. package/apps/pwa/out/_next/static/chunks/3283.528f430dd043fb4e.js +74 -0
  41. package/apps/pwa/out/_next/static/chunks/3295.cc8cb13b8f0dae1a.js +1 -0
  42. package/apps/pwa/out/_next/static/chunks/3688-86e3b88abf18cb3b.js +1 -0
  43. package/apps/pwa/out/_next/static/chunks/3804-7220467a5473a8df.js +1 -0
  44. package/apps/pwa/out/_next/static/chunks/3808.3e1e247ce7bdf889.js +1 -0
  45. package/apps/pwa/out/_next/static/chunks/{b84cad00.594027ebe0531fe2.js → 385e4574.e9886ab32759eda3.js} +3 -3
  46. package/apps/pwa/out/_next/static/chunks/3927.b5473ad109da44c5.js +1 -0
  47. package/apps/pwa/out/_next/static/chunks/3934-98ea94832e194796.js +1 -0
  48. package/apps/pwa/out/_next/static/chunks/4133.2056bb4d78f621af.js +1 -0
  49. package/apps/pwa/out/_next/static/chunks/{8086.1ab9103c41be884f.js → 4156.ba4de4a3664f04b4.js} +1 -1
  50. package/apps/pwa/out/_next/static/chunks/4297-239ca82f293faab0.js +1 -0
  51. package/apps/pwa/out/_next/static/chunks/4320-dcc5a7734126f4c9.js +1 -0
  52. package/apps/pwa/out/_next/static/chunks/4434.94b4c552a2d91e69.js +148 -0
  53. package/apps/pwa/out/_next/static/chunks/{1281.d81877e35b9068f4.js → 4527.a69f2894d1bc9f4a.js} +1 -1
  54. package/apps/pwa/out/_next/static/chunks/4579.03e4092f73950965.js +226 -0
  55. package/apps/pwa/out/_next/static/chunks/{8357.1aaa713b052a78b1.js → 4667.97e31aa38c95c475.js} +4 -4
  56. package/apps/pwa/out/_next/static/chunks/{5436.fdf6fa8ae3e9588d.js → 4702.4a4adc1f16d7c93b.js} +1 -1
  57. package/apps/pwa/out/_next/static/chunks/4815.481501c57b3568d9.js +1 -0
  58. package/apps/pwa/out/_next/static/chunks/487-d16e698ef14662d9.js +1 -0
  59. package/apps/pwa/out/_next/static/chunks/4888-7a38bf522c9cc6fe.js +1 -0
  60. package/apps/pwa/out/_next/static/chunks/5034-30e429d6bb086881.js +1 -0
  61. package/apps/pwa/out/_next/static/chunks/5040-35c494e60dadd97d.js +1 -0
  62. package/apps/pwa/out/_next/static/chunks/50c6ab1e.81a96e419350909d.js +1 -0
  63. package/apps/pwa/out/_next/static/chunks/5154.4b6a836179356f30.js +94 -0
  64. package/apps/pwa/out/_next/static/chunks/{4769.9fd582071301f382.js → 5159.115f1c2ca471386c.js} +1 -1
  65. package/apps/pwa/out/_next/static/chunks/5228-a8200df486278f2d.js +1 -0
  66. package/apps/pwa/out/_next/static/chunks/530.d26346e18089640a.js +115 -0
  67. package/apps/pwa/out/_next/static/chunks/5379.97af106d09566f69.js +8 -0
  68. package/apps/pwa/out/_next/static/chunks/{d8de0de2-dd0f4ac8e5ab1832.js → 53aeb4ee-51c92f8d683f5220.js} +1 -1
  69. package/apps/pwa/out/_next/static/chunks/{6257.c0037b8949239f5e.js → 5471.1e611302ed3a7c53.js} +2 -2
  70. package/apps/pwa/out/_next/static/chunks/5479-b6372e762719f92f.js +1 -0
  71. package/apps/pwa/out/_next/static/chunks/5534-699c5cbcbc96c5d7.js +1 -0
  72. package/apps/pwa/out/_next/static/chunks/{2566.beaffc3a5e1fcd2e.js → 5574.f35accf4f132b29d.js} +1 -1
  73. package/apps/pwa/out/_next/static/chunks/5701.9c4e8f250312eeee.js +24 -0
  74. package/apps/pwa/out/_next/static/chunks/{2066.a77257c8c350770a.js → 5744.b9415e18ad623100.js} +1 -1
  75. package/apps/pwa/out/_next/static/chunks/5892.2526d962339662d8.js +1 -0
  76. package/apps/pwa/out/_next/static/chunks/{4351.0f37a6db2b34d50b.js → 5937.c2df9e3447e1f667.js} +1 -1
  77. package/apps/pwa/out/_next/static/chunks/5941.8210cc93c9202c0a.js +286 -0
  78. package/apps/pwa/out/_next/static/chunks/{6051-0ae955eedb10adb9.js → 5947-135e26537d80a6b9.js} +3 -3
  79. package/apps/pwa/out/_next/static/chunks/{3746-f80a78f220bf37b5.js → 5964-7e21164a8f2cf0ce.js} +1 -1
  80. package/apps/pwa/out/_next/static/chunks/5975.4004f820ae3cecd5.js +1 -0
  81. package/apps/pwa/out/_next/static/chunks/6142-7ccd48795d7abd55.js +1 -0
  82. package/apps/pwa/out/_next/static/chunks/6160.bf9177b8c1bfb243.js +1 -0
  83. package/apps/pwa/out/_next/static/chunks/6398.71ba0690c8027555.js +27 -0
  84. package/apps/pwa/out/_next/static/chunks/6492.2bd5c10edc1a064e.js +1 -0
  85. package/apps/pwa/out/_next/static/chunks/6552.a3840aa7da35ad68.js +62 -0
  86. package/apps/pwa/out/_next/static/chunks/6736.1e36d3ac5fa5e41d.js +24 -0
  87. package/apps/pwa/out/_next/static/chunks/{2047.8f23e210995d4548.js → 6874.d5cf7eb8edb2cabe.js} +2 -2
  88. package/apps/pwa/out/_next/static/chunks/6900.3ccbe069bdd4556a.js +1 -0
  89. package/apps/pwa/out/_next/static/chunks/71327eb4.add50b365f94bf3a.js +122 -0
  90. package/apps/pwa/out/_next/static/chunks/7136.deca3e3a2ddaa374.js +1 -0
  91. package/apps/pwa/out/_next/static/chunks/7139-ee9f8ed2677a40b3.js +1 -0
  92. package/apps/pwa/out/_next/static/chunks/7191.fdc955f7d96064a4.js +1 -0
  93. package/apps/pwa/out/_next/static/chunks/7423-e0aa5d9e2962120e.js +1 -0
  94. package/apps/pwa/out/_next/static/chunks/7453.afc1ea7e05d56a8c.js +1 -0
  95. package/apps/pwa/out/_next/static/chunks/7503-5e6a3d7fe67e4a0c.js +1 -0
  96. package/apps/pwa/out/_next/static/chunks/7761-476fd7bf768abd34.js +1 -0
  97. package/apps/pwa/out/_next/static/chunks/7975.eafb12097a0a9e62.js +1 -0
  98. package/apps/pwa/out/_next/static/chunks/{8272-025653884f9645d2.js → 8050-9b364bdef8f71927.js} +1 -1
  99. package/apps/pwa/out/_next/static/chunks/8152.64e253c35cccfaae.js +1 -0
  100. package/apps/pwa/out/_next/static/chunks/8190.620f0231b3924bcb.js +1 -0
  101. package/apps/pwa/out/_next/static/chunks/83184dcd-0ee6247ff41eb3f2.js +1 -0
  102. package/apps/pwa/out/_next/static/chunks/8448.45b6b1f1a99eeb35.js +104 -0
  103. package/apps/pwa/out/_next/static/chunks/{2281-b8cede695c6c650e.js → 8464-e24f10451b658aac.js} +1 -1
  104. package/apps/pwa/out/_next/static/chunks/8477.e4c944bb3aa5d2f3.js +1 -0
  105. package/apps/pwa/out/_next/static/chunks/8710.ca385257d5ca422e.js +1 -0
  106. package/apps/pwa/out/_next/static/chunks/8830.627ccf294ec2465c.js +1 -0
  107. package/apps/pwa/out/_next/static/chunks/{5622.94893f5aea7185d0.js → 8880.64c445592f04acaf.js} +1 -1
  108. package/apps/pwa/out/_next/static/chunks/{1452.162bb2d9d699e82a.js → 8981.c706964c8ba27aff.js} +1 -1
  109. package/apps/pwa/out/_next/static/chunks/{470.51a72a2348306455.js → 9048.212083de42d25be3.js} +2 -2
  110. package/apps/pwa/out/_next/static/chunks/9053.bd0fffaff8d3f836.js +1 -0
  111. package/apps/pwa/out/_next/static/chunks/9161-c66e723d7ec9d682.js +1 -0
  112. package/apps/pwa/out/_next/static/chunks/9185.1ecdf9b65c0bb684.js +1 -0
  113. package/apps/pwa/out/_next/static/chunks/9356.fccd5f58086b4ff5.js +1 -0
  114. package/apps/pwa/out/_next/static/chunks/9446.dc0406109371d329.js +1 -0
  115. package/apps/pwa/out/_next/static/chunks/9506.dcf25d467a42627e.js +1 -0
  116. package/apps/pwa/out/_next/static/chunks/{2177.df8547f9d7215c4e.js → 9507.7026657a2f47eb64.js} +16 -16
  117. package/apps/pwa/out/_next/static/chunks/9541.eb8e2f8480c7feca.js +93 -0
  118. package/apps/pwa/out/_next/static/chunks/9577.ed7582186efa5482.js +1 -0
  119. package/apps/pwa/out/_next/static/chunks/{7515.1ad6efe157fa4448.js → 9579.4a8169600fff2058.js} +1 -1
  120. package/apps/pwa/out/_next/static/chunks/9642-ff2e039eb62e3b92.js +1 -0
  121. package/apps/pwa/out/_next/static/chunks/9659-8f2323348113ad80.js +1 -0
  122. package/apps/pwa/out/_next/static/chunks/9724.4c5623af2db43153.js +34 -0
  123. package/apps/pwa/out/_next/static/chunks/{2499.02fbfd18126c10c0.js → 9834.63ab2bbc3153172e.js} +1 -1
  124. package/apps/pwa/out/_next/static/chunks/9869.81a1e24ca682d5a0.js +1 -0
  125. package/apps/pwa/out/_next/static/chunks/{409c787b.e48c5bec8ec10456.js → a0a01613.6d1cca322238d7fe.js} +1 -1
  126. package/apps/pwa/out/_next/static/chunks/{6cc1d1d6.9a98dd4622f1afc6.js → addc2b32.8c4ff8f0aefe987d.js} +1 -1
  127. package/apps/pwa/out/_next/static/chunks/app/_not-found/page-8d9d76ea322d855c.js +1 -0
  128. package/apps/pwa/out/_next/static/chunks/app/approvals/page-ed2c4e59f9f1fe21.js +1 -0
  129. package/apps/pwa/out/_next/static/chunks/app/autopilot/page-2dc99e03c5d76ca0.js +1 -0
  130. package/apps/pwa/out/_next/static/chunks/app/board/page-b5a3a788330e920f.js +1 -0
  131. package/apps/pwa/out/_next/static/chunks/app/botlab/{page-ba957ff875a026a0.js → page-14949db884bfa672.js} +1 -1
  132. package/apps/pwa/out/_next/static/chunks/app/bots/page-ea76c85b36388a97.js +1 -0
  133. package/apps/pwa/out/_next/static/chunks/app/ceo/page-01716d20af62d325.js +1 -0
  134. package/apps/pwa/out/_next/static/chunks/app/chat/page-62baf6881a64b1e9.js +1 -0
  135. package/apps/pwa/out/_next/static/chunks/app/consult/page-f89ba590c2af8afa.js +1 -0
  136. package/apps/pwa/out/_next/static/chunks/app/control/page-22f8b0f78d9637e5.js +1 -0
  137. package/apps/pwa/out/_next/static/chunks/app/decisions/page-817f9d7e6820be80.js +1 -0
  138. package/apps/pwa/out/_next/static/chunks/app/design-check/page-ffb9bc0d2650249a.js +1 -0
  139. package/apps/pwa/out/_next/static/chunks/app/editor/page-f6d0e64873c0f629.js +1 -0
  140. package/apps/pwa/out/_next/static/chunks/app/exec/page-8bfa0d4ba23a209d.js +1 -0
  141. package/apps/pwa/out/_next/static/chunks/app/field/page-f5060462249e32c7.js +1 -0
  142. package/apps/pwa/out/_next/static/chunks/app/healthz/route-8d9d76ea322d855c.js +1 -0
  143. package/apps/pwa/out/_next/static/chunks/app/inside/page-b2049f8b1ef79117.js +1 -0
  144. package/apps/pwa/out/_next/static/chunks/app/intake/page-1446c5fa93907f11.js +1 -0
  145. package/apps/pwa/out/_next/static/chunks/app/layout-b48a7a07c5204156.js +1 -0
  146. package/apps/pwa/out/_next/static/chunks/app/live/page-e974b8c4ca47614c.js +1 -0
  147. package/apps/pwa/out/_next/static/chunks/app/live-run/page-8a919b869bd28594.js +1 -0
  148. package/apps/pwa/out/_next/static/chunks/app/loops/page-d31b8de6bfcd72ed.js +1 -0
  149. package/apps/pwa/out/_next/static/chunks/app/market/page-64765f817909db29.js +1 -0
  150. package/apps/pwa/out/_next/static/chunks/app/missions/[id]/page-d128c8569a36ee9b.js +1 -0
  151. package/apps/pwa/out/_next/static/chunks/app/morning/page-b2679d357e9b9270.js +1 -0
  152. package/apps/pwa/out/_next/static/chunks/app/not-found-6fabec98a9e7b269.js +1 -0
  153. package/apps/pwa/out/_next/static/chunks/app/observatory/page-048f30149dcf1349.js +1 -0
  154. package/apps/pwa/out/_next/static/chunks/app/ops/checklist/page-9113181d6b5a2725.js +1 -0
  155. package/apps/pwa/out/_next/static/chunks/app/ops/release/page-40f9e19149024298.js +1 -0
  156. package/apps/pwa/out/_next/static/chunks/app/ops/seats/page-1e7a755a13227611.js +1 -0
  157. package/apps/pwa/out/_next/static/chunks/app/outputs/page-3c8f8b67a203cf07.js +1 -0
  158. package/apps/pwa/out/_next/static/chunks/app/page-18032f5437215062.js +1 -0
  159. package/apps/pwa/out/_next/static/chunks/app/reflection/page-da3b739192fd0ee3.js +1 -0
  160. package/apps/pwa/out/_next/static/chunks/app/scheduler/page-d332545571bd6fd1.js +1 -0
  161. package/apps/pwa/out/_next/static/chunks/app/sessions/page-5237aa5b3f3b8ec5.js +1 -0
  162. package/apps/pwa/out/_next/static/chunks/app/settings/devices/page-a142dfb0331a05f5.js +1 -0
  163. package/apps/pwa/out/_next/static/chunks/app/settings/page-d16e56c3989c147e.js +1 -0
  164. package/apps/pwa/out/_next/static/chunks/app/setup/done/page-6b6593600869e2cd.js +1 -0
  165. package/apps/pwa/out/_next/static/chunks/app/setup/layout-8d9d76ea322d855c.js +1 -0
  166. package/apps/pwa/out/_next/static/chunks/app/setup/page-29e8b8a8396b55cb.js +1 -0
  167. package/apps/pwa/out/_next/static/chunks/app/share/page-b3414d856a1a7e2f.js +1 -0
  168. package/apps/pwa/out/_next/static/chunks/app/showroom/page-c3affa52b7ce961b.js +1 -0
  169. package/apps/pwa/out/_next/static/chunks/app/tasks/page-f21dddf9f95b6fab.js +1 -0
  170. package/apps/pwa/out/_next/static/chunks/app/term/page-f5a30a24745bf088.js +1 -0
  171. package/apps/pwa/out/_next/static/chunks/app/today/page-8c8569a09b4d4e34.js +1 -0
  172. package/apps/pwa/out/_next/static/chunks/app/trace/page-2ce32722c0243483.js +1 -0
  173. package/apps/pwa/out/_next/static/chunks/app/vault/page-4767b0d9c0a98c6c.js +1 -0
  174. package/apps/pwa/out/_next/static/chunks/app/workflows/chat-ui/page-116ee1339c387a75.js +1 -0
  175. package/apps/pwa/out/_next/static/chunks/app/workflows/page-35e8c50ca4ef7ffc.js +1 -0
  176. package/apps/pwa/out/_next/static/chunks/app/workspace/page-52e17113356bb891.js +1 -0
  177. package/apps/pwa/out/_next/static/chunks/app/worktrees/page-7458ae05ed2ac1a0.js +1 -0
  178. package/apps/pwa/out/_next/static/chunks/{c696986b.5dc8bb1143af16d1.js → b2271e54.c1de3347976e90b0.js} +1 -1
  179. package/apps/pwa/out/_next/static/chunks/{ca3702f8.2913182e73889fa2.js → c0c1a699.0ba79f97005965d4.js} +1 -1
  180. package/apps/pwa/out/_next/static/chunks/framework-ad6c9dd524ad6ef8.js +1 -0
  181. package/apps/pwa/out/_next/static/chunks/main-app-2ddd1f2b44d6aa59.js +1 -0
  182. package/apps/pwa/out/_next/static/chunks/main-e3d82bdc358d20c5.js +1 -0
  183. package/apps/pwa/out/_next/static/chunks/pages/_app-71d5aa3896e1655f.js +1 -0
  184. package/apps/pwa/out/_next/static/chunks/pages/_error-03ffc54e00438546.js +1 -0
  185. package/apps/pwa/out/_next/static/chunks/webpack-56bb89af5a611d0b.js +1 -0
  186. package/apps/pwa/out/approvals/index.html +1 -1
  187. package/apps/pwa/out/approvals/index.txt +22 -22
  188. package/apps/pwa/out/autopilot/index.html +1 -1
  189. package/apps/pwa/out/autopilot/index.txt +22 -22
  190. package/apps/pwa/out/board/index.html +1 -1
  191. package/apps/pwa/out/board/index.txt +22 -22
  192. package/apps/pwa/out/botlab/index.html +1 -1
  193. package/apps/pwa/out/botlab/index.txt +21 -21
  194. package/apps/pwa/out/bots/index.html +1 -1
  195. package/apps/pwa/out/bots/index.txt +21 -21
  196. package/apps/pwa/out/ceo/index.html +1 -1
  197. package/apps/pwa/out/ceo/index.txt +22 -22
  198. package/apps/pwa/out/chat/index.html +1 -1
  199. package/apps/pwa/out/chat/index.txt +21 -21
  200. package/apps/pwa/out/consult/index.html +1 -1
  201. package/apps/pwa/out/consult/index.txt +22 -22
  202. package/apps/pwa/out/control/index.html +1 -1
  203. package/apps/pwa/out/control/index.txt +22 -22
  204. package/apps/pwa/out/decisions/index.html +1 -1
  205. package/apps/pwa/out/decisions/index.txt +21 -21
  206. package/apps/pwa/out/design-check/index.html +1 -1
  207. package/apps/pwa/out/design-check/index.txt +22 -22
  208. package/apps/pwa/out/editor/index.html +1 -1
  209. package/apps/pwa/out/editor/index.txt +22 -22
  210. package/apps/pwa/out/exec/index.html +1 -1
  211. package/apps/pwa/out/exec/index.txt +22 -22
  212. package/apps/pwa/out/field/index.html +1 -1
  213. package/apps/pwa/out/field/index.txt +22 -22
  214. package/apps/pwa/out/healthz +1 -1
  215. package/apps/pwa/out/index.html +1 -1
  216. package/apps/pwa/out/index.txt +21 -21
  217. package/apps/pwa/out/inside/index.html +1 -1
  218. package/apps/pwa/out/inside/index.txt +21 -21
  219. package/apps/pwa/out/intake/index.html +1 -1
  220. package/apps/pwa/out/intake/index.txt +22 -22
  221. package/apps/pwa/out/live/index.html +1 -1
  222. package/apps/pwa/out/live/index.txt +22 -22
  223. package/apps/pwa/out/live-run/index.html +1 -1
  224. package/apps/pwa/out/live-run/index.txt +22 -22
  225. package/apps/pwa/out/loops/index.html +1 -1
  226. package/apps/pwa/out/loops/index.txt +21 -21
  227. package/apps/pwa/out/market/index.html +1 -1
  228. package/apps/pwa/out/market/index.txt +21 -21
  229. package/apps/pwa/out/missions/placeholder/index.html +1 -1
  230. package/apps/pwa/out/missions/placeholder/index.txt +21 -21
  231. package/apps/pwa/out/morning/index.html +1 -1
  232. package/apps/pwa/out/morning/index.txt +22 -22
  233. package/apps/pwa/out/observatory/index.html +1 -1
  234. package/apps/pwa/out/observatory/index.txt +22 -22
  235. package/apps/pwa/out/ops/checklist/index.html +1 -1
  236. package/apps/pwa/out/ops/checklist/index.txt +21 -21
  237. package/apps/pwa/out/ops/release/index.html +1 -1
  238. package/apps/pwa/out/ops/release/index.txt +21 -21
  239. package/apps/pwa/out/ops/seats/index.html +1 -1
  240. package/apps/pwa/out/ops/seats/index.txt +21 -21
  241. package/apps/pwa/out/outputs/index.html +1 -1
  242. package/apps/pwa/out/outputs/index.txt +21 -21
  243. package/apps/pwa/out/reflection/index.html +1 -1
  244. package/apps/pwa/out/reflection/index.txt +22 -22
  245. package/apps/pwa/out/scheduler/index.html +1 -1
  246. package/apps/pwa/out/scheduler/index.txt +22 -22
  247. package/apps/pwa/out/sessions/index.html +1 -1
  248. package/apps/pwa/out/sessions/index.txt +21 -21
  249. package/apps/pwa/out/settings/devices/index.html +1 -1
  250. package/apps/pwa/out/settings/devices/index.txt +22 -22
  251. package/apps/pwa/out/settings/index.html +1 -1
  252. package/apps/pwa/out/settings/index.txt +22 -22
  253. package/apps/pwa/out/setup/done/index.html +1 -1
  254. package/apps/pwa/out/setup/done/index.txt +22 -22
  255. package/apps/pwa/out/setup/index.html +1 -1
  256. package/apps/pwa/out/setup/index.txt +22 -22
  257. package/apps/pwa/out/share/index.html +1 -1
  258. package/apps/pwa/out/share/index.txt +22 -22
  259. package/apps/pwa/out/showroom/index.html +1 -1
  260. package/apps/pwa/out/showroom/index.txt +21 -21
  261. package/apps/pwa/out/tasks/index.html +1 -1
  262. package/apps/pwa/out/tasks/index.txt +22 -22
  263. package/apps/pwa/out/term/index.html +1 -1
  264. package/apps/pwa/out/term/index.txt +22 -22
  265. package/apps/pwa/out/today/index.html +1 -1
  266. package/apps/pwa/out/today/index.txt +22 -22
  267. package/apps/pwa/out/trace/index.html +1 -1
  268. package/apps/pwa/out/trace/index.txt +22 -22
  269. package/apps/pwa/out/vault/index.html +1 -1
  270. package/apps/pwa/out/vault/index.txt +22 -22
  271. package/apps/pwa/out/workflows/chat-ui/index.html +1 -1
  272. package/apps/pwa/out/workflows/chat-ui/index.txt +22 -22
  273. package/apps/pwa/out/workflows/index.html +1 -1
  274. package/apps/pwa/out/workflows/index.txt +22 -22
  275. package/apps/pwa/out/workspace/index.html +1 -1
  276. package/apps/pwa/out/workspace/index.txt +22 -22
  277. package/apps/pwa/out/worktrees/index.html +1 -1
  278. package/apps/pwa/out/worktrees/index.txt +22 -22
  279. package/bin/elanous.mjs +6 -1
  280. package/catalog/models/openai/gpt-6.1-sol.yaml +16 -0
  281. package/catalog/models/openai/gpt-6.1-terra.yaml +16 -0
  282. package/graphs/demo/persona-teacher/lesson-pack.yaml +16 -0
  283. package/graphs/demo/persona-teacher/recipes.yaml +17 -0
  284. package/graphs/demo/persona-teacher/weekly-lesson.yaml +36 -0
  285. package/graphs/overlays/stop-heal-ladder.yaml +23 -2
  286. package/graphs/release/release-loop.yaml +3 -1
  287. package/graphs/units/gate/gate.yaml +20 -0
  288. package/graphs/units/git/git.yaml +26 -0
  289. package/graphs/units/implement/implement.yaml +19 -0
  290. package/graphs/units/landing/landing.yaml +18 -0
  291. package/graphs/units/review/review.yaml +20 -0
  292. package/graphs/units/verbs/recipes.yaml +3 -0
  293. package/graphs/units/verbs/research.yaml +20 -0
  294. package/graphs/work/research-report.yaml +11 -1
  295. package/package.json +1 -1
  296. package/scripts/disk-steward.ts +46 -0
  297. package/scripts/fleet/node-setup.sh +50 -0
  298. package/scripts/graph-units/verbs/research.ts +55 -0
  299. package/scripts/llm-cost-ledger.ts +179 -8
  300. package/scripts/measure-nl-routing-corpus.ts +10 -2
  301. package/scripts/persona-teacher/weekly-lesson-node.ts +172 -0
  302. package/scripts/public-copy-lint.ts +163 -19
  303. package/scripts/ratchets/train-side-invariants.sh +0 -1
  304. package/scripts/release-loop/gate-autoheal.ts +117 -0
  305. package/scripts/release-loop/gate-baseline-receipt.ts +8 -1
  306. package/scripts/release-loop/gate-diff.ts +22 -3
  307. package/scripts/release-loop/gate-node.ts +205 -17
  308. package/scripts/release-loop/gate-shard-load-flaky.ts +256 -0
  309. package/scripts/release-loop/gate-triage-node.ts +70 -10
  310. package/scripts/release-loop/resume-release.ts +247 -15
  311. package/scripts/release-loop/traffic-node.ts +6 -3
  312. package/scripts/release-loop/unattended-release.ts +4 -2
  313. package/scripts/shadow-authoring-probe.ts +20 -0
  314. package/scripts/ux-sim.ts +19 -2
  315. package/src/acp/core-turn-bridge.ts +86 -4
  316. package/src/agent-substrate/self-review-cli.ts +91 -29
  317. package/src/auto-research/research-turn.ts +10 -1
  318. package/src/autopilot/discovery/wiki-claim-proposer.ts +22 -1
  319. package/src/boot/daemon-tools/self-implement.ts +46 -9
  320. package/src/budget/shadow-arms.ts +52 -0
  321. package/src/chat/pickers/state.ts +7 -1
  322. package/src/cli/log-event-names.ts +5 -0
  323. package/src/cli/mcp-login.ts +8 -18
  324. package/src/cli/msg-cli.ts +57 -1
  325. package/src/cli/pr-land-heavy-remote.ts +15 -9
  326. package/src/cli/release-cli.ts +27 -1
  327. package/src/cli/sim-cli.ts +7 -1
  328. package/src/cli/tasks-cli.ts +5 -4
  329. package/src/codex/models.ts +30 -15
  330. package/src/core-turn/run-core-turn.ts +3 -0
  331. package/src/core-turn/run-goal-loop.ts +88 -2
  332. package/src/dashboard/acp-boot.ts +72 -3
  333. package/src/dashboard/index.ts +6 -0
  334. package/src/dashboard/turn-preamble.ts +12 -1
  335. package/src/disk-steward/judge.ts +73 -0
  336. package/src/disk-steward/ledger.ts +122 -0
  337. package/src/disk-steward/steward.ts +373 -0
  338. package/src/domains/guardian-tick.ts +191 -2
  339. package/src/graph-runner/graph-cli.ts +21 -0
  340. package/src/graph-runner/in-process-registry.ts +37 -0
  341. package/src/graph-runner/runner.ts +33 -3
  342. package/src/grounding/ref-index.ts +19 -0
  343. package/src/grounding/sources-cli.ts +9 -1
  344. package/src/harness/harness-cli-command.ts +267 -14
  345. package/src/harness/harness-incidents.ts +312 -7
  346. package/src/harness/harness-space.ts +15 -1
  347. package/src/harness/progress-worker-entry.ts +59 -0
  348. package/src/harness/progress-worker-runtime.ts +11 -0
  349. package/src/index.ts +18 -2
  350. package/src/instance/dev-project.ts +25 -0
  351. package/src/intelligence-map/model-alias.ts +6 -5
  352. package/src/intelligence-map/model-catalog.ts +59 -2
  353. package/src/llm/model-defaults.ts +4 -4
  354. package/src/llm.ts +42 -11
  355. package/src/loops/orchestrator/tick.ts +48 -0
  356. package/src/mcp/mcp-oauth.ts +3 -1
  357. package/src/model-tier/llm-tier-map.ts +9 -9
  358. package/src/model-tier/turn-tier.ts +1 -1
  359. package/src/msg/msg-mirror-github.ts +80 -0
  360. package/src/msg/msg-mirror-policy.ts +61 -0
  361. package/src/msg/msg-mirror-runner.ts +219 -0
  362. package/src/msg/msg-mirror-state.ts +33 -0
  363. package/src/msg/msg-store.ts +11 -0
  364. package/src/output-truncation.ts +41 -12
  365. package/src/project/project-store.ts +48 -1
  366. package/src/release-loop/gate-host-reservation.ts +144 -0
  367. package/src/release-loop/release-schedule.ts +90 -1
  368. package/src/research/bloom-exemplars.ts +135 -0
  369. package/src/self-dev/ask-launch-flow.ts +39 -25
  370. package/src/self-dev/dev-cli.ts +17 -17
  371. package/src/self-dev/graph-front-nodes.ts +23 -0
  372. package/src/self-dev/launch-preflight.ts +9 -4
  373. package/src/self-dev/orchestrate.ts +15 -0
  374. package/src/self-dev/run-supervisor.ts +185 -3
  375. package/src/self-dev/run-types.ts +3 -0
  376. package/src/self-implement/gate-artifacts.ts +13 -0
  377. package/src/self-implement/gate-cli.ts +54 -24
  378. package/src/self-implement/gate-remote.ts +23 -5
  379. package/src/self-implement/goal-author-clarification.ts +31 -12
  380. package/src/self-implement/goal-author.ts +77 -5
  381. package/src/self-implement/graph-stage-units.ts +172 -0
  382. package/src/self-implement/graph-templates.ts +162 -1
  383. package/src/self-implement/graph-variant.ts +37 -4
  384. package/src/self-implement/host-regate.ts +4 -4
  385. package/src/self-implement/knowhow-pack.ts +38 -0
  386. package/src/self-implement/orchestrator.ts +235 -21
  387. package/src/self-implement/run-ledger.ts +64 -6
  388. package/src/self-implement/run-stop.ts +21 -2
  389. package/src/self-implement/running-runs.ts +35 -12
  390. package/src/self-implement/self-implement-cli.ts +36 -4
  391. package/src/self-implement/stop-autoheal-operational.ts +43 -0
  392. package/src/self-implement/stop-autoheal.ts +15 -6
  393. package/src/session/chat.ts +31 -54
  394. package/src/session/request-size-guard.ts +123 -0
  395. package/src/sidetab-core/model.ts +136 -0
  396. package/src/task-agent/parent-host.ts +14 -1
  397. package/src/task-agent/task-hand.ts +4 -1
  398. package/src/task-orchestrator/surfaces/pod-failure-reason.ts +43 -0
  399. package/src/task-orchestrator/surfaces/pod-ledger-events.ts +29 -4
  400. package/src/task-orchestrator/surfaces/self-implement-pod.ts +116 -16
  401. package/src/task-orchestrator/surfaces/self-implement.ts +18 -0
  402. package/src/tui/entry.ts +10 -3
  403. package/src/tui/sidetab/list.ts +45 -0
  404. package/src/tui/sidetab/nl-tool.ts +2 -136
  405. package/src/tui/sidetab/peek.ts +52 -0
  406. package/src/tui-client/dashboard-session.ts +3 -0
  407. package/src/user-config.ts +11 -5
  408. package/src/ux-sim/fault-needs-human-reason-repair.ts +107 -0
  409. package/src/ux-sim/fault-pod-child-result.ts +42 -0
  410. package/src/ux-sim/release-sim-rig.ts +262 -0
  411. package/src/ux-sim/seminar-rehearsal.ts +109 -0
  412. package/src/ux-sim/subagent-tools-device.ts +2 -2
  413. package/src/version/packed-revision.json +1 -1
  414. package/apps/pwa/out/_next/static/chunks/1060.014f1f01a17aec26.js +0 -115
  415. package/apps/pwa/out/_next/static/chunks/1350.59f40e39e02d91b1.js +0 -1
  416. package/apps/pwa/out/_next/static/chunks/1415.79821ec7ae99acdb.js +0 -1
  417. package/apps/pwa/out/_next/static/chunks/147.f92f63bbc5e85fa5.js +0 -286
  418. package/apps/pwa/out/_next/static/chunks/1537-6bb97b5214928ea9.js +0 -1
  419. package/apps/pwa/out/_next/static/chunks/1661.fb425a1d8a065b72.js +0 -149
  420. package/apps/pwa/out/_next/static/chunks/1671-1c22b40b50b208f2.js +0 -1
  421. package/apps/pwa/out/_next/static/chunks/1758.0204d3f48783c49d.js +0 -90
  422. package/apps/pwa/out/_next/static/chunks/1806.027bf78b6a94d340.js +0 -104
  423. package/apps/pwa/out/_next/static/chunks/2061-7f2bbc53ae96c88b.js +0 -1
  424. package/apps/pwa/out/_next/static/chunks/2096-a938496bc996dcbd.js +0 -1
  425. package/apps/pwa/out/_next/static/chunks/2200-9a453b8f99687d49.js +0 -1
  426. package/apps/pwa/out/_next/static/chunks/2522.f2766b76d22c8bdf.js +0 -34
  427. package/apps/pwa/out/_next/static/chunks/261.0d471e8aded799f3.js +0 -226
  428. package/apps/pwa/out/_next/static/chunks/2615.3c9738153de3ef3f.js +0 -1
  429. package/apps/pwa/out/_next/static/chunks/2727.e703d99ac414916d.js +0 -1
  430. package/apps/pwa/out/_next/static/chunks/2752.7904b8df0254d0ae.js +0 -27
  431. package/apps/pwa/out/_next/static/chunks/2762-5051a862dfa40e99.js +0 -1
  432. package/apps/pwa/out/_next/static/chunks/2767-31784bfedf8e245d.js +0 -1
  433. package/apps/pwa/out/_next/static/chunks/2774-719820e3f5b2a3eb.js +0 -1
  434. package/apps/pwa/out/_next/static/chunks/2812-f016aa0dda149287.js +0 -1
  435. package/apps/pwa/out/_next/static/chunks/311-32dcac79970985e8.js +0 -1
  436. package/apps/pwa/out/_next/static/chunks/3175-f93f7495cd28253c.js +0 -1
  437. package/apps/pwa/out/_next/static/chunks/3184.8da993f5502d2140.js +0 -1
  438. package/apps/pwa/out/_next/static/chunks/3231-d7c981db0ff8bdcc.js +0 -1
  439. package/apps/pwa/out/_next/static/chunks/3250.151309c5176d6b4b.js +0 -1
  440. package/apps/pwa/out/_next/static/chunks/3330.7443183b7e6fdbdf.js +0 -1
  441. package/apps/pwa/out/_next/static/chunks/3517.a5aa1797a9dbf2ee.js +0 -1
  442. package/apps/pwa/out/_next/static/chunks/3567-45f676877ed9e8a5.js +0 -1
  443. package/apps/pwa/out/_next/static/chunks/3819.8a1de79b2e8c7298.js +0 -24
  444. package/apps/pwa/out/_next/static/chunks/39.9b37b0be4c128a83.js +0 -77
  445. package/apps/pwa/out/_next/static/chunks/3b355b3d.6f73c98bf6f9c749.js +0 -122
  446. package/apps/pwa/out/_next/static/chunks/4023.a19045970a9ce16a.js +0 -36
  447. package/apps/pwa/out/_next/static/chunks/413-24c8284bda08241d.js +0 -1
  448. package/apps/pwa/out/_next/static/chunks/4135.e45d6ebc29e20647.js +0 -1
  449. package/apps/pwa/out/_next/static/chunks/4283.65502f5d0e6ff6c0.js +0 -287
  450. package/apps/pwa/out/_next/static/chunks/4305-4e28fa92a7b34a5b.js +0 -1
  451. package/apps/pwa/out/_next/static/chunks/4335-50efa61fd7613142.js +0 -1
  452. package/apps/pwa/out/_next/static/chunks/4720.ecbd1693fa151068.js +0 -1
  453. package/apps/pwa/out/_next/static/chunks/483.725e4a61be922788.js +0 -1
  454. package/apps/pwa/out/_next/static/chunks/4969-4b209d7307410c00.js +0 -1
  455. package/apps/pwa/out/_next/static/chunks/5068-c7f53862f83c0917.js +0 -1
  456. package/apps/pwa/out/_next/static/chunks/5315.bc96711c24dfefe2.js +0 -74
  457. package/apps/pwa/out/_next/static/chunks/5542.efbf14f16baed4dd.js +0 -1
  458. package/apps/pwa/out/_next/static/chunks/5644.8f401a25601d05fc.js +0 -1
  459. package/apps/pwa/out/_next/static/chunks/5658.35f70eb9871a54bf.js +0 -1
  460. package/apps/pwa/out/_next/static/chunks/5721.7bdc0e904c76ab51.js +0 -8
  461. package/apps/pwa/out/_next/static/chunks/5790-eef0ca20884a6bdf.js +0 -1
  462. package/apps/pwa/out/_next/static/chunks/5802.ef0d8598ca68fe84.js +0 -62
  463. package/apps/pwa/out/_next/static/chunks/5890.fb974729788dcb71.js +0 -1
  464. package/apps/pwa/out/_next/static/chunks/5924.5ef25cddd36d5dbf.js +0 -1
  465. package/apps/pwa/out/_next/static/chunks/5979-e59c099ebf8d1f35.js +0 -1
  466. package/apps/pwa/out/_next/static/chunks/6020.714cfeada2315e2e.js +0 -94
  467. package/apps/pwa/out/_next/static/chunks/6027-dfe0349d8c50f698.js +0 -1
  468. package/apps/pwa/out/_next/static/chunks/6178.bc4730c86cf74536.js +0 -1
  469. package/apps/pwa/out/_next/static/chunks/6273.d808b0dcb3c2b155.js +0 -1
  470. package/apps/pwa/out/_next/static/chunks/6292.6ef1df64fa6a4c8a.js +0 -1
  471. package/apps/pwa/out/_next/static/chunks/647-af8dd920ba46533c.js +0 -1
  472. package/apps/pwa/out/_next/static/chunks/6541-170dc5c59e135c0c.js +0 -1
  473. package/apps/pwa/out/_next/static/chunks/6742-a1ad4a94ba7bc37a.js +0 -1
  474. package/apps/pwa/out/_next/static/chunks/6836-493dc55c39187949.js +0 -1
  475. package/apps/pwa/out/_next/static/chunks/6856-53ac421c06039a18.js +0 -1
  476. package/apps/pwa/out/_next/static/chunks/6908.06008c67f6380ea9.js +0 -148
  477. package/apps/pwa/out/_next/static/chunks/6915.096931864206f522.js +0 -1
  478. package/apps/pwa/out/_next/static/chunks/6925.5e181fb7dcf90193.js +0 -1
  479. package/apps/pwa/out/_next/static/chunks/7203-800e11037adc41eb.js +0 -1
  480. package/apps/pwa/out/_next/static/chunks/7219-15bdd9a80661af8e.js +0 -1
  481. package/apps/pwa/out/_next/static/chunks/7279.6170f591105936bb.js +0 -93
  482. package/apps/pwa/out/_next/static/chunks/7349-373165c7fbdcc3df.js +0 -1
  483. package/apps/pwa/out/_next/static/chunks/7514-a533ba0ca1cae4f4.js +0 -1
  484. package/apps/pwa/out/_next/static/chunks/7521.d919cc1fab80c1d9.js +0 -24
  485. package/apps/pwa/out/_next/static/chunks/7538.90e97bbdf9178cff.js +0 -1
  486. package/apps/pwa/out/_next/static/chunks/7611.85f045bf232053ac.js +0 -1
  487. package/apps/pwa/out/_next/static/chunks/7825-39203196a12579b2.js +0 -1
  488. package/apps/pwa/out/_next/static/chunks/7869.5e1a9a12fd70d6c7.js +0 -1
  489. package/apps/pwa/out/_next/static/chunks/8099.1cccf31c1baa7e1c.js +0 -1
  490. package/apps/pwa/out/_next/static/chunks/8179-e61fffbdb70f1152.js +0 -1
  491. package/apps/pwa/out/_next/static/chunks/8265.bdeb991b34db6a06.js +0 -1
  492. package/apps/pwa/out/_next/static/chunks/8638-e42615f2166165b5.js +0 -1
  493. package/apps/pwa/out/_next/static/chunks/8639-92c11d069792429e.js +0 -1
  494. package/apps/pwa/out/_next/static/chunks/8691.54e22831d5e8ccf8.js +0 -1
  495. package/apps/pwa/out/_next/static/chunks/8d173e38.18a2f7b4e1848bdb.js +0 -1
  496. package/apps/pwa/out/_next/static/chunks/9125-ae588d88a0293b93.js +0 -1
  497. package/apps/pwa/out/_next/static/chunks/9311.f9f641a46a508611.js +0 -1
  498. package/apps/pwa/out/_next/static/chunks/9371-a6fee8378ebfa3ee.js +0 -1
  499. package/apps/pwa/out/_next/static/chunks/9421-3aa9ff4fa7f63d8a.js +0 -1
  500. package/apps/pwa/out/_next/static/chunks/app/_not-found/page-76394dc618d322c8.js +0 -1
  501. package/apps/pwa/out/_next/static/chunks/app/approvals/page-1b948637c37b3abd.js +0 -1
  502. package/apps/pwa/out/_next/static/chunks/app/autopilot/page-c63400f1bcf3e47c.js +0 -1
  503. package/apps/pwa/out/_next/static/chunks/app/board/page-95d0957267819586.js +0 -1
  504. package/apps/pwa/out/_next/static/chunks/app/bots/page-bb6fd0714879cb87.js +0 -1
  505. package/apps/pwa/out/_next/static/chunks/app/ceo/page-8f9038520d2acbef.js +0 -1
  506. package/apps/pwa/out/_next/static/chunks/app/chat/page-d4b48397e05fce2c.js +0 -1
  507. package/apps/pwa/out/_next/static/chunks/app/consult/page-72d5744245dc0c27.js +0 -1
  508. package/apps/pwa/out/_next/static/chunks/app/control/page-37625dc8300fa43a.js +0 -1
  509. package/apps/pwa/out/_next/static/chunks/app/decisions/page-fbef9d160272dbc1.js +0 -1
  510. package/apps/pwa/out/_next/static/chunks/app/design-check/page-58424168df84928e.js +0 -1
  511. package/apps/pwa/out/_next/static/chunks/app/editor/page-72c12ba430ac57c0.js +0 -1
  512. package/apps/pwa/out/_next/static/chunks/app/exec/page-d53f3e9ed806d7e0.js +0 -1
  513. package/apps/pwa/out/_next/static/chunks/app/field/page-4d2fbd45feee0829.js +0 -1
  514. package/apps/pwa/out/_next/static/chunks/app/healthz/route-76394dc618d322c8.js +0 -1
  515. package/apps/pwa/out/_next/static/chunks/app/inside/page-8783dc0ed7590a2c.js +0 -1
  516. package/apps/pwa/out/_next/static/chunks/app/intake/page-3706cb390606e930.js +0 -1
  517. package/apps/pwa/out/_next/static/chunks/app/layout-9b0a86598e0111fd.js +0 -1
  518. package/apps/pwa/out/_next/static/chunks/app/live/page-4edb8df90f4537ce.js +0 -1
  519. package/apps/pwa/out/_next/static/chunks/app/live-run/page-83d27757e2b8060a.js +0 -1
  520. package/apps/pwa/out/_next/static/chunks/app/loops/page-47398b9ba1cc5e1b.js +0 -1
  521. package/apps/pwa/out/_next/static/chunks/app/market/page-fb86f55cfe2e681d.js +0 -1
  522. package/apps/pwa/out/_next/static/chunks/app/missions/[id]/page-e22345fc8fd47b1b.js +0 -1
  523. package/apps/pwa/out/_next/static/chunks/app/morning/page-fca2e59a81744d9e.js +0 -1
  524. package/apps/pwa/out/_next/static/chunks/app/not-found-6e96bda63100b31e.js +0 -1
  525. package/apps/pwa/out/_next/static/chunks/app/observatory/page-4d17ad8e0db8cea4.js +0 -1
  526. package/apps/pwa/out/_next/static/chunks/app/ops/checklist/page-121f92766c33beaa.js +0 -1
  527. package/apps/pwa/out/_next/static/chunks/app/ops/release/page-43f14212c545f92d.js +0 -1
  528. package/apps/pwa/out/_next/static/chunks/app/ops/seats/page-ccec2023e7a974ec.js +0 -1
  529. package/apps/pwa/out/_next/static/chunks/app/outputs/page-b04f33f548b89a94.js +0 -1
  530. package/apps/pwa/out/_next/static/chunks/app/page-c8792823c0917021.js +0 -1
  531. package/apps/pwa/out/_next/static/chunks/app/reflection/page-8c0e32782ceef4cb.js +0 -1
  532. package/apps/pwa/out/_next/static/chunks/app/scheduler/page-94bd3922eb230ce8.js +0 -1
  533. package/apps/pwa/out/_next/static/chunks/app/sessions/page-bca565887bafa03c.js +0 -1
  534. package/apps/pwa/out/_next/static/chunks/app/settings/devices/page-ac1dffafe649fc6c.js +0 -1
  535. package/apps/pwa/out/_next/static/chunks/app/settings/page-52374edb5e23e455.js +0 -1
  536. package/apps/pwa/out/_next/static/chunks/app/setup/done/page-ad4ebca120d43ca7.js +0 -1
  537. package/apps/pwa/out/_next/static/chunks/app/setup/layout-76394dc618d322c8.js +0 -1
  538. package/apps/pwa/out/_next/static/chunks/app/setup/page-718b89ce4b4ae4e4.js +0 -1
  539. package/apps/pwa/out/_next/static/chunks/app/share/page-204eca33eeeaddec.js +0 -1
  540. package/apps/pwa/out/_next/static/chunks/app/showroom/page-e58ba9bcdb9ac0f9.js +0 -1
  541. package/apps/pwa/out/_next/static/chunks/app/tasks/page-98f6dd50bafd7734.js +0 -1
  542. package/apps/pwa/out/_next/static/chunks/app/term/page-139d722de1dcd6c1.js +0 -1
  543. package/apps/pwa/out/_next/static/chunks/app/today/page-5a4bdd72bff27057.js +0 -1
  544. package/apps/pwa/out/_next/static/chunks/app/trace/page-6f6ab17d44f984ce.js +0 -1
  545. package/apps/pwa/out/_next/static/chunks/app/vault/page-aabb7bd15fb72da9.js +0 -1
  546. package/apps/pwa/out/_next/static/chunks/app/workflows/chat-ui/page-e4322319164a4436.js +0 -1
  547. package/apps/pwa/out/_next/static/chunks/app/workflows/page-e9efc0c8f32e2371.js +0 -1
  548. package/apps/pwa/out/_next/static/chunks/app/workspace/page-ccde99f07aaf71f7.js +0 -1
  549. package/apps/pwa/out/_next/static/chunks/app/worktrees/page-80464aced9614390.js +0 -1
  550. package/apps/pwa/out/_next/static/chunks/d5d3cefc-373c4eb722ed848b.js +0 -1
  551. package/apps/pwa/out/_next/static/chunks/framework-002b472a66935d31.js +0 -1
  552. package/apps/pwa/out/_next/static/chunks/main-49b88d47292c0476.js +0 -1
  553. package/apps/pwa/out/_next/static/chunks/main-app-fff2549cb10a133f.js +0 -1
  554. package/apps/pwa/out/_next/static/chunks/pages/_app-32abbbba3f3b76b7.js +0 -1
  555. package/apps/pwa/out/_next/static/chunks/pages/_error-9d9cfef60c60dd7a.js +0 -1
  556. package/apps/pwa/out/_next/static/chunks/webpack-cc7f483fa294034a.js +0 -1
  557. package/scripts/ratchets/next-tui-entry-budget.ts +0 -124
  558. /package/apps/pwa/out/_next/static/{HjeK7zONHfR7op1hKXp4k → GiOLWmt4MqDZePubBjA4Q}/_ssgManifest.js +0 -0
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5542],{35542:(e,r,t)=>{t.d(r,{diagram:()=>y});var a=t(1722),n=t(72375);t(4910),t(46238);var l=t(96556),s=t(20330),p=t(43250),i=(0,p.sB)().RailroadAbnf.parser.LangiumParser,u=(0,s.K)(e=>{let r=e.alternatives.map(m);return 1===r.length?r[0]:{type:"choice",alternatives:r}},"transformAlternation"),m=(0,s.K)(e=>{let r=e.elements.map(d);return 1===r.length?r[0]:{type:"sequence",elements:r}},"transformConcatenation"),o=(0,s.K)(e=>{if(e.includes("*")){let[r,t]=e.split("*");return{min:r?parseInt(r,10):0,max:t?parseInt(t,10):1/0}}let r=parseInt(e,10);return{min:r,max:r}},"parseRepeat"),d=(0,s.K)(e=>{let r=b(e.primary);if(!e.repeat)return r;let{min:t,max:a}=o(e.repeat);return 0===t&&1===a?{type:"optional",element:r}:{type:"repetition",element:r,min:t,max:a}},"transformElement"),b=(0,s.K)(e=>{switch(e.$type){case"AbnfStringLiteral":case"AbnfNumVal":return{type:"terminal",value:e.value};case"AbnfRuleName":return{type:"nonterminal",name:e.name};case"AbnfGroup":return u(e.element);case"AbnfOptionalGroup":return{type:"optional",element:u(e.element)};default:throw Error(`Unsupported ABNF primary node: ${e.$type}`)}},"transformPrimary"),f=(0,s.K)(e=>({name:e.name,definition:u(e.definition)}),"transformRule"),c=(0,s.K)(e=>{(0,n.S)(e,a.db),e.title&&a.db.setTitle(e.title),e.rules.map(e=>a.db.addRule(f(e)))},"populateDb"),y={parser:{parse:(0,s.K)(e=>{a.db.clear(),l.R.debug("[ABNF Parser] Starting Langium parse");let r=i.parse(e);if(r.lexerErrors.length>0||r.parserErrors.length>0)throw new p.zg(r);let t=r.value;l.R.debug("[ABNF Parser] Parsed rules:",t.rules.length),c(t),l.R.debug("[ABNF Parser] Parse complete")},"parse"),parser:{yy:a.db}},db:a.db,renderer:a.U,styles:a.$}}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5644],{55644:(a,e,s)=>{s.d(e,{diagram:()=>k.AC});var k=s(52177);s(75767),s(80690),s(88589),s(90072),s(79339),s(64526),s(38817),s(74616),s(22777),s(8303),s(46365),s(13250),s(30151),s(63567),s(87100),s(11226),s(46238),s(96556),s(20330)}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5658],{55658:(e,s,a)=>{a.d(s,{createGitGraphServices:()=>c.b});var c=a(42805);a(62705)}}]);
@@ -1,8 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5721],{55721:(e,t,r)=>{r.d(t,{diagram:()=>l});var s=r(52177);r(75767),r(80690),r(88589),r(90072),r(79339),r(64526),r(38817),r(74616),r(22777),r(8303),r(46365),r(13250),r(30151),r(63567),r(87100),r(11226),r(46238),r(96556);var a=(0,r(20330).K)(e=>`${(0,s.tM)(e)}
2
- .swimlane.cluster:not([data-color-id]) rect {
3
- stroke: ${e.clusterBorder} !important;
4
- }
5
- [data-look="neo"].cluster rect {
6
- filter: none;
7
- }
8
- `,"getStyles"),l=(0,s.ur)({styles:a})}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5790],{3021:(e,t,n)=>{n.d(t,{Es:()=>l,Wf:()=>s,q9:()=>r});let a=/\u{1F451}|`[^`]+`|\b(?=[0-9a-f]*\d)(?=[0-9a-f]*[a-f])[0-9a-f]{7,40}\b|\/Users\/|\/(?:home|root)\/|\/\.ssh\/|~\/\.elanous|elt_|\$\s*[-+]?\d[\d,.]*|run-[0-9a-f]{8}\b|\b(?:test|mirror):|\b(?:account|remote)-\d+\b|\bmsb\d+\b|\.ts\.net\b|\bgcpvm\b|user|[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,}/iu;function s(e){return!a.test(e)}function r(e){return(e.replace(/^\s*\*\*\[[A-Za-z]{1,4}\]\*\*\s*/,"").replace(/^(?:\{\{TS\}\}|\d{4}-\d{2}-\d{2}\s+\d{1,2}:\d{2}(?::\d{2})?\s*(?:KST)?)\s*/,"").replace(/^→\s*(?:(?:[A-Z]{2,4}|전원|전체)(?=[\s·,(]|$)[\s·,]*)+/u,"").replace(/^—\s*/,"").replace(/^(?:보고|요청|정정|결정|사고|안내)\s*·\s*/,"").trim()||e.trim()).replace(/\*\*/g,"")}function l(e){return e.replace(/#\d{4,6}\b/g,"PR")}},16565:(e,t,n)=>{n.d(t,{cn:()=>r});var a=n(35749),s=n(23601);function r(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return(0,s.QP)((0,a.$)(t))}},49016:(e,t,n)=>{n.d(t,{xl:()=>E});var a=n(94451),s=n(75699),r=n(94361);let l={author:"PLAN",decompose:"PLAN",build:"ROUTE",gate:"VERIFY",review:"VERIFY",land:"SHIP"},o=(e,t)=>"phase:".concat(e,":").concat(t),i=new Set(["model","target","account","universe","pod"]);var c=n(70324),d=n(3021);function u(e,t){return t>=0?"런 ".concat(t+1):"미등록 런"}let p=new Map;function h(e){let t=p.get(e);if(t)return t;let n=p.size+1,a="";for(;n>0;)n-=1,a=String.fromCharCode(65+n%26)+a,n=Math.floor(n/26);let s="계정 ".concat(a);return p.set(e,s),s}let m=new Map,f=new Map;function x(e){if(/^(?:chatgpt|gpt)(?:[-_.\s]|\d|$)/i.test(e))return"GPT";if(/^claude(?:[-_.\s]|\d|$)/i.test(e))return"Claude";if(/^grok(?:[-_.\s]|\d|$)/i.test(e))return"Grok";let t=f.get(e);return t||(t="모델 ".concat(f.size+1),f.set(e,t)),t}let g={ROUTE:"경로 정하기",PLAN:"계획",HEAL:"스스로 수리",SHIP:"착지",VERIFY:"검증",ESCALATE:"사람에게 묻기"};function v(e){let t=g[e];return(0,d.Wf)(t)?t:"신호"}let b={PLAN:"#38bdf8",ROUTE:"#a78bfa",VERIFY:"#fbbf24",HEAL:"#34d399",ESCALATE:"#fb7185",SHIP:"#4ade80"},y={harness:"#e0e7ff",run:"#818cf8",phase:"#c7d2fe",pr:"#4ade80",model:"#f0abfc",target:"#93c5fd",event:"#a5b4fc",site:"#f5d0fe",account:"#fbcfe8",request:"#f0abfc",universe:"#67e8f9",piece:"#7dd3fc",pod:"#fcd34d"},w={ok:"#4ade80",bad:"#fb7185",info:"#c7d2fe"},k=["#f0abfc","#c4b5fd","#93c5fd","#67e8f9","#a7f3d0","#fde68a","#fca5a5"],j={harness:16,run:8,phase:5.5,pr:5,model:7,target:4,event:2.6,site:3,account:6,request:1.2,universe:7,piece:3.4,pod:7},N=new Set(["harness","run","phase","pr","model","account","target","universe","pod"]),M=[];function S(e){return!!(e.why||e.purpose||e.target)}function E(e){var t,n,p,m;let{board:f,rows:E=M,windowMinutes:D=60,sourceLabel:B="this instance",shippedSource:$="log",autoReplay:z=!0,publicCapture:G=!1,onSelectRun:V,role:Y="owner"}=e,_=(0,s.useRef)(null),J=(0,s.useRef)({nodes:[],edges:[]}),K=(0,s.useRef)([]),X=(0,s.useRef)([]),Z=(0,s.useRef)(null),Q=(0,s.useRef)([]),[ee,et]=(0,s.useState)(null),[en,ea]=(0,s.useState)(!1),[es,er]=(0,s.useState)(0),[el,eo]=(0,s.useState)(""),[ei,ec]=(0,s.useState)(5),[ed,eu]=(0,s.useState)({nodes:0,edges:0}),ep=(0,s.useRef)(1500),eh=()=>"function"==typeof window.matchMedia&&window.matchMedia("(prefers-reduced-motion: reduce)").matches,em=e=>{K.current.push({from:e.from,to:e.to,kind:e.kind,t:0,speed:.022,alpha:1,size:3.6}),"SHIP"===e.kind&&X.current.push({id:e.to,t:0})},ef=(0,s.useMemo)(()=>(0,c.Gp)(E),[E]),ex=(0,s.useMemo)(()=>{var e,t,n;let a=new Map,s=new Set(E.filter(e=>"harness.decision"===e.category).map(r.bh).filter(e=>null!==e)),l=new Map;for(let t of[...E].sort((e,t)=>Date.parse(e.ts)-Date.parse(t.ts))){let n=(0,r.bh)(t);if(!n||"harness.decision"!==t.category&&s.has(n))continue;let a="".concat(t.ts,"|").concat(n),o=null!=(e=l.get(a))?e:[];o.push("harness.decision"===t.category?v(n):function(e,t){let n=(0,r.bh)({category:e,event:t}),a=n?g[n]:"신호";return(0,d.Wf)(a)?a:"신호"}(t.category,t.event)),l.set(a,o)}for(let e of f.stream)a.set(e,null!=(n=null==(t=l.get("".concat(e.ts,"|").concat(e.kind)))?void 0:t.pop())?n:v(e.kind));return a},[f.stream,E]),eg=e=>{var t;return null!=(t=ex.get(e))?t:v(e.kind)},ev=(0,s.useMemo)(()=>{let e=Date.now(),t=6e4*D,n=(0,c.lb)(E).map(e=>e.ms/6e4).filter(e=>e>0),a=ef.map(e=>e.input+e.output).filter(e=>e>0);return{now:e,candles:(0,c.OL)(ef,e,40,Math.max(6e4,6e4*Math.ceil(t/40/6e4))),bucketMin:Math.max(1,Math.ceil(t/40/6e4)),ticker:(0,c.kJ)(ef,e,t),heat:(0,c.f)(ef),hist:(0,c.JW)(n,40),tokHist:(0,c.JW)(a.map(e=>Math.log10(e)),40),spans:n.length,gate:(0,c.cD)(E),load:(0,c.HR)(f),events:(0,c.fT)(E),universes:(0,c.IE)(E),plans:(0,c.D3)(E),pods:(0,c.GJ)(E),retries:(0,c.Jo)(E)}},[ef,E,f,D]),eb=(0,s.useRef)([]);for(let e of f.snapshot.runs)eb.current.includes(e.runId)||eb.current.push(e.runId);for(let e of f.stream)e.runId&&!eb.current.includes(e.runId)&&eb.current.push(e.runId);let ey=e=>(eb.current.includes(e)||eb.current.push(e),u(e,eb.current.indexOf(e))),ew=(0,s.useMemo)(()=>{let e=new Map;return ev.ticker.forEach((t,n)=>e.set(t.model,k[n%k.length])),t=>{var n;return null!=(n=e.get(t))?n:"#a5b4fc"}},[ev.ticker]);(0,s.useEffect)(()=>{let e=()=>{eo(new Date().toLocaleTimeString(void 0,{hour12:!1})),ec(e=>e<=1?5:e-1)};e();let t=window.setInterval(e,1e3);return()=>window.clearInterval(t)},[]),(0,s.useEffect)(()=>{ec(5)},[E]),(0,s.useEffect)(()=>{var e,t;let n=function(e){var t,n,a,s,i,c,d,u;let p=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},h=new Map,m=[],f=function(e,t,n){let a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,s=h.get(e);if(s)return s.weight+=a,s;let r="harness"===t?{x:.5,y:.5}:function(e){let t=0x811c9dc5;for(let n=0;n<e.length;n++)t=Math.imul(t^e.charCodeAt(n),0x1000193);let n=(t>>>0)%3600/3600*Math.PI*2,a=.25+(t>>>12)%1e3/1e3*.2;return{x:.5+Math.cos(n)*a,y:.5+Math.sin(n)*a}}(e),l={id:e,kind:t,label:n,weight:a,x:r.x,y:r.y,vx:0,vy:0};return h.set(e,l),l},x=(e,t,n)=>{m.some(a=>a.from===e&&a.to===t&&a.kind===n)||m.push({from:e,to:t,kind:n})};for(let t of(f("harness","harness","harness",3),e.snapshot.runs.slice(0,12).forEach((e,t)=>{let n="run:".concat(e.runId);f(n,"run",e.runId.replace(/^run-/,"").slice(0,6),2),x("harness",n,"PLAN");let a=null;if(t<8){let t=n;for(let n of r.lV){let s=e.stages[n];if(!s&&e.current!==n)continue;let i=o(e.runId,n),c=f(i,"phase",r.fQ[n]);c.current=e.current===n,c.tone=null!=s?s:"info",x(t,i,"bad"===s?"ESCALATE":l[n]),t=i,a=i}}e.pr&&(f("pr:".concat(e.pr),"pr","#".concat(e.pr)),x(null!=a?a:n,"pr:".concat(e.pr),"ok"===e.stages.land?"SHIP":"VERIFY")),e.blocked&&x(n,"harness","ESCALATE")}),e.scorecard.slice(0,6)))f("model:".concat(t.model),"model",t.model.length>18?"".concat(t.model.slice(0,17),"…"):t.model,Math.max(1,Math.round(Math.log2(1+t.requests)))),x("harness","model:".concat(t.model),"ROUTE");let g=0;for(let e of null!=(t=p.events)?t:[]){if(g>=180)break;let t="run:".concat(e.runId);if(!h.has(t))continue;let n=e.stage?o(e.runId,e.stage):null,a=n&&h.has(n)?n:t,s=f("ev:".concat(e.key),"event",e.label,Math.max(1,Math.round(Math.log2(1+e.count))));e.bad&&(s.tone="bad"),x(a,s.id,e.bad?"ESCALATE":e.stage?l[e.stage]:"PLAN"),g+=1}let v=new Set,b=0;for(let e of null!=(n=p.reqs)?n:[]){let t="model:".concat(e.model);if(!h.has(t))continue;let n="site:".concat(e.model,"|").concat(e.site);if(v.has(n)?h.get(n).weight+=.05:(v.add(n),f(n,"site",e.site),x(t,n,"ROUTE")),e.provider){let n="acct:".concat(e.provider);h.has(n)||f(n,"account",e.provider,2),x(n,t,"ROUTE")}b<220&&(x(n,f("req:".concat(e.model,"|").concat(e.site,"|").concat(e.ts,"|").concat(b),"request","",Math.max(1,Math.log10(1+e.input+e.output))).id,"ROUTE"),b+=1)}for(let e of null!=(a=p.universes)?a:[]){let t="run:".concat(e.runId);if(!h.has(t))continue;let n="uni:".concat(e.instance);h.has(n)?h.get(n).weight+=1:f(n,"universe",e.instance,2),x(n,t,"PLAN")}for(let e of null!=(s=p.plans)?s:[]){let t="run:".concat(e.runId);if(!h.has(t))continue;let n=o(e.runId,"decompose"),a=h.has(n)?n:t;e.pieces.forEach((t,n)=>{let s="piece:".concat(e.runId,":").concat(n);f(s,"piece",t.length>22?"".concat(t.slice(0,21),"…"):t,1.5),x(a,s,"PLAN")})}for(let e of null!=(i=p.pods)?i:[]){let t="pod:".concat(e.pool);h.has(t)?h.get(t).weight+=.2:f(t,"pod",null!=(c=e.pool.replace(/^pool-/,"").split("@")[0])?c:e.pool,2),x("harness",t,"ROUTE")}for(let e of null!=(d=p.retries)?d:[]){let t=h.get(o(e.runId,e.stage));t&&(t.retries=Math.max(null!=(u=t.retries)?u:0,e.retries))}let y=0;for(let t of e.stream){let e=t.runId&&h.has("run:".concat(t.runId))?"run:".concat(t.runId):"harness";if("SHIP"===t.kind&&t.target)f("pr:".concat(t.target.replace(/^#/,"")),"pr",t.target),x(e,"pr:".concat(t.target.replace(/^#/,"")),"SHIP");else if(t.target&&y<10&&!t.target.startsWith("#")){let n="target:".concat(t.target);h.has(n)||(y+=1),f(n,"target",t.target.length>18?"".concat(t.target.slice(0,17),"…"):t.target),x(e,n,t.kind)}else("HEAL"===t.kind||"VERIFY"===t.kind)&&x(e,e,t.kind)}return{nodes:[...h.values()],edges:m}}(f,{events:ev.events,reqs:ef,universes:ev.universes,plans:ev.plans,pods:ev.pods,retries:ev.retries}),a=new Map(J.current.nodes.map(e=>[e.id,e]));for(let e of n.nodes){let t=a.get(e.id);t&&(e.x=t.x,e.y=t.y,e.vx=t.vx,e.vy=t.vy)}J.current=n,eu(e=>e.nodes===n.nodes.length&&e.edges===n.edges.length?e:{nodes:n.nodes.length,edges:n.edges.length});let s=ev.pods.map(e=>"pod|".concat(e.ts,"|").concat(e.pool));if(Z.current)for(let e of ev.pods){let t="pod|".concat(e.ts,"|").concat(e.pool);Z.current.has(t)||em({from:"harness",to:"pod:".concat(e.pool),kind:"ROUTE"})}let i=function(e,t){let n=[];for(let s of t.stream){var a;let t="".concat(s.ts,"|").concat(s.kind,"|").concat(null!=(a=s.runId)?a:"","|").concat(s.what);if(e.has(t))continue;let r=s.runId?"run:".concat(s.runId):"harness",l="SHIP"===s.kind&&s.target?"pr:".concat(s.target.replace(/^#/,"")):s.target?"target:".concat(s.target):r;n.push({key:t,kind:s.kind,from:r,to:l})}return n}(null!=(e=Z.current)?e:new Set,f);if(Z.current){let e=new Map(f.stream.map(e=>{var t;return["".concat(e.ts,"|").concat(e.kind,"|").concat(null!=(t=e.runId)?t:"","|").concat(e.what),e]})),t=[...i].reverse();t.forEach((n,a)=>{let s=e.get(n.key);!s||!S(s)||eh()||a<t.length-6?em(n):Q.current.push({key:n.key,line:s,from:n.from,to:n.to})}),er(e=>e+1)}Z.current=new Set([...null!=(t=Z.current)?t:[],...i.map(e=>e.key),...s])},[f,ev.events,ev.universes,ev.plans,ev.pods,ev.retries,ef]),(0,s.useEffect)(()=>{if(ee)return;let e=Q.current.shift();if(!e){en&&ea(!1);return}et({item:e,folding:!1})},[ee,es,en]),(0,s.useEffect)(()=>{if(!ee)return;if(!ee.folding){let e=setTimeout(()=>et({item:ee.item,folding:!0}),ep.current);return()=>clearTimeout(e)}em({from:ee.item.from,to:ee.item.to,kind:ee.item.line.kind});let e=setTimeout(()=>et(null),250);return()=>clearTimeout(e)},[ee]),(0,s.useEffect)(()=>{ep.current=en?550:1500},[en]);let ek=(0,s.useRef)(!1);(0,s.useEffect)(()=>{if(!z||ek.current||0===f.stream.length||eh())return;ek.current=!0;let e=setTimeout(()=>ej(),1200);return()=>clearTimeout(e)},[f.stream.length]);let ej=()=>{Q.current=f.stream.filter(S).slice(0,40).reverse().map(e=>{let t=e.runId?"run:".concat(e.runId):"harness",n="SHIP"===e.kind&&e.target?"pr:".concat(e.target.replace(/^#/,"")):e.target?"target:".concat(e.target):t;return{key:"replay|".concat(e.ts,"|").concat(e.what),line:e,from:t,to:n}}),ea(!0),er(e=>e+1)};(0,s.useEffect)(()=>{let e=_.current;if(!e)return;let t=e.getContext("2d");if(!t)return;let n=eh(),a=new Map,s=e=>{let t=a.get(e);if(t)return t;let n=document.createElement("canvas");n.width=64,n.height=64;let s=n.getContext("2d");if(s){let t=s.createRadialGradient(32,32,0,32,32,32);t.addColorStop(0,"".concat(e,"ff")),t.addColorStop(.25,"".concat(e,"88")),t.addColorStop(1,"".concat(e,"00")),s.fillStyle=t,s.fillRect(0,0,64,64)}return a.set(e,n),n},r=0,l=0,o=()=>{let a=window.devicePixelRatio||1,c=e.clientWidth,d=e.clientHeight;(e.width!==Math.round(c*a)||e.height!==Math.round(d*a))&&(e.width=Math.round(c*a),e.height=Math.round(d*a)),t.setTransform(a,0,0,a,0,0);let p=J.current;n||function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,{nodes:n,edges:a}=e,s=new Map(n.map(e=>[e.id,e])),r=Math.min(1,60/Math.max(1,n.length));for(let e=0;e<n.length;e++)for(let t=e+1;t<n.length;t++){let a=n[e],s=n[t],l=a.x-s.x,o=a.y-s.y,i=l*l+o*o;i<1e-6&&(l=.01,o=.01,i=2e-4);let c=e=>"phase"===e||"request"===e||"event"===e||"piece"===e,d=r*(c(a.kind)||c(s.kind)?"request"===a.kind||"request"===s.kind?12e-6:5e-5:18e-5)/i;a.vx+=l*d,a.vy+=o*d,s.vx-=l*d,s.vy-=o*d}for(let e of a){if(e.from===e.to)continue;let t=s.get(e.from),n=s.get(e.to);if(!t||!n)continue;let a=n.x-t.x,r=n.y-t.y,l=Math.sqrt(a*a+r*r)||.001,o=(l-("request"===n.kind?.035:"site"===n.kind?.06:i.has(t.kind)||i.has(n.kind)?.34:"harness"===t.kind||"harness"===n.kind?.2:"phase"===t.kind||"phase"===n.kind?.07:.12))*("phase"===t.kind||"phase"===n.kind?.05:.02);t.vx+=a/l*o,t.vy+=r/l*o,n.vx-=a/l*o,n.vy-=r/l*o}for(let e of n){if("harness"===e.kind){e.x=.5,e.y=.5,e.vx=0,e.vy=0;continue}if(i.has(e.kind)){let t=e.x-.5,n=e.y-.5,a=Math.sqrt(t*t+n*n)||.001,s=(("universe"===e.kind?.44:.3)-a)*.01;e.vx+=t/a*s,e.vy+=n/a*s}else e.vx+=(.5-e.x)*.003,e.vy+=(.5-e.y)*.003;e.x<.08&&(e.vx+=(.08-e.x)*.06),e.x>.92&&(e.vx-=(e.x-.92)*.06),e.y<.18&&(e.vy+=(.18-e.y)*.06),e.y>.87&&(e.vy-=(e.y-.87)*.06),e.vx*=.86,e.vy*=.86,e.x=Math.min(.97,Math.max(.03,e.x+e.vx*t)),e.y=Math.min(.95,Math.max(.1,e.y+e.vy*t))}}(p),l+=1;let m=new Map(p.nodes.map(e=>[e.id,e])),f=e=>n?0:1.4*Math.sin(l/40+e.id.length%7),g=e=>{let t=m.get(e);return t?{x:t.x*c+f(t),y:t.y*d+.7*f(t)}:null};for(let e of(t.clearRect(0,0,c,d),t.globalCompositeOperation="lighter",p.edges)){let n=g(e.from),a=g(e.to);n&&a&&(t.strokeStyle=b[e.kind],t.globalAlpha=e.to.startsWith("ev:")||e.to.startsWith("site:")?.15:.25,t.lineWidth="SHIP"===e.kind?1.4:.7,t.beginPath(),e.from===e.to?t.arc(n.x+8,n.y-8,8,0,2*Math.PI):(t.moveTo(n.x,n.y),t.lineTo(a.x,a.y)),t.stroke())}if(!n&&p.edges.length&&l%4==0&&K.current.length<110){let e=p.edges[7919*l%p.edges.length];e.from!==e.to&&K.current.push({from:e.from,to:e.to,kind:e.kind,t:0,speed:.008,alpha:.45,size:1.6})}for(let e of(K.current=K.current.filter(e=>e.t<=1),K.current)){let a=g(e.from),r=g(e.to);if(!a||!r){e.t=2;continue}e.t+=n?1:e.speed;let l=a.x+(r.x-a.x)*e.t,o=a.y+(r.y-a.y)*e.t-(e.from===e.to?24*Math.sin(e.t*Math.PI):0),i=5*e.size;t.globalAlpha=e.alpha,t.drawImage(s(b[e.kind]),l-i,o-i,2*i,2*i)}for(let e of(X.current=X.current.filter(e=>e.t<=1),X.current)){let a=g(e.id);if(!a){e.t=2;continue}e.t+=n?1:.014;let r=10+70*Math.min(1,e.t/.3);t.globalAlpha=1-e.t,t.strokeStyle=b.SHIP,t.lineWidth=2.5,t.beginPath(),t.arc(a.x,a.y,r,0,2*Math.PI),t.stroke(),t.drawImage(s(b.SHIP),a.x-r,a.y-r,2*r,2*r)}for(let e of p.nodes){let a=g(e.id),r="phase"===e.kind,o="harness"===e.kind||r&&e.current,i=j[e.kind]+("model"===e.kind||"run"===e.kind?Math.min(4,.4*e.weight):"event"===e.kind?Math.min(3,.5*e.weight):0),c=o&&!n?i*(1+Math.sin(l/(r?9:20))*(r?.35:.12)):i,d=(r||"event"===e.kind)&&e.tone?w[e.tone]:y[e.kind],u=o||"run"===e.kind||"model"===e.kind||"account"===e.kind||"universe"===e.kind,p=c*(u?8:3);if(t.globalAlpha=u?.6:.35,t.drawImage(s(d),a.x-p,a.y-p,2*p,2*p),t.globalAlpha="event"===e.kind?.85:1,t.fillStyle=d,t.beginPath(),t.arc(a.x,a.y,c,0,2*Math.PI),t.fill(),r&&e.retries){t.globalAlpha=.75,t.strokeStyle=b.HEAL,t.lineWidth=1,t.setLineDash([3,3]);for(let s=1;s<=Math.min(4,e.retries);s+=1)t.lineDashOffset=n?0:-(l*(.4+.1*s)),t.beginPath(),t.arc(a.x,a.y,c+4+4*s,0,2*Math.PI),t.stroke();t.setLineDash([])}if(r&&e.current&&!n){let e=l%60/60;t.strokeStyle=d,t.globalAlpha=1-e,t.lineWidth=1.2,t.beginPath(),t.arc(a.x,a.y,c+18*e,0,2*Math.PI),t.stroke()}}for(let e of(t.globalCompositeOperation="source-over",t.globalAlpha=1,p.nodes)){if(!N.has(e.kind))continue;let n=g(e.id);t.fillStyle="harness"===e.kind?"#eef2ff":"phase"===e.kind?"rgba(199,210,254,.65)":"rgba(226,232,240,.82)",t.font=G?"600 14px ui-monospace, SFMono-Regular, monospace":"harness"===e.kind?"600 12px ui-monospace, SFMono-Regular, monospace":"10px ui-monospace, SFMono-Regular, monospace";let a=G?"model"===e.kind?x(e.label):function(e,t){switch(e.kind){case"run":return u(e.id.slice(4),t.indexOf(e.id.slice(4)));case"universe":return e.label,"본부";case"account":return h(e.id.slice(5));case"pod":return h(e.id.slice(4));case"model":case"phase":return e.label;case"pr":return"PR";case"harness":return"ELANOUS HARNESS";default:return"경로"}}(e,eb.current):"harness"===e.kind?"ELANOUS HARNESS":"phase"===e.kind?e.label:e.label.toUpperCase();t.fillText(a,n.x+j[e.kind]+4,n.y+3)}n||(r=requestAnimationFrame(o))};r=requestAnimationFrame(o);let c=t=>{let n=e.getBoundingClientRect(),a=(t.clientX-n.left)/n.width,s=(t.clientY-n.top)/n.height,r=J.current.nodes.find(e=>"run"===e.kind&&.02>Math.hypot(e.x-a,e.y-s));r&&(null==V||V(r.id.replace(/^run:/,"")))};return e.addEventListener("click",c),()=>{cancelAnimationFrame(r),e.removeEventListener("click",c)}},[V,G]);let eN=f.gauges,eM=function(e){var t;let n=e.snapshot.runs.filter(e=>"ok"===e.stages.land);if(n.length)return{run:[...n].sort((t,n)=>{var a,s;return(null!=(a=e.rounds[n.runId])?a:0)-(null!=(s=e.rounds[t.runId])?s:0)||n.events-t.events})[0],why:"merged"};let a=null!=(t=e.snapshot.runs.find(e=>e.current&&!e.blocked))?t:e.snapshot.runs[0];return a?{run:a,why:"in-flight"}:null}(f),eS=null!=(t=null==eM?void 0:eM.run)?t:null,eE=Object.values(f.rounds),eI=r.jg.map(e=>({k:e,n:f.stream.filter(t=>t.kind===e).length})),eA=ef.reduce((e,t)=>e+t.input+t.output,0),eC=ef.reduce((e,t)=>e+t.apiUsd,0),eR=Math.max(1,...ef.slice(0,10).map(e=>e.input+e.output)),eT=eS?r.lV.filter(e=>eS.stages[e]):[];return(0,a.jsxs)("div",{className:"live-stage live-v5 space-y-1.5 rounded-xl p-1.5 text-slate-100","data-live-max-stage":!0,"data-live-v5":!0,children:[(0,a.jsxs)("div",{className:"flex items-center gap-3 rounded-md border border-indigo-400/10 bg-slate-950/60 px-2 py-1",children:[(0,a.jsx)("span",{className:"shrink-0 text-xl tracking-tight text-slate-50",style:{fontFamily:'Georgia, "Times New Roman", serif'},children:"Elanous"}),(0,a.jsx)("span",{className:"hidden shrink-0 font-mono ".concat(G?"text-sm":"text-[11px]"," sm:inline ").concat(G?"text-sm":"lg:text-[10.5px]"," tracking-[.18em] text-indigo-200/80"),children:"\xd7 HARNESS \xb7 판단"}),(0,a.jsx)(C,{publicCapture:G,tone:"live",children:"● LIVE"}),(0,a.jsx)("div",{className:"min-w-0 flex-1",children:(0,a.jsx)(L,{publicCapture:G,ariaLabel:"판단 띠",bare:!0,items:f.stream.slice(0,16).map((e,t)=>(0,a.jsxs)("span",{className:G?"mx-4 whitespace-normal":"mx-4 whitespace-nowrap",children:[(0,a.jsxs)("span",{style:{color:b[e.kind]},children:["▸ ",G?"판단":e.kind]})," ",(0,a.jsx)("span",{className:"text-slate-300",children:G?eg(e):e.what}),!G&&e.target&&(0,a.jsxs)("span",{className:"text-slate-500",children:[" → ",e.target]})]},"".concat(e.ts,"-").concat(t)))})}),(0,a.jsx)("span",{className:"shrink-0 font-mono text-lg tabular-nums text-slate-200",suppressHydrationWarning:!0,children:el})]}),(0,a.jsx)(L,{publicCapture:G,ariaLabel:"모델 띠",slow:!0,items:[(0,a.jsxs)("span",{className:"mx-4 whitespace-nowrap",children:[(0,a.jsx)("span",{className:"text-rose-300",children:"● LIVE RUNS"})," ",eN.live]},"live"),(0,a.jsxs)("span",{className:"mx-4 whitespace-nowrap",children:[(0,a.jsx)("span",{className:"text-emerald-300",children:"SHIPPED"})," ",eN.shipped]},"ship"),(0,a.jsxs)("span",{className:"mx-4 whitespace-nowrap",children:[(0,a.jsx)("span",{className:"text-indigo-300",children:"DECISIONS/MIN"})," ",eN.decisionsPerMin]},"dpm"),(0,a.jsxs)("span",{className:"mx-4 whitespace-nowrap",children:[(0,a.jsx)("span",{className:"text-indigo-300",children:"BURN/MIN"})," ",I(eN.burnTokensPerMin)]},"burn"),...ev.ticker.map(e=>(0,a.jsxs)("span",{className:G?"mx-4 whitespace-normal":"mx-4 whitespace-nowrap",children:[(0,a.jsx)("span",{style:{color:ew(e.model)},children:G?x(e.model):e.model.toUpperCase()})," ",(0,a.jsx)("span",{className:e.delta>0?"text-emerald-300":e.delta<0?"text-rose-300":"text-slate-400",children:e.delta>0?"▲":e.delta<0?"▼":"■"})," ",e.count," req \xb7 ",I(e.tokens)," tok"]},e.model))]}),(0,a.jsxs)("div",{className:"grid grid-cols-12 gap-1.5",children:[(0,a.jsxs)(A,{publicCapture:G,className:"col-span-12 lg:col-span-4",title:"SHIPPED \xb7 병합된 PR",stat:"".concat("github"===$?"GITHUB":"LOG"," \xb7 ").concat(D>=60?"".concat(D/60,"H"):"".concat(D,"M")),children:[(0,a.jsxs)("div",{className:"flex items-end gap-3",children:[(0,a.jsx)(P,{value:eN.shipped,accent:b.SHIP}),(0,a.jsxs)("div",{className:"mb-3 flex flex-col gap-1",children:[(0,a.jsx)(C,{publicCapture:G,tone:"ok",children:"MERGED"}),eN.selfHealRuns>0&&(0,a.jsx)(C,{publicCapture:G,tone:"heal",children:"SELF-HEALED"}),f.snapshot.counters.blocked>0&&(0,a.jsxs)(C,{publicCapture:G,tone:"bad",children:["BLOCKED ",f.snapshot.counters.blocked]})]})]}),(0,a.jsxs)("div",{className:"mt-1 grid grid-cols-3 gap-2 border-t border-indigo-400/10 pt-2",children:[(0,a.jsx)(R,{publicCapture:G,label:"SELF-HEAL",value:null===eN.selfHealRate?"—":"".concat(eN.selfHealRate,"%"),color:b.HEAL}),(0,a.jsx)(R,{publicCapture:G,label:"RUNS",value:String(f.snapshot.runs.length),color:"#c7d2fe"}),(0,a.jsx)(R,{publicCapture:G,label:"DECISIONS",value:String(eN.decisions),color:b.PLAN})]})]}),(0,a.jsx)(A,{publicCapture:G,className:"col-span-12 lg:col-span-4",title:(null==eM?void 0:eM.why)==="merged"?"BEST RUN \xb7 오늘 최고의 런":"NOW \xb7 지금 런",stat:eS?"R ".concat(null!=(n=f.rounds[eS.runId])?n:0,"/3"):"—",children:eS?(0,a.jsxs)("button",{type:"button",className:"block w-full text-left",onClick:()=>null==V?void 0:V(eS.runId),"data-live-v5-best":!0,children:[(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("span",{className:"font-mono ".concat(G?"text-sm":"text-[11px]"," text-slate-400"),children:G?ey(eS.runId):"owner"===Y?eS.runId:"런"}),(null==eM?void 0:eM.why)==="merged"?(0,a.jsxs)(C,{publicCapture:G,tone:"ok",children:["VERIFIED \xb7 MERGED",eS.pr?G?" PR":" #".concat(eS.pr):""]}):(0,a.jsx)(C,{publicCapture:G,tone:"live",children:"IN FLIGHT"})]}),(0,a.jsxs)("div",{className:"mt-1 flex items-baseline gap-3",children:[(0,a.jsx)("span",{className:"font-mono text-6xl font-semibold tabular-nums text-indigo-100",style:{textShadow:"0 0 24px #818cf888"},children:eS.pr?G?"PR":"#".concat(eS.pr):eS.current?r.fQ[eS.current]:"—"}),(0,a.jsxs)("span",{className:"font-mono ".concat(G?"text-sm":"text-xs"," text-slate-400"),children:[eS.events," signals \xb7 라운드 ",null!=(p=f.rounds[eS.runId])?p:0]})]}),(0,a.jsx)("div",{className:"mt-2 flex flex-wrap gap-1",children:eT.map(e=>{let t=eS.stages[e];return(0,a.jsxs)(C,{publicCapture:G,tone:"bad"===t?"bad":"ok"===t?"ok":"dim",children:[r.fQ[e],"ok"===t?" ✓":"bad"===t?" ✗":""]},e)})})]}):(0,a.jsx)("p",{className:"py-6 ".concat(G?"text-sm":"text-xs"," text-slate-500"),children:"이 창에 런 신호가 없다 — ▶ REPLAY 로 최근 판단을 본다."})}),(0,a.jsx)(A,{publicCapture:G,className:"col-span-12 lg:col-span-4",title:"LLM \xb7 ".concat(ev.bucketMin,"분 봉 ⊕ 요청 창"),stat:"".concat(ef.length," REQ \xb7 ").concat(I(eA)," TOK"),children:(0,a.jsxs)("div",{className:"grid grid-cols-5 gap-2",children:[(0,a.jsx)(O,{publicCapture:G,candles:ev.candles,color:ew,unit:"/".concat(ev.bucketMin,"M"),className:"col-span-3"}),(0,a.jsxs)("ul",{className:"col-span-2 ".concat(G?"min-h-28":"h-28"," space-y-0.5 ").concat(G?"overflow-visible":"overflow-hidden"," font-mono ").concat(G?"text-sm":"text-[11px]"," ").concat(G?"text-sm":"lg:text-[10px]"),"data-live-v5-book":!0,children:[ef.slice(0,10).map((e,t)=>(0,a.jsxs)("li",{className:"relative flex justify-between gap-1 ".concat(G?"overflow-visible":"overflow-hidden"," px-1 ").concat(0===t?"live-line-in":""),children:[(0,a.jsx)("span",{className:"absolute inset-y-0 right-0 opacity-20",style:{width:"".concat((e.input+e.output)/eR*100,"%"),background:ew(e.model)}}),(0,a.jsx)("span",{className:G?"relative whitespace-normal break-words":"relative truncate",style:{color:ew(e.model)},children:G?x(e.model):e.model}),(0,a.jsx)("span",{className:"relative tabular-nums text-slate-300",children:I(e.input+e.output)})]},"".concat(e.ts,"-").concat(t))),0===ef.length&&(0,a.jsx)("li",{className:"text-slate-500",children:"요청 없음"})]})]})})]}),(0,a.jsx)(A,{publicCapture:G,title:"EXECUTION CYCLE \xb7 하니스 한 바퀴",stat:"".concat(eS?"ROUND ".concat(null!=(m=f.rounds[eS.runId])?m:0,"/3 \xb7 "):"","NEXT ").concat(ei,"S"),children:(0,a.jsx)("div",{className:"grid grid-cols-3 gap-1.5 sm:grid-cols-6",children:r.lV.map((e,t)=>{let n=eS?eS.current===e:ev.load.busiest===e,s=null==eS?void 0:eS.stages[e];return(0,a.jsxs)("div",{"data-live-v5-stage":e,"data-hot":n?"1":void 0,className:"rounded-md border px-3 py-2 ".concat(n?"live-v5-hot":""),style:n?{borderColor:"#a78bfa",boxShadow:"0 0 18px #a78bfa66, inset 0 0 18px #a78bfa33",background:"rgba(124,58,237,.28)"}:{borderColor:"rgba(99,102,241,.18)",background:"rgba(2,6,23,.55)"},children:[(0,a.jsxs)("div",{className:"flex justify-between font-mono ".concat(G?"text-sm":"text-[11px]"," ").concat(G?"text-sm":"lg:text-[10px]"," text-slate-400"),children:[(0,a.jsx)("span",{children:String(t+1).padStart(2,"0")}),s&&(0,a.jsx)("span",{style:{color:w[s]},children:"ok"===s?"✓":"bad"===s?"✗":"●"})]}),(0,a.jsxs)("div",{className:"flex items-baseline justify-between",children:[(0,a.jsx)("span",{className:n?"text-sm font-semibold text-white":"text-sm text-slate-300",children:r.fQ[e]}),(0,a.jsx)("span",{className:"font-mono ".concat(G?"text-sm":"text-xs"," tabular-nums text-slate-400"),title:"지금 이 단계에 있는 런",children:ev.load.counts[e]})]})]},e)})})}),(0,a.jsxs)("div",{className:"grid grid-cols-12 gap-1.5",children:[(0,a.jsxs)(A,{publicCapture:G,className:"relative col-span-12 xl:col-span-10",title:"JUDGMENT GRAPH \xb7 FORCE",stat:"NODES ".concat(ed.nodes," \xb7 EDGES ").concat(ed.edges),bodyClass:"p-0",hot:!0,children:[(0,a.jsx)("canvas",{ref:_,className:"h-[370px] w-full bg-[radial-gradient(ellipse_at_center,rgba(79,70,229,.26),rgba(2,6,23,.96)_70%)]","aria-label":"판단 그래프"}),(0,a.jsx)("div",{className:"pointer-events-none absolute left-3 top-9 flex flex-col gap-0.5 rounded-md bg-slate-950/60 p-2 font-mono ".concat(G?"text-sm":"text-[11px]"," ").concat(G?"text-sm":"lg:text-[10px]"),children:eI.map(e=>{let{k:t,n}=e;return(0,a.jsxs)("span",{style:{color:b[t]},children:["● ",G?v(t):t," ",(0,a.jsx)("span",{className:"text-slate-400",children:n})]},t)})}),(0,a.jsx)("button",{type:"button",onClick:ej,disabled:en||0===f.stream.length,"data-elanous-action":"live-replay",className:"absolute bottom-3 right-3 rounded-full border border-indigo-400/40 bg-slate-950/70 px-3 py-1 font-mono ".concat(G?"text-sm":"text-[11px]"," ").concat(G?"text-sm":"lg:text-[10px]"," text-indigo-200 hover:bg-indigo-500/20 disabled:opacity-40"),title:"이 창의 판단을 옛것부터 빨리 감기(최근 40)",children:en?"REPLAY \xb7 ".concat(Q.current.length):"▶ REPLAY"}),ee&&(0,a.jsx)(q,{item:ee.item,folding:ee.folding,role:Y,publicCapture:G,runLabel:ey})]}),(0,a.jsx)(A,{publicCapture:G,className:"col-span-12 xl:col-span-2",title:"STATS",stat:"".concat(ei,"S"),children:(0,a.jsxs)("dl",{className:"grid grid-cols-2 gap-x-2 gap-y-1.5 font-mono","data-live-v5-stats":!0,children:[(0,a.jsx)(T,{publicCapture:G,label:"PATHS",value:f.stream.reduce((e,t)=>{var n;return e+(null!=(n=t.paths)?n:0)},0)||"—"}),(0,a.jsx)(T,{publicCapture:G,label:"CONV",value:f.convergence.length?"".concat(f.convergence.filter(e=>{var t;return(null==(t=e.points.at(-1))?void 0:t.asks)===0}).length,"/").concat(f.convergence.length):"—"}),(0,a.jsx)(T,{publicCapture:G,label:"ROUNDS AVG",value:eE.length?(eE.reduce((e,t)=>e+t,0)/eE.length).toFixed(1):"—"}),(0,a.jsx)(T,{publicCapture:G,label:"DECISIONS/MIN",value:eN.decisionsPerMin}),(0,a.jsx)(T,{publicCapture:G,label:"SIGNALS",value:E.length}),(0,a.jsx)(T,{publicCapture:G,label:"LLM REQ",value:ef.length}),G?(0,a.jsx)(T,{publicCapture:G,label:"MODELS",value:ev.ticker.length}):(0,a.jsx)(T,{publicCapture:G,label:"API ≈ USD",value:"$".concat(eC.toFixed(2))}),(0,a.jsx)(T,{publicCapture:G,label:"NEXT POLL",value:"".concat(ei,"s")})]})})]}),(0,a.jsxs)("div",{className:"grid grid-cols-12 gap-1.5",children:[(0,a.jsx)(A,{publicCapture:G,className:"col-span-12 md:col-span-6 xl:col-span-3",title:"MODEL \xd7 SITE \xb7 요청 수",stat:"MAX ".concat(ev.heat.max),children:(0,a.jsx)(F,{heat:ev.heat,color:ew,publicCapture:G})}),(0,a.jsx)(A,{publicCapture:G,className:"col-span-12 md:col-span-6 xl:col-span-3",title:"DISTRIBUTION \xb7 런 소요 ⊕ 요청 토큰",stat:"".concat(ev.spans," RUNS \xb7 ").concat(ef.length," REQ"),children:(0,a.jsxs)("div",{className:"grid grid-cols-2 gap-2",children:[(0,a.jsx)(W,{publicCapture:G,hist:ev.hist,label:e=>"".concat(e.toFixed(0),"분")}),(0,a.jsx)(W,{publicCapture:G,hist:ev.tokHist,label:e=>I(10**e)})]})}),(0,a.jsx)(A,{publicCapture:G,className:"col-span-12 md:col-span-6 xl:col-span-3",title:"CONVERGENCE \xb7 must-fix ⊕ GATE",stat:"".concat(f.convergence.length," PR"),children:(0,a.jsxs)("div",{className:"grid grid-cols-3 gap-2",children:[(0,a.jsx)("div",{className:"col-span-2",children:(0,a.jsx)(U,{publicCapture:G,series:f.convergence})}),(0,a.jsx)(H,{publicCapture:G,pass:ev.gate.pass,fail:ev.gate.fail,verdicts:f.snapshot.reviewVerdicts})]})}),(0,a.jsx)(A,{publicCapture:G,className:"col-span-12 md:col-span-6 xl:col-span-3",title:"EXECUTION LOG \xb7 LIVE",stat:"".concat(f.stream.length),bodyClass:"px-2 py-1",children:(0,a.jsxs)("ul",{className:"".concat(G?"min-h-[124px]":"h-[124px]"," space-y-0.5 ").concat(G?"overflow-visible":"overflow-hidden"," font-mono ").concat(G?"text-sm":"text-[11px]"," ").concat(G?"text-sm":"lg:text-[10.5px]"),"data-live-max-stream":!0,children:[f.stream.slice(0,9).map((e,t)=>(0,a.jsxs)("li",{className:"flex gap-1.5 ".concat(0===t?"live-line-in":""),style:"SHIP"===e.kind?{textShadow:"0 0 10px ".concat(b.SHIP)}:void 0,children:[(0,a.jsx)("span",{className:"shrink-0 text-slate-500",title:e.ts,children:(0,r.qo)(e.ts)}),(0,a.jsx)("span",{className:"w-14 shrink-0 rounded px-1 text-center",style:{color:b[e.kind],background:"".concat(b[e.kind],"1f")},children:G?"판단":e.kind}),(0,a.jsxs)("span",{className:G?"whitespace-normal break-words":"truncate",children:[G?eg(e):e.what,!G&&e.target&&(0,a.jsxs)("span",{className:"text-slate-500",children:[" → ",e.target]})]})]},"".concat(e.ts,"-").concat(t))),0===f.stream.length&&(0,a.jsx)("li",{className:"text-slate-500",children:"이 창에 판단 신호가 없다."})]})})]}),(0,a.jsxs)("div",{className:"flex flex-wrap gap-x-6 gap-y-1 rounded-md border border-indigo-400/10 bg-slate-950/60 px-3 py-1 font-mono ".concat(G?"text-sm":"text-[11px]"," ").concat(G?"text-sm":"lg:text-[10px]"," text-slate-400"),children:[(0,a.jsxs)("span",{children:["STACK ",(0,a.jsx)("span",{className:"text-slate-200",children:"elanous-core"})]}),(0,a.jsxs)("span",{children:["SOURCE ",(0,a.jsx)("span",{className:"text-slate-200",children:G?"본부":B})]}),(0,a.jsxs)("span",{children:["SIGNALS ",(0,a.jsx)("span",{className:"text-slate-200",children:E.length})]}),(0,a.jsxs)("span",{children:["LLM ",(0,a.jsxs)("span",{className:"text-slate-200",children:[ef.length," req"]})]}),(0,a.jsxs)("span",{children:["EMITTED ",(0,a.jsx)("span",{className:"text-slate-200",children:f.emitted})]}),G&&(0,a.jsx)("span",{className:"text-emerald-300","data-live-public-capture":!0,children:"PUBLIC CAPTURE \xb7 계정\xb7과금 가림"}),(0,a.jsx)("span",{className:"ml-auto",children:"EVERY NUMBER IS REAL \xb7 보이는 수는 전부 진짜"})]})]})}function I(e){return e>=1e6?"".concat((e/1e6).toFixed(1),"M"):e>=1e3?"".concat((e/1e3).toFixed(e>=1e5?0:1),"k"):String(Math.round(e))}function A(e){let{title:t,stat:n,children:s,className:r="",bodyClass:l="p-2.5",hot:o=!1,publicCapture:i}=e;return(0,a.jsxs)("section",{className:"".concat(i?"overflow-visible":"overflow-hidden"," rounded-lg border bg-slate-950/70 ").concat(r),style:o?{borderColor:"rgba(167,139,250,.7)",boxShadow:"0 0 22px #a78bfa33"}:{borderColor:"rgba(99,102,241,.16)"},"aria-label":t,"data-live-v5-panel":t,children:[(0,a.jsxs)("header",{className:"flex items-center justify-between border-b border-indigo-400/10 px-2.5 py-1 font-mono ".concat(i?"text-sm":"text-[11px]"," ").concat(i?"text-sm":"lg:text-[10.5px]"," tracking-[.08em] text-slate-400"),children:[(0,a.jsxs)("span",{children:["▸ ",t]}),n&&(0,a.jsx)("span",{className:"tabular-nums text-slate-300",children:n})]}),(0,a.jsx)("div",{className:l,children:s})]})}function C(e){let{tone:t,children:n,publicCapture:s}=e,r="ok"===t?b.SHIP:"bad"===t?b.ESCALATE:"heal"===t?b.HEAL:"dim"===t?"#a5b4fc":"#f0abfc";return(0,a.jsx)("span",{className:"inline-block ".concat(s?"whitespace-normal":"whitespace-nowrap"," rounded px-1.5 py-0.5 font-mono ").concat(s?"text-sm":"text-[11px]"," ").concat(s?"text-sm":"lg:text-[10px]"," font-semibold tracking-wider ").concat("live"===t?"live-v5-blink":""),style:{color:r,background:"".concat(r,"22"),boxShadow:"inset 0 0 0 1px ".concat(r,"66")},children:n})}function R(e){let{label:t,value:n,color:s,publicCapture:r}=e;return(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"font-mono ".concat(r?"text-sm":"text-[11px]"," ").concat(r?"text-sm":"lg:text-[9.5px]"," tracking-widest text-slate-500"),children:t}),(0,a.jsx)("div",{className:"font-mono text-3xl font-semibold tabular-nums",style:{color:s,textShadow:"0 0 14px ".concat(s,"55")},children:n})]})}function T(e){let{label:t,value:n,publicCapture:s}=e;return(0,a.jsxs)("div",{className:"border-b border-indigo-400/10 pb-1",children:[(0,a.jsx)("dt",{className:"".concat(s?"text-sm":"text-[11px]"," ").concat(s?"text-sm":"lg:text-[9.5px]"," tracking-widest text-slate-500"),children:t}),(0,a.jsx)("dd",{className:"text-lg font-semibold tabular-nums text-indigo-100",children:n})]})}function L(e){let{items:t,ariaLabel:n,slow:s=!1,bare:r=!1,publicCapture:l}=e;return(0,a.jsx)("div",{className:"relative overflow-hidden font-mono ".concat(l?"text-sm":"text-[11px]"," ").concat(r?"":"rounded-md border border-indigo-400/10 bg-slate-950/60 py-1"),"aria-label":n,children:0===t.length?(0,a.jsx)("span",{className:"px-3 text-slate-500",children:"—"}):(0,a.jsxs)("div",{className:"live-v5-marquee flex w-max",style:{animationDuration:"".concat(Math.max(30,t.length*(s?9:6)),"s")},children:[(0,a.jsx)("div",{className:"flex",children:t}),(0,a.jsx)("div",{className:"flex","aria-hidden":!0,children:t})]})})}function P(e){let{value:t,accent:n}=e,[r,l]=(0,s.useState)(t),[o,i]=(0,s.useState)(!1),c=(0,s.useRef)(t);return(0,s.useEffect)(()=>{let e=c.current;t>e&&(i(!0),setTimeout(()=>i(!1),700)),c.current=t;let n=performance.now(),a=0,s=r=>{let o=Math.min(1,(r-n)/900);l(e+(t-e)*(1-Math.pow(1-o,3))),o<1&&(a=requestAnimationFrame(s))};return a=requestAnimationFrame(s),()=>cancelAnimationFrame(a)},[t]),(0,a.jsx)("div",{className:"font-mono text-[112px] font-semibold leading-none tabular-nums",style:{color:n,textShadow:"0 0 ".concat(o?40:26,"px ").concat(n).concat(o?"cc":"66")},"data-live-max-gauge":"SHIPPED",children:Math.round(r)})}function O(e){let{candles:t,color:n,unit:s,className:r="",publicCapture:l}=e,o=Math.max(1,...t.map(e=>e.count)),i=240/t.length,c=(0,a.jsxs)("svg",{viewBox:"0 0 ".concat(240," ").concat(120),className:l?"h-28 w-full":"h-28 w-full ".concat(r),"data-live-v5-candles":!0,"aria-label":"분당 LLM 요청",children:[[.25,.5,.75].map(e=>(0,a.jsx)("line",{x1:0,x2:240,y1:120*e,y2:120*e,stroke:"#1e293b",strokeDasharray:"2 3"},e)),t.map((e,t)=>{let s=120;return Object.entries(e.byModel).map(e=>{let[r,l]=e,c=l/o*114;return s-=c,(0,a.jsx)("rect",{x:t*i+1,y:s,width:Math.max(1,i-2),height:c,fill:n(r),opacity:.85},"".concat(t,"-").concat(r))})}),!l&&(0,a.jsxs)("text",{x:238,y:10,fill:"#64748b",fontSize:8,fontFamily:"monospace",textAnchor:"end",children:[o,s]})]});return l?(0,a.jsxs)("div",{className:r,children:[c,(0,a.jsxs)("span",{className:"block break-words font-mono text-sm text-slate-400",children:[o,s]})]}):c}function F(e){let{heat:t,color:n,publicCapture:s}=e;return 0===t.models.length?(0,a.jsx)("p",{className:"py-6 ".concat(s?"text-sm":"text-xs"," text-slate-500"),children:"이 창에 요청이 없다."}):(0,a.jsxs)("table",{className:"w-full border-separate border-spacing-0.5 font-mono ".concat(s?"text-sm":"text-[11px]"," ").concat(s?"text-sm":"lg:text-[10px]"),"data-live-v5-heat":!0,children:[(0,a.jsx)("thead",{children:(0,a.jsxs)("tr",{children:[(0,a.jsx)("th",{}),t.sites.map(e=>(0,a.jsx)("th",{className:s?"max-w-16 whitespace-normal break-words font-normal text-slate-500":"max-w-16 truncate font-normal text-slate-500",children:s?function(e){let t=e.toLowerCase();if("stream-llm"===t||t.startsWith("stream-llm-"))return"대화";if("agent-turn"===t||t.startsWith("agent-turn-"))return"자리 턴";if("pod-rollup"===t||t.startsWith("pod-"))return"파드 작업";if(t.startsWith("stream-"))return"대화 작업";if(t.startsWith("agent-"))return"자리 작업";let n=m.get(e);return n||(n="작업 ".concat(m.size+1),m.set(e,n)),n}(e):e},e))]})}),(0,a.jsx)("tbody",{children:t.models.map(e=>(0,a.jsxs)("tr",{children:[(0,a.jsx)("td",{className:s?"max-w-24 whitespace-normal break-words pr-1":"max-w-24 truncate pr-1",style:{color:n(e)},children:s?x(e):e}),t.sites.map(n=>{var s;let r=null!=(s=t.cells["".concat(e,"|").concat(n)])?s:0,l=0===r?0:Math.min(5,Math.ceil(r/Math.max(1,t.max)*5));return(0,a.jsx)("td",{className:"rounded-sm px-1 py-0.5 text-center tabular-nums",style:{background:l?"rgba(167,139,250,".concat(.12+.15*l,")"):"rgba(30,41,59,.5)",color:l>=4?"#fff":"#cbd5e1"},children:r||"\xb7"},n)})]},e))})]})}function W(e){let{hist:t,label:n,publicCapture:s}=e,r=200/t.bins.length;return(0,a.jsxs)("div",{children:[(0,a.jsxs)("svg",{viewBox:"0 0 ".concat(200," ").concat(90),className:"h-20 w-full","data-live-v5-hist":!0,"aria-label":"분포",children:[(0,a.jsx)("defs",{children:(0,a.jsxs)("linearGradient",{id:"v5hist",x1:"0",x2:"1",y1:"0",y2:"0",children:[(0,a.jsx)("stop",{offset:"0%",stopColor:b.HEAL}),(0,a.jsx)("stop",{offset:"60%",stopColor:b.PLAN}),(0,a.jsx)("stop",{offset:"100%",stopColor:b.ROUTE})]})}),t.bins.map((e,n)=>{let s=t.max?e/t.max*86:0;return(0,a.jsx)("rect",{x:n*r+.5,y:90-s,width:Math.max(1,r-1),height:s,fill:"url(#v5hist)",opacity:.9},n)}),(0,a.jsx)("line",{x1:0,x2:200,y1:89.5,y2:89.5,stroke:"#334155"})]}),(0,a.jsxs)("div",{className:"flex justify-between font-mono ".concat(s?"text-sm":"text-[11px]"," ").concat(s?"text-sm":"lg:text-[9.5px]"," text-slate-500"),children:[(0,a.jsx)("span",{children:t.max?n(t.lo):"—"}),(0,a.jsx)("span",{children:t.max?n(t.hi):""})]})]})}function H(e){let{pass:t,fail:n,verdicts:s,publicCapture:r}=e,l=[{name:"GATE ✓",count:t,c:b.SHIP},{name:"GATE ✗",count:n,c:b.ESCALATE},...s.slice(0,3).map(e=>({name:e.name.toUpperCase(),count:e.count,c:b.VERIFY}))],o=Math.max(1,...l.map(e=>e.count));return(0,a.jsx)("ul",{className:"space-y-1 font-mono ".concat(r?"text-sm":"text-[11px]"," ").concat(r?"text-sm":"lg:text-[9.5px]"),"data-live-v5-gate":!0,children:l.map(e=>(0,a.jsxs)("li",{children:[(0,a.jsxs)("div",{className:"flex justify-between text-slate-400",children:[(0,a.jsx)("span",{className:r?"whitespace-normal break-words":"truncate",children:e.name}),(0,a.jsx)("span",{className:"tabular-nums text-slate-200",children:e.count})]}),(0,a.jsx)("div",{className:"h-1.5 rounded-full bg-slate-800",children:(0,a.jsx)("div",{className:"h-1.5 rounded-full",style:{width:"".concat(e.count/o*100,"%"),background:e.c,boxShadow:"0 0 8px ".concat(e.c,"88")}})})]},e.name))})}function q(e){var t;let{item:n,folding:s,role:l,publicCapture:o,runLabel:i}=e,{line:c}=n,d=b[c.kind];return(0,a.jsxs)("div",{"data-live-decision-card":c.kind,className:"pointer-events-none absolute left-1/2 top-12 w-[min(92%,580px)] rounded-xl border bg-slate-950/85 p-3 backdrop-blur transition-all duration-200",style:{borderColor:"".concat(d,"88"),boxShadow:"0 0 32px ".concat(d,"55"),opacity:+!s,transform:"translateX(-50%) scale(".concat(s&&!o?.6:1,")")},children:[(0,a.jsxs)("div",{className:"mb-2 flex items-center gap-2 font-mono ".concat(o?"text-sm":"text-[11px]"," ").concat(o?"text-sm":"lg:text-[10px]"),children:[(0,a.jsxs)("span",{style:{color:d},children:["● ",c.kind]}),(0,a.jsx)("span",{className:"text-slate-500",children:(0,r.qo)(c.ts)}),(o||"owner"===l)&&c.runId&&(0,a.jsx)("span",{className:"text-slate-500",children:o?i(c.runId):c.runId.replace(/^run-/,"").slice(0,8)}),c.paths?(0,a.jsxs)("span",{className:"ml-auto text-slate-400",children:["PATHS ",c.paths]}):null]}),(0,a.jsxs)("div",{className:"grid grid-cols-3 gap-2 ".concat(o?"text-sm":"text-[11px]"," leading-snug"),children:[(0,a.jsx)(D,{publicCapture:o,label:"무엇 \xb7 WHAT",value:o?v(c.kind):c.what,strong:!0}),(0,a.jsx)(D,{publicCapture:o,label:"왜 \xb7 WHY",value:o?v(c.kind):null!=(t=(0,r.hS)(c.why,l))?t:c.purpose}),(0,a.jsx)(D,{publicCapture:o,label:"어디로 \xb7 TO",value:o?c.target?v(c.kind):null:c.target,accent:d})]})]})}function D(e){let{label:t,value:n,strong:s=!1,accent:r,publicCapture:l}=e;return(0,a.jsxs)("div",{className:"min-w-0",children:[(0,a.jsx)("div",{className:"font-mono ".concat(l?"text-sm":"text-[11px]"," ").concat(l?"text-sm":"lg:text-[9px]"," tracking-widest text-slate-500"),children:t}),(0,a.jsx)("div",{className:s?"".concat(l?"break-words":"line-clamp-3"," font-medium text-slate-100"):"".concat(l?"break-words":"line-clamp-3"," text-slate-300"),style:r&&n?{color:r}:void 0,children:null!=n?n:"—"})]})}function U(e){let{series:t,publicCapture:n}=e,s=Math.max(1,...t.flatMap(e=>e.points.map(e=>e.asks))),r=Math.max(3,...t.flatMap(e=>e.points.map(e=>e.round))),l=e=>20+(e-1)/Math.max(1,r-1)*146,o=e=>84-e/s*72,i=Array.from({length:r},(e,t)=>t+1);return(0,a.jsxs)("div",{"data-live-convergence":!0,children:[0===t.length?(0,a.jsx)("div",{className:"py-8 text-center ".concat(n?"text-sm":"text-[11px]"," text-slate-500"),children:"이 창에 리뷰 라운드가 없다."}):(0,a.jsxs)("svg",{viewBox:"0 0 ".concat(200," ").concat(100),className:"h-24 w-full",children:[(0,a.jsx)("line",{x1:20,y1:84,x2:166,y2:84,stroke:"#334155"}),(0,a.jsx)("line",{x1:20,y1:12,x2:20,y2:84,stroke:"#334155"}),i.map(e=>(0,a.jsxs)("g",{children:[(0,a.jsx)("line",{x1:l(e),y1:12,x2:l(e),y2:84,stroke:"#1e293b",strokeDasharray:"2 3"}),!n&&(0,a.jsxs)("text",{x:l(e),y:96,fill:"#64748b",fontSize:8,fontFamily:"monospace",textAnchor:"middle",children:["R",e]})]},e)),!n&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("text",{x:17,y:o(s)+3,fill:"#64748b",fontSize:8,fontFamily:"monospace",textAnchor:"end",children:s}),(0,a.jsx)("text",{x:17,y:o(0)+3,fill:b.SHIP,fontSize:8,fontFamily:"monospace",textAnchor:"end",children:"0"})]}),t.slice(0,6).map((e,t)=>{let s=e.points.at(-1),r=0===s.asks?b.SHIP:["#818cf8","#fbbf24","#38bdf8","#f0abfc","#fb7185"][t%5];return(0,a.jsxs)("g",{children:[(0,a.jsx)("polyline",{fill:"none",stroke:r,strokeWidth:1.6,points:e.points.map(e=>"".concat(l(e.round),",").concat(o(e.asks))).join(" ")}),e.points.map(e=>(0,a.jsx)("circle",{cx:l(e.round),cy:o(e.asks),r:2.5,fill:r},e.round)),!n&&(0,a.jsxs)("text",{x:l(s.round)+4,y:o(s.asks)-3,fill:r,fontSize:8,fontFamily:"monospace",children:["#",e.pr," ",s.asks]})]},e.pr)})]}),n&&t.length>0&&(0,a.jsxs)("div",{className:"flex flex-wrap items-start justify-between gap-1 font-mono text-sm text-slate-400","data-live-convergence-labels":!0,children:[(0,a.jsxs)("span",{className:"flex flex-col",children:[(0,a.jsx)("span",{children:s}),(0,a.jsx)("span",{className:"text-emerald-300",children:"0"})]}),(0,a.jsx)("span",{className:"flex flex-wrap gap-x-2",children:i.map(e=>(0,a.jsxs)("span",{children:["R",e]},e))}),(0,a.jsx)("span",{className:"flex flex-col break-words",children:t.slice(0,6).map((e,t)=>{let n=e.points.at(-1);return(0,a.jsxs)("span",{style:{color:0===n.asks?b.SHIP:["#818cf8","#fbbf24","#38bdf8","#f0abfc","#fb7185"][t%5]},children:["#",e.pr," ",n.asks]},e.pr)})})]})]})}},67200:(e,t,n)=>{n.d(t,{Er:()=>s,cj:()=>c,dc:()=>l,yR:()=>i});let a=/^(oauth\.|harness\.decision|llm\.router)/;function s(e){let t=[],n=e=>{"string"==typeof e&&e.trim()&&!t.includes(e.trim())&&t.push(e.trim())};for(let t of e){var s;let e=null!=(s=t.data)?s:{};if(t.category.startsWith("oauth.")){for(let t of["from","to","name","account"])n(e[t]);if(Array.isArray(e.usage))for(let t of e.usage)n(null==t?void 0:t.name);continue}if(a.test(t.category))for(let t of(n(e.account),["what","why","reason"])){let a=e[t];if("string"==typeof a)for(let e of a.matchAll(/계정\s+([A-Za-z0-9][\w.-]*)/g))n(e[1])}}return t}function r(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function l(e){let t=new Map(e.map((e,t)=>[e,"account-".concat(t+1)])),n=e.length?RegExp("(^|[^\\w-])(".concat(e.map(r).sort((e,t)=>t.length-e.length).join("|"),")(?![\\w-])"),"g"):null,a=new Map;return(e,s)=>{let r=e.replace(/\b[a-z0-9-]+\.tail[0-9a-f]+\.ts\.net\b/gi,"tailnet-host").replace(/\bmsb\d+\b/gi,e=>(e=>{let t=e.toLowerCase();a.has(t)||a.set(t,"remote-".concat(a.size+1));let n=a.get(t);return e===e.toUpperCase()?n.toUpperCase():n})(e)).replace(/\bmbp\b/gi,e=>e===e.toUpperCase()?"LOCAL":"local").replace(/\/Users\/[^/\s"']+/g,"~").replace(/(크레딧|credits?|💳)(\s*[:=]?\s*)[\d][\d,.]*/gi,"$1$2•••").replace(/[\d][\d,.]*(\s*)(크레딧|credits?)/gi,"•••$1$2").replace(/\$\s?[\d][\d,.]*/g,"$•••").replace(/(잔량?|remaining|left)(\s*[:=]?\s*)(?:[A-Za-z0-9][\w.-]*\s+)?\d+(?:\.\d+)?\s?%/gi,"$1$2•••");return s&&n&&(r=r.replace(n,(e,n,a)=>{var s;return"".concat(n).concat(null!=(s=t.get(a))?s:"account")})),r}}function o(e,t){if("string"==typeof e)return t(e);if(Array.isArray(e))return e.map(e=>o(e,t));if(e&&"object"==typeof e){let n={};for(let[a,s]of Object.entries(e))"apiEquivalentUsd"===a||"usd"===a||/credit(s|Balance)?$/i.test(a)||(n[a]=o(s,t));return n}return e}function i(e){let t=l(s(e));return e.map(e=>{let n=a.test(e.category);return{...e,event:t(e.event,!1),data:e.data?o(e.data,e=>t(e,n)):e.data}})}function c(e,t){let n=l(t);return o(e,e=>n(e,!0))}},70324:(e,t,n)=>{n.d(t,{D3:()=>x,GJ:()=>g,Gp:()=>l,HR:()=>p,IE:()=>f,JW:()=>u,Jo:()=>v,NZ:()=>m,OL:()=>o,cD:()=>h,f:()=>c,fT:()=>b,kJ:()=>i,lb:()=>d});var a=n(94361);let s=e=>"string"==typeof e&&e.trim()?e:null,r=e=>"number"==typeof e&&Number.isFinite(e)?e:0;function l(e){let t=[];for(let i of e){var n,a,l,o;if(!i.category.startsWith("llm.usage"))continue;let e=null!=(n=i.data)?n:{},c=Date.parse(i.ts);if(!Number.isFinite(c))continue;let d=null!=(a=e.cost)?a:{};t.push({ts:i.ts,t:c,model:null!=(l=s(e.model))?l:"unknown",site:null!=(o=s(e.site))?o:"unknown",billing:s(e.billing),provider:s(e.billingProvider),input:r(e.inputTokens),output:r(e.outputTokens),cache:r(e.cacheReadInputTokens),apiUsd:r(d.apiEquivalentUsd)})}return t.sort((e,t)=>t.t-e.t)}function o(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:30,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:6e4,s=Math.floor(t/a)*a-(n-1)*a,r=Array.from({length:n},(e,t)=>({t:s+t*a,count:0,tokens:0,byModel:{}}));for(let t of e){var l;let e=Math.floor((t.t-s)/a);if(e<0||e>=n)continue;let o=r[e];o.count+=1,o.tokens+=t.input+t.output,o.byModel[t.model]=(null!=(l=o.byModel[t.model])?l:0)+1}return r}function i(e,t,n){let a=t-n/2,s=new Map;for(let l of e){var r;if(l.t<t-n)continue;let e=null!=(r=s.get(l.model))?r:{count:0,tokens:0,late:0,early:0};e.count+=1,e.tokens+=l.input+l.output,l.t>=a?e.late+=1:e.early+=1,s.set(l.model,e)}return[...s.entries()].map(e=>{let[t,n]=e;return{model:t,count:n.count,tokens:n.tokens,delta:n.late>n.early?1:n.late<n.early?-1:0}}).sort((e,t)=>t.count-e.count)}function c(e){var t,n,a;let s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:7,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:4,l=new Map,o=new Map;for(let a of e)l.set(a.model,(null!=(t=l.get(a.model))?t:0)+1),o.set(a.site,(null!=(n=o.get(a.site))?n:0)+1);let i=[...l.entries()].sort((e,t)=>t[1]-e[1]).slice(0,s).map(e=>{let[t]=e;return t}),c=[...o.entries()].sort((e,t)=>t[1]-e[1]).slice(0,r).map(e=>{let[t]=e;return t}),d={},u=0;for(let t of e){if(!i.includes(t.model)||!c.includes(t.site))continue;let e="".concat(t.model,"|").concat(t.site);d[e]=(null!=(a=d[e])?a:0)+1,u=Math.max(u,d[e])}return{models:i,sites:c,cells:d,max:u}}function d(e){let t=new Map;for(let a of e){var n;let e=s(null==(n=a.data)?void 0:n.runId),r=Date.parse(a.ts);if(!e||!Number.isFinite(r))continue;let l=t.get(e);l?(l.lo=Math.min(l.lo,r),l.hi=Math.max(l.hi,r)):t.set(e,{lo:r,hi:r})}return[...t.entries()].map(e=>{let[t,n]=e;return{runId:t,ms:n.hi-n.lo}})}function u(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:40,n=Array(t).fill(0);if(0===e.length)return{bins:n,lo:0,hi:0,max:0};let a=Math.min(...e),s=Math.max(...e),r=(s-a)/t||1;for(let s of e)n[Math.min(t-1,Math.floor((s-a)/r))]+=1;return{bins:n,lo:a,hi:s,max:Math.max(...n)}}function p(e){let t=Object.fromEntries(a.lV.map(e=>[e,0]));for(let n of e.snapshot.runs)n.current&&(t[n.current]+=1);let n=null;for(let e of a.lV)t[e]>0&&(!n||t[e]>t[n])&&(n=e);return{counts:t,busiest:n}}function h(e){let t=0,n=0;for(let s of e){let e=(0,a.dl)(s);"gate"===e.stage&&("ok"===e.tone?t+=1:"bad"===e.tone&&(n+=1))}return{pass:t,fail:n}}function m(e){let t=new Set,n=new Set;for(let o of e){var a,l;if(!o.category.startsWith("review-loop"))continue;let e=null!=(a=o.data)?a:{},i=null!=(l=s(e.pr))?l:r(e.prNumber)?String(r(e.prNumber)):null;i&&(("rework-start"===o.event||"judge-verdict"===o.event&&r(e.asks)>0)&&t.add(i),/merged/.test(o.event)&&n.add(i))}return[...t].filter(e=>n.has(e))}function f(e){let t=new Map;for(let a of e){var n;let e=s(null==(n=a.data)?void 0:n.runId);e&&a.instance&&!t.has(e)&&t.set(e,a.instance)}return[...t.entries()].map(e=>{let[t,n]=e;return{runId:t,instance:n}})}function x(e){let t=new Map;for(let i of e){var n,a,l,o;let e=s(null==(n=i.data)?void 0:n.runId);if(!e)continue;let c=Date.parse(i.ts),d=null;if("decompose-and-retry.applied"===i.event&&Array.isArray(null==(a=i.data)?void 0:a.pieceFeatures))d=i.data.pieceFeatures.map(e=>"string"==typeof e?e:"").filter(Boolean);else if("goal-steps-decomposed"===i.event&&r(null==(l=i.data)?void 0:l.stepCount)>1){let e=Math.min(12,r(null==(o=i.data)?void 0:o.stepCount));d=Array.from({length:e},(t,n)=>"단계 ".concat(n+1,"/").concat(e))}if(!d||0===d.length)continue;let u=t.get(e);(!u||c>=u.t)&&t.set(e,{t:c,pieces:d.slice(0,12)})}return[...t.entries()].map(e=>{let[t,n]=e;return{runId:t,pieces:n.pieces}})}function g(e){let t=[];for(let a of e){var n;if("harness.substrate"!==a.category||"dispatch-pod"!==a.event)continue;let e=s(null==(n=a.data)?void 0:n.podPool);e&&t.push({pool:e,ts:a.ts})}return t}function v(e){let t=new Map,n=new Map;for(let u of e){var l,o,i,c,d;let e=s(null==(l=u.data)?void 0:l.runId);if(!e)continue;u.category.startsWith("review-loop")&&"rework-start"===u.event&&t.set(e,Math.max(null!=(i=t.get(e))?i:0,r(null==(o=u.data)?void 0:o.round)||(null!=(c=t.get(e))?c:0)+1));let p=(0,a.dl)(u);"gate"===p.stage&&"bad"===p.tone&&n.set(e,(null!=(d=n.get(e))?d:0)+1)}return[...[...t.entries()].map(e=>{let[t,n]=e;return{runId:t,stage:"review",retries:n}}),...[...n.entries()].map(e=>{let[t,n]=e;return{runId:t,stage:"gate",retries:n}})]}function b(e){let t=new Map;for(let r of e){var n;let e=s(null==(n=r.data)?void 0:n.runId);if(!e)continue;let{stage:l,tone:o}=(0,a.dl)(r),i="".concat(e,"|").concat(r.category,".").concat(r.event),c=t.get(i);if(c){c.count+=1,c.bad||(c.bad="bad"===o);continue}t.set(i,{runId:e,key:i,label:r.event,stage:l,count:1,bad:"bad"===o})}return[...t.values()]}},85303:(e,t,n)=>{let a;n.d(t,{cY:()=>d,x8:()=>o});let s={debug:0,info:1,warn:2,error:3},r="/v1/debug-logs/batch",l=null;function o(e){l=e}class i{health(){return{pending:this.queue.length,consecutiveFailures:this.consecutiveFailures,lastOkAt:this.lastOkAt,droppedByCap:this.droppedByCap,fallbackBatches:this.fallbackBatches}}push(e){if(!(s[function(e){let t=e.slice(e.lastIndexOf(".")+1).toLowerCase();return/^(error|exception|crash|fail|failed)$/.test(t)?"error":/^(warn|degraded|timeout)$/.test(t)?"warn":/^(boot|ready|start|begin|open|ok|done|resolve|end|stop|close)$/.test(t)?"info":"debug"}(e.category)]<s[this.minLevel])){if(this.queue.push(e),this.queue.length>500){let e=this.queue.length-500;this.droppedByCap+=e,this.queue.splice(0,e)}if(this.queue.length>=100&&!this.inFlight){null!==this.timer&&(clearTimeout(this.timer),this.timer=null),this.flush();return}null===this.timer&&(this.timer=setTimeout(()=>{this.flush()},this.flushMs))}}async flush(){if(this.timer&&(clearTimeout(this.timer),this.timer=null),this.inFlight||0===this.queue.length)return;let e=this.queue.slice(0,100);this.inFlight=!0;let t=!1,n=JSON.stringify({records:e});try{var a,s;t=await (a=this.fetchFn(n),s=this.postTimeoutMs,new Promise((e,t)=>{let n=setTimeout(()=>t(Error("debug-forward timeout after ".concat(s,"ms"))),s);a.then(t=>{clearTimeout(n),e(t)},e=>{clearTimeout(n),t(e)})}))}catch(e){t=!1}finally{this.inFlight=!1}if(!t){if(this.consecutiveFailures+=1,this.consecutiveFailures>=2&&l)try{await l(JSON.stringify({records:[...e,this.blockedNotice()]}))&&(this.fallbackBatches+=1)}catch(e){}this.wasFailing=!0,this.scheduleRetry();return}let r=this.lastOkAt;this.lastOkAt=Date.now();let o=this.consecutiveFailures;this.consecutiveFailures=0,this.queue.splice(0,e.length),this.wasFailing&&(this.wasFailing=!1,this.queue.push({ts:new Date().toISOString(),category:"pwa.debug-forwarder.recovered",event:"recovered",data:{consecutiveFailures:o,droppedByCap:this.droppedByCap,fallbackBatches:this.fallbackBatches,pending:this.queue.length,previousOkAt:r},source:{platform:"pwa"}})),this.queue.length>0&&null===this.timer&&(this.timer=setTimeout(()=>{this.flush()},this.flushMs))}scheduleRetry(){if(null!==this.timer||0===this.queue.length)return;let e=Math.min(this.flushMs*2**this.consecutiveFailures,3e4);this.timer=setTimeout(()=>{this.flush()},e)}blockedNotice(){return{ts:new Date().toISOString(),category:"pwa.debug-forwarder.http-blocked",event:"http-blocked",data:{consecutiveFailures:this.consecutiveFailures,pending:this.queue.length,droppedByCap:this.droppedByCap,lastOkAt:this.lastOkAt,via:"acp-fallback"},source:{platform:"pwa"}}}beaconFlush(){if(0!==this.queue.length)try{if("undefined"!=typeof navigator&&"function"==typeof navigator.sendBeacon){let e=this.queue.slice(0,100),t=new Blob([JSON.stringify({records:e})],{type:"application/json"});navigator.sendBeacon(r,t)&&this.queue.splice(0,e.length)}}catch(e){}}get pending(){return this.queue.length}constructor(e=c,t="debug",n=1e4,a=100){this.fetchFn=e,this.minLevel=t,this.postTimeoutMs=n,this.flushMs=a,this.queue=[],this.timer=null,this.inFlight=!1,this.consecutiveFailures=0,this.lastOkAt=null,this.droppedByCap=0,this.fallbackBatches=0,this.wasFailing=!1}}async function c(e){return(await fetch(r,{method:"POST",headers:{"content-type":"application/json"},body:e,keepalive:!0,..."undefined"!=typeof AbortSignal&&"function"==typeof AbortSignal.timeout?{signal:AbortSignal.timeout(1e4)}:{}})).ok}function d(e,t){if("undefined"==typeof console)return;let n=new Date().toISOString();if(void 0!==t){let a="";try{let e=new WeakSet;a=JSON.stringify(t,(t,n)=>{if("bigint"==typeof n)return"".concat(n.toString(),"n");if("function"==typeof n)return"[fn ".concat(n.name||"anon","]");if(n&&"object"==typeof n){if(e.has(n))return"[circular]";e.add(n)}return n})}catch(e){a="[unserializable: ".concat(String(e),"]")}a&&a.length>800&&(a=a.slice(0,797)+"..."),console.debug("[".concat(n,"] ").concat(e," ").concat(a),t),u(n,e,a)}else console.debug("[".concat(n,"] ").concat(e)),u(n,e,void 0)}function u(e,t,n){let s,r=function(){if(void 0!==a)return a;let e=function(){try{let e="off"!==window.localStorage.getItem("elanous.pwa.debug.forward"),t=window.localStorage.getItem("elanous.pwa.debug.forwardLevel");return{forward:e,level:"info"===t||"warn"===t||"error"===t?t:"debug"}}catch(e){return{forward:!0,level:"debug"}}}();if(!e.forward)return a=null,null;let t=new i(c,e.level,1e4,1500);try{window.addEventListener("visibilitychange",()=>{"hidden"===document.visibilityState&&t.beaconFlush()})}catch(e){}return a=t,t}();if(!r)return;let l=t.slice(t.lastIndexOf(".")+1)||t;if(void 0!==n&&""!==n)try{s=JSON.parse(n)}catch(e){s=n}r.push({ts:e,category:t,event:l,...void 0!==s?{data:s}:{},source:{platform:"pwa"}})}},87589:(e,t,n)=>{n.d(t,{HI:()=>l});var a=n(75699),s=n(64662),r=n(67330);function l(e){var t,n,l;let o=(0,r.M1)(),i=(t,n)=>{var a;return{queryKey:["live","logs",t,null!=(a=e.store)?a:"",e.windowMinutes],queryFn:()=>o.getLogs({category:t,since:"".concat(e.windowMinutes,"m"),limit:n,store:e.store}),refetchInterval:5e3}},c=(0,s.I)(i("goal-author,harness.frontdoor,harness.substrate,harness.boundary,harness.role-llm,dev-pipeline,self-dev,self-gate,review-loop",1500)),d=(0,s.I)(i("llm.usage",2e3)),u=(0,s.I)(i("harness.decision,oauth.codex-account,harness.boundary",300)),p=(0,s.I)(i("research",300)),h=(0,a.useMemo)(()=>{var e,t,n,a,s,r,l,o;return[...null!=(s=null==(e=c.data)?void 0:e.logs)?s:[],...null!=(r=null==(t=d.data)?void 0:t.logs)?r:[],...null!=(l=null==(n=u.data)?void 0:n.logs)?l:[],...null!=(o=null==(a=p.data)?void 0:a.logs)?o:[]]},[c.data,d.data,u.data,p.data]),m={data:(0,a.useMemo)(()=>({ok:!0,logs:h,count:h.length}),[h]),error:null!=(l=null!=(n=null!=(t=c.error)?t:d.error)?n:u.error)?l:null,dataUpdatedAt:Math.max(c.dataUpdatedAt,d.dataUpdatedAt,u.dataUpdatedAt,p.dataUpdatedAt),truncated:[c,d,u].some(e=>e.data&&e.data.count>=(e===d?2e3:e===c?1500:300)),...function(e){let t=new Set,n=new Set,a=null;for(let l of e){var s,r;for(let e of null!=(s=null==l?void 0:l.stores)?s:[])t.add(e);for(let e of null!=(r=null==l?void 0:l.failedStores)?r:[])n.add(e.name);"number"==typeof(null==l?void 0:l.registeredStores)&&(a=Math.max(null!=a?a:0,l.registeredStores))}return{stores:[...t],failedStores:[...n],registeredStores:a}}([c.data,d.data,u.data,p.data])};return{logs:m,runs:(0,s.I)({queryKey:["live","runs"],queryFn:()=>o.getHarnessRuns(),refetchInterval:6e4}),instances:(0,s.I)({queryKey:["live","instances"],queryFn:()=>o.getLogInstances(),staleTime:6e4})}}},93982:(e,t,n)=>{n.d(t,{RT:()=>h});var a=n(94451),s=n(75699),r=n(78179),l=n.n(r),o=n(64662),i=n(67330),c=n(94361),d=n(85303);let u={"no-screen-key":"이 인스턴스 로그에 이 런의 화면 키가 없다 — 다른 우주(시험\xb7Pod)에서 돈 런이면 그 우주에서 본다.","screen-missing":"화면 키는 있는데 화면 파일이 없다 — 런이 끝나 화면이 정리됐을 수 있다.","log-store-missing":"이 인스턴스에 로그 저장소가 없다.","log-store-unreadable":"로그 저장소를 읽지 못했다."};function p(e){var t,n;let{runId:s,run:r,screen:o,screenError:i,lines:d,stopState:p,stopMessage:h,onStop:m,onConfirmStop:f,onCancelStop:x,onClose:g,max:v}=e,b=!!(null==o?void 0:o.stoppable);return(0,a.jsxs)("section",{className:"space-y-2 rounded-lg border border-primary/40 bg-card/60 p-3","aria-label":"런 서랍","data-live-run-drawer":s,children:[(0,a.jsxs)("header",{className:"flex flex-wrap items-center gap-2 text-sm",children:[(0,a.jsx)("span",{className:"font-mono text-xs text-muted-foreground",children:s}),(null==r?void 0:r.current)&&(0,a.jsx)("span",{className:"rounded bg-primary/15 px-1.5 py-0.5 text-[11px]",children:c.fQ[r.current]}),(null==r?void 0:r.blocked)&&(0,a.jsx)("span",{className:"rounded bg-error/15 px-1.5 py-0.5 text-[11px] text-error",children:"막힘"}),(null==r?void 0:r.pr)&&(0,a.jsxs)("span",{className:"font-mono text-[11px]",children:["PR #",r.pr]}),(0,a.jsxs)("span",{className:"ml-auto flex items-center gap-2",children:[v&&("confirm"===v.state?(0,a.jsxs)("span",{className:"flex items-center gap-1 text-xs",role:"alertdialog","aria-label":"MAX 이 런만 확인",children:[(0,a.jsx)("span",{className:"text-amber-500",children:"이 런만 30분 상세 계측(부하가 든다)?"}),(0,a.jsx)("button",{type:"button",onClick:v.confirm,className:"rounded-md border border-amber-500 px-2 py-1 text-amber-600 hover:bg-amber-500/10","data-elanous-action":"live-run-max-confirm",children:"켜기"}),(0,a.jsx)("button",{type:"button",onClick:v.cancel,className:"rounded-md px-2 py-1 text-muted-foreground hover:bg-muted",children:"취소"})]}):(0,a.jsx)("button",{type:"button",onClick:v.ask,disabled:"on"===v.state,className:"rounded-md border px-2 py-1 text-xs hover:bg-muted disabled:opacity-50","data-elanous-action":"live-run-max",title:"이 런의 판단 \xab왜\xb7목적\xb7어디로\xbb를 30분 자세히 남긴다",children:"on"===v.state?"● MAX 이 런 켜짐":"failed"===v.state?"MAX 못 켬 \xb7 다시":"MAX 이 런만"})),(0,a.jsx)(l(),{href:"/trace?level=L2&run=".concat(encodeURIComponent(s)),className:"rounded-md border px-2 py-1 text-xs hover:bg-muted","data-elanous-action":"live-run-trace",children:"Trace 로 →"}),(0,a.jsx)(l(),{href:"/live-run/?run=".concat(encodeURIComponent(s)),className:"rounded-md border px-2 py-1 text-xs hover:bg-muted","data-elanous-action":"live-run-scene",children:"런 장면 →"}),!!(null==r?void 0:r.pr)&&"ok"!==r.stages.land&&(0,a.jsx)(l(),{href:"/approvals?pr=".concat(encodeURIComponent(r.pr)),className:"rounded-md border px-2 py-1 text-xs hover:bg-muted","data-elanous-action":"live-run-approvals",children:"승인 카드로 →"}),"confirm"===p?(0,a.jsxs)("span",{className:"flex items-center gap-1 text-xs",role:"alertdialog","aria-label":"멈춤 확인",children:[(0,a.jsx)("span",{className:"text-error",children:"이 런을 멈출까요? 되돌릴 수 없습니다."}),(0,a.jsx)("button",{type:"button",onClick:f,className:"rounded-md border border-error px-2 py-1 text-error hover:bg-error/10","data-elanous-action":"live-run-stop-confirm",children:"멈춤"}),(0,a.jsx)("button",{type:"button",onClick:x,className:"rounded-md px-2 py-1 text-muted-foreground hover:bg-muted",children:"취소"})]}):(0,a.jsx)("button",{type:"button",onClick:m,disabled:!b||"stopping"===p||"stopped"===p,title:b?"부드러운 멈춤을 보낸다(확인 한 번)":"살아 있는 화면이 없어 멈출 수 없다",className:"rounded-md border px-2 py-1 text-xs hover:bg-muted disabled:opacity-40","data-elanous-action":"live-run-stop",children:"⏹ 멈춤"}),(0,a.jsx)("button",{type:"button",onClick:g,className:"rounded-md px-2 py-1 text-xs text-muted-foreground hover:bg-muted","aria-label":"서랍 닫기",children:"✕"})]})]}),h&&(0,a.jsx)("p",{className:"text-xs ".concat("failed"===p?"text-error":"text-muted-foreground"),"data-live-run-stop-result":!0,children:h}),(0,a.jsxs)("div",{className:"grid gap-2 lg:grid-cols-2",children:[(0,a.jsxs)("div",{children:[(0,a.jsxs)("h3",{className:"mb-1 text-xs font-medium text-muted-foreground",children:["화면",(null==o?void 0:o.screenKey)?(0,a.jsxs)("span",{className:"ml-1 font-mono",children:["\xb7 ",o.screenKey]}):null]}),(0,a.jsx)("pre",{className:"max-h-64 overflow-auto rounded-md border bg-muted/30 p-2 text-[11px] leading-relaxed","data-live-run-screen":!0,children:i?"화면을 못 읽었다: ".concat(i):null!=(n=null==o?void 0:o.text)?n:(null==o?void 0:o.reason)?null!=(t=u[o.reason])?t:o.reason:"불러오는 중…"})]}),(0,a.jsxs)("div",{children:[(0,a.jsxs)("h3",{className:"mb-1 text-xs font-medium text-muted-foreground",children:["로그 ",(0,a.jsxs)("span",{className:"font-mono",children:["\xb7 ",d.length]})]}),(0,a.jsx)("pre",{className:"max-h-64 overflow-auto rounded-md border bg-muted/30 p-2 text-[11px] leading-relaxed","data-live-run-log":!0,children:d.slice(0,40).join("\n")||"—"})]})]})]})}function h(e){var t;let{runId:n,run:r,lines:l,onClose:c}=e,u=(0,i.M1)(),h=(0,o.I)({queryKey:["live","run-screen",n],queryFn:()=>u.getRunScreen(n,60),refetchInterval:3e3}),[m,f]=(0,s.useState)("idle"),[x,g]=(0,s.useState)(null),[v,b]=(0,s.useState)("idle");return(0,a.jsx)(p,{runId:n,run:r,screen:null!=(t=h.data)?t:null,screenError:h.error?h.error instanceof Error?h.error.message:String(h.error):null,lines:l,stopState:m,stopMessage:x,onStop:()=>f("confirm"),onConfirmStop:()=>{var e;let t=null==(e=h.data)?void 0:e.screenKey;t&&(f("stopping"),u.stopHarness(t).then(e=>{var t;let a=!!e.stopped;(0,d.cY)("pwa.live.run-stop",{runId:n,ok:a}),f(a?"stopped":"failed"),g(a?"멈춤을 보냈다 — 런이 다음 확인 지점에서 멈춘다(".concat(e.stopped,")."):"멈추지 못했다: ".concat(null!=(t=e.error)?t:"알 수 없음"))}).catch(e=>{(0,d.cY)("pwa.live.run-stop",{runId:n,ok:!1}),f("failed"),g("멈추지 못했다: ".concat(e instanceof Error?e.message:String(e)))}))},onCancelStop:()=>f("idle"),onClose:c,max:{state:v,ask:()=>b("confirm"),confirm:()=>{u.setLiveDetail({scope:n,ttlMin:30,by:"pwa-run-drawer"}).then(e=>{b(e.on?"on":"failed"),(0,d.cY)("pwa.live.run-max",{runId:n,on:e.on})}).catch(()=>b("failed"))},cancel:()=>b("idle")}})}},94361:(e,t,n)=>{n.d(t,{jg:()=>v,lV:()=>i,fQ:()=>c,Hc:()=>y,dl:()=>d,qo:()=>m,bh:()=>b,hS:()=>x,Yu:()=>f,BP:()=>g});let a={budget:"예산",placement:"장소",relation:"관계",memory:"기억"},s=e=>null===e||"object"!=typeof e||Array.isArray(e)?null:e,r=new Set(["한도 도달","후보 없음","측정 불가: 시간 초과"]);function l(e){if("string"!=typeof e)return null;let t=e.trim();return r.has(t)?t.slice(0,80):null}function o(e){let t=l(e);return"확인 못 함".concat(t?" \xb7 ".concat(t):"")}let i=["author","decompose","build","gate","review","land"],c={author:"저작",decompose:"분해",build:"구현",gate:"게이트",review:"리뷰",land:"착지"};function d(e){var t;let n=e.category,a=e.event,s="error"===e.level||/(fail|reject|block|abandon|conflict|error|unconvergeable|timeout)/i.test(a)?"bad":/(merged|pass|done|ok|opened|completed|approved)/i.test(a)?"ok":"info";if("self-implement.pod.ledger"===n&&"string"==typeof(null==(t=e.data)?void 0:t.stage)){let t=e.data.stage,n="string"==typeof e.data.status?e.data.status:"",a=/(fail|block|abandon|reject|error)/i.test(n)||/(fail|block|abandon)/i.test(t)?"bad":s,r=/^(implement|repair)/i.test(t)?"build":/^gat/i.test(t)?"gate":/^review/i.test(t)?"review":/(merged|pr-opened|landed|auto-merge)/i.test(t)?"land":null;if(r)return{stage:r,tone:"land"===r&&"bad"!==a?"ok":a}}return n.startsWith("goal-author")||n.startsWith("harness.frontdoor")||"dev-pipeline"===n&&/^(plan|selection|base-selection)$/.test(a)?{stage:"author",tone:s}:n.startsWith("self-dev")&&/decompos/i.test(a)||"self-dev.orchestrate"===n&&"start"===a?{stage:"decompose",tone:s}:n.startsWith("self-dev.spawn")||n.startsWith("harness.substrate")||"self-implement"===n||"dev-pipeline"===n&&"harness.launch"===a?{stage:"build",tone:s}:n.startsWith("self-gate")||n.startsWith("self-dev.reduce")&&/gate/i.test(a)?{stage:"gate",tone:s}:n.startsWith("review-loop")&&/(merged|auto-merge)/i.test(a)?{stage:"land",tone:"ok"}:n.startsWith("review-loop")?{stage:"review",tone:s}:n.startsWith("self-dev.reduce")&&/(pr-opened|merged)/i.test(a)||"dev-pipeline"===n&&"done"===a?{stage:"land",tone:s}:{stage:null,tone:s}}let u=e=>"string"==typeof e&&e.trim()?e:null,p=e=>"number"==typeof e&&Number.isFinite(e)?e:0;function h(e){var t,n,a,s,r;let l=null!=(t=e.data)?t:{},o=null!=(n=u(l.pr))?n:p(l.prNumber)?String(l.prNumber):null;return e.category.startsWith("review-loop")&&"judge-verdict"===e.event?"리뷰 판정: ".concat(null!=(a=u(l.verdict))?a:"?").concat(o?" \xb7 #".concat(o):"").concat(p(l.asks)?" \xb7 요구 ".concat(p(l.asks)):""):e.category.startsWith("review-loop")&&/merged/.test(e.event)?"자동 병합".concat(o?" #".concat(o):""):e.category.startsWith("review-loop")&&"rework-start"===e.event?"리뷰 반영 라운드 ".concat(p(l.round)||"?"," 시작").concat(o?" \xb7 #".concat(o):""):e.category.startsWith("llm.router")&&/fallback/i.test(e.event)?"모델 폴백: ".concat(null!=(s=u(l.from))?s:"?"," → ").concat(null!=(r=u(l.to))?r:"?"):e.category.startsWith("oauth")&&/rotat/i.test(e.event)?"계정 회전".concat(u(l.account)?": ".concat(u(l.account)):""):e.category.startsWith("harness.boundary")?"경계 밖 쓰기 거절".concat(u(l.path)?": ".concat(u(l.path)):""):e.category.startsWith("self-dev.reduce")&&/gate-failed/.test(e.event)?"게이트 실패 → 수리 라운드":"dev-pipeline"===e.category&&"rejected"===e.event?"발사 전 검사가 막았다".concat(u(l.reason)?": ".concat(u(l.reason)):""):null}function m(e,t){let n=new Date(e);return Number.isNaN(n.getTime())?e.slice(11,19):n.toLocaleTimeString("en-GB",{hour12:!1,...t?{timeZone:t}:{}})}function f(e){return/Error:|ENOENT|EACCES|EPERM|ECONN|TypeError|\bstack\b|at\s+\S+\s+\(|\/Users\/|\/home\/|\\/.test(e)}function x(e,t){return null==e?e:"owner"!==t&&f(e)?"실패 — 자세한 사유는 오너 화면에서":e}function g(e,t){var n;let a=null!=(n=e.data)?n:{},s=["runId","pr","verdict","model","provider","round","reason"].map(e=>void 0!==a[e]&&null!==a[e]&&""!==a[e]?"".concat(e,"=").concat(String(a[e]).slice(0,40)):null).filter(Boolean).join(" ");return"".concat(m(e.ts,t)," ").concat(e.category," ").concat(e.event).concat(s?" \xb7 ".concat(s):"").replace(/\b(sk-[A-Za-z0-9_-]{8,}|ghp_[A-Za-z0-9]{8,}|gho_[A-Za-z0-9]{8,}|xox[abpr]-[A-Za-z0-9-]{8,}|AKIA[0-9A-Z]{12,})\b/g,"[redacted]").replace(/(Bearer\s+)[A-Za-z0-9._~+/=-]{8,}/gi,"$1[redacted]").replace(/("?(?:token|secret|password|apiKey|api_key|authorization)"?\s*[:=]\s*")[^"]{4,}"/gi,'$1[redacted]"')}let v=["PLAN","ROUTE","VERIFY","HEAL","ESCALATE","SHIP"];function b(e){let t=e.category,n=e.event;if("harness.decision"===t){var a;let t="string"==typeof(null==(a=e.data)?void 0:a.kind)?e.data.kind.toUpperCase():"";return v.includes(t)?t:null}return t.startsWith("review-loop")&&/merged/.test(n)||t.startsWith("self-dev.reduce")&&/(pr-opened|merged)/.test(n)?"SHIP":/(needs-human|hitl|escalat|parked)/i.test(n)||"dev-pipeline"===t&&"rejected"===n?"ESCALATE":t.startsWith("review-loop")&&/^rework-start$/.test(n)||/repair|rework-round/i.test(n)||t.startsWith("self-dev.supervisor")&&/(resume|retry)/i.test(n)?"HEAL":t.startsWith("review-loop")&&/verdict/.test(n)||t.startsWith("self-gate")||t.startsWith("self-dev.reduce")&&/gate/.test(n)?"VERIFY":t.startsWith("oauth.codex-account")&&/rotation$/.test(n)||t.startsWith("llm.router")&&/fallback/i.test(n)||t.startsWith("harness.role-llm")||t.startsWith("harness.substrate")&&/dispatch/.test(n)||t.startsWith("harness.boundary")?"ROUTE":t.startsWith("goal-author")&&/(done|assembled|phase-end)/.test(n)||t.startsWith("self-dev")&&/decompos/i.test(n)||"dev-pipeline"===t&&"plan"===n?"PLAN":null}function y(e,t,n){let r=function(e,t,n){var a,s,r,l,o,i,c,m,f,x;let g=n.now-6e4*n.windowMinutes,v=e.filter(e=>Date.parse(e.ts)>=g).sort((e,t)=>Date.parse(e.ts)-Date.parse(t.ts)),b=new Map,y=[],w=new Map,k=new Map,j=0,N=0;for(let e of v){let t=null!=(s=e.data)?s:{},n=u(t.runId);if(e.category.startsWith("llm.usage")){j+=1,N+=p(t.inputTokens)+p(t.outputTokens)+p(t.totalTokens&&!t.inputTokens?t.totalTokens:0);let e=null!=(l=null!=(r=u(t.model))?r:u(t.provider))?l:"unknown";w.set(e,(null!=(o=w.get(e))?o:0)+1)}if(e.category.startsWith("review-loop")&&"judge-verdict"===e.event){let e=null!=(i=u(t.verdict))?i:"unknown";k.set(e,(null!=(c=k.get(e))?c:0)+1)}let a=h(e),{stage:x,tone:g}=d(e);if(a&&y.push({ts:e.ts,runId:n,tone:/merged/.test(e.event)?"ok":g,text:a}),!n||!x)continue;let v=null!=(m=b.get(n))?m:{runId:n,stages:{},current:null,lastTs:e.ts,events:0,blocked:!1,pr:null,ledgerStatus:null};v.stages[x]=g,v.current=x,v.lastTs=e.ts,v.events+=1,v.blocked="bad"===g,v.pr=null!=(f=u(t.pr))?f:p(t.prNumber)?String(p(t.prNumber)):v.pr,b.set(n,v)}let M=new Map(t.map(e=>[e.runId,e]));for(let e of b.values())e.ledgerStatus=null!=(x=null==(a=M.get(e.runId))?void 0:a.status)?x:null;let S=[...b.values()].sort((e,t)=>Date.parse(t.lastTs)-Date.parse(e.lastTs)),E=S.filter(e=>"land"!==e.current&&n.now-Date.parse(e.lastTs)<9e5).length,I=e=>[...e.entries()].map(e=>{let[t,n]=e;return{name:t,count:n}}).sort((e,t)=>t.count-e.count);return{runs:S,cards:y.slice(-40).reverse(),counters:{activeRuns:E,llmRequests:j,llmRequestsPerMin:n.windowMinutes>0?Math.round(j/n.windowMinutes*10)/10:0,tokens:N,landed:S.filter(e=>"ok"===e.stages.land).length,blocked:S.filter(e=>e.blocked).length},providers:I(w),reviewVerdicts:I(k),windowMinutes:n.windowMinutes}}(e,t,n),i=n.now-6e4*n.windowMinutes,c=e.filter(e=>Date.parse(e.ts)>=i).sort((e,t)=>Date.parse(e.ts)-Date.parse(t.ts)),m=[],f={},x=new Set,g=new Map,v=new Map,y=new Map,w=0,k=new Set(c.filter(e=>"harness.decision"===e.category).map(e=>b(e)).filter(Boolean));for(let e of c){var j,N,M,S,E,I,A,C,R,T,L,P,O,F,W;let t=null!=(j=e.data)?j:{},n=u(t.runId);if(e.category.startsWith("review-loop")&&p(t.round)&&n&&(f[n]=Math.max(null!=(N=f[n])?N:0,p(t.round))),e.category.startsWith("review-loop")&&"judge-verdict"===e.event&&u(t.pr)&&p(t.round)){let e=null!=(M=y.get(u(t.pr)))?M:new Map;e.set(p(t.round),p(t.asks)),y.set(u(t.pr),e)}if(e.category.startsWith("llm.usage")){let e=p(t.inputTokens)+p(t.outputTokens);w+=e;let n=null!=(S=u(t.model))?S:"unknown",a=null!=(E=v.get(n))?E:{requests:0,tokens:0,billing:u(t.billing)};a.requests+=1,a.tokens+=e,v.set(n,a)}let r=b(e);if(!r||"harness.decision"!==e.category&&k.has(r))continue;let i="harness.decision"===e.category&&"string"==typeof t.what?function(e,t){var n,r;let i,c=/^execution-loop (budget|placement|relation|memory) gate$/.exec(e);if(!c)return null;let d=c[1],u="관문 \xb7 ".concat(a[d]),p=null;try{p=s(JSON.parse(null!=t?t:""))}catch(e){p=null!=(n=function(e,t){if(!t||t.startsWith("{"))return null;if(t.startsWith("unavailable"))return{decision:"unavailable"};let n=new Map;for(let e of t.split(" \xb7 ")){let t=e.indexOf("=");t>0&&!n.has(e.slice(0,t))&&n.set(e.slice(0,t),e.slice(t+1))}if(!n.size)return null;switch(e){case"budget":if(!n.has("action"))return null;return{decision:{action:n.get("action"),...n.get("provider")?{provider:n.get("provider")}:{},reasons:n.get("reason")?[n.get("reason")]:[]}};case"placement":{if(!n.has("substrate"))return null;let e=n.get("pool");return{decision:{substrate:n.get("substrate"),pool:e&&"none"!==e?e:null,...n.get("memory")?{memory:{limit:n.get("memory")}}:{}}}}case"relation":{let e=Number(n.get("overlap"));if(!Number.isInteger(e)||e<0)return null;return{decision:{action:"record",overlappingCards:Array.from({length:e},(e,t)=>"card-".concat(t+1))}}}case"memory":{let e=n.get("context");if("recalled"!==e&&"none"!==e)return null;return{decision:{action:"record",context:"recalled"===e?"recalled":null}}}}}(d,null!=t?t:""))?n:function(e){if(!e.startsWith('{"decision":{'))return null;let t={},n=t=>{var n;return null==(n=new RegExp('"'.concat(t,'":"([^"\\\\]*)"')).exec(e))?void 0:n[1]},a=n("action");a&&(t.action=a);let s=n("provider");s&&(t.provider=s);let r=n("substrate");r&&(t.substrate=r);let l=/"pool":(null|"([^"\\]*)")/.exec(e);l&&(t.pool="null"===l[1]?null:l[2]);let o=/"memory":\{[^}]*"limit":"([^"\\]*)"/.exec(e);o&&(t.memory={limit:o[1]});let i=/"overlappingCards":\[([^\]]*)\]/.exec(e);i&&(t.overlappingCards=i[1].trim()?i[1].split(",").map(e=>e.trim().replace(/^"|"$/g,"")):[]);let c=/"context":(null|")/.exec(e);if(c&&(t.context="null"===c[1]?null:"recalled"),/"reasons":\[/.test(e)){let n=/"reasons":\[((?:"[^"\\]*",?)*)\]/.exec(e);t.reasons=n?[...n[1].matchAll(/"([^"\\]*)"/g)].map(e=>e[1]):[]}return Object.keys(t).length?{decision:t}:null}(null!=t?t:"")}let h=s(null==p?void 0:p.decision),m=null==p?void 0:p.explanation;if(!h)return{what:u,why:o(m)};switch(d){case"budget":{let e,t=h.action,n="string"==typeof(e=h.provider)&&/^(openai-codex|grok|anthropic|openai|google|local|openrouter)$/.test(e)?e:null,a="proceed"===t?"그대로 진행":"next-provider"===t?"다른 제공자로".concat(n?"(".concat(n,")"):""):"wait-reset"===t?"한도 회복까지 대기":"stop"===t?"멈춤":null;if(!a||!Array.isArray(h.reasons))return{what:u,why:o(m)};let s=l(h.reasons[0]);i="".concat(a).concat(s?" \xb7 ".concat(s):"");break}case"placement":{let e,t,n=h.substrate;if("pod"!==n&&"local"!==n&&"unknown"!==n)return{what:u,why:o(m)};let a="string"==typeof(e=h.pool)&&/^(?:fast-\d{1,2}|pool-msb\d{1,2}(?:@msb\d{1,2}:\d{1,2})?)$/.test(e)?e:null,l="string"==typeof(t=null==(r=s(h.memory))?void 0:r.limit)&&/^\d+(?:\.\d+)?\s*(?:[KMGT]i?B?|bytes?)$/i.test(t)?t.replace(/\s+/g," "):null;i="".concat("pod"===n?"Pod".concat(a?" ".concat(a):""):"local"===n?"이 기기":"모름").concat(l?" \xb7 메모리 한도 ".concat(l):"");break}case"relation":if("record"!==h.action||!Array.isArray(h.overlappingCards)||!h.overlappingCards.every(e=>"string"==typeof e))return{what:u,why:o(m)};i=h.overlappingCards.length?"겹치는 카드 ".concat(h.overlappingCards.length,"개"):"겹치는 일 없음";break;case"memory":if("record"!==h.action||"string"!=typeof h.context&&null!==h.context)return{what:u,why:o(m)};i=h.context?"지난 기록 있음":"지난 기록 없음"}return{what:u,why:i}}(t.what,null!=(I=u(t.reason))?I:void 0):null,c=null!=(C=null!=(A=null==i?void 0:i.why)?A:u(t.reason))?C:u(t.why),d=i?null:u(t.purpose),H=i?null:null!=(O=null!=(T=null!=(R=u(t.target))?R:u(t.to))?T:u(t.account))?O:"SHIP"===r&&(null!=(L=u(t.pr))?L:p(t.prNumber)?String(p(t.prNumber)):null)?"#".concat(null!=(P=u(t.pr))?P:p(t.prNumber)):null,q=i?null:n;"HEAL"===r&&n&&x.add(n);let D=p(t.paths)||void 0;m.push({ts:e.ts,kind:r,runId:q,what:null!=(F=null==i?void 0:i.what)?F:function(e,t){var n,a;return"harness.decision"===e.category&&"string"==typeof(null==(n=e.data)?void 0:n.what)?e.data.what:null!=(a=h(e))?a:"".concat(e.category," ").concat(e.event).slice(0,80)}(e,0),why:c,purpose:d,target:H,...D?{paths:D}:{}});let U=[c?null:"why",d?null:"purpose",H?null:"target"].filter(Boolean);if(U.length){let t=i?"harness.decision decision":"".concat(e.category," ").concat(e.event),n=null!=(W=g.get(t))?W:{count:0,lacks:new Set};n.count+=1,U.forEach(e=>n.lacks.add(e)),g.set(t,n)}}let H=[...x],q=H.filter(e=>{var t;return(null==(t=r.runs.find(t=>t.runId===e))?void 0:t.stages.land)==="ok"}).length;return{snapshot:r,gauges:{live:r.counters.activeRuns,decisions:m.length,decisionsPerMin:n.windowMinutes>0?Math.round(m.length/n.windowMinutes*10)/10:0,shipped:m.filter(e=>"SHIP"===e.kind).length,selfHealRate:H.length?Math.round(q/H.length*100):null,selfHealRuns:H.length,burnTokensPerMin:n.windowMinutes>0?Math.round(w/n.windowMinutes):0},stream:m.slice(-80).reverse(),emitted:c.filter(e=>"harness.decision"===e.category).length,rounds:f,convergence:[...y.entries()].map(e=>{let[t,n]=e;return{pr:t,points:[...n.entries()].sort((e,t)=>e[0]-t[0]).map(e=>{let[t,n]=e;return{round:t,asks:n}})}}),scorecard:[...v.entries()].map(e=>{let[t,n]=e;return{model:t,...n}}).sort((e,t)=>t.requests-e.requests),missing:[...g.entries()].map(e=>{let[t,n]=e;return{key:t,count:n.count,lacks:[...n.lacks]}}).sort((e,t)=>t.count-e.count)}}}}]);
@@ -1,62 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5802],{55802:(t,e,a)=>{a.d(e,{diagram:()=>B});var n=a(72375),r=a(4910),i=a(11226),o=a(46238),l=a(96556),c=a(20330),s=a(43250),d=(0,c.K)(()=>({domains:new Map,transitions:[]}),"createDefaultData"),f=d(),p=(0,c.K)(()=>f.domains,"getDomains"),y={getDomains:p,getTransitions:(0,c.K)(()=>f.transitions,"getTransitions"),setDomains:(0,c.K)(t=>{if(t)for(let e of t){let t=e.domain,a=(e.items??[]).map(t=>({label:t.label}));f.domains.set(t,{name:t,items:a})}},"setDomains"),setTransitions:(0,c.K)(t=>{t&&(f.transitions=t.filter(t=>t.from!==t.to||(l.R.warn(`Cynefin: self-loop transition on domain "${t.from}" is not meaningful and will be skipped.`),!1)).map(t=>({from:t.from,to:t.to,label:t.label||void 0})))},"setTransitions"),getConfig:(0,c.K)(()=>(0,i.$t)({...o.UI.cynefin,...(0,o.zj)().cynefin}),"getConfig"),clear:(0,c.K)(()=>{(0,o.IU)(),f=d()},"clear"),setAccTitle:o.SV,getAccTitle:o.iN,setDiagramTitle:o.ke,getDiagramTitle:o.ab,getAccDescription:o.m7,setAccDescription:o.EI},m=(0,c.K)(t=>{(0,n.S)(t,y),y.setDomains(t.domains),y.setTransitions(t.transitions)},"populate"),x={parse:(0,c.K)(async t=>{let e=await (0,s.qg)("cynefin",t);l.R.debug(e),m(e)},"parse")};function h(t){let e=t+0x6d2b79f5|0;return e=Math.imul(e^e>>>15,1|e),(((e^=e+Math.imul(e^e>>>7,61|e))^e>>>14)>>>0)/0x100000000}function $(t){let e=0;for(let a=0;a<t.length;a++)e=(e<<5)-e+t.charCodeAt(a)|0;return e}function g(t,e){return"number"==typeof t&&Number.isFinite(t)&&0!==t?t:$(e)}function u(t,e,a,n){let r=t/2,i=n??.015*t,o=e/7,l=[];for(let t=0;t<=7;t++){let e=h(a+17*t)*i*2-i;l.push({x:r+e,y:t*o})}let c=`M${l[0].x},${l[0].y}`;for(let t=0;t<l.length-1;t++){let e=l[t],n=l[t+1],r=(e.y+n.y)/2,o=1.5*i*(t%2==0?1:-1)*h(a+31*t+7),s=e.x+o,d=n.x-o;c+=` C${s},${r} ${d},${r} ${n.x},${n.y}`}return c}function b(t,e,a,n){let r=e/2,i=n??.015*e,o=t/7,l=[];for(let t=0;t<=7;t++){let e=h(a+23*t)*i*2-i;l.push({x:t*o,y:r+e})}let c=`M${l[0].x},${l[0].y}`;for(let t=0;t<l.length-1;t++){let e=l[t],n=l[t+1],r=(e.x+n.x)/2,o=1.5*i*(t%2==0?1:-1)*h(a+37*t+11),s=e.y+o,d=n.y-o;c+=` C${r},${s} ${r},${d} ${n.x},${n.y}`}return c}function w(t,e){let a=t/2,n=.5*e,r=.03*t;return`M${a},${n} C${a+r},${n+(e-n)*.2} ${a-1.5*r},${n+(e-n)*.55} ${a+.5*r},${n+(e-n)*.75} C${a-r},${n+(e-n)*.85} ${a+.3*r},${n+(e-n)*.95} ${a},${e}`}function C(t,e,a,n){return`M${t-a},${e} A${a},${n} 0 1,1 ${t+a},${e} A${a},${n} 0 1,1 ${t-a},${e} Z`}(0,c.K)(h,"seededRandom"),(0,c.K)($,"hashString"),(0,c.K)(g,"resolveSeed"),(0,c.K)(u,"generateFoldPath"),(0,c.K)(b,"generateHorizontalBoundary"),(0,c.K)(w,"generateCliffPath"),(0,c.K)(C,"generateConfusionPath");var k={complex:{model:"Probe → Sense → Respond",practice:"Emergent Practices"},complicated:{model:"Sense → Analyse → Respond",practice:"Good Practices"},clear:{model:"Sense → Categorise → Respond",practice:"Best Practices"},chaotic:{model:"Act → Sense → Respond",practice:"Novel Practices"},confusion:{model:"",practice:"Disorder"}},D=(0,c.K)((t,e)=>{let a=t/2,n=e/2;return{complex:{cx:a/2,cy:n/2,x:0,y:0,w:a,h:n},complicated:{cx:a+a/2,cy:n/2,x:a,y:0,w:a,h:n},chaotic:{cx:a/2,cy:n+n/2,x:0,y:n,w:a,h:n},clear:{cx:a+a/2,cy:n+n/2,x:a,y:n,w:a,h:n},confusion:{cx:a,cy:n,x:.7*a,y:.7*n,w:.6*a,h:.6*n}}},"getDomainLayouts"),K=(0,c.K)(()=>{let t=(0,o.P$)(),e=(0,o.zj)();return(0,i.$t)(t,e.themeVariables).cynefin},"getCynefinDomainColors"),T=(0,c.K)((t,e,a,n)=>{let i=n.db,c=i.getDomains(),s=i.getTransitions(),d=i.getDiagramTitle(),f=i.getAccTitle(),p=i.getAccDescription(),y=i.getConfig(),m=K();l.R.debug("Rendering Cynefin diagram");let x=y.width,h=y.height,$=y.padding,T=y.showDomainDescriptions,A=y.boundaryAmplitude,B=x+2*$,S=h+2*$,z={complex:m.complexBg,complicated:m.complicatedBg,clear:m.clearBg,chaotic:m.chaoticBg,confusion:m.confusionBg},v=(0,r.D)(e);(0,o.a$)(v,S,B,y.useMaxWidth??!0),v.attr("viewBox",`0 0 ${B} ${S}`),f&&v.append("title").text(f),p&&v.append("desc").text(p);let M=v.append("g").attr("transform",`translate(${$}, ${$})`),I=D(x,h),L=g(y.seed,e),P=M.append("g").attr("class","cynefin-backgrounds"),R=["complex","complicated","chaotic","clear"];for(let t of R){let e=I[t];P.append("rect").attr("class","cynefinDomain").attr("x",e.x).attr("y",e.y).attr("width",e.w).attr("height",e.h).attr("fill",z[t]).attr("fill-opacity",.4).attr("stroke","none")}let F=M.append("g").attr("class","cynefin-boundaries");F.append("path").attr("class","cynefinBoundary").attr("d",u(x,h,L,A)).attr("fill","none"),F.append("path").attr("class","cynefinBoundary").attr("d",b(x,h,L+100,A)).attr("fill","none"),F.append("path").attr("class","cynefinCliff").attr("d",w(x,h)).attr("fill","none");let E=.15*x,N=.15*h;M.append("path").attr("class","cynefinConfusion").attr("d",C(x/2,h/2,E,N)).attr("fill",z.confusion).attr("fill-opacity",.5);let W=M.append("g").attr("class","cynefin-labels");for(let t of R){let e=I[t];W.append("text").attr("class","cynefinDomainLabel").attr("x",e.cx).attr("y",T?e.cy-30:e.cy).attr("text-anchor","middle").attr("dominant-baseline","middle").text(t.charAt(0).toUpperCase()+t.slice(1))}if(W.append("text").attr("class","cynefinDomainLabel").attr("x",x/2).attr("y",T?h/2-10:h/2).attr("text-anchor","middle").attr("dominant-baseline","middle").text("Confusion"),T){let t=M.append("g").attr("class","cynefin-subtitles");for(let e of R){let a=I[e],n=k[e];t.append("text").attr("class","cynefinSubtitle").attr("x",a.cx).attr("y",a.cy-10).attr("text-anchor","middle").attr("dominant-baseline","middle").text(n.model),t.append("text").attr("class","cynefinSubtitle").attr("x",a.cx).attr("y",a.cy+5).attr("text-anchor","middle").attr("dominant-baseline","middle").text(n.practice)}t.append("text").attr("class","cynefinSubtitle").attr("x",x/2).attr("y",h/2+8).attr("text-anchor","middle").attr("dominant-baseline","middle").text(k.confusion.practice)}let H=M.append("g").attr("class","cynefin-items");for(let t of["complex","complicated","chaotic","clear","confusion"]){let e,a=c.get(t);if(!a||0===a.items.length)continue;let n=I[t],r="confusion"===t,i=a.items,o=0;if(r&&a.items.length>3&&(o=a.items.length-3,i=a.items.slice(0,3)),r){let t=T?22:14;e=n.cy+t}else e=n.cy+(T?25:15);if([...i].forEach((a,r)=>{let i=e+30*r,o=H.append("g"),l=o.append("text").attr("class","cynefinItemText").attr("x",0).attr("y",13).attr("text-anchor","middle").attr("dominant-baseline","central").text(a.label),c=7*a.label.length,s=l.node();if(s&&"function"==typeof s.getBBox){let t=s.getBBox();t.width>0&&(c=t.width)}let d=c+20,f=n.cx-d/2;o.attr("transform",`translate(${f}, ${i})`),o.insert("rect","text").attr("class","cynefinItem").attr("x",0).attr("y",0).attr("width",d).attr("height",26).attr("rx",4).attr("ry",4).attr("fill",z[t]).attr("fill-opacity",.95),l.attr("x",d/2).attr("y",13)}),o>0){let a=e+30*i.length,r=`+${o} more`,l=H.append("g"),c=l.append("text").attr("class","cynefinItemText").attr("x",0).attr("y",13).attr("text-anchor","middle").attr("dominant-baseline","central").text(r),s=7*r.length,d=c.node();if(d&&"function"==typeof d.getBBox){let t=d.getBBox();t.width>0&&(s=t.width)}let f=s+20,p=n.cx-f/2;l.attr("transform",`translate(${p}, ${a})`),l.insert("rect","text").attr("class","cynefinItemOverflow").attr("x",0).attr("y",0).attr("width",f).attr("height",26).attr("rx",4).attr("ry",4).attr("fill",z[t]).attr("fill-opacity",.6),c.attr("x",f/2).attr("y",13)}}if(s.length>0){let t=v.select("defs").empty()?v.append("defs"):v.select("defs"),a=`cynefin-arrow-${e}`;t.append("marker").attr("id",a).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerWidth",6).attr("markerHeight",6).attr("orient","auto-start-reverse").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("class","cynefinArrowHead");let n=M.append("g").attr("class","cynefin-arrows");s.forEach(t=>{let e=I[t.from],r=I[t.to];if(!e||!r)return;if(t.from===t.to)return void l.R.warn(`Cynefin renderer: skipping self-loop on domain "${t.from}"`);let i=e.cx,o=e.cy,c=r.cx,s=r.cy,d=c-i,f=s-o,p=Math.sqrt(d*d+f*f),y=.15*p,m=(i+c)/2+-f/p*y,x=(o+s)/2+d/p*y;n.append("path").attr("class","cynefinArrowLine").attr("d",`M${i},${o} Q${m},${x} ${c},${s}`).attr("fill","none").attr("marker-end",`url(#${a})`),t.label&&n.append("text").attr("class","cynefinArrowLabel").attr("x",m).attr("y",x-6).attr("text-anchor","middle").attr("dominant-baseline","auto").text(t.label)})}d&&M.append("text").attr("class","cynefinTitle").attr("x",x/2).attr("y",-$/2).attr("text-anchor","middle").attr("dominant-baseline","middle").text(d)},"draw"),A=(0,c.K)(()=>{let t=(0,o.P$)(),e=(0,o.zj)();return(0,i.$t)(t,e.themeVariables).cynefin},"getCynefinTheme"),B={parser:x,db:y,renderer:{draw:T},styles:(0,c.K)(()=>{let t=A();return`
2
- .cynefinDomain {
3
- stroke: none;
4
- }
5
- .cynefinDomainLabel {
6
- font-size: ${t.domainFontSize}px;
7
- font-weight: bold;
8
- fill: ${t.labelColor};
9
- }
10
- .cynefinSubtitle {
11
- font-size: ${t.itemFontSize-1}px;
12
- fill: ${t.textColor};
13
- font-style: italic;
14
- }
15
- .cynefinItem {
16
- fill-opacity: 0.95;
17
- stroke: ${t.boundaryColor};
18
- stroke-width: 1;
19
- }
20
- .cynefinItemText {
21
- font-size: ${t.itemFontSize}px;
22
- fill: ${t.textColor};
23
- }
24
- .cynefinItemOverflow {
25
- fill-opacity: 0.6;
26
- stroke: ${t.boundaryColor};
27
- stroke-width: 1;
28
- stroke-dasharray: 3 2;
29
- }
30
- .cynefinBoundary {
31
- stroke: ${t.boundaryColor};
32
- stroke-width: ${t.boundaryWidth};
33
- stroke-dasharray: 6 3;
34
- }
35
- .cynefinCliff {
36
- stroke: ${t.cliffColor};
37
- stroke-width: ${t.cliffWidth};
38
- }
39
- .cynefinConfusion {
40
- stroke: ${t.boundaryColor};
41
- stroke-width: 1.5;
42
- stroke-dasharray: 4 2;
43
- }
44
- .cynefinArrowLine {
45
- stroke: ${t.arrowColor};
46
- stroke-width: ${t.arrowWidth};
47
- fill: none;
48
- }
49
- .cynefinArrowHead {
50
- fill: ${t.arrowColor};
51
- stroke: none;
52
- }
53
- .cynefinArrowLabel {
54
- font-size: ${t.itemFontSize-1}px;
55
- fill: ${t.textColor};
56
- }
57
- .cynefinTitle {
58
- font-size: ${t.domainFontSize+2}px;
59
- font-weight: bold;
60
- fill: ${t.labelColor};
61
- }
62
- `},"styles")}},72375:(t,e,a)=>{function n(t,e){t.accDescr&&e.setAccDescription?.(t.accDescr),t.accTitle&&e.setAccTitle?.(t.accTitle),t.title&&e.setDiagramTitle?.(t.title)}a.d(e,{S:()=>n}),(0,a(20330).K)(n,"populateCommonDb")}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5890],{75890:(e,s,c)=>{c.d(s,{createInfoServices:()=>a.v});var a=c(5753);c(62705)}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5924],{25924:(e,a,s)=>{s.d(a,{createRailroadServices:()=>c.l});var c=s(51276);s(62705)}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5979],{16405:(e,t,n)=>{n.d(t,{ZO:()=>Y,Ys:()=>v,Wq:()=>x,To:()=>y});var r=n(94451),a=n(75699),l=n(69228),o=n(12028),s=n(21089),i=n(46311),u=n(93743),c=n(85303);function d(e,t){let n="preview-1"===e?"tui-preview":/^preview-\d+$/.test(e)?"web-scratch":e.startsWith("tui:")?"tui-surface":e.startsWith("term-")?"human-terminal":e.startsWith("webterm-")?"web-terminal":e.startsWith("self_")?"harness-run":e.startsWith("agent:")?"agent":e.startsWith("pty_")?"pty":"unknown",r=null==t?void 0:t.trim();switch(n){case"tui-preview":return{text:"TUI 프리뷰",hint:"TUI 프리뷰 페인의 웹 이름 \xb7 ".concat(e),kind:n};case"web-scratch":return{text:e,hint:"이 브라우저가 만든 스크래치 터미널 \xb7 ".concat(e),kind:n};case"tui-surface":return{text:e,hint:"대화형 대시보드 TUI 표면 \xb7 ".concat(e),kind:n};case"human-terminal":return{text:e,hint:"사람이 만든 웹 터미널 \xb7 ".concat(e),kind:n};case"web-terminal":return{text:e,hint:"데몬이 발급한 웹 터미널 \xb7 ".concat(e),kind:n};case"harness-run":return{text:r||e,hint:"하니스 자율 런의 터미널 \xb7 ".concat(e),kind:n};case"agent":return{text:r||e,hint:"서브 에이전트 실행 \xb7 ".concat(e),kind:n};case"pty":return{text:r||e,hint:"PTY \xb7 ".concat(e),kind:n};default:return{text:e,hint:"분류를 모르는 터미널 \xb7 ".concat(e),kind:n}}}function m(e){return(null==e?void 0:e.terminalOriginCategory)==="direct-human"?"사람":(null==e?void 0:e.terminalOriginCategory)==="elanous"?"elanous":(null==e?void 0:e.terminalOriginCategory)==="external-tool"?e.externalToolName?"외부 도구: ".concat(e.externalToolName):"외부 도구":(null==e?void 0:e.terminalOriginReason)?"이 행에서는 알 수 없음: ".concat(e.terminalOriginReason):"이 행에서는 알 수 없음"}function f(e){return{action:e,sendsDestroy:"terminate"===e}}let p="elanous.webterm.tabs",g="elanous.webterm.hidden-tabs",h=new Map;function b(e){return(null==e?void 0:e.isAlive)&&void 0!==e.controller?"human"===e.controller?"release":"takeover":null}function w(e){return"takeover"===e?"넘겨받기":"놓기"}function v(){try{let e=window.localStorage.getItem(p);if(!e)return[];let t=JSON.parse(e);if(!Array.isArray(t))return[];return t.filter(e=>"string"==typeof e&&e.length>0)}catch(e){return[]}}function y(e){window.localStorage.setItem(p,JSON.stringify(e))}function k(e){window.localStorage.setItem(g,JSON.stringify(e))}function x(e){let t=1;for(;e.includes("preview-".concat(t));)t+=1;return"preview-".concat(t)}function I(e,t){let n=null==e?void 0:e.terminalId;if("string"==typeof n&&n.trim().length>0)return{id:n,issuedBy:"daemon"};let r=C(e)?e.spawnFailure:null==e?"no-response":"response-without-terminal-id";return{id:x(t),issuedBy:"local",fallbackReason:r}}function C(e){return"object"==typeof e&&null!==e&&"string"==typeof e.spawnFailure}async function S(e,t){let n,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:c.cY,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:j,l=arguments.length>4?arguments[4]:void 0,o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:N;if(r("webterm.tabs.add.start",{hasAcp:!!e,hasSessionId:!!t}),!e||!t){let t=e?"no-session":"no-acp";return r("webterm.tabs.add.skip",{reason:t}),{spawnFailure:t}}r("webterm.tabs.add.spawn-pending",{sessionId:t});let s=l?setTimeout(()=>{r("webterm.tabs.add.spawn-slow",{sessionId:t,slowMs:o}),l()},o):void 0;try{let l=new Promise(e=>{n=setTimeout(()=>e({spawnFailure:"spawn-timeout"}),a)}),o=await Promise.race([e.send("terminal/spawn",{sessionId:t}),l]);return C(o)&&r("webterm.tabs.add.spawn-timeout",{sessionId:t,timeoutMs:a}),o}catch(e){return r("webterm.tabs.add.spawn-error",{reason:String(e)}),{spawnFailure:"spawn-error",detail:String(e)}}finally{void 0!==n&&clearTimeout(n),void 0!==s&&clearTimeout(s)}}let N=8e3,j=9e4;function Y(e){let{activeId:t,onActiveChange:n,onInitialTerminalState:p,minimized:C=!1,onToggleMinimize:Y,recording:T=!1,peerCount:P=0,chatDockOpen:M=!0,onToggleChatDock:A,tabIntent:R=null,onTabsChange:D,suspendInitialSpawn:O=!1,variant:E="default",renderSheet:U}=e,{client:q,sessionId:L}=(0,u.Q)(),[F,B]=(0,a.useState)(v),K=(0,a.useRef)(new Set(function(){try{let e=window.localStorage.getItem(g),t=e?JSON.parse(e):[];return Array.isArray(t)?t.filter(e=>"string"==typeof e&&e.length>0):[]}catch(e){return[]}}())),W=(0,a.useRef)(F);W.current=F;let _=(0,a.useRef)(t);_.current=t;let J=(0,a.useRef)(0),V=(0,a.useRef)(!1),G=(0,a.useRef)(null),H=(0,a.useRef)(!1),[Q,Z]=(0,a.useState)(0),$=(0,a.useRef)(null);(0,a.useEffect)(()=>{if(el.current+=1,J.current+=1,V.current=!1,H.current=!1,!L)return;let e=q.connectAcp({sessionId:L});$.current=e;let t=e.onState(t=>{$.current===e&&"OPEN"===t&&Z(e=>e+1)});return"OPEN"===e.state&&Z(e=>e+1),(0,c.cY)("webterm.tabs.acp.attach",{sessionId:L}),()=>{var n;t();let r=null!=(n=$.current)?n:e;try{r.close()}catch(e){}$.current=null}},[q,L]);let[X,z]=(0,a.useState)({sessionId:null,entries:new Map}),[ee,et]=(0,a.useState)(new Map),en=(0,a.useRef)(new Map),er=null!==X.sessionId&&X.sessionId===L,ea=er?X.entries:h,el=(0,a.useRef)(0),eo=(0,a.useCallback)(()=>{var e;let t=$.current;if(!L)return null;if(null!==(e=t?t.state:null)&&"FAILED"!==e&&"CLOSED"!==e)return t;let n=t?t.state:"none";(0,c.cY)("webterm.tabs.acp.reacquire.attempt",{sessionId:L,previousState:n});try{null==t||t.close()}catch(e){}let r=q.connectAcp({sessionId:L});return $.current=r,el.current+=1,z({sessionId:null,entries:new Map}),(0,c.cY)("webterm.tabs.acp.reacquire.ok",{sessionId:L,previousState:n,state:r.state}),r},[q,L]),es=(0,a.useCallback)(async()=>{let e;if(L){try{e=eo()}catch(e){(0,c.cY)("webterm.tabs.list.error",{sessionId:L,connectionState:"reacquire-failed",reason:String(e)});return}if(e)try{let t=el.current,n=await e.send("terminal/list",{sessionId:L});if(t!==el.current)return void(0,c.cY)("webterm.tabs.list.stale",{sessionId:L,generation:t,now:el.current});let r=function(e){if(null==e)return{ok:!1,reason:"no-response"};let t=e.terminals;if(!Array.isArray(t))return{ok:!1,reason:"malformed"};let n=[];for(let e of t){if("object"!=typeof e||null===e)return{ok:!1,reason:"malformed"};let{terminalId:t,isAlive:r,pid:a,cols:l,rows:o,lastOutputAt:s,ownerRunUsage:i,terminalOriginCategory:u,terminalOriginReason:c,externalToolName:d,controller:m}=e;if("string"!=typeof t||0===t.trim().length||"boolean"!=typeof r)return{ok:!1,reason:"malformed"};let f=e=>"number"==typeof e&&Number.isFinite(e)?e:void 0;n.push({terminalId:t,isAlive:r,...void 0!==f(a)?{pid:f(a)}:{},...void 0!==f(l)?{cols:f(l)}:{},...void 0!==f(o)?{rows:f(o)}:{},...void 0!==f(s)?{lastOutputAt:f(s)}:{},..."running"===i||"terminated-live-owner"===i||"no-run-id"===i||"unknown"===i?{ownerRunUsage:i}:{},..."direct-human"===u||"elanous"===u||"external-tool"===u||"unknown"===u?{terminalOriginCategory:u}:{},..."string"==typeof c?{terminalOriginReason:c}:{},..."string"==typeof d?{externalToolName:d}:{},..."string"==typeof m?{controller:m}:{}})}return{ok:!0,entries:n}}(n);if(!r.ok)return void(0,c.cY)("webterm.tabs.list.error",{sessionId:L,connectionState:e.state,reason:"list-".concat(r.reason)});let a=r.entries,l=a.map(e=>e.terminalId),o=new Set(l);for(let e of K.current)o.has(e)||K.current.delete(e);k([...K.current]),z({sessionId:L,entries:new Map(a.map(e=>[e.terminalId,e]))}),(0,c.cY)("webterm.tabs.list",{sessionId:L,local:F.length,daemon:l.length}),B(e=>{let t=[...e];for(let e of l)K.current.has(e)||t.includes(e)||t.push(e);return t.length===e.length?e:(y(t),t)})}catch(t){(0,c.cY)("webterm.tabs.list.error",{sessionId:L,connectionState:e.state,reason:String(t)})}}},[eo,L,F.length]);(0,a.useEffect)(()=>{if(!$.current)return;es();let e=!1,t=setInterval(()=>{e||"undefined"!=typeof document&&document.hidden||(e=!0,es().finally(()=>{e=!1}))},15e3);return()=>clearInterval(t)},[$.current]);let ei=(0,a.useCallback)(e=>(y(e),e),[]);(0,a.useEffect)(()=>{null==D||D(F)},[D,F]);let eu=(0,a.useCallback)(async e=>{if(V.current||W.current.length>0)return;V.current=!0;let t=++J.current;null==p||p({status:"pending"});let r=await S(e,L,c.cY,j,()=>{t===J.current&&(null==p||p({status:"pending",slow:!0}))});if(t!==J.current||W.current.length>0){var a;V.current=!1;let e=r&&"spawned"===r.status&&"string"==typeof r.sessionId&&"string"==typeof r.terminalId&&r.sessionId.trim()&&r.terminalId.trim()?{sessionId:r.sessionId,terminalId:r.terminalId}:null;(0,c.cY)("webterm.tabs.initial.discarded",{reason:t!==J.current?"session-changed":"tabs-present",orphan:e}),e&&(null==(a=$.current)||a.send("terminal/destroy",e).catch(t=>(0,c.cY)("webterm.tabs.initial.orphan-destroy-error",{...e,reason:String(t)})));return}let l=I(r,W.current),o=[l.id];H.current=!0,ei(o),B(o),n(l.id),null==p||p({status:"ready",issuedBy:l.issuedBy,...l.fallbackReason?{fallbackReason:l.fallbackReason}:{}}),(0,c.cY)("webterm.tabs.initial",{id:l.id,issuedBy:l.issuedBy,...l.fallbackReason?{fallbackReason:l.fallbackReason}:{}})},[n,p,ei,L]);(0,a.useEffect)(()=>{if(O)return;if(F.length>0){let e=H.current;V.current=!1,t||n(F[0]),e||null==p||p({status:"ready",issuedBy:"local",fallbackReason:"restored-tab"});return}let e=$.current;if(!e||"OPEN"!==e.state){null==p||p({status:"pending"}),null===G.current&&(G.current=Date.now());let e=setTimeout(()=>{var e,t;if(W.current.length>0||(null==(e=$.current)?void 0:e.state)==="OPEN")return;let r=x(W.current);H.current=!0,ei([r]),B([r]),n(r),null==p||p({status:"ready",issuedBy:"local",fallbackReason:"acp-not-open"}),(0,c.cY)("webterm.tabs.initial",{id:r,issuedBy:"local",fallbackReason:"acp-not-open",waitedMs:Date.now()-(null!=(t=G.current)?t:Date.now())})},Math.max(0,N-(Date.now()-G.current)));return()=>clearTimeout(e)}G.current=null,eu(e)},[Q,t,eu,n,p,ei,O,F.length]);let ec=(0,a.useCallback)(async()=>{let e=await S($.current,L);B(t=>{let{id:r,issuedBy:a,fallbackReason:l}=I(e,t);if(K.current.delete(r)&&k([...K.current]),t.includes(r))return n(r),(0,c.cY)("webterm.tabs.add.existing",{id:r,issuedBy:a,total:t.length}),t;let o=ei([...t,r]);return n(r),(0,c.cY)("webterm.tabs.add",{id:r,total:o.length,issuedBy:a,...l?{fallbackReason:l}:{}}),o})},[n,ei,L]),ed=(0,a.useCallback)(e=>{e!==t&&((0,c.cY)("webterm.tabs.switch",{from:t,to:e}),n(e))},[t,n]),em=(0,a.useCallback)(function(e){var t;let r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];en.current.set(e,(null!=(t=en.current.get(e))?t:0)+1),et(t=>{if(!t.has(e))return t;let n=new Map(t);return n.delete(e),n});let a=W.current;if(r&&(K.current.add(e),k([...K.current])),!a.includes(e))return;let l=a.filter(t=>t!==e);ei(l),B(l),e===_.current&&l.length>0&&n(l[0]),0===l.length&&(V.current=!1,null==p||p({status:"pending"}))},[n,p,ei]),ef=(0,a.useCallback)(e=>{f("remove-local").sendsDestroy||(em(e,!0),(0,c.cY)("webterm.tabs.remove-local",{id:e}),es())},[es,em]),ep=(0,a.useCallback)(async(e,t)=>{var n;let r=ee.get(e);if(r&&!r.message)return;let a=(null!=(n=en.current.get(e))?n:0)+1;en.current.set(e,a),et(n=>{let r=new Map(n);return r.set(e,{action:t}),r});try{let n=await q.controlTerminal(e,t);if(a!==en.current.get(e)||!W.current.includes(e))return;let r=function(e,t){switch(t.status){case"success":return"takeover"===e?"터미널을 넘겨받았습니다.":"터미널 제어를 놓았습니다.";case"unknown-pty":return"이 PTY를 찾을 수 없습니다. 목록을 새로고침해 주세요.";case"denied":return"이 PTY의 제어를 바꿀 권한이 없습니다.";case"failed":return"PTY 제어 전환에 실패했습니다. 잠시 후 다시 시도해 주세요.";case"owner-unreachable":return"PTY 소유 프로세스에 연결할 수 없어 제어를 전환하지 못했습니다.";default:return t.status}}(t,n);et(n=>{let a=new Map(n);return a.set(e,{action:t,message:r}),a}),(0,c.cY)("webterm.tabs.control",{id:e,action:t,status:n.status}),"success"===n.status&&es()}catch(n){if(a!==en.current.get(e)||!W.current.includes(e))return;et(n=>{let r=new Map(n);return r.set(e,{action:t,message:"PTY 제어 요청을 전송하지 못했습니다. 네트워크 연결을 확인해 주세요."}),r}),(0,c.cY)("webterm.tabs.control.error",{id:e,action:t,reason:String(n)})}},[q,es,ee]),eg=(0,a.useCallback)(async(e,t)=>{let n=f("terminate"),r=function(e){switch("running"===e||"terminated-live-owner"===e||"no-run-id"===e||"unknown"===e?e:"unknown"){case"running":return{title:"터미널을 끝낼까요?",message:"실행 중인 런이 이 터미널을 사용하고 있습니다. 끝내면 터미널과 그 프로세스가 종료됩니다."};case"terminated-live-owner":return{title:"터미널을 끝낼까요?",message:"소유 런은 종료됐지만 이 터미널은 아직 남아 있습니다. 끝내면 터미널과 그 프로세스가 종료됩니다."};case"no-run-id":return{title:"터미널을 끝낼까요?",message:"이 터미널에는 소유 런 정보가 없습니다. 끝내면 터미널과 그 프로세스가 종료됩니다."};case"unknown":return{title:"터미널을 끝낼까요?",message:"이 터미널의 사용 상태를 확인할 수 없습니다. 아무도 쓰지 않는다고 단정할 수 없으며, 끝내면 터미널과 그 프로세스가 종료됩니다."}}}(t);if(!window.confirm("".concat(r.title,"\n\n").concat(r.message))||!n.sendsDestroy)return;let a=$.current;if(!a||!L)return void(0,c.cY)("webterm.tabs.destroy.error",{id:e,reason:"no-acp-or-session"});try{await a.send("terminal/destroy",{sessionId:L,terminalId:e}),(0,c.cY)("webterm.tabs.destroyed",{id:e}),em(e,!0),es()}catch(t){(0,c.cY)("webterm.tabs.destroy.error",{id:e,reason:String(t)})}},[em,es,L]);(0,a.useEffect)(()=>{!t||K.current.has(t)||B(e=>e.includes(t)?e:ei([...e,t]))},[t,ei]),(0,a.useEffect)(()=>{let e;if(!R||!t||0===F.length)return;let r=F.indexOf(t);if("next"===R.intent)e=F[(r+1)%F.length];else if("prev"===R.intent)e=F[(r-1+F.length)%F.length];else if("number"==typeof R.intent){let t=R.intent-1;t>=0&&t<F.length&&(e=F[t])}e&&e!==t&&((0,c.cY)("webterm.tabs.intent.apply",{intent:R.intent,from:t,to:e}),n(e))},[null==R?void 0:R.nonce]);let eh=(0,a.useCallback)(e=>{var t;return null==(t=ea.get(e))?void 0:t.isAlive},[ea]),eb=(0,a.useMemo)(()=>{if(!L)return"session 미설정";var e=function(e,t){let n=0,r=0,a=0;for(let l of e){let e=t(l);void 0===e?a+=1:e?n+=1:r+=1}return{total:e.length,alive:n,daemonKnownDead:r,daemonUnknown:a}}(F,eh);let t="".concat(e.total," terminal").concat(1===e.total?"":"s");if(!er)return"".concat(t," \xb7 데몬 상태 미확인");let n=[];return e.alive>0&&n.push("".concat(e.alive," alive")),e.daemonKnownDead>0&&n.push("".concat(e.daemonKnownDead," 종료")),e.daemonUnknown>0&&n.push("".concat(e.daemonUnknown," 데몬이 모름")),n.length>0?"".concat(t," \xb7 ").concat(n.join(" \xb7 ")):t},[L,F,eh,er]),ew=(0,a.useMemo)(()=>er&&t?F.filter(e=>e!==t&&void 0===eh(e)):[],[er,F,eh,t]),ev=(0,a.useCallback)(()=>{if(0===ew.length)return;let e=new Set(ew),t=F.filter(t=>!e.has(t));ei(t),(0,c.cY)("webterm.tabs.clean-unknown",{removed:ew.length,remaining:t.length}),B(t)},[ew,ei,F]);if("sheet"===E&&U){var ey,ek,ex;let e=t?ea.get(t):void 0;return U({tabs:F,status:L&&(null==(ey=$.current)?void 0:ey.state)!=="FAILED"&&(null==(ek=$.current)?void 0:ek.state)!=="CLOSED"&&(null==e?void 0:e.isAlive)!==!1?(null==(ex=$.current)?void 0:ex.state)==="OPEN"?"connected":"connecting":"disconnected",onSwitch:ed,onAdd:()=>{ec()},actions:(0,r.jsxs)("div",{className:"flex flex-col gap-2 text-xs","aria-label":"터미널 탭 동작",children:[F.map(e=>{var t;let n=ea.get(e),a=b(n);return(0,r.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,r.jsx)("span",{className:"min-w-0 flex-1 truncate",children:d(e).text}),(0,r.jsx)("button",{type:"button",onClick:()=>ef(e),"aria-label":"remove ".concat(e," locally"),children:"\xd7 탭 빼기"}),a&&(0,r.jsx)("button",{type:"button",disabled:ee.has(e)&&!(null==(t=ee.get(e))?void 0:t.message),onClick:()=>void ep(e,a),"aria-label":"".concat(a," ").concat(e),children:w(a)}),(0,r.jsx)("button",{type:"button",onClick:()=>void eg(e,null==n?void 0:n.ownerRunUsage),"aria-label":"terminate ".concat(e),children:"끝내기"})]},e)}),ew.length>0&&(0,r.jsxs)("button",{type:"button",onClick:ev,children:["정리 ",ew.length]}),[...ee.values()].filter(e=>e.message).map((e,t)=>(0,r.jsx)("p",{role:"status",children:e.message},"".concat(e.action,"-").concat(t))),A&&(0,r.jsx)("button",{type:"button",onClick:A,children:M?"terminal chat dock 숨기기":"terminal chat dock 보이기"}),Y&&(0,r.jsx)("button",{type:"button",onClick:Y,children:C?"패널 펼치기":"패널 접기"}),T&&(0,r.jsx)("span",{children:"REC"}),P>1&&(0,r.jsxs)("span",{children:[P," devices"]}),(0,r.jsx)("span",{title:"터미널 PTY 는 데몬에 상주 — 연결이 끊겨도 유지되고 재접속 시 이어집니다",children:eb})]})})}return(0,r.jsxs)("div",{className:"flex items-center gap-1 border-b bg-background/50 px-2 py-1 text-xs",children:[(0,r.jsxs)("div",{className:"flex flex-1 flex-wrap items-center gap-1",children:[F.map(e=>{let n=e===t,a=ea.get(e),l=a?a.isAlive?"bg-emerald-500":"bg-rose-500":"bg-muted-foreground/40",o=function(e){if(!e||!Number.isFinite(e))return"";let t=Math.max(0,Math.floor((Date.now()-e)/1e3));return t<30?"방금":t<3600?"".concat(Math.floor(t/60),"분 전"):t<86400?"".concat(Math.floor(t/3600),"시간 전"):"".concat(Math.floor(t/86400),"일 전")}(null==a?void 0:a.lastOutputAt),s=(null==a?void 0:a.terminalOriginCategory)&&"unknown"!==a.terminalOriginCategory?m(a):"",i="출처: ".concat(m(a)),u=d(e),c=ee.get(e),f=a?"".concat(a.isAlive?"alive":"exited").concat("number"==typeof a.pid?" \xb7 pid ".concat(a.pid):"").concat(o?" \xb7 마지막 출력 ".concat(o):""," \xb7 ").concat(i).concat(a.controller?" \xb7 통제: ".concat(a.controller):""):"데몬 미기동 (선택 시 spawn) \xb7 ".concat(i);return(0,r.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-md border px-2 py-0.5 font-mono ".concat(n?"border-primary bg-primary/10 text-primary":"border-border text-muted-foreground hover:bg-accent"),children:[(0,r.jsx)("span",{className:"h-1.5 w-1.5 shrink-0 rounded-full ".concat(l),title:f,"aria-label":f}),(0,r.jsxs)("button",{type:"button",className:"cursor-pointer",onClick:()=>ed(e),title:"".concat(u.hint," — ").concat(n?"지금 보는 터미널":"눌러서 전환"," \xb7 ").concat(f),"aria-label":"switch to ".concat(e),children:[u.text,s?" \xb7 ".concat(s):"",(null==a?void 0:a.controller)?" \xb7 통제: ".concat(a.controller):""]}),(0,r.jsx)("button",{type:"button",className:"ml-0.5 rounded text-muted-foreground hover:text-rose-500",onClick:t=>{t.stopPropagation(),ef(e)},title:"목록에서 ".concat(e," 탭 빼기 — PTY는 유지합니다"),"aria-label":"remove ".concat(e," locally"),children:"\xd7"}),b(a)&&(0,r.jsx)("button",{type:"button",disabled:void 0!==c&&!c.message,className:"rounded text-muted-foreground hover:text-primary disabled:cursor-wait disabled:opacity-60",onClick:t=>{t.stopPropagation(),ep(e,b(a))},title:"".concat(w(b(a))," ").concat(e),"aria-label":"".concat(b(a)," ").concat(e),children:void 0===c||c.message?w(b(a)):"전환 중…"}),(0,r.jsx)("button",{type:"button",className:"rounded text-muted-foreground hover:text-rose-500",onClick:t=>{t.stopPropagation(),eg(e,null==a?void 0:a.ownerRunUsage)},title:"끝내기 ".concat(e),"aria-label":"terminate ".concat(e),children:"끝내기"})]},e)}),(0,r.jsx)("button",{type:"button",className:"rounded-md border border-dashed border-border px-2 py-0.5 text-muted-foreground hover:bg-accent",onClick:()=>{ec()},title:"new terminal",children:"+"})]}),[...ee.values()].filter(e=>e.message).map((e,t)=>(0,r.jsx)("p",{role:"status",className:"text-muted-foreground",children:e.message},"".concat(e.action,"-").concat(t))),C&&T&&(0,r.jsxs)("span",{className:"ml-2 flex items-center gap-1 rounded bg-rose-500/15 px-1.5 py-0.5 font-medium text-rose-600 dark:text-rose-400",title:"recording in progress",children:[(0,r.jsx)("span",{className:"h-1.5 w-1.5 rounded-full bg-rose-500 animate-pulse","aria-hidden":!0}),"REC"]}),C&&P>1&&(0,r.jsxs)("span",{className:"ml-1 flex items-center gap-1 rounded bg-amber-500/15 px-1.5 py-0.5 font-medium text-amber-700 dark:text-amber-400",title:"".concat(P," devices on this session"),children:[(0,r.jsx)(l.A,{className:"h-3 w-3","aria-hidden":!0}),P]}),(0,r.jsx)("span",{className:"ml-2 text-[11px] text-muted-foreground",title:"터미널 PTY 는 데몬에 상주 — 연결이 끊겨도 유지되고 재접속 시 이어집니다",children:eb}),ew.length>0&&(0,r.jsxs)("button",{type:"button",className:"ml-1 rounded-md border border-dashed border-border px-1.5 py-0.5 text-[11px] text-muted-foreground hover:bg-accent",onClick:ev,title:"데몬이 모르는 탭 ".concat(ew.length,"개를 목록에서 뺍니다 — PTY 는 건드리지 않고, 활성 탭은 남깁니다"),children:["정리 ",ew.length]}),A&&(0,r.jsx)("button",{type:"button",onClick:A,"aria-label":M?"hide terminal chat dock":"show terminal chat dock",title:M?"terminal chat dock 숨기기":"terminal chat dock 보이기",className:"ml-1 rounded-md p-1 ".concat(M?"bg-primary/10 text-primary":"text-muted-foreground hover:bg-accent hover:text-foreground"),children:(0,r.jsx)(o.A,{className:"h-3.5 w-3.5"})}),Y&&(0,r.jsx)("button",{type:"button",onClick:Y,"aria-label":C?"expand panels":"collapse panels",title:C?"패널 펼치기":"패널 접기",className:"ml-1 rounded-md p-1 text-muted-foreground hover:bg-accent hover:text-foreground",children:C?(0,r.jsx)(s.A,{className:"h-3.5 w-3.5"}):(0,r.jsx)(i.A,{className:"h-3.5 w-3.5"})})]})}},35979:(e,t,n)=>{n.d(t,{Dw:()=>g,Kh:()=>u,OZ:()=>s,cl:()=>i,gA:()=>p,hH:()=>d,lH:()=>m,tC:()=>o,x3:()=>c,xu:()=>l});var r=n(69355);function a(e){return"number"==typeof e&&Number.isFinite(e)?Number.isNaN(new Date(e).getTime())?null:e:null}function l(e){let t=new Set,n=[];for(let r of e){let e=c(r);!1===r.hasPty||t.has(e)||(t.add(e),n.push(r))}return n.sort((e,t)=>{var n,r,l,o;let s=a(e.startedAt),i=a(t.startedAt);if(null!==s&&null!==i&&s!==i)return i-s;if(null!==s&&null===i)return -1;if(null===s&&null!==i)return 1;let u=(n=e.id)<(r=t.id)?-1:+(n>r);return 0!==u?u:(l=c(e))<(o=c(t))?-1:+(l>o)})}function o(e){return(0,r.KN)(e)}function s(e){return"number"!=typeof e||!Number.isFinite(e)||Number.isNaN(new Date(e).getTime())?"시작 시각 알 수 없음":new Date(e).toLocaleString()}function i(e,t){return e&&!t?"프로세스 실행 중 \xb7 출력 스트림 열림":e&&t?"프로세스 실행 중 \xb7 출력 스트림 닫힘":e||t?"프로세스 종료 \xb7 출력 스트림 닫힘":"프로세스 종료 \xb7 출력 스트림 열림"}function u(e,t){if(null===e)return null;if("unrequested"===t.status||"loading"===t.status)return{kind:"loading",unreadablePayloadsSummary:null,groups:[]};if("error"===t.status)return{kind:"error",unreadablePayloadsSummary:null,groups:[]};let{lineage:n}=t,r=void 0===n.unreadablePayloads?"읽지 못한 계보 payload 수를 데몬이 알리지 않았습니다.":0===n.unreadablePayloads?"읽지 못한 계보 payload가 0개입니다.":"읽지 못한 계보 payload가 ".concat(n.unreadablePayloads,"개입니다.");return{kind:0===n.groups.length?"empty":"content",unreadablePayloadsSummary:r,groups:n.groups.map(t=>({joinedBy:t.joinedBy,key:t.key,rows:t.rows.map(t=>({ptyId:t.ptyId,kind:t.kind,instance:t.instance,alive:t.alive,startedAt:t.startedAt,closed:!0===t.closed||void 0!==t.closedAt,selected:t.ptyId===e}))}))}}function c(e){var t,n;return"".concat(null!=(n=null==(t=e.sourceRoot)?void 0:t.dbPath)?n:"","\0").concat(e.id)}function d(e,t){let n=t.filter(t=>t.id===e);if(1===n.length){let e=n[0];return{kind:"selected",terminal:e,terminalKey:c(e),candidates:[e],reason:"unique-id"}}return n.length>1?{kind:"ambiguous",terminal:null,terminalKey:null,candidates:n,reason:"duplicate-id"}:{kind:"not-found",terminal:null,terminalKey:null,candidates:[],reason:0===t.length?"empty-terminal-list":"terminal-id-not-found"}}function m(e,t,n,r,a){let l=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"raw",o=arguments.length>6&&void 0!==arguments[6]?arguments[6]:new Map,s=function(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"raw",a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:new Map,l=null!==t&&e.some(e=>c(e)===t);return e.map(e=>{var o,s,i;let u=l&&c(e)===t,d=u?"raw"===r?"unrequested"===(i=null!=(o=n.get(c(e)))?o:{status:"unrequested"}).status?{kind:"loading",text:"화면 글자를 아직 불러오지 않았습니다.",frameInfo:null,frameMetadata:null}:"loading"===i.status?{kind:"loading",text:"화면 글자를 불러오는 중…",frameInfo:null,frameMetadata:null}:"error"===i.status?{kind:"error",text:"화면 글자를 불러오지 못했습니다.",frameInfo:null,frameMetadata:null}:0===i.scrollback.length?{kind:"empty",text:"표시할 화면 글자가 없습니다.",frameInfo:null,frameMetadata:null}:{kind:"content",text:i.scrollback,frameInfo:null,frameMetadata:null}:function(e){if("unrequested"===e.status)return{kind:"loading",text:"렌더 화면을 아직 불러오지 않았습니다.",frameInfo:null,frameMetadata:null};if("loading"===e.status)return{kind:"loading",text:"렌더 화면을 불러오는 중…",frameInfo:null,frameMetadata:null};if("error"===e.status)return{kind:"error",text:"렌더 화면을 불러오지 못했습니다.",frameInfo:null,frameMetadata:null};let[t,...n]=e.frame.split("\n"),r=n.join("\n"),a={frameAt:e.frameAt,frameSource:e.frameSource};return 0===r.length?{kind:"empty",text:"표시할 렌더 화면이 없습니다.",frameInfo:t||null,frameMetadata:a}:{kind:"content",text:r,frameInfo:t||null,frameMetadata:a}}(null!=(s=a.get(c(e)))?s:{status:"unrequested"}):null;return{terminal:e,selected:u,scrollback:d,view:null===d?null:{visible:!0,modes:[{mode:"raw",label:"원시 글자",selected:"raw"===r},{mode:"render",label:"렌더 화면",selected:"render"===r}],display:d}}})}(t,r,a,l,o);return{includeAll:e,scopeSummary:["number"!=typeof(null==n?void 0:n.hiddenDead)?null:0===n.hiddenDead?"숨긴 종료 PTY가 0개입니다.":"숨긴 종료 PTY가 ".concat(n.hiddenDead,"개입니다."),function(e){let t=e.filter(e=>{let{terminal:t}=e;return"terminated-live-owner"===t.ownerRunUsage}).length;return"소유 런이 끝났는데 터미널이 남아 있는 행이 ".concat(t,"개입니다.")}(s)].filter(e=>null!==e).join(" "),rows:s}}function f(e,t){return e.observedAt-t.observedAt||e.logId-t.logId}function p(e){var t,n,r;let a=new Map;for(let n of e){let e=function(e){if("headless.progress-frame"!==e.event||!e.data||"object"!=typeof e.data)return null;let t=e.data;if("string"!=typeof t.ptyId||"string"!=typeof t.runId||"string"!=typeof t.planId||!Number.isSafeInteger(t.seq)||t.seq<1||"string"!=typeof t.humanLine)return null;let n=Date.parse(e.ts);return{ptyId:t.ptyId,runId:t.runId,planId:t.planId,seq:t.seq,humanLine:t.humanLine,observedAt:Number.isFinite(n)?n:0,logId:e.id}}(n);if(!e)continue;let r=null!=(t=a.get(e.ptyId))?t:[];r.push(e),a.set(e.ptyId,r)}let l=new Map;for(let[e,t]of a){t.sort(f);let a=t.at(-1),o=new Map;for(let e of t){let t="".concat(e.runId,"\0").concat(e.planId),r=null!=(n=o.get(t))?n:new Set;r.add(e.seq),o.set(t,r)}let s=[...o.values()].some(e=>{let t=[...e].sort((e,t)=>e-t);return t.some((e,n)=>0===n&&1!==e||n>0&&e-t[n-1]!=1)});l.set(e,{line:a.humanLine,status:(r=a.humanLine,/^\s*●/.test(r))?"complete":"running",hasMissingFrames:s})}return l}function g(e){var t;let n=null==(t=e.storedId)?void 0:t.trim();if(n)return{terminalId:n,reason:"stored"};let r=e.terminals.find(e=>!0===e.alive&&"web-terminal"===e.cmd);return r?{terminalId:r.id,reason:"live-pty"}:void 0!==e.fallbackId&&null!==e.fallbackId?{terminalId:e.fallbackId,reason:"fallback"}:{terminalId:null,reason:"no-terminals"}}},67821:(e,t,n)=>{n.d(t,{Zr:()=>o,f6:()=>a,oD:()=>l});let r="elanous.daemon.sessionId";function a(){return"undefined"!=typeof crypto&&"function"==typeof crypto.randomUUID?crypto.randomUUID():"s-".concat(Date.now().toString(36),"-").concat(Math.random().toString(36).slice(2,10))}function l(){let e=function(){let e=new URLSearchParams(window.location.search).get("session");return e?(localStorage.setItem(r,e),e):localStorage.getItem(r)}();if(e)return e;let t=a();return localStorage.setItem(r,t),t}function o(){let e=a();return localStorage.setItem(r,e),e}},69355:(e,t,n)=>{n.d(t,{GG:()=>i,HS:()=>c,KN:()=>a,L4:()=>l,U$:()=>f,XG:()=>d,h7:()=>o,t_:()=>m,vq:()=>p,xV:()=>s});var r=n(16405);function a(e){return e?{all:!0,includeTest:!0}:{}}function l(){try{let e=(0,r.Ys)(),t=(0,r.Wq)(e);return(0,r.To)([...e,t]),t}catch(e){return null}}function o(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=Object.entries(a(e)).map(e=>{let[t,n]=e;return"".concat(encodeURIComponent(t),"=").concat(encodeURIComponent(String(n)))}).join("&");return 0===t.length?"/v1/terminals":"/v1/terminals?".concat(t)}function s(e){return"/v1/terminals/".concat(encodeURIComponent(e),"/frame")}function i(){return"/v1/terminals/view"}let u={unknown:"Unknown target: this PTY was not found. Check the subject list and try again.",denied:"Denied: takeover was refused. Check ownership and try again.","owner-unreachable":"Owner unreachable: could not reach the PTY owner. Check the owner process and try again.",failed:"Server failed: ownership transfer did not complete. Check status and try again.",http:"Takeover failed. Check status and try again.",network:"Network failed: could not request takeover. Check the connection and try again."};async function c(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:globalThis.fetch,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};try{var r,a;let l=await t("/v1/terminals/".concat(encodeURIComponent(e),"/control"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"takeover"}),signal:n.signal});if(200===l.status)return{ok:!0,ptyId:e};let o=(r=l.status,404===r?"unknown":409===r?"denied":504===r?"owner-unreachable":502===r?"failed":"http");return{ok:!1,ptyId:e,kind:o,status:l.status,message:(a=l.status,"http"===o&&void 0!==a?"Takeover failed (".concat(a,"). Check status and try again."):u[o])}}catch(t){return{ok:!1,ptyId:e,kind:"network",message:u.network}}}function d(e){return{talk:e.talk.length>0,screen:e.screen.ptyIds.length>0,agent:e.agent.names.length>0||e.agent.controllers.length>0}}function m(e){let t=d(e);return e.screen.liveCount>0?"live":!t.screen&&t.agent?"unknown":"inactive"}function f(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return t?[...e]:e.filter(e=>"inactive"!==m(e))}function p(e,t){let n=new Map;for(let a of e){var r;let e=(function(e){let t=new Set,n=[];for(let r of e)!1===r.hasPty||t.has(r.id)||(t.add(r.id),n.push({id:r.id,value:r}));return n})(a.screen.ptyIds.map(e=>({id:e}))).sort((e,t)=>e.id.localeCompare(t.id));if(0===e.length){n.set(a.id,{kind:"no-screen"});continue}let l=null==(r=e.find(e=>{let{id:n}=e;return t.has(n)}))?void 0:r.id,o=void 0===l?void 0:t.get(l);n.set(a.id,void 0===l||void 0===o?{kind:"no-progress"}:{kind:"progress",ptyId:l,...o})}return n}},93743:(e,t,n)=>{n.d(t,{C:()=>u,DaemonProvider:()=>c,Q:()=>d});var r=n(94451),a=n(75699),l=n(45217),o=n(67821),s=n(5068),i=n(85303);let u=(0,a.createContext)(null);function c(e){let{children:t}=e,n={baseUrl:"",token:"",provider:""},[c,d]=(0,a.useState)(n),[m,f]=(0,a.useState)(""),[p]=(0,a.useState)(()=>new s.ki(n));(0,a.useEffect)(()=>{let e=(0,l.Fp)();d(e),p.updateConfig(e),f((0,o.oD)()),(0,i.cY)("webterm.provider.daemon.init",{baseUrl:e.baseUrl,hasToken:!!e.token})},[p]),(0,a.useEffect)(()=>{let e=e=>{if("elanous.daemon.token"===e.key||"elanous.nexus.baseUrl"===e.key){let t=(0,l.Fp)();p.updateConfig(t),d(t),(0,i.cY)("webterm.provider.daemon.config-cross-tab",{key:e.key,hasToken:!!t.token});return}"elanous.daemon.sessionId"===e.key&&e.newValue&&f(t=>t===e.newValue?t:((0,i.cY)("webterm.provider.daemon.session-cross-tab",{previous:t||"(empty)",next:e.newValue}),e.newValue))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)},[p]);let g=e=>{d(t=>{let n={...t,...e};return(0,l.Qc)(e),p.updateConfig(n),(0,i.cY)("webterm.provider.daemon.config-update",{keys:Object.keys(e)}),n})},h=e=>{f(e),localStorage.setItem("elanous.daemon.sessionId",e),(0,i.cY)("webterm.provider.daemon.session-set",{sessionId:e})},b=(0,a.useMemo)(()=>({config:c,setConfig:g,client:p,sessionId:m,setSessionId:h}),[c,p,m]);return(0,r.jsx)(u.Provider,{value:b,children:t})}function d(){let e=(0,a.useContext)(u);if(!e)throw Error("useDaemon must be used inside <DaemonProvider>");return e}}}]);
@@ -1,94 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6020],{5272:(t,e,s)=>{s.d(e,{A:()=>a});var i=s(60549),r=s(73192);let a=(t,e)=>i.A.lang.round(r.A.parse(t)[e])},16020:(t,e,s)=>{s.d(e,{diagram:()=>k});var i=s(80690),r=s(88589),a=s(79339);s(64526),s(74616),s(22777),s(8303),s(46365),s(13250),s(30151),s(63567);var n=s(87100),l=s(11226),o=s(46238),c=s(96556),h=s(20330),u=s(91063),d=s(5272),y=s(2695),p=function(){var t=(0,h.K)(function(t,e,s,i){for(s=s||{},i=t.length;i--;s[t[i]]=e);return s},"o"),e=[6,9,21,23,25,27,34,37,38,39,40,41,43,46,47,51,53,54,55],s=[2,2],i=[1,7],r=[1,9],a=[1,10],n=[1,11],l=[1,12],o=[1,30],c=[1,23],u=[1,24],d=[1,25],y=[1,26],p=[1,27],b=[1,19],g=[1,28],_=[1,29],f=[1,20],m=[1,18],k=[1,21],E=[1,22],S=[2,6],$=[6,9,21,23,25,27,33,34,37,38,39,40,41,43,46,47,51,53,54,55],T=[1,36],O=[1,37],N=[1,38],x=[1,39],C=[1,40],A=[6,9,12,14,16,19,20,21,23,25,27,33,34,37,38,39,40,41,43,46,47,50,51,53,54,55,69,70,71,72,73],R=[1,46],I=[1,47],D=[1,57],v=[43,51,53,54,55,74,75],L=[1,70],w=[1,68],K=[1,65],M=[1,69],B=[1,71],G=[6,9,12,16,21,23,25,27,33,34,37,38,39,40,41,43,44,45,46,47,51,52,53,54,55,69,70,71,72,73],F=[1,78],Y=[1,77],P=[1,76],z=[69,70,71,72,73],U=[1,91],Z=[6,9,45,50],j=[6,9,12,44,45,50,51,52],W=[1,101],q=[1,100],X=[1,99],V=[18,61],H=[1,110],Q=[1,109],J=[20,43,51,53,54,55],tt=[18,61,64,66],te={trace:(0,h.K)(function(){},"trace"),yy:{},symbols_:{error:2,start:3,ER_DIAGRAM:4,document:5,EOF:6,line:7,statement:8,NEWLINE:9,entityName:10,relSpec:11,COLON:12,role:13,STYLE_SEPARATOR:14,idList:15,BLOCK_START:16,attributes:17,BLOCK_STOP:18,SQS:19,SQE:20,title:21,title_value:22,acc_title:23,acc_title_value:24,acc_descr:25,acc_descr_value:26,acc_descr_multiline_value:27,direction:28,classDefStatement:29,classStatement:30,styleStatement:31,subgraphHeader:32,END:33,SUBGRAPH:34,separator:35,subgraphTitle:36,direction_tb:37,direction_bt:38,direction_rl:39,direction_lr:40,CLASSDEF:41,stylesOpt:42,UNICODE_TEXT:43,STYLE_TEXT:44,COMMA:45,CLASS:46,STYLE:47,style:48,styleComponent:49,SEMI:50,NUM:51,BRKT:52,ENTITY_NAME:53,DECIMAL_NUM:54,ENTITY_ONE:55,attribute:56,attributeType:57,attributeName:58,attributeKeyTypeList:59,attributeComment:60,ATTRIBUTE_WORD:61,"?":62,attributeKeyType:63,",":64,ATTRIBUTE_KEY:65,COMMENT:66,cardinality:67,relType:68,ZERO_OR_ONE:69,ZERO_OR_MORE:70,ONE_OR_MORE:71,ONLY_ONE:72,MD_PARENT:73,NON_IDENTIFYING:74,IDENTIFYING:75,WORD:76,$accept:0,$end:1},terminals_:{2:"error",4:"ER_DIAGRAM",6:"EOF",9:"NEWLINE",12:"COLON",14:"STYLE_SEPARATOR",16:"BLOCK_START",18:"BLOCK_STOP",19:"SQS",20:"SQE",21:"title",22:"title_value",23:"acc_title",24:"acc_title_value",25:"acc_descr",26:"acc_descr_value",27:"acc_descr_multiline_value",33:"END",34:"SUBGRAPH",37:"direction_tb",38:"direction_bt",39:"direction_rl",40:"direction_lr",41:"CLASSDEF",43:"UNICODE_TEXT",44:"STYLE_TEXT",45:"COMMA",46:"CLASS",47:"STYLE",50:"SEMI",51:"NUM",52:"BRKT",53:"ENTITY_NAME",54:"DECIMAL_NUM",55:"ENTITY_ONE",61:"ATTRIBUTE_WORD",62:"?",64:",",65:"ATTRIBUTE_KEY",66:"COMMENT",69:"ZERO_OR_ONE",70:"ZERO_OR_MORE",71:"ONE_OR_MORE",72:"ONLY_ONE",73:"MD_PARENT",74:"NON_IDENTIFYING",75:"IDENTIFYING",76:"WORD"},productions_:[0,[3,3],[5,0],[5,2],[7,1],[7,1],[7,1],[8,5],[8,9],[8,7],[8,7],[8,4],[8,6],[8,3],[8,5],[8,1],[8,3],[8,7],[8,9],[8,6],[8,8],[8,4],[8,6],[8,2],[8,2],[8,2],[8,1],[8,1],[8,1],[8,1],[8,1],[8,3],[32,3],[32,6],[36,1],[36,2],[28,1],[28,1],[28,1],[28,1],[29,4],[15,1],[15,1],[15,3],[15,3],[30,3],[31,4],[42,1],[42,3],[48,1],[48,2],[35,1],[35,1],[35,1],[49,1],[49,1],[49,1],[49,1],[10,1],[10,1],[10,1],[10,1],[10,1],[17,1],[17,2],[56,2],[56,3],[56,3],[56,4],[57,1],[57,2],[58,1],[59,1],[59,3],[63,1],[60,1],[11,3],[67,1],[67,1],[67,1],[67,1],[67,1],[68,1],[68,1],[13,1],[13,1],[13,1]],performAction:(0,h.K)(function(t,e,s,i,r,a,n){var l=a.length-1;switch(r){case 1:break;case 2:case 5:case 6:this.$=[];break;case 3:this.$=a[l-1].concat(a[l]);break;case 4:case 34:case 59:case 60:case 61:case 62:case 86:case 69:case 71:case 74:this.$=a[l];break;case 7:i.addEntity(a[l-4]),i.addEntity(a[l-2]),i.addRelationship(a[l-4],a[l],a[l-2],a[l-3]),this.$=[a[l-4],a[l-2]];break;case 8:i.addEntity(a[l-8]),i.addEntity(a[l-4]),i.addRelationship(a[l-8],a[l],a[l-4],a[l-5]),i.setClass([a[l-8]],a[l-6]),i.setClass([a[l-4]],a[l-2]),this.$=[a[l-8],a[l-4]];break;case 9:i.addEntity(a[l-6]),i.addEntity(a[l-2]),i.addRelationship(a[l-6],a[l],a[l-2],a[l-3]),i.setClass([a[l-6]],a[l-4]),this.$=[a[l-6],a[l-2]];break;case 10:i.addEntity(a[l-6]),i.addEntity(a[l-4]),i.addRelationship(a[l-6],a[l],a[l-4],a[l-5]),i.setClass([a[l-4]],a[l-2]),this.$=[a[l-6],a[l-4]];break;case 11:i.addEntity(a[l-3]),i.addAttributes(a[l-3],a[l-1]),this.$=[a[l-3]];break;case 12:i.addEntity(a[l-5]),i.addAttributes(a[l-5],a[l-1]),i.setClass([a[l-5]],a[l-3]),this.$=[a[l-5]];break;case 13:i.addEntity(a[l-2]),this.$=[a[l-2]];break;case 14:i.addEntity(a[l-4]),i.setClass([a[l-4]],a[l-2]),this.$=[a[l-4]];break;case 15:i.addEntity(a[l]),this.$=[a[l]];break;case 16:i.addEntity(a[l-2]),i.setClass([a[l-2]],a[l]),this.$=[a[l-2]];break;case 17:i.addEntity(a[l-6],a[l-4]),i.addAttributes(a[l-6],a[l-1]),this.$=[a[l-6]];break;case 18:i.addEntity(a[l-8],a[l-6]),i.addAttributes(a[l-8],a[l-1]),i.setClass([a[l-8]],a[l-3]),this.$=[a[l-8]];break;case 19:i.addEntity(a[l-5],a[l-3]),this.$=[a[l-5]];break;case 20:i.addEntity(a[l-7],a[l-5]),i.setClass([a[l-7]],a[l-2]),this.$=[a[l-7]];break;case 21:i.addEntity(a[l-3],a[l-1]);break;case 22:i.addEntity(a[l-5],a[l-3]),i.setClass([a[l-5]],a[l]);break;case 23:case 24:this.$=a[l].trim(),i.setAccTitle(this.$);break;case 25:case 26:this.$=a[l].trim(),i.setAccDescription(this.$);break;case 27:i.subgraphDepth?this.$=a[l]:(i.setDirection(a[l].value),this.$=[]);break;case 31:i.subgraphDepth=(i.subgraphDepth||1)-1,this.$=i.addSubGraph({text:a[l-2].id},a[l-1],{text:a[l-2].text});break;case 32:i.subgraphDepth=(i.subgraphDepth||0)+1,this.$={id:a[l-1],text:a[l-1]};break;case 33:i.subgraphDepth=(i.subgraphDepth||0)+1,this.$={id:a[l-4],text:a[l-2]};break;case 35:this.$=a[l-1]+" "+a[l];break;case 36:this.$={stmt:"dir",value:"TB"};break;case 37:this.$={stmt:"dir",value:"BT"};break;case 38:this.$={stmt:"dir",value:"RL"};break;case 39:this.$={stmt:"dir",value:"LR"};break;case 40:this.$=a[l-3],i.addClass(a[l-2],a[l-1]);break;case 41:case 42:case 63:case 72:case 47:this.$=[a[l]];break;case 43:case 44:this.$=a[l-2].concat([a[l]]);break;case 45:this.$=a[l-2],i.setClass(a[l-1],a[l]);break;case 46:this.$=a[l-3],i.addCssStyles(a[l-2],a[l-1]);break;case 48:case 73:a[l-2].push(a[l]),this.$=a[l-2];break;case 50:case 70:this.$=a[l-1]+a[l];break;case 58:case 84:case 85:case 75:this.$=a[l].replace(/"/g,"");break;case 64:a[l].push(a[l-1]),this.$=a[l];break;case 65:this.$={type:a[l-1],name:a[l]};break;case 66:this.$={type:a[l-2],name:a[l-1],keys:a[l]};break;case 67:this.$={type:a[l-2],name:a[l-1],comment:a[l]};break;case 68:this.$={type:a[l-3],name:a[l-2],keys:a[l-1],comment:a[l]};break;case 76:this.$={cardA:a[l],relType:a[l-1],cardB:a[l-2]};break;case 77:this.$=i.Cardinality.ZERO_OR_ONE;break;case 78:this.$=i.Cardinality.ZERO_OR_MORE;break;case 79:this.$=i.Cardinality.ONE_OR_MORE;break;case 80:this.$=i.Cardinality.ONLY_ONE;break;case 81:this.$=i.Cardinality.MD_PARENT;break;case 82:this.$=i.Identification.NON_IDENTIFYING;break;case 83:this.$=i.Identification.IDENTIFYING}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},t(e,s,{5:3}),{6:[1,4],7:5,8:6,9:i,10:8,21:r,23:a,25:n,27:l,28:13,29:14,30:15,31:16,32:17,34:o,37:c,38:u,39:d,40:y,41:p,43:b,46:g,47:_,51:f,53:m,54:k,55:E},t(e,S,{1:[2,1]}),t($,[2,3]),t($,[2,4]),t($,[2,5]),t($,[2,15],{11:31,67:35,14:[1,32],16:[1,33],19:[1,34],69:T,70:O,71:N,72:x,73:C}),{22:[1,41]},{24:[1,42]},{26:[1,43]},t($,[2,26]),t($,[2,27]),t($,[2,28]),t($,[2,29]),t($,[2,30]),t($,s,{5:44}),t(A,[2,58]),t(A,[2,59]),t(A,[2,60]),t(A,[2,61]),t(A,[2,62]),t($,[2,36]),t($,[2,37]),t($,[2,38]),t($,[2,39]),{15:45,43:R,44:I},{15:48,43:R,44:I},{15:49,43:R,44:I},{10:50,43:b,51:f,53:m,54:k,55:E},{10:51,43:b,51:f,53:m,54:k,55:E},{15:52,43:R,44:I},{17:53,18:[1,54],56:55,57:56,61:D},{10:58,43:b,51:f,53:m,54:k,55:E},{68:59,74:[1,60],75:[1,61]},t(v,[2,77]),t(v,[2,78]),t(v,[2,79]),t(v,[2,80]),t(v,[2,81]),t($,[2,23]),t($,[2,24]),t($,[2,25]),{6:[1,63],7:5,8:6,9:i,10:8,21:r,23:a,25:n,27:l,28:13,29:14,30:15,31:16,32:17,33:[1,62],34:o,37:c,38:u,39:d,40:y,41:p,43:b,46:g,47:_,51:f,53:m,54:k,55:E},{12:L,42:64,44:w,45:K,48:66,49:67,51:M,52:B},t(G,[2,41]),t(G,[2,42]),{15:72,43:R,44:I,45:K},{12:L,42:73,44:w,45:K,48:66,49:67,51:M,52:B},{6:F,9:Y,19:[1,75],35:74,50:P},{12:[1,79],14:[1,80]},t($,[2,16],{67:35,11:81,16:[1,82],45:K,69:T,70:O,71:N,72:x,73:C}),{18:[1,83]},t($,[2,13]),{17:84,18:[2,63],56:55,57:56,61:D},{58:85,61:[1,86]},{61:[2,69],62:[1,87]},{20:[1,88]},{67:89,69:T,70:O,71:N,72:x,73:C},t(z,[2,82]),t(z,[2,83]),t($,[2,31]),t($,S),{6:F,9:Y,35:90,45:U,50:P},{43:[1,92],44:[1,93]},t(Z,[2,47],{49:94,12:L,44:w,51:M,52:B}),t(j,[2,49]),t(j,[2,54]),t(j,[2,55]),t(j,[2,56]),t(j,[2,57]),t($,[2,45],{45:K}),{6:F,9:Y,35:95,45:U,50:P},t($,[2,32]),{10:97,36:96,43:b,51:f,53:m,54:k,55:E},t($,[2,51]),t($,[2,52]),t($,[2,53]),{13:98,43:W,53:q,76:X},{15:102,43:R,44:I},{10:103,43:b,51:f,53:m,54:k,55:E},{17:104,18:[1,105],56:55,57:56,61:D},t($,[2,11]),{18:[2,64]},t(V,[2,65],{59:106,60:107,63:108,65:H,66:Q}),t([18,61,65,66],[2,71]),{61:[2,70]},t($,[2,21],{14:[1,112],16:[1,111]}),t([43,51,53,54,55],[2,76]),t($,[2,40]),{12:L,44:w,48:113,49:67,51:M,52:B},t(G,[2,43]),t(G,[2,44]),t(j,[2,50]),t($,[2,46]),{10:115,20:[1,114],43:b,51:f,53:m,54:k,55:E},t(J,[2,34]),t($,[2,7]),t($,[2,84]),t($,[2,85]),t($,[2,86]),{12:[1,116],45:K},{12:[1,118],14:[1,117]},{18:[1,119]},t($,[2,14]),t(V,[2,66],{60:120,64:[1,121],66:Q}),t(V,[2,67]),t(tt,[2,72]),t(V,[2,75]),t(tt,[2,74]),{17:122,18:[1,123],56:55,57:56,61:D},{15:124,43:R,44:I},t(Z,[2,48],{49:94,12:L,44:w,51:M,52:B}),{6:F,9:Y,35:125,50:P},t(J,[2,35]),{13:126,43:W,53:q,76:X},{15:127,43:R,44:I},{13:128,43:W,53:q,76:X},t($,[2,12]),t(V,[2,68]),{63:129,65:H},{18:[1,130]},t($,[2,19]),t($,[2,22],{16:[1,131],45:K}),t($,[2,33]),t($,[2,10]),{12:[1,132],45:K},t($,[2,9]),t(tt,[2,73]),t($,[2,17]),{17:133,18:[1,134],56:55,57:56,61:D},{13:135,43:W,53:q,76:X},{18:[1,136]},t($,[2,20]),t($,[2,8]),t($,[2,18])],defaultActions:{84:[2,64],87:[2,70]},parseError:(0,h.K)(function(t,e){if(e.recoverable)this.trace(t);else{var s=Error(t);throw s.hash=e,s}},"parseError"),parse:(0,h.K)(function(t){var e=this,s=[0],i=[],r=[null],a=[],n=this.table,l="",o=0,c=0,u=0,d=a.slice.call(arguments,1),y=Object.create(this.lexer),p={};for(var b in this.yy)Object.prototype.hasOwnProperty.call(this.yy,b)&&(p[b]=this.yy[b]);y.setInput(t,p),p.lexer=y,p.parser=this,void 0===y.yylloc&&(y.yylloc={});var g=y.yylloc;a.push(g);var _=y.options&&y.options.ranges;function f(){var t;return"number"!=typeof(t=i.pop()||y.lex()||1)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof p.parseError?this.parseError=p.parseError:this.parseError=Object.getPrototypeOf(this).parseError,(0,h.K)(function(t){s.length=s.length-2*t,r.length=r.length-t,a.length=a.length-t},"popStack"),(0,h.K)(f,"lex");for(var m,k,E,S,$,T,O,N,x,C={};;){if(E=s[s.length-1],this.defaultActions[E]?S=this.defaultActions[E]:(null==m&&(m=f()),S=n[E]&&n[E][m]),void 0===S||!S.length||!S[0]){var A="";for(T in x=[],n[E])this.terminals_[T]&&T>2&&x.push("'"+this.terminals_[T]+"'");A=y.showPosition?"Parse error on line "+(o+1)+":\n"+y.showPosition()+"\nExpecting "+x.join(", ")+", got '"+(this.terminals_[m]||m)+"'":"Parse error on line "+(o+1)+": Unexpected "+(1==m?"end of input":"'"+(this.terminals_[m]||m)+"'"),this.parseError(A,{text:y.match,token:this.terminals_[m]||m,line:y.yylineno,loc:g,expected:x})}if(S[0]instanceof Array&&S.length>1)throw Error("Parse Error: multiple actions possible at state: "+E+", token: "+m);switch(S[0]){case 1:s.push(m),r.push(y.yytext),a.push(y.yylloc),s.push(S[1]),m=null,k?(m=k,k=null):(c=y.yyleng,l=y.yytext,o=y.yylineno,g=y.yylloc,u>0&&u--);break;case 2:if(O=this.productions_[S[1]][1],C.$=r[r.length-O],C._$={first_line:a[a.length-(O||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(O||1)].first_column,last_column:a[a.length-1].last_column},_&&(C._$.range=[a[a.length-(O||1)].range[0],a[a.length-1].range[1]]),void 0!==($=this.performAction.apply(C,[l,c,o,p,S[1],r,a].concat(d))))return $;O&&(s=s.slice(0,-1*O*2),r=r.slice(0,-1*O),a=a.slice(0,-1*O)),s.push(this.productions_[S[1]][0]),r.push(C.$),a.push(C._$),N=n[s[s.length-2]][s[s.length-1]],s.push(N);break;case 3:return!0}}return!0},"parse")};function ts(){this.yy={}}return te.lexer={EOF:1,parseError:(0,h.K)(function(t,e){if(this.yy.parser)this.yy.parser.parseError(t,e);else throw Error(t)},"parseError"),setInput:(0,h.K)(function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:(0,h.K)(function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},"input"),unput:(0,h.K)(function(t){var e=t.length,s=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),s.length-1&&(this.yylineno-=s.length-1);var r=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:s?(s.length===i.length?this.yylloc.first_column:0)+i[i.length-s.length].length-s[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[r[0],r[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},"unput"),more:(0,h.K)(function(){return this._more=!0,this},"more"),reject:(0,h.K)(function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"reject"),less:(0,h.K)(function(t){this.unput(this.match.slice(t))},"less"),pastInput:(0,h.K)(function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:(0,h.K)(function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:(0,h.K)(function(){var t=this.pastInput(),e=Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},"showPosition"),test_match:(0,h.K)(function(t,e){var s,i,r;if(this.options.backtrack_lexer&&(r={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(r.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],s=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),s)return s;if(this._backtrack)for(var a in r)this[a]=r[a];return!1},"test_match"),next:(0,h.K)(function(){if(this.done)return this.EOF;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var t,e,s,i,r=this._currentRules(),a=0;a<r.length;a++)if((s=this._input.match(this.rules[r[a]]))&&(!e||s[0].length>e[0].length)){if(e=s,i=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(s,r[a])))return t;if(!this._backtrack)return!1;e=!1;continue}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,r[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:(0,h.K)(function(){var t=this.next();return t||this.lex()},"lex"),begin:(0,h.K)(function(t){this.conditionStack.push(t)},"begin"),popState:(0,h.K)(function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:(0,h.K)(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:(0,h.K)(function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},"topState"),pushState:(0,h.K)(function(t){this.begin(t)},"pushState"),stateStackSize:(0,h.K)(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:(0,h.K)(function(t,e,s,i){switch(s){case 0:return this.begin("acc_title"),23;case 1:return this.popState(),"acc_title_value";case 2:return this.begin("acc_descr"),25;case 3:return this.popState(),"acc_descr_value";case 4:this.begin("acc_descr_multiline");break;case 5:case 28:this.popState();break;case 6:return"acc_descr_multiline_value";case 7:return 37;case 8:return 38;case 9:return 39;case 10:return 40;case 11:case 22:case 30:case 37:break;case 12:return 9;case 13:return 53;case 14:return 76;case 15:return 4;case 16:return this.begin("block"),16;case 17:case 18:case 40:return 52;case 19:case 39:return 45;case 20:return 14;case 21:case 38:return 12;case 23:return 65;case 24:case 25:case 27:return 61;case 26:this.begin("block_bq");break;case 29:return 66;case 31:return this.popState(),18;case 32:case 81:return e.yytext[0];case 33:return 19;case 34:return 20;case 35:return this.begin("style"),47;case 36:return this.popState(),9;case 41:return this.begin("style"),41;case 42:return 46;case 43:return 34;case 44:return 33;case 45:case 49:case 50:case 68:return 69;case 46:case 47:case 48:case 56:case 58:case 70:return 71;case 51:case 52:case 53:case 54:case 55:case 57:case 69:return 70;case 59:case 60:case 62:case 63:case 64:case 67:return 72;case 61:return 54;case 65:return 55;case 66:return 51;case 71:return 73;case 72:case 75:case 76:case 77:return 74;case 73:case 74:return 75;case 78:return 44;case 79:return 50;case 80:return 43;case 82:return 6}},"anonymous"),rules:[/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:[ \t\r]+)/i,/^(?:[\n]+)/i,/^(?:"[^"%\r\n\v\b\\]+")/i,/^(?:"[^"]*")/i,/^(?:erDiagram\b)/i,/^(?:\{)/i,/^(?:#)/i,/^(?:#)/i,/^(?:,)/i,/^(?::::)/i,/^(?::)/i,/^(?:\s+)/i,/^(?:\b((?:PK)|(?:FK)|(?:UK))\b)/i,/^(?:([^\s]*)[~].*[~]([^\s]*))/i,/^(?:([\*A-Za-z_\u00C0-\uFFFF][A-Za-z0-9\-\_\[\]\(\)\.,\u00C0-\uFFFF\*]*))/i,/^(?:[`])/i,/^(?:[^`]+)/i,/^(?:[`])/i,/^(?:"[^"]*")/i,/^(?:[\n]+)/i,/^(?:\})/i,/^(?:.)/i,/^(?:\[)/i,/^(?:\])/i,/^(?:style\b)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?::)/i,/^(?:,)/i,/^(?:#)/i,/^(?:classDef\b)/i,/^(?:class\b)/i,/^(?:subgraph\b)/i,/^(?:end\b\s*)/i,/^(?:one or zero\b)/i,/^(?:one or more\b)/i,/^(?:one or many\b)/i,/^(?:1\+)/i,/^(?:\|o\b)/i,/^(?:zero or one\b)/i,/^(?:zero or more\b)/i,/^(?:zero or many\b)/i,/^(?:0\+)/i,/^(?:\}o\b)/i,/^(?:many\(0\))/i,/^(?:many\(1\))/i,/^(?:many\b)/i,/^(?:\}\|)/i,/^(?:one\b)/i,/^(?:only one\b)/i,/^(?:[0-9]+\.[0-9]+)/i,/^(?:1(?=\s+[A-Za-z_"']))/i,/^(?:1(?=\s+[0-9]))/i,/^(?:1(?=(--|\.\.|\.-|-\.)))/i,/^(?:1\b)/i,/^(?:[0-9]+)/i,/^(?:\|\|)/i,/^(?:o\|)/i,/^(?:o\{)/i,/^(?:\|\{)/i,/^(?:u(?=[\.\-\|]))/i,/^(?:\.\.)/i,/^(?:--)/i,/^(?:to\b)/i,/^(?:optionally to\b)/i,/^(?:\.-)/i,/^(?:-\.)/i,/^(?:([^\x00-\x7F]|\w|-|\*)+)/i,/^(?:;)/i,/^(?:([^\x00-\x7F]|\w|-|\*|\.)+)/i,/^(?:.)/i,/^(?:$)/i],conditions:{style:{rules:[36,37,38,39,40,78,79],inclusive:!1},acc_descr_multiline:{rules:[5,6],inclusive:!1},acc_descr:{rules:[3],inclusive:!1},acc_title:{rules:[1],inclusive:!1},block_bq:{rules:[27,28],inclusive:!1},block:{rules:[22,23,24,25,26,29,30,31,32],inclusive:!1},INITIAL:{rules:[0,2,4,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,33,34,35,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82],inclusive:!0}}},(0,h.K)(ts,"Parser"),ts.prototype=te,te.Parser=ts,new ts}();p.parser=p;var b=class{constructor(){this.entities=new Map,this.relationships=[],this.classes=new Map,this.subgraphDepth=0,this.subGraphs=[],this.subGraphLookup=new Map,this.subCount=0,this.direction="TB",this.Cardinality={ZERO_OR_ONE:"ZERO_OR_ONE",ZERO_OR_MORE:"ZERO_OR_MORE",ONE_OR_MORE:"ONE_OR_MORE",ONLY_ONE:"ONLY_ONE",MD_PARENT:"MD_PARENT"},this.Identification={NON_IDENTIFYING:"NON_IDENTIFYING",IDENTIFYING:"IDENTIFYING"},this.setAccTitle=o.SV,this.getAccTitle=o.iN,this.setAccDescription=o.EI,this.getAccDescription=o.m7,this.setDiagramTitle=o.ke,this.getDiagramTitle=o.ab,this.getConfig=(0,h.K)(()=>(0,o.D7)().er,"getConfig"),this.clear(),this.addEntity=this.addEntity.bind(this),this.addAttributes=this.addAttributes.bind(this),this.addRelationship=this.addRelationship.bind(this),this.setDirection=this.setDirection.bind(this),this.addCssStyles=this.addCssStyles.bind(this),this.addClass=this.addClass.bind(this),this.setClass=this.setClass.bind(this),this.setAccTitle=this.setAccTitle.bind(this),this.setAccDescription=this.setAccDescription.bind(this),this.addSubGraph=this.addSubGraph.bind(this)}static{(0,h.K)(this,"ErDB")}addEntity(t,e=""){return this.entities.has(t)?!this.entities.get(t)?.alias&&e&&(this.entities.get(t).alias=e,c.R.info(`Add alias '${e}' to entity '${t}'`)):(this.entities.set(t,{id:`entity-${t}-${this.entities.size}`,label:t,attributes:[],alias:e,shape:"erBox",look:(0,o.D7)().look??"default",cssClasses:"default",cssStyles:[],labelType:"markdown"}),c.R.info("Added new entity :",t)),this.entities.get(t)}getEntity(t){return this.entities.get(t)}getEntities(){return this.entities}getClasses(){return this.classes}addAttributes(t,e){let s,i=this.addEntity(t);for(s=e.length-1;s>=0;s--)e[s].keys||(e[s].keys=[]),e[s].comment||(e[s].comment=""),i.attributes.push(e[s]),c.R.debug("Added attribute ",e[s].name)}addRelationship(t,e,s,i){let r,a;if(this.subGraphLookup.has(t))r=t;else{let e=this.addEntity(t);if(!e)return;r=e.id}if(this.subGraphLookup.has(s))a=s;else{let t=this.addEntity(s);if(!t)return;a=t.id}let n={entityA:r,roleA:e,entityB:a,relSpec:i};this.relationships.push(n),c.R.debug("Added new relationship :",n)}getRelationships(){return this.relationships}getDirection(){return this.direction}setDirection(t){this.direction=t}getCompiledStyles(t){let e=[];for(let s of t){let t=this.classes.get(s);t?.styles&&(e=[...e,...t.styles??[]].map(t=>t.trim())),t?.textStyles&&(e=[...e,...t.textStyles??[]].map(t=>t.trim()))}return e}addCssStyles(t,e){for(let s of t){let t=this.entities.get(s),i=this.subGraphLookup.get(s);if(e){if(t)for(let s of e)t.cssStyles.push(s);if(i)for(let t of(i.cssStyles||(i.cssStyles=[]),e))i.cssStyles.push(t)}}}addClass(t,e){t.forEach(t=>{let s=this.classes.get(t);void 0===s&&(s={id:t,styles:[],textStyles:[]},this.classes.set(t,s)),e&&e.forEach(function(t){if(/color/.exec(t)){let e=t.replace("fill","bgFill");s.textStyles.push(e)}s.styles.push(t)})})}addSubGraph(t,e,s){let i=t.text.trim(),r=s.text,a=(0,h.K)(t=>{let e,s=new Set;return{nodeList:t.filter(t=>{if(t?.stmt)return"dir"===t.stmt&&(e=t.value),!1;if("string"!=typeof t)return!1;let i=t.trim();return!(!i||s.has(i))&&(s.add(i),!0)}),dir:e}},"uniq")(e.flat()),n=a.nodeList,l=a.dir;i=i??"subGraph"+this.subCount,r=r||"",r=this.sanitizeText(r),this.subCount=this.subCount+1;let o={id:i,nodes:n,title:r.trim(),classes:[],cssStyles:[],dir:l,labelType:this.sanitizeNodeLabelType(s?.type)};return c.R.info("Adding",o.id,o.nodes,o.dir),o.nodes=this.makeUniq(o,this.subGraphs).nodes,this.subGraphs.push(o),this.subGraphLookup.set(i,o),i}getSubGraphs(){return this.subGraphs}setClass(t,e){for(let s of t){let t=this.entities.get(s);if(t)for(let s of e)t.cssClasses+=" "+s;let i=this.subGraphLookup.get(s);if(i)for(let t of e)i.classes.push(t)}}subgraphNodeCache(t){let e=new Set;for(let s of t)for(let t of s.nodes)e.add(t);return e}makeUniq(t,e){let s=this.subgraphNodeCache(e),i=[];return t.nodes.forEach((e,r)=>{s.has(e)?c.R.warn(`Entity '${e}' already belongs to another subgraph and will be ignored`):i.push(t.nodes[r])}),{nodes:i}}sanitizeText(t){return o.Y2.sanitizeText(t,(0,o.D7)())}sanitizeNodeLabelType(t){switch(t){case"markdown":case"string":case"text":return t;default:return"markdown"}}clear(){this.entities=new Map,this.classes=new Map,this.relationships=[],this.subGraphs=[],this.subGraphLookup=new Map,this.subCount=0,this.subgraphDepth=0,(0,o.IU)()}getData(){let t=[],e=[],s=(0,o.D7)(),i=this.getSubGraphs(),r=new Map,a=new Map;for(let t=i.length-1;t>=0;t--){let e=i[t];for(let t of(e.nodes.length>0&&a.set(e.id,!0),e.nodes))r.set(t,e.id)}for(let e=i.length-1;e>=0;e--){let a=i[e];t.push({id:a.id,label:a.title,labelStyle:"",labelType:a.labelType,parentId:r.get(a.id),padding:8,cssCompiledStyles:this.getCompiledStyles(a.classes),cssStyles:a.cssStyles,cssClasses:a.classes.join(" "),shape:"rect",dir:a.dir,isGroup:!0,look:s.look})}let n=new Set(i.map(t=>t.id)),c=0;for(let e of this.entities.keys()){if(n.has(e))continue;let s=this.entities.get(e);s&&(s.cssCompiledStyles=this.getCompiledStyles(s.cssClasses.split(" ")),s.colorIndex=c++,t.push({...s,parentId:r.get(e),isGroup:!1}))}let h=0;for(let t of this.relationships){let i={id:(0,l.rY)(t.entityA,t.entityB,{prefix:"id",counter:h++}),type:"normal",curve:"basis",start:t.entityA,end:t.entityB,label:t.roleA,labelpos:"c",thickness:"normal",classes:"relationshipLine",arrowTypeStart:t.relSpec.cardB.toLowerCase(),arrowTypeEnd:t.relSpec.cardA.toLowerCase(),pattern:"IDENTIFYING"==t.relSpec.relType?"solid":"dashed",look:s.look,labelType:"markdown"};e.push(i)}return{nodes:t,edges:e,other:{},config:s,direction:this.direction}}},g={};(0,h.V)(g,{draw:()=>_});var _=(0,h.K)(async function(t,e,s,n){c.R.info("REF0:"),c.R.info("Drawing er diagram (unified)",e);let{securityLevel:h,er:d,layout:y}=(0,o.D7)(),p=n.db.getData(),b=(0,i.A)(e,h);p.type=n.type,p.layoutAlgorithm=(0,a.q7)(y),p.config.flowchart.nodeSpacing=d?.nodeSpacing||140,p.config.flowchart.rankSpacing=d?.rankSpacing||80,p.direction=n.db.getDirection();let{config:g}=p,{look:_}=g;"neo"===_?p.markers=["only_one_neo","zero_or_one_neo","one_or_more_neo","zero_or_more_neo"]:p.markers=["only_one","zero_or_one","one_or_more","zero_or_more"],p.diagramId=e,await (0,a.XX)(p,b);let f=b.selectAll('[id*="-background"]');Array.from(f).length>0&&f.each(function(){let t=(0,u.Ltv)(this),e=t.attr("id").replace("-background",""),s=b.select(`#${CSS.escape(e)}`);if(!s.empty()){let e=s.attr("transform");t.attr("transform",e)}}),l._K.insertTitle(b,"erDiagramTitleText",d?.titleTopMargin??25,n.db.getDiagramTitle()),(0,r.P)(b,8,"erDiagram",d?.useMaxWidth??!0)},"draw"),f=(0,h.K)((t,e)=>{let s=d.A,i=s(t,"r"),r=s(t,"g"),a=s(t,"b");return y.A(i,r,a,e)},"fade"),m=(0,h.K)(t=>{let{theme:e,bkgColorArray:s,borderColorArray:i}=t;if(!(0,n.P1)(e,i))return"";let r=(0,n.rq)(t.look),a=(0,n.Ic)(s),l="";for(let t=0;t<(0,n.Hu)(i);t++){let e=i[t],n=a?`fill: ${s[t%s.length]};`:"";l+=`
2
-
3
- [data-look="${r}"][data-color-id="color-${t}"].node path {
4
- stroke: ${e};
5
- ${n}
6
- }
7
-
8
- [data-look="${r}"][data-color-id="color-${t}"].node rect {
9
- stroke: ${e};
10
- ${n}
11
- }
12
- `}return l},"genColor"),k={parser:p,get db(){return new b},renderer:g,styles:(0,h.K)(t=>{let{look:e,theme:s,erEdgeLabelBackground:i,strokeWidth:r}=t;return`
13
- ${m(t)}
14
- .entityBox {
15
- fill: ${t.mainBkg};
16
- stroke: ${t.nodeBorder};
17
- }
18
-
19
- .relationshipLabelBox {
20
- fill: ${t.tertiaryColor};
21
- opacity: 0.7;
22
- background-color: ${t.tertiaryColor};
23
- rect {
24
- opacity: 0.5;
25
- }
26
- }
27
-
28
- .labelBkg {
29
- background-color: ${n.Fx.has(s)&&i?i:f(t.tertiaryColor,.5)};
30
- }
31
-
32
- .edgeLabel {
33
- background-color: ${n.Fx.has(s)&&i?i:t.edgeLabelBackground};
34
- }
35
- .edgeLabel .label rect {
36
- fill: ${n.Fx.has(s)&&i?i:t.edgeLabelBackground};
37
- }
38
- .edgeLabel .label text {
39
- fill: ${t.textColor};
40
- }
41
-
42
- .edgeLabel .label {
43
- fill: ${t.nodeBorder};
44
- font-size: 14px;
45
- }
46
-
47
- .label {
48
- font-family: ${t.fontFamily};
49
- color: ${t.nodeTextColor||t.textColor};
50
- }
51
-
52
- .edge-pattern-dashed {
53
- stroke-dasharray: 8,8;
54
- }
55
-
56
- .node rect,
57
- .node circle,
58
- .node ellipse,
59
- .node polygon
60
- {
61
- fill: ${t.mainBkg};
62
- stroke: ${t.nodeBorder};
63
- stroke-width: ${"neo"===e?r:"1px"};
64
- }
65
-
66
- .relationshipLine {
67
- stroke: ${t.lineColor};
68
- stroke-width: ${"neo"===e?r:"1px"};
69
- fill: none;
70
- }
71
-
72
- .marker {
73
- fill: none !important;
74
- stroke: ${t.lineColor} !important;
75
- stroke-width: 1;
76
- }
77
- [data-look=neo].labelBkg {
78
- background-color: ${f(t.tertiaryColor,.5)};
79
- }
80
-
81
- .cluster rect {
82
- fill: ${t.clusterBkg??t.mainBkg};
83
- stroke: ${t.clusterBorder??t.nodeBorder};
84
- stroke-width: 1px;
85
- }
86
-
87
- .cluster text {
88
- fill: ${t.titleColor??t.textColor};
89
- }
90
-
91
- .cluster-label text {
92
- fill: ${t.titleColor??t.textColor};
93
- }
94
- `},"getStyles")}},80690:(t,e,s)=>{s.d(e,{A:()=>a});var i=s(20330),r=s(91063),a=(0,i.K)((t,e)=>{let s;return"sandbox"===e&&(s=(0,r.Ltv)("#i"+t)),("sandbox"===e?(0,r.Ltv)(s.nodes()[0].contentDocument.body):(0,r.Ltv)("body")).select(`[id="${t}"]`)},"getDiagramElement")},88589:(t,e,s)=>{s.d(e,{P:()=>n});var i=s(46238),r=s(96556),a=s(20330),n=(0,a.K)((t,e,s,a)=>{t.attr("class",s);let{width:n,height:c,x:h,y:u}=l(t,e);(0,i.a$)(t,c,n,a);let d=o(h,u,n,c,e);t.attr("viewBox",d),r.R.debug(`viewBox configured: ${d} with padding: ${e}`)},"setupViewPortForSVG"),l=(0,a.K)((t,e)=>{let s=t.node()?.getBBox()||{width:0,height:0,x:0,y:0};return{width:s.width+2*e,height:s.height+2*e,x:s.x,y:s.y}},"calculateDimensionsWithPadding"),o=(0,a.K)((t,e,s,i,r)=>`${t-r} ${e-r} ${s} ${i}`,"createViewBox")}}]);