elanous 0.2.36 → 0.2.38
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.
- package/apps/pwa/out/404/index.html +1 -1
- package/apps/pwa/out/404.html +1 -1
- package/apps/pwa/out/_next/static/{uC-N0emedeNOFuaBQFv-I → RrjXTwz-urRAbChP1bX02}/_buildManifest.js +1 -1
- package/apps/pwa/out/_next/static/chunks/{9250-072df22eaadaa6b5.js → 1026-44010f405704050c.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/1118.a8a74ea29aac3e46.js +27 -0
- package/apps/pwa/out/_next/static/chunks/1204-2aa830479adf80f4.js +1 -0
- package/apps/pwa/out/_next/static/chunks/1341-43b7d2dc77d45c9d.js +1 -0
- package/apps/pwa/out/_next/static/chunks/1440-c3ea8882badfd9bf.js +1 -0
- package/apps/pwa/out/_next/static/chunks/{4304.e9b2512834a9e23e.js → 1632.7d87f998e714bede.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/1698-9c11cbf97f13717e.js +1 -0
- package/apps/pwa/out/_next/static/chunks/1770-3b1fc92253ef9f2f.js +1 -0
- package/apps/pwa/out/_next/static/chunks/1923-5c1695332240246a.js +1 -0
- package/apps/pwa/out/_next/static/chunks/1938.0e6c60ee91c4d7f5.js +148 -0
- package/apps/pwa/out/_next/static/chunks/{7784.1f0ac4a16d190cf4.js → 2104.70e086d5174a4736.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/213-20675f20673ba22a.js +1 -0
- package/apps/pwa/out/_next/static/chunks/{6566.926a1d1b7c911442.js → 214.186a430da28338f1.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/2277.3bd4c0ac7f1b5996.js +93 -0
- package/apps/pwa/out/_next/static/chunks/240.e09f433f71c78ff4.js +104 -0
- package/apps/pwa/out/_next/static/chunks/{5711.957b095705c12560.js → 2415.738b777642a02233.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/2417.02151393605a7cd0.js +1 -0
- package/apps/pwa/out/_next/static/chunks/2463.cd2641a76daaa9ff.js +1 -0
- package/apps/pwa/out/_next/static/chunks/2576.b9e9c629c4b84c52.js +1 -0
- package/apps/pwa/out/_next/static/chunks/265-c021de53f0865bd9.js +1 -0
- package/apps/pwa/out/_next/static/chunks/2998-b1cc13956cd6a6e7.js +1 -0
- package/apps/pwa/out/_next/static/chunks/2e4782d3.ba2f0ab2b63a53e7.js +1 -0
- package/apps/pwa/out/_next/static/chunks/{4286.b70c4520306817e8.js → 3086.fb14b60ce98b53d3.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/{3148-98efd4869d660a87.js → 3124-561f7f037943cde2.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/3130.626b54382b4dc379.js +1 -0
- package/apps/pwa/out/_next/static/chunks/3221-1bb3f99a55088613.js +1 -0
- package/apps/pwa/out/_next/static/chunks/3280.24edb1ffd03a7f3f.js +24 -0
- package/apps/pwa/out/_next/static/chunks/3288-eb3c22a1cbf2ae68.js +1 -0
- package/apps/pwa/out/_next/static/chunks/{3727.7949ccaacaa71242.js → 3291.f6c1005387d514bd.js} +2 -2
- package/apps/pwa/out/_next/static/chunks/33.ef99e8374f96c6c4.js +36 -0
- package/apps/pwa/out/_next/static/chunks/3341-f09b9efbd7a82f70.js +1 -0
- package/apps/pwa/out/_next/static/chunks/3389.012c70767a872f9b.js +1 -0
- package/apps/pwa/out/_next/static/chunks/3410-d7c0f14b329d6fda.js +1 -0
- package/apps/pwa/out/_next/static/chunks/3421.c87d6313a7d670f7.js +287 -0
- package/apps/pwa/out/_next/static/chunks/3422-83a3953f9bd67e26.js +1 -0
- package/apps/pwa/out/_next/static/chunks/{8904.7d51af2dc033965c.js → 3528.e4b8ab70d339f965.js} +2 -2
- package/apps/pwa/out/_next/static/chunks/3587-002e24e368c515a9.js +1 -0
- package/apps/pwa/out/_next/static/chunks/3644.f12a7d821ab940af.js +1 -0
- package/apps/pwa/out/_next/static/chunks/3660.d7516588e2d875c3.js +1 -0
- package/apps/pwa/out/_next/static/chunks/3695.b82e2610f4cd4ea9.js +1 -0
- package/apps/pwa/out/_next/static/chunks/3858.ca1f5bc0f577eac9.js +94 -0
- package/apps/pwa/out/_next/static/chunks/3959-e6ac4a139d9d4bcc.js +1 -0
- package/apps/pwa/out/_next/static/chunks/3f0de3de-2340c532c00395db.js +1 -0
- package/apps/pwa/out/_next/static/chunks/4032.53f62176514ec0ea.js +1 -0
- package/apps/pwa/out/_next/static/chunks/{3031-85328a92fcce4da6.js → 4199-f7c6eb40cd0322f8.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/4204-ef8484cbecd5d62f.js +1 -0
- package/apps/pwa/out/_next/static/chunks/4259-163129ca79913c4b.js +1 -0
- package/apps/pwa/out/_next/static/chunks/428-eaa77df3d0c85969.js +1 -0
- package/apps/pwa/out/_next/static/chunks/4432-97e400ffa1e161f5.js +1 -0
- package/apps/pwa/out/_next/static/chunks/449-aa427cf2cbb75f50.js +1 -0
- package/apps/pwa/out/_next/static/chunks/4491-39a0fd32bbaf3840.js +1 -0
- package/apps/pwa/out/_next/static/chunks/4588.b7cf06d382953979.js +1 -0
- package/apps/pwa/out/_next/static/chunks/4690.70ec8060825366ab.js +32 -0
- package/apps/pwa/out/_next/static/chunks/4804.6012b5cd33c22792.js +90 -0
- package/apps/pwa/out/_next/static/chunks/4881.e4d22d730e3b9df5.js +1 -0
- package/apps/pwa/out/_next/static/chunks/4937.ce2e340dc29cad3e.js +79 -0
- package/apps/pwa/out/_next/static/chunks/5-bb1c08d84bd71df3.js +1 -0
- package/apps/pwa/out/_next/static/chunks/5005.de98df23b37cdf3c.js +1 -0
- package/apps/pwa/out/_next/static/chunks/5035.dc64a89cad5573cc.js +74 -0
- package/apps/pwa/out/_next/static/chunks/5041-5aada92ca215ffdd.js +1 -0
- package/apps/pwa/out/_next/static/chunks/{528.38ce20ef8aa251ff.js → 5203.51e5d8b5f1dcfe53.js} +16 -16
- package/apps/pwa/out/_next/static/chunks/5207.1a224035455790fd.js +1 -0
- package/apps/pwa/out/_next/static/chunks/5255-1b60d50eabe9f057.js +1 -0
- package/apps/pwa/out/_next/static/chunks/5269.d0436ee6d773382a.js +286 -0
- package/apps/pwa/out/_next/static/chunks/5300.677c97e0393742e6.js +1 -0
- package/apps/pwa/out/_next/static/chunks/{2683.c9773a0c589b031b.js → 5307.d7328020227880c2.js} +4 -4
- package/apps/pwa/out/_next/static/chunks/5309.3367c4d50f52b489.js +1 -0
- package/apps/pwa/out/_next/static/chunks/552-689827d49780fa00.js +1 -0
- package/apps/pwa/out/_next/static/chunks/5539.34cc9d60622cb69b.js +8 -0
- package/apps/pwa/out/_next/static/chunks/5568.218dea0c00ca2ec7.js +1 -0
- package/apps/pwa/out/_next/static/chunks/{552.b7d061ad91eeac51.js → 5638.107314dc479e2f37.js} +2 -2
- package/apps/pwa/out/_next/static/chunks/5645.b7e3b055455a04ea.js +1 -0
- package/apps/pwa/out/_next/static/chunks/5662.18cc0f30353cbd96.js +1 -0
- package/apps/pwa/out/_next/static/chunks/5671.da24fc9dc5e98325.js +1 -0
- package/apps/pwa/out/_next/static/chunks/5b141171.324c40fd49cb6821.js +1 -0
- package/apps/pwa/out/_next/static/chunks/6142.913b44e260a3f925.js +64 -0
- package/apps/pwa/out/_next/static/chunks/6175-d4621f6a10b0cfab.js +1 -0
- package/apps/pwa/out/_next/static/chunks/6290.3eb53a20746b72ce.js +1 -0
- package/apps/pwa/out/_next/static/chunks/6415-9307f3eafa90837f.js +1 -0
- package/apps/pwa/out/_next/static/chunks/{6925.562d532110879886.js → 6493.27ad77de7aac7966.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/6579-3de35d00aacd71b5.js +1 -0
- package/apps/pwa/out/_next/static/chunks/680-2f324c4e039a5b67.js +1 -0
- package/apps/pwa/out/_next/static/chunks/6845-331b3c7481da3ba3.js +1 -0
- package/apps/pwa/out/_next/static/chunks/7000.28157393caaf5343.js +62 -0
- package/apps/pwa/out/_next/static/chunks/{275-02ea4c2a33980422.js → 7161-8f22db3ec5ed005e.js} +3 -3
- package/apps/pwa/out/_next/static/chunks/7311-60a7ea80d23c7521.js +1 -0
- package/apps/pwa/out/_next/static/chunks/7401.525d0a12f7d02c06.js +1 -0
- package/apps/pwa/out/_next/static/chunks/7438.c2cf72b66dca6aa4.js +1 -0
- package/apps/pwa/out/_next/static/chunks/{3136.30aaaa5fa03662a3.js → 7488.966b116789f3d41a.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/{4116.a84a92a2492c080e.js → 7524.ce973525d30b3d52.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/7573.2376e13c9c21f1f8.js +77 -0
- package/apps/pwa/out/_next/static/chunks/7577.ea6e9ac72e035520.js +1 -0
- package/apps/pwa/out/_next/static/chunks/{3324.a09703033abcbd2f.js → 7628.6b16863ac3972333.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/7657.8d1fb3d2f7ebe273.js +1 -0
- package/apps/pwa/out/_next/static/chunks/7903-1435d5d2f0dd7807.js +1 -0
- package/apps/pwa/out/_next/static/chunks/{3410.7f9af5ab77cbe65f.js → 7954.4f7a8832663ee979.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/7978-30a91192c5dbe3c2.js +1 -0
- package/apps/pwa/out/_next/static/chunks/{771.c3cdb6c1f7f47c02.js → 8019.21ca554a821dad01.js} +16 -16
- package/apps/pwa/out/_next/static/chunks/8025-8795821525cf1a07.js +1 -0
- package/apps/pwa/out/_next/static/chunks/8191.3674a00f0b565c23.js +1 -0
- package/apps/pwa/out/_next/static/chunks/8217-604955d8885c5ef2.js +1 -0
- package/apps/pwa/out/_next/static/chunks/8298-eed6f5f2585a63f4.js +1 -0
- package/apps/pwa/out/_next/static/chunks/{4615.8525eb0add35eba6.js → 8487.291666583bebe640.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/8509.3a54d4e61893d7cb.js +1 -0
- package/apps/pwa/out/_next/static/chunks/8758.ac421f726a189125.js +1 -0
- package/apps/pwa/out/_next/static/chunks/{6943.c6b24124853a47b2.js → 8879.ac06755bcf3e44a1.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/891.d6c723a51a067b36.js +149 -0
- package/apps/pwa/out/_next/static/chunks/{575.d929793a53f27c4b.js → 8911.bf5e712acb25fb6c.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/{9f31e478.fefcbcd3c388ebc5.js → 8994d93e.33ba491f95345fc2.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/{da5ecc5c-b005ad8cac737d57.js → 89d6c04f-6b8ab341748e468a.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/{599.c39c571b6733f2a2.js → 9223.cbcc88e0e9950426.js} +2 -2
- package/apps/pwa/out/_next/static/chunks/9299.24e2a7d9b6d1f91b.js +226 -0
- package/apps/pwa/out/_next/static/chunks/9317.6a9869039c231bb3.js +24 -0
- package/apps/pwa/out/_next/static/chunks/9383.e4755f275b3c11ff.js +1 -0
- package/apps/pwa/out/_next/static/chunks/{8037.e254fd797aa224d1.js → 9581.da63ddf41acfad46.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/9715.8c5529a0a5c41a36.js +1 -0
- package/apps/pwa/out/_next/static/chunks/9817.3009d65f0889ef1f.js +2 -0
- package/apps/pwa/out/_next/static/chunks/{ceba0382.650712b56b85b582.js → 9fe1b809.738da85c8b17e3fb.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/app/_not-found/page-76873dd80da4f715.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/approvals/page-ed32b6ec5dea8f23.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/autopilot/page-fdd40e15babf3d25.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/board/page-384efc78e85e400b.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/botlab/page-866aac5ff226a7f3.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/bots/page-d91809c5aeed319a.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/ceo/page-128f3522f89a81ab.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/chat/page-595961abf3b43ad1.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/consult/page-f41dccb76d8c0263.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/control/page-a3205c2e28b7d0d9.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/decisions/page-c39a80277814a3f4.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/design-check/page-1ab3f98194513195.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/editor/page-a5246f7e254d77d0.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/exec/page-0f92287bdb81217d.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/field/page-5a37131ff63793ef.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/healthz/route-76873dd80da4f715.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/inside/page-ac4bd14bb2348bfd.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/intake/page-c348a3959c5b5fc6.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/layout-2addd81c0d3e2906.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/live/page-da6b765f58a3eefb.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/live-run/page-0661e40f8780c32c.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/loops/page-b89af1b1c8e4875b.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/market/page-da8aeb82ba751cdb.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/missions/[id]/page-cc71317b239439db.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/morning/page-bde7fc1d64ffe369.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/not-found-e2797214f713fa58.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/observatory/page-2a35bcda70defaf6.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/ops/checklist/page-3af03deedde45032.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/ops/release/page-d1d1210f99f620ae.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/ops/seats/page-46d1b5500885861d.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/outputs/{page-e7abc34a48a6f71e.js → page-291ab19fe2acb173.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/app/page-7f569e533ddeecba.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/reflection/page-990129c9fee46d8f.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/scheduler/page-7737f785ebb1cdaf.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/sessions/page-9f3c73a4f7ffd2f8.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/settings/devices/page-03be7fb347f01058.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/settings/page-96b0280625e4df2b.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/setup/done/page-56855545049eb56d.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/setup/layout-76873dd80da4f715.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/setup/page-79a909c9981f0338.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/share/page-a9d9a3e66459c1e0.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/showroom/page-c383cbf2013f7069.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/tasks/page-f57c6a2e54dbdca4.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/term/{page-c15958835534404b.js → page-6b140f77593576eb.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/app/today/page-6b767ae2d9d0adfc.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/trace/page-116d6198d5da0e3d.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/vault/page-b9c9b778c7501370.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/workflows/chat-ui/page-a6c78392ab8f6335.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/workflows/page-455183deb4ed0cfe.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/workspace/page-6a63e99526bd63d0.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/worktrees/page-31c22caafe788c08.js +1 -0
- package/apps/pwa/out/_next/static/chunks/{3a3d9966.cc4d4585a2708e7c.js → b7459770.6539b11860eb8a9c.js} +7 -7
- package/apps/pwa/out/_next/static/chunks/{053a429e.9a63436527cc751c.js → b7478fef.5917716286213fcc.js} +3 -3
- package/apps/pwa/out/_next/static/chunks/bb6987f9.3647e1a23b0e3217.js +122 -0
- package/apps/pwa/out/_next/static/chunks/{2812ca6a.3b9f4a7a08885744.js → de8b930d.d94c0f42acf807fc.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/{873d6c12.09bd499f57171543.js → eaad0cba.771200940c529df7.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/framework-4b12a946f352cee2.js +1 -0
- package/apps/pwa/out/_next/static/chunks/main-941155250ed2644b.js +1 -0
- package/apps/pwa/out/_next/static/chunks/main-app-f8b6765abed6d149.js +1 -0
- package/apps/pwa/out/_next/static/chunks/pages/_app-78432194c85388f9.js +1 -0
- package/apps/pwa/out/_next/static/chunks/pages/_error-cdf7390829512b1b.js +1 -0
- package/apps/pwa/out/_next/static/chunks/webpack-d5f0964a9c2e92d2.js +1 -0
- package/apps/pwa/out/_next/static/css/{b5d88eba78a3d7bf.css → be9019f696217521.css} +1 -1
- package/apps/pwa/out/approvals/index.html +1 -1
- package/apps/pwa/out/approvals/index.txt +23 -23
- package/apps/pwa/out/autopilot/index.html +1 -1
- package/apps/pwa/out/autopilot/index.txt +23 -23
- package/apps/pwa/out/board/index.html +1 -1
- package/apps/pwa/out/board/index.txt +23 -23
- package/apps/pwa/out/botlab/index.html +1 -1
- package/apps/pwa/out/botlab/index.txt +22 -22
- package/apps/pwa/out/bots/index.html +1 -1
- package/apps/pwa/out/bots/index.txt +22 -22
- package/apps/pwa/out/ceo/index.html +1 -1
- package/apps/pwa/out/ceo/index.txt +23 -23
- package/apps/pwa/out/chat/index.html +1 -1
- package/apps/pwa/out/chat/index.txt +22 -22
- package/apps/pwa/out/consult/index.html +1 -1
- package/apps/pwa/out/consult/index.txt +23 -23
- package/apps/pwa/out/control/index.html +1 -1
- package/apps/pwa/out/control/index.txt +23 -23
- package/apps/pwa/out/decisions/index.html +1 -1
- package/apps/pwa/out/decisions/index.txt +22 -22
- package/apps/pwa/out/design-check/index.html +1 -1
- package/apps/pwa/out/design-check/index.txt +23 -23
- package/apps/pwa/out/editor/index.html +1 -1
- package/apps/pwa/out/editor/index.txt +23 -23
- package/apps/pwa/out/exec/index.html +1 -1
- package/apps/pwa/out/exec/index.txt +23 -23
- package/apps/pwa/out/field/index.html +1 -1
- package/apps/pwa/out/field/index.txt +23 -23
- package/apps/pwa/out/healthz +1 -1
- package/apps/pwa/out/index.html +1 -1
- package/apps/pwa/out/index.txt +22 -22
- package/apps/pwa/out/inside/index.html +1 -1
- package/apps/pwa/out/inside/index.txt +22 -22
- package/apps/pwa/out/intake/index.html +1 -1
- package/apps/pwa/out/intake/index.txt +23 -23
- package/apps/pwa/out/live/index.html +1 -1
- package/apps/pwa/out/live/index.txt +23 -23
- package/apps/pwa/out/live-run/index.html +1 -1
- package/apps/pwa/out/live-run/index.txt +23 -23
- package/apps/pwa/out/loops/index.html +1 -1
- package/apps/pwa/out/loops/index.txt +22 -22
- package/apps/pwa/out/market/index.html +1 -1
- package/apps/pwa/out/market/index.txt +22 -22
- package/apps/pwa/out/missions/placeholder/index.html +1 -1
- package/apps/pwa/out/missions/placeholder/index.txt +22 -22
- package/apps/pwa/out/morning/index.html +1 -1
- package/apps/pwa/out/morning/index.txt +23 -23
- package/apps/pwa/out/observatory/index.html +1 -1
- package/apps/pwa/out/observatory/index.txt +23 -23
- package/apps/pwa/out/ops/checklist/index.html +1 -1
- package/apps/pwa/out/ops/checklist/index.txt +22 -22
- package/apps/pwa/out/ops/release/index.html +1 -1
- package/apps/pwa/out/ops/release/index.txt +22 -22
- package/apps/pwa/out/ops/seats/index.html +1 -1
- package/apps/pwa/out/ops/seats/index.txt +22 -22
- package/apps/pwa/out/outputs/index.html +1 -1
- package/apps/pwa/out/outputs/index.txt +22 -22
- package/apps/pwa/out/reflection/index.html +1 -1
- package/apps/pwa/out/reflection/index.txt +23 -23
- package/apps/pwa/out/scheduler/index.html +1 -1
- package/apps/pwa/out/scheduler/index.txt +23 -23
- package/apps/pwa/out/sessions/index.html +1 -1
- package/apps/pwa/out/sessions/index.txt +22 -22
- package/apps/pwa/out/settings/devices/index.html +1 -1
- package/apps/pwa/out/settings/devices/index.txt +23 -23
- package/apps/pwa/out/settings/index.html +1 -1
- package/apps/pwa/out/settings/index.txt +23 -23
- package/apps/pwa/out/setup/done/index.html +1 -1
- package/apps/pwa/out/setup/done/index.txt +23 -23
- package/apps/pwa/out/setup/index.html +1 -1
- package/apps/pwa/out/setup/index.txt +23 -23
- package/apps/pwa/out/share/index.html +1 -1
- package/apps/pwa/out/share/index.txt +23 -23
- package/apps/pwa/out/showroom/index.html +1 -1
- package/apps/pwa/out/showroom/index.txt +22 -22
- package/apps/pwa/out/tasks/index.html +1 -1
- package/apps/pwa/out/tasks/index.txt +23 -23
- package/apps/pwa/out/term/index.html +1 -1
- package/apps/pwa/out/term/index.txt +23 -23
- package/apps/pwa/out/today/index.html +1 -1
- package/apps/pwa/out/today/index.txt +23 -23
- package/apps/pwa/out/trace/index.html +1 -1
- package/apps/pwa/out/trace/index.txt +23 -23
- package/apps/pwa/out/vault/index.html +1 -1
- package/apps/pwa/out/vault/index.txt +23 -23
- package/apps/pwa/out/workflows/chat-ui/index.html +1 -1
- package/apps/pwa/out/workflows/chat-ui/index.txt +23 -23
- package/apps/pwa/out/workflows/index.html +1 -1
- package/apps/pwa/out/workflows/index.txt +23 -23
- package/apps/pwa/out/workspace/index.html +1 -1
- package/apps/pwa/out/workspace/index.txt +23 -23
- package/apps/pwa/out/worktrees/index.html +1 -1
- package/apps/pwa/out/worktrees/index.txt +23 -23
- package/graphs/drafts/recipes.yaml +27 -7
- package/graphs/release/recipes.yaml +9 -0
- package/graphs/release/release-loop.yaml +26 -18
- package/graphs/work/draft-close.yaml +54 -0
- package/graphs/work/green-close.yaml +37 -0
- package/graphs/work/recipes.yaml +46 -1
- package/graphs/work/run-research.yaml +35 -0
- package/package.json +1 -1
- package/scripts/__fixtures__/authoring-paths-10x3.json +32 -0
- package/scripts/ask-op-inbox-once.ts +17 -0
- package/scripts/boundary-proof-mapping-audit.ts +88 -0
- package/scripts/brand/check.ts +13 -4
- package/scripts/codex-fallback-live-probe.ts +17 -15
- package/scripts/fleet/node-setup.sh +32 -2
- package/scripts/fleet/run-light-worker.sh +9 -0
- package/scripts/gate-0226-accepted-remaining-90.txt +91 -0
- package/scripts/gate-0226-failure-census.ts +546 -0
- package/scripts/goals/authoring-metrics.ts +258 -0
- package/scripts/graph-units/draft-close-node.ts +222 -0
- package/scripts/hook-order-sweep.ts +7 -4
- package/scripts/intake-collect-telegram-saved-stage.ts +48 -0
- package/scripts/land-global-checks.ts +69 -1
- package/scripts/measure-nl-routing-corpus.ts +207 -2
- package/scripts/provision-export-redactions.ts +15 -0
- package/scripts/public-copy-lint.ts +122 -0
- package/scripts/public-export.ts +69 -2
- package/scripts/ratchets/next-tui-entry-budget.ts +124 -0
- package/scripts/ratchets/train-side-invariants.sh +7 -1
- package/scripts/release-loop/cut-branch.ts +61 -12
- package/scripts/release-loop/docs-node.ts +140 -0
- package/scripts/release-loop/gate-closure.ts +48 -0
- package/scripts/release-loop/gate-diff.ts +2 -1
- package/scripts/release-loop/gate-node.ts +161 -25
- package/scripts/release-loop/gate-partial.ts +82 -3
- package/scripts/release-loop/gate-prewarm-plan.ts +35 -0
- package/scripts/release-loop/gate-radius-live.ts +4 -2
- package/scripts/release-loop/known-issues-node.ts +6 -4
- package/scripts/release-loop/notes-repair.ts +216 -0
- package/scripts/release-loop/prepare-node.ts +61 -5
- package/scripts/release-loop/resume-cap.ts +2 -1
- package/scripts/release-loop/resume-release.ts +406 -7
- package/scripts/release-loop/resume-test-traffic.ts +10 -0
- package/scripts/release-loop/resume.ts +13 -5
- package/scripts/release-loop/traffic-node.ts +12 -4
- package/scripts/release-loop/traffic-transition.ts +53 -13
- package/scripts/release-loop/version-node.ts +109 -15
- package/scripts/train/green-leg.ts +176 -0
- package/scripts/tui-continue-real-evidence.ts +47 -0
- package/scripts/ux-sim.ts +1 -1
- package/scripts/video-pipeline.ts +2 -2
- package/src/acp/client.ts +31 -5
- package/src/acp/core-turn-bridge.ts +12 -1
- package/src/acp/stderr-summary.ts +49 -0
- package/src/agent/monad-agent-turn.ts +1 -0
- package/src/agent/run-context.ts +1 -1
- package/src/agent/task-notification.ts +3 -1
- package/src/agent/terminal-surface.ts +217 -0
- package/src/agent-substrate/pr-reviewer.ts +11 -3
- package/src/agent-substrate/review-observation.ts +10 -0
- package/src/agent-substrate/self-review-cli.ts +537 -57
- package/src/auto-research/question-ladder-contract.ts +137 -0
- package/src/auto-research/research-turn.ts +134 -0
- package/src/autopilot/discovery/doc-lint.ts +1 -1
- package/src/autopilot/lineage/sources.ts +1 -1
- package/src/autopilot/pr-manager.ts +64 -13
- package/src/boot/daemon-runtime.ts +35 -3
- package/src/boot/daemon-tools/pty-shell.ts +2 -1
- package/src/bots/screen-probe.ts +1 -1
- package/src/budget/run-usage-rollup.ts +12 -7
- package/src/budget/unified-usage.ts +20 -0
- package/src/capture/tui-self-report.ts +42 -5
- package/src/chat/index.ts +1 -0
- package/src/chat/tool-render/dispatch.ts +8 -1
- package/src/cli/autopilot-cli.ts +24 -9
- package/src/cli/decisions-cli.ts +7 -4
- package/src/cli/doctor-cli.ts +116 -7
- package/src/cli/guardian-cli.ts +3 -1
- package/src/cli/intake-cli.ts +48 -12
- package/src/cli/lesson-cli.ts +69 -9
- package/src/cli/logs-cli.ts +357 -2
- package/src/cli/memory-cli.ts +30 -1
- package/src/cli/msg-cli.ts +15 -11
- package/src/cli/pr-granularity.ts +5 -3
- package/src/cli/pr-land-overlap-evidence.ts +38 -5
- package/src/cli/pr-land-refusal.ts +1 -1
- package/src/cli/pty-takeover-cli.ts +58 -5
- package/src/cli/release-checklist-read-cli.ts +112 -4
- package/src/cli/release-cli.ts +89 -18
- package/src/cli/review-carry.ts +77 -0
- package/src/cli/self-update.ts +24 -6
- package/src/cli/self-utterances-cli.ts +13 -16
- package/src/cli/tasks-card-show.ts +31 -1
- package/src/cli/tasks-cli.ts +370 -33
- package/src/cli/tasks-read-cli.ts +13 -5
- package/src/cli/usage-cli.ts +12 -10
- package/src/context-bus/claude-memory-import.ts +99 -0
- package/src/context-bus/context-now.ts +86 -2
- package/src/context-bus/long-term-memory.ts +125 -0
- package/src/core-turn/run-core-turn.ts +9 -2
- package/src/core-turn/run-goal-loop.ts +5 -2
- package/src/core-turn/types.ts +5 -0
- package/src/dashboard/chat/acp-chat.ts +9 -0
- package/src/dashboard/index.ts +115 -30
- package/src/dashboard/input/agent-wake.ts +43 -0
- package/src/dashboard/input/chat-main-acp-dispatch.ts +21 -1
- package/src/dashboard/input/terminal-modal-router.ts +8 -159
- package/src/dashboard/replay-preview.ts +25 -0
- package/src/dashboard/side-basic-runtime.ts +61 -0
- package/src/dashboard/slash-runtime/dashboard-handlers.ts +19 -8
- package/src/dashboard/synchronized-frame-output.ts +74 -0
- package/src/dashboard/term-slash-runtime.ts +2 -0
- package/src/dashboard/turn-preamble.ts +28 -4
- package/src/display/coordinator.ts +45 -12
- package/src/display/resize-listener.ts +41 -20
- package/src/display/synchronized-output-region.ts +60 -0
- package/src/domains/guardian-tick.ts +9 -0
- package/src/domains/surface-events.ts +80 -1
- package/src/exec-requests/planner.ts +37 -2
- package/src/execution-loop/launch-gate.ts +4 -3
- package/src/git-fs/cli-stderr.ts +45 -0
- package/src/git-fs/gh-cli.ts +6 -3
- package/src/git-fs/git-cli.ts +11 -5
- package/src/git-fs/watcher.ts +27 -22
- package/src/git-fs/worktree.ts +19 -3
- package/src/graph-runner/graph-cli.ts +26 -2
- package/src/graph-runner/graph-grow.ts +37 -9
- package/src/graph-runner/graph-run-api.ts +3 -2
- package/src/graph-runner/runner.ts +34 -7
- package/src/graph-wizard/generate.ts +29 -6
- package/src/grok/credential.ts +107 -36
- package/src/harness/harness-cli-command.ts +179 -33
- package/src/harness/review-adapter.ts +26 -6
- package/src/hq/fence-wrapper.ts +1 -1
- package/src/hq/transfer.ts +1 -1
- package/src/index.ts +151 -18
- package/src/instance/test-write-guard-real-transport.fixture.ts +52 -0
- package/src/intake-plane/collect-telegram-saved.ts +54 -5
- package/src/interactive-terminal-modal.ts +3 -0
- package/src/keybindings.ts +17 -22
- package/src/llm/provider-credentials.ts +1 -1
- package/src/llm/route-decision.ts +13 -0
- package/src/llm-tool-name.ts +37 -0
- package/src/llm-tool-schema.ts +55 -0
- package/src/llm.ts +203 -21
- package/src/loops/checker.ts +100 -0
- package/src/loops/consensus.ts +26 -2
- package/src/loops/loop-cli.ts +9 -4
- package/src/loops/orchestrator/anomaly-cluster.ts +243 -0
- package/src/loops/orchestrator/inbox-once.ts +28 -0
- package/src/loops/orchestrator/inbox.ts +130 -1
- package/src/loops/orchestrator/tick.ts +55 -7
- package/src/maturity/feature-maturity.ts +1 -0
- package/src/model-tier/llm-tier-map.ts +12 -17
- package/src/msg/msg-store.ts +17 -0
- package/src/native-tool-catalog.ts +1 -1
- package/src/nexus/api/channel-ask-op.ts +96 -0
- package/src/nexus/api/discord-trigger-bot.ts +28 -1
- package/src/nexus/api/graph-wizard-api.ts +27 -2
- package/src/nexus/api/grid.ts +24 -4
- package/src/nexus/api/http-server.ts +1 -1
- package/src/nexus/api/ops-api.ts +14 -6
- package/src/nexus/api/telegram-trigger-bot.ts +24 -0
- package/src/nexus/api/terminals.ts +28 -6
- package/src/nexus/state/state.ts +7 -1
- package/src/oauth/codex-account-store.ts +34 -1
- package/src/ops/loops-map.ts +46 -0
- package/src/ops/overview-cache.ts +22 -4
- package/src/ops/overview.ts +41 -5
- package/src/patents/ledger.ts +18 -1
- package/src/policy/llm-policy.ts +3 -1
- package/src/preview/terminal.ts +4 -2
- package/src/prompt-cache/anthropic.ts +2 -0
- package/src/prompt-enhance/enhance.ts +9 -4
- package/src/pty-shell/availability.ts +7 -0
- package/src/pty-shell/herdr-agent-report.ts +40 -31
- package/src/pty-shell/herdr-prune-stale.ts +17 -0
- package/src/pty-shell/herdr-sequence-lease.ts +60 -0
- package/src/pty-shell/pty-control-ipc.ts +187 -18
- package/src/pty-shell/pty-manifest.ts +16 -2
- package/src/pty-shell/registry.ts +25 -15
- package/src/pty-shell/tui-run-state.ts +235 -1
- package/src/release-loop/checklist.ts +50 -5
- package/src/release-loop/feature-store.ts +9 -9
- package/src/release-loop/gate-shards.ts +61 -0
- package/src/release-loop/landed-but-yellow.ts +93 -12
- package/src/release-loop/light-rc.ts +7 -4
- package/src/release-loop/rehearsal.ts +1 -1
- package/src/repl/index.ts +18 -0
- package/src/research/axis-fanout.ts +133 -0
- package/src/research/edge-decision.ts +88 -0
- package/src/research/output-router.ts +127 -0
- package/src/research-bridge/format.ts +16 -1
- package/src/research-bridge/index.ts +1 -0
- package/src/research-bridge/invoke.ts +41 -5
- package/src/seat-loop/seat-report.ts +1 -0
- package/src/self-dev/ask-launch-flow.ts +86 -10
- package/src/self-dev/decompose-proposal.ts +29 -18
- package/src/self-dev/decompose.ts +45 -9
- package/src/self-dev/dev-pipeline.ts +29 -7
- package/src/self-dev/draft-residue.ts +221 -2
- package/src/self-dev/draft-sweep.ts +254 -16
- package/src/self-dev/draft-triage-rules.ts +19 -5
- package/src/self-dev/orchestrate.ts +1 -0
- package/src/self-dev/review-provider-fallback.ts +45 -7
- package/src/self-dev/run-supervisor.ts +22 -7
- package/src/self-dev/shard-plan.ts +48 -0
- package/src/self-dev/shard-run.ts +310 -6
- package/src/self-implement/comment-only-source.ts +54 -0
- package/src/self-implement/doctor-visit.ts +108 -0
- package/src/self-implement/gate-artifacts.ts +6 -2
- package/src/self-implement/gate-baseline.ts +99 -1
- package/src/self-implement/gate-cli.ts +231 -82
- package/src/self-implement/gate-failure-signature.ts +44 -0
- package/src/self-implement/gate-remote.ts +30 -4
- package/src/self-implement/gate-scope.ts +13 -1
- package/src/self-implement/goal-author.ts +407 -21
- package/src/self-implement/goal-doc/section.ts +22 -0
- package/src/self-implement/goal-supervisor-fill.ts +110 -27
- package/src/self-implement/importer-test-index.ts +215 -2
- package/src/self-implement/knowhow-pack.ts +125 -12
- package/src/self-implement/l8-merge-queue.ts +198 -32
- package/src/self-implement/off-diff-evidence.ts +23 -0
- package/src/self-implement/orchestrator.ts +369 -33
- package/src/self-implement/pod-inplace-worktree.ts +82 -0
- package/src/self-implement/pod-warm-pool-profile.ts +2 -2
- package/src/self-implement/premise-review.ts +7 -5
- package/src/self-implement/review-round-brief.ts +300 -0
- package/src/self-implement/rework-policy.ts +14 -0
- package/src/self-implement/run-ledger.ts +428 -6
- package/src/self-implement/run-stop.ts +1 -1
- package/src/self-implement/running-runs.ts +17 -3
- package/src/self-implement/seams.ts +45 -16
- package/src/self-implement/self-implement-cli.ts +26 -2
- package/src/self-implement/stop-autoheal.ts +1 -0
- package/src/self-implement/test-seams.ts +13 -1
- package/src/self-implement/train-reach-grouping.ts +8 -2
- package/src/session/channel-ask-op-envelope.ts +36 -0
- package/src/session/channel-op-reply-route.ts +200 -0
- package/src/session/chat.ts +10 -1
- package/src/session/id-prefix.ts +60 -0
- package/src/session/index.ts +6 -0
- package/src/session-runtime/index.ts +18 -23
- package/src/skills/runner.ts +7 -3
- package/src/skills/tools/dev-harness.ts +2 -2
- package/src/skills/tools/pty.ts +5 -0
- package/src/skills/tools/schedule-wakeup.ts +1 -6
- package/src/status/bar.ts +3 -3
- package/src/status/metrics.ts +12 -1
- package/src/steward/rejudge-tick.ts +12 -5
- package/src/steward/resync-tick.ts +31 -4
- package/src/storage/file-lock.ts +17 -4
- package/src/task-agent/actions.ts +199 -4
- package/src/task-agent/adopt-pr.ts +63 -2
- package/src/task-agent/boundary-proof-mapping.ts +12 -0
- package/src/task-agent/boundary-proof-producer.ts +147 -0
- package/src/task-agent/completion-evidence.ts +2 -1
- package/src/task-agent/evidence-command-normalize.ts +42 -0
- package/src/task-agent/export-redactions-provision.ts +43 -0
- package/src/task-agent/green-close-recipe.ts +239 -0
- package/src/task-agent/green-sweep.ts +64 -10
- package/src/task-agent/live-moves.ts +48 -3
- package/src/task-agent/map-host-adapter.ts +134 -0
- package/src/task-agent/map-reduce.ts +158 -0
- package/src/task-agent/map-run-ledger.ts +226 -0
- package/src/task-agent/parent-host.ts +74 -17
- package/src/task-agent/rejudge-on-head.ts +72 -5
- package/src/task-agent/repair-cycle.ts +108 -8
- package/src/task-agent/repair-next-move.ts +12 -2
- package/src/task-agent/repair-worker.ts +37 -1
- package/src/task-agent/review-prior-fix.ts +12 -2
- package/src/task-agent/shadow.ts +188 -5
- package/src/task-agent/task-hand.ts +253 -20
- package/src/task-agent/task-parent-role-llm.ts +9 -0
- package/src/task-agent/tier-split.ts +40 -5
- package/src/task-agent/work-order.ts +53 -2
- package/src/task-orchestrator/dispatcher.ts +46 -1
- package/src/task-orchestrator/generator-prompt.ts +6 -0
- package/src/task-orchestrator/surfaces/pod-artifact-return.ts +16 -6
- package/src/task-orchestrator/surfaces/pod-failure-reason.ts +31 -4
- package/src/task-orchestrator/surfaces/pod-ledger-collect.ts +8 -6
- package/src/task-orchestrator/surfaces/pod-ledger-events.ts +97 -0
- package/src/task-orchestrator/surfaces/pod-pool.ts +77 -8
- package/src/task-orchestrator/surfaces/pod-warm-worker-provider.ts +15 -9
- package/src/task-orchestrator/surfaces/self-implement-pod.ts +338 -79
- package/src/task-orchestrator/surfaces/self-implement.ts +37 -2
- package/src/terminal/session-registry.ts +1 -0
- package/src/terminal/terminal-modal-router.ts +156 -0
- package/src/testing/linux-env.ts +177 -0
- package/src/tool-hints/gate.ts +6 -4
- package/src/tool-hints/signals.ts +33 -1
- package/src/tui/chat/background-job-status.ts +8 -2
- package/src/tui/chat/goal-interim.ts +5 -1
- package/src/tui/entry.ts +722 -30
- package/src/tui/input/at-picker.ts +55 -0
- package/src/tui/sidetab/attach.ts +304 -0
- package/src/tui/sidetab/list.ts +176 -0
- package/src/tui/sidetab/nl-tool.ts +136 -0
- package/src/tui/slash/resume-command.ts +23 -0
- package/src/tui/slash/resume.ts +38 -35
- package/src/tui/slash/signals.ts +114 -0
- package/src/tui/slash/term-next.ts +72 -0
- package/src/tui-client/local-chat-turn.ts +31 -9
- package/src/user-config.ts +30 -3
- package/src/ux-sim/boot-daemon-tools-pty-shell-device.ts +136 -0
- package/src/ux-sim/classic-tui-seat-scenarios.ts +158 -4
- package/src/ux-sim/fake-gh.ts +174 -0
- package/src/ux-sim/fake-kubectl.ts +142 -0
- package/src/ux-sim/fake-llm.ts +17 -6
- package/src/ux-sim/next-tui-seat-scenarios.ts +176 -6
- package/src/ux-sim/resume-picker-device.ts +173 -0
- package/src/ux-sim/session-id-seed.ts +60 -0
- package/src/ux-sim/skills-tools-shell-device.ts +156 -0
- package/src/ux-sim/task-agent-parent-host-device.ts +264 -0
- package/src/ux-sim/task-agent-rejudge-on-head-device.ts +114 -0
- package/src/version/packed-revision.json +1 -1
- package/apps/pwa/out/_next/static/chunks/109.f196abf3484bb97f.js +0 -287
- package/apps/pwa/out/_next/static/chunks/1201.afbfc5b1c5e5cbe4.js +0 -1
- package/apps/pwa/out/_next/static/chunks/1517.9275b89572098ff3.js +0 -1
- package/apps/pwa/out/_next/static/chunks/1574.ad11f8db8396ab45.js +0 -1
- package/apps/pwa/out/_next/static/chunks/1614.7a8c5c40aee0261f.js +0 -1
- package/apps/pwa/out/_next/static/chunks/1871-f1eb29d8dbb4065b.js +0 -1
- package/apps/pwa/out/_next/static/chunks/190.285c832bd9626f8c.js +0 -64
- package/apps/pwa/out/_next/static/chunks/2193.0ea24c4a7aa1d004.js +0 -36
- package/apps/pwa/out/_next/static/chunks/223-ad865c1e80491d78.js +0 -1
- package/apps/pwa/out/_next/static/chunks/2265-f0d90b6dbec05f81.js +0 -1
- package/apps/pwa/out/_next/static/chunks/2267.eb4a62a209f09ec4.js +0 -149
- package/apps/pwa/out/_next/static/chunks/2341-86cd06c0cf01aa33.js +0 -1
- package/apps/pwa/out/_next/static/chunks/2352.9abc42422bade876.js +0 -1
- package/apps/pwa/out/_next/static/chunks/2397-c1653a816061842d.js +0 -1
- package/apps/pwa/out/_next/static/chunks/2500.cbc1257b774aae52.js +0 -1
- package/apps/pwa/out/_next/static/chunks/2709.8e1889034255fc5f.js +0 -24
- package/apps/pwa/out/_next/static/chunks/284.ac77c0db55bfd3a8.js +0 -1
- package/apps/pwa/out/_next/static/chunks/2941.3c3546f96bc6efa7.js +0 -1
- package/apps/pwa/out/_next/static/chunks/2976.b000698a3c6512dc.js +0 -24
- package/apps/pwa/out/_next/static/chunks/2986.45d7652e4f13557e.js +0 -2
- package/apps/pwa/out/_next/static/chunks/3155.2587a55196ecb394.js +0 -226
- package/apps/pwa/out/_next/static/chunks/3277.785db1cf09f98601.js +0 -1
- package/apps/pwa/out/_next/static/chunks/3320-f9c77381f85a2c0a.js +0 -1
- package/apps/pwa/out/_next/static/chunks/3386-91049feabff9a94e.js +0 -1
- package/apps/pwa/out/_next/static/chunks/339.80afb7e8839372af.js +0 -8
- package/apps/pwa/out/_next/static/chunks/3538.a445e50bb359d068.js +0 -32
- package/apps/pwa/out/_next/static/chunks/3540c645.2595a6af01a97672.js +0 -1
- package/apps/pwa/out/_next/static/chunks/3621.581b2054cc14bee4.js +0 -286
- package/apps/pwa/out/_next/static/chunks/3676.8c28d16fd84ca843.js +0 -1
- package/apps/pwa/out/_next/static/chunks/375-b84540853523fe52.js +0 -1
- package/apps/pwa/out/_next/static/chunks/3757-180308bc61021b05.js +0 -1
- package/apps/pwa/out/_next/static/chunks/379.ee262e37586fe1ae.js +0 -74
- package/apps/pwa/out/_next/static/chunks/3840-5825d56d46976a92.js +0 -1
- package/apps/pwa/out/_next/static/chunks/3969-81054381eaec4c4c.js +0 -1
- package/apps/pwa/out/_next/static/chunks/4067-bf9aa60547972937.js +0 -1
- package/apps/pwa/out/_next/static/chunks/4176.e5729c93c29151eb.js +0 -104
- package/apps/pwa/out/_next/static/chunks/4227-e6c84686bc8946ca.js +0 -1
- package/apps/pwa/out/_next/static/chunks/4327.b9e08a71c0009348.js +0 -1
- package/apps/pwa/out/_next/static/chunks/4946.bd106eafd668f248.js +0 -148
- package/apps/pwa/out/_next/static/chunks/5085-bce4904931767ca6.js +0 -1
- package/apps/pwa/out/_next/static/chunks/5125.2eb9968b83767193.js +0 -93
- package/apps/pwa/out/_next/static/chunks/5128-75b733fd74a9a1eb.js +0 -1
- package/apps/pwa/out/_next/static/chunks/5489f3fe.4bb1458b09f6dead.js +0 -122
- package/apps/pwa/out/_next/static/chunks/5560-2a4648f6a30f16e7.js +0 -1
- package/apps/pwa/out/_next/static/chunks/5772-e29e14f8ff127122.js +0 -1
- package/apps/pwa/out/_next/static/chunks/5887.5b2f5b44ce0f7e9a.js +0 -1
- package/apps/pwa/out/_next/static/chunks/5899-4c112a2d908cf97f.js +0 -1
- package/apps/pwa/out/_next/static/chunks/6041.1b65efb796ebc2a5.js +0 -79
- package/apps/pwa/out/_next/static/chunks/6057-765c0a26028c86b2.js +0 -1
- package/apps/pwa/out/_next/static/chunks/6142.f289e0d039f453a6.js +0 -1
- package/apps/pwa/out/_next/static/chunks/6199-6bcd61d2a3910e04.js +0 -1
- package/apps/pwa/out/_next/static/chunks/6236.cdf7293e710a9b2d.js +0 -1
- package/apps/pwa/out/_next/static/chunks/6387-237e079dac9a3ae6.js +0 -1
- package/apps/pwa/out/_next/static/chunks/6448-b6d272d074276e14.js +0 -1
- package/apps/pwa/out/_next/static/chunks/6466-92e65a48490b68a9.js +0 -1
- package/apps/pwa/out/_next/static/chunks/6580-cdc0e4a634ce4708.js +0 -1
- package/apps/pwa/out/_next/static/chunks/6659-b242dc31b20b3f29.js +0 -1
- package/apps/pwa/out/_next/static/chunks/6690.c5d9b321b1f79384.js +0 -1
- package/apps/pwa/out/_next/static/chunks/671-e9b6ad0c771c5514.js +0 -1
- package/apps/pwa/out/_next/static/chunks/6862.bcbf89dd0f4496b3.js +0 -27
- package/apps/pwa/out/_next/static/chunks/6912-7b375ee48732c767.js +0 -1
- package/apps/pwa/out/_next/static/chunks/727.7deb87749b0a343a.js +0 -1
- package/apps/pwa/out/_next/static/chunks/7481.39f7a4654907bf6e.js +0 -1
- package/apps/pwa/out/_next/static/chunks/7545.b1aa42cd15503319.js +0 -1
- package/apps/pwa/out/_next/static/chunks/7551-416d298c2dc4a9ab.js +0 -1
- package/apps/pwa/out/_next/static/chunks/7870-309de463786ac1fc.js +0 -1
- package/apps/pwa/out/_next/static/chunks/7888-e29b151bb6a3bb8b.js +0 -1
- package/apps/pwa/out/_next/static/chunks/7891.03f910124a737985.js +0 -1
- package/apps/pwa/out/_next/static/chunks/7905-6ba78d9234608f79.js +0 -1
- package/apps/pwa/out/_next/static/chunks/8207.f527886b7c464529.js +0 -1
- package/apps/pwa/out/_next/static/chunks/856.50bda61439d465e6.js +0 -62
- package/apps/pwa/out/_next/static/chunks/9031-92e9b487edb681ee.js +0 -1
- package/apps/pwa/out/_next/static/chunks/9060.5410d9f6a95f6287.js +0 -90
- package/apps/pwa/out/_next/static/chunks/914.8abefd48d579547b.js +0 -94
- package/apps/pwa/out/_next/static/chunks/9187-c87a2207d4ac5d46.js +0 -1
- package/apps/pwa/out/_next/static/chunks/9289.3e92f278821e18e0.js +0 -1
- package/apps/pwa/out/_next/static/chunks/9319.7816d3cc741cd34f.js +0 -1
- package/apps/pwa/out/_next/static/chunks/9327-e016bb9f1674d24f.js +0 -1
- package/apps/pwa/out/_next/static/chunks/9365.3de48bf75193ff9a.js +0 -77
- package/apps/pwa/out/_next/static/chunks/9383.5b5e9aa56b5fea97.js +0 -1
- package/apps/pwa/out/_next/static/chunks/9387-cb929573ef436f39.js +0 -1
- package/apps/pwa/out/_next/static/chunks/9489.c27becacc3283dec.js +0 -1
- package/apps/pwa/out/_next/static/chunks/9514.131c52cc75fe6439.js +0 -1
- package/apps/pwa/out/_next/static/chunks/9536.28962663c7734376.js +0 -1
- package/apps/pwa/out/_next/static/chunks/9686-12286f5bbf15a5a0.js +0 -1
- package/apps/pwa/out/_next/static/chunks/9776.289d40cc5a4c342a.js +0 -1
- package/apps/pwa/out/_next/static/chunks/9789.60f723d18097ec30.js +0 -1
- package/apps/pwa/out/_next/static/chunks/989.f0c17523c5e61f65.js +0 -1
- package/apps/pwa/out/_next/static/chunks/9972-1df393aa8d4f7d52.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/_not-found/page-96750aba7430959f.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/approvals/page-4105e5bbbb043024.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/autopilot/page-5d4fa75c2acb113e.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/board/page-a79a9bdb3b2142bf.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/botlab/page-f1c2047484992a35.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/bots/page-15ffc49b2d8c70e2.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/ceo/page-67d53a3fc8734135.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/chat/page-e30c8dc696491336.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/consult/page-2136e04fa77696e2.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/control/page-fecd2814790c2e12.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/decisions/page-280aa4a98fc5bb44.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/design-check/page-c14e96b65fb4b883.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/editor/page-187dac74825ed6bf.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/exec/page-6bc7246ea8c92448.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/field/page-083747f1d4518f61.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/healthz/route-96750aba7430959f.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/inside/page-15ca95a16ec96e1f.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/intake/page-a8ac031b3810eb64.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/layout-8835f93110494cda.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/live/page-e2de2e59111c9aad.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/live-run/page-f2b2e4bf6e981450.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/loops/page-5b92b7f75df20948.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/market/page-468eddf2b1a84ecb.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/missions/[id]/page-2af16e62c12f22df.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/morning/page-18b40867a77a5793.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/not-found-fe934f2979f5a4a2.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/observatory/page-3eec435537357170.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/ops/checklist/page-ff88cbfd2aa99fc8.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/ops/release/page-a5b39fb780c70ab5.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/ops/seats/page-ae465dde1d1b3933.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/page-cab9674fde9ead26.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/reflection/page-1da49bc8712284d0.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/scheduler/page-5e8aa657551ac912.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/sessions/page-fcc36f36c6dc1fe2.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/settings/devices/page-d22db22f2a7296ca.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/settings/page-d12dc7b1773878f0.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/setup/done/page-99debec9ea7fbec0.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/setup/layout-96750aba7430959f.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/setup/page-2a088a78bad7e924.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/share/page-2e8ed57db7e69993.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/showroom/page-4b3a16213c2ae8fe.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/tasks/page-f098747ddf38c98b.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/today/page-68279e3c843c1fd7.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/trace/page-a34a74453367a39d.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/vault/page-8767a7db2155a5bd.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/workflows/chat-ui/page-bd5976683460d7f2.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/workflows/page-b7364835e7f2ef54.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/workspace/page-311af16b3ee0ffca.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/worktrees/page-fb670757274ae990.js +0 -1
- package/apps/pwa/out/_next/static/chunks/ccae1c4b-0cf414f5eff1b10d.js +0 -1
- package/apps/pwa/out/_next/static/chunks/f9a61e4d.1fc2c1dbdd49fe46.js +0 -1
- package/apps/pwa/out/_next/static/chunks/framework-6d497cbf1eef04c6.js +0 -1
- package/apps/pwa/out/_next/static/chunks/main-app-012f5edec932f337.js +0 -1
- package/apps/pwa/out/_next/static/chunks/main-da5aeb809edc94a2.js +0 -1
- package/apps/pwa/out/_next/static/chunks/pages/_app-5ee319af6f749dfe.js +0 -1
- package/apps/pwa/out/_next/static/chunks/pages/_error-4bc84653a718d6c6.js +0 -1
- package/apps/pwa/out/_next/static/chunks/webpack-8a96cf6775c73d6e.js +0 -1
- package/scripts/migrate-monad-to-elanous.ts +0 -195
- package/scripts/rebrand-elanous.ts +0 -242
- /package/apps/pwa/out/_next/static/{uC-N0emedeNOFuaBQFv-I → RrjXTwz-urRAbChP1bX02}/_ssgManifest.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5309],{55309:(e,s,c)=>{c.d(s,{createPieServices:()=>a.f});var a=c(58182);c(42435)}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[552],{18137:(e,t,n)=>{function r(e){return null!==e&&"object"==typeof e&&!Array.isArray(e)}function a(e){return"string"==typeof e}function l(e){return a(e)&&/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{1,3})?Z$/.test(e)&&Number.isFinite(Date.parse(e))&&new Date(e).toISOString().slice(0,19)===e.slice(0,19)}function s(e){return r(e)&&a(e.nodeId)&&(null===e.ok||"boolean"==typeof e.ok)&&a(e.summary)&&(void 0===e.startedAt||null===e.startedAt||a(e.startedAt))&&(void 0===e.endedAt||null===e.endedAt||a(e.endedAt))}n.d(t,{HG:()=>x,Kh:()=>g,Nn:()=>f,oc:()=>b});let o=new Set(["pending","running","done","retry","timeout","failed"]),i=e=>void 0===e||"number"==typeof e&&Number.isFinite(e);function c(e){return!!(r(e)&&a(e.runId)&&a(e.status)&&a(e.startedAt)&&(null===e.version||a(e.version))&&Array.isArray(e.path)&&e.path.every(a)&&Array.isArray(e.nodes)&&e.nodes.every(s))&&(void 0!==e.gateShards&&!function(e){if(!r(e)||!a(e.version)||!a(e.updatedAt)||!Array.isArray(e.shards)||!r(e.summary))return!1;let t=e.summary;return e.shards.every(e=>r(e)&&a(e.id)&&o.has(e.state)&&i(e.plannedMin)&&i(e.installSec)&&i(e.rc)&&(void 0===e.waitReason||a(e.waitReason)))&&Number.isInteger(t.total)&&r(t.counts)&&[...o].every(e=>Number.isInteger(t.counts[e]))&&Array.isArray(t.waitReasons)&&t.waitReasons.every(e=>r(e)&&a(e.reason)&&Number.isInteger(e.count))&&(null===t.etaMin||"number"==typeof t.etaMin)&&(null===t.staleMin||"number"==typeof t.staleMin)&&(void 0===t.overrunMin||"number"==typeof t.overrunMin)}(e.gateShards)&&delete e.gateShards,!0)}function d(e){return r(e)&&a(e.id)&&a(e.title)&&a(e.status)&&(void 0===e.owner||a(e.owner))&&a(e.updatedAt)&&(void 0===e.evidence||a(e.evidence))}let u=e=>Number.isInteger(e)&&e>=0;function m(e){return r(e)&&a(e.id)&&a(e.title)&&(null===e.open||u(e.open))&&(null===e.landed||u(e.landed))&&(null===e.blocked||Array.isArray(e.blocked)&&e.blocked.every(e=>r(e)&&a(e.id)&&a(e.title)))}function p(e){return r(e)&&["OP","MK","TC","UX"].includes(e.seat)&&(void 0===e.role||a(e.role))&&(null===e.now||r(e.now)&&a(e.now.text)&&a(e.now.at))&&(null===e.landed||Array.isArray(e.landed)&&e.landed.every(e=>r(e)&&u(e.pr)&&a(e.title)&&a(e.at)&&(null===e.checklistId||a(e.checklistId))))&&(null===e.blocked||Array.isArray(e.blocked)&&e.blocked.every(e=>r(e)&&a(e.id)&&a(e.title)&&"red"===e.status))&&(null===e.pendingDecisions||u(e.pendingDecisions))&&(null===e.checklist||r(e.checklist)&&["green","yellow","red","done"].every(t=>u(e.checklist[t])))&&(void 0===e.subSeats||null===e.subSeats||Array.isArray(e.subSeats)&&e.subSeats.every(m))}async function h(e,t,n){try{let r=await e.fetchResponse(t,{method:"GET"});if(403===r.status)return{kind:"forbidden"};if(!r.ok)return{kind:"error",status:r.status};let a=n(await r.json());return null===a?{kind:"error",status:r.status}:{kind:"ready",data:a}}catch(e){return{kind:"error",status:0}}}function f(e,t){return h(e,"/v1/ops/seats".concat(t?"?date=".concat(encodeURIComponent(t)):""),e=>r(e)&&a(e.date)&&Array.isArray(e.seats)&&e.seats.every(p)&&new Set(e.seats.map(e=>e.seat)).size===e.seats.length?{date:e.date,seats:e.seats}:null)}function b(e,t){return h(e,"/v1/ops/release/runs".concat(t?"?version=".concat(encodeURIComponent(t)):""),e=>Array.isArray(e)&&e.every(c)?e:null)}function g(e,t,n){return h(e,"/v1/ops/release/runs/".concat(encodeURIComponent(t),"/nodes/").concat(encodeURIComponent(n),"/log"),e=>r(e)&&a(e.log)?{log:e.log}:null)}function x(e,t){return h(e,"/v1/ops/checklist?version=".concat(encodeURIComponent(t)),e=>{var t,n,s,o;if(!(r(e)&&a(e.version)&&(void 0===e.codename||a(e.codename))&&Array.isArray(e.items)&&e.items.every(d)&&["green","yellow","red","done"].every(t=>void 0===e[t]||Number.isInteger(e[t])&&e[t]>=0)&&(void 0===e.blocked||Array.isArray(e.blocked)&&e.blocked.every(a))&&(void 0===e.byOwner||r(e.byOwner)&&Object.values(e.byOwner).every(e=>Number.isInteger(e)&&e>=0))&&(void 0===e.history||Array.isArray(e.history))))return null;let i={green:0,yellow:0,red:0,done:0};for(let t of e.items)t.status in i&&i[t.status]++;return{version:e.version,...void 0!==e.codename?{codename:e.codename}:{},schedule:r(e.schedule)&&l(e.schedule.cutAt)&&(null===e.schedule.landBy||l(e.schedule.landBy))?{cutAt:e.schedule.cutAt,landBy:e.schedule.landBy}:null,items:e.items,green:null!=(t=e.green)?t:i.green,yellow:null!=(n=e.yellow)?n:i.yellow,red:null!=(s=e.red)?s:i.red,done:null!=(o=e.done)?o:i.done,...void 0!==e.blocked?{blocked:e.blocked}:{},...void 0!==e.byOwner?{byOwner:e.byOwner}:{},...void 0!==e.history?{history:e.history}:{}}})}},18550:(e,t,n)=>{n.d(t,{a:()=>o});var r=n(61241),a=n(11437),l=n(33140);let s=e=>JSON.stringify([e.graphId,e.runId]);function o(e){let{client:t,approvals:n,onDecided:o,onPendingChange:i}=e,c=(0,a.useMemo)(()=>(0,l.ll)({client:t}),[t]),[d,u]=(0,a.useState)([]),[m,p]=(0,a.useState)({}),[h,f]=(0,a.useState)(null),[b,g]=(0,a.useState)(""),x=(0,a.useRef)(0),v=n.map(s).join("|");function y(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:m;u(e),i(n.filter(n=>!t[s(n)]&&e.some(e=>s(e)===s(n))).length)}async function w(e,t){let r=s(e);if(h||m[r]||!n.some(e=>s(e)===r)||!d.some(e=>s(e)===r))return;let a=x.current;f(r),g("");try{if(await c.decide(e.graphId,e.runId,t),x.current!==a)return;let n={...m,[r]:t};p(n),y(d,n),o();let l=await c.list();x.current===a&&y(l.items,n)}catch(e){x.current===a&&g((0,l.LP)(e,"decide"))}finally{x.current===a&&f(null)}}return((0,a.useEffect)(()=>{let e=++x.current;return(u([]),g(""),v)?(c.list().then(t=>{x.current===e&&y(t.items)}).catch(t=>{x.current===e&&g((0,l.LP)(t,"list"))}),()=>{x.current+=1}):(i(0),()=>{x.current+=1})},[c,v]),0===n.length)?null:(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsx)("h3",{className:"font-semibold",children:"게시 승인"}),b&&(0,r.jsx)("p",{role:"alert",className:"text-sm text-destructive",children:b}),(0,r.jsx)("ul",{className:"space-y-2",children:n.map(e=>{let t=s(e),n=d.some(e=>s(e)===t);return(0,r.jsxs)("li",{className:"rounded-lg border border-border bg-background px-4 py-3 text-sm",children:[(0,r.jsx)("p",{children:e.message}),m[t]?(0,r.jsx)("p",{className:"mt-2 text-muted-foreground",children:"approved"===m[t]?"승인됨":"보류됨"}):n?(0,r.jsxs)("div",{className:"mt-2 flex gap-2",children:[(0,r.jsx)("button",{type:"button",disabled:null!==h,onClick:()=>void w(e,"approved"),className:"rounded-lg bg-primary px-3 py-1 text-primary-foreground disabled:opacity-50",children:"승인"}),(0,r.jsx)("button",{type:"button",disabled:null!==h,onClick:()=>void w(e,"rejected"),className:"rounded-lg border border-border px-3 py-1 disabled:opacity-50",children:"보류"})]}):(0,r.jsx)("p",{className:"mt-2 text-muted-foreground",children:"대기 중인 승인이 아닙니다."})]},t)})})]})}},33140:(e,t,n)=>{function r(e){return{slides:e.slides.map(e=>{let{image:t,caption:n,include:r}=e;return{image:t,caption:n,include:r}}),caption:{hook:e.caption.hook,body:e.caption.body},hashtags:[...e.hashtags],cover:{text:e.cover.text,sub:e.cover.sub},location:e.location}}n.d(t,{$Y:()=>s,LP:()=>i,Mz:()=>r,ll:()=>d,rH:()=>o});class a extends Error{constructor(e,t){super(t),this.status=e,this.name="GraphApprovalsApiError"}}let l={list:"목록을 보려면",decide:"승인하려면",save:"초안을 저장하려면"},s="/app/settings/#bearer-token";function o(e){return e instanceof a&&(401===e.status||403===e.status)}function i(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"decide";return e instanceof a?401===e.status||403===e.status?"".concat(l[t]," 이 기기를 데몬에 연결해야 합니다 — 설정 › 데몬 연결 › 연결 토큰 칸에 토큰을 넣어 주세요."):404===e.status?"이 실행을 찾지 못했습니다. 목록을 다시 확인해 주세요.":409===e.status?"이미 결정된 실행입니다. 목록을 다시 확인해 주세요.":400===e.status?"결정 내용을 확인한 뒤 다시 시도해 주세요.":"승인 요청을 처리하지 못했습니다. 잠시 뒤 다시 시도해 주세요.":e instanceof TypeError?"서버에 연결하지 못했습니다. 연결 상태를 확인해 주세요.":"승인 요청을 처리하지 못했습니다. 잠시 뒤 다시 시도해 주세요."}let c="/v1/graph-approvals";function d(e){var t,n;let r=(null!=(t=e.baseUrl)?t:"").replace(/\/+$/,""),l=null!=(n=e.fetchImpl)?n:fetch;async function s(t,n){let s={...n,headers:{"content-type":"application/json",...e.authHeader?{authorization:e.authHeader}:{}}},o=e.client?await e.client.fetchResponse(t,s):await l("".concat(r).concat(t),s),i=await o.json().catch(()=>null);if(!o.ok){let e=i&&"object"==typeof i&&"error"in i&&"string"==typeof i.error?i.error:"request-failed";throw new a(o.status,e)}return i}return{list:()=>s(c),decide:(e,t,n)=>s("".concat(c,"/").concat(encodeURIComponent(e),"/").concat(encodeURIComponent(t)),{method:"POST",body:JSON.stringify({decision:n})}),saveFeedDraft:(e,t,n)=>s("".concat(c,"/").concat(encodeURIComponent(e),"/").concat(encodeURIComponent(t),"/feed-draft"),{method:"PUT",body:JSON.stringify(n)}),feedMedia:async(t,n,s)=>{let o="".concat(c,"/").concat(encodeURIComponent(t),"/").concat(encodeURIComponent(n),"/media?path=").concat(encodeURIComponent(s)),i={headers:e.authHeader?{authorization:e.authHeader}:{}},d=e.client?await e.client.fetchResponse(o,i):await l("".concat(r).concat(o),i);if(!d.ok)throw new a(d.status,"media-failed");return d.blob()}}}},50552:(e,t,n)=>{n.d(t,{ChatPanel:()=>e4});var r=n(61241),a=n(11437),l=n(90548),s=n(44835),o=n(36351),i=n(88165),c=n(449),d=n.n(c),u=n(28843),m=n(40503),p=n(18137),h=n(80784);function f(){let{client:e}=(0,m.Q)(),[t,n]=(0,a.useState)([]);if((0,a.useEffect)(()=>{if("undefined"==typeof document)return;let t=!0,r=!1,a=async()=>{if(!t||r||document.hidden)return;r=!0;let a=new Intl.DateTimeFormat("sv-SE",{timeZone:"Asia/Seoul"}).format(new Date),l=await (0,p.Nn)(e,a);r=!1,t&&n((0,h.z)("ready"===l.kind?l.data:null,Date.now()))};n([]),a();let l=globalThis.setInterval(()=>{a()},6e4),s=()=>{document.hidden||a()};return document.addEventListener("visibilitychange",s),()=>{t=!1,globalThis.clearInterval(l),document.removeEventListener("visibilitychange",s)}},[e]),0===t.length)return null;let l=t.map(e=>{let{seat:t,text:n,ago:r}=e;return"".concat(t," ").concat(n," \xb7 ").concat(r)}).join(" | ");return(0,r.jsx)("div",{role:"status","aria-label":"지금 자리들이 하는 일",title:l,className:"h-8 min-h-8 min-w-0 shrink-0 overflow-hidden text-ellipsis whitespace-nowrap border-b border-border bg-background px-3 text-xs leading-8 text-muted-foreground",children:t.map((e,t)=>{let{seat:n,text:a,ago:l}=e;return(0,r.jsxs)("span",{children:[t>0&&" | ",n," ",a," \xb7 ",l]},n)})})}var b=n(3063),g=n(21519);function x(){let{client:e}=(0,m.Q)(),[t,n]=(0,a.useState)(!1),[l,s]=(0,a.useState)(!1),[o,i]=(0,a.useState)(""),c=(0,a.useRef)(!1),d=(0,a.useRef)(0),u=(0,a.useRef)(!1);(0,a.useEffect)(()=>(n("speechSynthesis"in window&&"undefined"!=typeof SpeechSynthesisUtterance),()=>{d.current++,u.current&&"speechSynthesis"in window&&window.speechSynthesis.cancel()}),[]);let p=async()=>{if(c.current||!t)return;c.current=!0;let n=++d.current;s(!0),i(""),u.current&&window.speechSynthesis.cancel(),u.current=!1;try{let t=await e.fetchResponse("/v1/context/now?format=voice",{method:"GET"});if(!t.ok)throw Error("HTTP ".concat(t.status));let r=await t.json();if(!r||"object"!=typeof r||!("text"in r)||"string"!=typeof r.text||!r.text.trim())throw Error("invalid voice summary");if(n!==d.current)return;let a=new SpeechSynthesisUtterance(r.text);a.lang="ko-KR",a.onend=()=>{n===d.current&&(u.current=!1)},a.onerror=()=>{n===d.current&&(u.current=!1)},u.current=!0,window.speechSynthesis.speak(a),(0,g.cY)("chat.now.speak",{outcome:"spoken"})}catch(e){if(n!==d.current)return;u.current=!1,i("지금 상황을 읽지 못했습니다. 다시 시도해 주세요."),(0,g.cY)("chat.now.speak",{outcome:"error",reason:String(e)})}finally{n===d.current&&(c.current=!1,s(!1))}};return(0,r.jsxs)("div",{className:"flex shrink-0 items-center gap-1",children:[(0,r.jsxs)("button",{type:"button","data-elanous-action":"chat-now-speak","aria-label":"지금 상황 듣기",title:t?"지금 상황 두 문장 듣기":"이 브라우저는 음성 읽기를 지원하지 않습니다",disabled:!t||l,onClick:()=>void p(),className:"inline-flex min-h-9 items-center gap-1.5 rounded-full border border-border bg-background px-3 text-xs font-medium text-foreground hover:bg-muted disabled:cursor-not-allowed disabled:opacity-50",children:[(0,r.jsx)(b.A,{className:"h-4 w-4","aria-hidden":"true"}),(0,r.jsx)("span",{children:"지금 상황 듣기"})]}),o&&(0,r.jsx)("span",{role:"alert",className:"text-xs text-rose-600",children:o})]})}var v=n(18550),y=n(33140);function w(){let{mobileOpen:e,onCount:t}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{client:n}=(0,m.Q)(),l=(0,a.useMemo)(()=>(0,y.ll)({client:n}),[n]),[s,o]=(0,a.useState)({client:n,items:[],pending:0,expanded:!1}),i=(0,a.useRef)(n);i.current=n;let c=(0,a.useRef)(!1),d=(0,a.useRef)(0),u=s.client===n?s:null,p=(0,a.useCallback)(async()=>{if(!c.current||i.current!==n||"undefined"!=typeof document&&document.hidden)return;let e=++d.current;try{let t=await l.list();if(!c.current||i.current!==n||d.current!==e)return;o(r=>i.current===n&&d.current===e?{client:n,items:t.items,pending:t.items.length,expanded:t.items.length>0&&r.client===n&&r.expanded}:r)}catch(t){if(!c.current||i.current!==n||d.current!==e)return;o(t=>i.current===n&&d.current===e?{client:n,items:[],pending:0,expanded:!1}:t)}},[l,n]);if((0,a.useEffect)(()=>{c.current=!0,o({client:n,items:[],pending:0,expanded:!1}),p();let e=globalThis.setInterval(()=>{p()},3e4),t=()=>{document.hidden||p()};return"undefined"!=typeof document&&document.addEventListener("visibilitychange",t),()=>{c.current=!1,d.current+=1,globalThis.clearInterval(e),"undefined"!=typeof document&&document.removeEventListener("visibilitychange",t)}},[n,p]),(0,a.useEffect)(()=>{var e,t;(0,g.cY)("chat.approvals",{pending:null!=(e=null==u?void 0:u.pending)?e:0,expanded:null!=(t=null==u?void 0:u.expanded)&&t})},[null==u?void 0:u.pending,null==u?void 0:u.expanded]),(0,a.useEffect)(()=>{var e;null==t||t(null!=(e=null==u?void 0:u.pending)?e:0)},[t,null==u?void 0:u.pending]),!(null==u?void 0:u.pending)||t&&!e)return null;let h=(0,r.jsx)(v.a,{client:n,approvals:u.items,onDecided:()=>{p()},onPendingChange:e=>{i.current===n&&o(t=>t.client===n?{...t,pending:e,...0===e?{items:[],expanded:!1}:{}}:t)}});return t?(0,r.jsx)("div",{id:"chat-approvals-panel",className:"max-h-[min(50vh,24rem)] overflow-y-auto border-b border-border p-3",children:h}):(0,r.jsxs)("div",{className:"shrink-0 border-b border-border bg-background px-3 py-1.5 text-sm",children:[(0,r.jsxs)("button",{type:"button","aria-expanded":u.expanded,"aria-controls":"chat-approvals-panel",onClick:()=>o(e=>e.client===n?{...e,expanded:!e.expanded}:e),className:"rounded-full border border-border bg-muted px-3 py-1 font-medium text-foreground hover:bg-muted/70",children:["승인 대기 ",u.pending]}),u.expanded&&(0,r.jsx)("div",{id:"chat-approvals-panel",className:"mt-2 max-h-[min(50vh,24rem)] overflow-y-auto rounded-lg border border-border p-3",children:h})]})}var j=n(13106);function k(){var e;let{mobileOpen:t,onCount:n}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{client:l}=(0,m.Q)(),[s,o]=(0,a.useState)({client:l,items:[],expanded:!1,decided:{},busy:null}),i=(0,a.useRef)(l);i.current=l;let c=(0,a.useRef)(!1),d=(0,a.useRef)(0),u=(0,a.useRef)(null),p=s.client===l?s:null,h=(0,a.useCallback)(async()=>{if(!c.current||i.current!==l||"undefined"!=typeof document&&document.hidden)return;let e=++d.current;try{let t=await (0,j.qK)(l);if(!c.current||i.current!==l||d.current!==e)return;o(e=>e.client===l?{...e,items:[...t,...e.items.filter(n=>e.decided[n.id]&&!t.some(e=>e.id===n.id))],expanded:e.expanded&&(t.length>0||e.items.some(t=>e.decided[t.id]))}:e)}catch(t){if(!c.current||i.current!==l||d.current!==e)return;o(e=>e.client===l?{...e,items:[],expanded:!1}:e)}},[l]);(0,a.useEffect)(()=>{c.current=!0,u.current=null,o({client:l,items:[],expanded:!1,decided:{},busy:null}),h();let e=globalThis.setInterval(()=>{h()},3e4),t=()=>{document.hidden||h()};return"undefined"!=typeof document&&document.addEventListener("visibilitychange",t),()=>{c.current=!1,u.current=null,d.current+=1,globalThis.clearInterval(e),"undefined"!=typeof document&&document.removeEventListener("visibilitychange",t)}},[l,h]);let f=async(e,t)=>{if(!u.current&&!s.busy&&!s.decided[e.id]){u.current=e.id,o(t=>t.client===l?{...t,busy:e.id}:t);try{if(await (0,j.LD)(l,e.id,t.id),!c.current||i.current!==l)return;u.current=null,o(n=>n.client===l?{...n,busy:null,decided:{...n.decided,[e.id]:t.label}}:n),await h()}catch(e){c.current&&i.current===l&&(u.current=null,o(e=>e.client===l?{...e,busy:null}:e))}}},b=null!=(e=null==p?void 0:p.items.filter(e=>!p.decided[e.id]).length)?e:0;if((0,a.useEffect)(()=>{null==n||n(b)},[n,b]),!p||!b&&!(p.expanded&&p.items.some(e=>p.decided[e.id]))||n&&!t)return null;let g=(0,r.jsx)("ul",{id:"chat-decisions-panel",className:"mt-2 max-h-[min(50vh,24rem)] space-y-2 overflow-y-auto rounded-lg border border-border p-3",children:p.items.map(e=>(0,r.jsxs)("li",{className:"rounded-lg border border-border p-3",children:[(0,r.jsx)("h3",{className:"font-semibold",children:e.title}),(0,r.jsx)("p",{className:"truncate text-muted-foreground",title:e.situation,children:e.situation}),p.decided[e.id]?(0,r.jsxs)("p",{role:"status",children:["결정함 — ",p.decided[e.id]]}):(0,r.jsx)("div",{className:"mt-2 flex flex-wrap gap-2",children:e.options.map(t=>(0,r.jsxs)("button",{type:"button",disabled:!!p.busy,onClick:()=>{f(e,t)},className:"rounded-md border border-border px-2 py-1 hover:bg-muted disabled:opacity-50",children:[t.label,"option"in e.recommendation&&e.recommendation.option===t.id&&(0,r.jsx)("span",{className:"ml-1 text-primary",children:"추천"})]},t.id))})]},e.id))});return n?g:(0,r.jsxs)("div",{className:"shrink-0 border-b border-border bg-background px-3 py-1.5 text-sm",children:[(0,r.jsxs)("button",{type:"button","aria-expanded":p.expanded,"aria-controls":"chat-decisions-panel",onClick:()=>o(e=>e.client===l?{...e,expanded:!e.expanded}:e),className:"rounded-full border border-border bg-muted px-3 py-1 font-medium text-foreground hover:bg-muted/70",children:["대표 결정 ",b]}),p.expanded&&g]})}function N(e){let{activity:t,decisions:n,menu:a}=e,l="active"===t.kind?t.run.progressLine||t.run.runId:"quiet"===t.kind?"없음":"loading"===t.kind?"확인 중":"확인 불가";return(0,r.jsxs)("div",{"data-elanous-mobile-chat-status":"",role:"status",className:"flex h-10 min-h-10 min-w-0 items-center gap-3 border-b border-border bg-background px-3 text-xs",children:[(0,r.jsxs)("span",{className:"min-w-0 flex-1 truncate",title:l,children:["지금 도는 일 \xb7 ",l]}),(0,r.jsxs)("span",{className:"shrink-0",children:["대기 결정 \xb7 ",null!=n?n:"—"]}),a]})}var S=n(46039),C=n(33021);function I(e){let{queue:t,onRemove:n,onClear:a}=e;return 0===t.length?null:(0,r.jsxs)("div",{className:"flex shrink-0 flex-wrap items-center gap-1.5 border-t border-border bg-background px-3 py-2","aria-label":"보낼 차례",children:[t.map((e,t)=>(0,r.jsxs)("span",{className:"inline-flex max-w-full items-center gap-1 rounded-full border border-border bg-muted px-2 py-1 text-xs",children:[(0,r.jsxs)("span",{className:"max-w-[160px] truncate",title:e.text,children:[t+1," \xb7 ",Array.from(e.text).slice(0,20).join("")]}),(0,r.jsx)("button",{type:"button",onClick:()=>n(e.id),"aria-label":"".concat(t+1,"번 지우기"),className:"rounded-full px-1 hover:bg-background",children:"\xd7"})]},e.id)),(0,r.jsx)("button",{type:"button",onClick:a,className:"rounded px-2 py-1 text-xs text-muted-foreground hover:bg-muted",children:"모두 지우기"})]})}function A(e){let t={files:[],tooLarge:0,tooMany:0};for(let n of e)n.file.size>0x1400000?t.tooLarge+=1:t.files.length>=10?t.tooMany+=1:t.files.push(n);return t}function E(e){return!!(e&&Array.from(e.types).includes("Files"))}function R(){return(0,r.jsx)("div",{role:"status","aria-label":"여기에 놓으면 첨부","data-elanous-chat-drop-overlay":"",className:"pointer-events-none absolute inset-0 z-30 flex items-center justify-center bg-background/80 backdrop-blur-sm",children:(0,r.jsxs)("div",{className:"mx-4 rounded-2xl border-2 border-dashed border-primary/60 bg-card/90 px-8 py-6 text-center shadow-lg",children:[(0,r.jsx)("p",{className:"text-lg font-semibold text-foreground",children:"여기에 놓으면 첨부"}),(0,r.jsxs)("p",{className:"mt-2 text-sm text-muted-foreground",children:["파일 ",10,"개까지 \xb7 큰 파일은 빠집니다"]})]})})}function D(e,t,n){if("drop"===t||"end"===t||!n)return{visible:!1,depth:0};let r="enter"===t?e.depth+1:Math.max(0,e.depth-1);return{visible:r>0,depth:r}}var q=n(72003),T=n(86667),L=n(84199);class U{list(){return this.client.fetchJson("/v1/projects")}folders(e){return this.client.fetchJson("/v1/projects/folders".concat(void 0===e?"":"?path=".concat(encodeURIComponent(e))))}create(e,t){return this.client.fetchJson("/v1/projects",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({name:e,...void 0!==t?{primaryFolder:t}:{}})})}assign(e,t){return this.client.fetchJson("/v1/sessions/store/".concat(encodeURIComponent(e)),{method:"PATCH",headers:{"content-type":"application/json"},body:JSON.stringify({projectId:t})})}fetchProjectAutopsy(e){return this.client.fetchJson("/v1/projects/".concat(encodeURIComponent(e),"/autopsy"))}constructor(e){this.client=e}}let O="elanous.chat.projectSelection",M="elanous-chat-pending-projects-changed",F="elanous-chat-projects-changed";function P(){window.dispatchEvent(new Event(F))}let Y="elanous.chat.pendingProjects";function _(){try{var e;let t=JSON.parse(null!=(e=localStorage.getItem(Y))?e:"{}");if(t&&"object"==typeof t&&!Array.isArray(t))return Object.fromEntries(Object.entries(t).filter(e=>{let[t,n]=e;return t&&"string"==typeof n&&n}))}catch(e){}return{}}function J(e){try{localStorage.setItem(Y,JSON.stringify(e))}catch(e){return!1}return window.dispatchEvent(new Event(M)),!0}function z(e){let{projects:t,selection:n,onChange:l,onCreate:s,api:o}=e,[i,c]=(0,a.useState)(!1),[d,u]=(0,a.useState)(""),[m,p]=(0,a.useState)(!1),[h,f]=(0,a.useState)(""),[b,g]=(0,a.useState)(null),[x,v]=(0,a.useState)(!1),[y,w]=(0,a.useState)(!1),[j,k]=(0,a.useState)(!1),N=(0,a.useRef)(0),S=(0,a.useRef)(!1),C=async e=>{if(!o)return;let t=++N.current;w(!0),v(!1),g(null);try{let n=await o.folders(e);t===N.current&&g(n)}catch(e){t===N.current&&v(!0)}finally{t===N.current&&w(!1)}};return(0,r.jsxs)("div",{className:"space-y-2",children:[0===t.length&&!i&&(0,r.jsx)("button",{type:"button",onClick:()=>c(!0),className:"text-sm text-muted-foreground hover:text-foreground",children:"+ 프로젝트 만들기"}),t.length>0&&(0,r.jsxs)("select",{"aria-label":"프로젝트 바꾸기",value:n,onChange:e=>{if("create"===e.target.value)return void c(!0);l(e.target.value)},className:"w-full rounded-lg border border-border bg-background px-3 py-2 text-sm",children:[(0,r.jsx)("option",{value:"all",children:"모든 대화"}),(0,r.jsx)("option",{value:"none",children:"받은 대화(프로젝트 없음)"}),t.map(e=>(0,r.jsx)("option",{value:e.id,children:e.name},e.id)),(0,r.jsx)("option",{value:"create",children:"+ 프로젝트 만들기"})]}),i&&(0,r.jsxs)("form",{onSubmit:e=>{e.preventDefault();let t=d.trim();!t||S.current||y||(S.current=!0,k(!0),s(t,h||void 0).then(()=>{N.current++,c(!1),u(""),f(""),g(null),p(!1)}).catch(()=>p(!0)).finally(()=>{S.current=!1,k(!1)}))},className:"flex flex-wrap gap-2",children:[(0,r.jsx)("input",{"aria-label":"프로젝트 이름",autoFocus:!0,value:d,maxLength:80,onChange:e=>u(e.target.value),className:"min-w-0 flex-1 rounded-lg border border-border bg-background px-2 py-1 text-sm"}),(0,r.jsx)("button",{type:"submit",disabled:y||j,className:"rounded-lg border border-border px-2 text-sm",children:"만들기"}),o&&(0,r.jsx)("button",{type:"button","aria-label":"원격 폴더 고르기",disabled:j||y,onClick:()=>void C(),className:"rounded-lg border border-border px-2 text-sm",children:"폴더"}),m&&(0,r.jsx)("span",{role:"alert",children:"프로젝트를 만들지 못했습니다"})]}),i&&b&&(0,r.jsxs)("div",{role:"group","aria-label":"원격 폴더 목록",className:"max-h-48 overflow-y-auto rounded-lg border border-border p-2 text-sm",children:[(0,r.jsx)("p",{className:"break-all",children:b.path}),b.parent&&(0,r.jsx)("button",{type:"button","aria-label":"상위 폴더",onClick:()=>{var e;C(null!=(e=b.parent)?e:void 0)},className:"block w-full py-1 text-left",children:".."}),b.folders.map(e=>(0,r.jsxs)("button",{type:"button",onClick:()=>void C(e.path),className:"block w-full truncate py-1 text-left",children:[e.name,"/"]},e.path)),(0,r.jsx)("button",{type:"button",disabled:y||j,onClick:()=>{N.current++,w(!1),f(b.path),g(null)},className:"rounded border border-border px-2 py-1",children:"이 폴더 선택"})]}),i&&h&&(0,r.jsxs)("p",{className:"break-all text-xs",children:["선택한 폴더: ",h]}),i&&y&&(0,r.jsx)("p",{role:"status",children:"폴더 불러오는 중…"}),i&&x&&(0,r.jsx)("p",{role:"alert",children:"폴더를 불러오지 못했습니다"})]})}function $(e){var t,n;let{compact:l=!1}=e,{client:s,sessionId:o}=(0,m.Q)(),i=(0,L.t)(),[c,d]=(0,a.useState)([]),[u,p]=(0,a.useState)(!0),[h,f]=(0,a.useState)(!1),[b,g]=(0,a.useState)(0),[x,v]=(0,a.useState)(!1),[y,w]=(0,a.useState)(null),[j,k]=(0,a.useState)(!1),[N,S]=(0,a.useState)(!0),[C,I]=(0,a.useState)([]),[A,E]=(0,a.useState)(0),[R,D]=(0,a.useState)(null),q=(0,a.useRef)(null),O=(0,a.useRef)(null),Y=(0,a.useRef)(null),z=(0,a.useRef)(new Set),$=!!(o&&C.includes(o)),Q=(0,a.useRef)(null),G=(0,a.useRef)(o);G.current=o;let[K,B]=(0,a.useState)(""),[H,W]=(0,a.useState)(!1),[Z,V]=(0,a.useState)(""),[X,ee]=(0,a.useState)(""),[et,en]=(0,a.useState)(null),[er,ea]=(0,a.useState)(!1),[el,es]=(0,a.useState)(!1),eo=(0,a.useRef)(0),ei=(0,a.useRef)(!1),ec=async e=>{let t=++eo.current;ea(!1),es(!0),en(null);try{let n=await new U(s).folders(e);t===eo.current&&en(n)}catch(e){t===eo.current&&ea(!0)}finally{t===eo.current&&es(!1)}};(0,a.useEffect)(()=>{let e=!0,t=0;d([]),f(!1);let n=()=>{let n=++t;p(!0),new U(s).list().then(r=>{let{projects:a}=r;e&&n===t&&(d(null!=a?a:[]),f(!1))}).catch(()=>{e&&n===t&&f(!0)}).finally(()=>{e&&n===t&&p(!1)})};return n(),window.addEventListener(F,n),()=>{e=!1,window.removeEventListener(F,n)}},[s,b]),(0,a.useEffect)(()=>{let e=!0;return(S(!0),D(null),k(!1),Q.current=null,w(null),o)?(s.fetchJson("/v1/sessions/store/".concat(encodeURIComponent(o),"?ifExists=1")).then(t=>{var n,r,a,l;e&&(k(!!t.meta),Q.current=null!=(r=null==(n=t.meta)?void 0:n.projectId)?r:null,z.current.has(o)||w(t.meta?null!=(a=t.meta.projectId)?a:null:null!=(l=_()[o])?l:null),D(o),S(!1))}).catch(()=>{e&&(D(null),B("프로젝트를 확인하지 못했습니다"),S(!1))}),()=>{e=!1}):void S(!1)},[s,o,A]),(0,a.useEffect)(()=>{eo.current++,en(null),ee(""),ea(!1),es(!1),B(""),W(!1),q.current=null,Y.current=null},[o]),(0,a.useEffect)(()=>{if(!o)return;let e=()=>{let e=_()[o];e&&(Y.current=null),z.current.has(o)||(R===o&&j&&e!==Q.current?E(e=>e+1):R===o&&w(null!=e?e:null))};return window.addEventListener(M,e),()=>window.removeEventListener(M,e)},[o,R,j]),(0,a.useEffect)(()=>{o&&R===o&&!j&&!$&&q.current!==o&&i.some(e=>e.id===o)&&(q.current=o,D(null),E(e=>e+1))},[o,R,j,$,i]),(0,a.useEffect)(()=>{if(!o||!j||N||$)return;let e=_()[o];!e||z.current.has(o)||O.current===o||Y.current==="".concat(o,":").concat(e)||(O.current=o,new U(s).assign(o,e).then(()=>{G.current===o&&(Q.current=e);let t=_();t[o]===e&&(delete t[o],J(t),G.current!==o||z.current.has(o)||w(e)),(0,T.hG)(s).forceRefresh()}).catch(()=>{Y.current="".concat(o,":").concat(e);let t=_();t[o]===e&&(delete t[o],J(t)),G.current===o&&(w(Q.current),B("프로젝트를 바꾸지 못했습니다"))}).finally(()=>{O.current=null}))},[s,o,j,N,$,A]);let ed=async function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(!o||R!==o||N||h&&!t||z.current.has(o)||O.current===o)return!1;z.current.add(o),I(e=>[...e,o]),B("");try{if(j){await new U(s).assign(o,e),G.current===o&&(Q.current=e),(0,T.hG)(s).forceRefresh();let t=_();t[o]&&(delete t[o],J(t))}else{let t=_();if(e?t[o]=e:delete t[o],!J(t))throw Error("pending project storage unavailable")}return G.current===o&&w(e),!0}catch(e){return G.current===o&&B("프로젝트를 바꾸지 못했습니다"),!1}finally{z.current.delete(o),I(e=>e.filter(e=>e!==o))}},eu=y?null!=(n=null==(t=c.find(e=>e.id===y))?void 0:t.name)?n:"알 수 없는 프로젝트":"프로젝트 없음";return(0,r.jsxs)("div",{className:l?"relative flex min-w-0 items-center gap-1.5 text-xs":"flex min-w-0 flex-wrap items-center gap-1.5 text-xs",children:[(0,r.jsx)("label",{htmlFor:"chat-current-project",className:l?"sr-only":"shrink-0 text-muted-foreground",children:"프로젝트"}),(0,r.jsxs)("select",{id:"chat-current-project","aria-label":"현재 대화 프로젝트",title:o&&R===o&&!N?"현재 프로젝트: ".concat(eu):"프로젝트 확인 중…",value:o&&R===o&&!N?null!=y?y:"":"loading",disabled:!o||R!==o||N||u||$||O.current===o||h,onChange:e=>{if("create"===e.target.value){u||h||W(!0);return}ed(e.target.value||null)},className:"".concat(l?"w-20 max-w-[24vw]":"max-w-36"," min-w-0 truncate rounded-md border border-border bg-background px-2 py-1 text-foreground focus-visible:outline focus-visible:outline-2 focus-visible:outline-ring"),children:[(!o||R!==o||N)&&(0,r.jsx)("option",{value:"loading",children:"프로젝트 확인 중…"}),(0,r.jsx)("option",{value:"",children:"프로젝트 없음"}),y&&!c.some(e=>e.id===y)&&(0,r.jsx)("option",{value:y,children:"알 수 없는 프로젝트"}),c.map(e=>(0,r.jsx)("option",{value:e.id,children:e.name},e.id)),l&&(0,r.jsx)("option",{value:"create",children:"+ 프로젝트 만들기"})]}),!l&&(0,r.jsx)("button",{type:"button","aria-label":"프로젝트 만들기",title:"프로젝트 만들기",disabled:!o||R!==o||N||u||$||h,onClick:()=>W(e=>!e),className:"shrink-0 rounded px-1 hover:bg-muted",children:"+"}),H&&(0,r.jsxs)("form",{onSubmit:e=>{e.preventDefault();let t=Z.trim();!t||!o||R!==o||N||u||h||$||ei.current||el||(ei.current=!0,v(!0),B(""),new U(s).create(t,X||void 0).then(async e=>{let{project:t}=e;d(e=>[...e,t]);let n=await ed(t.id,!0);P(),n&&(eo.current++,W(!1),V(""),ee(""),en(null))}).catch(()=>B("프로젝트를 만들지 못했습니다")).finally(()=>{ei.current=!1,v(!1)}))},className:l?"absolute right-0 top-full z-50 mt-1 flex flex-wrap items-center gap-1 rounded-lg border border-border bg-popover p-2 shadow-lg":"flex min-w-0 flex-wrap items-center gap-1",children:[(0,r.jsx)("input",{"aria-label":"새 프로젝트 이름",autoFocus:!0,maxLength:80,value:Z,onChange:e=>V(e.target.value),className:"w-24 rounded border border-border bg-background px-1 py-1"}),(0,r.jsx)("button",{type:"submit",disabled:$||x||el||!o||R!==o||u||h,className:"rounded border border-border px-1",children:"만들기"}),(0,r.jsx)("button",{type:"button","aria-label":"원격 폴더 고르기",disabled:x||el,onClick:()=>void ec(),className:"rounded border border-border px-1",children:"폴더"})]}),H&&et&&(0,r.jsxs)("div",{role:"group","aria-label":"원격 폴더 목록",className:l?"absolute right-0 top-full z-50 mt-12 max-h-48 w-64 max-w-[90vw] overflow-y-auto rounded border border-border bg-popover p-2 shadow-lg":"max-h-48 w-64 max-w-[90vw] overflow-y-auto rounded border border-border bg-popover p-2 shadow-lg",children:[(0,r.jsx)("p",{className:"break-all",children:et.path}),et.parent&&(0,r.jsx)("button",{type:"button","aria-label":"상위 폴더",onClick:()=>{var e;ec(null!=(e=et.parent)?e:void 0)},className:"block w-full text-left",children:".."}),et.folders.map(e=>(0,r.jsxs)("button",{type:"button",onClick:()=>void ec(e.path),className:"block w-full truncate text-left",children:[e.name,"/"]},e.path)),(0,r.jsx)("button",{type:"button",disabled:el||x,onClick:()=>{eo.current++,es(!1),ee(et.path),en(null)},className:"rounded border border-border px-1",children:"이 폴더 선택"})]}),H&&X&&(0,r.jsxs)("span",{className:"break-all text-xs",children:["선택한 폴더: ",X]}),H&&el&&(0,r.jsx)("span",{role:"status",children:"폴더 불러오는 중…"}),H&&er&&(0,r.jsx)("span",{role:"alert",children:"폴더를 불러오지 못했습니다"}),(o&&R!==o&&!N||h)&&(0,r.jsx)("button",{type:"button","aria-label":"프로젝트 다시 확인",onClick:()=>{B(""),E(e=>e+1),h&&g(e=>e+1)},className:"rounded border border-border px-1",children:"다시 시도"}),(K||h)&&(0,r.jsx)("span",{role:"alert",className:"text-destructive",children:K||"프로젝트 목록을 불러오지 못했습니다"})]})}var Q=n(18765),G=n(60590);function K(e){let{segmentKey:t,value:n,glyph:a}=e,l=function(e){var t;let n=/(\d{1,3})\s*%/.exec(e);if(!n)return null;let r=Number.parseInt(null!=(t=n[1])?t:"",10);return Number.isFinite(r)?Math.max(0,Math.min(100,r)):null}(n);if(null===l)return(0,r.jsxs)("span",{"data-elanous-hud-key":t,"data-elanous-hud-gauge":"false",className:"inline-flex items-center gap-1 font-mono text-[11px] text-muted-foreground",children:[a?(0,r.jsx)("span",{"aria-hidden":"true",children:a}):null,(0,r.jsx)("span",{children:n})]});let{bar:s,text:o}=l>=80?{bar:"bg-pink-400",text:"text-pink-300"}:l>=60?{bar:"bg-amber-400",text:"text-amber-300"}:{bar:"bg-emerald-500",text:"text-emerald-300"};return(0,r.jsxs)("span",{"data-elanous-hud-key":t,"data-elanous-hud-gauge":"true","data-elanous-hud-percent":String(l),className:"inline-flex items-center gap-1.5 font-mono text-[11px]",children:[a?(0,r.jsx)("span",{"aria-hidden":"true",className:"text-muted-foreground",children:a}):null,(0,r.jsx)("span",{role:"progressbar","aria-valuenow":l,"aria-valuemin":0,"aria-valuemax":100,"aria-label":"".concat(t," ").concat(l,"%"),className:"relative h-2 w-20 overflow-hidden rounded bg-muted/30",children:(0,r.jsx)("span",{"aria-hidden":"true",style:{width:"".concat(l,"%")},className:(0,Q.cn)("block h-full",s)})}),(0,r.jsx)("span",{className:(0,Q.cn)("tabular-nums",o),children:n})]})}let B=new Set(["variant","workspace","model","token-gauge","ctx","agent-activity","agents"]),H=new Set(["token-gauge","ctx"]),W={normal:"text-foreground",warn:"text-amber-300",danger:"text-pink-300",success:"text-emerald-300",info:"text-sky-300",muted:"text-muted-foreground"};function Z(e){var t,n;let{segment:a}=e;if(H.has(a.key))return(0,r.jsx)(K,{segmentKey:a.key,value:a.value,...void 0!==a.glyph?{glyph:a.glyph}:{}});let l=a.tone?W[a.tone]:W.normal;return(0,r.jsxs)("span",{"data-elanous-hud-key":a.key,"data-elanous-hud-tone":null!=(t=a.tone)?t:"normal","data-elanous-hud-priority":String(null!=(n=a.priority)?n:50),className:(0,Q.cn)("inline-flex items-center gap-1 font-mono text-[11px]",l),children:[a.glyph?(0,r.jsx)("span",{"aria-hidden":"true",children:a.glyph}):null,(0,r.jsx)("span",{children:a.value})]})}function V(e){let{segments:t,row:n,className:a}=e;return 0===t.length?null:(0,r.jsx)("div",{"data-elanous-hud-row":n,className:(0,Q.cn)("flex flex-wrap items-center gap-x-3 gap-y-1",a),children:t.map((e,t)=>(0,r.jsxs)("span",{className:"flex items-center gap-x-3",children:[t>0?(0,r.jsx)("span",{"aria-hidden":"true",className:"text-muted-foreground",children:"\xb7"}):null,(0,r.jsx)(Z,{segment:e})]},e.key))})}function X(e){let{segments:t}=e;if(0===t.length)return null;let{top:n,bottom:a}=function(e){let t=[],n=[];for(let r of e)B.has(r.key)?t.push(r):n.push(r);return{top:t,bottom:n}}(t);return(0,r.jsxs)("div",{"data-elanous-hud":"strip",role:"status","aria-label":"HUD status",className:"flex flex-col gap-0.5 border-b border-border/40 bg-muted/10 px-3 py-1.5",children:[(0,r.jsx)(V,{segments:n,row:"top"}),(0,r.jsx)(V,{segments:a,row:"bottom",className:"hidden sm:flex"})]})}let ee=[];function et(){return ee}function en(){let e=(0,a.useSyncExternalStore)(G.er,G.Wl,et);return(0,r.jsx)(X,{segments:e})}function er(e,t){if("string"!=typeof e)return t;let n=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(?:\.\d+)?(?:Z|[+-](\d{2}):(\d{2}))$/.exec(e);if(!n)return t;let[,r,a,l,s,o,i,c,d]=n,u=Number(r),m=Number(a),p=Number(l),h=[31,u%4==0&&(u%100!=0||u%400==0)?29:28,31,30,31,30,31,31,30,31,30,31][m-1];if(p<1||void 0===h||p>h||Number(s)>23||Number(o)>59||Number(i)>59||void 0!==c&&(Number(c)>23||Number(d)>59))return t;let f=Date.parse(e);return Number.isFinite(f)?f:t}var ea=n(26341),el=n(86066),es=n(20031),eo=n(92106),ei=n(98883),ec=n(10184),ed=n(15053),eu=n(32221);let em={idle:"음성 대기",connecting:"데몬 연결 중…",listening:"듣는 중",processing:"생각 중…",speaking:"말하는 중",error:"음성 오류"},ep={idle:"마이크를 켜서 대화를 시작하세요.",connecting:"잠시만 기다려주세요.",listening:"문장이 끝나면 자동으로 전송됩니다.",processing:"서버가 응답을 생성하는 중입니다.",speaking:"음성 응답을 재생하는 중입니다.",error:"아래 메시지를 확인하고 다시 시도하세요."},eh={idle:"bg-slate-400",connecting:"bg-amber-500",listening:"bg-emerald-500",processing:"bg-sky-500",speaking:"bg-fuchsia-500",error:"bg-rose-600"};function ef(e){let{active:t,phase:n,errorMsg:a,onToggle:l,ttsSupported:i=!1,ttsMuted:c=!1,onTtsToggle:d,onInterrupt:u}=e,m="speaking"===n&&"function"==typeof u;return(0,r.jsxs)("div",{"data-elanous-voice-overlay":!0,"aria-hidden":!t,className:(0,Q.cn)("pointer-events-none absolute inset-0 z-10 flex items-center justify-center transition-opacity duration-300",t?"pointer-events-auto opacity-100":"opacity-0"),children:[(0,r.jsx)("div",{className:"absolute inset-0 bg-background/60 backdrop-blur-md"}),(0,r.jsxs)("div",{className:"relative mx-4 flex w-full max-w-sm flex-col items-center gap-5 rounded-xl border border-border bg-card px-6 py-7 text-center shadow-xl",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 text-sm",children:[(0,r.jsx)("span",{className:(0,Q.cn)("h-2.5 w-2.5 rounded-full",eh[n],("listening"===n||"speaking"===n||"connecting"===n)&&"animate-pulse"),"aria-hidden":!0}),(0,r.jsx)("span",{className:"font-medium tracking-wide",children:em[n]})]}),(0,r.jsx)("p",{className:"text-xs text-muted-foreground",children:ep[n]}),(0,r.jsx)("button",{type:"button",onClick:m?u:l,"data-elanous-action":m?"voice-overlay-interrupt":"voice-overlay-toggle",className:(0,Q.cn)("inline-flex h-16 w-16 items-center justify-center rounded-full text-white transition-colors",m?"bg-amber-500 hover:bg-amber-400 animate-pulse":"connecting"===n||"processing"===n?"bg-sky-500 hover:bg-sky-400":"error"===n?"bg-rose-600 hover:bg-rose-500":"bg-rose-500 hover:bg-rose-400"),"aria-label":m?"끼어들기":"마이크 끄기",children:m?(0,r.jsx)(ei.A,{className:"h-7 w-7"}):"connecting"===n||"processing"===n?(0,r.jsx)(ec.A,{className:"h-7 w-7 animate-spin"}):"error"===n?(0,r.jsx)(ed.A,{className:"h-7 w-7"}):(0,r.jsx)(s.A,{className:"h-7 w-7"})}),a&&(0,r.jsx)("p",{className:"max-w-xs text-xs text-rose-500",children:a}),(0,r.jsxs)("div",{className:"flex items-center gap-4",children:[i&&d&&(0,r.jsxs)("button",{type:"button",onClick:d,"data-elanous-action":"voice-overlay-tts-toggle",className:"inline-flex items-center gap-1.5 text-xs text-muted-foreground hover:text-foreground","aria-label":c?"음성 응답 켜기":"음성 응답 끄기","aria-pressed":!c,children:[c?(0,r.jsx)(eu.A,{className:"h-3.5 w-3.5"}):(0,r.jsx)(b.A,{className:"h-3.5 w-3.5"}),(0,r.jsx)("span",{children:c?"음성 응답 OFF":"음성 응답 ON"})]}),(0,r.jsxs)("button",{type:"button",onClick:l,className:"inline-flex items-center gap-1.5 text-xs text-muted-foreground hover:text-foreground","aria-label":"음성 닫고 텍스트로 돌아가기",children:[(0,r.jsx)(o.A,{className:"h-3.5 w-3.5"}),(0,r.jsx)("span",{children:"음성 끄기"})]})]})]})]})}function eb(e){let{open:t,onClose:n,lines:l}=e,[s,o]=(0,a.useState)(""),i=(0,a.useMemo)(()=>{if(!s.trim())return null;try{return RegExp(s,"i")}catch(e){return null}},[s]),c=(0,a.useMemo)(()=>s.trim().toLowerCase(),[s]),d=(0,a.useMemo)(()=>{let e=l.length>200?l.slice(l.length-200):l;return i?e.filter(e=>i.test(e.category)||i.test(e.event)):c?e.filter(e=>e.category.toLowerCase().includes(c)||e.event.toLowerCase().includes(c)):e},[l,i,c]);return(0,r.jsx)("div",{"data-elanous-debug-tap-drawer":t?"open":"closed",className:(0,Q.cn)("fixed bottom-0 left-0 right-0 z-50 transition-transform duration-200 ease-out","pointer-events-none",t?"translate-y-0":"translate-y-full"),role:"region","aria-label":"Debug Tap Drawer","aria-hidden":!t,children:(0,r.jsxs)("div",{className:(0,Q.cn)("pointer-events-auto mx-auto flex max-h-[60vh] w-full max-w-[1100px] flex-col","rounded-t-md border border-b-0 border-border bg-card shadow-xl"),children:[(0,r.jsxs)("header",{className:"flex items-center justify-between gap-2 border-b border-border/60 px-3 py-2",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("span",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:"Debug Tap"}),(0,r.jsxs)("span",{className:"text-[10px] text-muted-foreground/70","data-elanous-debug-tap-count":d.length,"data-elanous-debug-tap-total":l.length,children:[d.length,"/",l.length]})]}),(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("input",{type:"text",placeholder:"regex filter…",value:s,onChange:e=>o(e.target.value),spellCheck:!1,autoComplete:"off",className:(0,Q.cn)("w-40 rounded border border-border bg-background px-2 py-1 text-[11px] font-mono","focus:outline-none focus:ring-1 focus:ring-primary"),"data-elanous-debug-tap-filter":"","aria-label":"Filter debug lines"}),(0,r.jsx)("button",{type:"button",onClick:n,className:"rounded px-2 py-1 text-xs text-muted-foreground hover:bg-muted hover:text-foreground","aria-label":"Close debug drawer","data-elanous-debug-tap-close":"",children:"✕"})]})]}),(0,r.jsx)("ul",{className:"flex-1 overflow-y-auto px-3 py-2 text-[11px] font-mono","data-elanous-debug-tap-list":"",children:0===d.length?(0,r.jsx)("li",{className:"italic text-muted-foreground/60",children:0===l.length?"(no debug lines yet)":"(no matches for filter)"}):d.map((e,t)=>(0,r.jsx)(eg,{line:e},"".concat(e.loggedAt,"-").concat(e.seq,"-").concat(t)))})]})})}function eg(e){let{line:t}=e,n=new Date(t.loggedAt).toISOString().slice(11,23);return(0,r.jsxs)("li",{"data-elanous-debug-tap-line":"","data-elanous-category":t.category,"data-elanous-event":t.event,className:"py-0.5",children:[(0,r.jsxs)("span",{className:"text-muted-foreground/70",children:["[",n,"]"]})," ",(0,r.jsxs)("span",{className:"text-amber-400",children:["[",t.category,"]"]})," ",(0,r.jsx)("span",{className:"text-foreground",children:t.event}),void 0!==t.data&&(0,r.jsxs)("details",{className:"ml-4 text-muted-foreground",children:[(0,r.jsx)("summary",{className:"cursor-pointer select-none text-[10px]",children:"data"}),(0,r.jsx)("pre",{className:"m-0 mt-1 whitespace-pre-wrap break-all text-[10px] text-muted-foreground/80",children:function(e){try{return JSON.stringify(e,null,2)}catch(t){return String(e)}}(t.data)})]})]})}var ex=n(70620),ev=n(36993),ey=n(7833),ew=n(93018),ej=n(88702),ek=n(98806),eN=n(51629);let eS="Other";function eC(e){let{request:t,onSubmit:n,onCancel:a,onChatAboutThis:l}=e;return(0,r.jsx)(ew.lG,{open:null!==t,onOpenChange:e=>{e||a()},children:(0,r.jsx)(ew.Cf,{className:"max-w-2xl",children:t?(0,r.jsx)(eI,{request:t,onSubmit:n,onCancel:a,onChatAboutThis:l}):null})})}function eI(e){let{request:t,onSubmit:n,onCancel:l,onChatAboutThis:s}=e,[o,i]=(0,a.useState)(()=>Object.fromEntries(t.questions.map(e=>[e.id,new Set]))),[c,d]=(0,a.useState)({}),[u,m]=(0,a.useState)({}),p=1===t.questions.length?t.questions[0].header:"Pick options",h=(0,a.useMemo)(()=>{for(let n of t.questions){var e;let t=null!=(e=o[n.id])?e:new Set,r=eR(n,o,u);if(0===t.size&&!r)return!1}return!0},[t.questions,o,u]);return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(ew.c7,{children:[(0,r.jsx)(ew.L3,{children:p}),1===t.questions.length?(0,r.jsx)(ew.rr,{children:t.questions[0].question}):(0,r.jsxs)(ew.rr,{children:[t.questions.length," questions"]})]}),(0,r.jsx)(eN.F,{className:"max-h-[60vh] pr-2",children:(0,r.jsx)("div",{className:"flex flex-col gap-6 py-2",children:t.questions.map(e=>{var t;return(0,r.jsx)(eA,{question:e,isSelected:t=>{var n,r,a;return n=e.id,null!=(a=null==(r=o[n])?void 0:r.has(t))&&a},onToggle:t=>{i(n=>{var r;let a={...n},l=new Set(null!=(r=a[e.id])?r:[]);return e.multiSelect?l.has(t)?l.delete(t):l.add(t):(l.clear(),l.add(t),m(t=>({...t,[e.id]:!1}))),a[e.id]=l,a})},otherActive:eR(e,o,u),onToggleOther:()=>{e.multiSelect?m(t=>{var n;return{...t,[e.id]:!(null!=(n=t[e.id])&&n)}}):i(t=>{let n={...t};return n[e.id]=new Set([eS]),n})},otherText:null!=(t=c[e.id])?t:"",onOtherText:t=>d(n=>({...n,[e.id]:t}))},e.id)})})}),(0,r.jsxs)(ew.Es,{className:"flex-wrap gap-2 sm:justify-between",children:[(0,r.jsx)(ej.$,{variant:"ghost",onClick:s,"aria-label":"Chat about this",children:"\uD83D\uDCAC Chat about this"}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)(ej.$,{variant:"outline",onClick:l,children:"Cancel"}),(0,r.jsx)(ej.$,{onClick:function(){let e={},r={};for(let n of t.questions){var a,l;let t=Array.from(null!=(a=o[n.id])?a:[]);if(eR(n,o,u)&&!t.includes(eS)&&t.push(eS),0!==t.length&&(n.multiSelect?e[n.id]=t:e[n.id]=t[0],t.includes(eS))){let e=(null!=(l=c[n.id])?l:"").trim();e.length>0&&(r[n.id]=e)}}let s={answers:e};Object.keys(r).length>0&&(s.otherText=r),n(s)},disabled:!h,children:"Submit"})]})]})]})}function eA(e){var t,n;let{question:a}=e;return(0,r.jsxs)("section",{className:"flex flex-col gap-2",children:[""!==e.question.id?(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("span",{className:"rounded-full bg-primary/15 px-2 py-0.5 text-xs font-medium text-primary",children:a.header}),a.multiSelect?(0,r.jsx)("span",{className:"text-xs text-muted-foreground",children:"multi-select"}):null]}):null,(0,r.jsxs)("div",{className:"flex flex-col gap-1.5",children:[a.options.map(t=>{var n;return(0,r.jsx)(eE,{multi:null!=(n=a.multiSelect)&&n,option:t,selected:e.isSelected(t.label),onToggle:()=>e.onToggle(t.label)},t.label)}),null==(t=a.includeOther)||t?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(eE,{multi:null!=(n=a.multiSelect)&&n,option:{label:"Other",description:"Type your own response"},selected:e.otherActive,onToggle:e.onToggleOther}),e.otherActive?(0,r.jsx)(ek.p,{value:e.otherText,onChange:t=>e.onOtherText(t.target.value),placeholder:"Type your own response","aria-label":"Other response",className:"ml-8"}):null]}):null]})]})}function eE(e){let{multi:t,option:n,selected:a,onToggle:l}=e;return(0,r.jsxs)("button",{type:"button",role:t?"checkbox":"radio","aria-checked":a,onClick:l,className:"\n flex items-start gap-3 rounded-md border p-3 text-left\n transition-colors\n ".concat(a?"border-primary bg-primary/10":"border-border hover:bg-muted/40","\n "),children:[(0,r.jsx)("span",{className:"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center ".concat(t?"rounded":"rounded-full"," border ").concat(a?"border-primary bg-primary text-primary-foreground":"border-muted-foreground/40"),"aria-hidden":"true",children:a?t?"✓":"●":null}),(0,r.jsxs)("span",{className:"flex flex-col gap-0.5",children:[(0,r.jsx)("span",{className:"font-medium",children:n.label}),(0,r.jsx)("span",{className:"text-sm text-muted-foreground",children:n.description}),n.preview?(0,r.jsx)("span",{className:"mt-1 rounded bg-muted/40 px-2 py-1 text-xs font-mono text-muted-foreground",children:n.preview}):null]})]})}function eR(e,t,n){var r,a,l;return e.multiSelect?null!=(a=n[e.id])&&a:null!=(l=null==(r=t[e.id])?void 0:r.has(eS))&&l}function eD(e){if(void 0===e)return"";if("string"==typeof e)return e;try{var t;return null!=(t=JSON.stringify(e,null,2))?t:""}catch(e){return""}}function eq(e){let{request:t,receivedAt:n,onChoose:l,onCancel:s}=e,[o,i]=(0,a.useState)(()=>Date.now());(0,a.useEffect)(()=>{if(!t)return;i(Date.now());let e=setInterval(()=>i(Date.now()),1e3);return()=>clearInterval(e)},[t]);let c=t?eD(t.toolCall.rawInput):"",d=t?function(e){if(e&&"object"==typeof e&&!Array.isArray(e)){for(let t of["file_path","filePath","path","command","cmd"])if("string"==typeof e[t])return e[t].slice(0,80)}return eD(e).replace(/\s+/g," ").slice(0,80)}(t.toolCall.rawInput):"",u=Math.max(0,Math.ceil((n+6e4-o)/1e3));return(0,r.jsx)(ew.lG,{open:null!==t,onOpenChange:e=>{!e&&t&&s(t)},children:(0,r.jsx)(ew.Cf,{className:"max-w-lg",children:t&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(ew.c7,{children:[(0,r.jsx)(ew.L3,{children:"이 작업을 실행할까요?"}),(0,r.jsxs)(ew.rr,{children:["도구: ",t.toolCall.title]})]}),d&&(0,r.jsx)("p",{className:"truncate font-mono text-sm",title:d,children:d}),c&&(0,r.jsxs)("details",{className:"text-sm",children:[(0,r.jsx)("summary",{className:"cursor-pointer",children:"자세히"}),(0,r.jsx)("pre",{className:"mt-2 max-h-48 overflow-auto whitespace-pre-wrap break-all rounded bg-muted p-2",children:c})]}),(0,r.jsxs)("p",{className:"text-xs text-muted-foreground","aria-live":"off",children:["남은 시간: ",u,"초"]}),(0,r.jsxs)(ew.Es,{className:"flex-wrap gap-2",children:[(0,r.jsx)(ej.$,{onClick:()=>l(t,"allow_once"),children:"이번만 허용"}),(0,r.jsx)(ej.$,{variant:"outline",onClick:()=>l(t,"allow_always"),children:"이 도구는 항상 허용"}),(0,r.jsx)(ej.$,{variant:"outline",onClick:()=>l(t,"reject_once"),children:"거절"})]})]})})})}let eT={outcome:{outcome:"cancelled"}},eL=["allow_once","allow_always","reject_once","reject_always"],eU="unverified";var eO=n(14214),eM=n(11026);function eF(e,t){var n;return"error"!==t.kind?null:null!=(n=function(e){if(!e||"object"!=typeof e)return null;let{error:t,message:n,holder:r}=e;return"turn_busy"!==t?null:{message:"string"==typeof n?n:"This session is currently receiving input. Please try again when that turn finishes.",holder:"string"==typeof r&&r.trim()?r:null}}(t.payload))?n:e}var eP=n(51489);function eY(e){return"string"==typeof e.mediaType&&e.mediaType.toLowerCase().startsWith("image/")}async function e_(e,t){let n=e.downloadUrl.startsWith("http")?e.downloadUrl:"".concat(t.baseUrl.replace(/\/$/,"")).concat(e.downloadUrl),r={};t.token&&(r.authorization="Bearer ".concat(t.token));let a=await fetch(n,{headers:r});if(!a.ok)throw Error("fetch attachment ".concat(e.id," failed: ").concat(a.status));return function(e){let t=new Uint8Array(e),n="";for(let e=0;e<t.length;e+=32768)n+=String.fromCharCode(...t.subarray(e,e+32768));return btoa(n)}(await a.arrayBuffer())}async function eJ(e,t,n){if(0===t.length)return null;let r=[];for(let a of(e.length>0&&r.push({type:"text",text:e}),t))if(eY(a))try{let e=await e_(a,n);r.push({type:"image",mimeType:a.mediaType,data:e})}catch(t){let e=t instanceof Error?t.message:String(t);r.push({type:"text",text:"[image fetch failed: ".concat(a.filename," — ").concat(e,"]")})}else r.push({type:"resource_link",uri:a.path?"file://".concat(a.path):a.downloadUrl,mimeType:a.mediaType,name:a.filename});return r}let ez="elanous.pwa.pendingCardFollowups";function e$(e,t){try{var n;let r=JSON.parse(null!=(n=e.getItem(ez))?n:"[]");if(!Array.isArray(r))return[];return r.filter(e=>!!e&&"object"==typeof e&&"string"==typeof e.sessionId&&e.sessionId.length>0&&"string"==typeof e.id&&e.id.length>0&&"number"==typeof e.startedAt&&Number.isFinite(e.startedAt)&&e.startedAt<=t&&t-e.startedAt<9e5)}catch(e){return[]}}function eQ(e,t){try{t.length?e.setItem(ez,JSON.stringify(t)):e.removeItem(ez)}catch(e){}}function eG(){try{return window.localStorage}catch(e){return}}async function eK(e,t,n,r){let a=await e.fetchResponse("/v1/card-followup",{...r?{signal:r}:{},method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({attachmentId:t,...void 0===n?{}:{context:n}})});if(!a.ok)throw Error("card followup start failed: ".concat(a.status));let l=await a.json();if("string"!=typeof l.id||!l.id)throw Error("card followup start returned no id");return l.id}async function eB(e,t){let n,{intervalMs:r=3e3,signal:a,onStatus:l,startedAt:s}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=void 0===s?6e5:Math.max(0,s+9e5-Date.now()),i=Date.now()+o,c={status:"failed"},d=new AbortController,u=a?AbortSignal.any([a,d.signal]):d.signal,m=!1,p=function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return new Promise((n,r)=>{let l;if(u.aborted){var s;r(null!=(s=null==a?void 0:a.reason)?s:Error("aborted"));return}let o="undefined"==typeof document?void 0:document,i=()=>{clearTimeout(l),null==o||o.removeEventListener("visibilitychange",c),u.removeEventListener("abort",d)},c=()=>{(null==o?void 0:o.visibilityState)!=="hidden"&&(i(),n())},d=()=>{var e;i(),r(null!=(e=null==a?void 0:a.reason)?e:Error("aborted"))};l=setTimeout(()=>{i(),n()},e),t&&(null==o||o.addEventListener("visibilitychange",c)),u.addEventListener("abort",d,{once:!0})})},h=async()=>{for(;Date.now()<i;){var n,s;if(null==a?void 0:a.aborted)throw null!=(n=a.reason)?n:Error("aborted");if("undefined"!=typeof document&&"hidden"===document.visibilityState){await p(i-Date.now(),!0);continue}let o=await e.fetchResponse("/v1/card-followup/".concat(encodeURIComponent(t)),{signal:u});if(!o.ok)throw Error("card followup poll failed: ".concat(o.status));let d=await o.json();if(null==a?void 0:a.aborted)throw null!=(s=a.reason)?s:Error("aborted");if(m)return c;if(null==l||l(d.status),"done"===d.status||"not-card"===d.status||"failed"===d.status)return d;await p(Math.min(Math.max(0,r),Math.max(0,i-Date.now())))}return null==l||l("failed"),c};try{return await Promise.race([h(),new Promise(e=>{n=setTimeout(()=>{m=!0,d.abort(),null==l||l("failed"),e(c)},o)})])}finally{clearTimeout(n)}}function eH(){var e,t;let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{compact:c}=(0,u.K)(),[p,h]=(0,a.useState)(!1),[b,v]=(0,a.useState)(!1),[y,j]=(0,a.useState)(0),[T,L]=(0,a.useState)(0),U=(0,a.useRef)(null);(0,a.useEffect)(()=>{if(!p)return;let e=e=>{U.current&&U.current.contains(e.target)||h(!1)},t=e=>{"Escape"===e.key&&h(!1)};return document.addEventListener("pointerdown",e),document.addEventListener("keydown",t),()=>{document.removeEventListener("pointerdown",e),document.removeEventListener("keydown",t)}},[p]),(0,a.useEffect)(()=>{c||h(!1)},[c]);let{client:O,config:M,sessionId:F,setSessionId:P}=(0,m.Q)(),[Y,_]=(0,a.useState)([]),[J,z]=(0,a.useState)(),[K,B]=(0,a.useState)(!1),[H,W]=(0,a.useState)([]),Z=(0,a.useRef)([]),V=(0,a.useRef)(F),X=(0,a.useRef)(F),ee=(0,a.useRef)(null),et=(0,a.useRef)(0),ei=(0,a.useRef)(0),ec=(0,a.useRef)(!1),[ed,eu]=(0,a.useState)(null),em=V.current!==F&&ee.current!==F?[]:H;(0,a.useLayoutEffect)(()=>{X.current=F,V.current!==F&&(ee.current!==F&&(et.current++,Z.current=[],W([]),_([]),eS.current&&B(!1)),V.current=F,ee.current=null)},[F]);let ep=e=>{Z.current=e,W(e)},[eh,eg]=(0,a.useState)(null),[ew,ej]=(0,a.useState)(null),[ek,eN]=(0,a.useState)([]),eS=(0,a.useRef)(null),eI=(0,a.useRef)(null);(0,a.useEffect)(()=>()=>{var e;eI.current!==X.current&&(null==(e=eS.current)||e.abort())},[F]),(0,a.useEffect)(()=>()=>{var e;null==(e=eS.current)||e.abort()},[]);let[eA,eE]=(0,a.useState)({visible:!1,depth:0});(0,a.useEffect)(()=>{let e=()=>eE(e=>D(e,"end",!1));return window.addEventListener("dragend",e),()=>window.removeEventListener("dragend",e)},[]);let eR=(0,a.useRef)(!1),eD=(0,a.useRef)(null),e_=(0,a.useRef)(null),[ez,eH]=(0,a.useState)(null),eW=(0,a.useMemo)(()=>{try{let e=new URLSearchParams(window.location.search);return"on"===e.get("debug-tap")}catch(e){return!1}},[]),[eZ,eV]=(0,a.useState)(eW),eX=(0,a.useMemo)(()=>{let e=[];for(let t of Y)if(Array.isArray(t.blocks)){for(let n of t.blocks)if("debug_session"===n.kind)for(let t of n.lines)e.push({seq:t.seq,category:t.category,event:t.event,...void 0!==t.data?{data:t.data}:{},loggedAt:t.loggedAt})}return e},[Y]),e0=(0,a.useRef)(async()=>{}),e1=(0,a.useRef)(!1);e1.current=K;let e2=(0,a.useRef)(async()=>{}),e3=O.voiceWsUrl(),e5=(0,a.useCallback)(e=>{let t=e.trim();if(t){if(e1.current)return void(0,g.cY)("chat.voice.skip-pending",{len:t.length});(0,g.cY)("chat.voice.auto-send",{len:t.length}),e0.current(t)}},[]),e4=(0,ev.sS)({wsUrl:e3,...M.token?{token:M.token}:{},onTranscript:e5}),e6=!!M.baseUrl;e2.current=()=>e4.toggle();let[e8,e7]=(0,a.useState)(!1),e9=(0,ey.$)({enabled:e4.active&&!e8,language:"ko-KR"}),te=(0,a.useCallback)(()=>{null==ew||ew.abort(),(0,g.cY)("webterm.chat.stop",{had:!!ew})},[ew]);(0,a.useEffect)(()=>{if(!ew)return;let e=e=>{var t;if("Escape"!==e.key)return;let n=e.target,r=null==n||null==(t=n.tagName)?void 0:t.toLowerCase();"input"===r||"textarea"===r||null!=n&&n.isContentEditable||(e.preventDefault(),te())};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[ew,te]),(0,a.useEffect)(()=>{let e=e=>{"m"===e.key.toLowerCase()&&e.shiftKey&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),(0,g.cY)("chat.voice.shortcut.toggle"),e2.current())};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[]);let tt=(0,a.useCallback)(e=>{eN(t=>[...t,...e]),(0,g.cY)("webterm.chat.attach.queue",{added:e.length,filenames:e.map(e=>e.filename)})},[]),tn=async e=>{let{files:t,tooLarge:n,tooMany:r}=e;if(n&&eM.oR.error("".concat(n," files exceed the 20 MB attachment limit")),r&&eM.oR.error("".concat(r," files exceed the 10-file attachment limit")),0===t.length)return;if(!M.baseUrl)return void eM.oR.error("Daemon URL 미설정 — Settings 에서 입력");let a=await (0,eP.K)(t,{baseUrl:M.baseUrl,...M.token?{token:M.token}:{}}),l=a.filter(e=>e.ok).map(e=>e.meta),s=a.filter(e=>!e.ok);l.length&&(tt(l),eM.oR.success(1===l.length?"\uD83D\uDCCE ".concat(l[0].filename):"\uD83D\uDCCE ".concat(l.length," files attached"))),s.length&&eM.oR.error(1===s.length?"업로드 실패: ".concat(s[0].reason.slice(0,80)):"".concat(s.length," 파일 업로드 실패"))};(0,a.useEffect)(()=>{try{let e=window.sessionStorage.getItem("elanous.pwa.shareAttachments");if(!e)return;window.sessionStorage.removeItem("elanous.pwa.shareAttachments");let t=JSON.parse(e);if(!Array.isArray(t)||0===t.length)return;eN(e=>[...e,...t]);let n=1===t.length?"1 file shared from another app":"".concat(t.length," files shared from another app");eM.oR.success(n),(0,g.cY)("pwa.chat.share-attachments.consume",{count:t.length})}catch(e){(0,g.cY)("pwa.chat.share-attachments.parse-failed",{reason:e instanceof Error?e.message:String(e)})}},[]),(0,a.useEffect)(()=>{if(!F)return;let e=!0;return(async()=>{try{let t=await O.fetchJson("/v1/sessions/store/".concat(encodeURIComponent(F),"?ifExists=1"));if(!e||!(null==t?void 0:t.messages)||0===t.messages.length)return;_(e=>e.some(e=>!e.id.startsWith("m-card-resume-"))?e:[...function(e,t){let n,r,a=[],l=[];for(let o of e){var s;if("tool"===o.role){for(let e of(0===l.length&&(r=o.ts),function(e,t){let n,r=function(e,t){var n,r;let a,l=String(null!=(n=e.toolName)?n:"");try{a=JSON.parse(String(null!=(r=e.toolResult)?r:""))}catch(e){a=void 0}let s=a&&"object"==typeof a&&!Array.isArray(a)?a:void 0,o=null==s?void 0:s._meta,i=o&&"object"==typeof o&&!Array.isArray(o)?o.ui:void 0,c=i&&"object"==typeof i&&!Array.isArray(i)?i.resourceUri:void 0,d=null==s?void 0:s["ui/resourceUri"],u="string"==typeof c?c:"string"==typeof d?d:void 0;return void 0!==u&&""!==u.trim()?{kind:"mcp_app",toolId:t,toolName:l,screenUrl:u,...void 0!==a?{toolResult:a}:{}}:{kind:"tool_use",id:t,name:l,status:"done",...void 0!==s&&void 0!==e.toolArgs?{args:{raw:String(e.toolArgs)}}:{}}}(e,t);try{var a;n=JSON.parse(String(null!=(a=e.toolResult)?a:""))}catch(e){n=void 0}let l=(0,G.uS)(n).map(e=>({kind:"image",...e})),s=[];return(0,G.ki)(s,null!=n?n:e.toolResult),[...l,r,...s]}(o,"restore-tool-".concat(l.length,"-").concat(a.length))))"image"===e.kind&&l.some(t=>"image"===t.kind&&t.src===e.src)||l.push(e);continue}if("user"!==o.role&&"assistant"!==o.role)continue;let e=String(null!=(s=o.content)?s:""),i=String(null!=e?e:"").split("\n").filter(e=>!/^\[tool_(use|result)\]$/.test(e.trim())).join("\n"),c="assistant"===o.role?"assistant":"user";if(""===i.trim()){l.length>0&&"assistant"===c&&(a.push({id:"restore-".concat(a.length),role:c,text:"",blocks:l,timestamp:er(r,t+a.length)}),l=[],r=void 0);continue}let d=i!==e,u=void 0!==n&&n.role===c&&n.text===i&&(d||n.wasStripped)&&0===l.length;if(n={role:c,text:i,wasStripped:d},u)continue;let m=l.length>0&&"assistant"===c?[...l,{kind:"text",text:i}]:void 0,p=er(void 0!==m?r:o.ts,t+a.length);void 0!==m&&(l=[],r=void 0),a.push({id:"restore-".concat(a.length),role:c,text:i,...void 0!==m?{blocks:m}:{},timestamp:p})}return l.length>0&&a.push({id:"restore-".concat(a.length),role:"assistant",text:"",blocks:l,timestamp:er(r,t+a.length)}),a}(t.messages,Date.now()),...e])}catch(e){}})(),()=>{e=!1}},[F,O]);let tr=(0,a.useCallback)(e=>{eN(t=>t.filter(t=>t.id!==e))},[]),ta={client:O,sessionId:F,provider:M.provider,setSessionId:P,daemon:{baseUrl:M.baseUrl,...M.token?{token:M.token}:{}},messages:Y},tl=e=>{_(t=>[...t,e])},ts=async(e,t,n,r,a)=>{var l;let s=await eB(O,e,{signal:r.signal,...void 0===a?{}:{startedAt:a},onStatus:e=>(0,g.cY)("pwa.chat.card-followup",{phase:"poll",status:e})});if(r.signal.aborted||X.current!==t)return"terminal";let o=eG();return(o&&function(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:Date.now();eQ(e,e$(e,r).filter(e=>e.sessionId!==t||e.id!==n))}(o,t,e),"not-card"===s.status)?(_(e=>e.filter(e=>e.id!==n)),(0,g.cY)("pwa.chat.card-followup",{phase:"fallback",status:s.status}),"not-card"):("done"===s.status&&(null==(l=s.replies)?void 0:l.length)===3&&s.replies.every(e=>"string"==typeof e)?(_(e=>[...e.filter(e=>e.id!==n),...s.replies.map((e,t)=>({id:"".concat(n,"-").concat(t),role:"assistant",text:e,timestamp:Date.now(),meta:{provider:M.provider}}))]),(0,g.cY)("pwa.chat.card-followup",{phase:"complete",status:"done"})):(_(e=>e.map(e=>e.id===n?{...e,text:"명함 정리에 실패했습니다 — 다시 보내 주세요"}:e)),(0,g.cY)("pwa.chat.card-followup",{phase:"complete",status:"failed"})),"terminal")};(0,a.useEffect)(()=>{if(!F)return;let e=eG();if(!e)return;let t=(function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Date.now(),r=e$(e,n);return eQ(e,r),r.filter(e=>e.sessionId===t)})(e,F).map(e=>{let{id:t,startedAt:n}=e,r=new AbortController,a="m-card-resume-".concat(t);return _(e=>e.some(e=>e.id===a)?e:[...e,{id:a,role:"assistant",text:"명함 읽는 중… 조사 중…",timestamp:n,meta:{provider:M.provider}}]),ts(t,F,a,r,n).catch(()=>{r.signal.aborted||X.current!==F||_(e=>e.map(e=>e.id===a?{...e,text:"명함 정리에 실패했습니다 — 다시 보내 주세요"}:e))}),r});return()=>{t.forEach(e=>e.abort())}},[O,F]);let to=async function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];eg(e=>eF(e,{kind:"turn-begin"})),(0,g.cY)("webterm.chat.input",{len:e.length,attachCount:ek.length});let r=t?[]:ek;t||eN([]);let a=t?{ok:!1}:function(e,t){if(1!==t.length||!t[0]||!eY(t[0])||!t[0].id)return{ok:!1};let n=e.trim();if(!n)return{ok:!0,attachmentId:t[0].id};let r=n.replace(/메일\s*초안/g,"메일초안").split(/[\s,]+/).filter(Boolean);return!r.length||r.some(e=>!/^(?:명함|전략|메일초안|crm)$/i.test(e))?{ok:!1}:{ok:!0,attachmentId:t[0].id,context:n}}(e,r),l=!1;if(a.ok){let t=X.current;if(!t){var s;ee.current=t=(0,ea.f6)(),X.current=t,null==(s=n.onSessionAdopt)||s.call(n,t),P(t)}let o=new AbortController;eS.current=o,eI.current=t,l=!0,e.length>0&&tl((0,G.tw)(e)),tl((0,G.$Q)("\uD83D\uDCCE attached: ".concat(r.map(e=>e.filename).join(", "))));let i="m-card-".concat(Date.now(),"-").concat(Math.random().toString(36).slice(2,6));tl({id:i,role:"assistant",text:"명함 읽는 중… 조사 중…",timestamp:Date.now(),meta:{provider:M.provider}}),B(!0),(0,g.cY)("pwa.chat.card-followup",{phase:"start",status:"judging"});try{let e=await eK(O,a.attachmentId,a.context,o.signal);if(o.signal.aborted||X.current!==t)return;let n=eG(),r=Date.now();n&&function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Date.now(),r=e$(e,n).filter(e=>e.sessionId!==t.sessionId||e.id!==t.id);if(!t.sessionId||!t.id||!Number.isFinite(t.startedAt)||t.startedAt>n||n-t.startedAt>=9e5)return eQ(e,r);eQ(e,[...r,t])}(n,{sessionId:t,id:e,startedAt:r});let l=await ts(e,t,i,o,r);if("terminal"===l||o.signal.aborted||X.current!==t)return}catch(e){if(o.signal.aborted||X.current!==t)return;_(e=>e.map(e=>e.id===i?{...e,text:"명함 정리에 실패했습니다 — 다시 보내 주세요"}:e)),(0,g.cY)("pwa.chat.card-followup",{phase:"complete",status:"failed"});return}finally{eS.current===o&&(eS.current=null),o.signal.aborted||X.current!==t||(B(!1),eg(e=>eF(e,{kind:"turn-end"})))}}let o=r.filter(eY),i=r.filter(e=>!eY(e)),c=function(e){if(!e)return!0;let t=e.toLowerCase();return!!("auto"===t||t.startsWith("anthropic")||"anthropic"===t||t.startsWith("codex")||"openai-codex"===t||t.startsWith("openai")||"openai"===t||t.startsWith("gemini")||"gemini"===t||t.startsWith("grok")||"grok"===t||t.startsWith("local"))}(M.provider),d=o.length>0&&c;o.length>0&&!c&&eM.oR.warning("이 모델은 이미지 입력을 지원하지 않습니다 — ".concat(o.length,"개 이미지가 무시됩니다. (vision 모델로 전환 후 재첨부)"));let u=i.map(e=>e.path?"[attached] ".concat(e.path):"").filter(e=>e.length>0),m=u.length>0?"".concat(u.join("\n"),"\n\n").concat(e).trimEnd():e,p=null;if(d&&M.baseUrl)try{p=await eJ(m,o,{baseUrl:M.baseUrl,token:M.token})}catch(t){let e=t instanceof Error?t.message:String(t);(0,g.cY)("webterm.chat.attach.contentblock.error",{msg:e}),eM.oR.error("이미지 첨부 변환 실패 — 텍스트만 전송: ".concat(e)),p=null}!l&&(e.length>0&&tl((0,G.tw)(e)),r.length>0&&tl((0,G.$Q)("\uD83D\uDCCE attached: ".concat(r.map(e=>e.filename).join(", ")))));let h=e?await (0,G.yN)(e,ta):null;if(h){if("__CLEAR__"===h.text)_([]);else{let e=(0,G.$Q)(h.text);h.harnessAsk&&(e.blocks=[{kind:"harness_ask",acceptanceId:h.harnessAsk.acceptanceId}]),tl(e)}h.newSessionId&&(et.current++,ep([]),V.current=h.newSessionId,X.current=h.newSessionId,P(h.newSessionId));return}if(!M.baseUrl)return void tl((0,G.$Q)("error: daemon baseUrl not configured. Visit /settings."));B(!0),eR.current=!0;let f="m-stream-".concat(Date.now(),"-").concat(Math.random().toString(36).slice(2,6));tl({id:f,role:"assistant",text:"",timestamp:Date.now(),meta:{provider:M.provider}});let b=new AbortController;ej(b);let x=0,v=e_.current,y=!!(v&&F&&M.baseUrl),w=null;(0,g.cY)("webterm.chat.runturn.path",{useAcpPath:y,hasAcp:!!v,hasSession:!!F});let j=e=>{_(t=>t.map(t=>t.id===f?{...t,text:e}:t)),e.length>x&&(e9.pushText(e.slice(x)),x=e.length)},k=e=>{_(t=>t.map(t=>t.id===f?{...t,blocks:e}:t))};try{y&&(w=O.connectAcp({sessionId:F}));let{message:e,newSessionId:t}=y?await (0,G.py)(w,m,{...ta,sessionId:await w.ready||F},{signal:b.signal,...p?{userContent:p}:{},onPartial:j,onPartialBlocks:k}):await (0,G.HD)(m,ta,{signal:b.signal,...p?{userContent:p}:{},...eZ?{debugTap:!0}:{},onPartial:j,onPartialBlocks:k,onError:e=>eg(t=>eF(t,{kind:"error",payload:e}))});eg(e=>eF(e,{kind:"turn-end"})),_(t=>t.map(t=>t.id===f?e:t)),t&&t!==F&&X.current===F&&(ee.current=t,X.current=t,P(t)),e9.flush()}catch(n){let e=b.signal.aborted,t=n instanceof Error?n.message:String(n);e9.cancel(),e?(_(e=>e.map(e=>e.id===f?{...e,meta:{...e.meta,stopReason:"aborted"}}:e)),(0,g.cY)("webterm.chat.runturn.stream.abort",{reason:t})):(_(e=>e.filter(e=>e.id!==f)),tl((0,G.$Q)("error: ".concat(t))),eM.oR.error("chat failed: ".concat(t)),(0,g.cY)("webterm.chat.runturn.error",{reason:t,useAcpPath:y}))}finally{null==w||w.close(),B(!1),ej(null),eR.current=!1}},ti=async function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(ec.current||!t&&Z.current.length>0){var n,r;if(!t&&(ek.length>0||/^[\s]*[:/]/.test(e))){eM.oR.info("답이 끝난 뒤 보내 주세요"),z(t=>{var n;return{text:e,id:(null!=(n=null==t?void 0:t.id)?n:0)+1}});return}let a=(n=Z.current,(r={id:++ei.current,text:e}).text.trim()?n.length>=5?{queue:[...n],error:"줄이 찼습니다"}:{queue:[...n,{...r,text:r.text.trim()}]}:{queue:[...n]});a.error?(eM.oR.info(a.error),z(t=>{var n;return{text:e,id:(null!=(n=null==t?void 0:t.id)?n:0)+1}})):ep(a.queue);return}ec.current=!0;let a=et.current,l=X.current;try{await to(e,t)}finally{ec.current=!1,a!==et.current&&(0,g.cY)("webterm.chat.queue.session-changed",{turnSessionId:l,currentSessionId:X.current}),eu({generation:et.current,sessionId:X.current})}};(0,a.useEffect)(()=>{var e;if(ec.current||0===Z.current.length||!ed||ed.generation!==et.current||ed.sessionId!==F)return;let{entry:t,queue:n}={entry:(e=Z.current)[0],queue:e.slice(1)};t&&(ep(n),e0.current(t.text,!0))},[ed]),e0.current=ti,(0,a.useEffect)(()=>{eg(e=>eF(e,{kind:"session-change"}))},[F]),(0,a.useEffect)(()=>{if(!F||!M.baseUrl)return;let e=(0,G.lY)(O,F,{isLocalTurnInFlight:()=>eR.current,provider:M.provider,onPlaceholder:e=>{let{sessionId:t}=e;eg(e=>eF(e,{kind:"turn-begin"}));let n="m-obs-".concat(Date.now(),"-").concat(Math.random().toString(36).slice(2,6)),r={id:n,role:"assistant",text:"",timestamp:Date.now(),meta:{provider:M.provider}};return(0,g.cY)("webterm.chat.observer.placeholder",{id:n,turnSessionId:t}),_(e=>[...e,r]),eD.current=n,n},onPartialBlocks:(e,t)=>{_(n=>n.map(n=>n.id===e?{...n,blocks:t}:n))},onFinalize:(e,t)=>{eg(e=>eF(e,{kind:"turn-end"})),_(n=>n.map(n=>n.id===e?t:n)),eD.current===e&&(eD.current=null)},onError:(e,t)=>{eg(e=>eF(e,{kind:"error",payload:t})),(0,g.cY)("webterm.chat.observer.error",{placeholderId:e,error:t.error}),_(n=>n.map(n=>n.id===e?{...n,meta:{...n.meta,stopReason:t.error}}:n)),eD.current===e&&(eD.current=null)}});return()=>{e()}},[O,F,M.baseUrl,M.provider]),(0,a.useEffect)(()=>{if(!F||!M.baseUrl)return;let e=O.subscribeChatFeedbackEvents(F,{agentStatus:{onFeedback:e=>{_(t=>{if(0===t.length)return t;for(let n=t.length-1;n>=0;n--){if("assistant"!==t[n].role)continue;let r=t[n],a=Array.isArray(r.blocks)?[...r.blocks]:[];if("applied"!==(0,ex.K4)(a,e))break;let l={...r,blocks:a};return[...t.slice(0,n),l,...t.slice(n+1)]}return t})},onError:e=>{(0,g.cY)("webterm.agent-status.error",e)}},hudSegment:{onFeedback:e=>(0,G.Ju)(e),onError:e=>{(0,g.cY)("webterm.hud-segment.error",e)}}});return()=>{e()}},[O,F,M.baseUrl]),(0,a.useEffect)(()=>{if(!F||!M.baseUrl)return;let e=null;try{e=O.connectAcp({sessionId:F,onSession:e=>{if(e&&e!==F){var t;(0,g.cY)("webterm.chat.acp.session-adopt",{previous:F,issued:e}),X.current===F&&(ee.current=e,X.current=e,null==(t=n.onSessionAdopt)||t.call(n,e),P(e))}}})}catch(e){(0,g.cY)("webterm.chat.acp.connect-failed",{reason:String(e)});return}e_.current=e,eH(e);let t=e;(0,g.x8)(async e=>{let n=JSON.parse(e);return await t.send("elanous/debug-logs/ingest",{records:n.records}),!0});let r=(0,G.ZH)(e,F,{isLocalTurnInFlight:()=>eR.current,isRemoteSseTurnInFlight:()=>null!==eD.current,onPlaceholder:e=>{let{sessionId:t}=e;eg(e=>eF(e,{kind:"turn-begin"}));let n="m-acp-".concat(Date.now(),"-").concat(Math.random().toString(36).slice(2,6)),r={id:n,role:"assistant",text:"",timestamp:Date.now(),meta:{provider:M.provider}};return(0,g.cY)("webterm.chat.acp.foreign-placeholder",{id:n,turnSessionId:t}),_(e=>[...e,r]),n},onPartialBlocks:(e,t)=>{let n=t.find(e=>"text"===e.kind),r=t.some(e=>"image"===e.kind||"tool_use"===e.kind);_(a=>a.map(a=>a.id===e?{...a,...n?{text:n.text}:{},...r?{blocks:t}:{}}:a))},onFinalize:e=>{(0,g.cY)("webterm.chat.acp.foreign-finalize",{placeholderId:e})}});return()=>{r(),(0,g.x8)(null);try{null==e||e.close()}catch(e){}e_.current===e&&(e_.current=null),eH(null)}},[O,F,M.baseUrl,M.provider]);let tc=function(e){var t;let{acp:n,onComposerPrefill:r}=e,[l,s]=(0,a.useState)(null),o=(0,a.useRef)(null),i=(0,a.useCallback)(e=>{o.current=e,s(e)},[]),c=(0,a.useCallback)(e=>{let t=o.current;t&&(t.resolve(e),i(null))},[i]);(0,a.useEffect)(()=>{if(!n)return;let e=n.onRequest("elanous/ask/request",async e=>{let t=function(e){if(!e||"object"!=typeof e||"string"!=typeof e.id||!e.id||!e.request||"object"!=typeof e.request)return null;let t=e.request;return Array.isArray(t.questions)&&0!==t.questions.length?{id:e.id,request:e.request}:null}(e);if(!t)return{answers:{},cancelled:!0};let n=o.current;return n&&n.resolve({answers:{},cancelled:!0}),await new Promise(e=>{i({request:t.request,resolve:e,askId:t.id})})}),t=n.on("sessionUpdate",()=>{}),r=n.onAny(e=>{var t;if("elanous/ask/cancel"!==e.method||void 0!==e.id)return;let n=(t=e.params)&&"object"==typeof t&&"string"==typeof t.id&&t.id?{id:t.id,..."string"==typeof t.reason?{reason:t.reason}:{}}:null;if(!n)return;let r=o.current;r&&r.askId===n.id&&c({answers:{},cancelled:!0})});return()=>{e(),t(),r();let n=o.current;n&&(n.resolve({answers:{},cancelled:!0}),o.current=null)}},[n,i,c]);let d=(0,a.useCallback)(e=>{c(e)},[c]),u=(0,a.useCallback)(()=>{c({answers:{},cancelled:!0})},[c]),m=(0,a.useCallback)(()=>{let e=o.current;e&&r&&r(e.request),c({answers:{},cancelled:!0})},[c,r]);return{pendingRequest:null!=(t=null==l?void 0:l.request)?t:null,submit:d,cancel:u,chatAboutThis:m}}({acp:ez,onComposerPrefill:e=>{let t=e.questions[0];if(!t)return;let n="[ Q: ".concat(t.question.trim()," ]\n\n");(0,el.vn)(n),z(e=>{var t;return{text:n,id:(null!=(t=null==e?void 0:e.id)?t:0)+1}}),eM.oR.info("\uD83D\uDCAC 입력 영역에 질문 prefill 됨 (Chat about this)")}}),td=function(e){var t,n;let{acp:r,sessionId:l}=e,[s,o]=(0,a.useState)(null),i=(0,a.useRef)(null),c=(0,a.useRef)(l);c.current=l;let d=(0,a.useCallback)((e,t,n)=>{let r=i.current;r&&(!n||r.request===n)&&(i.current=null,clearTimeout(r.timer),o(null),(0,g.cY)("pwa.tool-approval.".concat("cancelled"===t?"cancelled":"decided"),{tool:eU,choice:t}),r.resolve(e))},[]);(0,a.useEffect)(()=>{if(!r)return;let e=r.onRequest("session/request_permission",e=>{let t=function(e){try{if(!e||"object"!=typeof e)return null;let t=e.toolCall;if(!t||"object"!=typeof t||"string"!=typeof e.sessionId||!e.sessionId||"string"!=typeof t.toolCallId||!t.toolCallId||"string"!=typeof t.title||!t.title||!Array.isArray(e.options))return null;let n=e.options.map(e=>{if(!e||"object"!=typeof e||"string"!=typeof e.optionId||!e.optionId||"string"!=typeof e.kind||!eL.includes(e.kind))throw Error("invalid option");return{optionId:e.optionId,kind:e.kind}});if(new Set(n.map(e=>e.optionId)).size!==n.length||new Set(n.map(e=>e.kind)).size!==n.length||["allow_once","allow_always","reject_once"].some(e=>!n.some(t=>t.kind===e)))return null;return{sessionId:e.sessionId,toolCall:{toolCallId:t.toolCallId,title:t.title,...void 0!==t.rawInput?{rawInput:t.rawInput}:{}},options:n}}catch(e){return null}}(e);return t&&t.sessionId===c.current?((0,g.cY)("pwa.tool-approval.requested",{tool:eU,choice:null}),d(eT,"cancelled"),new Promise(e=>{let n={request:t,receivedAt:Date.now(),resolve:e,timer:setTimeout(()=>{i.current===n&&d(eT,"cancelled")},6e4)};i.current=n,o(n)})):((0,g.cY)("pwa.tool-approval.cancelled",{tool:eU,choice:"cancelled"}),eT)}),t="function"==typeof r.onState?r.onState(e=>{("CLOSED"===e||"FAILED"===e)&&d(eT,"cancelled")}):()=>{};return()=>{e(),t(),d(eT,"cancelled")}},[r,d]),(0,a.useEffect)(()=>{i.current&&i.current.request.sessionId!==l&&d(eT,"cancelled")},[l,d]);let u=(0,a.useCallback)((e,t)=>{var n;if((null==(n=i.current)?void 0:n.request)!==e)return;let r=e.options.find(e=>e.kind===t);r&&d({outcome:{outcome:"selected",optionId:r.optionId}},t,e)},[d]),m=(0,a.useCallback)(e=>d(eT,"cancelled",e),[d]);return{pendingRequest:null!=(t=null==s?void 0:s.request)?t:null,receivedAt:null!=(n=null==s?void 0:s.receivedAt)?n:0,choose:u,cancel:m}}({acp:ez,sessionId:F}),tu=(0,r.jsxs)("button",{type:"button",onClick:()=>void e4.toggle(),disabled:!e6,title:e6?null!=(e=e4.errorMsg)?e:eO.g[e4.phase]:"daemon URL 미설정 — Settings 에서 Base URL 입력","data-elanous-action":"chat-voice-toggle",className:(0,Q.cn)("inline-flex items-center gap-1.5 rounded-full border px-2.5 py-1 text-xs font-medium transition-colors",e4.active?"border-rose-500/40 bg-rose-500/10 text-rose-600 hover:bg-rose-500/20":"border-border bg-background text-foreground hover:bg-muted",!e6&&"cursor-not-allowed opacity-50"),children:[(0,r.jsx)("span",{className:(0,Q.cn)("h-2 w-2 rounded-full",eO.x[e4.phase],("listening"===e4.phase||"speaking"===e4.phase)&&"animate-pulse"),"aria-hidden":!0}),e4.active?(0,r.jsx)(s.A,{className:"h-3.5 w-3.5"}):(0,r.jsx)(o.A,{className:"h-3.5 w-3.5"}),(0,r.jsx)("span",{className:"hidden sm:inline",children:eO.g[e4.phase]})]});return(0,r.jsxs)("div",{className:"relative flex h-full flex-col",onPaste:e=>{let t=function(e,t){if(!e)return A([]);let n=[];if(e.items.length>0)for(let t of Array.from(e.items)){if("file"!==t.kind)continue;let e=t.getAsFile();e&&n.push(e)}else n.push(...Array.from(e.files));return A(n.map(e=>({file:e,filename:e.name||"paste-".concat(t,".png")})))}(e.clipboardData,Date.now());(0!==t.files.length||0!==t.tooLarge||0!==t.tooMany)&&(e.preventDefault(),tn(t))},onDragEnter:e=>{eE(t=>D(t,"enter",E(e.dataTransfer)))},onDragLeave:e=>{eE(t=>D(t,"leave",E(e.dataTransfer)))},onDragOver:e=>{E(e.dataTransfer)&&e.preventDefault()},onDrop:e=>{var t;eE(t=>D(t,"drop",E(e.dataTransfer)));let n=A((t=e.dataTransfer)?Array.from(t.files,e=>({file:e,filename:e.name})):[]);(0!==n.files.length||0!==n.tooLarge||0!==n.tooMany)&&(e.preventDefault(),tn(n))},children:[eA.visible&&(0,r.jsx)(R,{}),n.mobileSimple&&c&&(0,r.jsx)(N,{activity:null!=(t=n.mobileActivity)?t:{kind:"loading"},decisions:T,menu:(0,r.jsxs)("div",{ref:U,className:"relative shrink-0",children:[(0,r.jsx)("button",{type:"button","aria-label":"채팅 메뉴","aria-expanded":p,"aria-controls":"chat-mobile-menu",onClick:()=>h(e=>!e),className:"rounded-lg p-1 hover:bg-muted",children:(0,r.jsx)(i.A,{className:"h-5 w-5","aria-hidden":"true"})}),p&&(0,r.jsxs)("div",{id:"chat-mobile-menu",className:"absolute right-0 top-full z-50 mt-2 flex max-h-[70dvh] w-[min(19rem,calc(100vw-1rem))] flex-col gap-2 overflow-y-auto rounded-lg border border-border bg-popover p-3 shadow-lg",children:[(0,r.jsxs)("nav",{"aria-label":"채팅 이동",className:"flex gap-3 text-sm",children:[(0,r.jsx)(d(),{href:"/",className:"rounded px-2 py-1 hover:bg-muted",children:"홈"}),(0,r.jsx)(d(),{href:"/workspace",className:"rounded px-2 py-1 hover:bg-muted",children:"워크스페이스"}),(0,r.jsx)(d(),{href:"/settings",className:"rounded px-2 py-1 hover:bg-muted",children:"설정"})]}),n.conversationButton,(0,r.jsx)(q.Qh,{sessionId:F,...n.onAttachRequest?{onAttachRequest:n.onAttachRequest}:{},...n.onForgetRequest?{onForgetRequest:n.onForgetRequest}:{}}),(0,r.jsx)($,{compact:!0}),(0,r.jsx)(x,{}),(0,r.jsx)(l.vG,{children:(0,r.jsx)(es.rm,{})}),(0,r.jsx)(l.vG,{children:(0,r.jsx)(eo.D,{})}),tu]})]})}),c&&!n.mobileSimple?(0,r.jsxs)("div",{"data-elanous-chat-compact-header":"",className:"flex h-11 max-h-11 min-w-0 shrink-0 items-center gap-2 border-b border-border bg-background px-3 whitespace-nowrap",children:[n.leading&&(0,r.jsx)("div",{className:"shrink-0",children:n.leading}),(0,r.jsx)("div",{className:"min-w-0 flex-1 [&>div]:min-w-0 [&>div]:max-w-full [&>div>div:first-child]:min-w-0 [&>div>div:first-child]:max-w-full [&>div>div:first-child]:overflow-hidden [&>div>div:first-child>span:last-child]:shrink-0 [&>div>div:first-child_span]:min-w-0 [&>div>div:first-child_span]:truncate [&>div>div[role=menu]]:max-w-[calc(100vw-4rem)]",children:(0,r.jsx)(q.Qh,{sessionId:F,...n.onAttachRequest?{onAttachRequest:n.onAttachRequest}:{},...n.onForgetRequest?{onForgetRequest:n.onForgetRequest}:{}})}),(0,r.jsx)("div",{className:"min-w-0 shrink-0",children:(0,r.jsx)($,{compact:!0})}),(0,r.jsx)(x,{}),(0,r.jsxs)("div",{ref:U,className:"relative shrink-0",children:[(0,r.jsx)("button",{type:"button","aria-label":"채팅 더보기","aria-expanded":p,"aria-controls":"chat-header-more",onClick:()=>h(e=>!e),className:"inline-flex h-8 w-8 items-center justify-center rounded-lg hover:bg-muted",children:(0,r.jsx)(i.A,{className:"h-5 w-5","aria-hidden":"true"})}),p&&(0,r.jsxs)("div",{id:"chat-header-more",className:"absolute right-0 top-full z-50 mt-1 flex max-w-[calc(100vw-1.5rem)] flex-col gap-2 rounded-lg border border-border bg-popover p-3 shadow-lg",children:[(0,r.jsx)(l.vG,{children:(0,r.jsx)(es.rm,{})}),(0,r.jsx)(l.vG,{children:(0,r.jsx)(eo.D,{})}),tu]})]})]}):n.mobileSimple&&c?null:(0,r.jsxs)("div",{className:"flex shrink-0 items-center justify-between gap-3 border-b border-border bg-background px-4 py-2",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)(q.Qh,{sessionId:F,...n.onAttachRequest?{onAttachRequest:n.onAttachRequest}:{},...n.onForgetRequest?{onForgetRequest:n.onForgetRequest}:{}}),(0,r.jsx)(l.vG,{children:(0,r.jsx)(es.rm,{})}),(0,r.jsx)(l.vG,{children:(0,r.jsx)(eo.D,{})})]}),(0,r.jsxs)("div",{className:"flex min-w-0 items-center gap-2",children:[(0,r.jsx)($,{}),(0,r.jsx)(x,{}),tu]})]}),!(n.mobileSimple&&c)&&(0,r.jsx)(f,{}),n.mobileSimple&&c&&y+T>0&&(0,r.jsx)("div",{className:"shrink-0 px-3 py-1.5",children:(0,r.jsxs)("button",{type:"button","aria-expanded":b,"aria-controls":"chat-mobile-actions",onClick:()=>v(e=>!e),className:"rounded-full border border-border bg-muted px-3 py-1 text-xs font-medium",children:["승인\xb7결정 ",y+T]})}),n.mobileSimple&&c?(0,r.jsxs)("div",{id:"chat-mobile-actions",children:[(0,r.jsx)(w,{mobileOpen:b,onCount:j}),(0,r.jsx)(k,{mobileOpen:b,onCount:L})]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(w,{}),(0,r.jsx)(k,{})]}),!(n.mobileSimple&&c)&&(0,r.jsx)(en,{}),(0,r.jsxs)("div",{className:"relative flex flex-1 min-h-0 flex-col",children:[(0,r.jsx)(S.D,{messages:Y,pending:K,mobileSimple:!!(n.mobileSimple&&c),...n.tabId?{tabId:n.tabId}:{}}),eh&&(0,r.jsxs)("div",{role:"alert",className:"mx-4 mb-3 flex shrink-0 items-start justify-between gap-3 rounded-md border border-amber-500/40 bg-amber-500/10 px-3 py-2 text-sm text-foreground","data-elanous-turn-busy-banner":"",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"font-medium",children:"이 대화는 지금 응답 중입니다"}),(0,r.jsx)("p",{className:"text-muted-foreground",children:eh.message}),(0,r.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:eh.holder?"Current input holder: ".concat(eh.holder):"The current input holder is not available."})]}),(0,r.jsx)("button",{type:"button",onClick:()=>eg(null),className:"rounded px-2 py-1 text-xs text-muted-foreground hover:bg-amber-500/10 hover:text-foreground","aria-label":"응답 중 알림 닫기",children:"Dismiss"})]}),(0,r.jsx)(ef,{active:e4.active,phase:e4.phase,errorMsg:e4.errorMsg,onToggle:()=>void e4.toggle(),ttsSupported:e9.supported,ttsMuted:e8,onTtsToggle:()=>e7(e=>!e),onInterrupt:()=>{try{e9.cancel()}catch(e){}e4.interrupt()}})]}),K&&ew&&(0,r.jsxs)("div",{className:"flex shrink-0 items-center justify-end gap-2 border-t border-border bg-muted/30 px-4 py-1.5 text-xs",children:[(0,r.jsx)("span",{className:"text-muted-foreground",children:"streaming…"}),(0,r.jsx)("button",{type:"button",onClick:te,className:"rounded border border-border bg-background px-2 py-0.5 font-mono hover:bg-muted","data-elanous-action":"chat-stop",title:"Stop the running turn (Esc)",children:"Stop ⎋"})]}),(0,r.jsx)(I,{queue:em,onRemove:e=>{var t;return ep((t=Z.current,t.filter(t=>t.id!==e)))},onClear:()=>ep([])}),(0,r.jsx)(C.V,{onSubmit:ti,prefill:J,attachments:ek,onAttached:tt,onRemoveAttachment:tr,voice:{active:e4.active,phase:e4.phase,dotColor:eO.x[e4.phase],phaseLabel:eO.g[e4.phase],disabled:!e6,onToggle:()=>void e4.toggle()},...n.tabId?{tabId:n.tabId}:{},onListFiles:ez&&F?async e=>{var t,n;let r=await ez.send("elanous/fs/list",{sessionId:F,query:e,limit:50}),a=(null!=(t=r.entries)?t:[]).filter(e=>"string"==typeof(null==e?void 0:e.name)&&"boolean"==typeof(null==e?void 0:e.isDir)&&"string"==typeof(null==e?void 0:e.relPath)).map(e=>({name:e.name,isDir:e.isDir,relPath:e.relPath}));return{cwd:null!=(n=r.cwd)?n:"",entries:a}}:void 0,onListSkills:ez&&F?async e=>{var t;return{entries:(null!=(t=(await ez.send("elanous/skills/list",{sessionId:F,query:e})).entries)?t:[]).filter(e=>"string"==typeof(null==e?void 0:e.name)&&"string"==typeof(null==e?void 0:e.description)).map(e=>({name:e.name,description:e.description}))}}:void 0}),eW&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(eb,{open:eZ,onClose:()=>eV(!1),lines:eX}),!eZ&&(0,r.jsxs)("button",{type:"button",onClick:()=>eV(!0),"data-elanous-debug-tap-reopen":"",className:(0,Q.cn)("fixed bottom-3 right-3 z-40 rounded-full border border-border bg-card px-3 py-1.5","text-[11px] font-mono text-muted-foreground shadow hover:bg-muted hover:text-foreground"),"aria-label":"Reopen debug drawer",title:"Reopen Debug Tap drawer",children:["⌁ debug (",eX.length,")"]})]}),(0,r.jsx)(eC,{request:tc.pendingRequest,onSubmit:tc.submit,onCancel:tc.cancel,onChatAboutThis:tc.chatAboutThis}),(0,r.jsx)(eq,{request:td.pendingRequest,receivedAt:td.receivedAt,onChoose:td.choose,onCancel:td.cancel})]})}var eW=n(38084),eZ=n(61040);function eV(e,t){var n,r;return(null==t?void 0:t.trim())||(null==(r=e.lastMsgPreview)||null==(n=r.trim().split(/\r?\n/)[0])?void 0:n.trim())||"대화"}function eX(e,t){try{"undefined"!=typeof localStorage&&localStorage.setItem(e,t)}catch(e){}}function e0(e){let{onSelect:t}=e,n=(0,m.Q)(),l=(0,L.t)({activePoll:!0}),[s,o]=(0,a.useState)({}),[i,c]=(0,a.useState)(""),[d,u]=(0,a.useState)([]),[p,h]=(0,a.useState)("all"),[f,b]=(0,a.useState)([]),[g,x]=(0,a.useState)(_);(0,a.useEffect)(()=>{let e=()=>{x(_()),j({})};return window.addEventListener(M,e),()=>window.removeEventListener(M,e)},[]);let[v,y]=(0,a.useState)({}),[w,j]=(0,a.useState)({}),k=(0,a.useRef)(new Set),N=e=>{let t=e(_());J(t),x(t)};(0,a.useEffect)(()=>{var e;h(null!=(e=function(e){try{return"undefined"==typeof localStorage?null:localStorage.getItem(e)}catch(e){return null}}(O))?e:"all");let t=!0,r=0,a=()=>{let e=++r;new U(n.client).list().then(n=>{var a;t&&e===r&&u(null!=(a=n.projects)?a:[])}).catch(()=>{})};return a(),window.addEventListener(F,a),()=>{t=!1,window.removeEventListener(F,a)}},[n.client]),(0,a.useEffect)(()=>{let e=!0,t=d.length>0&&"all"!==p&&"none"!==p?"?projectId=".concat(encodeURIComponent(p)):"";return n.client.fetchJson("/v1/sessions/store".concat(t)).then(t=>{var n;if(!e)return;let r=null!=(n=t.sessions)?n:[];b(r),o(Object.fromEntries(r.map(e=>[e.id,e.title])))}).catch(()=>{}),()=>{e=!1}},[n.client,l,d,p]),(0,a.useEffect)(()=>{let e=Object.keys(g).filter(e=>l.some(t=>t.id===e)&&!f.some(t=>t.id===e));if(0===e.length)return;let t=!0;for(let r of e)n.client.fetchJson("/v1/sessions/store/".concat(encodeURIComponent(r),"?ifExists=1")).then(e=>{t&&e.meta&&b(t=>t.some(e=>e.id===r)?t:[...t,e.meta])}).catch(()=>{});return()=>{t=!1}},[f,n.client,g,l]),(0,a.useEffect)(()=>{for(let[e,t]of Object.entries(g)){if(e===n.sessionId||w[e]===t||!l.some(t=>t.id===e)||k.current.has(e))continue;let r=f.find(t=>t.id===e);if(r&&_()[e]===t){if(r.projectId===t||v[e]===t){N(t=>{let n={...t};return delete n[e],n});continue}k.current.add(e),new U(n.client).assign(e,t).then(()=>{y(n=>({...n,[e]:t})),b(n=>n.map(n=>n.id===e?{...n,projectId:t}:n)),_()[e]===t&&N(t=>{let n={...t};return delete n[e],n})}).catch(()=>{j(n=>({...n,[e]:t})),_()[e]===t&&N(t=>{let n={...t};return delete n[e],n})}).finally(()=>{k.current.delete(e)})}}},[v,w,f,n.client,n.sessionId,g,l]);let S=d.some(e=>e.id===p)||"none"===p?p:"all",C=0===d.length||"all"===S?l:l.filter(e=>g[e.id]?g[e.id]===S:"none"===S?!f.some(t=>t.id===e.id&&t.projectId)&&!v[e.id]:v[e.id]===S||f.some(t=>t.id===e.id&&t.projectId===S)),I=[...C].filter(e=>{var t;return"".concat(eV(e,s[e.id])," ").concat(null!=(t=e.lastMsgPreview)?t:"").toLocaleLowerCase().includes(i.trim().toLocaleLowerCase())}).sort((e,t)=>Date.parse(t.lastTurnAt)-Date.parse(e.lastTurnAt)),A=()=>{let e=(0,ea.Zr)();d.length>0&&"all"!==S&&"none"!==S&&N(t=>({...t,[e]:S})),n.setSessionId(e),null==t||t()};return(0,r.jsxs)("nav",{"aria-label":"대화 목록",className:"flex h-full min-h-0 flex-col bg-background",children:[(0,r.jsxs)("div",{className:"shrink-0 space-y-3 border-b border-border p-3",children:[(0,r.jsx)(z,{projects:d,selection:S,onChange:e=>{h(e),eX(O,e)},api:new U(n.client),onCreate:async(e,t)=>{let{project:r}=await new U(n.client).create(e,t);u(e=>[...e,r]),h(r.id),eX(O,r.id),P()}}),(0,r.jsxs)("button",{type:"button",onClick:A,className:"flex w-full items-center gap-2 rounded-lg bg-primary px-3 py-2 text-sm font-medium text-primary-foreground hover:bg-primary/90",children:[(0,r.jsx)(eW.A,{className:"h-4 w-4","aria-hidden":"true"})," 새 대화"]}),(0,r.jsxs)("label",{className:"flex items-center gap-2 rounded-lg border border-border bg-muted/30 px-2.5 py-2 focus-within:ring-2 focus-within:ring-ring",children:[(0,r.jsx)(eZ.A,{className:"h-4 w-4 shrink-0 text-muted-foreground","aria-hidden":"true"}),(0,r.jsx)("input",{"aria-label":"대화 검색",type:"search",value:i,onChange:e=>c(e.target.value),placeholder:"대화 검색",className:"min-w-0 flex-1 bg-transparent text-sm outline-none placeholder:text-muted-foreground"})]})]}),(0,r.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto p-2",children:0===C.length?(0,r.jsxs)("div",{className:"space-y-3 px-2 py-8 text-center text-sm text-muted-foreground",children:[(0,r.jsx)("p",{children:"아직 대화가 없습니다"}),(0,r.jsx)("button",{type:"button",onClick:A,className:"rounded-lg border border-border px-3 py-2 text-foreground hover:bg-muted",children:"+ 새 대화"})]}):0===I.length?(0,r.jsx)("p",{className:"px-2 py-8 text-center text-sm text-muted-foreground",children:"검색 결과가 없습니다"}):(0,r.jsx)("ul",{className:"space-y-1",children:I.map(e=>(0,r.jsx)("li",{children:(0,r.jsxs)("button",{type:"button","aria-current":n.sessionId===e.id?"page":void 0,onClick:()=>{P(),n.setSessionId(e.id),null==t||t()},className:"w-full rounded-lg px-3 py-2.5 text-left transition-colors ".concat(n.sessionId===e.id?"bg-primary/10 text-primary ring-1 ring-inset ring-primary/25":"text-foreground hover:bg-muted"),children:[(0,r.jsx)("span",{className:"block truncate text-sm font-medium",children:eV(e,s[e.id])}),(0,r.jsxs)("span",{className:"mt-1 block truncate text-xs text-muted-foreground",children:[function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Date.now(),n=Date.parse(e);if(!Number.isFinite(n))return"";let r=Math.max(0,Math.floor((t-n)/6e4));if(r<1)return"방금 전";if(r<60)return"".concat(r,"분 전");let a=Math.floor(r/60);if(a<24)return"".concat(a,"시간 전");let l=Math.floor(a/24);return l<7?"".concat(l,"일 전"):new Date(n).toLocaleDateString()}(e.lastTurnAt)," \xb7 ",e.msgCount,"개 메시지"]})]})},e.id))})})]})}var e1=n(52733),e2=n(75670),e3=n(67306),e5=n(66959);function e4(){var e;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{compact:n}=(0,u.K)(),l=!!t.mobileSimple&&n,s=(0,e5.DE)(),o=(0,e3.tg)(),{client:i,sessionId:c,setSessionId:d}=(0,m.Q)(),[p,h]=(0,a.useState)(c||"default"),[f,b]=(0,a.useState)(!1);(0,a.useEffect)(()=>{if(!f)return;let e=e=>{"Escape"===e.key&&b(!1)};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[f]);let g=(0,a.useRef)(null);(0,a.useEffect)(()=>{if(g.current===c){g.current=null;return}g.current=null,h(c||"default")},[c]);let x=(0,a.useRef)(t.sessionId),v=(0,a.useRef)(c),y=null!=(e=null==o?void 0:o.state.activeId)?e:null;(0,a.useEffect)(()=>{let e=t.sessionId;if(o&&t.tabId&&e&&c){var n,r;let a=function(e){if(!e.isActive||e.tabSessionId===e.daemonSessionId)return"none";let t=e.prevTabSessionId!==e.tabSessionId,n=e.prevDaemonSessionId!==e.daemonSessionId;return t||!n?"adopt-tab":"record-global"}({isActive:y===t.tabId,tabSessionId:e,daemonSessionId:c,prevTabSessionId:null!=(n=x.current)?n:e,prevDaemonSessionId:null!=(r=v.current)?r:c});"adopt-tab"===a?d(e):"record-global"===a&&o.updateChatTab(t.tabId,{sessionId:c})}x.current=t.sessionId,v.current=c},[o,y,t.tabId,t.sessionId,c,d]);let w=o&&t.tabId?()=>o.openPicker({kind:"attachToTab",tabId:t.tabId}):void 0,j=o&&t.sessionId?async()=>{let e=(0,T.hG)(i);await e.forget(t.sessionId)}:void 0,k=(0,r.jsx)("button",{type:"button",onClick:()=>b(!0),"aria-label":"대화 목록","aria-expanded":f,"aria-controls":"chat-conversation-drawer",className:"inline-flex h-8 w-8 shrink-0 items-center justify-center rounded-lg hover:bg-muted",children:(0,r.jsx)(e1.A,{className:"h-4 w-4","aria-hidden":"true"})}),N=(0,r.jsx)(eH,{onSessionAdopt:e=>{g.current=e},...t.showConversationList&&n&&!l?{leading:k}:{},...l?{mobileSimple:l,mobileActivity:s,conversationButton:k}:{},...w?{onAttachRequest:w}:{},...j?{onForgetRequest:j}:{},...t.tabId?{tabId:t.tabId}:{}},p);return t.showConversationList?(0,r.jsxs)("div",{className:"flex h-full min-h-0 min-w-0",children:[(0,r.jsx)("aside",{className:n?"hidden":"hidden h-full w-[260px] shrink-0 border-r border-border md:block",children:(0,r.jsx)(e0,{})}),(0,r.jsxs)("div",{className:"flex min-h-0 min-w-0 flex-1 flex-col",children:[!n&&(0,r.jsx)("div",{className:"shrink-0 border-b border-border bg-background px-3 py-2 md:hidden",children:(0,r.jsxs)("button",{type:"button",onClick:()=>b(!0),"aria-label":"대화 목록","aria-expanded":f,"aria-controls":"chat-conversation-drawer",className:"inline-flex items-center gap-2 rounded-lg px-2 py-1.5 text-sm font-medium hover:bg-muted",children:[(0,r.jsx)(e1.A,{className:"h-4 w-4","aria-hidden":"true"})," 대화 목록"]})}),(0,r.jsx)("div",{className:"min-h-0 min-w-0 flex-1",children:N})]}),f&&(0,r.jsxs)("div",{className:n?"fixed inset-0 z-50":"fixed inset-0 z-50 md:hidden",children:[(0,r.jsx)("button",{type:"button","aria-label":"대화 목록 닫기",onClick:()=>b(!1),className:"absolute inset-0 bg-black/50"}),(0,r.jsxs)("aside",{id:"chat-conversation-drawer",role:"dialog","aria-modal":"true","aria-label":"대화 목록",className:"relative h-full w-[min(260px,85vw)] bg-background shadow-xl",children:[(0,r.jsx)("button",{type:"button","aria-label":"대화 목록 닫기",onClick:()=>b(!1),className:"absolute right-2 top-2 z-10 rounded p-1 hover:bg-muted",children:(0,r.jsx)(e2.A,{className:"h-4 w-4"})}),(0,r.jsx)(e0,{onSelect:()=>b(!1)})]})]})]}):N}}}]);
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5539],{25539:(e,t,r)=>{r.d(t,{diagram:()=>l});var s=r(48019);r(83141),r(97472),r(74491),r(55902),r(76497),r(34116),r(62271),r(14498),r(50499),r(89693),r(59259),r(5696),r(67729),r(36693),r(28130),r(51636),r(47356),r(54730);var a=(0,r(9820).K)(e=>`${(0,s.tM)(e)}
|
|
2
|
+
.swimlane.cluster:not([data-color-id]) rect {
|
|
3
|
+
stroke: ${e.clusterBorder} !important;
|
|
4
|
+
}
|
|
5
|
+
[data-look="neo"].cluster rect {
|
|
6
|
+
filter: none;
|
|
7
|
+
}
|
|
8
|
+
`,"getStyles"),l=(0,s.ur)({styles:a})}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5568],{2410:(e,r,t)=>{t.d(r,{I:()=>o});var a=t(42435),n=class extends a.dg{static{(0,a.K2)(this,"TreeViewValueConverter")}runCustomConverter(e,r,t){if("INDENTATION"===e.name)return r?.length||0;if("QUOTED_NAME"===e.name)return r.substring(1,r.length-1);if("BARE_NAME"===e.name)return r.replace(/[\t ]+$/,"");if("CLASS_ANNOTATION"===e.name)return r.trim().substring(3).trim();if("ICON_ANNOTATION"===e.name){let e=r.trim();return e.substring(5,e.length-1)}if("DESC_ANNOTATION"===e.name)return r.trim().substring(2).trim()}},i=class extends a.mR{static{(0,a.K2)(this,"TreeViewTokenBuilder")}constructor(){super(["treeView-beta"])}},s={parser:{TokenBuilder:(0,a.K2)(()=>new i,"TokenBuilder"),ValueConverter:(0,a.K2)(()=>new n,"ValueConverter")}};function o(e=a.DD){let r=(0,a.WQ)((0,a.uM)(e),a.sr),t=(0,a.WQ)((0,a.tG)({shared:r}),a.CZ,s);return r.ServiceRegistry.register(t),{shared:r,TreeView:t}}(0,a.K2)(o,"createTreeViewServices")},6070:(e,r,t)=>{t.d(r,{l:()=>l});var a=t(42435),n=class extends a.mR{static{(0,a.K2)(this,"RailroadTokenBuilder")}constructor(){super(["railroad-beta"])}},i=(0,a.K2)(e=>{let r=e.slice(1,-1),t="";for(let e=0;e<r.length;e++){let a=r[e];if("\\"===a&&e+1<r.length){let a=r[++e];switch(a){case"n":t+="\n";break;case"r":t+="\r";break;case"t":t+=" ";break;default:t+=a}continue}t+=a}return t},"decodeEscapedString"),s=class extends a.dg{static{(0,a.K2)(this,"RailroadValueConverter")}runConverter(e,r,t){let a=super.runConverter(e,r,t);if("TITLE"===e.name&&"string"==typeof a){let e=a.trim();if(e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'"))return i(e)}return a}runCustomConverter(e,r,t){if("RR_STRING"===e.name)return i(r)}},o={parser:{TokenBuilder:(0,a.K2)(()=>new n,"TokenBuilder"),ValueConverter:(0,a.K2)(()=>new s,"ValueConverter")}};function l(e=a.DD){let r=(0,a.WQ)((0,a.uM)(e),a.sr),t=(0,a.WQ)((0,a.tG)({shared:r}),a.Bi,o);return r.ServiceRegistry.register(t),{shared:r,Railroad:t}}(0,a.K2)(l,"createRailroadServices")},9995:(e,r,t)=>{t.d(r,{v:()=>s});var a=t(42435),n=class extends a.mR{static{(0,a.K2)(this,"InfoTokenBuilder")}constructor(){super(["info","showInfo"])}},i={parser:{TokenBuilder:(0,a.K2)(()=>new n,"TokenBuilder"),ValueConverter:(0,a.K2)(()=>new a.Tm,"ValueConverter")}};function s(e=a.DD){let r=(0,a.WQ)((0,a.uM)(e),a.sr),t=(0,a.WQ)((0,a.tG)({shared:r}),a.FZ,i);return r.ServiceRegistry.register(t),{shared:r,Info:t}}(0,a.K2)(s,"createInfoServices")},13943:(e,r,t)=>{t.d(r,{J:()=>s});var a=t(42435),n=class extends a.dg{static{(0,a.K2)(this,"WardleyValueConverter")}runCustomConverter(e,r,t){return"LINK_LABEL"===e.name.toUpperCase()?r.substring(1).trim():void 0}},i={parser:{ValueConverter:(0,a.K2)(()=>new n,"ValueConverter")}};function s(e=a.DD){let r=(0,a.WQ)((0,a.uM)(e),a.sr),t=(0,a.WQ)((0,a.tG)({shared:r}),a.Xr,i);return r.ServiceRegistry.register(t),{shared:r,Wardley:t}}(0,a.K2)(s,"createWardleyServices")},15568:(e,r,t)=>{t.d(r,{F5:()=>o.F5,Pz:()=>s.P,WG:()=>n.W,lz:()=>a.l,qg:()=>u,sB:()=>i.s,zg:()=>v}),t(73339);var a=t(6070),n=t(23547),i=t(79564),s=t(52597);t(87235),t(13943),t(97639),t(68895),t(9995),t(27683),t(58182),t(2410),t(37394),t(51323);var o=t(42435),l={},c={info:(0,o.K2)(async()=>{let{createInfoServices:e}=await t.e(4032).then(t.bind(t,54032));l.info=e().Info.parser.LangiumParser},"info"),packet:(0,o.K2)(async()=>{let{createPacketServices:e}=await t.e(4881).then(t.bind(t,84881));l.packet=e().Packet.parser.LangiumParser},"packet"),pie:(0,o.K2)(async()=>{let{createPieServices:e}=await t.e(5309).then(t.bind(t,55309));l.pie=e().Pie.parser.LangiumParser},"pie"),treeView:(0,o.K2)(async()=>{let{createTreeViewServices:e}=await t.e(7577).then(t.bind(t,37577));l.treeView=e().TreeView.parser.LangiumParser},"treeView"),architecture:(0,o.K2)(async()=>{let{createArchitectureServices:e}=await t.e(2463).then(t.bind(t,82463));l.architecture=e().Architecture.parser.LangiumParser},"architecture"),gitGraph:(0,o.K2)(async()=>{let{createGitGraphServices:e}=await t.e(3660).then(t.bind(t,13660));l.gitGraph=e().GitGraph.parser.LangiumParser},"gitGraph"),eventmodeling:(0,o.K2)(async()=>{let{createEventModelingServices:e}=await t.e(7438).then(t.bind(t,77438));l.eventmodeling=e().EventModel.parser.LangiumParser},"eventmodeling"),radar:(0,o.K2)(async()=>{let{createRadarServices:e}=await t.e(2576).then(t.bind(t,2576));l.radar=e().Radar.parser.LangiumParser},"radar"),railroad:(0,o.K2)(async()=>{let{createRailroadServices:e}=await t.e(5662).then(t.bind(t,5662));l.railroad=e().Railroad.parser.LangiumParser},"railroad"),railroadEbnf:(0,o.K2)(async()=>{let{createRailroadEbnfServices:e}=await t.e(5645).then(t.bind(t,45645));l.railroadEbnf=e().RailroadEbnf.parser.LangiumParser},"railroadEbnf"),railroadAbnf:(0,o.K2)(async()=>{let{createRailroadAbnfServices:e}=await t.e(5671).then(t.bind(t,35671));l.railroadAbnf=e().RailroadAbnf.parser.LangiumParser},"railroadAbnf"),railroadPeg:(0,o.K2)(async()=>{let{createRailroadPegServices:e}=await t.e(4588).then(t.bind(t,84588));l.railroadPeg=e().RailroadPeg.parser.LangiumParser},"railroadPeg"),treemap:(0,o.K2)(async()=>{let{createTreemapServices:e}=await t.e(5005).then(t.bind(t,75005));l.treemap=e().Treemap.parser.LangiumParser},"treemap"),wardley:(0,o.K2)(async()=>{let{createWardleyServices:e}=await t.e(9383).then(t.bind(t,99383));l.wardley=e().Wardley.parser.LangiumParser},"wardley"),cynefin:(0,o.K2)(async()=>{let{createCynefinServices:e}=await t.e(3695).then(t.bind(t,63695));l.cynefin=e().Cynefin.parser.LangiumParser},"cynefin")};async function u(e,r){let t=c[e];if(!t)throw Error(`Unknown diagram type: ${e}`);l[e]||await t();let a=l[e].parse(r);if(a.lexerErrors.length>0||a.parserErrors.length>0)throw new v(a);return a.value}(0,o.K2)(u,"parse");var d=(0,o.K2)(e=>void 0!==e&&e>=0?e:"?","formatLocation"),v=class extends Error{constructor(e){super(`Parsing failed: ${e.lexerErrors.map(e=>{let r=d(e.line),t=d(e.column);return`Lexer error on line ${r}, column ${t}: ${e.message}`}).join("\n")} ${e.parserErrors.map(e=>{let r=d(e.token.startLine),t=d(e.token.startColumn);return`Parse error on line ${r}, column ${t}: ${e.message}`}).join("\n")}`),this.result=e}static{(0,o.K2)(this,"MermaidParseError")}}},23547:(e,r,t)=>{t.d(r,{W:()=>l});var a=t(42435),n=class extends a.mR{static{(0,a.K2)(this,"RailroadEbnfTokenBuilder")}constructor(){super(["railroad-ebnf-beta"])}},i=(0,a.K2)(e=>{let r=e.slice(1,-1),t="";for(let e=0;e<r.length;e++){let a=r[e];if("\\"===a&&e+1<r.length){let a=r[++e];switch(a){case"n":t+="\n";break;case"r":t+="\r";break;case"t":t+=" ";break;default:t+=a}continue}t+=a}return t},"decodeEscapedString"),s=class extends a.dg{static{(0,a.K2)(this,"RailroadEbnfValueConverter")}runConverter(e,r,t){let a=super.runConverter(e,r,t);if("TITLE"===e.name&&"string"==typeof a){let e=a.trim();if(e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'"))return i(e)}return a}runCustomConverter(e,r,t){return"EBNF_STRING"===e.name?i(r):"EBNF_SPECIAL_SEQUENCE"===e.name?r.slice(1,-1).trim():void 0}},o={parser:{TokenBuilder:(0,a.K2)(()=>new n,"TokenBuilder"),ValueConverter:(0,a.K2)(()=>new s,"ValueConverter")}};function l(e=a.DD){let r=(0,a.WQ)((0,a.uM)(e),a.sr),t=(0,a.WQ)((0,a.tG)({shared:r}),a.U4,o);return r.ServiceRegistry.register(t),{shared:r,RailroadEbnf:t}}(0,a.K2)(l,"createRailroadEbnfServices")},27683:(e,r,t)=>{t.d(r,{$:()=>s});var a=t(42435),n=class extends a.mR{static{(0,a.K2)(this,"PacketTokenBuilder")}constructor(){super(["packet"])}},i={parser:{TokenBuilder:(0,a.K2)(()=>new n,"TokenBuilder"),ValueConverter:(0,a.K2)(()=>new a.Tm,"ValueConverter")}};function s(e=a.DD){let r=(0,a.WQ)((0,a.uM)(e),a.sr),t=(0,a.WQ)((0,a.tG)({shared:r}),a.p5,i);return r.ServiceRegistry.register(t),{shared:r,Packet:t}}(0,a.K2)(s,"createPacketServices")},37394:(e,r,t)=>{t.d(r,{S:()=>o});var a=t(42435),n=class extends a.mR{static{(0,a.K2)(this,"ArchitectureTokenBuilder")}constructor(){super(["architecture"])}},i=class extends a.dg{static{(0,a.K2)(this,"ArchitectureValueConverter")}runCustomConverter(e,r,t){if("ARCH_ICON"===e.name)return r.replace(/[()]/g,"").trim();if("ARCH_TEXT_ICON"===e.name)return r.replace(/["()]/g,"");if("ARCH_TITLE"===e.name){let e=r.replace(/^\[|]$/g,"").trim();return(e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'"))&&(e=(e=e.slice(1,-1)).replace(/\\"/g,'"').replace(/\\'/g,"'")),e.trim()}}},s={parser:{TokenBuilder:(0,a.K2)(()=>new n,"TokenBuilder"),ValueConverter:(0,a.K2)(()=>new i,"ValueConverter")}};function o(e=a.DD){let r=(0,a.WQ)((0,a.uM)(e),a.sr),t=(0,a.WQ)((0,a.tG)({shared:r}),a.wV,s);return r.ServiceRegistry.register(t),{shared:r,Architecture:t}}(0,a.K2)(o,"createArchitectureServices")},51323:(e,r,t)=>{t.d(r,{g:()=>m});var a=t(42435),n=class extends a.mR{static{(0,a.K2)(this,"EventModelingTokenBuilder")}constructor(){super(["eventmodeling"])}},i=new Set(["cmd","command"]),s=new Set(["evt","event"]),o=new Set(["rmo","readmodel"]),l=new Set(["pcr","processor"]),c=new Set(["ui"]);function u(e){let r=e.validation.EventModelingValidator,t=e.validation.ValidationRegistry;if(t){let e={EmTimeFrame:r.checkSourceFrameTypes.bind(r),EmResetFrame:r.checkSourceFrameTypes.bind(r)};t.register(e,r)}}(0,a.K2)(u,"registerValidationChecks");var d=class{static{(0,a.K2)(this,"EventModelingValidator")}checkSourceFrameTypes(e,r){0!==e.sourceFrames.length&&(i.has(e.modelEntityType)?this.validateSources(e,new Set([...c,...l]),"command","ui or processor",r):s.has(e.modelEntityType)?this.validateSources(e,i,"event","command",r):o.has(e.modelEntityType)?this.validateSources(e,s,"read model","event",r):l.has(e.modelEntityType)?this.validateSources(e,o,"processor","read model",r):c.has(e.modelEntityType)&&this.validateSources(e,o,"ui","read model",r))}validateSources(e,r,t,a,n){for(let i of e.sourceFrames){let s=i.ref;void 0===s||r.has(s.modelEntityType)||n("error",`A ${t} can only receive input from a ${a}, not from '${s.modelEntityType}'.`,{node:e,property:"sourceFrames"})}}},v={parser:{TokenBuilder:(0,a.K2)(()=>new n,"TokenBuilder"),ValueConverter:(0,a.K2)(()=>new a.Tm,"ValueConverter")},validation:{EventModelingValidator:(0,a.K2)(()=>new d,"EventModelingValidator")}};function m(e=a.DD){let r=(0,a.WQ)((0,a.uM)(e),a.sr),t=(0,a.WQ)((0,a.tG)({shared:r}),a.x0,v);return r.ServiceRegistry.register(t),u(t),{shared:r,EventModel:t}}(0,a.K2)(m,"createEventModelingServices")},52597:(e,r,t)=>{t.d(r,{P:()=>l});var a=t(42435),n=class extends a.mR{static{(0,a.K2)(this,"RailroadPegTokenBuilder")}constructor(){super(["railroad-peg-beta"])}},i=(0,a.K2)(e=>{let r=e.slice(1,-1),t="";for(let e=0;e<r.length;e++){let a=r[e];if("\\"===a&&e+1<r.length){let a=r[++e];switch(a){case"n":t+="\n";break;case"r":t+="\r";break;case"t":t+=" ";break;default:t+=a}continue}t+=a}return t},"decodeEscapedString"),s=class extends a.dg{static{(0,a.K2)(this,"RailroadPegValueConverter")}runConverter(e,r,t){let a=super.runConverter(e,r,t);if("TITLE"===e.name&&"string"==typeof a){let e=a.trim();if(e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'"))return i(e)}return a}runCustomConverter(e,r,t){if("PEG_STRING"===e.name)return i(r)}},o={parser:{TokenBuilder:(0,a.K2)(()=>new n,"TokenBuilder"),ValueConverter:(0,a.K2)(()=>new s,"ValueConverter")}};function l(e=a.DD){let r=(0,a.WQ)((0,a.uM)(e),a.sr),t=(0,a.WQ)((0,a.tG)({shared:r}),a.dj,o);return r.ServiceRegistry.register(t),{shared:r,RailroadPeg:t}}(0,a.K2)(l,"createRailroadPegServices")},58182:(e,r,t)=>{t.d(r,{f:()=>o});var a=t(42435),n=class extends a.mR{static{(0,a.K2)(this,"PieTokenBuilder")}constructor(){super(["pie","showData"])}},i=class extends a.dg{static{(0,a.K2)(this,"PieValueConverter")}runCustomConverter(e,r,t){if("PIE_SECTION_LABEL"===e.name)return r.replace(/"/g,"").trim()}},s={parser:{TokenBuilder:(0,a.K2)(()=>new n,"TokenBuilder"),ValueConverter:(0,a.K2)(()=>new i,"ValueConverter")}};function o(e=a.DD){let r=(0,a.WQ)((0,a.uM)(e),a.sr),t=(0,a.WQ)((0,a.tG)({shared:r}),a.D_,s);return r.ServiceRegistry.register(t),{shared:r,Pie:t}}(0,a.K2)(o,"createPieServices")},68895:(e,r,t)=>{t.d(r,{b:()=>s});var a=t(42435),n=class extends a.mR{static{(0,a.K2)(this,"GitGraphTokenBuilder")}constructor(){super(["gitGraph"])}},i={parser:{TokenBuilder:(0,a.K2)(()=>new n,"TokenBuilder"),ValueConverter:(0,a.K2)(()=>new a.Tm,"ValueConverter")}};function s(e=a.DD){let r=(0,a.WQ)((0,a.uM)(e),a.sr),t=(0,a.WQ)((0,a.tG)({shared:r}),a.d$,i);return r.ServiceRegistry.register(t),{shared:r,GitGraph:t}}(0,a.K2)(s,"createGitGraphServices")},73339:(e,r,t)=>{t.d(r,{f:()=>s});var a=t(42435),n=class extends a.mR{static{(0,a.K2)(this,"RadarTokenBuilder")}constructor(){super(["radar-beta"])}},i={parser:{TokenBuilder:(0,a.K2)(()=>new n,"TokenBuilder"),ValueConverter:(0,a.K2)(()=>new a.Tm,"ValueConverter")}};function s(e=a.DD){let r=(0,a.WQ)((0,a.uM)(e),a.sr),t=(0,a.WQ)((0,a.tG)({shared:r}),a.Bg,i);return r.ServiceRegistry.register(t),{shared:r,Radar:t}}(0,a.K2)(s,"createRadarServices")},79564:(e,r,t)=>{t.d(r,{s:()=>o});var a=t(42435),n=class extends a.mR{static{(0,a.K2)(this,"RailroadAbnfTokenBuilder")}constructor(){super(["railroad-abnf-beta"])}},i=class extends a.dg{static{(0,a.K2)(this,"RailroadAbnfValueConverter")}runConverter(e,r,t){let a=super.runConverter(e,r,t);if("TITLE"===e.name&&"string"==typeof a){let e=a.trim();if(e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'"))return e.slice(1,-1)}return a}runCustomConverter(e,r,t){if("ABNF_STRING"===e.name)return r.slice(1,-1)}},s={parser:{TokenBuilder:(0,a.K2)(()=>new n,"TokenBuilder"),ValueConverter:(0,a.K2)(()=>new i,"ValueConverter")}};function o(e=a.DD){let r=(0,a.WQ)((0,a.uM)(e),a.sr),t=(0,a.WQ)((0,a.tG)({shared:r}),a.oI,s);return r.ServiceRegistry.register(t),{shared:r,RailroadAbnf:t}}(0,a.K2)(o,"createRailroadAbnfServices")},87235:(e,r,t)=>{t.d(r,{d:()=>u});var a=t(42435),n=class extends a.mR{static{(0,a.K2)(this,"TreemapTokenBuilder")}constructor(){super(["treemap"])}},i=/classDef\s+([A-Z_a-z]\w+)(?:\s+([^\n\r;]*))?;?/,s=class extends a.dg{static{(0,a.K2)(this,"TreemapValueConverter")}runCustomConverter(e,r,t){if("NUMBER2"===e.name)return parseFloat(r.replace(/,/g,""));if("SEPARATOR"===e.name)return r.substring(1,r.length-1);if("STRING2"===e.name)return r.substring(1,r.length-1);if("INDENTATION"===e.name)return r.length;if("ClassDef"===e.name){if("string"!=typeof r)return r;let e=i.exec(r);if(e)return{$type:"ClassDefStatement",className:e[1],styleText:e[2]||void 0}}}};function o(e){let r=e.validation.TreemapValidator,t=e.validation.ValidationRegistry;if(t){let e={Treemap:r.checkSingleRoot.bind(r)};t.register(e,r)}}(0,a.K2)(o,"registerValidationChecks");var l=class{static{(0,a.K2)(this,"TreemapValidator")}checkSingleRoot(e,r){let t;for(let a of e.TreemapRows)a.item&&(void 0===t&&void 0===a.indent?t=0:void 0===a.indent?r("error","Multiple root nodes are not allowed in a treemap.",{node:a,property:"item"}):void 0!==t&&t>=parseInt(a.indent,10)&&r("error","Multiple root nodes are not allowed in a treemap.",{node:a,property:"item"}))}},c={parser:{TokenBuilder:(0,a.K2)(()=>new n,"TokenBuilder"),ValueConverter:(0,a.K2)(()=>new s,"ValueConverter")},validation:{TreemapValidator:(0,a.K2)(()=>new l,"TreemapValidator")}};function u(e=a.DD){let r=(0,a.WQ)((0,a.uM)(e),a.sr),t=(0,a.WQ)((0,a.tG)({shared:r}),a.XE,c);return r.ServiceRegistry.register(t),o(t),{shared:r,Treemap:t}}(0,a.K2)(u,"createTreemapServices")},97639:(e,r,t)=>{t.d(r,{t:()=>s});var a=t(42435),n=class extends a.mR{static{(0,a.K2)(this,"CynefinTokenBuilder")}constructor(){super(["cynefin-beta"])}},i={parser:{TokenBuilder:(0,a.K2)(()=>new n,"TokenBuilder"),ValueConverter:(0,a.K2)(()=>new a.Tm,"ValueConverter")}};function s(e=a.DD){let r=(0,a.WQ)((0,a.uM)(e),a.sr),t=(0,a.WQ)((0,a.tG)({shared:r}),a.Jn,i);return r.ServiceRegistry.register(t),{shared:r,Cynefin:t}}(0,a.K2)(s,"createCynefinServices")}}]);
|
package/apps/pwa/out/_next/static/chunks/{552.b7d061ad91eeac51.js → 5638.107314dc479e2f37.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5638],{39173:(e,t,r)=>{function i(e,t){e.accDescr&&t.setAccDescription?.(e.accDescr),e.accTitle&&t.setAccTitle?.(e.accTitle),e.title&&t.setDiagramTitle?.(e.title)}r.d(t,{S:()=>i}),(0,r(9820).K)(i,"populateCommonDb")},49448:(e,t,r)=>{r.d(t,{$:()=>O,U:()=>j,db:()=>S});var i=r(23208),a=r(47356),n=r(54730),o=r(9820),l="",s="",d="",m=[],c=new Map,h=(0,o.K)(e=>(0,a.jZ)(e,(0,a.D7)()),"sanitizeText"),p=(0,o.K)(e=>{switch(e.type){case"terminal":return{...e,value:h(e.value)};case"nonterminal":return{...e,name:h(e.name)};case"sequence":return{...e,elements:e.elements.map(p)};case"choice":return{...e,alternatives:e.alternatives.map(p)};case"optional":return{...e,element:p(e.element)};case"repetition":return{...e,element:p(e.element),separator:e.separator?p(e.separator):void 0};case"special":return{...e,text:h(e.text)}}},"sanitizeAstNode"),u=(0,o.K)(()=>{l="",s="",d="",m.length=0,c.clear(),(0,a.IU)(),n.R.debug("[Railroad] Database cleared")},"clear"),g=(0,o.K)(e=>{l=h(e),n.R.debug("[Railroad] Title set:",e)},"setTitle"),T=(0,o.K)(()=>l,"getTitle"),f=(0,o.K)(e=>{let t={...e,name:h(e.name),definition:p(e.definition),comment:e.comment?h(e.comment):void 0};n.R.debug("[Railroad] Adding rule:",t.name),c.has(t.name)&&n.R.warn(`[Railroad] Rule '${t.name}' is already defined. Overwriting.`),m.push(t),c.set(t.name,t)},"addRule"),x=(0,o.K)(()=>m,"getRules"),w=(0,o.K)(e=>c.get(e),"getRule"),k=(0,o.K)(e=>{s=h(e).replace(/^\s+/g,""),n.R.debug("[Railroad] Accessibility title set:",e)},"setAccTitle"),C=(0,o.K)(()=>s,"getAccTitle"),$=(0,o.K)(e=>{d=h(e).replace(/\n\s+/g,"\n"),n.R.debug("[Railroad] Accessibility description set:",e)},"setAccDescription"),S={clear:u,setTitle:g,getTitle:T,addRule:f,getRules:x,getRule:w,setAccTitle:k,getAccTitle:C,setAccDescription:$,getAccDescription:(0,o.K)(()=>d,"getAccDescription"),setDiagramTitle:g,getDiagramTitle:T},F={compactMode:!1,padding:10,verticalSeparation:8,horizontalSeparation:10,arcRadius:10,fontSize:14,fontFamily:"monospace",terminalFill:"#FFFFC0",terminalStroke:"#000000",terminalTextColor:"#000000",nonTerminalFill:"#FFFFFF",nonTerminalStroke:"#000000",nonTerminalTextColor:"#000000",lineColor:"#000000",strokeWidth:2,markerFill:"#000000",commentFill:"#E8E8E8",commentStroke:"#888888",commentTextColor:"#666666",specialFill:"#F0E0FF",specialStroke:"#8800CC",ruleNameColor:"#000066",showMarkers:!0,markerRadius:5},y=/^#(?:[\da-f]{3,4}|[\da-f]{6}|[\da-f]{8})$|^(?:rgb|rgba|hsl|hsla|hwb|lab|lch|oklab|oklch)\([\d\s%+,./-]+\)$|^[a-z]+$/i,R=/^[\w "',.-]+$/,b=new Set(["compactMode","padding","verticalSeparation","horizontalSeparation","arcRadius","fontSize","fontFamily","terminalFill","terminalStroke","terminalTextColor","nonTerminalFill","nonTerminalStroke","nonTerminalTextColor","lineColor","strokeWidth","markerFill","commentFill","commentStroke","commentTextColor","specialFill","specialStroke","ruleNameColor","showMarkers","markerRadius"]),v=(0,o.K)(e=>!!e&&Object.keys(e).every(e=>"railroad"===e||b.has(e)),"isRailroadStyleOptions"),z=(0,o.K)(e=>e?"railroad"in e&&e.railroad?e.railroad:v(e)?e:{}:{},"extractRailroadOverrides"),K=(0,o.K)(e=>{if(!e||v(e))return{};let{railroad:t,svgId:r,theme:i,look:a,...n}=e;return n},"extractThemeOverrides"),N=(0,o.K)((e,t)=>{if("string"!=typeof e)return t;let r=e.trim();return y.test(r)?r:t},"sanitizeColorValue"),M=(0,o.K)((e,t)=>{if("string"!=typeof e)return t;let r=e.trim();return R.test(r)?r:t},"sanitizeFontFamilyValue"),A=(0,o.K)((e,t)=>{let r="number"==typeof e?e:"string"==typeof e?Number.parseFloat(e):NaN;return Number.isFinite(r)&&r>=0?r:t},"sanitizeNumberValue"),D=(0,o.K)(e=>{let t="number"==typeof e?e:"string"==typeof e?Number.parseFloat(e):NaN;return Number.isFinite(t)&&t>0?t:void 0},"parseThemeFontSize"),E=(0,o.K)(e=>{let t=M(e.fontFamily,F.fontFamily),r=D(e.fontSize)??F.fontSize;return{...F,fontFamily:t,fontSize:r,terminalFill:N(e.secondBkg??e.secondaryColor,F.terminalFill),terminalStroke:N(e.secondaryBorderColor??e.lineColor,F.terminalStroke),terminalTextColor:N(e.secondaryTextColor??e.textColor,F.terminalTextColor),nonTerminalFill:N(e.mainBkg??e.background,F.nonTerminalFill),nonTerminalStroke:N(e.primaryBorderColor??e.lineColor,F.nonTerminalStroke),nonTerminalTextColor:N(e.primaryTextColor??e.textColor,F.nonTerminalTextColor),lineColor:N(e.lineColor,F.lineColor),markerFill:N(e.lineColor,F.markerFill),commentFill:N(e.labelBackground??e.tertiaryColor,F.commentFill),commentStroke:N(e.tertiaryBorderColor??e.lineColor,F.commentStroke),commentTextColor:N(e.tertiaryTextColor??e.textColor,F.commentTextColor),specialFill:N(e.tertiaryColor??e.secondaryColor,F.specialFill),specialStroke:N(e.tertiaryBorderColor??e.secondaryBorderColor,F.specialStroke),ruleNameColor:N(e.titleColor??e.textColor,F.ruleNameColor)}},"buildThemeDefaults"),B=(0,o.K)(e=>{let t=(0,a.zj)(),r=E({...(0,a.P$)(),...t.themeVariables??{},...K(e)}),i={...t.railroad??{},...z(e)};return{compactMode:i.compactMode??r.compactMode,padding:A(i.padding,r.padding),verticalSeparation:A(i.verticalSeparation,r.verticalSeparation),horizontalSeparation:A(i.horizontalSeparation,r.horizontalSeparation),arcRadius:A(i.arcRadius,r.arcRadius),fontSize:A(i.fontSize,r.fontSize),fontFamily:M(i.fontFamily,r.fontFamily),terminalFill:N(i.terminalFill,r.terminalFill),terminalStroke:N(i.terminalStroke,r.terminalStroke),terminalTextColor:N(i.terminalTextColor,r.terminalTextColor),nonTerminalFill:N(i.nonTerminalFill,r.nonTerminalFill),nonTerminalStroke:N(i.nonTerminalStroke,r.nonTerminalStroke),nonTerminalTextColor:N(i.nonTerminalTextColor,r.nonTerminalTextColor),lineColor:N(i.lineColor,r.lineColor),strokeWidth:A(i.strokeWidth,r.strokeWidth),markerFill:N(i.markerFill,r.markerFill),commentFill:N(i.commentFill,r.commentFill),commentStroke:N(i.commentStroke,r.commentStroke),commentTextColor:N(i.commentTextColor,r.commentTextColor),specialFill:N(i.specialFill,r.specialFill),specialStroke:N(i.specialStroke,r.specialStroke),ruleNameColor:N(i.ruleNameColor,r.ruleNameColor),showMarkers:i.showMarkers??r.showMarkers,markerRadius:A(i.markerRadius,r.markerRadius)}},"buildRailroadStyleOptions"),O=(0,o.K)(e=>{let{fontFamily:t,fontSize:r,terminalFill:i,terminalStroke:a,terminalTextColor:n,nonTerminalFill:o,nonTerminalStroke:l,nonTerminalTextColor:s,lineColor:d,strokeWidth:m,markerFill:c,commentFill:h,commentStroke:p,commentTextColor:u,specialFill:g,specialStroke:T,ruleNameColor:f}=B(e);return`
|
|
2
2
|
.railroad-diagram {
|
|
3
3
|
font-family: ${t};
|
|
4
4
|
font-size: ${r}px;
|
|
@@ -83,4 +83,4 @@
|
|
|
83
83
|
.railroad-group {
|
|
84
84
|
/* Grouping container, no specific styles */
|
|
85
85
|
}
|
|
86
|
-
`},"getStyles"),W=class{constructor(){this.d=""}static{(0,o.K)(this,"PathBuilder")}moveTo(e,t){return this.d+=`M ${e} ${t} `,this}lineTo(e,t){return this.d+=`L ${e} ${t} `,this}horizontalTo(e){return this.d+=`H ${e} `,this}verticalTo(e){return this.d+=`V ${e} `,this}arcTo(e,t,r,i,a,n,o){return this.d+=`A ${e} ${t} ${r} ${+!!i} ${+!!a} ${n} ${o} `,this}build(){return this.d.trim()}},q=class{constructor(e,t=B()){this.textCache=new Map,this.svg=e,this.config=t}static{(0,o.K)(this,"RailroadRenderer")}measureText(e){if(this.textCache.has(e))return this.textCache.get(e);let t=this.svg.append("text").attr("font-family",this.config.fontFamily).attr("font-size",this.config.fontSize).text(e),r=t.node().getBBox(),i={width:r.width,height:r.height};return t.remove(),this.textCache.set(e,i),i}renderTerminal(e,t){let r=this.measureText(t),i=r.width+2*this.config.padding,a=r.height+2*this.config.padding,n=e.append("g").attr("class","railroad-terminal");return n.append("rect").attr("x",0).attr("y",0).attr("width",i).attr("height",a).attr("rx",10).attr("ry",10),n.append("text").attr("x",i/2).attr("y",a/2).text(t),{element:n.node(),dimensions:{width:i,height:a,up:a/2,down:a/2}}}renderNonTerminal(e,t){let r=this.measureText(t),i=r.width+2*this.config.padding,a=r.height+2*this.config.padding,n=e.append("g").attr("class","railroad-nonterminal");return n.append("rect").attr("x",0).attr("y",0).attr("width",i).attr("height",a),n.append("text").attr("x",i/2).attr("y",a/2).text(t),{element:n.node(),dimensions:{width:i,height:a,up:a/2,down:a/2}}}renderSequence(e,t){let r=t.map(t=>this.renderExpression(e,t)),i=0,a=0,n=0;for(let e of r)i+=e.dimensions.width,a=Math.max(a,e.dimensions.up),n=Math.max(n,e.dimensions.down);i+=(r.length-1)*this.config.horizontalSeparation;let o=e.append("g").attr("class","railroad-sequence"),l=0;for(let e=0;e<r.length;e++){let t=r[e],i=a-t.dimensions.up;if(o.node().appendChild(t.element).setAttribute("transform",`translate(${l}, ${i})`),e<r.length-1){let e=l+t.dimensions.width,r=e+this.config.horizontalSeparation,i=a;o.append("path").attr("class","railroad-line").attr("d",new W().moveTo(e,i).lineTo(r,i).build())}l+=t.dimensions.width+this.config.horizontalSeparation}return{element:o.node(),dimensions:{width:i,height:a+n,up:a,down:n}}}renderChoice(e,t){let r=t.map(t=>this.renderExpression(e,t)),i=0,a=0;for(let e of r)i=Math.max(i,e.dimensions.width),a+=e.dimensions.height;a+=(r.length-1)*this.config.verticalSeparation;let n=this.config.arcRadius,o=i+4*n,l=e.append("g").attr("class","railroad-choice"),s=0,d=a/2;for(let e of r){let t=s,r=t+e.dimensions.up,a=2*n+(i-e.dimensions.width)/2;l.node().appendChild(e.element).setAttribute("transform",`translate(${a}, ${t})`);let m=new W,c=r>d;r===d?m.moveTo(0,d).lineTo(a,r):m.moveTo(0,d).arcTo(n,n,0,!1,c,n,d+(c?n:-n)).lineTo(n,r-(c?n:-n)).arcTo(n,n,0,!1,!c,2*n,r).lineTo(a,r),l.append("path").attr("class","railroad-line").attr("d",m.build());let h=new W,p=a+e.dimensions.width,u=o-2*n;r===d?h.moveTo(p,r).lineTo(o,d):h.moveTo(p,r).lineTo(u,r).arcTo(n,n,0,!1,!c,o-n,r+(c?-n:n)).lineTo(o-n,d+(c?n:-n)).arcTo(n,n,0,!1,c,o,d),l.append("path").attr("class","railroad-line").attr("d",h.build()),s+=e.dimensions.height+this.config.verticalSeparation}return{element:l.node(),dimensions:{width:o,height:a,up:d,down:a-d}}}renderOptional(e,t){let r=this.renderExpression(e,t),i=this.config.arcRadius,a=2*i,n=r.dimensions.width+4*i,o=r.dimensions.height+a,l=e.append("g").attr("class","railroad-optional"),s=2*i;l.node().appendChild(r.element).setAttribute("transform",`translate(${s}, ${a})`);let d=a+r.dimensions.up,m=new W().moveTo(0,d).lineTo(2*i,d);l.append("path").attr("class","railroad-line").attr("d",m.build());let c=new W().moveTo(s+r.dimensions.width,d).lineTo(n,d);l.append("path").attr("class","railroad-line").attr("d",c.build());let h=new W().moveTo(0,d).arcTo(i,i,0,!1,!1,i,d-i).lineTo(i,i).arcTo(i,i,0,!1,!0,2*i,0).lineTo(n-2*i,0).arcTo(i,i,0,!1,!0,n-i,i).lineTo(n-i,d-i).arcTo(i,i,0,!1,!1,n,d);return l.append("path").attr("class","railroad-line").attr("d",h.build()),{element:l.node(),dimensions:{width:n,height:o,up:d,down:o-d}}}renderRepetition(e,t,r){let i=this.renderExpression(e,t),a=this.config.arcRadius,n=2*a,o=i.dimensions.width+4*a,l=0===r,s=i.dimensions.height+n+(l?n:0),d=e.append("g").attr("class","railroad-repetition"),m=2*a,c=l?n:0;d.node().appendChild(i.element).setAttribute("transform",`translate(${m}, ${c})`);let h=c+i.dimensions.up;d.append("path").attr("class","railroad-line").attr("d",new W().moveTo(0,h).lineTo(2*a,h).build()),d.append("path").attr("class","railroad-line").attr("d",new W().moveTo(m+i.dimensions.width,h).lineTo(o,h).build());let p=c+i.dimensions.height+a,u=new W().moveTo(m+i.dimensions.width,h).arcTo(a,a,0,!1,!0,m+i.dimensions.width+a,h+a).lineTo(m+i.dimensions.width+a,p).arcTo(a,a,0,!1,!0,m+i.dimensions.width,p+a).lineTo(2*a,p+a).arcTo(a,a,0,!1,!0,a,p).lineTo(a,h+a).arcTo(a,a,0,!1,!0,2*a,h);if(d.append("path").attr("class","railroad-line").attr("d",u.build()),l){let e=new W().moveTo(0,h).arcTo(a,a,0,!1,!1,a,h-a).lineTo(a,a).arcTo(a,a,0,!1,!0,2*a,0).lineTo(o-2*a,0).arcTo(a,a,0,!1,!0,o-a,a).lineTo(o-a,h-a).arcTo(a,a,0,!1,!1,o,h);d.append("path").attr("class","railroad-line").attr("d",e.build())}return{element:d.node(),dimensions:{width:o,height:s,up:h,down:s-h}}}renderSpecial(e,t){let r=this.measureText("? "+t+" ?"),i=r.width+2*this.config.padding,a=r.height+2*this.config.padding,n=e.append("g").attr("class","railroad-special");return n.append("rect").attr("x",0).attr("y",0).attr("width",i).attr("height",a),n.append("text").attr("x",i/2).attr("y",a/2).text("? "+t+" ?"),{element:n.node(),dimensions:{width:i,height:a,up:a/2,down:a/2}}}renderExpression(e,t){switch(t.type){case"terminal":return this.renderTerminal(e,t.value);case"nonterminal":return this.renderNonTerminal(e,t.name);case"sequence":return this.renderSequence(e,t.elements);case"choice":return this.renderChoice(e,t.alternatives);case"optional":return this.renderOptional(e,t.element);case"repetition":return this.renderRepetition(e,t.element,t.min);case"special":return this.renderSpecial(e,t.text);default:throw Error(`Unknown node type: ${t.type}`)}}renderRule(e,t){let r=this.svg.append("g").attr("class","railroad-rule").attr("transform",`translate(0, ${t})`),i=e.name+" =",a=this.measureText(i).width+20,n=a+20,o=r.append("g"),l=this.renderExpression(o,e.definition),s=Math.max(20,l.dimensions.up),d=s-l.dimensions.up;return o.attr("transform",`translate(${n}, ${d})`),r.append("g").attr("class","railroad-rule-name-group").append("text").attr("class","railroad-rule-name").attr("x",0).attr("y",s).text(i),r.append("g").attr("class","railroad-start").append("circle").attr("cx",a).attr("cy",s).attr("r",this.config.markerRadius),r.append("g").attr("class","railroad-end").append("circle").attr("cx",n+l.dimensions.width+10).attr("cy",s).attr("r",this.config.markerRadius),r.append("path").attr("class","railroad-line").attr("d",new W().moveTo(a+this.config.markerRadius,s).lineTo(n,s).build()),r.append("path").attr("class","railroad-line").attr("d",new W().moveTo(n+l.dimensions.width,s).lineTo(n+l.dimensions.width+10-this.config.markerRadius,s).build()),{height:Math.max(40,d+l.dimensions.height+2*this.config.padding),width:n+l.dimensions.width+10+this.config.markerRadius}}renderDiagram(e){let t=this.config.padding,r=0;for(let i of e){let e=this.renderRule(i,t);t+=e.height+this.config.verticalSeparation,r=Math.max(r,e.width)}return{width:r+2*this.config.padding,height:t+this.config.padding}}},V=(0,o.K)((e,t,r)=>{(0,a.a$)(e,t.height,t.width,r),e.attr("viewBox",`0 0 ${t.width} ${t.height}`)},"configureRailroadSvgSize"),j={draw:(0,o.K)((e,t,r)=>{n.R.debug("[Railroad] Rendering diagram\n"+e);try{let e=(0,i.D)(t);e.attr("class","railroad-diagram");let r=(0,a.zj)().railroad,o=r?.useMaxWidth??!0,l=S.getRules();if(n.R.debug(`[Railroad] Rendering ${l.length} rules`),0===l.length){n.R.warn("[Railroad] No rules to render"),V(e,{height:100,width:200},o);return}let s=new q(e,B()).renderDiagram(l);V(e,s,o),n.R.debug("[Railroad] Render complete")}catch(e){throw n.R.error("[Railroad] Render error:",e),e}},"draw")}}
|
|
86
|
+
`},"getStyles"),W=class{constructor(){this.d=""}static{(0,o.K)(this,"PathBuilder")}moveTo(e,t){return this.d+=`M ${e} ${t} `,this}lineTo(e,t){return this.d+=`L ${e} ${t} `,this}horizontalTo(e){return this.d+=`H ${e} `,this}verticalTo(e){return this.d+=`V ${e} `,this}arcTo(e,t,r,i,a,n,o){return this.d+=`A ${e} ${t} ${r} ${+!!i} ${+!!a} ${n} ${o} `,this}build(){return this.d.trim()}},q=class{constructor(e,t=B()){this.textCache=new Map,this.svg=e,this.config=t}static{(0,o.K)(this,"RailroadRenderer")}measureText(e){if(this.textCache.has(e))return this.textCache.get(e);let t=this.svg.append("text").attr("font-family",this.config.fontFamily).attr("font-size",this.config.fontSize).text(e),r=t.node().getBBox(),i={width:r.width,height:r.height};return t.remove(),this.textCache.set(e,i),i}renderTerminal(e,t){let r=this.measureText(t),i=r.width+2*this.config.padding,a=r.height+2*this.config.padding,n=e.append("g").attr("class","railroad-terminal");return n.append("rect").attr("x",0).attr("y",0).attr("width",i).attr("height",a).attr("rx",10).attr("ry",10),n.append("text").attr("x",i/2).attr("y",a/2).text(t),{element:n.node(),dimensions:{width:i,height:a,up:a/2,down:a/2}}}renderNonTerminal(e,t){let r=this.measureText(t),i=r.width+2*this.config.padding,a=r.height+2*this.config.padding,n=e.append("g").attr("class","railroad-nonterminal");return n.append("rect").attr("x",0).attr("y",0).attr("width",i).attr("height",a),n.append("text").attr("x",i/2).attr("y",a/2).text(t),{element:n.node(),dimensions:{width:i,height:a,up:a/2,down:a/2}}}renderSequence(e,t){let r=t.map(t=>this.renderExpression(e,t)),i=0,a=0,n=0;for(let e of r)i+=e.dimensions.width,a=Math.max(a,e.dimensions.up),n=Math.max(n,e.dimensions.down);i+=(r.length-1)*this.config.horizontalSeparation;let o=e.append("g").attr("class","railroad-sequence"),l=0;for(let e=0;e<r.length;e++){let t=r[e],i=a-t.dimensions.up;if(o.node().appendChild(t.element).setAttribute("transform",`translate(${l}, ${i})`),e<r.length-1){let e=l+t.dimensions.width,r=e+this.config.horizontalSeparation,i=a;o.append("path").attr("class","railroad-line").attr("d",new W().moveTo(e,i).lineTo(r,i).build())}l+=t.dimensions.width+this.config.horizontalSeparation}return{element:o.node(),dimensions:{width:i,height:a+n,up:a,down:n}}}renderChoice(e,t){let r=t.map(t=>this.renderExpression(e,t)),i=0,a=0;for(let e of r)i=Math.max(i,e.dimensions.width),a+=e.dimensions.height;a+=(r.length-1)*this.config.verticalSeparation;let n=this.config.arcRadius,o=i+4*n,l=e.append("g").attr("class","railroad-choice"),s=0,d=a/2;for(let e of r){let t=s,r=t+e.dimensions.up,a=2*n+(i-e.dimensions.width)/2;l.node().appendChild(e.element).setAttribute("transform",`translate(${a}, ${t})`);let m=new W,c=r>d;r===d?m.moveTo(0,d).lineTo(a,r):m.moveTo(0,d).arcTo(n,n,0,!1,c,n,d+(c?n:-n)).lineTo(n,r-(c?n:-n)).arcTo(n,n,0,!1,!c,2*n,r).lineTo(a,r),l.append("path").attr("class","railroad-line").attr("d",m.build());let h=new W,p=a+e.dimensions.width,u=o-2*n;r===d?h.moveTo(p,r).lineTo(o,d):h.moveTo(p,r).lineTo(u,r).arcTo(n,n,0,!1,!c,o-n,r+(c?-n:n)).lineTo(o-n,d+(c?n:-n)).arcTo(n,n,0,!1,c,o,d),l.append("path").attr("class","railroad-line").attr("d",h.build()),s+=e.dimensions.height+this.config.verticalSeparation}return{element:l.node(),dimensions:{width:o,height:a,up:d,down:a-d}}}renderOptional(e,t){let r=this.renderExpression(e,t),i=this.config.arcRadius,a=2*i,n=r.dimensions.width+4*i,o=r.dimensions.height+a,l=e.append("g").attr("class","railroad-optional"),s=2*i;l.node().appendChild(r.element).setAttribute("transform",`translate(${s}, ${a})`);let d=a+r.dimensions.up,m=new W().moveTo(0,d).lineTo(2*i,d);l.append("path").attr("class","railroad-line").attr("d",m.build());let c=new W().moveTo(s+r.dimensions.width,d).lineTo(n,d);l.append("path").attr("class","railroad-line").attr("d",c.build());let h=new W().moveTo(0,d).arcTo(i,i,0,!1,!1,i,d-i).lineTo(i,i).arcTo(i,i,0,!1,!0,2*i,0).lineTo(n-2*i,0).arcTo(i,i,0,!1,!0,n-i,i).lineTo(n-i,d-i).arcTo(i,i,0,!1,!1,n,d);return l.append("path").attr("class","railroad-line").attr("d",h.build()),{element:l.node(),dimensions:{width:n,height:o,up:d,down:o-d}}}renderRepetition(e,t,r){let i=this.renderExpression(e,t),a=this.config.arcRadius,n=2*a,o=i.dimensions.width+4*a,l=0===r,s=i.dimensions.height+n+(l?n:0),d=e.append("g").attr("class","railroad-repetition"),m=2*a,c=l?n:0;d.node().appendChild(i.element).setAttribute("transform",`translate(${m}, ${c})`);let h=c+i.dimensions.up;d.append("path").attr("class","railroad-line").attr("d",new W().moveTo(0,h).lineTo(2*a,h).build()),d.append("path").attr("class","railroad-line").attr("d",new W().moveTo(m+i.dimensions.width,h).lineTo(o,h).build());let p=c+i.dimensions.height+a,u=new W().moveTo(m+i.dimensions.width,h).arcTo(a,a,0,!1,!0,m+i.dimensions.width+a,h+a).lineTo(m+i.dimensions.width+a,p).arcTo(a,a,0,!1,!0,m+i.dimensions.width,p+a).lineTo(2*a,p+a).arcTo(a,a,0,!1,!0,a,p).lineTo(a,h+a).arcTo(a,a,0,!1,!0,2*a,h);if(d.append("path").attr("class","railroad-line").attr("d",u.build()),l){let e=new W().moveTo(0,h).arcTo(a,a,0,!1,!1,a,h-a).lineTo(a,a).arcTo(a,a,0,!1,!0,2*a,0).lineTo(o-2*a,0).arcTo(a,a,0,!1,!0,o-a,a).lineTo(o-a,h-a).arcTo(a,a,0,!1,!1,o,h);d.append("path").attr("class","railroad-line").attr("d",e.build())}return{element:d.node(),dimensions:{width:o,height:s,up:h,down:s-h}}}renderSpecial(e,t){let r=this.measureText("? "+t+" ?"),i=r.width+2*this.config.padding,a=r.height+2*this.config.padding,n=e.append("g").attr("class","railroad-special");return n.append("rect").attr("x",0).attr("y",0).attr("width",i).attr("height",a),n.append("text").attr("x",i/2).attr("y",a/2).text("? "+t+" ?"),{element:n.node(),dimensions:{width:i,height:a,up:a/2,down:a/2}}}renderExpression(e,t){switch(t.type){case"terminal":return this.renderTerminal(e,t.value);case"nonterminal":return this.renderNonTerminal(e,t.name);case"sequence":return this.renderSequence(e,t.elements);case"choice":return this.renderChoice(e,t.alternatives);case"optional":return this.renderOptional(e,t.element);case"repetition":return this.renderRepetition(e,t.element,t.min);case"special":return this.renderSpecial(e,t.text);default:throw Error(`Unknown node type: ${t.type}`)}}renderRule(e,t){let r=this.svg.append("g").attr("class","railroad-rule").attr("transform",`translate(0, ${t})`),i=e.name+" =",a=this.measureText(i).width+20,n=a+20,o=r.append("g"),l=this.renderExpression(o,e.definition),s=Math.max(20,l.dimensions.up),d=s-l.dimensions.up;return o.attr("transform",`translate(${n}, ${d})`),r.append("g").attr("class","railroad-rule-name-group").append("text").attr("class","railroad-rule-name").attr("x",0).attr("y",s).text(i),r.append("g").attr("class","railroad-start").append("circle").attr("cx",a).attr("cy",s).attr("r",this.config.markerRadius),r.append("g").attr("class","railroad-end").append("circle").attr("cx",n+l.dimensions.width+10).attr("cy",s).attr("r",this.config.markerRadius),r.append("path").attr("class","railroad-line").attr("d",new W().moveTo(a+this.config.markerRadius,s).lineTo(n,s).build()),r.append("path").attr("class","railroad-line").attr("d",new W().moveTo(n+l.dimensions.width,s).lineTo(n+l.dimensions.width+10-this.config.markerRadius,s).build()),{height:Math.max(40,d+l.dimensions.height+2*this.config.padding),width:n+l.dimensions.width+10+this.config.markerRadius}}renderDiagram(e){let t=this.config.padding,r=0;for(let i of e){let e=this.renderRule(i,t);t+=e.height+this.config.verticalSeparation,r=Math.max(r,e.width)}return{width:r+2*this.config.padding,height:t+this.config.padding}}},V=(0,o.K)((e,t,r)=>{(0,a.a$)(e,t.height,t.width,r),e.attr("viewBox",`0 0 ${t.width} ${t.height}`)},"configureRailroadSvgSize"),j={draw:(0,o.K)((e,t,r)=>{n.R.debug("[Railroad] Rendering diagram\n"+e);try{let e=(0,i.D)(t);e.attr("class","railroad-diagram");let r=(0,a.zj)().railroad,o=r?.useMaxWidth??!0,l=S.getRules();if(n.R.debug(`[Railroad] Rendering ${l.length} rules`),0===l.length){n.R.warn("[Railroad] No rules to render"),V(e,{height:100,width:200},o);return}let s=new q(e,B()).renderDiagram(l);V(e,s,o),n.R.debug("[Railroad] Render complete")}catch(e){throw n.R.error("[Railroad] Render error:",e),e}},"draw")}}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5645],{45645:(e,a,s)=>{s.d(a,{createRailroadEbnfServices:()=>c.W});var c=s(23547);s(42435)}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5662],{5662:(e,a,s)=>{s.d(a,{createRailroadServices:()=>c.l});var c=s(6070);s(42435)}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5671],{35671:(e,s,a)=>{a.d(s,{createRailroadAbnfServices:()=>c.s});var c=a(79564);a(42435)}}]);
|