elanous 0.2.35 → 0.2.36

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 (686) hide show
  1. package/apps/pwa/out/404/index.html +1 -1
  2. package/apps/pwa/out/404.html +1 -1
  3. package/apps/pwa/out/_next/static/chunks/{d06f9160.a3d9062f95de8ad7.js → 053a429e.9a63436527cc751c.js} +1 -1
  4. package/apps/pwa/out/_next/static/chunks/109.f196abf3484bb97f.js +287 -0
  5. package/apps/pwa/out/_next/static/chunks/{4346.8601952e73bf5803.js → 1201.afbfc5b1c5e5cbe4.js} +1 -1
  6. package/apps/pwa/out/_next/static/chunks/1517.9275b89572098ff3.js +1 -0
  7. package/apps/pwa/out/_next/static/chunks/1574.ad11f8db8396ab45.js +1 -0
  8. package/apps/pwa/out/_next/static/chunks/1614.7a8c5c40aee0261f.js +1 -0
  9. package/apps/pwa/out/_next/static/chunks/1871-f1eb29d8dbb4065b.js +1 -0
  10. package/apps/pwa/out/_next/static/chunks/190.285c832bd9626f8c.js +64 -0
  11. package/apps/pwa/out/_next/static/chunks/2193.0ea24c4a7aa1d004.js +36 -0
  12. package/apps/pwa/out/_next/static/chunks/223-ad865c1e80491d78.js +1 -0
  13. package/apps/pwa/out/_next/static/chunks/2265-f0d90b6dbec05f81.js +1 -0
  14. package/apps/pwa/out/_next/static/chunks/2267.eb4a62a209f09ec4.js +149 -0
  15. package/apps/pwa/out/_next/static/chunks/2341-86cd06c0cf01aa33.js +1 -0
  16. package/apps/pwa/out/_next/static/chunks/2352.9abc42422bade876.js +1 -0
  17. package/apps/pwa/out/_next/static/chunks/2397-c1653a816061842d.js +1 -0
  18. package/apps/pwa/out/_next/static/chunks/{3103.0df8da390948bb84.js → 2500.cbc1257b774aae52.js} +1 -1
  19. package/apps/pwa/out/_next/static/chunks/{7644.17e37ba6f1d4226e.js → 2683.c9773a0c589b031b.js} +3 -3
  20. package/apps/pwa/out/_next/static/chunks/2709.8e1889034255fc5f.js +24 -0
  21. package/apps/pwa/out/_next/static/chunks/{4718-17d2af636796a330.js → 275-02ea4c2a33980422.js} +3 -3
  22. package/apps/pwa/out/_next/static/chunks/2812ca6a.3b9f4a7a08885744.js +1 -0
  23. package/apps/pwa/out/_next/static/chunks/284.ac77c0db55bfd3a8.js +1 -0
  24. package/apps/pwa/out/_next/static/chunks/{8714.ff0b7ce3ec3e3ae2.js → 2941.3c3546f96bc6efa7.js} +1 -1
  25. package/apps/pwa/out/_next/static/chunks/2976.b000698a3c6512dc.js +24 -0
  26. package/apps/pwa/out/_next/static/chunks/{9214.63a510d39178e997.js → 2986.45d7652e4f13557e.js} +2 -2
  27. package/apps/pwa/out/_next/static/chunks/3031-85328a92fcce4da6.js +1 -0
  28. package/apps/pwa/out/_next/static/chunks/3136.30aaaa5fa03662a3.js +1 -0
  29. package/apps/pwa/out/_next/static/chunks/{3677-4215f826f6aa68e5.js → 3148-98efd4869d660a87.js} +1 -1
  30. package/apps/pwa/out/_next/static/chunks/3155.2587a55196ecb394.js +226 -0
  31. package/apps/pwa/out/_next/static/chunks/3277.785db1cf09f98601.js +1 -0
  32. package/apps/pwa/out/_next/static/chunks/3320-f9c77381f85a2c0a.js +1 -0
  33. package/apps/pwa/out/_next/static/chunks/3324.a09703033abcbd2f.js +34 -0
  34. package/apps/pwa/out/_next/static/chunks/3386-91049feabff9a94e.js +1 -0
  35. package/apps/pwa/out/_next/static/chunks/339.80afb7e8839372af.js +8 -0
  36. package/apps/pwa/out/_next/static/chunks/3410.7f9af5ab77cbe65f.js +115 -0
  37. package/apps/pwa/out/_next/static/chunks/3538.a445e50bb359d068.js +32 -0
  38. package/apps/pwa/out/_next/static/chunks/3540c645.2595a6af01a97672.js +1 -0
  39. package/apps/pwa/out/_next/static/chunks/3621.581b2054cc14bee4.js +286 -0
  40. package/apps/pwa/out/_next/static/chunks/3676.8c28d16fd84ca843.js +1 -0
  41. package/apps/pwa/out/_next/static/chunks/{9512.5a76207a730e0491.js → 3727.7949ccaacaa71242.js} +2 -2
  42. package/apps/pwa/out/_next/static/chunks/375-b84540853523fe52.js +1 -0
  43. package/apps/pwa/out/_next/static/chunks/{8557-e7898769499cd56f.js → 3757-180308bc61021b05.js} +1 -1
  44. package/apps/pwa/out/_next/static/chunks/379.ee262e37586fe1ae.js +74 -0
  45. package/apps/pwa/out/_next/static/chunks/{359-2250789a2d3499e7.js → 3840-5825d56d46976a92.js} +1 -1
  46. package/apps/pwa/out/_next/static/chunks/3969-81054381eaec4c4c.js +1 -0
  47. package/apps/pwa/out/_next/static/chunks/{da5176c6.6773b6c5994e1d99.js → 3a3d9966.cc4d4585a2708e7c.js} +1 -1
  48. package/apps/pwa/out/_next/static/chunks/4067-bf9aa60547972937.js +1 -0
  49. package/apps/pwa/out/_next/static/chunks/4116.a84a92a2492c080e.js +1 -0
  50. package/apps/pwa/out/_next/static/chunks/4176.e5729c93c29151eb.js +104 -0
  51. package/apps/pwa/out/_next/static/chunks/4227-e6c84686bc8946ca.js +1 -0
  52. package/apps/pwa/out/_next/static/chunks/{9952.5daf5f94063a2b3e.js → 4286.b70c4520306817e8.js} +1 -1
  53. package/apps/pwa/out/_next/static/chunks/4304.e9b2512834a9e23e.js +23 -0
  54. package/apps/pwa/out/_next/static/chunks/4327.b9e08a71c0009348.js +1 -0
  55. package/apps/pwa/out/_next/static/chunks/{938.66ad1ef0e5abae1c.js → 4615.8525eb0add35eba6.js} +1 -1
  56. package/apps/pwa/out/_next/static/chunks/4946.bd106eafd668f248.js +148 -0
  57. package/apps/pwa/out/_next/static/chunks/5085-bce4904931767ca6.js +1 -0
  58. package/apps/pwa/out/_next/static/chunks/5125.2eb9968b83767193.js +93 -0
  59. package/apps/pwa/out/_next/static/chunks/5128-75b733fd74a9a1eb.js +1 -0
  60. package/apps/pwa/out/_next/static/chunks/{6236.e18cced2d5ba6afb.js → 528.38ce20ef8aa251ff.js} +16 -16
  61. package/apps/pwa/out/_next/static/chunks/5489f3fe.4bb1458b09f6dead.js +122 -0
  62. package/apps/pwa/out/_next/static/chunks/{3408.21d1570602f4b6c0.js → 552.b7d061ad91eeac51.js} +2 -2
  63. package/apps/pwa/out/_next/static/chunks/5560-2a4648f6a30f16e7.js +1 -0
  64. package/apps/pwa/out/_next/static/chunks/5711.957b095705c12560.js +1 -0
  65. package/apps/pwa/out/_next/static/chunks/{1530.0e612369b6fd7ea0.js → 575.d929793a53f27c4b.js} +1 -1
  66. package/apps/pwa/out/_next/static/chunks/5772-e29e14f8ff127122.js +1 -0
  67. package/apps/pwa/out/_next/static/chunks/5887.5b2f5b44ce0f7e9a.js +1 -0
  68. package/apps/pwa/out/_next/static/chunks/5899-4c112a2d908cf97f.js +1 -0
  69. package/apps/pwa/out/_next/static/chunks/599.c39c571b6733f2a2.js +41 -0
  70. package/apps/pwa/out/_next/static/chunks/6041.1b65efb796ebc2a5.js +79 -0
  71. package/apps/pwa/out/_next/static/chunks/6057-765c0a26028c86b2.js +1 -0
  72. package/apps/pwa/out/_next/static/chunks/6142.f289e0d039f453a6.js +1 -0
  73. package/apps/pwa/out/_next/static/chunks/6199-6bcd61d2a3910e04.js +1 -0
  74. package/apps/pwa/out/_next/static/chunks/6236.cdf7293e710a9b2d.js +1 -0
  75. package/apps/pwa/out/_next/static/chunks/6387-237e079dac9a3ae6.js +1 -0
  76. package/apps/pwa/out/_next/static/chunks/6448-b6d272d074276e14.js +1 -0
  77. package/apps/pwa/out/_next/static/chunks/6466-92e65a48490b68a9.js +1 -0
  78. package/apps/pwa/out/_next/static/chunks/6566.926a1d1b7c911442.js +1 -0
  79. package/apps/pwa/out/_next/static/chunks/6580-cdc0e4a634ce4708.js +1 -0
  80. package/apps/pwa/out/_next/static/chunks/6659-b242dc31b20b3f29.js +1 -0
  81. package/apps/pwa/out/_next/static/chunks/6690.c5d9b321b1f79384.js +1 -0
  82. package/apps/pwa/out/_next/static/chunks/671-e9b6ad0c771c5514.js +1 -0
  83. package/apps/pwa/out/_next/static/chunks/6862.bcbf89dd0f4496b3.js +27 -0
  84. package/apps/pwa/out/_next/static/chunks/6912-7b375ee48732c767.js +1 -0
  85. package/apps/pwa/out/_next/static/chunks/6925.562d532110879886.js +1 -0
  86. package/apps/pwa/out/_next/static/chunks/{7385.50a308a477bdfc21.js → 6943.c6b24124853a47b2.js} +1 -1
  87. package/apps/pwa/out/_next/static/chunks/{630.fe5a46428d63b013.js → 727.7deb87749b0a343a.js} +1 -1
  88. package/apps/pwa/out/_next/static/chunks/{2018.a741297bce759490.js → 7481.39f7a4654907bf6e.js} +1 -1
  89. package/apps/pwa/out/_next/static/chunks/7545.b1aa42cd15503319.js +1 -0
  90. package/apps/pwa/out/_next/static/chunks/7551-416d298c2dc4a9ab.js +1 -0
  91. package/apps/pwa/out/_next/static/chunks/{8444.4c26b379ca2b9596.js → 771.c3cdb6c1f7f47c02.js} +17 -17
  92. package/apps/pwa/out/_next/static/chunks/7784.1f0ac4a16d190cf4.js +1 -0
  93. package/apps/pwa/out/_next/static/chunks/7870-309de463786ac1fc.js +1 -0
  94. package/apps/pwa/out/_next/static/chunks/7888-e29b151bb6a3bb8b.js +1 -0
  95. package/apps/pwa/out/_next/static/chunks/{3589.5444a06bcf6e775c.js → 7891.03f910124a737985.js} +1 -1
  96. package/apps/pwa/out/_next/static/chunks/7905-6ba78d9234608f79.js +1 -0
  97. package/apps/pwa/out/_next/static/chunks/8037.e254fd797aa224d1.js +1 -0
  98. package/apps/pwa/out/_next/static/chunks/8207.f527886b7c464529.js +1 -0
  99. package/apps/pwa/out/_next/static/chunks/856.50bda61439d465e6.js +62 -0
  100. package/apps/pwa/out/_next/static/chunks/{b2f6ba4d.fb56fdbbf798df33.js → 873d6c12.09bd499f57171543.js} +1 -1
  101. package/apps/pwa/out/_next/static/chunks/{5101.e32282718f99ed6f.js → 8904.7d51af2dc033965c.js} +2 -2
  102. package/apps/pwa/out/_next/static/chunks/9031-92e9b487edb681ee.js +1 -0
  103. package/apps/pwa/out/_next/static/chunks/9060.5410d9f6a95f6287.js +90 -0
  104. package/apps/pwa/out/_next/static/chunks/{5637.281e5dec4ea6ecf1.js → 914.8abefd48d579547b.js} +2 -2
  105. package/apps/pwa/out/_next/static/chunks/9187-c87a2207d4ac5d46.js +1 -0
  106. package/apps/pwa/out/_next/static/chunks/{4705-194e64e47ca0fbdb.js → 9250-072df22eaadaa6b5.js} +1 -1
  107. package/apps/pwa/out/_next/static/chunks/9289.3e92f278821e18e0.js +1 -0
  108. package/apps/pwa/out/_next/static/chunks/9319.7816d3cc741cd34f.js +1 -0
  109. package/apps/pwa/out/_next/static/chunks/9327-e016bb9f1674d24f.js +1 -0
  110. package/apps/pwa/out/_next/static/chunks/9365.3de48bf75193ff9a.js +77 -0
  111. package/apps/pwa/out/_next/static/chunks/9383.5b5e9aa56b5fea97.js +1 -0
  112. package/apps/pwa/out/_next/static/chunks/9387-cb929573ef436f39.js +1 -0
  113. package/apps/pwa/out/_next/static/chunks/9489.c27becacc3283dec.js +1 -0
  114. package/apps/pwa/out/_next/static/chunks/{8637.47f5b35afcae5e6b.js → 9514.131c52cc75fe6439.js} +1 -1
  115. package/apps/pwa/out/_next/static/chunks/9536.28962663c7734376.js +1 -0
  116. package/apps/pwa/out/_next/static/chunks/9686-12286f5bbf15a5a0.js +1 -0
  117. package/apps/pwa/out/_next/static/chunks/9776.289d40cc5a4c342a.js +1 -0
  118. package/apps/pwa/out/_next/static/chunks/{1674.2a65fd5668e1cc5f.js → 9789.60f723d18097ec30.js} +1 -1
  119. package/apps/pwa/out/_next/static/chunks/989.f0c17523c5e61f65.js +1 -0
  120. package/apps/pwa/out/_next/static/chunks/9972-1df393aa8d4f7d52.js +1 -0
  121. package/apps/pwa/out/_next/static/chunks/9f31e478.fefcbcd3c388ebc5.js +1 -0
  122. package/apps/pwa/out/_next/static/chunks/app/_not-found/page-96750aba7430959f.js +1 -0
  123. package/apps/pwa/out/_next/static/chunks/app/approvals/page-4105e5bbbb043024.js +1 -0
  124. package/apps/pwa/out/_next/static/chunks/app/autopilot/page-5d4fa75c2acb113e.js +1 -0
  125. package/apps/pwa/out/_next/static/chunks/app/board/page-a79a9bdb3b2142bf.js +1 -0
  126. package/apps/pwa/out/_next/static/chunks/app/botlab/page-f1c2047484992a35.js +1 -0
  127. package/apps/pwa/out/_next/static/chunks/app/bots/page-15ffc49b2d8c70e2.js +1 -0
  128. package/apps/pwa/out/_next/static/chunks/app/ceo/page-67d53a3fc8734135.js +1 -0
  129. package/apps/pwa/out/_next/static/chunks/app/chat/page-e30c8dc696491336.js +1 -0
  130. package/apps/pwa/out/_next/static/chunks/app/consult/page-2136e04fa77696e2.js +1 -0
  131. package/apps/pwa/out/_next/static/chunks/app/control/page-fecd2814790c2e12.js +1 -0
  132. package/apps/pwa/out/_next/static/chunks/app/decisions/page-280aa4a98fc5bb44.js +1 -0
  133. package/apps/pwa/out/_next/static/chunks/app/design-check/page-c14e96b65fb4b883.js +1 -0
  134. package/apps/pwa/out/_next/static/chunks/app/editor/page-187dac74825ed6bf.js +1 -0
  135. package/apps/pwa/out/_next/static/chunks/app/exec/page-6bc7246ea8c92448.js +1 -0
  136. package/apps/pwa/out/_next/static/chunks/app/field/page-083747f1d4518f61.js +1 -0
  137. package/apps/pwa/out/_next/static/chunks/app/healthz/route-96750aba7430959f.js +1 -0
  138. package/apps/pwa/out/_next/static/chunks/app/inside/page-15ca95a16ec96e1f.js +1 -0
  139. package/apps/pwa/out/_next/static/chunks/app/intake/page-a8ac031b3810eb64.js +1 -0
  140. package/apps/pwa/out/_next/static/chunks/app/layout-8835f93110494cda.js +1 -0
  141. package/apps/pwa/out/_next/static/chunks/app/live/page-e2de2e59111c9aad.js +1 -0
  142. package/apps/pwa/out/_next/static/chunks/app/live-run/page-f2b2e4bf6e981450.js +1 -0
  143. package/apps/pwa/out/_next/static/chunks/app/loops/page-5b92b7f75df20948.js +1 -0
  144. package/apps/pwa/out/_next/static/chunks/app/market/page-468eddf2b1a84ecb.js +1 -0
  145. package/apps/pwa/out/_next/static/chunks/app/missions/[id]/page-2af16e62c12f22df.js +1 -0
  146. package/apps/pwa/out/_next/static/chunks/app/morning/page-18b40867a77a5793.js +1 -0
  147. package/apps/pwa/out/_next/static/chunks/app/not-found-fe934f2979f5a4a2.js +1 -0
  148. package/apps/pwa/out/_next/static/chunks/app/observatory/page-3eec435537357170.js +1 -0
  149. package/apps/pwa/out/_next/static/chunks/app/ops/checklist/page-ff88cbfd2aa99fc8.js +1 -0
  150. package/apps/pwa/out/_next/static/chunks/app/ops/release/page-a5b39fb780c70ab5.js +1 -0
  151. package/apps/pwa/out/_next/static/chunks/app/ops/seats/page-ae465dde1d1b3933.js +1 -0
  152. package/apps/pwa/out/_next/static/chunks/app/outputs/page-e7abc34a48a6f71e.js +1 -0
  153. package/apps/pwa/out/_next/static/chunks/app/page-cab9674fde9ead26.js +1 -0
  154. package/apps/pwa/out/_next/static/chunks/app/reflection/page-1da49bc8712284d0.js +1 -0
  155. package/apps/pwa/out/_next/static/chunks/app/scheduler/page-5e8aa657551ac912.js +1 -0
  156. package/apps/pwa/out/_next/static/chunks/app/sessions/page-fcc36f36c6dc1fe2.js +1 -0
  157. package/apps/pwa/out/_next/static/chunks/app/settings/devices/page-d22db22f2a7296ca.js +1 -0
  158. package/apps/pwa/out/_next/static/chunks/app/settings/page-d12dc7b1773878f0.js +1 -0
  159. package/apps/pwa/out/_next/static/chunks/app/setup/done/page-99debec9ea7fbec0.js +1 -0
  160. package/apps/pwa/out/_next/static/chunks/app/setup/layout-96750aba7430959f.js +1 -0
  161. package/apps/pwa/out/_next/static/chunks/app/setup/page-2a088a78bad7e924.js +1 -0
  162. package/apps/pwa/out/_next/static/chunks/app/share/page-2e8ed57db7e69993.js +1 -0
  163. package/apps/pwa/out/_next/static/chunks/app/showroom/page-4b3a16213c2ae8fe.js +1 -0
  164. package/apps/pwa/out/_next/static/chunks/app/tasks/page-f098747ddf38c98b.js +1 -0
  165. package/apps/pwa/out/_next/static/chunks/app/term/page-c15958835534404b.js +1 -0
  166. package/apps/pwa/out/_next/static/chunks/app/today/page-68279e3c843c1fd7.js +1 -0
  167. package/apps/pwa/out/_next/static/chunks/app/trace/page-a34a74453367a39d.js +1 -0
  168. package/apps/pwa/out/_next/static/chunks/app/vault/page-8767a7db2155a5bd.js +1 -0
  169. package/apps/pwa/out/_next/static/chunks/app/workflows/chat-ui/page-bd5976683460d7f2.js +1 -0
  170. package/apps/pwa/out/_next/static/chunks/app/workflows/page-b7364835e7f2ef54.js +1 -0
  171. package/apps/pwa/out/_next/static/chunks/app/workspace/page-311af16b3ee0ffca.js +1 -0
  172. package/apps/pwa/out/_next/static/chunks/app/worktrees/page-fb670757274ae990.js +1 -0
  173. package/apps/pwa/out/_next/static/chunks/{0368f25d-ad84af92fefee68f.js → ccae1c4b-0cf414f5eff1b10d.js} +1 -1
  174. package/apps/pwa/out/_next/static/chunks/{cbe38a15.5a032598e39970c6.js → ceba0382.650712b56b85b582.js} +1 -1
  175. package/apps/pwa/out/_next/static/chunks/{b6705a4f-b9a9047de9eecfd0.js → da5ecc5c-b005ad8cac737d57.js} +1 -1
  176. package/apps/pwa/out/_next/static/chunks/{56d372f2.681ab4ec4c998fae.js → f9a61e4d.1fc2c1dbdd49fe46.js} +1 -1
  177. package/apps/pwa/out/_next/static/chunks/framework-6d497cbf1eef04c6.js +1 -0
  178. package/apps/pwa/out/_next/static/chunks/main-app-012f5edec932f337.js +1 -0
  179. package/apps/pwa/out/_next/static/chunks/main-da5aeb809edc94a2.js +1 -0
  180. package/apps/pwa/out/_next/static/chunks/pages/_app-5ee319af6f749dfe.js +1 -0
  181. package/apps/pwa/out/_next/static/chunks/pages/_error-4bc84653a718d6c6.js +1 -0
  182. package/apps/pwa/out/_next/static/chunks/webpack-8a96cf6775c73d6e.js +1 -0
  183. package/apps/pwa/out/_next/static/{T1mBQqmkwKDLGtyisDCOd → uC-N0emedeNOFuaBQFv-I}/_buildManifest.js +1 -1
  184. package/apps/pwa/out/approvals/index.html +1 -1
  185. package/apps/pwa/out/approvals/index.txt +22 -22
  186. package/apps/pwa/out/autopilot/index.html +1 -1
  187. package/apps/pwa/out/autopilot/index.txt +22 -22
  188. package/apps/pwa/out/board/index.html +1 -1
  189. package/apps/pwa/out/board/index.txt +22 -22
  190. package/apps/pwa/out/botlab/index.html +1 -1
  191. package/apps/pwa/out/botlab/index.txt +21 -21
  192. package/apps/pwa/out/bots/index.html +1 -1
  193. package/apps/pwa/out/bots/index.txt +21 -21
  194. package/apps/pwa/out/ceo/index.html +1 -1
  195. package/apps/pwa/out/ceo/index.txt +22 -22
  196. package/apps/pwa/out/chat/index.html +1 -1
  197. package/apps/pwa/out/chat/index.txt +21 -21
  198. package/apps/pwa/out/consult/index.html +1 -1
  199. package/apps/pwa/out/consult/index.txt +22 -22
  200. package/apps/pwa/out/control/index.html +1 -1
  201. package/apps/pwa/out/control/index.txt +22 -22
  202. package/apps/pwa/out/decisions/index.html +1 -1
  203. package/apps/pwa/out/decisions/index.txt +21 -21
  204. package/apps/pwa/out/design-check/index.html +1 -1
  205. package/apps/pwa/out/design-check/index.txt +22 -22
  206. package/apps/pwa/out/editor/index.html +1 -1
  207. package/apps/pwa/out/editor/index.txt +22 -22
  208. package/apps/pwa/out/exec/index.html +1 -1
  209. package/apps/pwa/out/exec/index.txt +22 -22
  210. package/apps/pwa/out/field/index.html +1 -1
  211. package/apps/pwa/out/field/index.txt +22 -22
  212. package/apps/pwa/out/healthz +1 -1
  213. package/apps/pwa/out/index.html +1 -1
  214. package/apps/pwa/out/index.txt +21 -21
  215. package/apps/pwa/out/inside/index.html +1 -1
  216. package/apps/pwa/out/inside/index.txt +21 -21
  217. package/apps/pwa/out/intake/index.html +1 -1
  218. package/apps/pwa/out/intake/index.txt +22 -22
  219. package/apps/pwa/out/live/index.html +1 -1
  220. package/apps/pwa/out/live/index.txt +22 -22
  221. package/apps/pwa/out/live-run/index.html +1 -1
  222. package/apps/pwa/out/live-run/index.txt +22 -22
  223. package/apps/pwa/out/loops/index.html +1 -1
  224. package/apps/pwa/out/loops/index.txt +21 -21
  225. package/apps/pwa/out/market/index.html +1 -1
  226. package/apps/pwa/out/market/index.txt +21 -21
  227. package/apps/pwa/out/missions/placeholder/index.html +1 -1
  228. package/apps/pwa/out/missions/placeholder/index.txt +21 -21
  229. package/apps/pwa/out/morning/index.html +1 -1
  230. package/apps/pwa/out/morning/index.txt +22 -22
  231. package/apps/pwa/out/observatory/index.html +1 -1
  232. package/apps/pwa/out/observatory/index.txt +22 -22
  233. package/apps/pwa/out/ops/checklist/index.html +1 -1
  234. package/apps/pwa/out/ops/checklist/index.txt +21 -21
  235. package/apps/pwa/out/ops/release/index.html +1 -1
  236. package/apps/pwa/out/ops/release/index.txt +21 -21
  237. package/apps/pwa/out/ops/seats/index.html +1 -1
  238. package/apps/pwa/out/ops/seats/index.txt +21 -21
  239. package/apps/pwa/out/outputs/index.html +1 -1
  240. package/apps/pwa/out/outputs/index.txt +21 -21
  241. package/apps/pwa/out/reflection/index.html +1 -1
  242. package/apps/pwa/out/reflection/index.txt +22 -22
  243. package/apps/pwa/out/scheduler/index.html +1 -1
  244. package/apps/pwa/out/scheduler/index.txt +22 -22
  245. package/apps/pwa/out/sessions/index.html +1 -1
  246. package/apps/pwa/out/sessions/index.txt +21 -21
  247. package/apps/pwa/out/settings/devices/index.html +1 -1
  248. package/apps/pwa/out/settings/devices/index.txt +22 -22
  249. package/apps/pwa/out/settings/index.html +1 -1
  250. package/apps/pwa/out/settings/index.txt +22 -22
  251. package/apps/pwa/out/setup/done/index.html +1 -1
  252. package/apps/pwa/out/setup/done/index.txt +22 -22
  253. package/apps/pwa/out/setup/index.html +1 -1
  254. package/apps/pwa/out/setup/index.txt +22 -22
  255. package/apps/pwa/out/share/index.html +1 -1
  256. package/apps/pwa/out/share/index.txt +22 -22
  257. package/apps/pwa/out/showroom/index.html +1 -1
  258. package/apps/pwa/out/showroom/index.txt +21 -21
  259. package/apps/pwa/out/tasks/index.html +1 -1
  260. package/apps/pwa/out/tasks/index.txt +22 -22
  261. package/apps/pwa/out/term/index.html +1 -1
  262. package/apps/pwa/out/term/index.txt +22 -22
  263. package/apps/pwa/out/today/index.html +1 -1
  264. package/apps/pwa/out/today/index.txt +22 -22
  265. package/apps/pwa/out/trace/index.html +1 -1
  266. package/apps/pwa/out/trace/index.txt +22 -22
  267. package/apps/pwa/out/vault/index.html +1 -1
  268. package/apps/pwa/out/vault/index.txt +22 -22
  269. package/apps/pwa/out/workflows/chat-ui/index.html +1 -1
  270. package/apps/pwa/out/workflows/chat-ui/index.txt +22 -22
  271. package/apps/pwa/out/workflows/index.html +1 -1
  272. package/apps/pwa/out/workflows/index.txt +22 -22
  273. package/apps/pwa/out/workspace/index.html +1 -1
  274. package/apps/pwa/out/workspace/index.txt +22 -22
  275. package/apps/pwa/out/worktrees/index.html +1 -1
  276. package/apps/pwa/out/worktrees/index.txt +22 -22
  277. package/docs/goal-context/05-authoring-lessons.jsonl +47 -0
  278. package/docs/goal-context/README.md +3 -0
  279. package/graphs/default-loop.yaml +6 -1
  280. package/graphs/implement-loop.yaml +24 -0
  281. package/graphs/release/recipes.yaml +6 -0
  282. package/graphs/release/release-loop.yaml +17 -4
  283. package/graphs/wizard/recipes.yaml +44 -0
  284. package/graphs/wizard/wizard-loop.yaml +44 -0
  285. package/graphs/work/research-report.yaml +2 -0
  286. package/package.json +1 -1
  287. package/scripts/ci-typecheck-changed.ts +139 -5
  288. package/scripts/coord-role-pack.ts +1 -1
  289. package/scripts/first10-gate.ts +416 -0
  290. package/scripts/fleet/wsl-node-setup.sh +432 -0
  291. package/scripts/release-loop/docs-node.ts +204 -8
  292. package/scripts/release-loop/gate-node.ts +249 -53
  293. package/scripts/release-loop/node-verdict.ts +2 -0
  294. package/scripts/release-loop/resume-cap.ts +14 -34
  295. package/scripts/release-loop/resume-release.ts +37 -11
  296. package/scripts/release-loop/traffic-node.ts +59 -0
  297. package/scripts/release-loop/traffic-transition.ts +159 -0
  298. package/scripts/rhythm/daily.ts +137 -3
  299. package/scripts/ux-sim.ts +53 -0
  300. package/skills/README.md +1 -0
  301. package/src/acp/core-turn-bridge.ts +48 -6
  302. package/src/agent/delegate-hint.ts +16 -0
  303. package/src/agent/runner.ts +82 -2
  304. package/src/agent/task-notification.ts +56 -10
  305. package/src/agent/types.ts +4 -0
  306. package/src/agent-substrate/pr-reviewer.ts +55 -3
  307. package/src/agent-substrate/review-intent.ts +29 -2
  308. package/src/agent-substrate/review-observation.ts +3 -0
  309. package/src/agent-substrate/self-review-cli.ts +168 -16
  310. package/src/autopilot/mission-codebase-gate.ts +141 -12
  311. package/src/autopilot/pr-manager.ts +25 -5
  312. package/src/boot/daemon-tools/self-implement.ts +1 -0
  313. package/src/budget/usage-outcomes.ts +8 -4
  314. package/src/capture/tui-self-report.ts +102 -0
  315. package/src/chat/goal-continue-verdict.ts +41 -0
  316. package/src/chat/index.ts +30 -4
  317. package/src/chat/internal-turn-origin.ts +1 -0
  318. package/src/chat/paste-fold.ts +86 -0
  319. package/src/chat/tool-render/block.ts +32 -0
  320. package/src/chat/tool-render/dispatch.ts +2 -20
  321. package/src/chat/tool-render/result-text.ts +98 -0
  322. package/src/chat/turn-typeahead.ts +70 -7
  323. package/src/cli/config-audit.ts +119 -0
  324. package/src/cli/doctor-cli.ts +22 -0
  325. package/src/cli/guardian-cli.ts +10 -0
  326. package/src/cli/herdr-cli.ts +34 -0
  327. package/src/cli/light-entry-route.ts +6 -3
  328. package/src/cli/log-event-names.ts +2 -0
  329. package/src/cli/make-cli.ts +247 -11
  330. package/src/cli/msg-cli.ts +117 -3
  331. package/src/cli/pr-cli.ts +29 -16
  332. package/src/cli/pr-land-base-read.ts +11 -2
  333. package/src/cli/pr-land-heavy-remote.ts +6 -3
  334. package/src/cli/pr-land-overlap-evidence.ts +23 -4
  335. package/src/cli/pr-land-recovery.ts +117 -1
  336. package/src/cli/pty-takeover-cli.ts +8 -7
  337. package/src/cli/release-cli.ts +21 -5
  338. package/src/cli/release-single-flight.ts +1 -1
  339. package/src/cli/tasks-card-show.ts +162 -0
  340. package/src/cli/tasks-cli.ts +574 -356
  341. package/src/cli/tasks-read-cli.ts +197 -0
  342. package/src/core-turn/run-core-turn.ts +4 -2
  343. package/src/core-turn/run-goal-loop.ts +73 -16
  344. package/src/core-turn/types.ts +6 -1
  345. package/src/dashboard/context/keys.ts +8 -31
  346. package/src/dashboard/index.ts +202 -49
  347. package/src/dashboard/input/agent-wake.ts +7 -1
  348. package/src/dashboard/input/chat-main-plain-turn-runtime.ts +146 -3
  349. package/src/dashboard/input/chat-main-slash-command.ts +4 -2
  350. package/src/dashboard/input/goal-continue.ts +210 -0
  351. package/src/dashboard/input/goal-interim.ts +2 -0
  352. package/src/dashboard/input/internal-turn.ts +2 -8
  353. package/src/dashboard/input/seat-autowake.ts +9 -7
  354. package/src/dashboard/input/turn-autoheal.ts +52 -0
  355. package/src/dashboard/seat-boot-preamble.ts +132 -5
  356. package/src/dashboard/slash-runtime/chat-persona.ts +65 -8
  357. package/src/dashboard/slash-runtime/dashboard-handlers.ts +3 -2
  358. package/src/dashboard/slash-runtime/model-choices.ts +15 -0
  359. package/src/dashboard/stale-install-check.ts +3 -99
  360. package/src/debug/batch-queue.ts +119 -0
  361. package/src/debug/tui-log-tag.ts +67 -0
  362. package/src/display/agent-surface.ts +7 -0
  363. package/src/domains/standalone-log-sink.ts +15 -2
  364. package/src/esc-abort-gate.ts +69 -0
  365. package/src/git-fs/worktree.ts +95 -1
  366. package/src/graph-runner/graph-cli.ts +18 -0
  367. package/src/graph-runner/runner.ts +20 -11
  368. package/src/graph-wizard/generate.ts +108 -4
  369. package/src/graph-wizard/steps.ts +15 -0
  370. package/src/grounding/proactive-ground.ts +86 -0
  371. package/src/harness/control-inbox.ts +49 -1
  372. package/src/harness/harness-cli-command.ts +51 -7
  373. package/src/harness/harness-incidents.ts +52 -1
  374. package/src/harness/pod-control-send.ts +33 -5
  375. package/src/harness/self-send-remote.ts +69 -0
  376. package/src/harness/self-send-routing-guard.ts +6 -0
  377. package/src/harness/self-send-target.ts +4 -3
  378. package/src/index.ts +327 -12
  379. package/src/input-core/context-key-runtime.ts +21 -0
  380. package/src/light-cli.ts +6 -1
  381. package/src/llm-wellformed.ts +70 -0
  382. package/src/llm.ts +35 -4
  383. package/src/loops/msg-wake.ts +35 -39
  384. package/src/loops/orchestrator/inbox.ts +59 -11
  385. package/src/loops/orchestrator/knowhow-pack.ts +364 -0
  386. package/src/loops/orchestrator/tick.ts +5 -1
  387. package/src/maturity/feature-maturity.ts +1 -1
  388. package/src/models/prompts.ts +17 -2
  389. package/src/msg/msg-post-office.ts +116 -0
  390. package/src/mss/logging/log-store.ts +79 -22
  391. package/src/nexus/api/decisions-route.ts +38 -18
  392. package/src/nexus/api/graph-wizard-api.ts +20 -2
  393. package/src/nexus/boot/register-mcp-clients.ts +263 -38
  394. package/src/nexus/onboarding/first-boot-wizard.ts +56 -8
  395. package/src/onboarding/first-run.ts +37 -6
  396. package/src/onboarding/web-first.ts +43 -11
  397. package/src/ops/overview-collect.ts +12 -6
  398. package/src/ops/overview.ts +3 -3
  399. package/src/persona/loader.ts +11 -0
  400. package/src/persona/types.ts +8 -0
  401. package/src/prompt-library/session-guidance.ts +14 -0
  402. package/src/provider-summary.ts +8 -0
  403. package/src/pty-shell/herdr-agent-report.ts +118 -9
  404. package/src/pty-shell/herdr-prompt.ts +266 -0
  405. package/src/pty-shell/pty-control-ipc.ts +151 -8
  406. package/src/pty-shell/pty-special-keys.ts +42 -2
  407. package/src/pty-shell/stale-install-check.ts +99 -0
  408. package/src/pty-shell/tui-run-state.ts +14 -2
  409. package/src/release-loop/auto-start.ts +20 -2
  410. package/src/release-loop/checklist.ts +76 -4
  411. package/src/release-loop/rehearsal.ts +36 -20
  412. package/src/repl/index.ts +19 -1
  413. package/src/seat-loop/knowhow-lint.ts +1 -1
  414. package/src/self-dev/decompose-proposal.ts +172 -20
  415. package/src/self-dev/decompose.ts +61 -0
  416. package/src/self-dev/dev-cli.ts +37 -3
  417. package/src/self-dev/dev-pipeline.ts +8 -2
  418. package/src/self-dev/draft-triage-rules.ts +31 -0
  419. package/src/self-dev/glm-credential-guard.ts +77 -0
  420. package/src/self-dev/graph-journey-nodes.ts +1 -0
  421. package/src/self-dev/graph-journey-route.ts +12 -2
  422. package/src/self-dev/orchestrate-cli.ts +68 -3
  423. package/src/self-dev/orchestrate.ts +116 -17
  424. package/src/self-dev/run-supervisor.ts +55 -2
  425. package/src/self-dev/run-types.ts +1 -1
  426. package/src/self-health/autoheal.ts +153 -0
  427. package/src/self-health/signatures.ts +6 -0
  428. package/src/self-implement/device-first.ts +116 -0
  429. package/src/self-implement/doctor-visit.ts +239 -1
  430. package/src/self-implement/evidence-command-budget.ts +80 -0
  431. package/src/self-implement/goal-author-cli.ts +1 -0
  432. package/src/self-implement/goal-author-decompose.ts +265 -4
  433. package/src/self-implement/goal-author.ts +33 -8
  434. package/src/self-implement/goal-elaborate.ts +176 -22
  435. package/src/self-implement/goal-refine.ts +3 -0
  436. package/src/self-implement/graph-variant.ts +40 -6
  437. package/src/self-implement/headless-elanous-driver.ts +19 -3
  438. package/src/self-implement/off-diff-evidence.ts +58 -6
  439. package/src/self-implement/orchestrator.ts +222 -21
  440. package/src/self-implement/pod-warm-pool-profile.ts +1 -0
  441. package/src/self-implement/pwa-import-graph.ts +1 -1
  442. package/src/self-implement/rework-policy.ts +30 -0
  443. package/src/self-implement/run-ledger.ts +108 -0
  444. package/src/self-implement/run-ttl.ts +38 -24
  445. package/src/self-implement/scope-adjacency.ts +3 -1
  446. package/src/self-implement/seams.ts +60 -4
  447. package/src/self-implement/wiring-check.ts +358 -0
  448. package/src/shell-env-bootstrap.ts +11 -4
  449. package/src/skills/runner.ts +4 -2
  450. package/src/skills/tools/agent.ts +290 -48
  451. package/src/skills/tools/schedule-wakeup.ts +23 -4
  452. package/src/skills/tools/shell.ts +61 -6
  453. package/src/skills/tools/terminal-modal-inject.ts +1 -2
  454. package/src/skills/tools/terminal-modal.ts +10 -8
  455. package/src/skills/url-router.ts +41 -1
  456. package/src/smart-wizard/run.ts +66 -0
  457. package/src/status/bar.ts +34 -6
  458. package/src/status/status-provider-info.ts +37 -6
  459. package/src/steward/rejudge-tick.ts +10 -2
  460. package/src/steward/ta-repair-event-collect.ts +17 -6
  461. package/src/task-agent/actions.ts +3 -1
  462. package/src/task-agent/land-queue.ts +21 -8
  463. package/src/task-agent/live-moves.ts +22 -6
  464. package/src/task-agent/mission.ts +30 -0
  465. package/src/task-agent/rejudge-on-head.ts +15 -0
  466. package/src/task-agent/repair-cycle.ts +138 -32
  467. package/src/task-agent/repair-next-move.ts +31 -3
  468. package/src/task-agent/repair-outcomes.ts +29 -0
  469. package/src/task-agent/repair-worker.ts +14 -4
  470. package/src/task-agent/shadow.ts +41 -3
  471. package/src/task-agent/task-card-prefix.ts +2 -0
  472. package/src/task-agent/task-hand.ts +477 -22
  473. package/src/task-agent/task-parent-role-llm.ts +36 -0
  474. package/src/task-agent/tier-split.ts +78 -9
  475. package/src/task-orchestrator/surfaces/pod-account-broker.ts +9 -0
  476. package/src/task-orchestrator/surfaces/pod-child-reuse.ts +146 -0
  477. package/src/task-orchestrator/surfaces/pod-command-job.ts +86 -5
  478. package/src/task-orchestrator/surfaces/pod-failure-reason.ts +215 -3
  479. package/src/task-orchestrator/surfaces/pod-launch-history.ts +133 -0
  480. package/src/task-orchestrator/surfaces/pod-manifest-test-normalize.ts +11 -0
  481. package/src/task-orchestrator/surfaces/pod-pool.ts +76 -4
  482. package/src/task-orchestrator/surfaces/pod-provenance.ts +8 -2
  483. package/src/task-orchestrator/surfaces/pod-repair-commit.ts +18 -3
  484. package/src/task-orchestrator/surfaces/pod-si-warm-entry.ts +16 -0
  485. package/src/task-orchestrator/surfaces/pod-si-warm-host.ts +224 -0
  486. package/src/task-orchestrator/surfaces/pod-si-warm-protocol.ts +201 -0
  487. package/src/task-orchestrator/surfaces/pod-si-warm-provider.ts +444 -0
  488. package/src/task-orchestrator/surfaces/pod-si-warm-runner.ts +387 -0
  489. package/src/task-orchestrator/surfaces/pod-si-warm-transport.ts +157 -0
  490. package/src/task-orchestrator/surfaces/pod-warm-worker-protocol.ts +4 -0
  491. package/src/task-orchestrator/surfaces/pod-warm-worker-provider.ts +485 -36
  492. package/src/task-orchestrator/surfaces/pod-warm-worker-runtime.ts +3 -0
  493. package/src/task-orchestrator/surfaces/self-implement-pod.ts +396 -19
  494. package/src/task-orchestrator/surfaces/self-implement.ts +42 -2
  495. package/src/tool-runtime/index.ts +15 -2
  496. package/src/tool-runtime/mcp-proxy-bootstrap.ts +29 -0
  497. package/src/tty-foreground.ts +155 -0
  498. package/src/tui/chat/goal-interim.ts +173 -0
  499. package/src/tui/chat/log-view.ts +205 -18
  500. package/src/tui/chat/self-health-status.ts +232 -0
  501. package/src/tui/entry.ts +370 -81
  502. package/src/tui/input/composer.ts +8 -1
  503. package/src/tui/slash/compact-command.ts +7 -0
  504. package/src/tui/slash/compact.ts +1 -7
  505. package/src/tui/slash/resume.ts +75 -0
  506. package/src/tui-client/local-chat-turn.ts +45 -2
  507. package/src/tui-client/next-dashboard-runtime.ts +8 -0
  508. package/src/tui-client/next-loop-command.ts +70 -0
  509. package/src/tui-client/next-wakeup.ts +191 -0
  510. package/src/tui.ts +37 -0
  511. package/src/ui/modal-adapter.ts +2 -2
  512. package/src/ux-sim/classic-tui-seat-scenarios.ts +516 -0
  513. package/src/ux-sim/cli-config-audit-device.ts +121 -0
  514. package/src/ux-sim/dashboard-event-loop-stall-monitor-device.ts +238 -0
  515. package/src/ux-sim/event-monkey.ts +3 -2
  516. package/src/ux-sim/fake-bin.ts +45 -0
  517. package/src/ux-sim/fake-herdr.ts +238 -0
  518. package/src/ux-sim/fake-llm.ts +111 -6
  519. package/src/ux-sim/fault-glm-no-credential.ts +116 -0
  520. package/src/ux-sim/fault-nextmove-dispatch.ts +102 -1
  521. package/src/ux-sim/fault-scope-escape-lift.ts +33 -6
  522. package/src/ux-sim/fault-tui-400-autoheal.ts +297 -0
  523. package/src/ux-sim/goal-device.ts +619 -0
  524. package/src/ux-sim/in-process-cli.ts +22 -5
  525. package/src/ux-sim/mock-authoring-first-run-child.ts +35 -0
  526. package/src/ux-sim/mock-authoring-first-run.ts +97 -0
  527. package/src/ux-sim/mock-seat-pty-frame-child.ts +29 -0
  528. package/src/ux-sim/mock-seat-pty-frame.ts +297 -0
  529. package/src/ux-sim/mock-seat-pty-sequence-child.ts +21 -0
  530. package/src/ux-sim/mock-seat-pty-sequence.ts +206 -0
  531. package/src/ux-sim/next-tui-seat-scenarios.ts +631 -0
  532. package/src/ux-sim/onboarding-first-run-device.ts +269 -0
  533. package/src/ux-sim/pty-key-modifiers-device.ts +85 -0
  534. package/src/ux-sim/subagent-tools-device.ts +81 -0
  535. package/src/ux-sim/task-orchestrator-surfaces-self-implement-pod-device.ts +250 -0
  536. package/src/ux-sim/tty-foreground-steal-child.ts +21 -0
  537. package/src/version/packed-revision.json +1 -1
  538. package/apps/pwa/out/_next/static/chunks/1165.bad13fc9151a7288.js +0 -1
  539. package/apps/pwa/out/_next/static/chunks/13.02a07436dec15f89.js +0 -32
  540. package/apps/pwa/out/_next/static/chunks/1540.af38731fa7c4a3e0.js +0 -41
  541. package/apps/pwa/out/_next/static/chunks/1850.f2b470ba5a471da0.js +0 -24
  542. package/apps/pwa/out/_next/static/chunks/193.62da94cd0b88323b.js +0 -74
  543. package/apps/pwa/out/_next/static/chunks/1975.260f6d249fac5f7c.js +0 -1
  544. package/apps/pwa/out/_next/static/chunks/1982-67cd8dfe8682325f.js +0 -1
  545. package/apps/pwa/out/_next/static/chunks/1993-c0007b7ad0c0ef41.js +0 -1
  546. package/apps/pwa/out/_next/static/chunks/1999-bb415351c8a2846c.js +0 -1
  547. package/apps/pwa/out/_next/static/chunks/1c735de4.f993a30bbd3c57c4.js +0 -1
  548. package/apps/pwa/out/_next/static/chunks/1dc5a567.9b092bfae3d7099b.js +0 -1
  549. package/apps/pwa/out/_next/static/chunks/2085.8f950b4bda1cbbc7.js +0 -1
  550. package/apps/pwa/out/_next/static/chunks/2159-6179a961376956b9.js +0 -1
  551. package/apps/pwa/out/_next/static/chunks/216.b5c2a421aa1d28a5.js +0 -1
  552. package/apps/pwa/out/_next/static/chunks/2251.49fbe369f74c372c.js +0 -148
  553. package/apps/pwa/out/_next/static/chunks/2286-2939577360d3dcc0.js +0 -1
  554. package/apps/pwa/out/_next/static/chunks/2625.5d870aa999f33db1.js +0 -34
  555. package/apps/pwa/out/_next/static/chunks/2668.34d21539e62bf111.js +0 -77
  556. package/apps/pwa/out/_next/static/chunks/2833-0fe47af99ed13c29.js +0 -1
  557. package/apps/pwa/out/_next/static/chunks/2930.d0edb4f108787ef7.js +0 -1
  558. package/apps/pwa/out/_next/static/chunks/2973.77318e7d85f59477.js +0 -62
  559. package/apps/pwa/out/_next/static/chunks/3123.2bee9ba15d320bd2.js +0 -90
  560. package/apps/pwa/out/_next/static/chunks/3162-6cf652bf7124d8cf.js +0 -1
  561. package/apps/pwa/out/_next/static/chunks/3577-7340009f7007a795.js +0 -1
  562. package/apps/pwa/out/_next/static/chunks/3618.f514792d6c59d7fd.js +0 -36
  563. package/apps/pwa/out/_next/static/chunks/3669.343f9119aa276001.js +0 -1
  564. package/apps/pwa/out/_next/static/chunks/3736.c2efad489604cc3b.js +0 -79
  565. package/apps/pwa/out/_next/static/chunks/3817.f9aeab2bb6675d73.js +0 -1
  566. package/apps/pwa/out/_next/static/chunks/3f7c4ee5.3dde54f01a816613.js +0 -122
  567. package/apps/pwa/out/_next/static/chunks/4182-0b9b1251c29cc0cf.js +0 -1
  568. package/apps/pwa/out/_next/static/chunks/4441-875b97f5821ed58a.js +0 -1
  569. package/apps/pwa/out/_next/static/chunks/4582.bd68683c076649e3.js +0 -286
  570. package/apps/pwa/out/_next/static/chunks/4605-6e623f55aec77422.js +0 -1
  571. package/apps/pwa/out/_next/static/chunks/4607.5cc27468628eb4bf.js +0 -1
  572. package/apps/pwa/out/_next/static/chunks/4627.f07508b3936fd6c0.js +0 -24
  573. package/apps/pwa/out/_next/static/chunks/4747-c22262c093e46807.js +0 -1
  574. package/apps/pwa/out/_next/static/chunks/4775-178215aed0daba61.js +0 -1
  575. package/apps/pwa/out/_next/static/chunks/4815-6ffb8c3c991cc45d.js +0 -1
  576. package/apps/pwa/out/_next/static/chunks/4834-beca8b47ad29a898.js +0 -1
  577. package/apps/pwa/out/_next/static/chunks/5023-fb4802b6d2492b02.js +0 -1
  578. package/apps/pwa/out/_next/static/chunks/5154.a118f3957ed14e36.js +0 -1
  579. package/apps/pwa/out/_next/static/chunks/5210-a2e0015e3d4d5d9c.js +0 -1
  580. package/apps/pwa/out/_next/static/chunks/5356.84ac712cc15928bf.js +0 -1
  581. package/apps/pwa/out/_next/static/chunks/5401.22352141b6fd336e.js +0 -23
  582. package/apps/pwa/out/_next/static/chunks/5483-dd5d7697f6bdb106.js +0 -1
  583. package/apps/pwa/out/_next/static/chunks/5662.02eaa029af05ad46.js +0 -1
  584. package/apps/pwa/out/_next/static/chunks/5760.22456f433c6f42c0.js +0 -1
  585. package/apps/pwa/out/_next/static/chunks/5852.db1f7449f4f74612.js +0 -287
  586. package/apps/pwa/out/_next/static/chunks/5891-0f11a7d7362a9072.js +0 -1
  587. package/apps/pwa/out/_next/static/chunks/5943.264d14a44ca32513.js +0 -1
  588. package/apps/pwa/out/_next/static/chunks/604-1b3c39df083c02aa.js +0 -1
  589. package/apps/pwa/out/_next/static/chunks/6121-5f97072330738caf.js +0 -1
  590. package/apps/pwa/out/_next/static/chunks/6193.07d8ca5af4b09086.js +0 -1
  591. package/apps/pwa/out/_next/static/chunks/6203-b3fea3a60d69ff14.js +0 -1
  592. package/apps/pwa/out/_next/static/chunks/6286.d638fb5953e2e757.js +0 -8
  593. package/apps/pwa/out/_next/static/chunks/6301.ae0245f507e4395e.js +0 -1
  594. package/apps/pwa/out/_next/static/chunks/6673.fbbe5699f6ea5991.js +0 -27
  595. package/apps/pwa/out/_next/static/chunks/6777-f6d301efb5de828d.js +0 -1
  596. package/apps/pwa/out/_next/static/chunks/6786.423f24c88de034c7.js +0 -93
  597. package/apps/pwa/out/_next/static/chunks/6854-cef64a948c5e122d.js +0 -1
  598. package/apps/pwa/out/_next/static/chunks/6866-79aa5b4e47cac6aa.js +0 -1
  599. package/apps/pwa/out/_next/static/chunks/6b89c8bd.24df687a820500b3.js +0 -1
  600. package/apps/pwa/out/_next/static/chunks/7037-fe27f001db30d323.js +0 -1
  601. package/apps/pwa/out/_next/static/chunks/7080.2d826860534fd88e.js +0 -1
  602. package/apps/pwa/out/_next/static/chunks/7118.8731be28c3ebb14b.js +0 -1
  603. package/apps/pwa/out/_next/static/chunks/7196.44241bc1df3e26fe.js +0 -149
  604. package/apps/pwa/out/_next/static/chunks/7235.c7c4e6cb5c693c2d.js +0 -104
  605. package/apps/pwa/out/_next/static/chunks/7706-58bfb1546637f217.js +0 -1
  606. package/apps/pwa/out/_next/static/chunks/7839.5b91455338c9fd3f.js +0 -1
  607. package/apps/pwa/out/_next/static/chunks/7857-31f13ee96f4011aa.js +0 -1
  608. package/apps/pwa/out/_next/static/chunks/81.f74cb60312fe4001.js +0 -1
  609. package/apps/pwa/out/_next/static/chunks/8219.baa715d1deee80e2.js +0 -1
  610. package/apps/pwa/out/_next/static/chunks/8256.e3ac8421a71f82f4.js +0 -1
  611. package/apps/pwa/out/_next/static/chunks/8310-444a6a895c402f12.js +0 -1
  612. package/apps/pwa/out/_next/static/chunks/8423.f7dda8aca4fcaae5.js +0 -1
  613. package/apps/pwa/out/_next/static/chunks/8437-8d5492094b166cfa.js +0 -1
  614. package/apps/pwa/out/_next/static/chunks/8496.75649af8652c74f4.js +0 -226
  615. package/apps/pwa/out/_next/static/chunks/8576.65bb654b524f3614.js +0 -1
  616. package/apps/pwa/out/_next/static/chunks/8609.558ce2f8f9aea2be.js +0 -64
  617. package/apps/pwa/out/_next/static/chunks/8614.caec96cfb91f4ae7.js +0 -1
  618. package/apps/pwa/out/_next/static/chunks/8732.367f44a916202353.js +0 -1
  619. package/apps/pwa/out/_next/static/chunks/9141-7fd1f73a5400bdc2.js +0 -1
  620. package/apps/pwa/out/_next/static/chunks/921.c4267d0d69a65404.js +0 -1
  621. package/apps/pwa/out/_next/static/chunks/9261.3962c3321b047691.js +0 -115
  622. package/apps/pwa/out/_next/static/chunks/936-26efd1a0efdd44d3.js +0 -1
  623. package/apps/pwa/out/_next/static/chunks/9627-4b9efe616b27e2e2.js +0 -1
  624. package/apps/pwa/out/_next/static/chunks/967-2aa39b2d04b4c690.js +0 -1
  625. package/apps/pwa/out/_next/static/chunks/9734.40eb1e558c29ccea.js +0 -1
  626. package/apps/pwa/out/_next/static/chunks/9908.3aa54f7a586a73dc.js +0 -1
  627. package/apps/pwa/out/_next/static/chunks/9954-ca8d29752bdbb45a.js +0 -1
  628. package/apps/pwa/out/_next/static/chunks/9974-507fa67cb94066dd.js +0 -1
  629. package/apps/pwa/out/_next/static/chunks/app/_not-found/page-ce9e00f7fb45506a.js +0 -1
  630. package/apps/pwa/out/_next/static/chunks/app/approvals/page-fa59d6d17daa3389.js +0 -1
  631. package/apps/pwa/out/_next/static/chunks/app/autopilot/page-53f68bbe7bd4b774.js +0 -1
  632. package/apps/pwa/out/_next/static/chunks/app/board/page-1c500fbb9f4a7a04.js +0 -1
  633. package/apps/pwa/out/_next/static/chunks/app/botlab/page-99d72673aa5c307c.js +0 -1
  634. package/apps/pwa/out/_next/static/chunks/app/bots/page-d2d5adc1e9484c88.js +0 -1
  635. package/apps/pwa/out/_next/static/chunks/app/ceo/page-c607c5aae637f1cc.js +0 -1
  636. package/apps/pwa/out/_next/static/chunks/app/chat/page-fa8c23596d555c0f.js +0 -1
  637. package/apps/pwa/out/_next/static/chunks/app/consult/page-bdab8c5e855c8416.js +0 -1
  638. package/apps/pwa/out/_next/static/chunks/app/control/page-406b47745b53f269.js +0 -1
  639. package/apps/pwa/out/_next/static/chunks/app/decisions/page-a4276386b7051f50.js +0 -1
  640. package/apps/pwa/out/_next/static/chunks/app/design-check/page-8a26bab9ad375f25.js +0 -1
  641. package/apps/pwa/out/_next/static/chunks/app/editor/page-775f48aa1dc7a2d5.js +0 -1
  642. package/apps/pwa/out/_next/static/chunks/app/exec/page-1c4dd5f959d0c558.js +0 -1
  643. package/apps/pwa/out/_next/static/chunks/app/field/page-c48938a8377c9f70.js +0 -1
  644. package/apps/pwa/out/_next/static/chunks/app/healthz/route-ce9e00f7fb45506a.js +0 -1
  645. package/apps/pwa/out/_next/static/chunks/app/inside/page-c6e7905859425aa9.js +0 -1
  646. package/apps/pwa/out/_next/static/chunks/app/intake/page-c280f4252452e830.js +0 -1
  647. package/apps/pwa/out/_next/static/chunks/app/layout-cf8c57498f20970a.js +0 -1
  648. package/apps/pwa/out/_next/static/chunks/app/live/page-ca3a17caf409fc83.js +0 -1
  649. package/apps/pwa/out/_next/static/chunks/app/live-run/page-26e6c18a1a750cf6.js +0 -1
  650. package/apps/pwa/out/_next/static/chunks/app/loops/page-3abc872cc6aeee39.js +0 -1
  651. package/apps/pwa/out/_next/static/chunks/app/market/page-f7481b7b2174fe3d.js +0 -1
  652. package/apps/pwa/out/_next/static/chunks/app/missions/[id]/page-1ae7ef8077680337.js +0 -1
  653. package/apps/pwa/out/_next/static/chunks/app/morning/page-47c5d4db587266bd.js +0 -1
  654. package/apps/pwa/out/_next/static/chunks/app/not-found-415f1e243c7ccb13.js +0 -1
  655. package/apps/pwa/out/_next/static/chunks/app/observatory/page-73f380f17b76f95c.js +0 -1
  656. package/apps/pwa/out/_next/static/chunks/app/ops/checklist/page-2991073ad66ee2d9.js +0 -1
  657. package/apps/pwa/out/_next/static/chunks/app/ops/release/page-1f5a60f70cb4dd0c.js +0 -1
  658. package/apps/pwa/out/_next/static/chunks/app/ops/seats/page-fbad60d1e358fb2c.js +0 -1
  659. package/apps/pwa/out/_next/static/chunks/app/outputs/page-bac7dee94e5eae4a.js +0 -1
  660. package/apps/pwa/out/_next/static/chunks/app/page-398047d6949e8ca5.js +0 -1
  661. package/apps/pwa/out/_next/static/chunks/app/reflection/page-2d33a2231540ca89.js +0 -1
  662. package/apps/pwa/out/_next/static/chunks/app/scheduler/page-5bf1e6bf70bcb96c.js +0 -1
  663. package/apps/pwa/out/_next/static/chunks/app/sessions/page-ba59c19376a0917d.js +0 -1
  664. package/apps/pwa/out/_next/static/chunks/app/settings/devices/page-111f187139add30f.js +0 -1
  665. package/apps/pwa/out/_next/static/chunks/app/settings/page-acaae197d5be5779.js +0 -1
  666. package/apps/pwa/out/_next/static/chunks/app/setup/done/page-0df20b0f546a0d7d.js +0 -1
  667. package/apps/pwa/out/_next/static/chunks/app/setup/layout-ce9e00f7fb45506a.js +0 -1
  668. package/apps/pwa/out/_next/static/chunks/app/setup/page-27e1202d24b8fe35.js +0 -1
  669. package/apps/pwa/out/_next/static/chunks/app/share/page-bda78c50a78363e5.js +0 -1
  670. package/apps/pwa/out/_next/static/chunks/app/showroom/page-da592691293d9c9f.js +0 -1
  671. package/apps/pwa/out/_next/static/chunks/app/tasks/page-f832994317a2e9f0.js +0 -1
  672. package/apps/pwa/out/_next/static/chunks/app/term/page-dc0a532f5b9196ec.js +0 -1
  673. package/apps/pwa/out/_next/static/chunks/app/today/page-cfccbbeae0473404.js +0 -1
  674. package/apps/pwa/out/_next/static/chunks/app/trace/page-527e2073af84c81b.js +0 -1
  675. package/apps/pwa/out/_next/static/chunks/app/vault/page-bac86e9112671357.js +0 -1
  676. package/apps/pwa/out/_next/static/chunks/app/workflows/chat-ui/page-6d59dff410e9d76a.js +0 -1
  677. package/apps/pwa/out/_next/static/chunks/app/workflows/page-53a61f8be09f02d2.js +0 -1
  678. package/apps/pwa/out/_next/static/chunks/app/workspace/page-db8f559e763c17f9.js +0 -1
  679. package/apps/pwa/out/_next/static/chunks/app/worktrees/page-c02aa4cc66455093.js +0 -1
  680. package/apps/pwa/out/_next/static/chunks/framework-50e6acebc630849b.js +0 -1
  681. package/apps/pwa/out/_next/static/chunks/main-7a1ae342d5ed75e6.js +0 -1
  682. package/apps/pwa/out/_next/static/chunks/main-app-7ad7d505ba1f92b4.js +0 -1
  683. package/apps/pwa/out/_next/static/chunks/pages/_app-02edba75232cb235.js +0 -1
  684. package/apps/pwa/out/_next/static/chunks/pages/_error-97d6ebae3e8eee4a.js +0 -1
  685. package/apps/pwa/out/_next/static/chunks/webpack-e986adaa429163e8.js +0 -1
  686. /package/apps/pwa/out/_next/static/{T1mBQqmkwKDLGtyisDCOd → uC-N0emedeNOFuaBQFv-I}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9549],{10410:(e,t,a)=>{"use strict";a.d(t,{M1:()=>d,Qj:()=>c,tI:()=>s});var r=a(59473),n=a(24725),o=a(82059),l=a(82502);let i=(0,n.createContext)(null);function s(e){let{client:t,queryClient:a,defaultStaleTimeMs:s,children:d}=e,c=(0,n.useMemo)(()=>null!=a?a:new o.E({defaultOptions:{queries:{staleTime:null!=s?s:2e3,refetchOnWindowFocus:!1}}}),[a,s]);return(0,r.jsx)(i.Provider,{value:t,children:(0,r.jsx)(l.Ht,{client:c,children:d})})}function d(){let e=(0,n.useContext)(i);if(!e)throw Error("useNexusClient must be used within <NexusProvider>");return e}function c(){return(0,n.useContext)(i)}},11440:(e,t,a)=>{"use strict";a.d(t,{i$:()=>i,nZ:()=>c,oM:()=>d,sF:()=>s});let r="elanous.showroom.layouts";function n(){return window.localStorage?window.localStorage:{getItem:()=>null,setItem:()=>{},removeItem:()=>{}}}function o(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:n(),t=e.getItem(r);if(!t)return{};try{let e=JSON.parse(t);if(!e||"object"!=typeof e)return{};return e}catch(e){return{}}}function l(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:n(),a=JSON.stringify(e);if(a.length>102400)return{ok:!1,reason:"storage quota exceeded (".concat(a.length," > ").concat(102400,")")};try{return t.setItem(r,a),{ok:!0}}catch(e){return{ok:!1,reason:String(e)}}}async function i(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:n();try{let{layouts:a}=await e.listShowroomLayouts(),r={};for(let e of a)r[e.name]=e;return l(r,t),{layouts:a.slice().sort((e,t)=>t.savedAt-e.savedAt),source:"daemon"}}catch(e){return{layouts:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:n();return Object.values(o(e)).sort((e,t)=>t.savedAt-e.savedAt)}(t),source:"local"}}}async function s(e,t,a){var r;let i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},s=e.trim();if(!s)return{ok:!1,reason:"name required"};let d=null!=(r=i.backend)?r:n(),c=function(e,t){var a;let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=e.trim();if(!i)return{ok:!1,reason:"name required"};let s=null!=(a=r.backend)?a:n(),d=o(s),c={name:i,savedAt:Date.now(),panels:t.map(e=>({id:e.id,kind:e.kind,provider:e.provider,...e.agentBrand?{agentBrand:e.agentBrand}:{},...e.roleHint?{roleHint:e.roleHint}:{},...e.personaId?{personaId:e.personaId}:{},state:e.state})),...r.layoutMode?{layoutMode:r.layoutMode}:{}};d[i]=c;let u=l(d,s);return u.ok?{ok:!0,saved:c}:u}(s,t,i);if(!c.ok)return c;let u=0;try{let e=await a.listShowroomLayouts();if(0===e.layouts.length){let e=o(d);for(let t of Object.values(e))try{await a.saveShowroomLayout(t.name,{savedAt:t.savedAt,panels:t.panels,...t.layoutMode?{layoutMode:t.layoutMode}:{}}),u+=1}catch(e){}return{ok:!0,saved:c.saved,source:"daemon",migrated:u}}return await a.saveShowroomLayout(s,{savedAt:c.saved.savedAt,panels:c.saved.panels,...c.saved.layoutMode?{layoutMode:c.saved.layoutMode}:{}}),{ok:!0,saved:c.saved,source:"daemon",migrated:0}}catch(e){return{ok:!0,saved:c.saved,source:"local",migrated:0}}}async function d(e,t){let a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:n(),r=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:n(),a=o(t);return e.trim()in a&&(delete a[e.trim()],l(a,t),!0)}(e,a);try{return await t.deleteShowroomLayout(e),{ok:!0,source:"daemon"}}catch(e){return{ok:r,source:"local"}}}function c(e){return e.panels.map(e=>({id:e.id,kind:e.kind,provider:e.provider,...e.agentBrand?{agentBrand:e.agentBrand}:{},...e.roleHint?{roleHint:e.roleHint}:{},...e.personaId?{personaId:e.personaId}:{},sessionId:null,state:e.state}))}},12711:(e,t,a)=>{"use strict";a.d(t,{C:()=>d,DaemonProvider:()=>c,Q:()=>u});var r=a(59473),n=a(24725),o=a(62474),l=a(49333),i=a(56580),s=a(54111);let d=(0,n.createContext)(null);function c(e){let{children:t}=e,a={baseUrl:"",token:"",provider:""},[c,u]=(0,n.useState)(a),[m,p]=(0,n.useState)(""),[h]=(0,n.useState)(()=>new i.ki(a));(0,n.useEffect)(()=>{let e=(0,o.Fp)();u(e),h.updateConfig(e),p((0,l.oD)()),(0,s.cY)("webterm.provider.daemon.init",{baseUrl:e.baseUrl,hasToken:!!e.token})},[h]),(0,n.useEffect)(()=>{let e=e=>{if("elanous.daemon.token"===e.key||"elanous.nexus.baseUrl"===e.key){let t=(0,o.Fp)();h.updateConfig(t),u(t),(0,s.cY)("webterm.provider.daemon.config-cross-tab",{key:e.key,hasToken:!!t.token});return}"elanous.daemon.sessionId"===e.key&&e.newValue&&p(t=>t===e.newValue?t:((0,s.cY)("webterm.provider.daemon.session-cross-tab",{previous:t||"(empty)",next:e.newValue}),e.newValue))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)},[h]);let b=e=>{u(t=>{let a={...t,...e};return(0,o.Qc)(e),h.updateConfig(a),(0,s.cY)("webterm.provider.daemon.config-update",{keys:Object.keys(e)}),a})},x=e=>{p(e),localStorage.setItem("elanous.daemon.sessionId",e),(0,s.cY)("webterm.provider.daemon.session-set",{sessionId:e})},g=(0,n.useMemo)(()=>({config:c,setConfig:b,client:h,sessionId:m,setSessionId:x}),[c,h,m]);return(0,r.jsx)(d.Provider,{value:g,children:t})}function u(){let e=(0,n.useContext)(d);if(!e)throw Error("useDaemon must be used inside <DaemonProvider>");return e}},15635:(e,t,a)=>{"use strict";a.d(t,{GZ:()=>i,_n:()=>u,gu:()=>d,mB:()=>s,sY:()=>c,u9:()=>m});let r="elanous.showroom.intentPanel.collapsed",n="elanous.showroom.intentPanel.displayMode",o="fixed",l=new Set(["fixed","popup","off"]);function i(){try{return"true"===window.localStorage.getItem(r)}catch(e){return!1}}function s(e){try{e?window.localStorage.setItem(r,"true"):window.localStorage.removeItem(r),window.dispatchEvent(new StorageEvent("storage",{key:r,newValue:e?"true":null}))}catch(e){}}function d(e){let t=t=>{(t.key===r||null===t.key)&&e(i())};return window.addEventListener("storage",t),()=>{window.removeEventListener("storage",t)}}function c(){try{let e=window.localStorage.getItem(n);if(e&&l.has(e))return e;return o}catch(e){return o}}function u(e){try{e===o?window.localStorage.removeItem(n):window.localStorage.setItem(n,e),window.dispatchEvent(new StorageEvent("storage",{key:n,newValue:e===o?null:e}))}catch(e){}}function m(e){let t=t=>{(t.key===n||null===t.key)&&e(c())};return window.addEventListener("storage",t),()=>{window.removeEventListener("storage",t)}}},24169:(e,t,a)=>{"use strict";a.d(t,{ShowroomLayout:()=>e$});var r=a(59473),n=a(24725),o=a(2745),l=a(3830),i=a(54660),s=a(90313),d=a(77323),c=a(17815),u=a(51017),m=a(79988),p=a(36963),h=a(95231),b=a(15165),x=a(3799),g=a(80881),f=a(30586),v=a(12711),w=a(48371),k=a(49673);function y(e,t){let a=j(e),r=t.filter(e=>j(e)===a);if(r.length<=1)return a;let n=r.findIndex(t=>t.id===e.id);return"".concat(a,"-").concat(n+1)}function j(e){return"agent"===e.kind&&e.agentBrand?"".concat(e.agentBrand,"-cli"):e.provider||"default"}let z=0;function N(){return(z=(z+1)%4096).toString(36).padStart(2,"0")}function S(){return"p-".concat(Date.now().toString(36),"-").concat(N())}let C=["","claude","gemini","grok","codex"],I=["codex","claude","gemini"],A=/@([a-zA-Z][a-zA-Z0-9-]{0,31})/g;function T(e,t){let a=[],r=new Set,n=[],o=[],l=!1;for(let i of e.matchAll(A)){let e=i[1];if(!e)continue;let s=e.toLowerCase();if("all"===s){l=!0,n.push("@all");continue}let d=t.find(e=>y(e,t).toLowerCase()===s);d?(r.has(d.id)||(r.add(d.id),a.push(d)),n.push("@".concat(e))):o.push(e)}return{targets:a,broadcastAll:l,mentions:n,unknown:o}}function E(e,t){var a;let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{targets:n,broadcastAll:o}=T(e,t);if(o)return{targets:t.filter(e=>"live"===e.state),mode:"broadcast"};if(n.length>0)return{targets:n,mode:"targeted",routedBy:"mention"};let l=null!=(a=r.roleHint)?a:function(e){let t=e.toLowerCase();for(let a of P)if(M[a].some(a=>(function(e,t,a){if(D.test(a))return e.includes(a);let r=L.get(a);return r||(r=new RegExp("\\b".concat(a.toLowerCase(),"\\b")),L.set(a,r)),r.test(t)})(e,t,a)))return a;return null}(e);if(l){let e=t.filter(e=>e.roleHint===l);if(1===e.length)return{targets:e,mode:"targeted",routedBy:"role-classify",classifiedRole:l}}return{targets:t.filter(e=>"live"===e.state),mode:"broadcast"}}let P=["review","reflect","plan","exec"],M={plan:["계획","기획","설계","구상","아키텍처","디자인","plan","design","architect","spec","roadmap"],exec:["구현","코드","작성","만들어","수정","구축","코딩","implement","code","write","build","create","fix"],review:["리뷰","검토","평가","점검","검사","비판","review","critique","evaluate","check","audit"],reflect:["회고","반성","돌아보","성찰","교훈","되짚","reflect","retrospective","lesson","postmortem"]},D=/[ㄱ-ㆎ가-힣]/,L=new Map,Y="elanous.showroom.roleJudgeBackend";async function R(e,t,a){let r=E(e,t);if("broadcast"!==r.mode||r.classifiedRole||!a)return r;try{let n=await a(e);if(null===n.role)return r;return E(e,t,{roleHint:n.role})}catch(e){return r}}let _=/(^|\s)@([a-zA-Z0-9-]*)$/;function U(e){let t=Number.isFinite(e)&&e>=0?Math.floor(e):0,a=Math.floor(t/60);return"".concat(a,":").concat(String(t%60).padStart(2,"0"))}function F(e,t){return e.filter(e=>e.fromPanelId===t)}let K="elanous.showroom.dmMode";function O(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=e.filter(e=>"live"===e.state&&("chat"===e.kind||t.includeAgent&&"agent"===e.kind)).map(e=>{let a={id:e.id,provider:e.provider};if("agent"===e.kind&&e.agentBrand&&(a.kind="agent",a.backend=function(e){switch(e){case"codex":return"codex-app-server";case"claude":return"claude";case"gemini":return"gemini"}}(e.agentBrand)),e.personaId&&(a.personaId=e.personaId),t.lastAssistantByPanelId){let r=t.lastAssistantByPanelId[e.id];"string"==typeof r&&r.length>0&&(a.lastAssistant=r)}return a});if(0===a.length)return null;let r={targets:a};return t.historyMode&&(r.historyMode=t.historyMode),r}function B(e){if(e)for(let t=e.length-1;t>=0;t--){let a=e[t];if((null==a?void 0:a.role)==="assistant"&&"string"==typeof a.text&&a.text.length>0)return a.text}}let q="elanous.showroom.historyMode";function H(e){return{elanous:{multiLlm:e}}}function V(e,t){return e.length<=t?e:"".concat(e.slice(0,t-1),"…")}var J=a(54111),W=a(81204),Q=a(11440),Z=a(56341),$=a(99066),X=a(19529),G=a(53533),ee=a(43121),et=a(46176);let ea=["plan","exec","review","reflect"],er={plan:"plan",exec:"exec",review:"review",reflect:"reflect"};function en(e){var t,a,o,i,d;let{panel:c,allPanels:u,client:m,onClose:p,onState:h,onProvider:g,onPromoteAssistant:f,outgoingEdges:v,onAddChainEdge:w,onRemoveChainEdge:k,onToggleChainEdgeHitl:j,onRoleHint:z,onPersona:N,dmState:S,dmSessionId:I}=e,[A,T]=(0,n.useState)(!1),[E,P]=(0,n.useState)(null),[M,D]=(0,n.useState)(!1),[L,Y]=(0,n.useState)(!1),R=(0,et.v)(m),_=R.personas,U=(0,ee.X)(m),F=(0,n.useMemo)(()=>{if(0===U.providerIds.length)return C;let e=["",...U.providerIds];return c.provider&&!e.includes(c.provider)&&e.push(c.provider),e},[U.providerIds,c.provider]),K=(0,n.useMemo)(()=>{if(c.personaId)return _.find(e=>e.personaId===c.personaId)},[c.personaId,_]),O=!!(null==K?void 0:K.brand),B=null!=v?v:[],q=(0,n.useMemo)(()=>u.filter(e=>e.id!==c.id&&!B.some(t=>t.toPanelId===e.id)),[u,c.id,B]),H=(0,n.useCallback)(e=>{if(!w)return;let t=w(c.id,e);if(!t.ok)return void P("route rejected \xb7 ".concat(t.reason));P(null),T(!1)},[w,c.id]),J=null!=(t=null==S?void 0:S.messages)?t:[],W=null!=(a=null==S?void 0:S.partial)?a:"",Q=null!=(o=null==S?void 0:S.streaming)&&o,en=null!=(i=null==S?void 0:S.error)?i:null,eo=(0,n.useMemo)(()=>{let e=null==S?void 0:S.toolCalls;return e?Object.values(e).sort((e,t)=>e.startedAt-t.startedAt):[]},[null==S?void 0:S.toolCalls]),el=(0,n.useMemo)(()=>eo.filter(e=>"pending"===e.status||"in_progress"===e.status).length,[eo]),[ei,es]=(0,n.useState)(!1),ed=(0,n.useCallback)(()=>{h("live"===c.state?"mute":"live")},[c.state,h]),ec=(0,n.useMemo)(()=>y(c,u),[c,u]),eu="live"===c.state?"bg-emerald-100 text-emerald-700 dark:bg-emerald-900/40 dark:text-emerald-300":"mute"===c.state?"bg-zinc-200 text-zinc-600 dark:bg-zinc-700 dark:text-zinc-300":"bg-amber-100 text-amber-700 dark:bg-amber-900/40 dark:text-amber-300";return(0,r.jsxs)("article",{className:"flex h-full min-h-0 min-w-0 flex-1 flex-col rounded-lg border border-zinc-200 bg-white shadow-sm dark:border-zinc-700 dark:bg-zinc-900 ".concat("mute"===c.state?"opacity-60":""),"data-testid":"showroom-panel-".concat(c.id),"aria-label":"Showroom panel ".concat(ec),children:[(0,r.jsxs)("header",{className:"flex flex-wrap items-center justify-between gap-2 border-b border-zinc-200/50 px-3 py-2 dark:border-zinc-700/50",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 text-xs",children:["agent"===c.kind&&(0,r.jsxs)("span",{className:"inline-flex items-center gap-0.5 rounded bg-amber-100 px-1.5 py-0.5 text-[10px] uppercase text-amber-700 dark:bg-amber-900/40 dark:text-amber-300","data-testid":"showroom-panel-agent-badge-".concat(c.id),title:"agent CLI \xb7 brand=".concat(c.agentBrand),children:[(0,r.jsx)(s.A,{className:"size-3","aria-hidden":!0}),"agent"]}),(0,r.jsxs)("span",{className:"font-medium text-zinc-900 dark:text-zinc-100",children:["@",ec]}),(0,r.jsx)("span",{className:"rounded px-1.5 py-0.5 text-[10px] uppercase ".concat(eu),children:c.state}),N&&(0,r.jsxs)("div",{className:"relative",children:[(0,r.jsxs)("button",{type:"button",onClick:()=>Y(e=>!e),className:"inline-flex items-center gap-0.5 rounded px-1.5 py-0.5 text-[10px] uppercase ".concat(K?"bg-fuchsia-100 text-fuchsia-700 dark:bg-fuchsia-900/40 dark:text-fuchsia-300":"bg-zinc-100 text-zinc-500 hover:bg-zinc-200 dark:bg-zinc-800 dark:text-zinc-400 dark:hover:bg-zinc-700"),"aria-label":K?"Persona: ".concat(K.displayName):"Bind persona",title:K?"Persona: ".concat(K.displayName," — click to change"):"Bind a persona (system prompt + brand lock)","data-testid":"showroom-panel-persona-toggle-".concat(c.id),style:(null==K?void 0:K.brandColor)?{borderLeft:"3px solid ".concat(K.brandColor)}:void 0,children:[(0,r.jsx)(Z.A,{className:"size-3","aria-hidden":!0}),K?K.displayName.slice(0,12):"persona"]}),L&&(0,r.jsxs)("div",{className:"absolute left-0 top-full z-20 mt-1 w-64 max-h-72 overflow-y-auto rounded-md border border-zinc-200 bg-white p-1 shadow-lg dark:border-zinc-700 dark:bg-zinc-900","data-testid":"showroom-panel-persona-menu-".concat(c.id),children:[R.loading&&(0,r.jsx)("p",{className:"px-1.5 py-1 text-[10px] text-zinc-500",children:"loading…"}),R.error&&(0,r.jsxs)("p",{className:"px-1.5 py-1 text-[10px] text-rose-600",children:["error: ",R.error]}),!R.loading&&0===_.length&&(0,r.jsxs)("p",{className:"px-1.5 py-1 text-[10px] text-zinc-500",children:["no personas (yaml in ",(0,r.jsx)("code",{children:"~/.elanous/personas/"}),")"]}),_.map(e=>{let t=e.personaId===c.personaId;return(0,r.jsxs)("button",{type:"button",onClick:()=>{N(e.brand?{personaId:e.personaId,brand:e.brand}:{personaId:e.personaId}),Y(!1)},className:"block w-full rounded px-1.5 py-1 text-left text-[11px] hover:bg-fuchsia-50 dark:hover:bg-fuchsia-900/20 ".concat(t?"font-bold text-fuchsia-700 dark:text-fuchsia-300":""),"data-testid":"showroom-panel-persona-set-".concat(c.id,"-").concat(e.personaId),children:[(0,r.jsx)("span",{className:"mr-1 inline-block size-2 rounded-full",style:e.brandColor?{backgroundColor:e.brandColor}:{backgroundColor:"#a1a1aa"},"aria-hidden":!0}),e.displayName,e.brand&&(0,r.jsx)("span",{className:"ml-1 text-[9px] uppercase text-zinc-500",children:e.brand})]},e.personaId)}),K&&(0,r.jsx)("button",{type:"button",onClick:()=>{N(null),Y(!1)},className:"mt-1 block w-full rounded border-t border-zinc-100 px-1.5 py-1 text-left text-[11px] text-rose-600 hover:bg-rose-50 dark:border-zinc-800 dark:text-rose-400 dark:hover:bg-rose-900/20","data-testid":"showroom-panel-persona-clear-".concat(c.id),children:"clear"})]})]}),z&&(0,r.jsxs)("div",{className:"relative",children:[(0,r.jsxs)("button",{type:"button",onClick:()=>D(e=>!e),className:"inline-flex items-center gap-0.5 rounded px-1.5 py-0.5 text-[10px] uppercase ".concat(c.roleHint?"bg-violet-100 text-violet-700 dark:bg-violet-900/40 dark:text-violet-300":"bg-zinc-100 text-zinc-500 hover:bg-zinc-200 dark:bg-zinc-800 dark:text-zinc-400 dark:hover:bg-zinc-700"),"aria-label":c.roleHint?"Role: ".concat(c.roleHint):"Set role hint",title:c.roleHint?"Role: ".concat(c.roleHint," — click to change"):"Assign role hint (auto @target)","data-testid":"showroom-panel-role-toggle-".concat(c.id),children:[(0,r.jsx)($.A,{className:"size-3","aria-hidden":!0}),null!=(d=c.roleHint)?d:"role"]}),M&&(0,r.jsxs)("div",{className:"absolute left-0 top-full z-20 mt-1 w-32 rounded-md border border-zinc-200 bg-white p-1 shadow-lg dark:border-zinc-700 dark:bg-zinc-900","data-testid":"showroom-panel-role-menu-".concat(c.id),children:[ea.map(e=>(0,r.jsx)("button",{type:"button",onClick:()=>{z(e),D(!1)},className:"block w-full rounded px-1.5 py-1 text-left text-[11px] hover:bg-violet-50 dark:hover:bg-violet-900/20 ".concat(c.roleHint===e?"font-bold text-violet-700 dark:text-violet-300":""),"data-testid":"showroom-panel-role-set-".concat(c.id,"-").concat(e),children:er[e]},e)),c.roleHint&&(0,r.jsx)("button",{type:"button",onClick:()=>{z(null),D(!1)},className:"mt-1 block w-full rounded border-t border-zinc-100 px-1.5 py-1 text-left text-[11px] text-rose-600 hover:bg-rose-50 dark:border-zinc-800 dark:text-rose-400 dark:hover:bg-rose-900/20","data-testid":"showroom-panel-role-clear-".concat(c.id),children:"clear"})]})]}),Q&&(0,r.jsx)("span",{className:"text-[10px] text-zinc-500","aria-live":"polite",children:"streaming…"}),eo.length>0&&(0,r.jsxs)("button",{type:"button",onClick:()=>es(e=>!e),"aria-expanded":ei,"aria-controls":"showroom-panel-tools-".concat(c.id),"data-testid":"showroom-panel-tools-pill-".concat(c.id),title:el>0?"".concat(eo.length," tool calls \xb7 ").concat(el," running"):"".concat(eo.length," tool calls"),className:"inline-flex items-center gap-1 rounded-full border px-1.5 py-0.5 text-[10px] font-medium ".concat(el>0?"border-amber-300 bg-amber-50 text-amber-700 dark:border-amber-700 dark:bg-amber-900/30 dark:text-amber-300":"border-zinc-300 bg-zinc-50 text-zinc-600 dark:border-zinc-700 dark:bg-zinc-800 dark:text-zinc-300"),children:[(0,r.jsx)("span",{"aria-hidden":!0,children:"⚙"}),(0,r.jsxs)("span",{children:[eo.length," tool",1===eo.length?"":"s",el>0?" \xb7 ".concat(el," running"):""]})]})]}),(0,r.jsxs)("div",{className:"flex items-center gap-1",children:["agent"===c.kind?(0,r.jsxs)("span",{className:"rounded-md border border-amber-300 bg-amber-50 px-1.5 py-0.5 text-[11px] font-medium text-amber-700 dark:border-amber-700 dark:bg-amber-900/30 dark:text-amber-300","data-testid":"showroom-panel-brand-".concat(c.id),title:"Agent CLI brand is locked at create time (P5 D6)",children:[c.agentBrand,"-cli"]}):(0,r.jsx)("select",{value:c.provider,onChange:e=>g(e.target.value),disabled:Q||O,className:"rounded-md border border-zinc-300 bg-white px-1.5 py-0.5 text-xs disabled:cursor-not-allowed disabled:opacity-60 dark:border-zinc-700 dark:bg-zinc-800","aria-label":"Provider",title:O?'Provider locked by persona "'.concat(null==K?void 0:K.displayName,'" (brand=').concat(null==K?void 0:K.brand,")"):"Provider","data-testid":"showroom-panel-provider-".concat(c.id),children:F.map(e=>(0,r.jsx)("option",{value:e,children:e||"(default)"},e))}),!!w&&!!k&&!!v&&(0,r.jsxs)("div",{className:"relative",children:[(0,r.jsxs)("button",{type:"button",onClick:()=>{T(e=>!e),P(null)},className:"relative rounded p-1 hover:bg-zinc-100 dark:hover:bg-zinc-800","aria-label":"Forward chain \xb7 agent-to-agent direct routing",title:B.length>0?"Chain: forwards to ".concat(B.length," panel(s)"):"Set up auto-forward to another panel","data-testid":"showroom-panel-chain-toggle-".concat(c.id),children:[(0,r.jsx)(X.A,{className:"size-3.5","aria-hidden":!0}),B.length>0&&(0,r.jsx)("span",{className:"absolute -right-0.5 -top-0.5 flex size-3.5 items-center justify-center rounded-full bg-indigo-500 text-[8px] font-bold text-white","aria-hidden":!0,children:B.length})]}),A&&(0,r.jsxs)("div",{className:"absolute right-0 top-full z-20 mt-1 w-56 rounded-md border border-zinc-200 bg-white p-2 shadow-lg dark:border-zinc-700 dark:bg-zinc-900","data-testid":"showroom-panel-chain-menu-".concat(c.id),children:[(0,r.jsx)("p",{className:"mb-1 text-[10px] uppercase text-zinc-500",children:"Auto-forward to"}),B.length>0&&(0,r.jsx)("ul",{className:"mb-2 space-y-0.5 border-b border-zinc-100 pb-2 dark:border-zinc-800",children:B.map(e=>{let t=u.find(t=>t.id===e.toPanelId),a=t?y(t,u):e.toPanelId;return(0,r.jsxs)("li",{className:"flex items-center justify-between gap-1 rounded bg-indigo-50 px-1.5 py-1 text-[11px] dark:bg-indigo-900/30","data-testid":"showroom-panel-chain-edge-".concat(e.id),children:[(0,r.jsxs)("span",{className:"truncate text-indigo-700 dark:text-indigo-300",children:["→ @",a]}),(0,r.jsxs)("div",{className:"flex shrink-0 items-center gap-0.5",children:[j&&(0,r.jsx)("button",{type:"button",onClick:()=>j(e.id),className:"rounded p-0.5 text-[11px] leading-none ".concat(e.hitl?"bg-amber-100 text-amber-700 hover:bg-amber-200 dark:bg-amber-900/40 dark:text-amber-300 dark:hover:bg-amber-900/60":"text-indigo-500/60 hover:bg-indigo-100 dark:hover:bg-indigo-800/40"),"aria-pressed":!!e.hitl,"aria-label":e.hitl?"Disable confirm gate for forward to @".concat(a):"Enable confirm gate for forward to @".concat(a),title:e.hitl?"Confirm before forward (click to auto-forward)":"Auto-forward (click to require confirm)","data-testid":"showroom-panel-chain-hitl-".concat(e.id),children:e.hitl?"\uD83D\uDD12":"⚡"}),k&&(0,r.jsx)("button",{type:"button",onClick:()=>k(e.id),className:"rounded p-0.5 hover:bg-indigo-100 dark:hover:bg-indigo-800/40","aria-label":"Remove forward to @".concat(a),"data-testid":"showroom-panel-chain-remove-".concat(e.id),children:(0,r.jsx)(l.A,{className:"size-3","aria-hidden":!0})})]})]},e.id)})}),q.length>0?(0,r.jsx)("ul",{className:"space-y-0.5",children:q.map(e=>{let t=y(e,u);return(0,r.jsx)("li",{children:(0,r.jsxs)("button",{type:"button",onClick:()=>H(e.id),className:"block w-full rounded px-1.5 py-1 text-left text-[11px] hover:bg-indigo-50 dark:hover:bg-indigo-900/20","data-testid":"showroom-panel-chain-add-".concat(c.id,"-").concat(e.id),children:["+ @",t]})},e.id)})}):(0,r.jsx)("p",{className:"text-[11px] text-zinc-500",children:"no candidates"}),E&&(0,r.jsx)("p",{className:"mt-1 text-[10px] text-rose-600 dark:text-rose-400","data-testid":"showroom-panel-chain-error-".concat(c.id),children:E})]})]}),(0,r.jsx)("button",{type:"button",onClick:ed,className:"rounded p-1 hover:bg-zinc-100 dark:hover:bg-zinc-800","aria-label":"live"===c.state?"Mute panel":"Unmute panel",title:"live"===c.state?"Mute":"Unmute",children:"live"===c.state?(0,r.jsx)(x.A,{className:"size-3.5","aria-hidden":!0}):(0,r.jsx)(b.A,{className:"size-3.5","aria-hidden":!0})}),(0,r.jsx)("button",{type:"button",onClick:p,className:"rounded p-1 hover:bg-zinc-100 dark:hover:bg-zinc-800","aria-label":"Close panel",title:"Close",children:(0,r.jsx)(l.A,{className:"size-3.5","aria-hidden":!0})})]})]}),(0,r.jsxs)("div",{className:"flex-1 overflow-y-auto p-3 text-sm",children:[ei&&eo.length>0&&(0,r.jsx)("ul",{id:"showroom-panel-tools-".concat(c.id),"data-testid":"showroom-panel-tools-list-".concat(c.id),className:"mb-3 rounded-md border border-zinc-200 bg-zinc-50/60 p-2 text-[11px] dark:border-zinc-700 dark:bg-zinc-800/40",children:eo.map(e=>{let t="completed"===e.status?"✅":"failed"===e.status?"❌":"⏳",a=function(e){let t=e.name&&e.name.length>0?e.name:"(unnamed)",a=V(t,56),r=null;if(e.input){let t=Object.entries(e.input);if(t.length>0){let[e,a]=t[0],n="string"==typeof a?a:null===a?"null":void 0===a?"undefined":JSON.stringify(a);r="".concat(e,"=").concat(n)}}else e.output&&e.output.length>0&&(r=e.output);if(null===r)return{name:a,meta:null};let n=V(r,96);return!function(e,t){let a=e=>e.replace(/…$/,"").replace(/^command=/,"").trim().toLowerCase(),r=a(e),n=a(t);if(!r||!n)return!1;if(r===n)return!0;let o=n.indexOf("="),l=o>=0?n.slice(o+1).trim():n;return!!(l&&(r.startsWith(l)||l.startsWith(r)))}(t,r)?{name:a,meta:n}:{name:a,meta:null}}(e);return(0,r.jsxs)("li",{"data-testid":"showroom-panel-tool-".concat(c.id,"-").concat(e.id),className:"flex items-baseline gap-2 py-0.5",children:[(0,r.jsx)("span",{"aria-hidden":!0,children:t}),(0,r.jsx)("span",{className:"truncate font-medium text-zinc-800 dark:text-zinc-200",title:e.name||"(unnamed)",children:a.name}),a.meta&&(0,r.jsxs)("span",{className:"truncate text-zinc-500 dark:text-zinc-400",title:a.meta,children:["\xb7 ",a.meta]}),("pending"===e.status||"in_progress"===e.status)&&(0,r.jsx)("span",{className:"text-[10px] text-amber-600 dark:text-amber-300",children:"pending"===e.status?"pending":"running"})]},e.id)})}),0===J.length&&!Q&&(0,r.jsx)("p",{className:"text-xs text-zinc-500",children:I?"대기 중 \xb7 broadcast 또는 mention 으로 시작":"DM session 준비 중…"}),J.map(e=>(0,r.jsxs)("div",{className:"mb-3 ".concat("user"===e.role?"text-zinc-900 dark:text-zinc-100":"text-zinc-700 dark:text-zinc-300"),children:[(0,r.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,r.jsx)("span",{className:"text-[10px] uppercase text-zinc-500",children:e.role}),"assistant"===e.role&&f&&e.text.length>0&&(0,r.jsxs)("button",{type:"button",onClick:()=>f({messageId:e.id,text:e.text}),className:"inline-flex items-center gap-0.5 rounded px-1 py-0.5 text-[10px] text-indigo-600 hover:bg-indigo-50 dark:text-indigo-300 dark:hover:bg-indigo-900/30","aria-label":"Promote answer to prior context",title:"Promote → next broadcast 에 context 로 첨부","data-testid":"showroom-panel-promote-".concat(c.id,"-").concat(e.id),children:[(0,r.jsx)(G.A,{className:"size-3","aria-hidden":!0}),"promote"]})]}),(0,r.jsx)("p",{className:"whitespace-pre-wrap",children:e.text})]},e.id)),Q&&(0,r.jsxs)("div",{className:"mb-3 text-zinc-700 dark:text-zinc-300",children:[(0,r.jsx)("span",{className:"text-[10px] uppercase text-zinc-500",children:"assistant…"}),(0,r.jsx)("p",{className:"whitespace-pre-wrap",children:W||"..."})]}),en&&(0,r.jsx)("div",{className:"mt-2 rounded bg-rose-50 p-2 text-xs text-rose-700 dark:bg-rose-900/30 dark:text-rose-300",children:en})]}),(0,r.jsx)("footer",{className:"border-t border-zinc-200/50 px-3 py-1.5 text-[10px] text-zinc-500 dark:border-zinc-700/50","data-testid":"showroom-panel-footer-".concat(c.id),children:(0,r.jsxs)("span",{"data-testid":"showroom-panel-dm-footer-".concat(c.id),children:["DM \xb7"," ",I?"layout sess: ".concat(I.slice(0,8),"…"):"no layout session"]})})]})}var eo=a(10453),el=a(59779),ei=a(60468),es=a(51516),ed=a(44742),ec=a(36797),eu=a(34365),em=a(64198),ep=a(35358),eh=a(87161),eb=a(78504),ex=a(88793),eg=a(19250),ef=a(94167),ev=a(62993);async function ew(e){var t,a,r,n;let o=null!=(a=null!=(t=e.filename)?t:e.file instanceof File?e.file.name:void 0)?a:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new Date,t=e.toISOString().replace(/[:.]/g,"-").toLowerCase();return"camera-".concat(t,".jpg")}(),l=await (0,ev.v)({baseUrl:e.baseUrl,...void 0!==e.token?{token:e.token}:{},file:e.file,filename:o});if(!l.ok)return{ok:!1,stage:"upload",status:l.status,reason:l.reason};if("session"===e.route.kind)return{ok:!0,route:"session",meta:l.meta};let i=e.baseUrl.replace(/\/$/,""),s=null!=(r=e.fetchImpl)?r:"undefined"!=typeof fetch?fetch:null;if(!s)return{ok:!1,stage:"intake",status:0,reason:"fetch unavailable"};try{let t=function(e){var t,a;let r=e.meta,n=null!=(a=null==(t=e.caption)?void 0:t.trim())?a:"",o="[image: ".concat(r.filename).concat(r.path?" \xb7 ".concat(r.path):"","]"),l={text:n?"".concat(o," ").concat(n):o,actor:"pwa-camera",channelContext:{kind:"pwa-camera",attachmentId:r.id,attachmentFilename:r.filename,attachmentMediaType:r.mediaType,...r.path?{attachmentPath:r.path}:{},...r.downloadUrl?{attachmentUrl:r.downloadUrl}:{}}};return e.receivedAt&&(l.receivedAt=e.receivedAt),e.intakeId&&(l.intakeId=e.intakeId),l}({meta:l.meta,...void 0!==e.caption?{caption:e.caption}:{}}),a=await s("".concat(i,"/v1/intake"),{method:"POST",headers:{"content-type":"application/json",...e.token?{authorization:"Bearer ".concat(e.token)}:{}},body:JSON.stringify(t)});if(!a.ok){let e=await a.text().catch(()=>"");return{ok:!1,stage:"intake",status:a.status,reason:e||"HTTP ".concat(a.status)}}let r=await a.json().catch(()=>({}));return{ok:!0,route:"intake",meta:l.meta,intakeId:null!=(n=r.intakeId)?n:""}}catch(e){return{ok:!1,stage:"intake",status:0,reason:String(e instanceof Error?e.message:e)}}}function ek(e){let{pendingFile:t,pendingPreviewUrl:a,caption:n,busy:o,error:l,onPickFile:i,onCaptionChange:s,onRouteSession:d,onRouteIntake:c,onCancel:u}=e;return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("button",{type:"button",onClick:i,disabled:o,"aria-label":"attach photo",title:"attach photo (camera or file)","data-testid":"showroom-camera-button",className:"rounded p-1.5 text-muted-foreground hover:bg-accent hover:text-foreground disabled:opacity-50",children:o?(0,r.jsx)(eb.A,{className:"h-3.5 w-3.5 animate-spin"}):(0,r.jsx)(ex.A,{className:"h-3.5 w-3.5"})}),t&&(0,r.jsx)("div",{role:"dialog","aria-modal":"true","aria-label":"Camera intake","data-testid":"showroom-camera-modal",className:"fixed inset-0 z-40 flex items-center justify-center bg-black/40 p-4 backdrop-blur-sm",children:(0,r.jsxs)("div",{className:"flex w-[min(calc(100vw-2rem),28rem)] flex-col gap-3 rounded-2xl border border-zinc-200 bg-white p-4 shadow-2xl dark:border-zinc-800 dark:bg-zinc-900",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between",children:[(0,r.jsx)("span",{className:"text-sm font-medium text-zinc-900 dark:text-zinc-100",children:"사진 첨부"}),(0,r.jsx)("button",{type:"button",onClick:u,disabled:o,"aria-label":"cancel","data-testid":"showroom-camera-cancel",className:"rounded p-1 text-zinc-500 hover:bg-zinc-100 disabled:opacity-50 dark:text-zinc-400 dark:hover:bg-zinc-800",children:"✕"})]}),a&&(0,r.jsx)("img",{src:a,alt:"camera capture preview","data-testid":"showroom-camera-preview",className:"max-h-72 w-full rounded-md border border-zinc-200 object-contain dark:border-zinc-800"}),(0,r.jsx)("textarea",{value:n,onChange:e=>s(e.target.value),disabled:o,placeholder:"사진 설명 (선택 \xb7 intake 저장 시 KGS 검색 키워드)",rows:2,"data-testid":"showroom-camera-caption",className:"rounded border border-zinc-300 bg-white px-2 py-1.5 text-sm text-zinc-900 disabled:opacity-50 dark:border-zinc-700 dark:bg-zinc-800 dark:text-zinc-100"}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)("button",{type:"button",onClick:d,disabled:o,"data-testid":"showroom-camera-route-session",className:"flex-1 rounded-lg border border-zinc-300 bg-white px-3 py-1.5 text-sm font-medium text-zinc-800 transition hover:bg-zinc-100 disabled:cursor-not-allowed disabled:opacity-50 dark:border-zinc-700 dark:bg-zinc-800 dark:text-zinc-100 dark:hover:bg-zinc-700",children:o?"...":"Session 첨부"}),(0,r.jsx)("button",{type:"button",onClick:c,disabled:o,"data-testid":"showroom-camera-route-intake",className:"flex-1 rounded-lg border border-emerald-500 bg-emerald-500 px-3 py-1.5 text-sm font-semibold text-white transition hover:bg-emerald-600 disabled:cursor-not-allowed disabled:opacity-50",children:o?"...":"Intake 저장"})]}),l&&(0,r.jsx)("div",{role:"alert","data-testid":"showroom-camera-error",className:"text-xs text-red-600 dark:text-red-400",children:l})]})})]})}function ey(e){let{onAttachToSession:t}=e,{config:a}=(0,v.Q)(),o=(0,n.useRef)(null),[l,i]=(0,n.useState)(null),[s,d]=(0,n.useState)(null),[c,u]=(0,n.useState)(""),[m,p]=(0,n.useState)(!1),[h,b]=(0,n.useState)(null),x=()=>{if(s)try{URL.revokeObjectURL(s)}catch(e){}i(null),d(null),u(""),p(!1),b(null)},g=async e=>{if(!l)return;if(!a.baseUrl)return void b("Daemon URL 미설정 — Settings 에서 입력");p(!0),b(null),(0,J.cY)("showroom.camera.submit",{route:e,hasCaption:c.trim().length>0});let r=await ew({baseUrl:a.baseUrl,...a.token?{token:a.token}:{},file:l,...c.trim()?{caption:c}:{},route:{kind:e}});if(!r.ok){b("".concat(r.stage," 실패: ").concat(r.reason)),p(!1),(0,J.cY)("showroom.camera.error",{stage:r.stage,status:r.status});return}"session"===r.route?(null==t||t(r.meta),eg.oR.success("\uD83D\uDCCE ".concat(r.meta.filename," (").concat((r.meta.size/1024).toFixed(1)," kB) \xb7 session 첨부됨"))):eg.oR.success("\uD83D\uDCE5 사진 저장됨 \xb7 intake ".concat(r.intakeId||"(id 없음)")),(0,J.cY)("showroom.camera.ok",{route:r.route,id:r.meta.id}),ef.K.emit({surface:"pwa",intent:{layer:"gesture",kind:"session"===r.route?"pwa.gesture.camera_attach_session":"pwa.gesture.camera_intake_save",target:{kind:"attachment",id:r.meta.id,label:r.meta.filename},value:{route:r.route,hasCaption:c.trim().length>0,sizeKb:Math.round(r.meta.size/1024)}},..."intake"===r.route&&r.intakeId?{context:{active_workflow_run_id:r.intakeId}}:{}}),x()};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(ek,{pendingFile:l,pendingPreviewUrl:s,caption:c,busy:m,error:h,onPickFile:()=>{var e;null==(e=o.current)||e.click()},onCaptionChange:u,onRouteSession:()=>{g("session")},onRouteIntake:()=>{g("intake")},onCancel:x}),(0,r.jsx)("input",{ref:o,type:"file",accept:"image/*",capture:"environment",className:"hidden",onChange:e=>{var t;let a=null==(t=e.target.files)?void 0:t[0];if(e.target.value="",!a)return;(0,J.cY)("showroom.camera.pick",{filename:a.name,size:a.size,type:a.type});let r=null;try{r=URL.createObjectURL(a)}catch(e){}i(a),d(r),u(""),b(null)},"data-testid":"showroom-camera-input"})]})}var ej=a(20310);function ez(e){var t,a,o,i,d,c,u;let{onSend:m,panels:p,liveCount:h,attachments:b,onAttach:x,onRemoveAttachment:g,terminalContexts:f,onPinTerminalContext:v,onRemoveTerminalContext:w,priorAnswers:k,onRemovePriorAnswer:j,onTogglePriorAnswer:z,urlContexts:S,onAddUrlContext:C,onRemoveUrlContext:I,clipboardContexts:A,onAddClipboardContext:P,onRemoveClipboardContext:M,videoContexts:D,onAddVideoContext:L,onRemoveVideoContext:Y,audioContexts:R,onAddAudioContext:U,onRemoveAudioContext:F,onUpdateAudioTranscript:K,listTerminals:O,fetchTerminalScrollback:B,disabled:q=!1}=e,[H,V]=(0,n.useState)(""),[J,W]=(0,n.useState)(!1),Q=(0,n.useRef)(null),[Z,$]=(0,n.useState)(""),[X,ee]=(0,n.useState)(!1),[et,ea]=(0,n.useState)([]),[er,en]=(0,n.useState)(!1),[eb,ex]=(0,n.useState)(null),[eg,ef]=(0,n.useState)(null),ev=!!O&&!!B,ew=(0,n.useCallback)(async()=>{if(O){en(!0),ex(null);try{let{terminals:e}=await O();ea(e)}catch(e){ex(String(e))}finally{en(!1)}}},[O]);(0,n.useEffect)(()=>{X&&ev&&ew()},[X,ev,ew]);let ek=(0,n.useCallback)(async e=>{if(B){ef(e);try{let{scrollback:t}=await B(e,50);$(t)}catch(e){ex("scrollback: ".concat(String(e)))}finally{ef(null)}}},[B]),[ez,eN]=(0,n.useState)(null),eS=(0,n.useCallback)(()=>{var e;let t=Q.current;if(!t)return void eN(null);let a=null!=(e=t.selectionStart)?e:H.length;eN(function(e,t,a){var r;let n=e.slice(0,t),o=_.exec(n);if(!o)return null;let l=null!=(r=o[2])?r:"",i=n.length-l.length-1,s=l.toLowerCase();return{tokenStart:i,tokenEnd:t,partial:l,matches:a.filter(e=>y(e,a).toLowerCase().startsWith(s)),allMatches:"all".startsWith(s)}}(H,a,p))},[H,p]),eC=(0,n.useCallback)(e=>{let t=Q.current;t&&ez&&(V(H.slice(0,ez.tokenStart)+"@".concat(e," ")+H.slice(ez.tokenEnd)),eN(null),requestAnimationFrame(()=>{let a=ez.tokenStart+e.length+2;t.setSelectionRange(a,a),t.focus()}))},[H,ez]),eI=(0,n.useCallback)(()=>{let e=Z.trim();e&&v&&(v({id:"tc-".concat(Date.now().toString(36),"-").concat(N()),label:function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Date.now(),a=e.split("\n").length,r=new Date(t),n=String(r.getHours()).padStart(2,"0"),o=String(r.getMinutes()).padStart(2,"0");return"terminal \xb7 ".concat(a," lines \xb7 ").concat(n,":").concat(o)}(e),text:e,pinnedAt:Date.now()}),$(""),ee(!1))},[Z,v]),eA=(0,n.useCallback)(async()=>{let e=H.trim();if(e&&!J&&!q){W(!0);try{await m(e),V("")}finally{W(!1)}}},[H,J,q,m]),eT=(0,n.useCallback)(e=>{if(ez&&"Enter"===e.key&&!e.shiftKey&&!e.metaKey&&!e.ctrlKey){let t=ez.matches[0];if(t){e.preventDefault(),eC(y(t,p));return}if(ez.allMatches){e.preventDefault(),eC("all");return}}if(ez&&"Escape"===e.key){e.preventDefault(),eN(null);return}"Enter"!==e.key||e.shiftKey||e.metaKey||e.ctrlKey||(e.preventDefault(),eA())},[eA,ez,eC,p]),eE=(0,n.useCallback)(e=>{var t,a;let r=Q.current,n="@".concat(e," ");if(!r)return void V(e=>"".concat(e).concat(n));let o=null!=(t=r.selectionStart)?t:H.length,l=null!=(a=r.selectionEnd)?a:H.length;V(H.slice(0,o)+n+H.slice(l)),requestAnimationFrame(()=>{let e=o+n.length;r.setSelectionRange(e,e),r.focus()})},[H]),eP=(0,n.useMemo)(()=>T(H,p),[H,p]),eM=E(H,p),eD=0===h&&"broadcast"===eM.mode?"No live panel":"broadcast"===eM.mode?"Send \xb7 ".concat(eM.targets.length):1===eM.targets.length?"Send \xb7 @".concat(y(eM.targets[0],p)):"Send \xb7 @".concat(eM.targets.length),eL=!q&&!J&&H.trim().length>0&&eM.targets.length>0,eY=(null!=(t=null==b?void 0:b.length)?t:0)>0,eR=(null!=(a=null==f?void 0:f.length)?a:0)>0,e_=(null!=(o=null==k?void 0:k.length)?o:0)>0,eU=(null!=(i=null==S?void 0:S.length)?i:0)>0,eF=(null!=(d=null==A?void 0:A.length)?d:0)>0,eK=(null!=(c=null==D?void 0:D.length)?c:0)>0,eO=(null!=(u=null==R?void 0:R.length)?u:0)>0,eB=(0,n.useRef)(null),eq=(0,n.useRef)(null),[eH,eV]=(0,n.useState)(!1),[eJ,eW]=(0,n.useState)(null),[eQ,eZ]=(0,n.useState)(!1),[e$,eX]=(0,n.useState)(null),eG=(0,n.useCallback)(async e=>{if(L){eV(!0),eW(null);try{var t;let a=await L(e);a.ok||eW(null!=(t=a.reason)?t:"video extract failed")}finally{eV(!1)}}},[L]),e0=(0,n.useCallback)(async e=>{if(U){eZ(!0),eX(null);try{var t;let a=await U(e);a.ok||eX(null!=(t=a.reason)?t:"audio extract failed")}finally{eZ(!1)}}},[U]),e1=(0,n.useCallback)((e,t)=>{if(!K)return;let a=window.prompt("Audio transcript:",t);null!==a&&K(e,a)},[K]),[e5,e3]=(0,n.useState)(""),[e2,e7]=(0,n.useState)(!1),[e4,e9]=(0,n.useState)(null),[e6,e8]=(0,n.useState)(!1),te=(0,n.useCallback)(async()=>{if(!C)return;let e=e5.trim();if(!e)return void e9("url required");e7(!0),e9(null);try{let a=await C(e);if(a.ok)e3(""),e8(!1);else{var t;e9(null!=(t=a.reason)?t:"fetch failed")}}finally{e7(!1)}},[e5,C]),[tt,ta]=(0,n.useState)(!1),[tr,tn]=(0,n.useState)(null),to=(0,n.useCallback)(async()=>{if(P){ta(!0),tn(null);try{var e;let t=await P();t.ok||tn(null!=(e=t.reason)?e:"paste failed")}finally{ta(!1)}}},[P]);return(0,r.jsxs)("div",{className:"border-t border-zinc-200/50 bg-zinc-50 px-3 py-2 dark:border-zinc-700/50 dark:bg-zinc-900/40",children:[eU&&(0,r.jsxs)("div",{className:"mb-2 flex flex-wrap items-center gap-1.5 text-[10px] text-zinc-500","data-testid":"showroom-url-context-list",children:[(0,r.jsx)("span",{children:"url:"}),null==S?void 0:S.map(e=>(0,r.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-full border border-sky-300 bg-white px-2 py-0.5 text-[11px] font-medium text-sky-700 dark:border-sky-700 dark:bg-zinc-800 dark:text-sky-300","data-testid":"showroom-url-chip-".concat(e.id),title:"".concat(e.url,"\n\n").concat(e.text.slice(0,200)).concat(e.text.length>200?"…":""),children:[(0,r.jsx)("span",{className:"max-w-[220px] truncate",children:e.label}),I&&(0,r.jsx)("button",{type:"button",onClick:()=>I(e.id),disabled:q||J,className:"rounded-full p-0.5 hover:bg-sky-100 disabled:cursor-not-allowed disabled:opacity-50 dark:hover:bg-sky-900/50","aria-label":"Remove url context ".concat(e.label),"data-testid":"showroom-url-remove-".concat(e.id),children:(0,r.jsx)(l.A,{className:"size-2.5","aria-hidden":!0})})]},e.id))]}),eK&&(0,r.jsxs)("div",{className:"mb-2 flex flex-wrap items-center gap-1.5 text-[10px] text-zinc-500","data-testid":"showroom-video-context-list",children:[(0,r.jsx)("span",{children:"video:"}),null==D?void 0:D.map(e=>(0,r.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-full border border-purple-300 bg-white px-2 py-0.5 text-[11px] font-medium text-purple-700 dark:border-purple-700 dark:bg-zinc-800 dark:text-purple-300","data-testid":"showroom-video-chip-".concat(e.id),title:"".concat(e.filename," \xb7 ").concat(e.widthPx,"x").concat(e.heightPx," \xb7 ").concat(e.durationSec,"s"),children:[(0,r.jsx)(eo.A,{className:"size-3","aria-hidden":!0}),(0,r.jsx)("span",{className:"max-w-[220px] truncate",children:e.label}),Y&&(0,r.jsx)("button",{type:"button",onClick:()=>Y(e.id),disabled:q||J,className:"rounded-full p-0.5 hover:bg-purple-100 disabled:cursor-not-allowed disabled:opacity-50 dark:hover:bg-purple-900/50","aria-label":"Remove video context ".concat(e.label),"data-testid":"showroom-video-remove-".concat(e.id),children:(0,r.jsx)(l.A,{className:"size-2.5","aria-hidden":!0})})]},e.id))]}),eO&&(0,r.jsxs)("div",{className:"mb-2 flex flex-wrap items-center gap-1.5 text-[10px] text-zinc-500","data-testid":"showroom-audio-context-list",children:[(0,r.jsx)("span",{children:"audio:"}),null==R?void 0:R.map(e=>(0,r.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-full border border-cyan-300 bg-white px-2 py-0.5 text-[11px] font-medium text-cyan-700 dark:border-cyan-700 dark:bg-zinc-800 dark:text-cyan-300","data-testid":"showroom-audio-chip-".concat(e.id),title:"".concat(e.filename," \xb7 ").concat(e.durationSec,"s \xb7 ").concat(e.transcript?"transcript present":"click to add transcript"),children:[(0,r.jsx)(el.A,{className:"size-3","aria-hidden":!0}),(0,r.jsxs)("button",{type:"button",onClick:()=>e1(e.id,e.transcript),disabled:q||J||!K,className:"max-w-[220px] truncate hover:underline disabled:cursor-default disabled:no-underline","data-testid":"showroom-audio-edit-".concat(e.id),children:[e.label,e.transcript?" \xb7 \uD83D\uDCDD":""]}),F&&(0,r.jsx)("button",{type:"button",onClick:()=>F(e.id),disabled:q||J,className:"rounded-full p-0.5 hover:bg-cyan-100 disabled:cursor-not-allowed disabled:opacity-50 dark:hover:bg-cyan-900/50","aria-label":"Remove audio context ".concat(e.label),"data-testid":"showroom-audio-remove-".concat(e.id),children:(0,r.jsx)(l.A,{className:"size-2.5","aria-hidden":!0})})]},e.id))]}),eJ&&(0,r.jsx)("div",{className:"mb-2 px-2 py-1 text-[11px] text-purple-700 dark:text-purple-300","data-testid":"showroom-video-error",children:eJ}),e$&&(0,r.jsx)("div",{className:"mb-2 px-2 py-1 text-[11px] text-cyan-700 dark:text-cyan-300","data-testid":"showroom-audio-error",children:e$}),eF&&(0,r.jsxs)("div",{className:"mb-2 flex flex-wrap items-center gap-1.5 text-[10px] text-zinc-500","data-testid":"showroom-clipboard-context-list",children:[(0,r.jsx)("span",{children:"clip:"}),null==A?void 0:A.map(e=>(0,r.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-full border border-emerald-300 bg-white px-2 py-0.5 text-[11px] font-medium text-emerald-700 dark:border-emerald-700 dark:bg-zinc-800 dark:text-emerald-300","data-testid":"showroom-clipboard-chip-".concat(e.id),title:e.text.slice(0,200),children:[(0,r.jsx)("span",{className:"max-w-[220px] truncate",children:e.label}),M&&(0,r.jsx)("button",{type:"button",onClick:()=>M(e.id),disabled:q||J,className:"rounded-full p-0.5 hover:bg-emerald-100 disabled:cursor-not-allowed disabled:opacity-50 dark:hover:bg-emerald-900/50","aria-label":"Remove clipboard context ".concat(e.label),"data-testid":"showroom-clipboard-remove-".concat(e.id),children:(0,r.jsx)(l.A,{className:"size-2.5","aria-hidden":!0})})]},e.id))]}),e6&&C&&(0,r.jsxs)("div",{className:"mb-2 rounded border border-sky-200 bg-sky-50 p-2 dark:border-sky-800 dark:bg-sky-900/20",children:[(0,r.jsxs)("div",{className:"flex items-center gap-1",children:[(0,r.jsx)("input",{type:"url",value:e5,onChange:e=>e3(e.target.value),placeholder:"https://...",disabled:e2,className:"flex-1 rounded border border-sky-300 bg-white px-2 py-1 text-xs disabled:opacity-60 dark:border-sky-700 dark:bg-zinc-900","data-testid":"showroom-url-input"}),(0,r.jsx)("button",{type:"button",onClick:te,disabled:e2||!e5.trim(),className:"rounded bg-sky-600 px-2 py-1 text-xs text-white hover:bg-sky-700 disabled:cursor-not-allowed disabled:opacity-50","data-testid":"showroom-url-fetch",children:e2?"…":"fetch"}),(0,r.jsx)("button",{type:"button",onClick:()=>{e8(!1),e3(""),e9(null)},className:"rounded p-1 text-zinc-500 hover:bg-zinc-100 dark:hover:bg-zinc-800","aria-label":"Close url input",children:(0,r.jsx)(l.A,{className:"size-3","aria-hidden":!0})})]}),e4&&(0,r.jsx)("p",{className:"mt-1 text-[10px] text-rose-600","data-testid":"showroom-url-error",children:e4})]}),tr&&(0,r.jsxs)("p",{className:"mb-2 text-[10px] text-rose-600","data-testid":"showroom-clipboard-error",children:["clipboard: ",tr]}),e_&&(0,r.jsxs)("div",{className:"mb-2 flex flex-wrap items-center gap-1.5 text-[10px] text-zinc-500","data-testid":"showroom-prior-answer-list",children:[(0,r.jsx)(G.A,{className:"size-3","aria-hidden":!0}),(0,r.jsx)("span",{children:"prior:"}),null==k?void 0:k.map(e=>{let t=!1!==e.enabled;return(0,r.jsxs)("span",{className:"".concat("inline-flex items-center gap-1 rounded-full px-2 py-0.5 text-[11px] font-medium transition-opacity"," ").concat(t?"border border-indigo-300 bg-white text-indigo-700 dark:border-indigo-700 dark:bg-zinc-800 dark:text-indigo-300":"border border-dashed border-zinc-300 bg-zinc-50 text-zinc-400 line-through opacity-60 dark:border-zinc-600 dark:bg-zinc-900 dark:text-zinc-500"),"data-testid":"showroom-prior-chip-".concat(e.id),"data-enabled":t?"true":"false",title:e.text.slice(0,200),children:[z?(0,r.jsx)("button",{type:"button",onClick:()=>z(e.id),disabled:q||J,className:"max-w-[200px] truncate text-left hover:underline disabled:cursor-not-allowed disabled:opacity-50","aria-label":"".concat(t?"Disable":"Enable"," prior answer ").concat(e.label),"aria-pressed":t,"data-testid":"showroom-prior-toggle-".concat(e.id),children:e.label}):(0,r.jsx)("span",{className:"max-w-[200px] truncate",children:e.label}),j&&(0,r.jsx)("button",{type:"button",onClick:()=>j(e.id),disabled:q||J,className:"rounded-full p-0.5 hover:bg-indigo-100 disabled:cursor-not-allowed disabled:opacity-50 dark:hover:bg-indigo-900/50","aria-label":"Remove prior answer ".concat(e.label),"data-testid":"showroom-prior-remove-".concat(e.id),children:(0,r.jsx)(l.A,{className:"size-2.5","aria-hidden":!0})})]},e.id)})]}),eR&&(0,r.jsxs)("div",{className:"mb-2 flex flex-wrap items-center gap-1.5 text-[10px] text-zinc-500","data-testid":"showroom-terminal-context-list",children:[(0,r.jsx)(ei.A,{className:"size-3","aria-hidden":!0}),(0,r.jsx)("span",{children:"terminal:"}),null==f?void 0:f.map(e=>(0,r.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-full border border-violet-300 bg-white px-2 py-0.5 text-[11px] font-medium text-violet-700 dark:border-violet-700 dark:bg-zinc-800 dark:text-violet-300","data-testid":"showroom-terminal-chip-".concat(e.id),title:e.text.slice(0,200),children:[(0,r.jsx)("span",{className:"max-w-[200px] truncate",children:e.label}),w&&(0,r.jsx)("button",{type:"button",onClick:()=>w(e.id),disabled:q||J,className:"rounded-full p-0.5 hover:bg-violet-100 disabled:cursor-not-allowed disabled:opacity-50 dark:hover:bg-violet-900/50","aria-label":"Remove terminal context ".concat(e.label),"data-testid":"showroom-terminal-remove-".concat(e.id),children:(0,r.jsx)(l.A,{className:"size-2.5","aria-hidden":!0})})]},e.id))]}),X&&v&&(0,r.jsxs)("div",{className:"mb-2 rounded-md border border-violet-300 bg-violet-50/40 p-2 dark:border-violet-700 dark:bg-violet-900/20","data-testid":"showroom-terminal-pin-draft",children:[(0,r.jsxs)("div",{className:"mb-1 flex items-center justify-between text-[10px] text-violet-700 dark:text-violet-300",children:[(0,r.jsx)("span",{children:ev?"active terminal 선택 또는 paste \xb7 Pin 으로 broadcast prefix 추가":"terminal output 을 paste \xb7 Pin 으로 broadcast prefix 추가"}),(0,r.jsx)("button",{type:"button",onClick:()=>{ee(!1),$("")},className:"rounded p-0.5 hover:bg-violet-100 dark:hover:bg-violet-900/40","aria-label":"Cancel pin",children:(0,r.jsx)(l.A,{className:"size-3","aria-hidden":!0})})]}),ev&&(0,r.jsxs)("div",{className:"mb-2 rounded border border-violet-200 bg-white/80 p-1.5 dark:border-violet-700 dark:bg-zinc-900/60","data-testid":"showroom-terminal-picker",children:[(0,r.jsxs)("div",{className:"mb-1 flex items-center justify-between text-[10px] text-violet-600 dark:text-violet-300",children:[(0,r.jsxs)("span",{children:["active terminals",er&&" \xb7 loading…",!er&&0===et.length&&" \xb7 없음"]}),(0,r.jsx)("button",{type:"button",onClick:()=>void ew(),disabled:er,className:"inline-flex items-center gap-0.5 rounded p-0.5 hover:bg-violet-100 disabled:opacity-50 dark:hover:bg-violet-900/40","aria-label":"Refresh terminals list","data-testid":"showroom-terminal-picker-refresh",children:(0,r.jsx)(es.A,{className:"size-3 ".concat(er?"animate-spin":""),"aria-hidden":!0})})]}),eb&&(0,r.jsx)("div",{className:"mb-1 text-[10px] text-rose-600 dark:text-rose-300",children:eb}),et.length>0&&(0,r.jsx)("div",{className:"flex flex-wrap gap-1",children:et.map(e=>(0,r.jsxs)("button",{type:"button",onClick:()=>void ek(e.id),disabled:eg===e.id,className:"inline-flex max-w-[220px] items-center gap-1 truncate rounded-full border border-violet-300 bg-white px-2 py-0.5 text-[10px] text-violet-700 hover:bg-violet-100 disabled:cursor-not-allowed disabled:opacity-50 dark:border-violet-700 dark:bg-zinc-800 dark:text-violet-300 dark:hover:bg-violet-900/40",title:"".concat(e.name||e.id).concat(e.status?" \xb7 ".concat(e.status):""),"data-testid":"showroom-terminal-picker-".concat(e.id),children:[(0,r.jsx)(ei.A,{className:"size-3","aria-hidden":!0}),(0,r.jsxs)("span",{className:"truncate",children:[e.name||e.id,!e.alive&&" (exited)"]})]},e.id))})]}),(0,r.jsx)("textarea",{value:Z,onChange:e=>$(e.target.value),rows:4,placeholder:"paste terminal output here…",className:"w-full resize-y rounded-md border border-violet-200 bg-white px-2 py-1.5 font-mono text-[11px] focus:outline-none focus:ring-2 focus:ring-violet-400 dark:border-violet-700 dark:bg-zinc-900","data-testid":"showroom-terminal-draft-textarea"}),(0,r.jsx)("div",{className:"mt-1 flex justify-end",children:(0,r.jsxs)("button",{type:"button",onClick:eI,disabled:!Z.trim(),className:"inline-flex items-center gap-1 rounded-md bg-violet-700 px-2 py-1 text-[11px] font-medium text-white hover:bg-violet-600 disabled:cursor-not-allowed disabled:opacity-50","data-testid":"showroom-terminal-pin-confirm",children:[(0,r.jsx)(ei.A,{className:"size-3","aria-hidden":!0}),"Pin"]})})]}),eY&&(0,r.jsxs)("div",{className:"mb-2 flex flex-wrap items-center gap-1.5 text-[10px] text-zinc-500","data-testid":"showroom-attachment-list",children:[(0,r.jsx)(ed.A,{className:"size-3","aria-hidden":!0}),(0,r.jsx)("span",{children:"attached:"}),null==b?void 0:b.map(e=>(0,r.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-full border border-sky-300 bg-white px-2 py-0.5 text-[11px] font-medium text-sky-700 dark:border-sky-700 dark:bg-zinc-800 dark:text-sky-300","data-testid":"showroom-attachment-chip-".concat(e.id),children:[(0,r.jsx)("span",{className:"max-w-[160px] truncate",children:e.filename}),g&&(0,r.jsx)("button",{type:"button",onClick:()=>g(e.id),disabled:q||J,className:"rounded-full p-0.5 hover:bg-sky-100 disabled:cursor-not-allowed disabled:opacity-50 dark:hover:bg-sky-900/50","aria-label":"Remove attachment ".concat(e.filename),"data-testid":"showroom-attachment-remove-".concat(e.id),children:(0,r.jsx)(l.A,{className:"size-2.5","aria-hidden":!0})})]},e.id))]}),p.length>0&&(0,r.jsxs)("div",{className:"mb-2 flex flex-wrap items-center gap-1.5 text-[10px] text-zinc-500","data-testid":"showroom-mention-picker",children:[(0,r.jsx)(ec.A,{className:"size-3","aria-hidden":!0}),(0,r.jsx)("span",{children:"mention:"}),p.map(e=>{let t=y(e,p);return(0,r.jsxs)("button",{type:"button",onClick:()=>eE(t),disabled:q||J,className:"inline-flex items-center rounded-full border border-zinc-300 bg-white px-2 py-0.5 text-[11px] font-medium text-zinc-700 hover:bg-zinc-100 disabled:cursor-not-allowed disabled:opacity-50 dark:border-zinc-700 dark:bg-zinc-800 dark:text-zinc-200 dark:hover:bg-zinc-700","data-testid":"showroom-mention-chip-".concat(t),"aria-label":"Mention ".concat(t," in input"),children:["@",t]},e.id)}),(0,r.jsx)("button",{type:"button",onClick:()=>eE("all"),disabled:q||J,className:"inline-flex items-center rounded-full border border-emerald-300 bg-white px-2 py-0.5 text-[11px] font-medium text-emerald-700 hover:bg-emerald-50 disabled:cursor-not-allowed disabled:opacity-50 dark:border-emerald-700 dark:bg-zinc-800 dark:text-emerald-300 dark:hover:bg-emerald-900/30","data-testid":"showroom-mention-chip-all","aria-label":"Mention all (explicit broadcast)",children:"@all"})]}),(eP.targets.length>0||eP.broadcastAll||eP.unknown.length>0)&&(0,r.jsxs)("div",{className:"mb-1 flex flex-wrap items-center gap-1 text-[10px]","data-testid":"showroom-mention-detected-strip","aria-label":"Detected mentions in input",children:[(0,r.jsx)("span",{className:"text-zinc-500",children:"detected:"}),eP.broadcastAll&&(0,r.jsxs)("span",{className:"inline-flex items-center gap-0.5 rounded-full border border-emerald-400 bg-emerald-50 px-1.5 py-0.5 text-emerald-700 dark:border-emerald-700 dark:bg-emerald-900/40 dark:text-emerald-300","data-testid":"showroom-mention-detected-all",title:"explicit broadcast (mute/freeze 무시)",children:[(0,r.jsx)(ec.A,{className:"size-2.5","aria-hidden":!0}),"all"]}),eP.targets.map(e=>{let t=y(e,p),a="agent"===e.kind;return(0,r.jsxs)("span",{className:"inline-flex items-center gap-0.5 rounded-full px-1.5 py-0.5 ".concat(a?"border border-amber-400 bg-amber-50 text-amber-700 dark:border-amber-700 dark:bg-amber-900/40 dark:text-amber-300":"border border-indigo-400 bg-indigo-50 text-indigo-700 dark:border-indigo-700 dark:bg-indigo-900/40 dark:text-indigo-300"),"data-testid":"showroom-mention-detected-".concat(t),title:"".concat(a?"agent CLI":"chat"," panel \xb7 ").concat(e.state),children:[a?(0,r.jsx)(s.A,{className:"size-2.5","aria-hidden":!0}):(0,r.jsx)(ec.A,{className:"size-2.5","aria-hidden":!0}),t]},e.id)}),eP.unknown.map(e=>(0,r.jsxs)("span",{className:"inline-flex items-center gap-0.5 rounded-full border border-rose-300 bg-rose-50 px-1.5 py-0.5 text-rose-700 line-through dark:border-rose-700 dark:bg-rose-900/40 dark:text-rose-300","data-testid":"showroom-mention-detected-unknown-".concat(e),title:"Unknown mention — panel 없음",children:[(0,r.jsx)(ec.A,{className:"size-2.5","aria-hidden":!0}),e]},"unknown-".concat(e)))]}),ez&&(ez.matches.length>0||ez.allMatches)&&(0,r.jsxs)("div",{className:"mb-1 max-h-32 overflow-y-auto rounded-md border border-zinc-300 bg-white text-xs shadow-sm dark:border-zinc-700 dark:bg-zinc-800","data-testid":"showroom-mention-typeahead",children:[ez.allMatches&&(0,r.jsxs)("button",{type:"button",onClick:()=>eC("all"),className:"block w-full px-3 py-1.5 text-left text-emerald-700 hover:bg-emerald-50 dark:text-emerald-300 dark:hover:bg-emerald-900/30","data-testid":"showroom-mention-typeahead-all",children:[(0,r.jsx)("span",{className:"font-medium",children:"@all"}),(0,r.jsx)("span",{className:"ml-2 text-[10px] text-zinc-500",children:"explicit broadcast"})]}),ez.matches.map((e,t)=>{let a=y(e,p);return(0,r.jsxs)("button",{type:"button",onClick:()=>eC(a),className:"block w-full px-3 py-1.5 text-left hover:bg-zinc-100 dark:hover:bg-zinc-700 ".concat(0!==t||ez.allMatches?"":"bg-zinc-50 font-medium dark:bg-zinc-700/40"),"data-testid":"showroom-mention-typeahead-".concat(a),children:["@",a,(0,r.jsx)("span",{className:"ml-2 text-[10px] text-zinc-500",children:e.state})]},e.id)})]}),(0,r.jsxs)("div",{className:"flex items-end gap-2",children:[v&&(0,r.jsx)("button",{type:"button",onClick:()=>ee(e=>!e),disabled:q||J,className:"rounded p-1.5 text-violet-600 hover:bg-violet-100 disabled:cursor-not-allowed disabled:opacity-50 dark:text-violet-300 dark:hover:bg-violet-900/40","aria-label":"Pin terminal context",title:"Pin terminal output as context","aria-pressed":X,"data-testid":"showroom-terminal-pin-toggle",children:(0,r.jsx)(ei.A,{className:"size-3.5","aria-hidden":!0})}),C&&(0,r.jsx)("button",{type:"button",onClick:()=>e8(e=>!e),disabled:q||J,className:"rounded p-1.5 text-sky-600 hover:bg-sky-100 disabled:cursor-not-allowed disabled:opacity-50 dark:text-sky-300 dark:hover:bg-sky-900/40","aria-label":"Add URL context",title:"Fetch URL as context","aria-pressed":e6,"data-testid":"showroom-url-pin-toggle",children:(0,r.jsx)(eu.A,{className:"size-3.5","aria-hidden":!0})}),P&&(0,r.jsx)("button",{type:"button",onClick:to,disabled:q||J||tt,className:"rounded p-1.5 text-emerald-600 hover:bg-emerald-100 disabled:cursor-not-allowed disabled:opacity-50 dark:text-emerald-300 dark:hover:bg-emerald-900/40","aria-label":"Pin clipboard text",title:"Read clipboard text as context","data-testid":"showroom-clipboard-pin",children:(0,r.jsx)(em.A,{className:"size-3.5","aria-hidden":!0})}),L&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("input",{ref:eB,type:"file",accept:"video/*",className:"hidden","data-testid":"showroom-video-input",onChange:e=>{var t;let a=null==(t=e.target.files)?void 0:t[0];a&&eG(a),e.target.value=""}}),(0,r.jsx)("button",{type:"button",onClick:()=>{var e;return null==(e=eB.current)?void 0:e.click()},disabled:q||J||eH,className:"rounded p-1.5 text-purple-600 hover:bg-purple-100 disabled:cursor-not-allowed disabled:opacity-50 dark:text-purple-300 dark:hover:bg-purple-900/40","aria-label":"Pin video file as context",title:"Pick video file (keyframe extracted via canvas)","data-testid":"showroom-video-pin",children:(0,r.jsx)(eo.A,{className:"size-3.5","aria-hidden":!0})})]}),U&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("input",{ref:eq,type:"file",accept:"audio/*",className:"hidden","data-testid":"showroom-audio-input",onChange:e=>{var t;let a=null==(t=e.target.files)?void 0:t[0];a&&e0(a),e.target.value=""}}),(0,r.jsx)("button",{type:"button",onClick:()=>{var e;return null==(e=eq.current)?void 0:e.click()},disabled:q||J||eQ,className:"rounded p-1.5 text-cyan-600 hover:bg-cyan-100 disabled:cursor-not-allowed disabled:opacity-50 dark:text-cyan-300 dark:hover:bg-cyan-900/40","aria-label":"Pin audio file as context",title:"Pick audio file (metadata + optional transcript)","data-testid":"showroom-audio-pin",children:(0,r.jsx)(el.A,{className:"size-3.5","aria-hidden":!0})})]}),x&&(0,r.jsx)(eh.u,{onAttached:x}),x&&(0,r.jsx)(ey,{onAttachToSession:e=>x([e])}),x&&(0,r.jsx)(ej.z,{}),(0,r.jsx)("textarea",{ref:Q,id:"showroom-broadcast-input",value:H,onChange:e=>{V(e.target.value),requestAnimationFrame(eS)},onSelect:()=>eS(),onKeyDown:eT,onBlur:()=>{setTimeout(()=>eN(null),100)},rows:2,disabled:q||J,placeholder:h>0?"".concat(h," live panel 에 broadcast — 또는 @name 으로 targeted (Enter)…"):"모든 panel 이 mute \xb7 live 로 전환하거나 panel 추가",className:"flex-1 resize-none rounded-md border border-zinc-300 bg-white px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-zinc-400 disabled:cursor-not-allowed disabled:opacity-60 dark:border-zinc-700 dark:bg-zinc-800","aria-label":"Showroom broadcast input","data-testid":"showroom-input"}),(0,r.jsxs)("button",{type:"button",onClick:()=>void eA(),disabled:!eL,className:"inline-flex h-9 items-center gap-1.5 rounded-md bg-zinc-900 px-3 text-xs font-medium text-white hover:bg-zinc-700 disabled:cursor-not-allowed disabled:opacity-50 dark:bg-zinc-100 dark:text-zinc-900 dark:hover:bg-zinc-300","aria-label":"broadcast"===eM.mode?"Broadcast to all live panels":"Targeted send to ".concat(eM.targets.length," panel(s)"),"data-testid":"showroom-send",children:[(0,r.jsx)(ep.A,{className:"size-3.5","aria-hidden":!0}),eD]})]})]})}var eN=a(10410);function eS(e){return e&&"object"==typeof e?"string"!=typeof e.requestId||"string"!=typeof e.prompt?null:{requestId:e.requestId,prompt:e.prompt,..."string"==typeof e.detail?{detail:e.detail}:{},yesLabel:"string"==typeof e.yesLabel?e.yesLabel:"Yes",noLabel:"string"==typeof e.noLabel?e.noLabel:"No"}:null}function eC(e){return e&&"object"==typeof e&&"string"==typeof e.requestId?e.requestId:null}function eI(e){let{pending:t,submitting:a,error:n,onAnswer:o}=e;return t?(0,r.jsxs)("div",{role:"alertdialog","aria-label":"Approval request","data-testid":"hitl-banner","data-request-id":t.requestId,className:"fixed left-1/2 top-4 z-50 flex w-[min(calc(100vw-2rem),36rem)] -translate-x-1/2 flex-col gap-3 rounded-2xl border border-amber-300/70 bg-amber-50/95 p-4 shadow-2xl ring-1 ring-amber-400/30 backdrop-blur-sm dark:border-amber-700/60 dark:bg-amber-950/90 dark:ring-amber-700/50",children:[(0,r.jsxs)("div",{className:"flex items-start gap-3",children:[(0,r.jsx)("div",{className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-full bg-amber-200 text-amber-900 dark:bg-amber-800/80 dark:text-amber-100",children:(0,r.jsx)("span",{"aria-hidden":!0,className:"text-base",children:"⚠"})}),(0,r.jsxs)("div",{className:"flex-1",children:[(0,r.jsx)("div",{className:"text-sm font-semibold text-amber-900 dark:text-amber-100",children:t.prompt}),t.detail&&(0,r.jsx)("div",{className:"mt-1 break-words text-xs text-amber-800/80 dark:text-amber-200/80",children:t.detail})]})]}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)("button",{type:"button",onClick:()=>o(!1),disabled:a,"data-testid":"hitl-banner-deny",className:"flex-1 rounded-lg border border-amber-300 bg-white px-3 py-1.5 text-sm font-medium text-amber-900 transition hover:bg-amber-100 disabled:cursor-not-allowed disabled:opacity-50 dark:border-amber-700 dark:bg-amber-900/40 dark:text-amber-100 dark:hover:bg-amber-800/60",children:t.noLabel}),(0,r.jsx)("button",{type:"button",onClick:()=>o(!0),disabled:a,"data-testid":"hitl-banner-approve",className:"flex-1 rounded-lg border border-amber-500 bg-amber-500 px-3 py-1.5 text-sm font-semibold text-white transition hover:bg-amber-600 disabled:cursor-not-allowed disabled:opacity-50",children:t.yesLabel})]}),n&&(0,r.jsx)("div",{role:"alert","data-testid":"hitl-banner-error",className:"text-xs text-red-700 dark:text-red-300",children:n})]}):null}function eA(){let e=(0,eN.Qj)(),{config:t}=(0,v.Q)(),{pending:a,submitting:o,error:l,submit:i}=function(e){let{client:t,baseUrl:a,fetchImpl:r,onDebug:o}=e,[l,i]=(0,n.useState)(null),[s,d]=(0,n.useState)(!1),[c,u]=(0,n.useState)(null),m=(0,n.useRef)(null!=r?r:"undefined"!=typeof fetch?fetch:null);(0,n.useEffect)(()=>{m.current=null!=r?r:"undefined"!=typeof fetch?fetch:null},[r]),(0,n.useEffect)(()=>{if(t)return t.subscribeEvents({topics:["hitl.banner."],onEvent:e=>{if("hitl.banner.show"===e.kind||"hitl.banner.cancel"===e.kind){if("hitl.banner.show"===e.kind){let t=eS(e.detail);t&&(null==o||o("hitl.banner.show",{requestId:t.requestId}))}else{let t=eC(e.detail);null==o||o("hitl.banner.cancel",{requestId:null!=t?t:"(missing)"})}i(t=>(function(e,t,a){if("hitl.banner.show"===t){var r;return null!=(r=eS(a))?r:e}if("hitl.banner.cancel"===t){if(!e)return e;let t=eC(a);return null!==t&&t!==e.requestId?e:null}return e})(t,e.kind,e.detail)),"hitl.banner.show"===e.kind&&u(null)}},onError:e=>null==o?void 0:o("hitl.banner.sse-error",{msg:e.message})})},[t,o]);let p=(0,n.useCallback)(async e=>{var t,r,n;if(!l||s)return;if(!a)return void u("daemon baseUrl not configured");if(!m.current)return void u("fetch unavailable");d(!0),u(null);let c=(t=l.requestId,"".concat(a.replace(/\/$/,""),"/v1/hitl/callback/").concat(encodeURIComponent(t)));null==o||o("hitl.banner.submit",{requestId:l.requestId,answer:e});try{let t=(r=(await m.current(c,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({answer:e})})).status)>=200&&r<300||404===r?{kind:"cleared"}:{kind:"error",message:"HTTP ".concat(r)};"cleared"===t.kind?i(null):u(t.message)}catch(e){u(null!=(n=e.message)?n:"submit failed")}finally{d(!1)}},[a,o,l,s]);return{pending:l,submitting:s,error:c,submit:p}}({client:e,baseUrl:t.baseUrl,onDebug:(e,t)=>(0,J.cY)(e,t)});return(0,r.jsx)(eI,{pending:a,submitting:o,error:l,onAnswer:e=>{i(e)}})}function eT(e){if(!e||"object"!=typeof e||"string"!=typeof e.sessionId||!Array.isArray(e.candidates)||6!==e.candidates.length||"number"!=typeof e.version||"number"!=typeof e.generatedAt)return null;for(let t of e.candidates)if(!t||"object"!=typeof t||"string"!=typeof t.label||"number"!=typeof t.confidence)return null;return e}function eE(e){let{label:t,confidence:a,reason:n,disabled:o,onTap:l}=e,i=Number.isNaN(a)||!Number.isFinite(a)||a<=0?100:a>=.9?600:a>=.7?500:a>=.5?400:a>=.3?300:a>=.15?200:100,s=function(e){switch(e){case 600:return"bg-emerald-600 hover:bg-emerald-700 text-white border-emerald-600";case 500:return"bg-emerald-500 hover:bg-emerald-600 text-white border-emerald-500";case 400:return"bg-emerald-400 hover:bg-emerald-500 text-emerald-950 border-emerald-400";case 300:return"bg-emerald-300 hover:bg-emerald-400 text-emerald-950 border-emerald-300";case 200:return"bg-emerald-200 hover:bg-emerald-300 text-emerald-950 border-emerald-200";default:return"bg-zinc-100 hover:bg-zinc-200 text-zinc-700 border-zinc-200 dark:bg-zinc-800 dark:hover:bg-zinc-700 dark:text-zinc-300 dark:border-zinc-700"}}(i),d="".concat(Math.round(100*a),"%");return(0,r.jsxs)("button",{type:"button",onClick:l,disabled:o,"data-testid":"intent-button-".concat(t),"data-confidence":a.toFixed(3),"data-intensity":i,title:n?"".concat(t," \xb7 ").concat(d," \xb7 ").concat(n):"".concat(t," \xb7 ").concat(d),"aria-label":"".concat(t," \xb7 신뢰도 ").concat(d).concat(n?" \xb7 ".concat(n):""),className:"flex flex-col items-center justify-center rounded-lg border px-3 py-2 text-xs font-medium shadow-sm transition disabled:cursor-not-allowed disabled:opacity-50 ".concat(s),children:[(0,r.jsx)("span",{className:"leading-tight",children:t}),(0,r.jsx)("span",{className:"mt-0.5 text-[10px] opacity-70",children:d})]})}var eP=a(15635);function eM(e){var t;let{ranking:a,submitting:n,error:o,onTap:l,collapsed:i=!1,onToggleCollapsed:s}=e,d=a?[...a.candidates].sort((e,t)=>t.confidence-e.confidence):[{label:"계속 진행",confidence:0,reason:"pending"},{label:"오토파일럿",confidence:0,reason:"pending"},{label:"추가 보완",confidence:0,reason:"pending"},{label:"diff 보여줘",confidence:0,reason:"pending"},{label:"승인",confidence:0,reason:"pending"},{label:"잠시 멈춤",confidence:0,reason:"pending"}];return(0,r.jsxs)("div",{"data-testid":"intent-panel","data-version":null!=(t=null==a?void 0:a.version)?t:0,"data-collapsed":i?"true":"false",className:"flex flex-col gap-2 border-y border-zinc-200 bg-white/70 px-3 py-2 backdrop-blur-sm dark:border-zinc-800 dark:bg-zinc-900/70",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between",children:[(0,r.jsx)("span",{className:"text-[11px] font-medium text-zinc-500 dark:text-zinc-400",children:"intent \xb7 다음 행동"}),(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[a&&(0,r.jsxs)("span",{className:"text-[10px] text-zinc-400 dark:text-zinc-500","data-testid":"intent-panel-version",children:["v",a.version]}),s&&(0,r.jsx)("button",{type:"button",onClick:s,"aria-label":i?"Expand intent panel":"Collapse intent panel","data-testid":"intent-panel-toggle",className:"rounded p-0.5 text-[11px] text-zinc-400 hover:bg-zinc-100 hover:text-zinc-700 dark:text-zinc-500 dark:hover:bg-zinc-800 dark:hover:text-zinc-200",children:i?"▼":"▲"})]})]}),!i&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{role:"group","aria-label":"Intent suggestions",className:"grid grid-cols-3 gap-1.5 sm:grid-cols-6",children:d.map(e=>(0,r.jsx)(eE,{label:e.label,confidence:e.confidence,reason:e.reason,disabled:n||!a,onTap:()=>l(e.label)},e.label))}),o&&(0,r.jsx)("div",{role:"alert","data-testid":"intent-panel-error",className:"text-[11px] text-red-600 dark:text-red-400",children:o})]})]})}function eD(e){let{sessionId:t,onTap:a}=e,o=(0,eN.Qj)(),{config:l}=(0,v.Q)(),{ranking:i,submitting:s,error:d,submitTap:c}=function(e){let{client:t,sessionId:a,baseUrl:r,buildContext:o,fetchImpl:l,onDebug:i}=e,[s,d]=(0,n.useState)(null),[c,u]=(0,n.useState)(!1),[m,p]=(0,n.useState)(null),h=(0,n.useRef)(null!=l?l:"undefined"!=typeof fetch?fetch:null);(0,n.useEffect)(()=>{h.current=null!=l?l:"undefined"!=typeof fetch?fetch:null},[l]),(0,n.useEffect)(()=>{a||d(null)},[a]),(0,n.useEffect)(()=>{var e,n;if(!t||!a)return;let o="".concat(r.replace(/\/$/,""),"/v1/intent-prediction/").concat(encodeURIComponent(a));return null==i||i("intent.snapshot.attempt",{url:o}),null==(n=h.current)||null==(e=n.call(h,o,{method:"GET"}))||e.then(async e=>{if(e.ok)try{let t=await e.json(),r=eT(t);r&&r.sessionId===a&&(null==i||i("intent.sse.ranking",{version:r.version}),d(r))}catch(e){}}).catch(()=>{}),t.subscribeEvents({topics:["intent-prediction."],kinds:["intent-prediction.ranking"],onEvent:e=>{if("intent-prediction.ranking"===e.kind){let t=eT(e.detail);t&&t.sessionId===a&&(null==i||i("intent.sse.ranking",{version:t.version}),d(t))}else{let t=eT(e);t&&t.sessionId===a&&(null==i||i("intent.sse.ranking",{version:t.version}),d(t))}},onError:e=>null==i?void 0:i("intent.sse.error",{msg:e.message})})},[t,a,r,i]);let b=(0,n.useCallback)(async e=>{var t,n;if(!a||c)return;if(!r)return void p("daemon baseUrl not configured");if(!h.current)return void p("fetch unavailable");let l=null!=(t=null==o?void 0:o())?t:{sessionId:a,lastTurnSummary:"",lastErr:null,progressPct:0,fileEditCount:0,idleMs:0};l.sessionId!==a&&(l.sessionId=a),u(!0),p(null),null==i||i("intent.feedback.submit",{label:e,sessionId:a});try{let t=await h.current("".concat(r.replace(/\/$/,""),"/v1/intent-prediction/").concat(encodeURIComponent(a),"/feedback"),{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({chosen:e,context:l})});t.ok||(p("HTTP ".concat(t.status)),null==i||i("intent.feedback.error",{status:t.status}))}catch(t){let e=null!=(n=t.message)?n:"submit failed";p(e),null==i||i("intent.feedback.error",{msg:e})}finally{u(!1)}},[r,o,i,a,c]);return{ranking:s,submitting:c,error:m,submitTap:b}}({client:o,sessionId:t,baseUrl:l.baseUrl,onDebug:(e,t)=>(0,J.cY)(e,t)}),[u,m]=(0,n.useState)(!1);(0,n.useEffect)(()=>(m((0,eP.GZ)()),(0,eP.gu)(m)),[]);let[p,h]=(0,n.useState)("fixed");(0,n.useEffect)(()=>(h((0,eP.sY)()),(0,eP.u9)(h)),[]);let[b,x]=(0,n.useState)(!1),g=(0,n.useRef)(-1);return((0,n.useEffect)(()=>{var e;if("popup"!==p)return;let t=null!=(e=null==i?void 0:i.version)?e:-1;if(t<0||t===g.current)return;g.current=t,x(!0);let a=setTimeout(()=>x(!1),6e3);return()=>clearTimeout(a)},[null==i?void 0:i.version,p]),"off"!==p&&("popup"!==p||b))?(0,r.jsx)(eM,{ranking:i,submitting:s,error:d,collapsed:u,onToggleCollapsed:()=>{let e=!u;(0,eP.mB)(e),m(e),(0,J.cY)("intent.panel.toggle-collapsed",{collapsed:e})},onTap:e=>{"popup"===p&&x(!1),c(e),null==a||a(e)}}):null}let eL="showroom.hitl.disabled";function eY(){if(!window.localStorage)return!1;try{return"true"===window.localStorage.getItem(eL)}catch(e){return!1}}function eR(){let[e,t]=(0,n.useState)(!1),[a,o]=(0,n.useState)(!1);(0,n.useEffect)(()=>{o(!0),t(eY());let e=function(e){let t=t=>{t.key===eL&&e(eY())};return window.addEventListener("storage",t),()=>window.removeEventListener("storage",t)}(t);return()=>{e()}},[]);let l=(0,n.useCallback)(()=>{t(e=>{let t=!e;return!function(e){if(window.localStorage)try{e?window.localStorage.setItem(eL,"true"):window.localStorage.removeItem(eL)}catch(e){return!1}}(t),t})},[]);return a?(0,r.jsxs)("button",{type:"button",onClick:l,"data-testid":"showroom-hitl-toggle","data-state":e?"off":"on",title:e?"HITL prompts disabled for new agent sessions — click to re-enable":"HITL prompts active — click to disable for demo","aria-pressed":!e,className:"inline-flex items-center gap-1 rounded-md border px-2 py-1 text-xs font-mono "+(e?"border-zinc-300 bg-zinc-100 text-zinc-500 hover:bg-zinc-200 dark:border-zinc-700 dark:bg-zinc-800 dark:text-zinc-400 dark:hover:bg-zinc-700":"border-emerald-300 bg-emerald-50 text-emerald-700 hover:bg-emerald-100 dark:border-emerald-700 dark:bg-emerald-900/30 dark:text-emerald-300 dark:hover:bg-emerald-900/50"),children:[(0,r.jsx)("span",{"aria-hidden":!0,children:e?"○":"●"}),(0,r.jsxs)("span",{children:["HITL ",e?"OFF":"ON"]})]}):null}var e_=a(64719);function eU(e){return Array.from(e.querySelectorAll('a[href], button:not([disabled]), input:not([disabled]):not([type="hidden"]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])')).filter(e=>{var t;if(e.hasAttribute("disabled")||"true"===e.getAttribute("aria-hidden"))return!1;let a=null==(t=e.ownerDocument.defaultView)?void 0:t.getComputedStyle(e);return!a||"none"!==a.display&&"hidden"!==a.visibility})}function eF(e){let t=(0,n.useRef)(null);return(0,n.useEffect)(()=>{if(!e.active)return;let a=t.current;if(!a)return;let r=document.activeElement;if(!e.skipInitialFocus){let e=eU(a);if(e.length>0){var n;null==(n=e[0])||n.focus()}else a.tabIndex=-1,a.focus()}function o(e){if("Tab"!==e.key)return;let t=eU(a);if(0===t.length)return void e.preventDefault();let r=t[0],n=t[t.length-1],o=document.activeElement;if(e.shiftKey&&o===r){e.preventDefault(),n.focus();return}e.shiftKey||o!==n||(e.preventDefault(),r.focus())}return a.addEventListener("keydown",o),()=>{if(a.removeEventListener("keydown",o),r&&document.body.contains(r))try{r.focus()}catch(e){}}},[e.active,e.skipInitialFocus]),t}var eK=a(52738);function eO(e){let{open:t,onClose:a}=e,n=eF({active:t,skipInitialFocus:!1});return t?(0,r.jsx)("div",{ref:n,className:"fixed inset-0 z-50 flex items-center justify-center bg-black/40 p-4",role:"dialog","aria-modal":"true","aria-labelledby":"showroom-shortcut-help-title","data-testid":"showroom-shortcut-help",onKeyDown:e=>{"Escape"===e.key&&(e.stopPropagation(),a())},onClick:e=>{e.target===e.currentTarget&&a()},children:(0,r.jsxs)("div",{className:"w-full max-w-md rounded-lg border border-zinc-300 bg-white p-4 shadow-xl dark:border-zinc-700 dark:bg-zinc-900",onClick:e=>e.stopPropagation(),children:[(0,r.jsxs)("div",{className:"mb-3 flex items-center justify-between",children:[(0,r.jsxs)("h2",{id:"showroom-shortcut-help-title",className:"flex items-center gap-2 text-sm font-medium text-zinc-900 dark:text-zinc-100",children:[(0,r.jsx)(e_.A,{className:"size-4","aria-hidden":!0}),"Keyboard shortcuts"]}),(0,r.jsx)("button",{type:"button",onClick:a,className:"rounded p-1 text-zinc-500 hover:bg-zinc-100 dark:hover:bg-zinc-800","aria-label":"Close shortcut help","data-testid":"showroom-shortcut-help-close",children:(0,r.jsx)(l.A,{className:"size-4","aria-hidden":!0})})]}),(0,r.jsx)("ul",{className:"space-y-1.5","data-testid":"showroom-shortcut-help-list",children:eK.nm.map(e=>(0,r.jsxs)("li",{className:"flex items-center justify-between gap-3 rounded px-2 py-1 text-xs text-zinc-700 dark:text-zinc-300","data-testid":"showroom-shortcut-help-row-".concat(e.id),children:[(0,r.jsx)("span",{children:e.effect}),(0,r.jsx)("kbd",{className:"rounded border border-zinc-300 bg-zinc-50 px-1.5 py-0.5 font-mono text-[10px] text-zinc-600 dark:border-zinc-600 dark:bg-zinc-800 dark:text-zinc-300",children:e.combo})]},e.id))}),(0,r.jsxs)("p",{className:"mt-3 text-[10px] text-zinc-500",children:["Editable surfaces (input \xb7 textarea \xb7 contenteditable) suppress ⌘⇧{J,M,Y} and ",(0,r.jsx)("kbd",{className:"font-mono",children:"?"})," so typing isn't intercepted. ",(0,r.jsx)("kbd",{className:"font-mono",children:"⌘K"})," is the intentional exception."]})]})}):null}var eB=a(1102);function eq(e){return e>=1e3?"".concat((e/1e3).toFixed(1),"k"):String(e)}function eH(e){let{estimate:t,onConfirm:a,onCancel:o}=e,l=(0,n.useRef)(null),i=(0,n.useRef)(null);(0,n.useEffect)(()=>{var e;null==(e=i.current)||e.focus()},[]);let s=eq(t.totalTokens),d=eq(t.warnThreshold),c=Math.round((t.totalTokens-t.warnThreshold)/t.warnThreshold*100);return(0,r.jsx)("div",{ref:l,className:"fixed inset-0 z-50 flex items-center justify-center bg-black/40 p-4",role:"dialog","aria-modal":"true","aria-labelledby":"showroom-cost-gate-title","aria-describedby":"showroom-cost-gate-summary","data-testid":"showroom-cost-gate-modal",onKeyDown:e=>{"Escape"===e.key&&(e.stopPropagation(),o())},children:(0,r.jsxs)("div",{className:"w-full max-w-lg rounded-lg border border-amber-300 bg-white p-4 shadow-xl dark:border-amber-700 dark:bg-zinc-900",children:[(0,r.jsx)("h2",{id:"showroom-cost-gate-title",className:"mb-2 text-sm font-medium text-amber-700 dark:text-amber-300",children:"⚠️ Broadcast cost warning"}),(0,r.jsxs)("p",{id:"showroom-cost-gate-summary",className:"mb-3 text-xs text-zinc-700 dark:text-zinc-300",children:["예상 token ",(0,r.jsx)("strong",{"data-testid":"showroom-cost-gate-total",children:s})," \xb7 임계값 ",(0,r.jsx)("strong",{children:d})," 을 ",(0,r.jsxs)("strong",{children:[c,"%"]})," 초과합니다. multi-LLM broadcast 는 모든 panel 의 input 을 합산."]}),(0,r.jsxs)("div",{className:"mb-3 max-h-56 overflow-y-auto rounded-md border border-zinc-200 bg-zinc-50 p-2 text-[11px] dark:border-zinc-700 dark:bg-zinc-800","data-testid":"showroom-cost-gate-breakdown",children:[(0,r.jsxs)("div",{className:"grid grid-cols-[1fr_auto_auto_auto] gap-x-2 font-medium text-zinc-600 dark:text-zinc-400",children:[(0,r.jsx)("span",{children:"panel"}),(0,r.jsx)("span",{className:"text-right",children:"input"}),(0,r.jsx)("span",{className:"text-right",children:"prior"}),(0,r.jsx)("span",{className:"text-right",children:"total"})]}),t.perPanel.map(e=>(0,r.jsxs)("div",{className:"grid grid-cols-[1fr_auto_auto_auto] gap-x-2 py-0.5 font-mono text-zinc-700 dark:text-zinc-300","data-testid":"showroom-cost-gate-row-".concat(e.panelId),children:[(0,r.jsx)("span",{className:"truncate",children:e.displayName}),(0,r.jsx)("span",{className:"text-right",children:eq(e.inputTokens)}),(0,r.jsx)("span",{className:"text-right",children:e.priorTokens>0?eq(e.priorTokens):"—"}),(0,r.jsx)("span",{className:"text-right font-semibold",children:eq(e.totalTokens)})]},e.panelId))]}),(0,r.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,r.jsx)(eB.$,{type:"button",variant:"ghost",size:"sm",onClick:o,"data-testid":"showroom-cost-gate-cancel",children:"Cancel"}),(0,r.jsx)(eB.$,{ref:i,type:"button",size:"sm",onClick:a,"data-testid":"showroom-cost-gate-confirm",className:"bg-amber-600 text-white hover:bg-amber-700",children:"Send anyway"})]}),(0,r.jsxs)("span",{className:"sr-only","aria-live":"assertive","data-testid":"showroom-cost-gate-announcer",children:["Broadcast cost ",t.totalTokens," tokens, confirming"]})]})})}var eV=a(76912);function eJ(e){let{pending:t,queueLength:a,onConfirm:o,onCancel:i}=e;if(!t)return null;let s=t.forwardText.length>600,d=s?"".concat(t.forwardText.slice(0,600),"…"):t.forwardText,c=Math.max(0,a-1);return(0,r.jsxs)(n.Fragment,{children:[(0,r.jsx)("div",{className:"fixed inset-0 z-50 bg-black/40 backdrop-blur-sm","aria-hidden":!0}),(0,r.jsx)("div",{role:"dialog","aria-modal":"true","aria-label":"Chain forward confirmation",className:"fixed inset-0 z-50 flex items-center justify-center p-4",children:(0,r.jsxs)("div",{className:"w-full max-w-lg rounded-lg border border-zinc-300 bg-white p-5 shadow-2xl dark:border-zinc-700 dark:bg-zinc-900",children:[(0,r.jsx)("p",{className:"sr-only","aria-live":"polite",children:function(e){let t=e.forwardText.length;return"Chain forward gate: ".concat(e.from.label," to ").concat(e.to.label,", ").concat(t," characters pending confirm")}(t)}),(0,r.jsxs)("header",{className:"mb-3 flex items-center gap-2",children:[(0,r.jsx)("h2",{className:"text-base font-semibold text-zinc-900 dark:text-zinc-50",children:"Confirm chain forward"}),(0,r.jsx)("span",{className:"ml-auto text-[10px] text-zinc-500",children:"\xa76.7 HITL gate"})]}),(0,r.jsxs)("div",{className:"mb-3 flex items-center gap-2 rounded border border-zinc-200 bg-zinc-50 px-3 py-2 text-sm dark:border-zinc-700 dark:bg-zinc-800",children:[(0,r.jsx)("span",{className:"truncate font-medium text-zinc-900 dark:text-zinc-100","data-testid":"chain-forward-gate-from",children:t.from.label}),(0,r.jsx)(eV.A,{className:"size-3.5 shrink-0 text-zinc-500","aria-hidden":!0}),(0,r.jsx)("span",{className:"truncate font-medium text-zinc-900 dark:text-zinc-100","data-testid":"chain-forward-gate-to",children:t.to.label}),(0,r.jsxs)("span",{className:"ml-auto text-[10px] text-zinc-500",children:[t.forwardText.length," chars"]})]}),(0,r.jsxs)("div",{className:"mb-4",children:[(0,r.jsx)("p",{className:"mb-1 text-[11px] uppercase tracking-wide text-zinc-500",children:"Forward text"}),(0,r.jsx)("pre",{className:"max-h-48 overflow-y-auto whitespace-pre-wrap break-words rounded border border-zinc-200 bg-zinc-50 p-3 text-xs text-zinc-700 dark:border-zinc-700 dark:bg-zinc-800 dark:text-zinc-300","data-testid":"chain-forward-gate-preview",children:d}),s&&(0,r.jsx)("p",{className:"mt-1 text-[10px] text-zinc-500",children:"Truncated for preview \xb7 the full text will be forwarded."})]}),(0,r.jsxs)("footer",{className:"flex items-center gap-2",children:[(0,r.jsxs)("button",{type:"button",onClick:i,"data-testid":"chain-forward-gate-cancel",className:"inline-flex items-center gap-1 rounded border border-zinc-300 bg-white px-3 py-1.5 text-sm text-zinc-700 hover:bg-zinc-50 dark:border-zinc-600 dark:bg-zinc-800 dark:text-zinc-300 dark:hover:bg-zinc-700",children:[(0,r.jsx)(l.A,{className:"size-3.5","aria-hidden":!0}),"Cancel"]}),(0,r.jsxs)("button",{type:"button",onClick:o,"data-testid":"chain-forward-gate-confirm",className:"ml-auto inline-flex items-center gap-1 rounded bg-indigo-600 px-3 py-1.5 text-sm font-medium text-white hover:bg-indigo-500",autoFocus:!0,children:[(0,r.jsx)(ep.A,{className:"size-3.5","aria-hidden":!0}),"Forward"]}),c>0&&(0,r.jsxs)("span",{className:"text-[10px] text-zinc-500","data-testid":"chain-forward-gate-queue-hint",children:["+",c," queued"]})]})]})})]})}var eW=a(77694);function eQ(e){return e?Math.ceil(e.length/4):0}let eZ={layoutSaved:e=>e?'Layout "'.concat(e,'" saved'):"Layout saved",layoutLoaded:e=>e?'Layout "'.concat(e,'" loaded'):"Layout loaded",layoutDeleted:e=>e?'Layout "'.concat(e,'" deleted'):"Layout deleted",judgeToggled:e=>"local-llm"===e?"Role judge: LLM":"Role judge: keyword",voiceToggled:e=>e?"Voice mode on \xb7 listening":"Voice mode off",voicePhase:e=>"Voice ".concat(e),ttsMuted:e=>e?"TTS muted":"TTS unmuted",modelChanged:e=>e?"Model: ".concat(e):"Model: daemon default"};function e$(){let{client:e,config:t}=(0,v.Q)(),[j]=(0,n.useState)(()=>"sr-".concat(Date.now().toString(36),"-").concat(N())),[z,C]=(0,n.useState)(null),A=(0,f.useSearchParams)(),[T,P]=(0,n.useState)(()=>[{id:S(),kind:"chat",provider:"",sessionId:null,state:"live"},{id:S(),kind:"chat",provider:"",sessionId:null,state:"live"}]),[M,D]=(0,n.useState)([]),[L,_]=(0,n.useState)([]),[V,Z]=(0,n.useState)([]),[$,X]=(0,n.useState)(0),[G,ee]=(0,n.useState)(null),[et,ea]=(0,n.useState)([]),[er,eo]=(0,n.useState)([]),[el,ei]=(0,n.useState)([]),[es,ed]=(0,n.useState)([]),[ec,eu]=(0,n.useState)([]),em=(0,n.useRef)(new Set),[ep,eh]=(0,n.useState)([]),[eb,ex]=(0,n.useState)([]),[eg,ev]=(0,n.useState)(!1),[ew,ek]=(0,n.useState)(!1),[ey,ej]=(0,n.useState)(!1),[eN,eS]=(0,n.useState)(""),[eC,eI]=(0,n.useState)(null),[eT,eE]=(0,n.useState)(!1),[eP,eM]=(0,n.useState)(()=>(function(){if(!window.localStorage)return!0;try{return"false"!==window.localStorage.getItem(K)}catch(e){return!0}})()),[eL,eY]=(0,n.useState)(()=>(function(){try{let e=window.localStorage.getItem(Y);return"local-llm"===e?"local-llm":"keyword"}catch(e){return"keyword"}})()),[e_,eU]=(0,n.useState)(()=>(function(){try{var e;return null!=(e=window.localStorage.getItem("elanous.showroom.roleJudgeModel"))?e:""}catch(e){return""}})()),[eB,eq]=(0,n.useState)([]),[eV,e$]=(0,n.useState)(null),eX=function(){let[e,t]=(0,n.useState)(""),a=(0,n.useRef)("");return{message:e,announce:(0,n.useCallback)(e=>{let r=e.trim();if(!r)return;let n=r===a.current?r+"​":r;a.current=n,t(n)},[])}}(),eG=(0,n.useCallback)(e=>{eY(e);try{window.localStorage.setItem(Y,e)}catch(e){}eX.announce(eZ.judgeToggled(e)),(0,J.cY)("showroom.role-judge.toggle",{backend:e})},[eX]),e0=(0,n.useCallback)(e=>{eU(e);try{e.length>0?window.localStorage.setItem("elanous.showroom.roleJudgeModel",e):window.localStorage.removeItem("elanous.showroom.roleJudgeModel")}catch(e){}eX.announce(eZ.modelChanged(e)),(0,J.cY)("showroom.role-judge.model",{model:e||"(default)"})},[eX]);(0,n.useEffect)(()=>{if("local-llm"!==eL||eB.length>0)return;let t=!1;return(async()=>{try{var a;let r=await e.listLlmModels();if(t)return;eq(r.models),e$(null!=(a=r.error)?a:null),(0,J.cY)("showroom.role-judge.models",{count:r.models.length,error:r.error})}catch(e){if(t)return;e$(e instanceof Error?e.message:String(e))}})(),()=>{t=!0}},[eL,eB.length,e]);let[e1,e5]=(0,n.useState)(()=>(function(){try{let e=window.localStorage.getItem(q);return"isolated"===e?"isolated":"mixed"}catch(e){return"mixed"}})()),[e3,e2]=(0,n.useState)(null),[e7,e4]=(0,n.useState)({}),e9=(0,n.useRef)(null),e6=(0,n.useRef)(null),e8=(0,n.useCallback)(e=>{eM(e);if(window.localStorage)try{e?window.localStorage.removeItem(K):window.localStorage.setItem(K,"false")}catch(e){}(0,J.cY)("showroom.dm.toggle",{next:e})},[]),te=(0,n.useCallback)(e=>{e5(e);try{"isolated"===e?window.localStorage.setItem(q,"isolated"):window.localStorage.removeItem(q)}catch(e){}eX.announce("mixed"===e?"Mixed history on \xb7 siblings’ last replies forwarded":"Mixed history off \xb7 per-panel isolated"),(0,J.cY)("showroom.dm.history-mode.toggle",{next:e})},[eX]);(0,n.useEffect)(()=>{if(!t.baseUrl)return;let a=!1,r=null;try{r=e.connectAcp({onSession:e=>{a||(e6.current=e,e2(e),(0,J.cY)("showroom.dm.session",{sessionId:e}))}})}catch(e){(0,J.cY)("showroom.dm.acp.connect.error",{error:String(e)});return}e9.current=r;let n=r.on("sessionUpdate",e=>{var t,a,r;let n=null==(t=e.params)?void 0:t.update,o=function(e){if(!e||"object"!=typeof e)return null;let t=e._meta;if(!t||"object"!=typeof t)return null;let a=t.elanous;if(!a||"object"!=typeof a||"string"!=typeof a.modelId||0===a.modelId.length)return null;let r={modelId:a.modelId};return"string"==typeof a.provider&&(r.provider=a.provider),("end_turn"===a.stopReason||"cancelled"===a.stopReason||"error"===a.stopReason)&&(r.stopReason=a.stopReason),"string"==typeof a.error&&(r.error=a.error),r}(n);if(!o)return;let l=function(e){var t;if(!e||"object"!=typeof e)return null;let a="tool_call"===e.sessionUpdate,r="tool_call_update"===e.sessionUpdate;if(!a&&!r||"string"!=typeof e.toolCallId||0===e.toolCallId.length)return null;let n=a?"call":"update",o={kind:n,id:e.toolCallId,name:"string"==typeof e.title?e.title:"",status:(t=e.status,"pending"===t||"in_progress"===t||"completed"===t||"failed"===t?t:"call"===n?"pending":"failed")};e.rawInput&&"object"==typeof e.rawInput&&(o.input=e.rawInput);let l=function(e){if(null!=e){if("string"==typeof e)return e.length>240?"".concat(e.slice(0,240),"…"):e;try{let t=JSON.stringify(e);if(!t)return;return t.length>240?"".concat(t.slice(0,240),"…"):t}catch(e){return}}}(e.rawOutput);return void 0!==l&&(o.output=l),o}(n);if(l)return void e4(e=>{var t;let a=null!=(t=e[o.modelId])?t:{messages:[],partial:"",streaming:!0,error:null,toolCalls:{}};return{...e,[o.modelId]:{...a,toolCalls:function(e,t,a){let r={...e},n=r[t.id];if("call"===t.kind||!n){var o;let e={id:t.id,name:t.name||(null==n?void 0:n.name)||"",status:t.status,startedAt:null!=(o=null==n?void 0:n.startedAt)?o:a,updatedAt:a};return t.input?e.input=t.input:(null==n?void 0:n.input)&&(e.input=n.input),void 0!==t.output?e.output=t.output:(null==n?void 0:n.output)!==void 0&&(e.output=n.output),r[t.id]=e,r}let l={...n,status:t.status,updatedAt:a};return t.name&&(l.name=t.name),t.input&&(l.input=t.input),void 0!==t.output&&(l.output=t.output),r[t.id]=l,r}(a.toolCalls,l,Date.now())}}});let i=(null==n||null==(a=n.content)?void 0:a.type)==="text"&&null!=(r=n.content.text)?r:"",s=o.stopReason;e4(e=>{var t,a,r;let n=null!=(t=e[o.modelId])?t:{messages:[],partial:"",streaming:!0,error:null,toolCalls:{}};if(s){let t=(n.partial+i).trim(),l={...e};return t.length>0||o.error?l[o.modelId]={messages:[...n.messages,{id:"a-".concat(Date.now(),"-").concat(Math.random().toString(36).slice(2,6)),role:"assistant",text:o.error?"(error) ".concat(o.error):t,timestamp:Date.now(),meta:{provider:null!=(a=o.provider)?a:"",stopReason:s,...o.error?{systemLevel:"error"}:{}}}],partial:"",streaming:!1,error:null!=(r=o.error)?r:null,toolCalls:n.toolCalls}:l[o.modelId]={...n,partial:"",streaming:!1},l}return{...e,[o.modelId]:{...n,partial:n.partial+i,streaming:!0,error:null}}})});return()=>{a=!0;try{n()}catch(e){}try{null==r||r.close()}catch(e){}e9.current=null,e6.current=null}},[e,t.baseUrl]);let tt=(0,n.useCallback)(async()=>{let{layouts:t,source:a}=await (0,Q.i$)(e);ex(t),(0,J.cY)("showroom.layouts.refresh",{count:t.length,source:a})},[e]);(0,n.useEffect)(()=>{tt()},[tt]);let ta=(0,n.useCallback)(()=>{eS(""),eI(null),ej(!0)},[]),tr=(0,n.useCallback)(async()=>{let t=eN.trim();if(!t)return void eI("name required");let a=eb.some(e=>e.name===t),r=await (0,Q.sF)(t,T,e);if((0,J.cY)("showroom.save",{name:t,ok:r.ok,panels:T.length,overwrites:a,source:r.ok?r.source:void 0,migrated:r.ok?r.migrated:0}),!r.ok)return void eI(r.reason);ej(!1),eS(""),eI(null),C(t);{let e=new URL(window.location.href);e.searchParams.set("show",t),window.history.replaceState({},"",e.toString())}eX.announce(eZ.layoutSaved(t)),await tt()},[eN,T,tt,eb,e,eX]),tn=(0,n.useCallback)(()=>{ej(!1),eS(""),eI(null)},[]),to=(0,n.useCallback)(async()=>{if(G){ee(null),(0,J.cY)("showroom.cost-gate.confirm",{totalTokens:G.estimate.totalTokens});try{await G.resume()}catch(e){(0,J.cY)("showroom.cost-gate.resume-error",{err:e instanceof Error?e.message:String(e)})}}},[G]),tl=(0,n.useCallback)(()=>{G&&((0,J.cY)("showroom.cost-gate.cancel",{totalTokens:G.estimate.totalTokens}),ee(null))},[G]),ti=(0,n.useCallback)(function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(ev(!1),!t.skipConfirm&&T.length>0&&!window.confirm('Load "'.concat(e.name,'"? 현재 ').concat(T.length," panel state 가 교체됩니다 (저장은 별개).")))return;let a=(0,Q.nZ)(e);P(a),D([]),_([]),Z([]),ea([]),eo([]),ei([]),ed([]),eu([]),em.current.clear(),C(e.name);{let t=new URL(window.location.href);t.searchParams.set("show",e.name),window.history.replaceState({},"",t.toString())}eX.announce(eZ.layoutLoaded(e.name)),(0,J.cY)("showroom.load",{name:e.name,panels:a.length})},[T,eX]),ts=(0,n.useCallback)(()=>{C(null);{let e=new URL(window.location.href);e.searchParams.delete("show"),window.history.replaceState({},"",e.toString())}(0,J.cY)("showroom.clear-active",{})},[]),td=(0,n.useRef)(!1);(0,n.useEffect)(()=>{if(td.current||0===eb.length&&null===z)return;let e=null==A?void 0:A.get("show");if(!e){td.current=!0;return}let t=eb.find(t=>t.name===e);t&&(td.current=!0,ti(t,{skipConfirm:!0}))},[eb,A,z,ti]),(0,n.useEffect)(()=>{let e=setTimeout(()=>{td.current=!0},1500);return()=>clearTimeout(e)},[]);let tc=(0,n.useCallback)(async t=>{if(!window.confirm('Delete saved layout "'.concat(t.name,'"?')))return;let a=await (0,Q.oM)(t.name,e);(0,J.cY)("showroom.layout.delete",{name:t.name,ok:a.ok,source:a.source}),z===t.name&&ts(),a.ok&&eX.announce(eZ.layoutDeleted(t.name)),await tt()},[tt,e,z,ts,eX]),tu=(0,n.useCallback)(e=>{D(t=>[...t,...e]),(0,J.cY)("showroom.attach.add",{added:e.length,filenames:e.map(e=>e.filename)})},[]),tm=(0,n.useCallback)(e=>{D(t=>t.filter(t=>t.id!==e)),(0,J.cY)("showroom.attach.remove",{id:e})},[]),tp=(0,n.useCallback)(e=>{_(t=>[...t,e]),(0,J.cY)("showroom.terminal.pin",{id:e.id,label:e.label,bytes:e.text.length})},[]),th=(0,n.useCallback)(e=>{_(t=>t.filter(t=>t.id!==e)),(0,J.cY)("showroom.terminal.remove",{id:e})},[]),tb=(0,n.useCallback)(e=>t=>{let{messageId:a,text:r}=t,n=r.trim();if(!n)return;let o=Math.max(1,$),l={id:"pa-".concat(Date.now().toString(36),"-").concat(N()),label:function(e,t){let a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Date.now(),r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,n=y(e,t),o=new Date(a),l=String(o.getHours()).padStart(2,"0"),i=String(o.getMinutes()).padStart(2,"0");return"".concat(r>0?"T".concat(r," "):"","@").concat(n," \xb7 ").concat(l,":").concat(i)}(e,T,Date.now(),o),text:n,sourcePanelId:e.id,sourceProvider:e.provider||"default",promotedAt:Date.now(),turnNumber:o,enabled:!0};Z(e=>[...e,l]),(0,J.cY)("showroom.prior.promote",{panelId:e.id,messageId:a,provider:e.provider,bytes:n.length,turn:o})},[T,$]),tx=(0,n.useCallback)(e=>{Z(t=>t.filter(t=>t.id!==e)),(0,J.cY)("showroom.prior.remove",{id:e})},[]),tg=(0,n.useCallback)(e=>{Z(t=>t.map(t=>t.id===e?{...t,enabled:!t.enabled}:t)),(0,J.cY)("showroom.prior.toggle",{id:e})},[]),tf=(0,n.useCallback)(async t=>{let a=t.trim();if(!a)return{ok:!1,reason:"url required"};try{let t=await e.fetchUrlContext(a),r={id:"uc-".concat(Date.now().toString(36),"-").concat(N()),label:function(e,t){if(t&&t.trim().length>0)return t.trim();try{return new URL(e).hostname||e}catch(t){return e}}(t.url,t.title),url:t.url,text:t.text,fetchedAt:Date.now()};return ea(e=>[...e,r]),(0,J.cY)("showroom.url.add",{url:t.url,bytes:t.text.length,hasTitle:!!t.title}),{ok:!0}}catch(t){let e=t instanceof Error?t.message:String(t);return(0,J.cY)("showroom.url.error",{error:e}),{ok:!1,reason:e}}},[e]),tv=(0,n.useCallback)(e=>{ea(t=>t.filter(t=>t.id!==e)),(0,J.cY)("showroom.url.remove",{id:e})},[]),tw=(0,n.useCallback)(async()=>{if("undefined"==typeof navigator||!navigator.clipboard)return{ok:!1,reason:"clipboard API unavailable"};try{let e=await navigator.clipboard.readText();if(!e||0===e.trim().length)return{ok:!1,reason:"clipboard is empty"};let t={id:"cc-".concat(Date.now().toString(36),"-").concat(N()),label:function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Date.now(),a=new Date(t),r=String(a.getHours()).padStart(2,"0"),n=String(a.getMinutes()).padStart(2,"0");return"clipboard \xb7 ".concat(e.length," chars \xb7 ").concat(r,":").concat(n)}(e),text:e,pastedAt:Date.now()};return eo(e=>[...e,t]),(0,J.cY)("showroom.clipboard.add",{bytes:e.length}),{ok:!0}}catch(t){let e=t instanceof Error?t.message:String(t);return(0,J.cY)("showroom.clipboard.error",{error:e}),{ok:!1,reason:e}}},[]),tk=(0,n.useCallback)(e=>{eo(t=>t.filter(t=>t.id!==e)),(0,J.cY)("showroom.clipboard.remove",{id:e})},[]),ty=(0,n.useCallback)(async e=>{try{let{extractKeyFrame:t}=await a.e(6943).then(a.bind(a,56943)),r=await t(e),n={id:"vc-".concat(Date.now().toString(36),"-").concat(N()),label:function(e,t,a){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:Date.now(),n=U(e),o="".concat(t,"x").concat(a),l=new Date(r),i=l.getFullYear(),s=String(l.getMonth()+1).padStart(2,"0"),d=String(l.getDate()).padStart(2,"0");return"video \xb7 ".concat(n," \xb7 ").concat(o," \xb7 ").concat(i,"-").concat(s,"-").concat(d)}(r.durationSec,r.widthPx,r.heightPx),filename:e.name,mimeType:r.mimeType,durationSec:Math.round(r.durationSec),widthPx:r.widthPx,heightPx:r.heightPx,frameDataUrl:r.frameDataUrl,capturedAt:Date.now()};return ei(e=>[...e,n]),(0,J.cY)("showroom.video.add",{duration:n.durationSec,dimensions:"".concat(n.widthPx,"x").concat(n.heightPx)}),{ok:!0}}catch(t){let e=t instanceof Error?t.message:String(t);return(0,J.cY)("showroom.video.error",{error:e}),{ok:!1,reason:e}}},[]),tj=(0,n.useCallback)(e=>{ei(t=>t.filter(t=>t.id!==e)),(0,J.cY)("showroom.video.remove",{id:e})},[]),tz=(0,n.useCallback)(async t=>{try{let{extractAudioMeta:r}=await a.e(4286).then(a.bind(a,34286)),n=await r(t),o={id:"ac-".concat(Date.now().toString(36),"-").concat(N()),label:function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Date.now(),a=U(e),r=new Date(t),n=r.getFullYear(),o=String(r.getMonth()+1).padStart(2,"0"),l=String(r.getDate()).padStart(2,"0");return"audio \xb7 ".concat(a," \xb7 ").concat(n,"-").concat(o,"-").concat(l)}(n.durationSec),filename:t.name,mimeType:n.mimeType,durationSec:Math.round(n.durationSec),sizeBytes:n.sizeBytes,transcript:"",loadedAt:Date.now()};return ed(e=>[...e,o]),(0,J.cY)("showroom.audio.add",{duration:o.durationSec,size:o.sizeBytes}),(async()=>{try{let a=await e.transcribeAudio(t);"string"==typeof a.text&&a.text.trim().length>0&&(ed(e=>e.map(e=>e.id===o.id?{...e,transcript:a.text}:e)),(0,J.cY)("showroom.audio.stt-ok",{id:o.id,chars:a.text.length,language:a.language,durationMs:a.durationMs}))}catch(e){(0,J.cY)("showroom.audio.stt-fail",{id:o.id,error:e instanceof Error?e.message:String(e)})}})(),{ok:!0}}catch(t){let e=t instanceof Error?t.message:String(t);return(0,J.cY)("showroom.audio.error",{error:e}),{ok:!1,reason:e}}},[e]),tN=(0,n.useCallback)(e=>{ed(t=>t.filter(t=>t.id!==e)),(0,J.cY)("showroom.audio.remove",{id:e})},[]),tS=(0,n.useCallback)((e,t)=>{ed(a=>a.map(a=>a.id===e?{...a,transcript:t}:a))},[]),tC=(0,n.useCallback)((e,t,a)=>{let r=function(e,t,a){var r,n,o;let l=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};if(t===a)return{ok:!1,reason:"self-route"};if(e.some(e=>e.fromPanelId===t&&e.toPanelId===a))return{ok:!1,reason:"duplicate"};if(function(e,t,a){if(t===a)return!0;let r=new Map;for(let t of e){var n;let e=null!=(n=r.get(t.fromPanelId))?n:[];e.push(t.toPanelId),r.set(t.fromPanelId,e)}let o=new Set,l=[a];for(;l.length>0;){let e=l.shift();if(e===t)return!0;if(o.has(e))continue;o.add(e);let a=r.get(e);a&&l.push(...a)}return!1}(e,t,a))return{ok:!1,reason:"cycle"};let i=null==(r=l.routePrompt)?void 0:r.trim(),s={id:"ce-".concat(Date.now().toString(36),"-").concat(N()),fromPanelId:t,toPanelId:a,wrapMode:null!=(n=l.wrapMode)?n:"prior",...i?{routePrompt:i}:{},enabled:null==(o=l.enabled)||o,...l.hitl?{hitl:!0}:{},createdAt:Date.now()};return{ok:!0,edge:s,edges:[...e,s]}}(ec,e,t,a);return r.ok?(eu(r.edges),(0,J.cY)("showroom.chain.add",{from:e,to:t,wrapMode:r.edge.wrapMode,edges:r.edges.length})):(0,J.cY)("showroom.chain.add.reject",{from:e,to:t,reason:r.reason}),r},[ec]),tI=(0,n.useCallback)(e=>{eu(t=>t.filter(t=>t.id!==e)),(0,J.cY)("showroom.chain.remove",{edgeId:e})},[]),tA=(0,n.useCallback)(e=>{eu(t=>t.map(t=>{if(t.id!==e)return t;let a={...t};return t.hitl?delete a.hitl:a.hitl=!0,(0,J.cY)("showroom.chain.hitl.toggle",{edgeId:e,next:!t.hitl}),a}))},[]),tT=(0,n.useCallback)(async(e,t)=>{let a=e9.current,r=e6.current;if(!a||!r)return void(0,J.cY)("showroom.chain.forward.skip",{reason:"no-layout-session"});let n=O([e],{includeAgent:!0});if(!n)return void(0,J.cY)("showroom.chain.forward.skip",{reason:"empty-hint"});let o=(0,w.tw)(t);e4(t=>{var a;let r=null!=(a=t[e.id])?a:{messages:[],partial:"",streaming:!1,error:null,toolCalls:{}};return{...t,[e.id]:{messages:[...r.messages,o],partial:"",streaming:!0,error:null,toolCalls:{}}}});try{await a.send("session/prompt",{sessionId:r,prompt:[{type:"text",text:t}],_meta:H(n)})}catch(a){let t=String(a);(0,J.cY)("showroom.chain.forward.error",{error:t}),e4(a=>{let r=a[e.id];return r?{...a,[e.id]:{...r,streaming:!1,error:t}}:a})}},[]);(0,n.useEffect)(()=>{if(0!==ec.length)for(let[t,a]of Object.entries(e7)){if(a.streaming)continue;let r=a.messages[a.messages.length-1];if(!r||"assistant"!==r.role||!r.text||0===r.text.length)continue;let n="".concat(t,":").concat(r.id);if(em.current.has(n))continue;em.current.add(n);let o=T.find(e=>e.id===t);if(!o)continue;let l=y(o,T),i=o.provider||"default";for(let a of F(ec,t).filter(e=>e.enabled)){var e;let o=T.find(e=>e.id===a.toPanelId);if(!o)continue;if(null==(e=e7[a.toPanelId])?void 0:e.streaming){(0,J.cY)("showroom.chain.forward.skip",{from:t,to:a.toPanelId,reason:"target-streaming"});continue}let s=function(e,t,a,r){var n;if("plain"===e.wrapMode)return t;let o=r.replace(/[<>"]/g,"_"),l=a.replace(/[<>"]/g,"_"),i='<prior_answer source="'.concat(o,'" provider="').concat(l,'">\n').concat(t,"\n</prior_answer>"),s=(null==(n=e.routePrompt)?void 0:n.trim())||"위의 답변을 검토해주세요.";return"".concat(i,"\n\n").concat(s)}(a,r.text,i,"@".concat(l));if(a.hitl){let e=y(o,T);(0,J.cY)("showroom.chain.forward.hitl.enqueue",{edgeId:a.id,from:t,to:a.toPanelId,bytes:s.length}),eh(r=>r.some(e=>e.key===n)?r:[...r,{key:n,edgeId:a.id,from:{id:t,label:l},to:{id:a.toPanelId,label:e},forwardText:s,targetPanel:o,enqueuedAt:Date.now()}]);continue}(0,J.cY)("showroom.chain.forward",{edgeId:a.id,from:t,to:a.toPanelId,wrapMode:a.wrapMode,bytes:s.length}),tT(o,s)}}},[e7,ec,T,tT]);let tE=(0,n.useCallback)(()=>{eh(e=>{let t=e[0];return t?((0,J.cY)("showroom.chain.forward.hitl.confirm",{edgeId:t.edgeId,from:t.from.id,to:t.to.id,bytes:t.forwardText.length,latencyMs:Date.now()-t.enqueuedAt}),tT(t.targetPanel,t.forwardText),e.slice(1)):e})},[tT]),tP=(0,n.useCallback)(()=>{eh(e=>{let t=e[0];return t?((0,J.cY)("showroom.chain.forward.hitl.cancel",{edgeId:t.edgeId,from:t.from.id,to:t.to.id,bytes:t.forwardText.length,latencyMs:Date.now()-t.enqueuedAt}),e.slice(1)):e})},[]),tM=(0,n.useRef)(null),tD=(0,n.useCallback)(async t=>{let a=t.trim();if(!a)return;let r=function(e){if(0===e.length)return"";let t=e.map(e=>{let t=e.label.replace(/[<>"]/g,"_");return'<terminal_context label="'.concat(t,'">\n').concat(e.text,"\n</terminal_context>")});return"".concat(t.join("\n\n"),"\n\n")}(L),n=function(e){if(0===e.length)return"";let t=e.map(e=>{let t=e.url.replace(/[<>"]/g,"_"),a=e.label.replace(/[<>"]/g,"_");return'<url_context url="'.concat(t,'" title="').concat(a,'">\n').concat(e.text,"\n</url_context>")});return"".concat(t.join("\n\n"),"\n\n")}(et),o=function(e){if(0===e.length)return"";let t=e.map(e=>{let t=e.label.replace(/[<>"]/g,"_");return'<clipboard_context label="'.concat(t,'">\n').concat(e.text,"\n</clipboard_context>")});return"".concat(t.join("\n\n"),"\n\n")}(er),l=function(e){if(0===e.length)return"";let t=e.map(e=>{let t=e.label.replace(/[<>"]/g,"_"),a=e.filename.replace(/[<>"]/g,"_"),r=e.mimeType.replace(/[<>"]/g,"_"),n=U(e.durationSec),o="".concat(e.widthPx,"x").concat(e.heightPx);return'<video_context label="'.concat(t,'" filename="').concat(a,'" mime="').concat(r,'" duration="').concat(n,'" dimensions="').concat(o,'">\n<frame data="').concat(e.frameDataUrl,'" />\n</video_context>')});return"".concat(t.join("\n\n"),"\n\n")}(el),i=function(e){if(0===e.length)return"";let t=e.map(e=>{let t=e.label.replace(/[<>"]/g,"_"),a=e.filename.replace(/[<>"]/g,"_"),r=e.mimeType.replace(/[<>"]/g,"_"),n=U(e.durationSec),o='<audio_context label="'.concat(t,'" filename="').concat(a,'" mime="').concat(r,'" duration="').concat(n,'" size="').concat(e.sizeBytes,' bytes">'),l=e.transcript.trim().length>0?"\n<transcript>".concat(e.transcript,"</transcript>\n"):"\n";return"".concat(o).concat(l,"</audio_context>")});return"".concat(t.join("\n\n"),"\n\n")}(es),s=function(e){let t=e.filter(e=>!1!==e.enabled);if(0===t.length)return"";let a=t.map(e=>{let t=e.label.replace(/[<>"]/g,"_"),a=e.sourceProvider.replace(/[<>"]/g,"_");return'<prior_answer source="'.concat(t,'" provider="').concat(a,'">\n').concat(e.text,"\n</prior_answer>")});return"".concat(a.join("\n\n"),"\n\n")}(V),d="".concat(r).concat(n).concat(o).concat(l).concat(i).concat(s).concat(a),c="local-llm"===eL?async t=>{let a={backend:"local-llm"};e_.length>0&&(a.model=e_);let r=await e.judgeRole(t,a);return{role:r.role,source:r.source}}:null,u=c?await R(a,T,c):E(a,T);if(0===u.targets.length)return;let m="mixed"===e1?Object.fromEntries(u.targets.map(e=>{var t;return[e.id,B(null==(t=e7[e.id])?void 0:t.messages)]}).filter(e=>{let[,t]=e;return"string"==typeof t&&t.length>0})):void 0,p=function(e){var t;let a=eQ(e.dispatchText),r=e.dmTargets.map(t=>{var r,n;let o=eQ(null!=(n=null==(r=e.lastAssistantByPanelId)?void 0:r[t.id])?n:"");return{panelId:t.id,displayName:y(t,e.allPanels),provider:t.provider||"default",inputTokens:a,priorTokens:o,totalTokens:a+o}}),n=r.reduce((e,t)=>e+t.totalTokens,0),o=null!=(t=e.warnThreshold)?t:function(){var e;let t=void 0!==eW?null==(e=eW.env)?void 0:e.NEXT_PUBLIC_ELANOUS_SHOWROOM_BROADCAST_COST_WARN_TOKENS:void 0,a=t?Number(t):NaN;return Number.isFinite(a)&&a>0?a:5e4}();return{totalTokens:n,perPanel:r,warnThreshold:o,exceedsWarnThreshold:n>o}}({dispatchText:d,dmTargets:u.targets,allPanels:T,...m?{lastAssistantByPanelId:m}:{}}),h=async()=>{var e,t;X(e=>e+1);let a=null!=(t=null==(e=tM.current)?void 0:e.call(tM))?t:0;if(a>0&&(0,J.cY)("showroom.voice.barge-in.dispatch",{cancelled:a}),"targeted"===u.mode){let e=function(e,t){if(0===t.length)return e.slice();let a=new Set(t),r=!1,n=e.map(e=>a.has(e.id)&&"mute"===e.state?(r=!0,{...e,state:"live"}):e);return r?n:e.slice()}(T,u.targets.map(e=>e.id));e.some((e,t)=>{var a;return e.state!==(null==(a=T[t])?void 0:a.state)})&&P(e)}(0,J.cY)("showroom.dispatch",{showroomId:j,mode:u.mode,routedBy:u.routedBy,classifiedRole:u.classifiedRole,panels:T.length,targets:u.targets.length,len:d.length,attachments:M.length,terminalContexts:L.length,estTokens:p.totalTokens}),await b()};if(p.exceedsWarnThreshold){(0,J.cY)("showroom.cost-gate.fire",{totalTokens:p.totalTokens,warnThreshold:p.warnThreshold,targets:u.targets.length,mixed:!!m}),ee({estimate:p,resume:h});return}async function b(){let e=e9.current,t=e6.current;if(!e||!t)return void(0,J.cY)("showroom.dm.dispatch.skip",{reason:"no-layout-session"});let a=u.targets,r="mixed"===e1?Object.fromEntries(a.map(e=>{var t;return[e.id,B(null==(t=e7[e.id])?void 0:t.messages)]}).filter(e=>{let[,t]=e;return"string"==typeof t&&t.length>0})):void 0,n=O(a,{includeAgent:!0,..."mixed"===e1?{historyMode:"mixed"}:{},...r?{lastAssistantByPanelId:r}:{}});if(!n)return void(0,J.cY)("showroom.dm.dispatch.skip",{reason:"empty-hint"});"mixed"===e1&&r&&(0,J.cY)("showroom.dm.dispatch.mixed",{siblingsWithPrior:Object.keys(r).length,totalTargets:a.length}),M.length>0&&(0,J.cY)("showroom.dm.dispatch.attachments-dropped",{count:M.length});let o=(0,w.tw)(d);e4(e=>{let t={...e};for(let e of a){var r;let a=null!=(r=t[e.id])?r:{messages:[],partial:"",streaming:!1,error:null,toolCalls:{}};t[e.id]={messages:[...a.messages,o],partial:"",streaming:!0,error:null,toolCalls:{}}}return t});try{await e.send("session/prompt",{sessionId:t,prompt:[{type:"text",text:d}],_meta:H(n)})}catch(t){(0,J.cY)("showroom.dm.dispatch.error",{error:String(t)});let e=String(t);e4(t=>{let r={...t};for(let t of a){let a=r[t.id];a&&(r[t.id]={...a,streaming:!1,error:e})}return r})}D([]),_([]),Z([]),ea([]),eo([]),ei([]),ed([])}await h()},[T,j,M,L,V,et,er,eL,e_,el,es,e]),tL=(0,n.useCallback)(()=>{(0,J.cY)("showroom.stop-all",{showroomId:j,mode:"dm-noop"})},[j]),tY=(0,n.useCallback)(()=>{P(e=>[...e,function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return{id:S(),kind:"chat",provider:e,sessionId:null,state:"live"}}()])},[]),tR=(0,n.useCallback)(e=>{P(t=>{var a;return[...t,(a=e,{id:S(),kind:"agent",provider:a,agentBrand:a,sessionId:null,state:"live"})]}),ek(!1)},[]),t_=(0,n.useCallback)(e=>{P(t=>t.filter(t=>t.id!==e)),eu(t=>(function(e,t){let a=e.filter(e=>e.fromPanelId!==t&&e.toPanelId!==t);return a.length===e.length?e.slice():a})(t,e)),(0,J.cY)("showroom.panel.remove",{panelId:e})},[]),tU=(0,n.useCallback)((e,t)=>{P(a=>a.map(a=>a.id===e?{...a,state:t}:a))},[]),tF=(0,n.useCallback)((e,t)=>{P(a=>a.map(a=>a.id===e?{...a,provider:t}:a))},[]),tK=(0,n.useCallback)((e,t)=>{P(a=>a.map(a=>{if(a.id!==e)return a;if(null===t){let{roleHint:e,...t}=a;return t}return{...a,roleHint:t}})),(0,J.cY)("showroom.panel.roleHint",{panelId:e,roleHint:t})},[]),tO=(0,n.useCallback)((e,t)=>{var a;P(a=>a.map(a=>{if(a.id!==e)return a;if(null===t){let{personaId:e,...t}=a;return t}let r={...a,personaId:t.personaId};return t.brand&&t.brand.length>0&&(r.provider=t.brand),r})),(0,J.cY)("showroom.panel.persona",{panelId:e,personaId:null!=(a=null==t?void 0:t.personaId)?a:null,brand:null==t?void 0:t.brand})},[]),tB=(0,n.useMemo)(()=>T.filter(e=>"live"===e.state).length,[T]),tq=(0,n.useRef)(tD);tq.current=tD;let tH=(0,n.useCallback)(e=>{let t=e.trim();t&&((0,J.cY)("showroom.voice.auto-send",{len:t.length}),tq.current(t))},[]),tV=e.voiceWsUrl(),tJ=(0,n.useRef)(null),tW=(0,n.useCallback)(()=>{let e=tJ.current;if(!e||!e.speaking)return;let t=e.cancelInFlight();(0,J.cY)("showroom.voice.barge-in.fire",{cancelled:t})},[]),tQ=(0,k.sS)({wsUrl:tV,...t.token?{token:t.token}:{},onTranscript:tH,onSpeechActivity:tW}),[tZ,t$]=(0,n.useState)(!1),tX=function(e){var t;let a=void 0!==window.speechSynthesis,r=null!=(t=e.language)?t:"ko-KR",o=(0,n.useRef)(e.enabled);o.current=e.enabled;let l=(0,n.useRef)(0),[i,s]=(0,n.useState)(!1),d=(0,n.useCallback)(()=>{s(l.current>0)},[]),c=(0,n.useCallback)(()=>{if(!a)return 0;let e=l.current;if(0===e)return 0;(0,J.cY)("voice.tts.cancel-in-flight",{cancelled:e});try{window.speechSynthesis.cancel()}catch(e){}return l.current=0,d(),e},[a,d]);(0,n.useEffect)(()=>{a&&(e.enabled||c())},[e.enabled,a,c]);let u=(0,n.useRef)({}),m=(0,n.useRef)([]);return(0,n.useEffect)(()=>{var e,t;if(!a)return;let r=()=>{m.current=window.speechSynthesis.getVoices()};return r(),null==(e=(t=window.speechSynthesis).addEventListener)||e.call(t,"voiceschanged",r),()=>{var e,t;null==(e=(t=window.speechSynthesis).removeEventListener)||e.call(t,"voiceschanged",r)}},[a]),(0,n.useEffect)(()=>{if(!a||!o.current){u.current=e.panelStates;return}let t=function(e,t){let a=[];for(let[l,i]of Object.entries(t)){var r,n,o;let t=e[l],s=null!=(r=null==t?void 0:t.streaming)&&r&&!i.streaming,d=(null!=(n=i.messages.length)?n:0)>(null!=(o=null==t?void 0:t.messages.length)?o:0);if(!s||!d)continue;let c=i.messages[i.messages.length-1];if(!c||"assistant"!==c.role)continue;let u=c.text.trim();u&&a.push({panelId:l,text:u})}return a}(u.current,e.panelStates);if(u.current=e.panelStates,0===t.length)return;let n=m.current;for(let{panelId:a,text:o}of t){var i;let t=e.panels.find(e=>e.id===a);if(!t)continue;let s=new SpeechSynthesisUtterance((i=y(t,e.panels),"@".concat(i," \xb7 ")+o)),c=function(e){var t;let a=function(e,t){if(0===e.length)return[];let a=t.toLowerCase(),r=e.filter(e=>e.lang.toLowerCase()===a);if(r.length>0)return r;let n=a.split("-")[0];return e.filter(e=>e.lang.toLowerCase().startsWith(n))}(e.voices,e.language);if(0===a.length)return null;let r=function(e){let t=5381;for(let a=0;a<e.length;a+=1)t=(t<<5)+t+e.charCodeAt(a)|0;return t>>>0}(e.panelId)%a.length;return null!=(t=a[r])?t:null}({panelId:a,language:r,voices:n});c&&(s.voice=c),s.lang=r;let u=()=>{l.current>0&&(l.current-=1),d()};s.onend=u,s.onerror=u;try{window.speechSynthesis.speak(s),l.current+=1,d()}catch(e){}}},[e.panelStates,e.panels,a,r,d]),{supported:a,speaking:i,cancelInFlight:c}}({panelStates:e7,panels:T,enabled:tQ.active&&!tZ,language:"ko-KR"});tJ.current={cancelInFlight:tX.cancelInFlight,speaking:tX.speaking},tM.current=tX.cancelInFlight,(0,W.Si)({enabled:tX.speaking,onActivate:()=>{let e=tX.cancelInFlight();(0,J.cY)("showroom.voice.barge-in.spacebar",{cancelled:e}),tQ.forceListen()}});let tG=(0,n.useRef)(null);(0,n.useEffect)(()=>{let e=tQ.active?tQ.phase:"off";null!==tG.current&&tG.current!==e&&("off"===e?eX.announce(eZ.voiceToggled(!1)):eX.announce(eZ.voicePhase(e))),tG.current=e},[tQ.active,tQ.phase,eX]);let t0=(0,n.useRef)(null);(0,n.useEffect)(()=>{null!==t0.current&&t0.current!==tZ&&eX.announce(eZ.ttsMuted(tZ)),t0.current=tZ},[tZ,eX]),(0,n.useEffect)(()=>{function e(e){let t=(0,eK.ZQ)({key:e.key,metaKey:e.metaKey,ctrlKey:e.ctrlKey,shiftKey:e.shiftKey,altKey:e.altKey,fromEditable:(0,eK._i)(e.target)});if(t)switch(t){case"focus-broadcast-input":{e.preventDefault();let a=document.getElementById("showroom-broadcast-input");a&&(a.focus(),a.setSelectionRange(a.value.length,a.value.length)),(0,J.cY)("showroom.shortcut",{id:t,focused:!!a});break}case"toggle-role-judge":e.preventDefault(),eG("local-llm"===eL?"keyword":"local-llm"),(0,J.cY)("showroom.shortcut",{id:t});break;case"toggle-voice":if(e.preventDefault(),!tV)return void(0,J.cY)("showroom.shortcut.suppressed",{id:t,reason:"no-ws-url"});tQ.toggle(),(0,J.cY)("showroom.shortcut",{id:t});break;case"toggle-tts":if(e.preventDefault(),!tX.supported||!tQ.active)return void(0,J.cY)("showroom.shortcut.suppressed",{id:t,reason:"tts-unavailable"});t$(e=>!e),(0,J.cY)("showroom.shortcut",{id:t});break;case"open-help":e.preventDefault(),eE(!0),(0,J.cY)("showroom.shortcut",{id:t})}}return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[eL,eG,tQ,tV,tX.supported]);let t1=eF({active:ey,skipInitialFocus:!0});return(0,r.jsxs)("div",{className:"flex h-full flex-col bg-zinc-50 dark:bg-zinc-950","data-testid":"showroom-layout",children:[(0,r.jsx)("div",{"aria-live":"polite","aria-atomic":"true",className:"sr-only","data-testid":"showroom-live-announcer",children:eX.message}),(0,r.jsx)(eA,{}),(0,r.jsxs)("header",{className:"flex flex-wrap items-center justify-between gap-1 border-b border-zinc-200 bg-white px-2 py-2 dark:border-zinc-800 dark:bg-zinc-900 sm:gap-2 sm:px-4",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)(o.A,{className:"size-5 text-zinc-600 dark:text-zinc-300","aria-hidden":!0}),(0,r.jsx)("span",{className:"text-sm font-medium text-zinc-900 dark:text-zinc-100",children:"Showroom"}),z&&(0,r.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-full border border-amber-300 bg-amber-50 px-2 py-0.5 text-[11px] font-medium text-amber-700 dark:border-amber-700 dark:bg-amber-900/30 dark:text-amber-300","data-testid":"showroom-active-name",title:"Active showroom: ".concat(z),children:[(0,r.jsx)(o.A,{className:"size-3","aria-hidden":!0}),z,(0,r.jsx)("button",{type:"button",onClick:ts,className:"rounded-full p-0.5 hover:bg-amber-100 dark:hover:bg-amber-900/50","aria-label":"Clear active showroom (return to ephemeral)","data-testid":"showroom-active-clear",children:(0,r.jsx)(l.A,{className:"size-2.5","aria-hidden":!0})})]}),(0,r.jsxs)("span",{className:"text-xs text-zinc-500","data-testid":"showroom-counts",children:[T.length," panel \xb7 ",tB," live"]}),(0,r.jsx)(eR,{})]}),(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsxs)("button",{type:"button",onClick:tY,className:"inline-flex items-center gap-1 rounded-md border border-zinc-300 bg-white px-2 py-1 text-xs hover:bg-zinc-50 dark:border-zinc-700 dark:bg-zinc-800 dark:hover:bg-zinc-700","aria-label":"Add chat panel",title:"Add chat panel","data-testid":"showroom-add-panel",children:[(0,r.jsx)(i.A,{className:"size-3.5","aria-hidden":!0}),"Chat"]}),(0,r.jsxs)("div",{className:"relative",children:[(0,r.jsxs)("button",{type:"button",onClick:()=>ek(e=>!e),className:"inline-flex items-center gap-1 rounded-md border border-amber-300 bg-white px-2 py-1 text-xs text-amber-700 hover:bg-amber-50 dark:border-amber-700 dark:bg-zinc-800 dark:text-amber-300 dark:hover:bg-amber-900/30","aria-label":"Add agent CLI panel","aria-expanded":ew,title:"Add agent CLI panel (codex \xb7 claude \xb7 gemini)","data-testid":"showroom-add-agent-toggle",children:[(0,r.jsx)(s.A,{className:"size-3.5","aria-hidden":!0}),"Agent"]}),ew&&(0,r.jsx)("div",{className:"absolute right-0 top-full z-10 mt-1 w-44 rounded-md border border-zinc-300 bg-white text-xs shadow-lg dark:border-zinc-700 dark:bg-zinc-800","data-testid":"showroom-agent-menu",children:I.map(e=>(0,r.jsxs)("button",{type:"button",onClick:()=>tR(e),className:"block w-full border-b border-zinc-200/50 px-2 py-1.5 text-left hover:bg-zinc-50 last:border-b-0 dark:border-zinc-700/50 dark:hover:bg-zinc-700","data-testid":"showroom-add-agent-".concat(e),children:[(0,r.jsxs)("span",{className:"font-medium",children:[e,"-cli"]}),(0,r.jsx)("span",{className:"ml-1 text-[10px] text-zinc-500",children:"CLI agent"})]},e))})]}),(0,r.jsxs)("button",{type:"button",onClick:ta,disabled:0===T.length,className:"inline-flex items-center gap-1 rounded-md border border-zinc-300 bg-white px-2 py-1 text-xs hover:bg-zinc-50 disabled:cursor-not-allowed disabled:opacity-50 dark:border-zinc-700 dark:bg-zinc-800 dark:hover:bg-zinc-700","aria-label":"Save layout",title:"Save current panel layout","data-testid":"showroom-save-layout",children:[(0,r.jsx)(d.A,{className:"size-3.5","aria-hidden":!0}),"Save"]}),(0,r.jsxs)("div",{className:"relative",children:[(0,r.jsxs)("button",{type:"button",onClick:()=>ev(e=>!e),disabled:0===eb.length,className:"inline-flex items-center gap-1 rounded-md border border-zinc-300 bg-white px-2 py-1 text-xs hover:bg-zinc-50 disabled:cursor-not-allowed disabled:opacity-50 dark:border-zinc-700 dark:bg-zinc-800 dark:hover:bg-zinc-700","aria-label":"Load saved layout",title:0===eb.length?"저장된 layout 없음":"".concat(eb.length," saved layout"),"aria-expanded":eg,"data-testid":"showroom-load-toggle",children:[(0,r.jsx)(c.A,{className:"size-3.5","aria-hidden":!0}),"Load",eb.length>0&&(0,r.jsx)("span",{className:"ml-1 text-[10px] text-zinc-500",children:eb.length})]}),eg&&eb.length>0&&(0,r.jsx)("div",{className:"absolute right-0 top-full z-10 mt-1 max-h-64 w-64 overflow-y-auto rounded-md border border-zinc-300 bg-white text-xs shadow-lg dark:border-zinc-700 dark:bg-zinc-800","data-testid":"showroom-load-menu",children:eb.map(e=>(0,r.jsxs)("div",{className:"flex items-center justify-between gap-2 border-b border-zinc-200/50 px-2 py-1 last:border-b-0 dark:border-zinc-700/50",children:[(0,r.jsxs)("button",{type:"button",onClick:()=>ti(e),className:"flex flex-1 flex-col text-left hover:text-zinc-900 dark:hover:text-zinc-100","data-testid":"showroom-load-".concat(e.name),children:[(0,r.jsx)("span",{className:"font-medium",children:e.name}),(0,r.jsxs)("span",{className:"text-[10px] text-zinc-500",children:[e.panels.length," panel \xb7 ",new Date(e.savedAt).toLocaleString()]})]}),(0,r.jsx)("button",{type:"button",onClick:()=>tc(e),className:"rounded p-1 text-rose-600 hover:bg-rose-50 dark:hover:bg-rose-900/30","aria-label":"Delete layout ".concat(e.name),"data-testid":"showroom-delete-".concat(e.name),children:(0,r.jsx)(u.A,{className:"size-3","aria-hidden":!0})})]},e.name))})]}),(0,r.jsxs)("button",{type:"button",onClick:()=>e8(!eP),className:"inline-flex items-center gap-1 rounded-md border px-2 py-1 text-xs ".concat(eP?"border-indigo-400 bg-indigo-50 text-indigo-700 dark:border-indigo-600 dark:bg-indigo-900/30 dark:text-indigo-300":"border-amber-300 bg-amber-50 text-amber-700 dark:border-amber-700 dark:bg-amber-900/30 dark:text-amber-300"),"aria-label":"Toggle daemon multi-LLM dispatch preference (DM stage 3 \xb7 always engaged)","aria-pressed":eP,title:eP?"DM stage 3 \xb7 always engaged \xb7 single ACP \xb7 multiLlm hint \xb7 namespaced sub-stream":"DM preference OFF \xb7 panel-local fallback was removed in DM stage 3 \xb7 DM dispatch still active","data-testid":"showroom-dm-toggle",children:[(0,r.jsx)(m.A,{className:"size-3.5","aria-hidden":!0}),"DM",eP&&(0,r.jsx)("span",{className:"ml-0.5 rounded bg-indigo-600 px-1 text-[9px] uppercase text-white","data-testid":"showroom-dm-toggle-on",children:"on"})]}),(0,r.jsxs)("button",{type:"button",onClick:()=>te("mixed"===e1?"isolated":"mixed"),className:"inline-flex items-center gap-1 rounded-md border px-2 py-1 text-xs ".concat("mixed"===e1?"border-fuchsia-400 bg-fuchsia-50 text-fuchsia-700 dark:border-fuchsia-600 dark:bg-fuchsia-900/30 dark:text-fuchsia-300":"border-zinc-300 bg-white text-zinc-700 hover:bg-zinc-50 dark:border-zinc-700 dark:bg-zinc-800 dark:text-zinc-300 dark:hover:bg-zinc-700"),"aria-label":"Toggle DM stage 4 mixed history mode","aria-pressed":"mixed"===e1,title:"mixed"===e1?"Mixed history ON \xb7 siblings’ last replies auto-prepended as <prior_answer> blocks (cross-model deliberation automation \xb7 token cost increases)":"Mixed history OFF \xb7 each panel sees only its own thread (default \xb7 token-frugal)","data-testid":"showroom-history-mode-toggle",children:[(0,r.jsx)(m.A,{className:"size-3.5","aria-hidden":!0}),"mix","mixed"===e1&&(0,r.jsx)("span",{className:"ml-0.5 rounded bg-fuchsia-600 px-1 text-[9px] uppercase text-white","data-testid":"showroom-history-mode-toggle-on",children:"on"})]}),(0,r.jsxs)("button",{type:"button",onClick:()=>eG("local-llm"===eL?"keyword":"local-llm"),className:"inline-flex items-center gap-1 rounded-md border px-2 py-1 text-xs ".concat("local-llm"===eL?"border-violet-400 bg-violet-50 text-violet-700 dark:border-violet-600 dark:bg-violet-900/30 dark:text-violet-300":"border-zinc-300 bg-white text-zinc-600 dark:border-zinc-700 dark:bg-zinc-800 dark:text-zinc-400"),"aria-label":"Toggle role-judge backend (keyword vs local-llm)","aria-pressed":"local-llm"===eL,title:"local-llm"===eL?"Local LLM judge \xb7 ambiguous prompts call daemon → LM Studio (model: ".concat(e_||"default","). Click to switch to keyword-only."):"Keyword-only \xb7 ambiguous prompts broadcast (default). Click to engage local LLM.","data-testid":"showroom-role-judge-toggle",children:[(0,r.jsx)(s.A,{className:"size-3.5","aria-hidden":!0}),"judge","local-llm"===eL&&(0,r.jsx)("span",{className:"ml-0.5 rounded bg-violet-600 px-1 text-[9px] uppercase text-white","data-testid":"showroom-role-judge-toggle-on",children:"LLM"})]}),"local-llm"===eL&&(0,r.jsxs)("select",{value:e_,onChange:e=>e0(e.target.value),className:"rounded-md border border-violet-300 bg-white px-2 py-1 text-xs text-violet-700 dark:border-violet-700 dark:bg-zinc-800 dark:text-violet-300","aria-label":"Select LLM judge model",title:eV?"Model list unavailable: ".concat(eV,". Type the model id directly via DevTools localStorage."):"Pick a deployed model \xb7 ".concat(eB.length," loaded \xb7 empty = daemon default (mlx-community/gemma-4-26b-a4b-it)"),"data-testid":"showroom-role-judge-model-select",children:[(0,r.jsx)("option",{value:"",children:"(daemon default)"}),(()=>{let e=eB.filter(e=>!/embed/i.test(e.id)),t=new Map;for(let r of e){var a,n;let e=null!=(a=r.host)?a:"",o=null!=(n=t.get(e))?n:[];o.push(r),t.set(e,o)}return t.size<=1?e.map(e=>{var t;return(0,r.jsx)("option",{value:e.id,children:e.id},"".concat(null!=(t=e.host)?t:"h","::").concat(e.id))}):Array.from(t.entries()).map(e=>{let[t,a]=e;return(0,r.jsx)("optgroup",{label:t||"(unknown host)",children:a.map(e=>(0,r.jsx)("option",{value:e.id,children:e.id},"".concat(t,"::").concat(e.id)))},t||"unknown")})})()]}),(0,r.jsxs)("button",{type:"button",onClick:()=>{tQ.toggle()},disabled:!tV,className:"inline-flex items-center gap-1 rounded-md border px-2 py-1 text-xs ".concat(tQ.active?"border-emerald-400 bg-emerald-50 text-emerald-700 dark:border-emerald-600 dark:bg-emerald-900/30 dark:text-emerald-300":"border-zinc-300 bg-white text-zinc-700 hover:bg-zinc-50 dark:border-zinc-700 dark:bg-zinc-800 dark:text-zinc-300 dark:hover:bg-zinc-700"," disabled:cursor-not-allowed disabled:opacity-50"),"aria-label":tQ.active?"Stop voice mode":"Start voice mode","aria-pressed":tQ.active,title:tV?tQ.active?"Voice ".concat(tQ.phase," \xb7 click to stop"):"Voice mode OFF \xb7 click to start mic + STT":"Voice WebSocket URL is unavailable — daemon `/voice/ws` not configured","data-testid":"showroom-voice-toggle",children:[tQ.active?(0,r.jsx)(p.A,{className:"size-3.5","aria-hidden":!0}):(0,r.jsx)(h.A,{className:"size-3.5","aria-hidden":!0}),tQ.active&&(0,r.jsx)("span",{className:"ml-0.5 rounded bg-emerald-600 px-1 text-[9px] uppercase text-white","data-testid":"showroom-voice-toggle-on",children:"listening"===tQ.phase?"listen":tQ.phase})]}),(0,r.jsxs)("button",{type:"button",onClick:()=>t$(e=>!e),disabled:!tX.supported||!tQ.active,className:"inline-flex items-center gap-1 rounded-md border px-2 py-1 text-xs ".concat(tZ?"border-zinc-300 bg-zinc-50 text-zinc-500 dark:border-zinc-700 dark:bg-zinc-800 dark:text-zinc-400":"border-sky-300 bg-sky-50 text-sky-700 dark:border-sky-700 dark:bg-sky-900/30 dark:text-sky-300"," disabled:cursor-not-allowed disabled:opacity-50"),"aria-label":tZ?"Unmute panel TTS":"Mute panel TTS","aria-pressed":tZ,title:tX.supported?tQ.active?tZ?"Panel TTS muted \xb7 click to unmute":"Panel TTS active \xb7 click to mute":"Start voice mode to enable per-panel TTS":"Web Speech API is unavailable in this browser","data-testid":"showroom-tts-toggle",children:[tZ?(0,r.jsx)(b.A,{className:"size-3.5","aria-hidden":!0}):(0,r.jsx)(x.A,{className:"size-3.5","aria-hidden":!0}),"TTS"]}),(0,r.jsxs)("button",{type:"button",onClick:tL,className:"inline-flex items-center gap-1 rounded-md border border-rose-300 bg-white px-2 py-1 text-xs text-rose-700 hover:bg-rose-50 dark:border-rose-700 dark:bg-zinc-800 dark:text-rose-300 dark:hover:bg-rose-900/30","aria-label":"Stop all panels",title:"Stop all (placeholder \xb7 P2 wire)",children:[(0,r.jsx)(g.A,{className:"size-3.5","aria-hidden":!0}),"Stop all"]})]})]}),(0,r.jsxs)("div",{className:"flex flex-1 flex-col gap-2 overflow-hidden p-2 ".concat((null==A?void 0:A.get("layout"))==="horizontal"?"flex-row":"xl:flex-row"),"data-testid":"showroom-grid",children:[0===T.length&&(0,r.jsx)("div",{className:"flex flex-1 items-center justify-center text-sm text-zinc-500",children:"모든 panel 이 닫혔습니다 \xb7 위의 + Panel 으로 추가"}),T.map(t=>(0,r.jsx)(en,{panel:t,allPanels:T,client:e,onClose:()=>t_(t.id),onState:e=>tU(t.id,e),onProvider:e=>tF(t.id,e),onPromoteAssistant:tb(t),outgoingEdges:F(ec,t.id),onAddChainEdge:tC,onRemoveChainEdge:tI,onToggleChainEdgeHitl:tA,onRoleHint:e=>tK(t.id,e),onPersona:e=>tO(t.id,e),dmState:e7[t.id],dmSessionId:e3},t.id))]}),(0,r.jsx)(eO,{open:eT,onClose:()=>eE(!1)}),G&&(0,r.jsx)(eH,{estimate:G.estimate,onConfirm:to,onCancel:tl}),(0,r.jsx)(eJ,{pending:ep[0]?{from:ep[0].from,to:ep[0].to,forwardText:ep[0].forwardText}:void 0,queueLength:ep.length,onConfirm:tE,onCancel:tP}),ey&&(0,r.jsx)("div",{ref:t1,className:"fixed inset-0 z-50 flex items-center justify-center bg-black/40 p-4",role:"dialog","aria-modal":"true","aria-labelledby":"showroom-save-modal-title","data-testid":"showroom-save-modal",onKeyDown:e=>{"Escape"===e.key&&(e.stopPropagation(),tn())},children:(0,r.jsxs)("div",{className:"w-full max-w-md rounded-lg border border-zinc-300 bg-white p-4 shadow-xl dark:border-zinc-700 dark:bg-zinc-900",children:[(0,r.jsx)("h2",{id:"showroom-save-modal-title",className:"mb-2 text-sm font-medium text-zinc-900 dark:text-zinc-100",children:"Save Showroom layout"}),(0,r.jsxs)("p",{className:"mb-3 text-xs text-zinc-500",children:[T.length," panel \xb7 sessionId 는 fresh handshake 으로 load 시 재발급"]}),(0,r.jsx)("input",{type:"text",value:eN,onChange:e=>{eS(e.target.value),eI(null)},onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),tr())},placeholder:"layout name (e.g., morning \xb7 debug-X \xb7 pair-A)",className:"mb-2 w-full rounded-md border border-zinc-300 bg-white px-2 py-1.5 text-sm focus:outline-none focus:ring-2 focus:ring-indigo-400 dark:border-zinc-700 dark:bg-zinc-800","data-testid":"showroom-save-modal-input",autoFocus:!0}),eN.trim()&&eb.some(e=>e.name===eN.trim())&&(0,r.jsx)("p",{className:"mb-2 text-[11px] text-amber-700 dark:text-amber-300","data-testid":"showroom-save-modal-overwrite-warn",children:"같은 이름의 layout 이 이미 있어요 \xb7 save 시 overwrite"}),eC&&(0,r.jsx)("p",{className:"mb-2 text-[11px] text-rose-700 dark:text-rose-300","data-testid":"showroom-save-modal-error",children:eC}),(0,r.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,r.jsx)("button",{type:"button",onClick:tn,className:"rounded-md border border-zinc-300 bg-white px-3 py-1 text-xs hover:bg-zinc-50 dark:border-zinc-700 dark:bg-zinc-800 dark:hover:bg-zinc-700","data-testid":"showroom-save-modal-cancel",children:"Cancel"}),(0,r.jsxs)("button",{type:"button",onClick:tr,disabled:!eN.trim(),className:"inline-flex items-center gap-1 rounded-md bg-indigo-600 px-3 py-1 text-xs font-medium text-white hover:bg-indigo-500 disabled:cursor-not-allowed disabled:opacity-50","data-testid":"showroom-save-modal-confirm",children:[(0,r.jsx)(d.A,{className:"size-3","aria-hidden":!0}),"Save"]})]})]})}),(0,r.jsx)(eD,{sessionId:e3,onTap:e=>{ef.K.emit({surface:"pwa",intent:{layer:"selection",kind:"pwa.selection.intent_button_tap",target:{kind:"intent_button",id:e,label:e}},...e3?{context:{active_showroom_session_id:e3}}:{}}),tD(e)}}),(0,r.jsx)(ez,{onSend:tD,panels:T,liveCount:tB,attachments:M,onAttach:tu,onRemoveAttachment:tm,terminalContexts:L,onPinTerminalContext:tp,onRemoveTerminalContext:th,priorAnswers:V,onRemovePriorAnswer:tx,onTogglePriorAnswer:tg,urlContexts:et,onAddUrlContext:tf,onRemoveUrlContext:tv,clipboardContexts:er,onAddClipboardContext:tw,onRemoveClipboardContext:tk,videoContexts:el,onAddVideoContext:ty,onRemoveVideoContext:tj,audioContexts:es,onAddAudioContext:tz,onRemoveAudioContext:tN,onUpdateAudioTranscript:tS,listTerminals:()=>e.listTerminals(),fetchTerminalScrollback:(t,a)=>e.fetchTerminalScrollback(t,a)})]})}},43121:(e,t,a)=>{"use strict";a.d(t,{X:()=>i});var r=a(24725);let n=null,o=[],l=[];function i(e){let[t,a]=(0,r.useState)(()=>n&&Date.now()-n.at<3e5?n.providers:o),[i,s]=(0,r.useState)(()=>n&&Date.now()-n.at<3e5?n.models:l),[d,c]=(0,r.useState)(!1),[u,m]=(0,r.useState)(null),p=(0,r.useCallback)(async()=>{c(!0),m(null);try{let t=await e.getRegistryCatalog(),r=t.providers.map(e=>({id:e.id,displayName:e.displayName,aliases:e.aliases,modelPrefixes:e.modelPrefixes,apiKeyEnv:e.apiKeyEnv,endpointPattern:e.endpointPattern,capabilities:e.capabilities,builtIn:e.builtIn})),o=t.models.map(e=>({id:e.id,provider:e.provider,displayName:e.displayName,...void 0!==e.family?{family:e.family}:{},...void 0!==e.familyShortcut?{familyShortcut:e.familyShortcut}:{},...void 0!==e.contextSize?{contextSize:e.contextSize}:{},...void 0!==e.outputMaxTokens?{outputMaxTokens:e.outputMaxTokens}:{},...void 0!==e.vision?{vision:e.vision}:{},...void 0!==e.reasoning?{reasoning:e.reasoning}:{},...void 0!==e.toolCalling?{toolCalling:e.toolCalling}:{},...void 0!==e.pricing?{pricing:e.pricing}:{},...void 0!==e.deprecated?{deprecated:e.deprecated}:{},...void 0!==e.releaseDate?{releaseDate:e.releaseDate}:{},...void 0!==e.kind?{kind:e.kind}:{}}));n={at:Date.now(),providers:r,models:o},a(r),s(o)}catch(e){m(e instanceof Error?e.message:String(e))}finally{c(!1)}},[e]);(0,r.useEffect)(()=>{if(n&&Date.now()-n.at<3e5){a(n.providers),s(n.models);return}p()},[p]);let h=(0,r.useCallback)(async()=>{n=null,await p()},[p]),b=(0,r.useMemo)(()=>t.map(e=>e.id),[t]),x=(0,r.useMemo)(()=>{let e=new Map;for(let t of i){let a=e.get(t.provider);a?a.push(t):e.set(t.provider,[t])}return t=>{var a;return t?null!=(a=e.get(t))?a:[]:i}},[i]);return{providers:t,providerIds:b,models:i,modelsByProvider:x,loading:d,error:u,reload:h}}},46176:(e,t,a)=>{"use strict";a.d(t,{v:()=>l});var r=a(24725),n=a(54111);let o=null;function l(e){let[t,a]=(0,r.useState)(()=>o&&Date.now()-o.at<6e4?o.data:[]),[l,i]=(0,r.useState)(!1),[s,d]=(0,r.useState)(null),c=(0,r.useCallback)(async()=>{i(!0),d(null);try{let t=await e.listPersonas();o={at:Date.now(),data:t.personas},a(t.personas)}catch(e){d(e instanceof Error?e.message:String(e))}finally{i(!1)}},[e]);(0,r.useEffect)(()=>{if(o&&Date.now()-o.at<6e4)return void a(o.data);c()},[c]);let u=(0,r.useCallback)(async()=>{o=null,await c()},[c]);return(0,r.useEffect)(()=>{let t=e.personasEventsUrl();if(!t)return;let a=null;try{a=new EventSource(t)}catch(e){(0,n.cY)("showroom.personas.sse.construct-error",{error:String(e)});return}let r=e=>()=>{"hello"!==e&&((0,n.cY)("showroom.personas.sse.event",{kind:e}),o=null,c())};return a.addEventListener("hello",r("hello")),a.addEventListener("load-dir",r("load-dir")),a.addEventListener("reload-all",r("reload-all")),a.addEventListener("upsert",r("upsert")),a.addEventListener("remove",r("remove")),a.onerror=e=>{(0,n.cY)("showroom.personas.sse.error",{type:e.type})},()=>{try{null==a||a.close()}catch(e){}}},[e,c]),{personas:t,loading:l,error:s,reload:u}}},49333:(e,t,a)=>{"use strict";a.d(t,{Zr:()=>l,f6:()=>n,oD:()=>o});let r="elanous.daemon.sessionId";function n(){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 o(){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=n();return localStorage.setItem(r,t),t}function l(){let e=n();return localStorage.setItem(r,e),e}},52738:(e,t,a)=>{"use strict";function r(e){return e.metaKey||e.ctrlKey}function n(e){let t=e.key.toLowerCase();return!r(e)||e.shiftKey||e.altKey||"k"!==t?r(e)&&e.shiftKey&&!e.altKey&&"j"===t?e.fromEditable?null:"toggle-role-judge":r(e)&&e.shiftKey&&!e.altKey&&"m"===t?e.fromEditable?null:"toggle-voice":r(e)&&e.shiftKey&&!e.altKey&&"y"===t?e.fromEditable?null:"toggle-tts":"?"!==e.key||r(e)||e.altKey?null:e.fromEditable?null:"open-help":"focus-broadcast-input"}function o(e){var t;if(!e)return!1;let a=e.tagName;if(!a)return!1;if("INPUT"===a||"TEXTAREA"===a||"SELECT"===a)return!0;let r=null==(t=e.getAttribute)?void 0:t.call(e,"contenteditable");return""===r||"true"===r}a.d(t,{ZQ:()=>n,_i:()=>o,nm:()=>l});let l=[{id:"focus-broadcast-input",combo:"⌘K / Ctrl+K",effect:"Focus broadcast input"},{id:"toggle-role-judge",combo:"⌘⇧J / Ctrl+⇧J",effect:"Toggle role-judge backend"},{id:"toggle-voice",combo:"⌘⇧M / Ctrl+⇧M",effect:"Toggle voice mode (mic)"},{id:"toggle-tts",combo:"⌘⇧Y / Ctrl+⇧Y",effect:"Toggle TTS mute"},{id:"open-help",combo:"?",effect:"Open this help overlay"}]},83026:(e,t,a)=>{Promise.resolve().then(a.bind(a,24169))}},e=>{e.O(0,[3757,9972,7870,9250,7905,6580,2341,7888,2869,9187,7358],()=>e(e.s=83026)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8147],{1102:(e,r,t)=>{"use strict";t.d(r,{$:()=>o});var n=t(59473),a=t(88008),s=t(83511),i=t(63741);let d=(0,s.F)("group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",{variants:{variant:{default:"bg-primary text-primary-foreground [a]:hover:bg-primary/80",outline:"border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80 aria-expanded:bg-secondary aria-expanded:text-secondary-foreground",ghost:"hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50",destructive:"bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",xs:"h-6 gap-1 rounded-[min(var(--radius-md),10px)] px-2 text-xs in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3",sm:"h-7 gap-1 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5",lg:"h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",icon:"size-8","icon-xs":"size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg [&_svg:not([class*='size-'])]:size-3","icon-sm":"size-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg","icon-lg":"size-9"}},defaultVariants:{variant:"default",size:"default"}});function o(e){let{className:r,variant:t="default",size:s="default",...o}=e;return(0,n.jsx)(a.$,{"data-slot":"button",className:(0,i.cn)(d({variant:t,size:s,className:r})),...o})}},12711:(e,r,t)=>{"use strict";t.d(r,{C:()=>l,DaemonProvider:()=>c,Q:()=>u});var n=t(59473),a=t(24725),s=t(62474),i=t(49333),d=t(56580),o=t(54111);let l=(0,a.createContext)(null);function c(e){let{children:r}=e,t={baseUrl:"",token:"",provider:""},[c,u]=(0,a.useState)(t),[g,m]=(0,a.useState)(""),[p]=(0,a.useState)(()=>new d.ki(t));(0,a.useEffect)(()=>{let e=(0,s.Fp)();u(e),p.updateConfig(e),m((0,i.oD)()),(0,o.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 r=(0,s.Fp)();p.updateConfig(r),u(r),(0,o.cY)("webterm.provider.daemon.config-cross-tab",{key:e.key,hasToken:!!r.token});return}"elanous.daemon.sessionId"===e.key&&e.newValue&&m(r=>r===e.newValue?r:((0,o.cY)("webterm.provider.daemon.session-cross-tab",{previous:r||"(empty)",next:e.newValue}),e.newValue))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)},[p]);let x=e=>{u(r=>{let t={...r,...e};return(0,s.Qc)(e),p.updateConfig(t),(0,o.cY)("webterm.provider.daemon.config-update",{keys:Object.keys(e)}),t})},v=e=>{m(e),localStorage.setItem("elanous.daemon.sessionId",e),(0,o.cY)("webterm.provider.daemon.session-set",{sessionId:e})},b=(0,a.useMemo)(()=>({config:c,setConfig:x,client:p,sessionId:g,setSessionId:v}),[c,p,g]);return(0,n.jsx)(l.Provider,{value:b,children:r})}function u(){let e=(0,a.useContext)(l);if(!e)throw Error("useDaemon must be used inside <DaemonProvider>");return e}},31022:(e,r,t)=>{"use strict";t.r(r),t.d(r,{default:()=>o});var n=t(59473),a=t(24725),s=t(12711);function i(){let{config:e}=(0,s.Q)(),[r,t]=(0,a.useState)({kind:"loading"});return(0,a.useEffect)(()=>{let r=!1;return(t({kind:"loading"}),e.baseUrl)?((async()=>{try{let n=await fetch("".concat(e.baseUrl.replace(/\/$/,""),"/api/task-agent/board"),{headers:e.token?{Authorization:"Bearer ".concat(e.token)}:{}});if(!n.ok)throw Error("HTTP ".concat(n.status));let a=await n.json();if(!a||"object"!=typeof a||!("board"in a)||!Array.isArray(a.board))throw Error("잘못된 보드 응답");r||t({kind:"ready",tasks:function e(r){return r.flatMap(r=>{var t;return"task"===r.level?[{level:"task",id:r.id,title:r.title,ledger:r.ledger}]:e(null!=(t=r.children)?t:[])})}(a.board)})}catch(e){r||t({kind:"error",message:e instanceof Error?e.message:String(e)})}})(),()=>{r=!0}):void t({kind:"error",message:"NEXUS 연결이 설정되지 않았습니다."})},[e.baseUrl,e.token]),(0,n.jsxs)("section",{"aria-label":"Task agent ledger",className:"space-y-4 rounded-2xl border border-border bg-card p-4",children:[(0,n.jsxs)("header",{children:[(0,n.jsx)("h1",{className:"text-xl font-semibold tracking-tight",children:"과제 원장"}),(0,n.jsx)("p",{className:"text-sm text-muted-foreground",children:"Task agent의 읽기 전용 과제 카드"})]}),"loading"===r.kind&&(0,n.jsx)("p",{role:"status",className:"text-sm text-muted-foreground",children:"과제 원장 불러오는 중…"}),"error"===r.kind&&(0,n.jsxs)("p",{role:"alert",className:"text-sm text-destructive",children:["과제 원장 조회 실패: ",r.message]}),"ready"===r.kind&&(0===r.tasks.length?(0,n.jsx)("p",{role:"status",className:"text-sm text-muted-foreground",children:"과제 원장이 비어 있습니다."}):(0,n.jsx)("ul",{className:"grid gap-3 sm:grid-cols-2 xl:grid-cols-3",children:r.tasks.map(e=>{var r,t,a,s,i,d,o;return(0,n.jsxs)("li",{className:"min-w-0 space-y-2 rounded-xl border border-border bg-background p-4",children:[(0,n.jsx)("h2",{className:"break-words text-sm font-semibold",children:e.title}),(0,n.jsxs)("dl",{className:"space-y-1 break-all text-xs text-muted-foreground",children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("dt",{className:"inline",children:"runId: "}),(0,n.jsx)("dd",{className:"inline",children:null!=(i=null==(r=e.ledger)?void 0:r.runId)?i:"—"})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("dt",{className:"inline",children:"PR: "}),(0,n.jsx)("dd",{className:"inline",children:(null==(t=e.ledger)?void 0:t.pr)!=null?"#".concat(e.ledger.pr):"—"})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("dt",{className:"inline",children:"마지막 상태: "}),(0,n.jsx)("dd",{className:"inline",children:null!=(d=null==(a=e.ledger)?void 0:a.lastStatus)?d:"—"})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("dt",{className:"inline",children:"종료 이유: "}),(0,n.jsx)("dd",{className:"inline",children:null!=(o=null==(s=e.ledger)?void 0:s.exitReason)?o:"—"})]})]})]},e.id)})}))]})}var d=t(19387);function o(){let[e,r]=(0,a.useState)(!1);return(0,n.jsxs)("main",{className:"mx-auto max-w-[1600px] space-y-6 p-4",children:[(0,n.jsx)(i,{}),(0,n.jsxs)("details",{className:"rounded-2xl border border-border bg-card",onToggle:e=>r(e.currentTarget.open),children:[(0,n.jsx)("summary",{className:"cursor-pointer px-4 py-3 text-sm font-semibold",children:"옛 작업(TOX)"}),e&&(0,n.jsx)(d.B,{})]})]})}},49333:(e,r,t)=>{"use strict";t.d(r,{Zr:()=>i,f6:()=>a,oD:()=>s});let n="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 s(){let e=function(){let e=new URLSearchParams(window.location.search).get("session");return e?(localStorage.setItem(n,e),e):localStorage.getItem(n)}();if(e)return e;let r=a();return localStorage.setItem(n,r),r}function i(){let e=a();return localStorage.setItem(n,e),e}},63741:(e,r,t)=>{"use strict";t.d(r,{cn:()=>s});var n=t(74219),a=t(30223);function s(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return(0,a.QP)((0,n.$)(r))}},83380:(e,r,t)=>{Promise.resolve().then(t.bind(t,31022))}},e=>{e.O(0,[3757,7870,2265,9250,6580,9387,2869,9187,7358],()=>e(e.s=83380)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6125],{13912:(e,t,n)=>{Promise.resolve().then(n.bind(n,16869))},16869:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>u});var a=n(59473),s=n(24725),l=n(30586),r=n(76448);function c(){let e=(0,l.useRouter)(),t=(0,l.useSearchParams)(),n=(null==t?void 0:t.get("pty"))||null,c=(0,s.useCallback)(t=>{let n=function(e,t){let n=new URL(e);return n.searchParams.get("pty")===t?null:(n.searchParams.set("pty",t),"".concat(n.pathname).concat(n.search).concat(n.hash))}(window.location.href,t.id);null!==n&&e.replace(n)},[e]);return(0,a.jsx)(r.zV,{initialPtyId:n,onPtySelection:c})}function u(){return(0,a.jsx)(s.Suspense,{fallback:(0,a.jsx)("div",{className:"p-6 text-sm text-muted-foreground",children:"loading…"}),children:(0,a.jsx)(c,{})})}}},e=>{e.O(0,[3757,7870,9250,3320,5560,4227,6580,6659,2341,7888,5772,6448,2869,9187,7358],()=>e(e.s=13912)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7556],{1923:(e,t,r)=>{"use strict";r.d(t,{GM:()=>i,J3:()=>s,WF:()=>o,bR:()=>a,m:()=>c,r5:()=>n});let o="/v1/devices",n="/v1/approvals/merges",a="/v1/templates/capability-preview",s="/v1/idle-nudge/preview",i="/v1/morning-digest/showroom",c="/v1/next-fluent/dispatch"},3210:(e,t,r)=>{"use strict";r.d(t,{dY:()=>s,EX:()=>i});let o={pwaRoute:{"/":{pwa:"stable"},"/404":{pwa:"stable"},"/setup":{pwa:"stable"},"/setup/done":{pwa:"stable"},"/consult":{pwa:"stable"},"/chat":{pwa:"stable"},"/today":{pwa:"stable"},"/term":{pwa:"stable"},"/live":{pwa:"stable"},"/live-run":{pwa:"beta"},"/market":{pwa:"stable"},"/sessions":{pwa:"stable"},"/settings":{pwa:"beta"},"/editor":{pwa:"stable"},"/intake":{pwa:"beta"},"/trace":{pwa:"beta"},"/inside":{pwa:"beta"},"/board":{pwa:"beta"},"/autopilot":{pwa:"beta"},"/missions/[id]":{pwa:"beta"},"/tasks":{pwa:"beta"},"/workspace":{pwa:"beta"},"/reflection":{pwa:"beta"},"/vault":{pwa:"beta"},"/observatory":{pwa:"beta"},"/exec":{pwa:"beta"},"/outputs":{pwa:"beta"},"/field":{pwa:"beta"},"/showroom":{pwa:"beta"},"/workflows":{pwa:"beta"},"/approvals":{pwa:"tool"},"/worktrees":{pwa:"tool"},"/design-check":{pwa:"tool"},"/control":{pwa:"tool"},"/scheduler":{pwa:"ops"},"/loops":{pwa:"beta"},"/ops/release":{pwa:"ops"},"/ops/seats":{pwa:"ops"},"/ops/checklist":{pwa:"ops"},"/ceo":{pwa:"ops"},"/decisions":{pwa:"ops"},"/dashboard":{pwa:"ops"},"/pitch":{pwa:"ops"},"/bots":{pwa:"ops"},"/botlab":{pwa:"ops"},"/morning":{pwa:"broken"},"/settings/devices":{pwa:"broken"},"/workflows/chat-ui":{pwa:"broken"},"/share":{pwa:"system"}}},n=Object.fromEntries(Object.entries(o.pwaRoute).map(e=>{let[t,r]=e;return[t,r.pwa]}));function a(e){var t;let r=(null==(t=e.split(/[?#]/,1)[0])?void 0:t.replace(/\/+$/,""))||"/";return Object.prototype.hasOwnProperty.call(n,r)?r:r.startsWith("/missions/")&&-1===r.slice(10).indexOf("/")?"/missions/[id]":r}function s(e){let t=a(e);return Object.prototype.hasOwnProperty.call(n,t)?n[t]:void 0}function i(e,t,r){let n=a(t);if("general"===e&&(null==r?void 0:r.showBeta)&&"beta"===s(n))return!0;let i=function(e,t){var r;if(!Object.prototype.hasOwnProperty.call(o.pwaRoute,e))return;let n=o.pwaRoute[e];return null!=(r=n.pwa)?r:"desktop"===t?n.pwa:void 0}(n,"pwa");return!!i&&("owner"===e||"system"!==i&&("/settings"===n||"stable"===i||"contributor"===e&&("beta"===i||"tool"===i)))}},10356:(e,t,r)=>{"use strict";r.d(t,{KW:()=>a,jU:()=>o,nj:()=>n});class o{async list(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return this.client.fetchJson("/v1/sessions/store".concat(e?"?includeEmpty=1":""))}async transcript(e){return this.client.fetchJson("/v1/sessions/store/".concat(encodeURIComponent(e)))}async fork(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.client.fetchJson("/v1/sessions/store/".concat(encodeURIComponent(e),"/fork"),{method:"POST",...void 0!==t.beforeUser?{headers:{"content-type":"application/json"},body:JSON.stringify({beforeUser:t.beforeUser})}:{}})}async delete(e){return this.client.fetchJson("/v1/sessions/store/".concat(encodeURIComponent(e)),{method:"DELETE"})}constructor(e){this.client=e}}function n(e,t){let r=t.trim().toLowerCase();if(!r)return{kind:"none"};let o=e.filter(e=>e.id.toLowerCase().startsWith(r));return 1===o.length?{kind:"one",id:o[0].id}:0===o.length?{kind:"none"}:{kind:"ambiguous",count:o.length}}function a(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Date.now(),r=Date.parse(e);if(!Number.isFinite(r))return"";let o=Math.max(0,Math.floor((t-r)/1e3));return o<30?"방금":o<3600?"".concat(Math.floor(o/60),"분 전"):o<86400?"".concat(Math.floor(o/3600),"시간 전"):"".concat(Math.floor(o/86400),"일 전")}},12711:(e,t,r)=>{"use strict";r.d(t,{C:()=>l,DaemonProvider:()=>u,Q:()=>d});var o=r(59473),n=r(24725),a=r(62474),s=r(49333),i=r(56580),c=r(54111);let l=(0,n.createContext)(null);function u(e){let{children:t}=e,r={baseUrl:"",token:"",provider:""},[u,d]=(0,n.useState)(r),[p,m]=(0,n.useState)(""),[h]=(0,n.useState)(()=>new i.ki(r));(0,n.useEffect)(()=>{let e=(0,a.Fp)();d(e),h.updateConfig(e),m((0,s.oD)()),(0,c.cY)("webterm.provider.daemon.init",{baseUrl:e.baseUrl,hasToken:!!e.token})},[h]),(0,n.useEffect)(()=>{let e=e=>{if("elanous.daemon.token"===e.key||"elanous.nexus.baseUrl"===e.key){let t=(0,a.Fp)();h.updateConfig(t),d(t),(0,c.cY)("webterm.provider.daemon.config-cross-tab",{key:e.key,hasToken:!!t.token});return}"elanous.daemon.sessionId"===e.key&&e.newValue&&m(t=>t===e.newValue?t:((0,c.cY)("webterm.provider.daemon.session-cross-tab",{previous:t||"(empty)",next:e.newValue}),e.newValue))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)},[h]);let f=e=>{d(t=>{let r={...t,...e};return(0,a.Qc)(e),h.updateConfig(r),(0,c.cY)("webterm.provider.daemon.config-update",{keys:Object.keys(e)}),r})},w=e=>{m(e),localStorage.setItem("elanous.daemon.sessionId",e),(0,c.cY)("webterm.provider.daemon.session-set",{sessionId:e})},b=(0,n.useMemo)(()=>({config:u,setConfig:f,client:h,sessionId:p,setSessionId:w}),[u,h,p]);return(0,o.jsx)(l.Provider,{value:b,children:t})}function d(){let e=(0,n.useContext)(l);if(!e)throw Error("useDaemon must be used inside <DaemonProvider>");return e}},21761:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>f});var o=r(59473),n=r(24725),a=r(30586),s=r(12711),i=r(54948),c=r(80436),l=r(82735),u=r(3210),d=r(10356);let p=()=>({items:[],loading:!0,error:!1});function m(e){let{title:t,href:r,loading:n,error:a,empty:s,retry:i,children:c}=e;return(0,o.jsxs)("section",{"aria-label":t,className:"rounded-xl border border-border bg-card p-5 shadow-sm",children:[(0,o.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,o.jsx)("h2",{className:"text-lg font-semibold",children:t}),r&&(0,o.jsx)("a",{href:r,className:"text-sm font-medium text-primary underline underline-offset-4",children:"모두 보기"})]}),n?(0,o.jsx)("p",{role:"status",className:"mt-4 text-sm text-muted-foreground",children:"불러오는 중…"}):a?(0,o.jsxs)("div",{className:"mt-4 text-sm",role:"alert",children:["목록을 읽지 못했습니다. ",(0,o.jsx)("button",{type:"button",onClick:i,className:"font-medium text-primary underline underline-offset-4",children:"다시 시도"})]}):c||(0,o.jsx)("p",{className:"mt-4 text-sm text-muted-foreground",children:s})]})}function h(){let{client:e,setSessionId:t}=(0,s.Q)(),r=(0,l.In)(),h=(0,u.EX)(r,"/approvals"),f=(0,a.useRouter)(),w=(0,n.useMemo)(()=>(0,i.ll)({client:e}),[e]),b=(0,n.useMemo)(()=>(0,c.tV)({client:e}),[e]),g=(0,n.useMemo)(()=>new d.jU(e),[e]),[v,y]=(0,n.useState)(()=>({items:[],loading:!0,error:!1})),[x,k]=(0,n.useState)(p),[j,E]=(0,n.useState)(p),I=(0,n.useCallback)(async()=>{y(e=>({...e,loading:!0,error:!1}));try{let[e,t]=await Promise.all([w.list(),b.list()]);y({items:[{graph:e.items,merge:t.items}],loading:!1,error:!1})}catch(e){y({items:[],loading:!1,error:!0})}},[w,b]),S=(0,n.useCallback)(async()=>{k(e=>({...e,loading:!0,error:!1}));try{let t=await e.listExecRequests();k({items:[...t.items].sort((e,t)=>t.createdAt.localeCompare(e.createdAt)).slice(0,5),loading:!1,error:!1})}catch(e){k({items:[],loading:!1,error:!0})}},[e]),C=(0,n.useCallback)(async()=>{E(e=>({...e,loading:!0,error:!1}));try{let e=await g.list();E({items:[...e.sessions].sort((e,t)=>t.updatedAt.localeCompare(e.updatedAt)).slice(0,5),loading:!1,error:!1})}catch(e){E({items:[],loading:!1,error:!0})}},[g]);(0,n.useEffect)(()=>{h&&I()},[h,I]),(0,n.useEffect)(()=>{S()},[S]),(0,n.useEffect)(()=>{C()},[C]);let U=v.items[0];return(0,o.jsxs)("main",{className:"mx-auto w-full max-w-3xl space-y-6 px-4 py-8 text-foreground sm:px-8",children:[(0,o.jsxs)("header",{children:[(0,o.jsx)("h1",{className:"text-2xl font-semibold tracking-tight",children:"오늘"}),(0,o.jsx)("p",{className:"mt-1 text-sm text-muted-foreground",children:"기다리는 결정과 최근 활동을 한눈에 확인하세요."})]}),(0,o.jsx)(m,{title:"승인 대기",href:h?"/approvals":void 0,loading:h&&v.loading,error:h&&v.error,empty:"지금 결정 대기 중인 일이 없습니다.",retry:()=>void I(),children:h&&U&&(U.graph.length>0||U.merge.length>0)?(0,o.jsxs)("ul",{className:"mt-4 space-y-2 text-sm",children:[U.graph.map(e=>(0,o.jsx)("li",{className:"rounded-lg border border-border p-3",children:e.message||e.graphId},"".concat(e.graphId,"/").concat(e.runId))),U.merge.map(e=>(0,o.jsx)("li",{className:"rounded-lg border border-border p-3",children:e.title},e.number))]}):null}),(0,o.jsx)(m,{title:"최근 맡긴 일",href:"/exec",loading:x.loading,error:x.error,empty:"아직 맡긴 일이 없습니다.",retry:()=>void S(),children:x.items.length>0?(0,o.jsx)("ul",{className:"mt-4 space-y-2",children:x.items.map(e=>(0,o.jsx)("li",{children:(0,o.jsx)("a",{className:"block rounded-lg border border-border p-3 text-sm hover:border-primary focus-visible:outline focus-visible:outline-2 focus-visible:outline-primary",href:"/exec?request=".concat(encodeURIComponent(e.id)),children:e.text.trim().split(/\r?\n/,1)[0]||"제목 없는 일"})},e.id))}):null}),(0,o.jsx)(m,{title:"최근 대화",href:"/chat",loading:j.loading,error:j.error,empty:"아직 대화가 없습니다.",retry:()=>void C(),children:j.items.length>0?(0,o.jsx)("ul",{className:"mt-4 space-y-2",children:j.items.map(e=>(0,o.jsx)("li",{children:(0,o.jsx)("button",{type:"button",onClick:()=>{t(e.id),f.push("/chat")},className:"w-full rounded-lg border border-border p-3 text-left text-sm hover:border-primary focus-visible:outline focus-visible:outline-2 focus-visible:outline-primary",children:e.title||e.preview||"대화"})},e.id))}):null})]})}function f(){let[e,t]=(0,n.useState)(!1);return(0,n.useEffect)(()=>{t(!0)},[]),e?(0,o.jsx)(h,{}):null}},30586:(e,t,r)=>{"use strict";var o=r(19854);r.o(o,"useParams")&&r.d(t,{useParams:function(){return o.useParams}}),r.o(o,"usePathname")&&r.d(t,{usePathname:function(){return o.usePathname}}),r.o(o,"useRouter")&&r.d(t,{useRouter:function(){return o.useRouter}}),r.o(o,"useSearchParams")&&r.d(t,{useSearchParams:function(){return o.useSearchParams}})},32213:(e,t,r)=>{Promise.resolve().then(r.bind(r,21761))},49333:(e,t,r)=>{"use strict";r.d(t,{Zr:()=>s,f6:()=>n,oD:()=>a});let o="elanous.daemon.sessionId";function n(){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 a(){let e=function(){let e=new URLSearchParams(window.location.search).get("session");return e?(localStorage.setItem(o,e),e):localStorage.getItem(o)}();if(e)return e;let t=n();return localStorage.setItem(o,t),t}function s(){let e=n();return localStorage.setItem(o,e),e}},54948:(e,t,r)=>{"use strict";function o(e){return{slides:e.slides.map(e=>{let{image:t,caption:r,include:o}=e;return{image:t,caption:r,include:o}}),caption:{hook:e.caption.hook,body:e.caption.body},hashtags:[...e.hashtags],cover:{text:e.cover.text,sub:e.cover.sub},location:e.location}}r.d(t,{$Y:()=>s,LP:()=>c,Mz:()=>o,ll:()=>u,rH:()=>i});class n extends Error{constructor(e,t){super(t),this.status=e,this.name="GraphApprovalsApiError"}}let a={list:"목록을 보려면",decide:"승인하려면",save:"초안을 저장하려면"},s="/app/settings/#bearer-token";function i(e){return e instanceof n&&(401===e.status||403===e.status)}function c(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"decide";return e instanceof n?401===e.status||403===e.status?"".concat(a[t]," 이 기기를 데몬에 연결해야 합니다 — 설정 › 데몬 연결 › 연결 토큰 칸에 토큰을 넣어 주세요."):404===e.status?"이 실행을 찾지 못했습니다. 목록을 다시 확인해 주세요.":409===e.status?"이미 결정된 실행입니다. 목록을 다시 확인해 주세요.":400===e.status?"결정 내용을 확인한 뒤 다시 시도해 주세요.":"승인 요청을 처리하지 못했습니다. 잠시 뒤 다시 시도해 주세요.":e instanceof TypeError?"서버에 연결하지 못했습니다. 연결 상태를 확인해 주세요.":"승인 요청을 처리하지 못했습니다. 잠시 뒤 다시 시도해 주세요."}let l="/v1/graph-approvals";function u(e){var t,r;let o=(null!=(t=e.baseUrl)?t:"").replace(/\/+$/,""),a=null!=(r=e.fetchImpl)?r:fetch;async function s(t,r){let s={...r,headers:{"content-type":"application/json",...e.authHeader?{authorization:e.authHeader}:{}}},i=e.client?await e.client.fetchResponse(t,s):await a("".concat(o).concat(t),s),c=await i.json().catch(()=>null);if(!i.ok){let e=c&&"object"==typeof c&&"error"in c&&"string"==typeof c.error?c.error:"request-failed";throw new n(i.status,e)}return c}return{list:()=>s(l),decide:(e,t,r)=>s("".concat(l,"/").concat(encodeURIComponent(e),"/").concat(encodeURIComponent(t)),{method:"POST",body:JSON.stringify({decision:r})}),saveFeedDraft:(e,t,r)=>s("".concat(l,"/").concat(encodeURIComponent(e),"/").concat(encodeURIComponent(t),"/feed-draft"),{method:"PUT",body:JSON.stringify(r)}),feedMedia:async(t,r,s)=>{let i="".concat(l,"/").concat(encodeURIComponent(t),"/").concat(encodeURIComponent(r),"/media?path=").concat(encodeURIComponent(s)),c={headers:e.authHeader?{authorization:e.authHeader}:{}},u=e.client?await e.client.fetchResponse(i,c):await a("".concat(o).concat(i),c);if(!u.ok)throw new n(u.status,"media-failed");return u.blob()}}}},80436:(e,t,r)=>{"use strict";r.d(t,{V5:()=>a,tV:()=>s});var o=r(1923);class n extends Error{constructor(e,t,r){super(r||t),this.status=e,this.error=t,this.reason=r,this.name="MergeApprovalsApiError"}}function a(e,t){return e instanceof n?401===e.status||"unauthorized"===e.error?{text:"이 기기에 소유자 토큰이 없어 승인 목록을 못 읽었습니다 — 이미 연결된 기기의 설정 › 연결 토큰 만들기 에서 토큰을 만들어, 이 기기의 설정 › 데몬 연결 › 연결 토큰 칸에 붙이면 바로 보입니다.",href:"/app/settings/#bearer-token"}:"gh-failed"===e.error?{text:"데몬이 GitHub 를 읽지 못했습니다(데몬 기계의 gh 로그인\xb7네트워크) — 잠시 뒤 다시 열어 보세요.".concat(e.reason?" 사유: ".concat(e.reason.split("\n")[0].slice(0,160)):"")}:"gh-invalid-response"===e.error?{text:"GitHub 응답을 해석하지 못했습니다 — 잠시 뒤 다시 열어 보세요."}:"approvals-repo-unknown"===e.error?{text:"승인할 저장소를 모릅니다 — 데몬 설정 intake.approvals.repo(예: owner/repo)를 채워 주세요.",href:"/app/settings/"}:e.reason?{text:e.reason}:{text:"".concat(t," (").concat(e.status," ").concat(e.error,")")}:e instanceof TypeError?{text:"데몬에 닿지 못했습니다 — 데몬이 켜져 있는지, 이 기기가 같은 네트워크(tailnet)에 있는지 확인하세요."}:{text:e instanceof Error&&e.message?e.message:t}}function s(e){var t,r;let a=null!=(t=e.fetchImpl)?t:fetch,s=(null!=(r=e.baseUrl)?r:"").replace(/\/+$/,"");async function i(t,r){let o={...r,headers:{"content-type":"application/json",...e.authHeader?{authorization:e.authHeader}:{}}},i=e.client?await e.client.fetchResponse(t,o):await a("".concat(s).concat(t),o),c=await i.json().catch(()=>null);if(!i.ok){var l;let e=c&&"object"==typeof c?c:{};throw new n(i.status,null!=(l=e.error)?l:"request-failed",e.reason)}return c}return{list:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"open";return i("merged"===e?"".concat(o.r5,"?state=merged"):o.r5)},get:e=>i("".concat(o.r5,"/").concat(e)),check:(e,t)=>i("".concat(o.r5,"/").concat(e,"/check"),{method:"POST",body:JSON.stringify({headSha:t})}),merge:(e,t)=>i("".concat(o.r5,"/").concat(e,"/merge"),{method:"POST",body:JSON.stringify({headSha:t})})}}},82735:(e,t,r)=>{"use strict";r.d(t,{GC:()=>n,In:()=>l,OG:()=>i});var o=r(24725);let n="elanous.pwa.role",a="elanous:pwa-role";function s(){try{let e=window.localStorage.getItem(n);if("owner"===e||"contributor"===e||"general"===e)return e}catch(e){}return"general"}function i(e){try{window.localStorage.setItem(n,e)}catch(e){}"function"==typeof window.dispatchEvent&&window.dispatchEvent(new Event(a))}function c(e){if("function"!=typeof window.addEventListener)return()=>{};window.addEventListener(a,e);let t=t=>{(t.key===n||null===t.key)&&e()};return window.addEventListener("storage",t),()=>{window.removeEventListener(a,e),window.removeEventListener("storage",t)}}function l(){return(0,o.useSyncExternalStore)(c,s,()=>"general")}}},e=>{e.O(0,[6580,2869,9187,7358],()=>e(e.s=32213)),_N_E=e.O()}]);