elanous 0.2.37 → 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/{8kITumG9GAZ1LwT9POrAR → RrjXTwz-urRAbChP1bX02}/_buildManifest.js +1 -1
- package/apps/pwa/out/_next/static/chunks/{2002-a43a3f380df873ec.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/{7424.c0fe2a595d4232b5.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/{4937-28d437999b77c9dd.js → 1923-5c1695332240246a.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/1938.0e6c60ee91c4d7f5.js +148 -0
- package/apps/pwa/out/_next/static/chunks/2104.70e086d5174a4736.js +1 -0
- package/apps/pwa/out/_next/static/chunks/213-20675f20673ba22a.js +1 -0
- package/apps/pwa/out/_next/static/chunks/214.186a430da28338f1.js +1 -0
- 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/{3199.6a1a9b0e6cd01dc6.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/{1262.a89bb27a5b2f844e.js → 3086.fb14b60ce98b53d3.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/3124-561f7f037943cde2.js +1 -0
- 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/{2283.edd9627b7bdfb546.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/{6877-84d47b7e85d0c41e.js → 3341-f09b9efbd7a82f70.js} +1 -1
- 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/{6680.6a693c28aae4cd19.js → 3528.e4b8ab70d339f965.js} +1 -1
- 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/4199-f7c6eb40cd0322f8.js +1 -0
- 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/{4036.d54e55e1ebf5acdc.js → 4804.6012b5cd33c22792.js} +2 -2
- 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/{6819.be5c9c4d67f22922.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/{757-4fbaf50942b8c424.js → 5255-1b60d50eabe9f057.js} +1 -1
- 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/{7867.e8725745ddd1d940.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/{5046.7fd5cbd859299448.js → 5638.107314dc479e2f37.js} +1 -1
- 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/6493.27ad77de7aac7966.js +1 -0
- 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/{1224.2ceca6c180d5130b.js → 7000.28157393caaf5343.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/{6745-5a63492933959dd9.js → 7161-8f22db3ec5ed005e.js} +3 -3
- package/apps/pwa/out/_next/static/chunks/{2479-fe7e188bd9402d14.js → 7311-60a7ea80d23c7521.js} +1 -1
- 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/{5952.294fc574a8625184.js → 7488.966b116789f3d41a.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/7524.ce973525d30b3d52.js +1 -0
- 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/{6252.240578f10952e091.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/{1746.3563617ea64023a3.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/{4931.95cc6dbd230774ca.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/{2375.bf364c85dbb6f085.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/{4383.18e5c54db3a22c88.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/{9151.a2c51e93f9156dae.js → 8911.bf5e712acb25fb6c.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/{58edce7d.f1b0c72acf13b123.js → 8994d93e.33ba491f95345fc2.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/{5f6af561-f90b7a67f4f75d13.js → 89d6c04f-6b8ab341748e468a.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/9223.cbcc88e0e9950426.js +41 -0
- 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/9581.da63ddf41acfad46.js +1 -0
- 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/{de8446d3.31b73eb239fecd7b.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-5c112c6d7c33656e.js → page-c348a3959c5b5fc6.js} +1 -1
- 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-88a1edbff62eaf1d.js → page-d1d1210f99f620ae.js} +1 -1
- 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-291ab19fe2acb173.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/{page-b9af2ac1c4737ce8.js → page-7f569e533ddeecba.js} +1 -1
- 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-fb9e639c107f5f72.js → page-a9d9a3e66459c1e0.js} +1 -1
- 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-6b140f77593576eb.js +1 -0
- 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/{709a918c.4fd3b4e2a32cb4e3.js → b7459770.6539b11860eb8a9c.js} +7 -7
- package/apps/pwa/out/_next/static/chunks/{d9815f84.4918f682a45a8502.js → b7478fef.5917716286213fcc.js} +3 -3
- package/apps/pwa/out/_next/static/chunks/{4337e36d.f42c3b391b3d8f20.js → bb6987f9.3647e1a23b0e3217.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/de8b930d.d94c0f42acf807fc.js +1 -0
- package/apps/pwa/out/_next/static/chunks/{8c58d09b.e8724a299658d86f.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/approvals/index.html +1 -1
- package/apps/pwa/out/approvals/index.txt +22 -22
- package/apps/pwa/out/autopilot/index.html +1 -1
- package/apps/pwa/out/autopilot/index.txt +22 -22
- package/apps/pwa/out/board/index.html +1 -1
- package/apps/pwa/out/board/index.txt +22 -22
- package/apps/pwa/out/botlab/index.html +1 -1
- package/apps/pwa/out/botlab/index.txt +21 -21
- package/apps/pwa/out/bots/index.html +1 -1
- package/apps/pwa/out/bots/index.txt +21 -21
- package/apps/pwa/out/ceo/index.html +1 -1
- package/apps/pwa/out/ceo/index.txt +22 -22
- package/apps/pwa/out/chat/index.html +1 -1
- package/apps/pwa/out/chat/index.txt +21 -21
- package/apps/pwa/out/consult/index.html +1 -1
- package/apps/pwa/out/consult/index.txt +22 -22
- package/apps/pwa/out/control/index.html +1 -1
- package/apps/pwa/out/control/index.txt +22 -22
- package/apps/pwa/out/decisions/index.html +1 -1
- package/apps/pwa/out/decisions/index.txt +21 -21
- package/apps/pwa/out/design-check/index.html +1 -1
- package/apps/pwa/out/design-check/index.txt +22 -22
- package/apps/pwa/out/editor/index.html +1 -1
- package/apps/pwa/out/editor/index.txt +22 -22
- package/apps/pwa/out/exec/index.html +1 -1
- package/apps/pwa/out/exec/index.txt +22 -22
- package/apps/pwa/out/field/index.html +1 -1
- package/apps/pwa/out/field/index.txt +22 -22
- package/apps/pwa/out/healthz +1 -1
- package/apps/pwa/out/index.html +1 -1
- package/apps/pwa/out/index.txt +21 -21
- package/apps/pwa/out/inside/index.html +1 -1
- package/apps/pwa/out/inside/index.txt +21 -21
- package/apps/pwa/out/intake/index.html +1 -1
- package/apps/pwa/out/intake/index.txt +22 -22
- package/apps/pwa/out/live/index.html +1 -1
- package/apps/pwa/out/live/index.txt +22 -22
- package/apps/pwa/out/live-run/index.html +1 -1
- package/apps/pwa/out/live-run/index.txt +22 -22
- package/apps/pwa/out/loops/index.html +1 -1
- package/apps/pwa/out/loops/index.txt +21 -21
- package/apps/pwa/out/market/index.html +1 -1
- package/apps/pwa/out/market/index.txt +21 -21
- package/apps/pwa/out/missions/placeholder/index.html +1 -1
- package/apps/pwa/out/missions/placeholder/index.txt +21 -21
- package/apps/pwa/out/morning/index.html +1 -1
- package/apps/pwa/out/morning/index.txt +22 -22
- package/apps/pwa/out/observatory/index.html +1 -1
- package/apps/pwa/out/observatory/index.txt +22 -22
- package/apps/pwa/out/ops/checklist/index.html +1 -1
- package/apps/pwa/out/ops/checklist/index.txt +21 -21
- package/apps/pwa/out/ops/release/index.html +1 -1
- package/apps/pwa/out/ops/release/index.txt +21 -21
- package/apps/pwa/out/ops/seats/index.html +1 -1
- package/apps/pwa/out/ops/seats/index.txt +21 -21
- package/apps/pwa/out/outputs/index.html +1 -1
- package/apps/pwa/out/outputs/index.txt +21 -21
- package/apps/pwa/out/reflection/index.html +1 -1
- package/apps/pwa/out/reflection/index.txt +22 -22
- package/apps/pwa/out/scheduler/index.html +1 -1
- package/apps/pwa/out/scheduler/index.txt +22 -22
- package/apps/pwa/out/sessions/index.html +1 -1
- package/apps/pwa/out/sessions/index.txt +21 -21
- package/apps/pwa/out/settings/devices/index.html +1 -1
- package/apps/pwa/out/settings/devices/index.txt +22 -22
- package/apps/pwa/out/settings/index.html +1 -1
- package/apps/pwa/out/settings/index.txt +22 -22
- package/apps/pwa/out/setup/done/index.html +1 -1
- package/apps/pwa/out/setup/done/index.txt +22 -22
- package/apps/pwa/out/setup/index.html +1 -1
- package/apps/pwa/out/setup/index.txt +22 -22
- package/apps/pwa/out/share/index.html +1 -1
- package/apps/pwa/out/share/index.txt +22 -22
- package/apps/pwa/out/showroom/index.html +1 -1
- package/apps/pwa/out/showroom/index.txt +21 -21
- package/apps/pwa/out/tasks/index.html +1 -1
- package/apps/pwa/out/tasks/index.txt +22 -22
- package/apps/pwa/out/term/index.html +1 -1
- package/apps/pwa/out/term/index.txt +22 -22
- package/apps/pwa/out/today/index.html +1 -1
- package/apps/pwa/out/today/index.txt +22 -22
- package/apps/pwa/out/trace/index.html +1 -1
- package/apps/pwa/out/trace/index.txt +22 -22
- package/apps/pwa/out/vault/index.html +1 -1
- package/apps/pwa/out/vault/index.txt +22 -22
- package/apps/pwa/out/workflows/chat-ui/index.html +1 -1
- package/apps/pwa/out/workflows/chat-ui/index.txt +22 -22
- package/apps/pwa/out/workflows/index.html +1 -1
- package/apps/pwa/out/workflows/index.txt +22 -22
- package/apps/pwa/out/workspace/index.html +1 -1
- package/apps/pwa/out/workspace/index.txt +22 -22
- package/apps/pwa/out/worktrees/index.html +1 -1
- package/apps/pwa/out/worktrees/index.txt +22 -22
- package/graphs/release/recipes.yaml +9 -0
- package/graphs/release/release-loop.yaml +26 -18
- package/package.json +1 -1
- package/scripts/ask-op-inbox-once.ts +17 -0
- package/scripts/brand/check.ts +13 -4
- package/scripts/gate-0226-accepted-remaining-90.txt +91 -0
- package/scripts/gate-0226-failure-census.ts +39 -0
- package/scripts/intake-collect-telegram-saved-stage.ts +48 -0
- 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/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/resume-cap.ts +2 -1
- package/scripts/release-loop/resume-release.ts +297 -8
- 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 +29 -4
- package/scripts/ux-sim.ts +1 -1
- package/scripts/video-pipeline.ts +2 -2
- package/src/acp/core-turn-bridge.ts +6 -1
- package/src/agent/run-context.ts +1 -1
- package/src/agent/task-notification.ts +3 -1
- package/src/agent-substrate/review-observation.ts +10 -0
- package/src/agent-substrate/self-review-cli.ts +195 -27
- 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/bots/screen-probe.ts +1 -1
- package/src/capture/tui-self-report.ts +10 -2
- package/src/chat/index.ts +1 -0
- package/src/chat/tool-render/dispatch.ts +8 -1
- 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/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 +5 -2
- package/src/cli/release-cli.ts +47 -9
- package/src/cli/review-carry.ts +77 -0
- package/src/cli/self-update.ts +1 -1
- package/src/cli/tasks-card-show.ts +31 -1
- package/src/cli/tasks-cli.ts +62 -23
- package/src/cli/tasks-read-cli.ts +13 -5
- package/src/context-bus/context-now.ts +86 -2
- package/src/core-turn/run-core-turn.ts +9 -2
- package/src/core-turn/types.ts +3 -0
- package/src/dashboard/index.ts +18 -17
- package/src/dashboard/input/terminal-modal-router.ts +8 -159
- package/src/dashboard/side-basic-runtime.ts +61 -0
- package/src/dashboard/slash-runtime/dashboard-handlers.ts +2 -0
- package/src/dashboard/term-slash-runtime.ts +2 -0
- package/src/dashboard/turn-preamble.ts +28 -4
- package/src/domains/guardian-tick.ts +9 -0
- package/src/git-fs/watcher.ts +27 -22
- package/src/git-fs/worktree.ts +19 -3
- package/src/graph-runner/graph-grow.ts +37 -9
- package/src/graph-runner/runner.ts +17 -2
- package/src/grok/credential.ts +107 -36
- package/src/hq/fence-wrapper.ts +1 -1
- package/src/hq/transfer.ts +1 -1
- package/src/index.ts +44 -14
- 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-tool-schema.ts +20 -0
- package/src/llm.ts +81 -11
- package/src/loops/orchestrator/inbox-once.ts +28 -0
- package/src/loops/orchestrator/inbox.ts +130 -1
- package/src/loops/orchestrator/tick.ts +6 -3
- package/src/maturity/feature-maturity.ts +1 -0
- package/src/nexus/api/channel-ask-op.ts +96 -0
- package/src/nexus/api/discord-trigger-bot.ts +28 -1
- package/src/nexus/api/telegram-trigger-bot.ts +24 -0
- package/src/nexus/api/terminals.ts +28 -6
- package/src/patents/ledger.ts +18 -1
- package/src/preview/terminal.ts +4 -2
- package/src/prompt-cache/anthropic.ts +2 -0
- package/src/prompt-enhance/enhance.ts +5 -0
- package/src/pty-shell/pty-manifest.ts +16 -2
- package/src/release-loop/gate-shards.ts +61 -0
- package/src/release-loop/light-rc.ts +7 -4
- package/src/release-loop/rehearsal.ts +1 -1
- package/src/repl/index.ts +10 -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/self-dev/decompose.ts +45 -9
- package/src/self-dev/draft-residue.ts +221 -2
- package/src/self-dev/draft-sweep.ts +29 -16
- package/src/self-dev/orchestrate.ts +1 -0
- package/src/self-dev/run-supervisor.ts +22 -7
- package/src/self-dev/shard-run.ts +260 -3
- package/src/self-implement/comment-only-source.ts +54 -0
- package/src/self-implement/doctor-visit.ts +25 -0
- package/src/self-implement/gate-artifacts.ts +2 -2
- package/src/self-implement/gate-baseline.ts +44 -9
- package/src/self-implement/gate-cli.ts +151 -86
- package/src/self-implement/gate-failure-signature.ts +44 -0
- package/src/self-implement/gate-remote.ts +2 -0
- package/src/self-implement/goal-author.ts +74 -3
- package/src/self-implement/goal-doc/section.ts +22 -0
- package/src/self-implement/goal-supervisor-fill.ts +38 -4
- package/src/self-implement/knowhow-pack.ts +120 -7
- 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 +55 -12
- 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/run-ledger.ts +258 -0
- package/src/self-implement/seams.ts +33 -10
- package/src/self-implement/self-implement-cli.ts +26 -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 +3 -0
- package/src/session/index.ts +2 -0
- package/src/session-runtime/index.ts +9 -22
- package/src/skills/runner.ts +7 -3
- package/src/skills/tools/dev-harness.ts +2 -2
- package/src/skills/tools/schedule-wakeup.ts +1 -6
- package/src/status/bar.ts +3 -3
- package/src/storage/file-lock.ts +17 -4
- package/src/task-agent/adopt-pr.ts +63 -2
- package/src/task-agent/evidence-command-normalize.ts +42 -0
- package/src/task-agent/export-redactions-provision.ts +43 -0
- package/src/task-agent/parent-host.ts +59 -12
- package/src/task-agent/repair-cycle.ts +67 -8
- package/src/task-agent/repair-worker.ts +37 -1
- package/src/task-agent/task-hand.ts +98 -10
- package/src/task-agent/tier-split.ts +37 -3
- package/src/task-orchestrator/surfaces/pod-failure-reason.ts +31 -4
- package/src/task-orchestrator/surfaces/pod-pool.ts +27 -4
- package/src/task-orchestrator/surfaces/self-implement-pod.ts +126 -48
- package/src/task-orchestrator/surfaces/self-implement.ts +33 -2
- package/src/terminal/session-registry.ts +1 -0
- package/src/terminal/terminal-modal-router.ts +156 -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/entry.ts +469 -31
- 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 +3 -23
- package/src/tui/slash/term-next.ts +2 -1
- package/src/tui-client/local-chat-turn.ts +29 -8
- package/src/user-config.ts +11 -2
- package/src/ux-sim/fake-llm.ts +11 -5
- package/src/ux-sim/next-tui-seat-scenarios.ts +53 -1
- package/src/version/packed-revision.json +1 -1
- package/apps/pwa/out/_next/static/chunks/1041-5841aae848fb6403.js +0 -1
- package/apps/pwa/out/_next/static/chunks/1087.3177e54f672dc526.js +0 -1
- package/apps/pwa/out/_next/static/chunks/1105.efe1e13503ac7a33.js +0 -1
- package/apps/pwa/out/_next/static/chunks/1417-1768233ac92f8a5d.js +0 -1
- package/apps/pwa/out/_next/static/chunks/1612.81bbc19af06af16c.js +0 -1
- package/apps/pwa/out/_next/static/chunks/1766.728d42053070bb2d.js +0 -1
- package/apps/pwa/out/_next/static/chunks/1773.d38e945481e04125.js +0 -1
- package/apps/pwa/out/_next/static/chunks/1974-c12f9600da3d3c26.js +0 -1
- package/apps/pwa/out/_next/static/chunks/1ed5e8af.cf424815c7c0efad.js +0 -1
- package/apps/pwa/out/_next/static/chunks/2061.7232dc9dc058417f.js +0 -1
- package/apps/pwa/out/_next/static/chunks/210.90b2cbd64926cf34.js +0 -32
- package/apps/pwa/out/_next/static/chunks/2318-450e75d07605b8fe.js +0 -1
- package/apps/pwa/out/_next/static/chunks/244-a810d282a20f1783.js +0 -1
- package/apps/pwa/out/_next/static/chunks/2514.03b60f266531a015.js +0 -148
- package/apps/pwa/out/_next/static/chunks/2526-a657538869888604.js +0 -1
- package/apps/pwa/out/_next/static/chunks/2533-6f0341ff075809e9.js +0 -1
- package/apps/pwa/out/_next/static/chunks/2676.e7994c695ef0f30d.js +0 -1
- package/apps/pwa/out/_next/static/chunks/2734.3ffdf54254fb6f99.js +0 -27
- package/apps/pwa/out/_next/static/chunks/2770-23252bf3a37880b9.js +0 -1
- package/apps/pwa/out/_next/static/chunks/2969.66b8b545139d1544.js +0 -1
- package/apps/pwa/out/_next/static/chunks/3128.a9210d08800ea6a8.js +0 -1
- package/apps/pwa/out/_next/static/chunks/3212.12179fd3eee8cef1.js +0 -1
- package/apps/pwa/out/_next/static/chunks/3578.4e9f9948a9a6f2f4.js +0 -2
- package/apps/pwa/out/_next/static/chunks/3760-2909ddb9279281cd.js +0 -1
- package/apps/pwa/out/_next/static/chunks/3825.1921b5901bf33dce.js +0 -36
- package/apps/pwa/out/_next/static/chunks/3994-63eb884ed0547011.js +0 -1
- package/apps/pwa/out/_next/static/chunks/4115.5b438b99f0ae729f.js +0 -226
- package/apps/pwa/out/_next/static/chunks/4269.d8f9f34bb0fc6c43.js +0 -287
- package/apps/pwa/out/_next/static/chunks/431-4eed5bd2c5fe1719.js +0 -1
- package/apps/pwa/out/_next/static/chunks/4313.76f232c304a15bde.js +0 -1
- package/apps/pwa/out/_next/static/chunks/4324.c99ba3e83eb1b691.js +0 -1
- package/apps/pwa/out/_next/static/chunks/4599-96eff3f2a9c242c1.js +0 -1
- package/apps/pwa/out/_next/static/chunks/4725-34bed25720cc326b.js +0 -1
- package/apps/pwa/out/_next/static/chunks/4825-a9d9d4e9f5892309.js +0 -1
- package/apps/pwa/out/_next/static/chunks/4833-7934c592c5569f00.js +0 -1
- package/apps/pwa/out/_next/static/chunks/4879-68518f547a207aff.js +0 -1
- package/apps/pwa/out/_next/static/chunks/4896.f9b70285363b27b2.js +0 -24
- package/apps/pwa/out/_next/static/chunks/49aa54ab.80f39398e0ed0f30.js +0 -1
- package/apps/pwa/out/_next/static/chunks/5056.482687319b82638e.js +0 -104
- package/apps/pwa/out/_next/static/chunks/506.16b83d56a437a9ee.js +0 -1
- package/apps/pwa/out/_next/static/chunks/5260-20593b0a25d0afbc.js +0 -1
- package/apps/pwa/out/_next/static/chunks/5404.cc4e9fec26fd5925.js +0 -1
- package/apps/pwa/out/_next/static/chunks/576.485e83e3f3dec19a.js +0 -1
- package/apps/pwa/out/_next/static/chunks/5832-a6be14e663f65726.js +0 -1
- package/apps/pwa/out/_next/static/chunks/5854-56648a9fe646b9a0.js +0 -1
- package/apps/pwa/out/_next/static/chunks/5925.3b1f8b135710249b.js +0 -93
- package/apps/pwa/out/_next/static/chunks/6168.17749aa3905fa073.js +0 -74
- package/apps/pwa/out/_next/static/chunks/6416.5d50b8ec9986ca98.js +0 -1
- package/apps/pwa/out/_next/static/chunks/6758.e7fbf532953c0783.js +0 -1
- package/apps/pwa/out/_next/static/chunks/6795.0cb8a59730d99703.js +0 -149
- package/apps/pwa/out/_next/static/chunks/6971-fb5f9dc0a2cb5d2d.js +0 -1
- package/apps/pwa/out/_next/static/chunks/717.522b08685979b814.js +0 -1
- package/apps/pwa/out/_next/static/chunks/7191.e41eb8f455c7f089.js +0 -41
- package/apps/pwa/out/_next/static/chunks/7233.8e744b7513119409.js +0 -1
- package/apps/pwa/out/_next/static/chunks/7238-97c2226f80504bd8.js +0 -1
- package/apps/pwa/out/_next/static/chunks/7285.307963afcf7e7660.js +0 -24
- package/apps/pwa/out/_next/static/chunks/7299-fbe4b8c47a87614a.js +0 -1
- package/apps/pwa/out/_next/static/chunks/7314.df0d95930b0c3f50.js +0 -1
- package/apps/pwa/out/_next/static/chunks/7406.c0589fdf2ee66629.js +0 -1
- package/apps/pwa/out/_next/static/chunks/752-90e3e7daad3d8e39.js +0 -1
- package/apps/pwa/out/_next/static/chunks/7524-bcd3d9928c6842d9.js +0 -1
- package/apps/pwa/out/_next/static/chunks/7549.9a4de3bf231cfc52.js +0 -1
- package/apps/pwa/out/_next/static/chunks/765.76ae970ceb597b5b.js +0 -1
- package/apps/pwa/out/_next/static/chunks/7893-e444a1b0809cd1e4.js +0 -1
- package/apps/pwa/out/_next/static/chunks/7956-33748cabb3a05562.js +0 -1
- package/apps/pwa/out/_next/static/chunks/7c5ed21f-f286708e57cf88f7.js +0 -1
- package/apps/pwa/out/_next/static/chunks/8030-aa66b478b53dbfca.js +0 -1
- package/apps/pwa/out/_next/static/chunks/8051.c88c07dacbbc5f21.js +0 -8
- package/apps/pwa/out/_next/static/chunks/8080-40d781e7704d3671.js +0 -1
- package/apps/pwa/out/_next/static/chunks/8149.80e402d4345e8dae.js +0 -77
- package/apps/pwa/out/_next/static/chunks/8205.50a5268f4e12ba0b.js +0 -1
- package/apps/pwa/out/_next/static/chunks/8231.a128feaa6f8b6079.js +0 -1
- package/apps/pwa/out/_next/static/chunks/85.4ddb1dda2ea3ffa2.js +0 -286
- package/apps/pwa/out/_next/static/chunks/8537.26517a09e8247beb.js +0 -1
- package/apps/pwa/out/_next/static/chunks/8595-e9b7081ab773a61f.js +0 -1
- package/apps/pwa/out/_next/static/chunks/8821-30cc65a61a60951f.js +0 -1
- package/apps/pwa/out/_next/static/chunks/8905.b3385aadb7b133e6.js +0 -79
- package/apps/pwa/out/_next/static/chunks/8983.246bb3a1ac38f50f.js +0 -1
- package/apps/pwa/out/_next/static/chunks/9072.18342f5941a1f3ec.js +0 -1
- package/apps/pwa/out/_next/static/chunks/9123.9df04866b2d6e00f.js +0 -1
- package/apps/pwa/out/_next/static/chunks/9175-7d383df15a82e2be.js +0 -1
- package/apps/pwa/out/_next/static/chunks/9181-bf89c07ce5b8f599.js +0 -1
- package/apps/pwa/out/_next/static/chunks/920-429bbc4504b45f71.js +0 -1
- package/apps/pwa/out/_next/static/chunks/9207.625edf45d656151c.js +0 -1
- package/apps/pwa/out/_next/static/chunks/9378.d2575c6ffd6dd756.js +0 -94
- package/apps/pwa/out/_next/static/chunks/957.db5b5c4d32a35240.js +0 -1
- package/apps/pwa/out/_next/static/chunks/958.53a8dcf4729e6997.js +0 -64
- package/apps/pwa/out/_next/static/chunks/9647.8f0cd0898c592a29.js +0 -1
- package/apps/pwa/out/_next/static/chunks/9665-26abb02665704c2c.js +0 -1
- package/apps/pwa/out/_next/static/chunks/9703.e7d81b6faef1050a.js +0 -1
- package/apps/pwa/out/_next/static/chunks/9882-7a9164b3c2dacbe5.js +0 -1
- package/apps/pwa/out/_next/static/chunks/9998.b74e033efadecd10.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/_not-found/page-c604fb980a634d88.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/approvals/page-ec2d8a4979ca9075.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/autopilot/page-cb6add08ad3c7660.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/board/page-e2eaa321ec223fe6.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/botlab/page-5b8a09c475b5f844.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/bots/page-91a77daedfbac191.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/ceo/page-f37fc5e974bda39b.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/chat/page-91429a0b78415a94.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/consult/page-b95798b58263b910.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/control/page-763d53e175e17aa1.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/decisions/page-d55023204055b12f.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/design-check/page-89d2140d78abc810.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/editor/page-82dc069abfe27f55.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/exec/page-25d9eee7beb552c0.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/field/page-770b4594c713ee97.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/healthz/route-c604fb980a634d88.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/inside/page-ba8e0dcae4f83985.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/layout-09788e1aa9a87db6.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/live/page-3337c6a1328c2674.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/live-run/page-89acd5d68c0bc560.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/loops/page-5c13e2c76371d797.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/market/page-653a9f18642825c6.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/missions/[id]/page-fe986fe79b107546.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/morning/page-1e5da297557d2354.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/not-found-91ea9f5869a40943.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/observatory/page-7824e21b999962e2.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/ops/checklist/page-53d00a60cc75a922.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/ops/seats/page-4e931248b3f9574b.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/outputs/page-443364c9e4a23b31.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/reflection/page-25ab9c614c14129b.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/scheduler/page-dbcdcfac0a395a8a.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/sessions/page-bf1de6645089ec58.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/settings/devices/page-c4201761a5e839c9.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/settings/page-c304f469ea5d70e4.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/setup/done/page-8e5a238cf5e50c9c.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/setup/layout-c604fb980a634d88.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/setup/page-32b526069ee50b3c.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/showroom/page-84220c776608cedc.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/tasks/page-e475618cbfd5ca2b.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/term/page-ac2c1e6169cfce57.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/today/page-fccd3020af2f8806.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/trace/page-9c0d7198ff7b5a91.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/vault/page-d54b1ec9b9c6430d.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/workflows/chat-ui/page-8c4bef1791d732ca.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/workflows/page-46fcc0b0bbc6fbfe.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/workspace/page-c1c80e345fa9d6f5.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/worktrees/page-7dfda00afd172f5b.js +0 -1
- package/apps/pwa/out/_next/static/chunks/f21fd540.63ac75328926ed30.js +0 -1
- package/apps/pwa/out/_next/static/chunks/framework-77fdcc873519a6cd.js +0 -1
- package/apps/pwa/out/_next/static/chunks/main-app-d0d620d2ce235713.js +0 -1
- package/apps/pwa/out/_next/static/chunks/main-e0ef79c79337ba90.js +0 -1
- package/apps/pwa/out/_next/static/chunks/pages/_app-84b1bc71e3f9ce6a.js +0 -1
- package/apps/pwa/out/_next/static/chunks/pages/_error-2acb61f1363128cb.js +0 -1
- package/apps/pwa/out/_next/static/chunks/webpack-462ff5727ceb7824.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/{8kITumG9GAZ1LwT9POrAR → RrjXTwz-urRAbChP1bX02}/_ssgManifest.js +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2061],{2061:(e,s,c)=>{c.d(s,{createPieServices:()=>a.f});var a=c(4678);c(88931)}}]);
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[210],{25535:(t,e,n)=>{n.d(e,{CP:()=>d,Ck:()=>b,HT:()=>y,PB:()=>p,aC:()=>u,lC:()=>o,m:()=>h,tk:()=>l});var a=n(94268),r=n(73084),i=n(99462),s=n(39433),l=(0,r.K)((t,e)=>{let n=t.append("rect");if(n.attr("x",e.x),n.attr("y",e.y),n.attr("fill",e.fill),n.attr("stroke",e.stroke),n.attr("width",e.width),n.attr("height",e.height),e.name&&n.attr("name",e.name),e.rx&&n.attr("rx",e.rx),e.ry&&n.attr("ry",e.ry),void 0!==e.attrs)for(let t in e.attrs)n.attr(t,e.attrs[t]);return e.class&&n.attr("class",e.class),n},"drawRect"),o=(0,r.K)((t,e)=>{l(t,{x:e.startx,y:e.starty,width:e.stopx-e.startx,height:e.stopy-e.starty,fill:e.fill,stroke:e.stroke,class:"rect"}).lower()},"drawBackgroundRect"),h=(0,r.K)((t,e)=>{let n=e.text.replace(a.H1," "),r=t.append("text");r.attr("x",e.x),r.attr("y",e.y),r.attr("class","legend"),r.style("text-anchor",e.anchor),e.class&&r.attr("class",e.class);let i=r.append("tspan");return i.attr("x",e.x+2*e.textMargin),i.text(n),r},"drawText"),u=(0,r.K)((t,e,n,a)=>{let r=t.append("image");r.attr("x",e),r.attr("y",n);let s=(0,i.J)(a);r.attr("xlink:href",s)},"drawImage"),d=(0,r.K)((t,e,n,a)=>{let r=t.append("use");r.attr("x",e),r.attr("y",n);let s=(0,i.J)(a);r.attr("xlink:href",`#${s}`)},"drawEmbeddedImage"),p=(0,r.K)(()=>({x:0,y:0,width:100,height:100,fill:"#EDF2AE",stroke:"#666",anchor:"start",rx:0,ry:0}),"getNoteRect"),y=(0,r.K)(()=>({x:0,y:0,width:100,height:100,"text-anchor":"start",style:"#666",textMargin:0,rx:0,ry:0,tspan:!0}),"getTextObj"),b=(0,r.K)(()=>{let t=(0,s.Ltv)(".mermaidTooltip");return t.empty()&&(t=(0,s.Ltv)("body").append("div").attr("class","mermaidTooltip").style("opacity",0).style("position","absolute").style("text-align","center").style("max-width","200px").style("padding","2px").style("font-size","12px").style("background","#ffffde").style("border","1px solid #333").style("border-radius","2px").style("pointer-events","none").style("z-index","100")),t},"createTooltip")},70210:(t,e,n)=>{n.d(e,{diagram:()=>tW});var a,r=n(25535),i=n(6171);n(68960),n(84273),n(53237),n(75042);var s=n(68180),l=n(94268),o=n(1642),h=n(73084),u=n(39433),d=function(){var t=(0,h.K)(function(t,e,n,a){for(n=n||{},a=t.length;a--;n[t[a]]=e);return n},"o"),e=[1,24],n=[1,25],a=[1,26],r=[1,27],i=[1,28],s=[1,63],l=[1,64],o=[1,65],u=[1,66],d=[1,67],p=[1,68],y=[1,69],b=[1,29],_=[1,30],f=[1,31],m=[1,32],g=[1,33],x=[1,34],E=[1,35],S=[1,36],T=[1,37],k=[1,38],C=[1,39],v=[1,40],O=[1,41],w=[1,42],R=[1,43],P=[1,44],D=[1,45],N=[1,46],K=[1,47],A=[1,48],L=[1,50],I=[1,51],M=[1,52],$=[1,53],B=[1,54],j=[1,55],Y=[1,56],U=[1,57],F=[1,58],z=[1,59],X=[1,60],q=[14,42],W=[14,34,36,37,38,39,40,41,42,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],Q=[12,14,34,36,37,38,39,40,41,42,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],H=[1,82],V=[1,83],G=[1,84],Z=[1,85],J=[12,14,42],tt=[12,14,33,42],te=[12,14,33,42,76,77,79,80],tn=[12,33],ta=[34,36,37,38,39,40,41,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],tr={trace:(0,h.K)(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mermaidDoc:4,direction:5,direction_tb:6,direction_bt:7,direction_rl:8,direction_lr:9,graphConfig:10,C4_CONTEXT:11,NEWLINE:12,statements:13,EOF:14,C4_CONTAINER:15,C4_COMPONENT:16,C4_DYNAMIC:17,C4_DEPLOYMENT:18,otherStatements:19,diagramStatements:20,otherStatement:21,title:22,accDescription:23,acc_title:24,acc_title_value:25,acc_descr:26,acc_descr_value:27,acc_descr_multiline_value:28,boundaryStatement:29,boundaryStartStatement:30,boundaryStopStatement:31,boundaryStart:32,LBRACE:33,ENTERPRISE_BOUNDARY:34,attributes:35,SYSTEM_BOUNDARY:36,BOUNDARY:37,CONTAINER_BOUNDARY:38,NODE:39,NODE_L:40,NODE_R:41,RBRACE:42,diagramStatement:43,PERSON:44,PERSON_EXT:45,SYSTEM:46,SYSTEM_DB:47,SYSTEM_QUEUE:48,SYSTEM_EXT:49,SYSTEM_EXT_DB:50,SYSTEM_EXT_QUEUE:51,CONTAINER:52,CONTAINER_DB:53,CONTAINER_QUEUE:54,CONTAINER_EXT:55,CONTAINER_EXT_DB:56,CONTAINER_EXT_QUEUE:57,COMPONENT:58,COMPONENT_DB:59,COMPONENT_QUEUE:60,COMPONENT_EXT:61,COMPONENT_EXT_DB:62,COMPONENT_EXT_QUEUE:63,REL:64,BIREL:65,REL_U:66,REL_D:67,REL_L:68,REL_R:69,REL_B:70,REL_INDEX:71,UPDATE_EL_STYLE:72,UPDATE_REL_STYLE:73,UPDATE_LAYOUT_CONFIG:74,attribute:75,STR:76,STR_KEY:77,STR_VALUE:78,ATTRIBUTE:79,ATTRIBUTE_EMPTY:80,$accept:0,$end:1},terminals_:{2:"error",6:"direction_tb",7:"direction_bt",8:"direction_rl",9:"direction_lr",11:"C4_CONTEXT",12:"NEWLINE",14:"EOF",15:"C4_CONTAINER",16:"C4_COMPONENT",17:"C4_DYNAMIC",18:"C4_DEPLOYMENT",22:"title",23:"accDescription",24:"acc_title",25:"acc_title_value",26:"acc_descr",27:"acc_descr_value",28:"acc_descr_multiline_value",33:"LBRACE",34:"ENTERPRISE_BOUNDARY",36:"SYSTEM_BOUNDARY",37:"BOUNDARY",38:"CONTAINER_BOUNDARY",39:"NODE",40:"NODE_L",41:"NODE_R",42:"RBRACE",44:"PERSON",45:"PERSON_EXT",46:"SYSTEM",47:"SYSTEM_DB",48:"SYSTEM_QUEUE",49:"SYSTEM_EXT",50:"SYSTEM_EXT_DB",51:"SYSTEM_EXT_QUEUE",52:"CONTAINER",53:"CONTAINER_DB",54:"CONTAINER_QUEUE",55:"CONTAINER_EXT",56:"CONTAINER_EXT_DB",57:"CONTAINER_EXT_QUEUE",58:"COMPONENT",59:"COMPONENT_DB",60:"COMPONENT_QUEUE",61:"COMPONENT_EXT",62:"COMPONENT_EXT_DB",63:"COMPONENT_EXT_QUEUE",64:"REL",65:"BIREL",66:"REL_U",67:"REL_D",68:"REL_L",69:"REL_R",70:"REL_B",71:"REL_INDEX",72:"UPDATE_EL_STYLE",73:"UPDATE_REL_STYLE",74:"UPDATE_LAYOUT_CONFIG",76:"STR",77:"STR_KEY",78:"STR_VALUE",79:"ATTRIBUTE",80:"ATTRIBUTE_EMPTY"},productions_:[0,[3,1],[3,1],[5,1],[5,1],[5,1],[5,1],[4,1],[10,4],[10,4],[10,4],[10,4],[10,4],[13,1],[13,1],[13,2],[19,1],[19,2],[19,3],[21,1],[21,1],[21,2],[21,2],[21,1],[29,3],[30,3],[30,3],[30,4],[32,2],[32,2],[32,2],[32,2],[32,2],[32,2],[32,2],[31,1],[20,1],[20,2],[20,3],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,1],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[35,1],[35,2],[75,1],[75,2],[75,1],[75,1]],performAction:(0,h.K)(function(t,e,n,a,r,i,s){var l=i.length-1;switch(r){case 3:a.setDirection("TB");break;case 4:a.setDirection("BT");break;case 5:a.setDirection("RL");break;case 6:a.setDirection("LR");break;case 8:case 9:case 10:case 11:case 12:a.setC4Type(i[l-3]);break;case 19:a.setTitle(i[l].substring(6)),this.$=i[l].substring(6);break;case 20:a.setAccDescription(i[l].substring(15)),this.$=i[l].substring(15);break;case 21:this.$=i[l].trim(),a.setTitle(this.$);break;case 22:case 23:this.$=i[l].trim(),a.setAccDescription(this.$);break;case 28:i[l].splice(2,0,"ENTERPRISE"),a.addPersonOrSystemBoundary(...i[l]),this.$=i[l];break;case 29:i[l].splice(2,0,"SYSTEM"),a.addPersonOrSystemBoundary(...i[l]),this.$=i[l];break;case 30:a.addPersonOrSystemBoundary(...i[l]),this.$=i[l];break;case 31:i[l].splice(2,0,"CONTAINER"),a.addContainerBoundary(...i[l]),this.$=i[l];break;case 32:a.addDeploymentNode("node",...i[l]),this.$=i[l];break;case 33:a.addDeploymentNode("nodeL",...i[l]),this.$=i[l];break;case 34:a.addDeploymentNode("nodeR",...i[l]),this.$=i[l];break;case 35:a.popBoundaryParseStack();break;case 39:a.addPersonOrSystem("person",...i[l]),this.$=i[l];break;case 40:a.addPersonOrSystem("external_person",...i[l]),this.$=i[l];break;case 41:a.addPersonOrSystem("system",...i[l]),this.$=i[l];break;case 42:a.addPersonOrSystem("system_db",...i[l]),this.$=i[l];break;case 43:a.addPersonOrSystem("system_queue",...i[l]),this.$=i[l];break;case 44:a.addPersonOrSystem("external_system",...i[l]),this.$=i[l];break;case 45:a.addPersonOrSystem("external_system_db",...i[l]),this.$=i[l];break;case 46:a.addPersonOrSystem("external_system_queue",...i[l]),this.$=i[l];break;case 47:a.addContainer("container",...i[l]),this.$=i[l];break;case 48:a.addContainer("container_db",...i[l]),this.$=i[l];break;case 49:a.addContainer("container_queue",...i[l]),this.$=i[l];break;case 50:a.addContainer("external_container",...i[l]),this.$=i[l];break;case 51:a.addContainer("external_container_db",...i[l]),this.$=i[l];break;case 52:a.addContainer("external_container_queue",...i[l]),this.$=i[l];break;case 53:a.addComponent("component",...i[l]),this.$=i[l];break;case 54:a.addComponent("component_db",...i[l]),this.$=i[l];break;case 55:a.addComponent("component_queue",...i[l]),this.$=i[l];break;case 56:a.addComponent("external_component",...i[l]),this.$=i[l];break;case 57:a.addComponent("external_component_db",...i[l]),this.$=i[l];break;case 58:a.addComponent("external_component_queue",...i[l]),this.$=i[l];break;case 60:a.addRel("rel",...i[l]),this.$=i[l];break;case 61:a.addRel("birel",...i[l]),this.$=i[l];break;case 62:a.addRel("rel_u",...i[l]),this.$=i[l];break;case 63:a.addRel("rel_d",...i[l]),this.$=i[l];break;case 64:a.addRel("rel_l",...i[l]),this.$=i[l];break;case 65:a.addRel("rel_r",...i[l]),this.$=i[l];break;case 66:a.addRel("rel_b",...i[l]),this.$=i[l];break;case 67:i[l].splice(0,1),a.addRel("rel",...i[l]),this.$=i[l];break;case 68:a.updateElStyle("update_el_style",...i[l]),this.$=i[l];break;case 69:a.updateRelStyle("update_rel_style",...i[l]),this.$=i[l];break;case 70:a.updateLayoutConfig("update_layout_config",...i[l]),this.$=i[l];break;case 71:this.$=[i[l]];break;case 72:i[l].unshift(i[l-1]),this.$=i[l];break;case 73:case 75:this.$=i[l].trim();break;case 74:let o={};o[i[l-1].trim()]=i[l].trim(),this.$=o;break;case 76:this.$=""}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],7:[1,6],8:[1,7],9:[1,8],10:4,11:[1,9],15:[1,10],16:[1,11],17:[1,12],18:[1,13]},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,7]},{1:[2,3]},{1:[2,4]},{1:[2,5]},{1:[2,6]},{12:[1,14]},{12:[1,15]},{12:[1,16]},{12:[1,17]},{12:[1,18]},{13:19,19:20,20:21,21:22,22:e,23:n,24:a,26:r,28:i,29:49,30:61,32:62,34:s,36:l,37:o,38:u,39:d,40:p,41:y,43:23,44:b,45:_,46:f,47:m,48:g,49:x,50:E,51:S,52:T,53:k,54:C,55:v,56:O,57:w,58:R,59:P,60:D,61:N,62:K,63:A,64:L,65:I,66:M,67:$,68:B,69:j,70:Y,71:U,72:F,73:z,74:X},{13:70,19:20,20:21,21:22,22:e,23:n,24:a,26:r,28:i,29:49,30:61,32:62,34:s,36:l,37:o,38:u,39:d,40:p,41:y,43:23,44:b,45:_,46:f,47:m,48:g,49:x,50:E,51:S,52:T,53:k,54:C,55:v,56:O,57:w,58:R,59:P,60:D,61:N,62:K,63:A,64:L,65:I,66:M,67:$,68:B,69:j,70:Y,71:U,72:F,73:z,74:X},{13:71,19:20,20:21,21:22,22:e,23:n,24:a,26:r,28:i,29:49,30:61,32:62,34:s,36:l,37:o,38:u,39:d,40:p,41:y,43:23,44:b,45:_,46:f,47:m,48:g,49:x,50:E,51:S,52:T,53:k,54:C,55:v,56:O,57:w,58:R,59:P,60:D,61:N,62:K,63:A,64:L,65:I,66:M,67:$,68:B,69:j,70:Y,71:U,72:F,73:z,74:X},{13:72,19:20,20:21,21:22,22:e,23:n,24:a,26:r,28:i,29:49,30:61,32:62,34:s,36:l,37:o,38:u,39:d,40:p,41:y,43:23,44:b,45:_,46:f,47:m,48:g,49:x,50:E,51:S,52:T,53:k,54:C,55:v,56:O,57:w,58:R,59:P,60:D,61:N,62:K,63:A,64:L,65:I,66:M,67:$,68:B,69:j,70:Y,71:U,72:F,73:z,74:X},{13:73,19:20,20:21,21:22,22:e,23:n,24:a,26:r,28:i,29:49,30:61,32:62,34:s,36:l,37:o,38:u,39:d,40:p,41:y,43:23,44:b,45:_,46:f,47:m,48:g,49:x,50:E,51:S,52:T,53:k,54:C,55:v,56:O,57:w,58:R,59:P,60:D,61:N,62:K,63:A,64:L,65:I,66:M,67:$,68:B,69:j,70:Y,71:U,72:F,73:z,74:X},{14:[1,74]},t(q,[2,13],{43:23,29:49,30:61,32:62,20:75,34:s,36:l,37:o,38:u,39:d,40:p,41:y,44:b,45:_,46:f,47:m,48:g,49:x,50:E,51:S,52:T,53:k,54:C,55:v,56:O,57:w,58:R,59:P,60:D,61:N,62:K,63:A,64:L,65:I,66:M,67:$,68:B,69:j,70:Y,71:U,72:F,73:z,74:X}),t(q,[2,14]),t(W,[2,16],{12:[1,76]}),t(q,[2,36],{12:[1,77]}),t(Q,[2,19]),t(Q,[2,20]),{25:[1,78]},{27:[1,79]},t(Q,[2,23]),{35:80,75:81,76:H,77:V,79:G,80:Z},{35:86,75:81,76:H,77:V,79:G,80:Z},{35:87,75:81,76:H,77:V,79:G,80:Z},{35:88,75:81,76:H,77:V,79:G,80:Z},{35:89,75:81,76:H,77:V,79:G,80:Z},{35:90,75:81,76:H,77:V,79:G,80:Z},{35:91,75:81,76:H,77:V,79:G,80:Z},{35:92,75:81,76:H,77:V,79:G,80:Z},{35:93,75:81,76:H,77:V,79:G,80:Z},{35:94,75:81,76:H,77:V,79:G,80:Z},{35:95,75:81,76:H,77:V,79:G,80:Z},{35:96,75:81,76:H,77:V,79:G,80:Z},{35:97,75:81,76:H,77:V,79:G,80:Z},{35:98,75:81,76:H,77:V,79:G,80:Z},{35:99,75:81,76:H,77:V,79:G,80:Z},{35:100,75:81,76:H,77:V,79:G,80:Z},{35:101,75:81,76:H,77:V,79:G,80:Z},{35:102,75:81,76:H,77:V,79:G,80:Z},{35:103,75:81,76:H,77:V,79:G,80:Z},{35:104,75:81,76:H,77:V,79:G,80:Z},t(J,[2,59]),{35:105,75:81,76:H,77:V,79:G,80:Z},{35:106,75:81,76:H,77:V,79:G,80:Z},{35:107,75:81,76:H,77:V,79:G,80:Z},{35:108,75:81,76:H,77:V,79:G,80:Z},{35:109,75:81,76:H,77:V,79:G,80:Z},{35:110,75:81,76:H,77:V,79:G,80:Z},{35:111,75:81,76:H,77:V,79:G,80:Z},{35:112,75:81,76:H,77:V,79:G,80:Z},{35:113,75:81,76:H,77:V,79:G,80:Z},{35:114,75:81,76:H,77:V,79:G,80:Z},{35:115,75:81,76:H,77:V,79:G,80:Z},{20:116,29:49,30:61,32:62,34:s,36:l,37:o,38:u,39:d,40:p,41:y,43:23,44:b,45:_,46:f,47:m,48:g,49:x,50:E,51:S,52:T,53:k,54:C,55:v,56:O,57:w,58:R,59:P,60:D,61:N,62:K,63:A,64:L,65:I,66:M,67:$,68:B,69:j,70:Y,71:U,72:F,73:z,74:X},{12:[1,118],33:[1,117]},{35:119,75:81,76:H,77:V,79:G,80:Z},{35:120,75:81,76:H,77:V,79:G,80:Z},{35:121,75:81,76:H,77:V,79:G,80:Z},{35:122,75:81,76:H,77:V,79:G,80:Z},{35:123,75:81,76:H,77:V,79:G,80:Z},{35:124,75:81,76:H,77:V,79:G,80:Z},{35:125,75:81,76:H,77:V,79:G,80:Z},{14:[1,126]},{14:[1,127]},{14:[1,128]},{14:[1,129]},{1:[2,8]},t(q,[2,15]),t(W,[2,17],{21:22,19:130,22:e,23:n,24:a,26:r,28:i}),t(q,[2,37],{19:20,20:21,21:22,43:23,29:49,30:61,32:62,13:131,22:e,23:n,24:a,26:r,28:i,34:s,36:l,37:o,38:u,39:d,40:p,41:y,44:b,45:_,46:f,47:m,48:g,49:x,50:E,51:S,52:T,53:k,54:C,55:v,56:O,57:w,58:R,59:P,60:D,61:N,62:K,63:A,64:L,65:I,66:M,67:$,68:B,69:j,70:Y,71:U,72:F,73:z,74:X}),t(Q,[2,21]),t(Q,[2,22]),t(J,[2,39]),t(tt,[2,71],{75:81,35:132,76:H,77:V,79:G,80:Z}),t(te,[2,73]),{78:[1,133]},t(te,[2,75]),t(te,[2,76]),t(J,[2,40]),t(J,[2,41]),t(J,[2,42]),t(J,[2,43]),t(J,[2,44]),t(J,[2,45]),t(J,[2,46]),t(J,[2,47]),t(J,[2,48]),t(J,[2,49]),t(J,[2,50]),t(J,[2,51]),t(J,[2,52]),t(J,[2,53]),t(J,[2,54]),t(J,[2,55]),t(J,[2,56]),t(J,[2,57]),t(J,[2,58]),t(J,[2,60]),t(J,[2,61]),t(J,[2,62]),t(J,[2,63]),t(J,[2,64]),t(J,[2,65]),t(J,[2,66]),t(J,[2,67]),t(J,[2,68]),t(J,[2,69]),t(J,[2,70]),{31:134,42:[1,135]},{12:[1,136]},{33:[1,137]},t(tn,[2,28]),t(tn,[2,29]),t(tn,[2,30]),t(tn,[2,31]),t(tn,[2,32]),t(tn,[2,33]),t(tn,[2,34]),{1:[2,9]},{1:[2,10]},{1:[2,11]},{1:[2,12]},t(W,[2,18]),t(q,[2,38]),t(tt,[2,72]),t(te,[2,74]),t(J,[2,24]),t(J,[2,35]),t(ta,[2,25]),t(ta,[2,26],{12:[1,138]}),t(ta,[2,27])],defaultActions:{2:[2,1],3:[2,2],4:[2,7],5:[2,3],6:[2,4],7:[2,5],8:[2,6],74:[2,8],126:[2,9],127:[2,10],128:[2,11],129:[2,12]},parseError:(0,h.K)(function(t,e){if(e.recoverable)this.trace(t);else{var n=Error(t);throw n.hash=e,n}},"parseError"),parse:(0,h.K)(function(t){var e=this,n=[0],a=[],r=[null],i=[],s=this.table,l="",o=0,u=0,d=0,p=i.slice.call(arguments,1),y=Object.create(this.lexer),b={};for(var _ in this.yy)Object.prototype.hasOwnProperty.call(this.yy,_)&&(b[_]=this.yy[_]);y.setInput(t,b),b.lexer=y,b.parser=this,void 0===y.yylloc&&(y.yylloc={});var f=y.yylloc;i.push(f);var m=y.options&&y.options.ranges;function g(){var t;return"number"!=typeof(t=a.pop()||y.lex()||1)&&(t instanceof Array&&(t=(a=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof b.parseError?this.parseError=b.parseError:this.parseError=Object.getPrototypeOf(this).parseError,(0,h.K)(function(t){n.length=n.length-2*t,r.length=r.length-t,i.length=i.length-t},"popStack"),(0,h.K)(g,"lex");for(var x,E,S,T,k,C,v,O,w,R={};;){if(S=n[n.length-1],this.defaultActions[S]?T=this.defaultActions[S]:(null==x&&(x=g()),T=s[S]&&s[S][x]),void 0===T||!T.length||!T[0]){var P="";for(C in w=[],s[S])this.terminals_[C]&&C>2&&w.push("'"+this.terminals_[C]+"'");P=y.showPosition?"Parse error on line "+(o+1)+":\n"+y.showPosition()+"\nExpecting "+w.join(", ")+", got '"+(this.terminals_[x]||x)+"'":"Parse error on line "+(o+1)+": Unexpected "+(1==x?"end of input":"'"+(this.terminals_[x]||x)+"'"),this.parseError(P,{text:y.match,token:this.terminals_[x]||x,line:y.yylineno,loc:f,expected:w})}if(T[0]instanceof Array&&T.length>1)throw Error("Parse Error: multiple actions possible at state: "+S+", token: "+x);switch(T[0]){case 1:n.push(x),r.push(y.yytext),i.push(y.yylloc),n.push(T[1]),x=null,E?(x=E,E=null):(u=y.yyleng,l=y.yytext,o=y.yylineno,f=y.yylloc,d>0&&d--);break;case 2:if(v=this.productions_[T[1]][1],R.$=r[r.length-v],R._$={first_line:i[i.length-(v||1)].first_line,last_line:i[i.length-1].last_line,first_column:i[i.length-(v||1)].first_column,last_column:i[i.length-1].last_column},m&&(R._$.range=[i[i.length-(v||1)].range[0],i[i.length-1].range[1]]),void 0!==(k=this.performAction.apply(R,[l,u,o,b,T[1],r,i].concat(p))))return k;v&&(n=n.slice(0,-1*v*2),r=r.slice(0,-1*v),i=i.slice(0,-1*v)),n.push(this.productions_[T[1]][0]),r.push(R.$),i.push(R._$),O=s[n[n.length-2]][n[n.length-1]],n.push(O);break;case 3:return!0}}return!0},"parse")};function ti(){this.yy={}}return tr.lexer={EOF:1,parseError:(0,h.K)(function(t,e){if(this.yy.parser)this.yy.parser.parseError(t,e);else throw Error(t)},"parseError"),setInput:(0,h.K)(function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:(0,h.K)(function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},"input"),unput:(0,h.K)(function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var a=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var r=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===a.length?this.yylloc.first_column:0)+a[a.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[r[0],r[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},"unput"),more:(0,h.K)(function(){return this._more=!0,this},"more"),reject:(0,h.K)(function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"reject"),less:(0,h.K)(function(t){this.unput(this.match.slice(t))},"less"),pastInput:(0,h.K)(function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:(0,h.K)(function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:(0,h.K)(function(){var t=this.pastInput(),e=Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},"showPosition"),test_match:(0,h.K)(function(t,e){var n,a,r;if(this.options.backtrack_lexer&&(r={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(r.yylloc.range=this.yylloc.range.slice(0))),(a=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=a.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:a?a[a.length-1].length-a[a.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack)for(var i in r)this[i]=r[i];return!1},"test_match"),next:(0,h.K)(function(){if(this.done)return this.EOF;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var t,e,n,a,r=this._currentRules(),i=0;i<r.length;i++)if((n=this._input.match(this.rules[r[i]]))&&(!e||n[0].length>e[0].length)){if(e=n,a=i,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,r[i])))return t;if(!this._backtrack)return!1;e=!1;continue}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,r[a]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:(0,h.K)(function(){var t=this.next();return t||this.lex()},"lex"),begin:(0,h.K)(function(t){this.conditionStack.push(t)},"begin"),popState:(0,h.K)(function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:(0,h.K)(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:(0,h.K)(function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},"topState"),pushState:(0,h.K)(function(t){this.begin(t)},"pushState"),stateStackSize:(0,h.K)(function(){return this.conditionStack.length},"stateStackSize"),options:{},performAction:(0,h.K)(function(t,e,n,a){switch(n){case 0:return 6;case 1:return 7;case 2:return 8;case 3:return 9;case 4:return 22;case 5:return 23;case 6:return this.begin("acc_title"),24;case 7:return this.popState(),"acc_title_value";case 8:return this.begin("acc_descr"),26;case 9:return this.popState(),"acc_descr_value";case 10:this.begin("acc_descr_multiline");break;case 11:case 73:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:case 16:case 70:break;case 14:c;break;case 15:return 12;case 17:return 11;case 18:return 15;case 19:return 16;case 20:return 17;case 21:return 18;case 22:return this.begin("person_ext"),45;case 23:return this.begin("person"),44;case 24:return this.begin("system_ext_queue"),51;case 25:return this.begin("system_ext_db"),50;case 26:return this.begin("system_ext"),49;case 27:return this.begin("system_queue"),48;case 28:return this.begin("system_db"),47;case 29:return this.begin("system"),46;case 30:return this.begin("boundary"),37;case 31:return this.begin("enterprise_boundary"),34;case 32:return this.begin("system_boundary"),36;case 33:return this.begin("container_ext_queue"),57;case 34:return this.begin("container_ext_db"),56;case 35:return this.begin("container_ext"),55;case 36:return this.begin("container_queue"),54;case 37:return this.begin("container_db"),53;case 38:return this.begin("container"),52;case 39:return this.begin("container_boundary"),38;case 40:return this.begin("component_ext_queue"),63;case 41:return this.begin("component_ext_db"),62;case 42:return this.begin("component_ext"),61;case 43:return this.begin("component_queue"),60;case 44:return this.begin("component_db"),59;case 45:return this.begin("component"),58;case 46:case 47:return this.begin("node"),39;case 48:return this.begin("node_l"),40;case 49:return this.begin("node_r"),41;case 50:return this.begin("rel"),64;case 51:return this.begin("birel"),65;case 52:case 53:return this.begin("rel_u"),66;case 54:case 55:return this.begin("rel_d"),67;case 56:case 57:return this.begin("rel_l"),68;case 58:case 59:return this.begin("rel_r"),69;case 60:return this.begin("rel_b"),70;case 61:return this.begin("rel_index"),71;case 62:return this.begin("update_el_style"),72;case 63:return this.begin("update_rel_style"),73;case 64:return this.begin("update_layout_config"),74;case 65:return"EOF_IN_STRUCT";case 66:return this.begin("attribute"),"ATTRIBUTE_EMPTY";case 67:this.begin("attribute");break;case 68:case 79:this.popState(),this.popState();break;case 69:case 71:return 80;case 72:this.begin("string");break;case 74:case 80:return"STR";case 75:this.begin("string_kv");break;case 76:return this.begin("string_kv_key"),"STR_KEY";case 77:this.popState(),this.begin("string_kv_value");break;case 78:return"STR_VALUE";case 81:return"LBRACE";case 82:return"RBRACE";case 83:return"SPACE";case 84:return"EOL";case 85:return 14}},"anonymous"),rules:[/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:title\s[^#\n;]+)/,/^(?:accDescription\s[^#\n;]+)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/,/^(?:%%[^\n]*(\r?\n)*)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:C4Context\b)/,/^(?:C4Container\b)/,/^(?:C4Component\b)/,/^(?:C4Dynamic\b)/,/^(?:C4Deployment\b)/,/^(?:Person_Ext\b)/,/^(?:Person\b)/,/^(?:SystemQueue_Ext\b)/,/^(?:SystemDb_Ext\b)/,/^(?:System_Ext\b)/,/^(?:SystemQueue\b)/,/^(?:SystemDb\b)/,/^(?:System\b)/,/^(?:Boundary\b)/,/^(?:Enterprise_Boundary\b)/,/^(?:System_Boundary\b)/,/^(?:ContainerQueue_Ext\b)/,/^(?:ContainerDb_Ext\b)/,/^(?:Container_Ext\b)/,/^(?:ContainerQueue\b)/,/^(?:ContainerDb\b)/,/^(?:Container\b)/,/^(?:Container_Boundary\b)/,/^(?:ComponentQueue_Ext\b)/,/^(?:ComponentDb_Ext\b)/,/^(?:Component_Ext\b)/,/^(?:ComponentQueue\b)/,/^(?:ComponentDb\b)/,/^(?:Component\b)/,/^(?:Deployment_Node\b)/,/^(?:Node\b)/,/^(?:Node_L\b)/,/^(?:Node_R\b)/,/^(?:Rel\b)/,/^(?:BiRel\b)/,/^(?:Rel_Up\b)/,/^(?:Rel_U\b)/,/^(?:Rel_Down\b)/,/^(?:Rel_D\b)/,/^(?:Rel_Left\b)/,/^(?:Rel_L\b)/,/^(?:Rel_Right\b)/,/^(?:Rel_R\b)/,/^(?:Rel_Back\b)/,/^(?:RelIndex\b)/,/^(?:UpdateElementStyle\b)/,/^(?:UpdateRelStyle\b)/,/^(?:UpdateLayoutConfig\b)/,/^(?:$)/,/^(?:[(][ ]*[,])/,/^(?:[(])/,/^(?:[)])/,/^(?:,,)/,/^(?:,)/,/^(?:[ ]*["]["])/,/^(?:[ ]*["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:[ ]*[\$])/,/^(?:[^=]*)/,/^(?:[=][ ]*["])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:[^,]+)/,/^(?:\{)/,/^(?:\})/,/^(?:[\s]+)/,/^(?:[\n\r]+)/,/^(?:$)/],conditions:{acc_descr_multiline:{rules:[11,12],inclusive:!1},acc_descr:{rules:[9],inclusive:!1},acc_title:{rules:[7],inclusive:!1},string_kv_value:{rules:[78,79],inclusive:!1},string_kv_key:{rules:[77],inclusive:!1},string_kv:{rules:[76],inclusive:!1},string:{rules:[73,74],inclusive:!1},attribute:{rules:[68,69,70,71,72,75,80],inclusive:!1},update_layout_config:{rules:[65,66,67,68],inclusive:!1},update_rel_style:{rules:[65,66,67,68],inclusive:!1},update_el_style:{rules:[65,66,67,68],inclusive:!1},rel_b:{rules:[65,66,67,68],inclusive:!1},rel_r:{rules:[65,66,67,68],inclusive:!1},rel_l:{rules:[65,66,67,68],inclusive:!1},rel_d:{rules:[65,66,67,68],inclusive:!1},rel_u:{rules:[65,66,67,68],inclusive:!1},rel_bi:{rules:[],inclusive:!1},rel:{rules:[65,66,67,68],inclusive:!1},node_r:{rules:[65,66,67,68],inclusive:!1},node_l:{rules:[65,66,67,68],inclusive:!1},node:{rules:[65,66,67,68],inclusive:!1},index:{rules:[],inclusive:!1},rel_index:{rules:[65,66,67,68],inclusive:!1},component_ext_queue:{rules:[65,66,67,68],inclusive:!1},component_ext_db:{rules:[65,66,67,68],inclusive:!1},component_ext:{rules:[65,66,67,68],inclusive:!1},component_queue:{rules:[65,66,67,68],inclusive:!1},component_db:{rules:[65,66,67,68],inclusive:!1},component:{rules:[65,66,67,68],inclusive:!1},container_boundary:{rules:[65,66,67,68],inclusive:!1},container_ext_queue:{rules:[65,66,67,68],inclusive:!1},container_ext_db:{rules:[65,66,67,68],inclusive:!1},container_ext:{rules:[65,66,67,68],inclusive:!1},container_queue:{rules:[65,66,67,68],inclusive:!1},container_db:{rules:[65,66,67,68],inclusive:!1},container:{rules:[65,66,67,68],inclusive:!1},birel:{rules:[65,66,67,68],inclusive:!1},system_boundary:{rules:[65,66,67,68],inclusive:!1},enterprise_boundary:{rules:[65,66,67,68],inclusive:!1},boundary:{rules:[65,66,67,68],inclusive:!1},system_ext_queue:{rules:[65,66,67,68],inclusive:!1},system_ext_db:{rules:[65,66,67,68],inclusive:!1},system_ext:{rules:[65,66,67,68],inclusive:!1},system_queue:{rules:[65,66,67,68],inclusive:!1},system_db:{rules:[65,66,67,68],inclusive:!1},system:{rules:[65,66,67,68],inclusive:!1},person_ext:{rules:[65,66,67,68],inclusive:!1},person:{rules:[65,66,67,68],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,8,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,81,82,83,84,85],inclusive:!0}}},(0,h.K)(ti,"Parser"),ti.prototype=tr,tr.Parser=ti,new ti}();d.parser=d;var p=(0,h.K)(t=>(0,l.D7)()[t],"getRequiredConfig"),y=new Set(["label","descr","techn","type"]),b=(0,h.K)((t,e)=>{for(let[n,a]of Object.entries(e))if(void 0!==a)if("object"==typeof a){let[e,n]=Object.entries(a)[0];t[e]=y.has(e)?{text:n}:n}else t[n]=a},"assignAttributes"),_=(0,h.K)(()=>({alias:"global",label:{text:"global"},type:{text:"global"},tags:null,link:null,parentBoundary:""}),"createGlobalBoundary"),f=[],m=[""],g="global",x="",E=[_()],S=[],T="",k=!1,C=4,v=2,O=(0,h.K)(function(){return a},"getC4Type"),w=(0,h.K)(function(t){a=(0,l.jZ)(t,(0,l.D7)())},"setC4Type"),R=(0,h.K)(function(t,e,n,a,r,i,s,l,o){if(null==t||null==e||null==n||null==a)return;let h={},u=S.find(t=>t.from===e&&t.to===n);if(u?h=u:S.push(h),h.type=t,h.from=e,h.to=n,h.label={text:a},null==r)h.techn??={text:""};else if("object"==typeof r){let[t,e]=Object.entries(r)[0];h[t]=y.has(t)?{text:e}:e}else h.techn={text:r};if(null==i)h.descr??={text:""};else if("object"==typeof i){let[t,e]=Object.entries(i)[0];h[t]=y.has(t)?{text:e}:e}else h.descr={text:i};b(h,{sprite:s,tags:l,link:o}),h.wrap=G()},"addRel"),P=(0,h.K)(function(t,e,n,a,r,i,s){if(null===e||null===n)return;let l={},o=f.find(t=>t.alias===e);if(o&&e===o.alias?l=o:(l.alias=e,f.push(l)),null==n?l.label={text:""}:l.label={text:n},null==a)l.descr??={text:""};else if("object"==typeof a){let[t,e]=Object.entries(a)[0];l[t]=y.has(t)?{text:e}:e}else l.descr={text:a};b(l,{sprite:r,tags:i,link:s}),l.typeC4Shape={text:t},l.parentBoundary=g,l.wrap=G()},"addPersonOrSystem"),D=(0,h.K)(function(t,e,n,a,r,i,s,l){if(null===e||null===n)return;let o={},h=f.find(t=>t.alias===e);if(h&&e===h.alias?o=h:(o.alias=e,f.push(o)),null==n?o.label={text:""}:o.label={text:n},null==a)o.techn??={text:""};else if("object"==typeof a){let[t,e]=Object.entries(a)[0];o[t]=y.has(t)?{text:e}:e}else o.techn={text:a};if(null==r)o.descr??={text:""};else if("object"==typeof r){let[t,e]=Object.entries(r)[0];o[t]=y.has(t)?{text:e}:e}else o.descr={text:r};b(o,{sprite:i,tags:s,link:l}),o.wrap=G(),o.typeC4Shape={text:t},o.parentBoundary=g},"addContainer"),N=(0,h.K)(function(t,e,n,a,r,i,s,l){if(null===e||null===n)return;let o={},h=f.find(t=>t.alias===e);if(h&&e===h.alias?o=h:(o.alias=e,f.push(o)),null==n?o.label={text:""}:o.label={text:n},null==a)o.techn??={text:""};else if("object"==typeof a){let[t,e]=Object.entries(a)[0];o[t]=y.has(t)?{text:e}:e}else o.techn={text:a};if(null==r)o.descr??={text:""};else if("object"==typeof r){let[t,e]=Object.entries(r)[0];o[t]=y.has(t)?{text:e}:e}else o.descr={text:r};b(o,{sprite:i,tags:s,link:l}),o.wrap=G(),o.typeC4Shape={text:t},o.parentBoundary=g},"addComponent"),K=(0,h.K)(function(t,e,n,a,r){if(null===t||null===e)return;let i={},s=E.find(e=>e.alias===t);if(s&&t===s.alias?i=s:(i.alias=t,E.push(i)),null==e?i.label={text:""}:i.label={text:e},null==n)i.type={text:"system"};else if("object"==typeof n){let[t,e]=Object.entries(n)[0];i[t]=y.has(t)?{text:e}:e}else i.type={text:n};b(i,{tags:a,link:r}),i.parentBoundary=g,i.wrap=G(),x=g,g=t,m.push(x)},"addPersonOrSystemBoundary"),A=(0,h.K)(function(t,e,n,a,r){if(null===t||null===e)return;let i={},s=E.find(e=>e.alias===t);if(s&&t===s.alias?i=s:(i.alias=t,E.push(i)),null==e?i.label={text:""}:i.label={text:e},null==n)i.type={text:"container"};else if("object"==typeof n){let[t,e]=Object.entries(n)[0];i[t]=y.has(t)?{text:e}:e}else i.type={text:n};b(i,{tags:a,link:r}),i.parentBoundary=g,i.wrap=G(),x=g,g=t,m.push(x)},"addContainerBoundary"),L=(0,h.K)(function(t,e,n,a,r,i,s,l){if(null===e||null===n)return;let o={},h=E.find(t=>t.alias===e);if(h&&e===h.alias?o=h:(o.alias=e,E.push(o)),null==n?o.label={text:""}:o.label={text:n},null==a)o.type={text:"node"};else if("object"==typeof a){let[t,e]=Object.entries(a)[0];o[t]=y.has(t)?{text:e}:e}else o.type={text:a};if(null==r)o.descr??={text:""};else if("object"==typeof r){let[t,e]=Object.entries(r)[0];o[t]=y.has(t)?{text:e}:e}else o.descr={text:r};b(o,{tags:s,link:l}),o.nodeType=t,o.parentBoundary=g,o.wrap=G(),x=g,g=e,m.push(x)},"addDeploymentNode"),I=(0,h.K)(function(){g=x,m.pop(),x=m.pop(),m.push(x)},"popBoundaryParseStack"),M=(0,h.K)(function(t,e,n,a,r,i,s,l,o,h,u){let d=f.find(t=>t.alias===e);if(void 0!==d||void 0!==(d=E.find(t=>t.alias===e))){if(null!=n)if("object"==typeof n){let[t,e]=Object.entries(n)[0];d[t]=e}else d.bgColor=n;if(null!=a)if("object"==typeof a){let[t,e]=Object.entries(a)[0];d[t]=e}else d.fontColor=a;if(null!=r)if("object"==typeof r){let[t,e]=Object.entries(r)[0];d[t]=e}else d.borderColor=r;if(null!=i)if("object"==typeof i){let[t,e]=Object.entries(i)[0];d[t]=e}else d.shadowing=i;if(null!=s)if("object"==typeof s){let[t,e]=Object.entries(s)[0];d[t]=e}else d.shape=s;if(null!=l)if("object"==typeof l){let[t,e]=Object.entries(l)[0];d[t]=e}else d.sprite=l;if(null!=o)if("object"==typeof o){let[t,e]=Object.entries(o)[0];d[t]=e}else d.techn=o;if(null!=h)if("object"==typeof h){let[t,e]=Object.entries(h)[0];d[t]=e}else d.legendText=h;if(null!=u)if("object"==typeof u){let[t,e]=Object.entries(u)[0];d[t]=e}else d.legendSprite=u}},"updateElStyle"),$=(0,h.K)(function(t,e,n,a,r,i,s){let l=S.find(t=>t.from===e&&t.to===n);if(void 0!==l){if(null!=a)if("object"==typeof a){let[t,e]=Object.entries(a)[0];l[t]=e}else l.textColor=a;if(null!=r)if("object"==typeof r){let[t,e]=Object.entries(r)[0];l[t]=e}else l.lineColor=r;if(null!=i)if("object"==typeof i){let[t,e]=Object.entries(i)[0];l[t]=parseInt(e)}else l.offsetX=parseInt(i);if(null!=s)if("object"==typeof s){let[t,e]=Object.entries(s)[0];l[t]=parseInt(e)}else l.offsetY=parseInt(s)}},"updateRelStyle"),B=(0,h.K)(function(t,e,n){let a=C,r=v;a="object"==typeof e?parseInt(Object.values(e)[0]):parseInt(e),r="object"==typeof n?parseInt(Object.values(n)[0]):parseInt(n),a>=1&&(C=a),r>=1&&(v=r)},"updateLayoutConfig"),j=(0,h.K)(function(){return C},"getC4ShapeInRow"),Y=(0,h.K)(function(){return v},"getC4BoundaryInRow"),U=(0,h.K)(function(){return g},"getCurrentBoundaryParse"),F=(0,h.K)(function(){return x},"getParentBoundaryParse"),z=(0,h.K)(function(t){return null==t?f:f.filter(e=>e.parentBoundary===t)},"getC4ShapeArray"),X=(0,h.K)(function(t){return f.find(e=>e.alias===t)??E.find(e=>e.alias===t)},"getC4Shape"),q=(0,h.K)(function(t){return Object.keys(z(t))},"getC4ShapeKeys"),W=(0,h.K)(function(t){return null==t?E:E.filter(e=>e.parentBoundary===t)},"getBoundaries"),Q=(0,h.K)(function(){return S},"getRels"),H=(0,h.K)(function(){return T},"getTitle"),V=(0,h.K)(function(t){k=t},"setWrap"),G=(0,h.K)(function(){return k},"autoWrap"),Z=(0,h.K)(function(){f=[],E=[_()],x="",g="global",m=[""],S=[],m=[""],T="",k=!1,C=4,v=2},"clear"),J=(0,h.K)(function(t){T=(0,l.jZ)(t,(0,l.D7)())},"setTitle"),tt={addPersonOrSystem:P,addPersonOrSystemBoundary:K,addContainer:D,addContainerBoundary:A,addComponent:N,addDeploymentNode:L,popBoundaryParseStack:I,addRel:R,updateElStyle:M,updateRelStyle:$,updateLayoutConfig:B,autoWrap:G,setWrap:V,getC4ShapeArray:z,getC4Shape:X,getC4ShapeKeys:q,getBoundaries:W,getBoundarys:W,getCurrentBoundaryParse:U,getParentBoundaryParse:F,getRels:Q,getTitle:H,getC4Type:O,getC4ShapeInRow:j,getC4BoundaryInRow:Y,setAccTitle:l.SV,getAccTitle:l.iN,getAccDescription:l.m7,setAccDescription:l.EI,getConfig:(0,h.K)(()=>p("c4"),"getConfig"),clear:Z,LINETYPE:{SOLID:0,DOTTED:1,NOTE:2,SOLID_CROSS:3,DOTTED_CROSS:4,SOLID_OPEN:5,DOTTED_OPEN:6,LOOP_START:10,LOOP_END:11,ALT_START:12,ALT_ELSE:13,ALT_END:14,OPT_START:15,OPT_END:16,ACTIVE_START:17,ACTIVE_END:18,PAR_START:19,PAR_AND:20,PAR_END:21,RECT_START:22,RECT_END:23,SOLID_POINT:24,DOTTED_POINT:25},ARROWTYPE:{FILLED:0,OPEN:1},PLACEMENT:{LEFTOF:0,RIGHTOF:1,OVER:2},setTitle:J,setC4Type:w},te=(0,h.K)(function(t,e){return(0,r.tk)(t,e)},"drawRect"),tn=(0,h.K)((t,e,n,a)=>{let r=t.append("g"),i=0;for(let t of e){let e=t.textColor?t.textColor:"#444444",s=t.lineColor?t.lineColor:"#444444",l=t.offsetX?parseInt(String(t.offsetX)):0,o=t.offsetY?parseInt(String(t.offsetY)):0;if(0===i){let e=r.append("line");e.attr("x1",t.startPoint.x),e.attr("y1",t.startPoint.y),e.attr("x2",t.endPoint.x),e.attr("y2",t.endPoint.y),e.attr("stroke-width","1"),e.attr("stroke",s),e.style("fill","none"),"rel_b"!==t.type&&e.attr("marker-end","url(#"+a+"-arrowhead)"),("birel"===t.type||"rel_b"===t.type)&&e.attr("marker-start","url(#"+a+"-arrowend)"),i=-1}else{let e=r.append("path");e.attr("fill","none").attr("stroke-width","1").attr("stroke",s).attr("d","Mstartx,starty Qcontrolx,controly stopx,stopy ".replaceAll("startx",t.startPoint.x).replaceAll("starty",t.startPoint.y).replaceAll("controlx",t.startPoint.x+(t.endPoint.x-t.startPoint.x)/2-(t.endPoint.x-t.startPoint.x)/4).replaceAll("controly",t.startPoint.y+(t.endPoint.y-t.startPoint.y)/2).replaceAll("stopx",t.endPoint.x).replaceAll("stopy",t.endPoint.y)),"rel_b"!==t.type&&e.attr("marker-end","url(#"+a+"-arrowhead)"),("birel"===t.type||"rel_b"===t.type)&&e.attr("marker-start","url(#"+a+"-arrowend)")}let h=t.label.width,u=n.messageFont();tu(n)(t.label.text,r,Math.min(t.startPoint.x,t.endPoint.x)+Math.abs(t.endPoint.x-t.startPoint.x)/2+l,Math.min(t.startPoint.y,t.endPoint.y)+Math.abs(t.endPoint.y-t.startPoint.y)/2+o,h,t.label.height,{fill:e},u),t.techn&&""!==t.techn.text&&(u=n.messageFont(),tu(n)("["+t.techn.text+"]",r,Math.min(t.startPoint.x,t.endPoint.x)+Math.abs(t.endPoint.x-t.startPoint.x)/2+l,Math.min(t.startPoint.y,t.endPoint.y)+Math.abs(t.endPoint.y-t.startPoint.y)/2+n.messageFontSize+5+o,Math.max(h,t.techn.width),t.techn.height,{fill:e,"font-style":"italic"},u))}},"drawRels"),ta=(0,h.K)(function(t,e,n){let a=t.append("g"),r=e.bgColor?e.bgColor:"none",i=e.borderColor?e.borderColor:"#444444",s=e.fontColor?e.fontColor:"black",l={"stroke-width":1,"stroke-dasharray":"7.0,7.0"};e.nodeType&&(l={"stroke-width":1}),te(a,{x:e.x,y:e.y,fill:r,stroke:i,width:e.width,height:e.height,rx:2.5,ry:2.5,attrs:l});let o=n.boundaryFont();o.fontWeight="bold",o.fontSize=o.fontSize+2,o.fontColor=s,tu(n)(e.label.text,a,e.x,e.y+e.label.Y,e.width,e.height,{fill:"#444444"},o),e.type&&""!==e.type.text&&((o=n.boundaryFont()).fontColor=s,tu(n)(e.type.text,a,e.x,e.y+e.type.Y,e.width,e.height,{fill:"#444444"},o)),e.descr&&""!==e.descr.text&&((o=n.boundaryFont()).fontSize=o.fontSize-2,o.fontColor=s,tu(n)(e.descr.text,a,e.x,e.y+e.descr.Y,e.width,e.height,{fill:"#444444"},o))},"drawBoundary"),tr=(0,h.K)(function(t,e){t.append("defs").append("symbol").attr("id",e+"-database").attr("fill-rule","evenodd").attr("clip-rule","evenodd").append("path").attr("transform","scale(.5)").attr("d","M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z")},"insertDatabaseIcon"),ti=(0,h.K)(function(t,e){t.append("defs").append("symbol").attr("id",e+"-computer").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z")},"insertComputerIcon"),ts=(0,h.K)(function(t,e){t.append("defs").append("symbol").attr("id",e+"-clock").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z")},"insertClockIcon"),tl=(0,h.K)(function(t,e){t.append("defs").append("marker").attr("id",e+"-arrowhead").attr("refX",9).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z")},"insertArrowHead"),to=(0,h.K)(function(t,e){t.append("defs").append("marker").attr("id",e+"-arrowend").attr("refX",1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 10 0 L 0 5 L 10 10 z")},"insertArrowEnd"),tc=(0,h.K)(function(t,e){t.append("defs").append("marker").attr("id",e+"-filled-head").attr("refX",18).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},"insertArrowFilledHead"),th=(0,h.K)(function(t,e){let n=t.append("defs").append("marker").attr("id",e+"-crosshead").attr("markerWidth",15).attr("markerHeight",8).attr("orient","auto").attr("refX",16).attr("refY",4);n.append("path").attr("fill","black").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1px").attr("d","M 9,2 V 6 L16,4 Z"),n.append("path").attr("fill","none").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1px").attr("d","M 0,1 L 6,7 M 6,1 L 0,7")},"insertArrowCrossHead"),tu=function(){function t(t,e,n,r,i,s,l){a(e.append("text").attr("x",n+i/2).attr("y",r+s/2+5).style("text-anchor","middle").text(t),l)}function e(t,e,n,r,i,s,o,h){let{fontSize:u,fontFamily:d,fontWeight:p}=h,y=t.split(l.Y2.lineBreakRegex);for(let t=0;t<y.length;t++){let s=t*u-u*(y.length-1)/2,l=e.append("text").attr("x",n+i/2).attr("y",r).style("text-anchor","middle").attr("dominant-baseline","middle").style("font-size",u).style("font-weight",p).style("font-family",d);l.append("tspan").attr("dy",s).text(y[t]).attr("alignment-baseline","mathematical"),a(l,o)}}function n(t,n,r,i,s,l,o,h){let u=n.append("switch"),d=u.append("foreignObject").attr("x",r).attr("y",i).attr("width",s).attr("height",l).append("xhtml:div").style("display","table").style("height","100%").style("width","100%");d.append("div").style("display","table-cell").style("text-align","center").style("vertical-align","middle").text(t),e(t,u,r,i,s,l,o,h),a(d,o)}function a(t,e){for(let n in e)e.hasOwnProperty(n)&&t.attr(n,e[n])}return(0,h.K)(t,"byText"),(0,h.K)(e,"byTspan"),(0,h.K)(n,"byFo"),(0,h.K)(a,"_setTextAttrs"),function(a){return"fo"===a.textPlacement?n:"old"===a.textPlacement?t:e}}(),td={drawBoundary:ta,drawRels:tn,insertArrowHead:tl,insertArrowEnd:to,insertArrowFilledHead:tc,insertArrowCrossHead:th,insertDatabaseIcon:tr,insertComputerIcon:ti,insertClockIcon:ts},tp=(0,h.K)((t,e)=>{if("sandbox"===e){let e=(0,u.Ltv)("#i"+t),n=e.node()?.contentDocument;if(!n)throw Error(`Sandbox iframe #i${t} is missing its content document`);return{root:(0,u.Ltv)(n.body),doc:n}}return{root:(0,u.Ltv)("body"),doc:document}},"getDiagramRoot"),ty=new Set(["system_queue","external_system_queue","container_queue","external_container_queue","component_queue","external_component_queue"]),tb=new Set(["system_db","external_system_db","container_db","external_container_db","component_db","external_component_db"]),t_={person:"person",box:"rounded",rounded:"rounded",cylinder:"cylinder",database:"cylinder",db:"cylinder",queue:"h-cyl",pipe:"h-cyl",component:"fr-rect"},tf=(0,h.K)(t=>t?t_[t.toLowerCase()]:void 0,"keywordShape"),tm=(0,h.K)(t=>{let e=tf(t.shape)??tf(t.sprite);if(e)return e;if(t.tags)for(let e of t.tags.split(",")){let t=tf(e.trim());if(t)return t}let n=t.typeC4Shape.text;return"person"===n||"external_person"===n?"person":tb.has(n)?"cylinder":ty.has(n)?"h-cyl":"rounded"},"resolveNodeShape"),tg={person:"Person",system:"Software System",container:"Container",component:"Component"},tx=(0,h.K)(t=>{let e=t.replace(/^external_/,"").replace(/_(db|queue)$/,"");return tg[e]??e.replace(/_/g," ")},"stereotypeLabel"),tE=(0,h.K)(t=>t.startsWith("external_"),"isExternal"),tS=(0,h.K)(t=>{let e=tx(t.typeC4Shape.text);return t.techn?.text?`[${e}: ${t.techn.text}]`:`[${e}]`},"stereotypeText"),tT=["person","system","system_db","system_queue","container","container_db","container_queue","component","component_db","component_queue"].flatMap(t=>[t,`external_${t}`]),tk=new Set(tT),tC=(0,h.K)(t=>tk.has(t),"isC4ElementType"),tv=(0,h.K)((t,e)=>{let n=t.typeC4Shape.text,a=t.bgColor??(tC(n)&&e[`${n}_bg_color`]),r=t.borderColor??(tC(n)&&e[`${n}_border_color`]),i=[];return a&&i.push(`fill:${a}`),r&&i.push(`stroke:${r}`),i.push(`color:${t.fontColor??"#FFFFFF"}`),i},"elementCssStyles"),tO=(0,h.K)((t,e,n,a,r)=>{let i=t.typeC4Shape.text,s=["c4-shape",`c4-${i}`];tE(i)&&s.push("c4-external");let l=tm(t),o=tv(t,e);return("rounded"===l||"fr-rect"===l)&&o.push("rx:12px","ry:12px"),{id:t.alias,label:t.label.text,stereotype:tS(t),description:t.descr?.text?[t.descr.text]:void 0,labelType:"string",isGroup:!1,shape:l,cssClasses:s.join(" "),cssStyles:o,padding:n,look:a,useHtmlLabels:!1,width:r}},"buildC4Node"),tw=0,tR=0,tP=4,tD=2;d.yy=tt;var tN={},tK=class{static{(0,h.K)(this,"Bounds")}constructor(t){this.name="",this.data={},this.data.startx=void 0,this.data.stopx=void 0,this.data.starty=void 0,this.data.stopy=void 0,this.data.widthLimit=void 0,this.nextData={},this.nextData.startx=void 0,this.nextData.stopx=void 0,this.nextData.starty=void 0,this.nextData.stopy=void 0,this.nextData.cnt=0,tA(t.db.getConfig())}setData(t,e,n,a){this.nextData.startx=this.data.startx=t,this.nextData.stopx=this.data.stopx=e,this.nextData.starty=this.data.starty=n,this.nextData.stopy=this.data.stopy=a}updateVal(t,e,n,a){void 0===t[e]?t[e]=n:t[e]=a(n,t[e])}insert(t){this.nextData.cnt=this.nextData.cnt+1;let e=this.nextData.stopx,n=this.data.widthLimit,a=this.nextData.startx===this.nextData.stopx?e+t.margin:e+2*t.margin,r=a+t.width,i=this.nextData.starty+2*t.margin,s=i+t.height;(a>=n||r>=n||this.nextData.cnt>tP)&&(a=this.nextData.startx+t.margin+tN.nextLinePaddingX,i=this.nextData.stopy+2*t.margin,this.nextData.stopx=r=a+t.width,this.nextData.starty=this.nextData.stopy,this.nextData.stopy=s=i+t.height,this.nextData.cnt=1),t.x=a,t.y=i,this.updateVal(this.data,"startx",a,Math.min),this.updateVal(this.data,"starty",i,Math.min),this.updateVal(this.data,"stopx",r,Math.max),this.updateVal(this.data,"stopy",s,Math.max),this.updateVal(this.nextData,"startx",a,Math.min),this.updateVal(this.nextData,"starty",i,Math.min),this.updateVal(this.nextData,"stopx",r,Math.max),this.updateVal(this.nextData,"stopy",s,Math.max)}init(t){this.name="",this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0,widthLimit:void 0},this.nextData={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0,cnt:0},tA(t.db.getConfig())}bumpLastMargin(t){this.data.stopx+=t,this.data.stopy+=t}},tA=(0,h.K)(function(t){(0,l.hH)(tN,t),t?.fontFamily&&(tN.personFontFamily=tN.systemFontFamily=tN.messageFontFamily=t.fontFamily),t?.fontSize&&(tN.personFontSize=tN.systemFontSize=tN.messageFontSize=t.fontSize),t?.fontWeight&&(tN.personFontWeight=tN.systemFontWeight=tN.messageFontWeight=t.fontWeight)},"setConf"),tL=(0,h.K)(t=>({fontFamily:t.boundaryFontFamily,fontSize:t.boundaryFontSize,fontWeight:t.boundaryFontWeight}),"boundaryFont"),tI=(0,h.K)(t=>({fontFamily:t.messageFontFamily,fontSize:t.messageFontSize,fontWeight:t.messageFontWeight}),"messageFont");function tM(t,e,n,a,r){let i=e[t];if(!i.width)if(n)i.text=(0,s.bH)(i.text,r,a),i.textLines=i.text.split(l.Y2.lineBreakRegex).length,i.width=r,i.height=(0,s.ru)(i.text,a);else{let t=i.text.split(l.Y2.lineBreakRegex);i.textLines=t.length;let e=0;for(let n of(i.height=0,i.width=0,t))i.width=Math.max((0,s.Un)(n,a),i.width),e=(0,s.ru)(n,a),i.height=i.height+e}return i}(0,h.K)(tM,"calcC4ShapeTextWH");var t$=(0,h.K)(function(t,e,n){let a=n.data.startx,r=n.data.starty;e.x=a,e.y=r,e.width=n.data.stopx-a,e.height=n.data.stopy-r,e.intersect=t=>i.I7.rect({x:e.x+e.width/2,y:e.y+e.height/2,width:e.width,height:e.height},t),e.label.y=tN.c4ShapeMargin-35;let l=e.wrap&&tN.wrap,o=tL(tN);o.fontSize=o.fontSize+2,o.fontWeight="bold";let h=(0,s.Un)(e.label.text,o);tM("label",e,l,o,h),td.drawBoundary(t,e,tN)},"drawBoundary"),tB=(0,h.K)(async function(t,e,n,a){let r=(0,l.D7)(),s=r.look??"classic",o={config:r},u=e.attr("id")??"",d=a.map(t=>n[Number(t)]),p=(0,h.K)(t=>{let e=t.shape?i.nq[t.shape]:void 0;if(!e)throw Error(`C4: no shape handler for "${t.shape}"`);return e},"shapeHandlerFor");for(let n of(await Promise.all(d.map(async t=>{let n=tO(t,tN,tN.c4ShapePadding,s,tN.width);n.domId=`${u}-${n.id}`;let a=await p(n)(e,n,o);t.width=n.width??tN.width,t.height=n.height??tN.height,t.margin=tN.c4ShapeMargin,a.remove()})),d))t.insert(n);await Promise.all(d.map(async t=>{let n=tO(t,tN,tN.c4ShapePadding,s,tN.width);n.domId=`${u}-${n.id}`,n.x=t.x+t.width/2,n.y=t.y+t.height/2;let a=e.append("g").attr("transform",`translate(${t.x+t.width/2}, ${t.y+t.height/2})`);await p(n)(a,n,o),t.intersect=n.intersect})),t.bumpLastMargin(tN.c4ShapeMargin)},"drawC4ShapeArray"),tj=class{static{(0,h.K)(this,"Point")}constructor(t,e){this.x=t,this.y=e}},tY=(0,h.K)(function(t,e){if(!t.intersect)throw Error(`C4 element "${t.alias}" has no intersect function. Please report this to https://github.com/mermaid-js/mermaid/issues`);let{x:n,y:a}=t.intersect(e);return new tj(n,a)},"getIntersectPoint"),tU=(0,h.K)(function(t,e){let n={x:0,y:0};n.x=e.x+e.width/2,n.y=e.y+e.height/2;let a=tY(t,n);return n.x=t.x+t.width/2,n.y=t.y+t.height/2,{startPoint:a,endPoint:tY(e,n)}},"getIntersectPoints"),tF=(0,h.K)(function(t,e,n,a,r){let i=a.db.getC4Type(),l=0;for(let t of e){l+=1;let e=t.wrap&&tN.wrap,a=tI(tN);"C4Dynamic"===i&&(t.label.text=l+": "+t.label.text);let r=(0,s.Un)(t.label.text,a);tM("label",t,e,a,r),t.techn&&""!==t.techn.text&&(r=(0,s.Un)(t.techn.text,a),tM("techn",t,e,a,r)),t.descr&&""!==t.descr.text&&(r=(0,s.Un)(t.descr.text,a),tM("descr",t,e,a,r));let o=n(t.from),h=n(t.to);if(!o||!h)throw Error(`C4 rel "${t.from}" -> "${t.to}" references an unknown shape or boundary`);let u=tU(o,h);if(!u.startPoint||!u.endPoint)throw Error(`Could not calculate intersection points for rel "${t.from}" -> "${t.to}"`);t.startPoint=u.startPoint,t.endPoint=u.endPoint}td.drawRels(t,e,tN,r)},"drawRels");async function tz(t,e,n,a,r){let i=r.db,s=new tK(r);for(let[l,o]of(s.data.widthLimit=n.data.widthLimit/Math.min(tD,a.length),a.entries())){let a=0;o.image={width:0,height:0,Y:0},o.sprite&&(o.image.width=48,o.image.height=48,o.image.Y=a,a=o.image.Y+o.image.height);let h=o.wrap&&tN.wrap,u=tL(tN);u.fontSize=u.fontSize+2,u.fontWeight="bold";let d=tM("label",o,h,u,s.data.widthLimit);if(d.Y=a+8,a=d.Y+d.height,o.type&&""!==o.type.text){o.type.text="["+o.type.text+"]";let t=tM("type",o,h,tL(tN),s.data.widthLimit);t.Y=a+5,a=t.Y+t.height}if(o.descr&&""!==o.descr.text){let t=tL(tN);t.fontSize=t.fontSize-2;let e=tM("descr",o,h,t,s.data.widthLimit);e.Y=a+20,a=e.Y+e.height}if(0==l||l%tD==0){let t=n.data.startx+tN.diagramMarginX,e=n.data.stopy+tN.diagramMarginY+a;s.setData(t,t,e,e)}else{let t=s.data.stopx!==s.data.startx?s.data.stopx+tN.diagramMarginX:s.data.startx,e=s.data.starty;s.setData(t,t,e,e)}s.name=o.alias;let p=i.getC4ShapeArray(o.alias),y=i.getC4ShapeKeys(o.alias);y.length>0&&await tB(s,t,p,y),e=o.alias;let b=i.getBoundaries(e);b.length>0&&await tz(t,e,s,b,r),"global"!==o.alias&&t$(t,o,s),n.data.stopy=Math.max(s.data.stopy+tN.c4ShapeMargin,n.data.stopy),n.data.stopx=Math.max(s.data.stopx+tN.c4ShapeMargin,n.data.stopx),tw=Math.max(tw,n.data.stopx),tR=Math.max(tR,n.data.stopy)}}(0,h.K)(tz,"drawInsideBoundary");var tX={drawPersonOrSystemArray:tB,drawBoundary:t$,setConf:tA,draw:(0,h.K)(async function(t,e,n,a){tN=p("c4");let{root:r}=tp(e,(0,l.D7)().securityLevel),i=a.db;i.setWrap(tN.wrap),tP=i.getC4ShapeInRow(),tD=i.getC4BoundaryInRow(),o.R.debug(`C:${JSON.stringify(tN,null,2)}`);let s=r.select(`[id="${e}"]`);td.insertComputerIcon(s,e),td.insertDatabaseIcon(s,e),td.insertClockIcon(s,e);let h=new tK(a);h.setData(tN.diagramMarginX,tN.diagramMarginX,tN.diagramMarginY,tN.diagramMarginY),h.data.widthLimit=screen.availWidth,tw=tN.diagramMarginX,tR=tN.diagramMarginY;let u=i.getTitle(),d=i.getBoundaries("");await tz(s,"",h,d,a),td.insertArrowHead(s,e),td.insertArrowEnd(s,e),td.insertArrowCrossHead(s,e),td.insertArrowFilledHead(s,e),tF(s,i.getRels(),i.getC4Shape,a,e),h.data.stopx=tw,h.data.stopy=tR;let y=h.data,b=y.startx,_=y.starty,f=tR-_+2*tN.diagramMarginY,m=tw-b,g=m+2*tN.diagramMarginX;u&&s.append("text").text(u).attr("x",m/2-4*tN.diagramMarginX).attr("y",_+tN.diagramMarginY),(0,l.a$)(s,f,g,tN.useMaxWidth);let x=60*!!u;s.attr("viewBox",b-tN.diagramMarginX+" -"+(tN.diagramMarginY+x)+" "+g+" "+(f+x)),o.R.debug("models:",y)},"draw")},tq=(0,h.K)(()=>{let t=(0,l.D7)().c4??{},e=new CSSStyleSheet;for(let n of tT){let a=e.cssRules[e.insertRule(`.c4-shape.c4-${n} .label {}`,e.cssRules.length)],r=t[`${n}FontFamily`],i=t[`${n}FontSize`],s=t[`${n}FontWeight`];r&&a.style.setProperty("font-family",r),i&&a.style.setProperty("font-size","number"==typeof i?`${i}px`:i),s&&a.style.setProperty("font-weight",String(s))}return[...e.cssRules].filter(t=>t.style.length>0).map(t=>` ${t.cssText}`).join("\n")},"elementFontStyles"),tW={parser:d,db:tt,renderer:tX,styles:(0,h.K)(t=>`.person {
|
|
2
|
-
stroke: ${t.personBorder};
|
|
3
|
-
fill: ${t.personBkg};
|
|
4
|
-
}
|
|
5
|
-
${tq()}
|
|
6
|
-
|
|
7
|
-
/* The element font colour is set inline per element (default white); the
|
|
8
|
-
label text takes it via currentColor. */
|
|
9
|
-
.c4-shape .label,
|
|
10
|
-
.c4-shape .label text {
|
|
11
|
-
color: inherit;
|
|
12
|
-
fill: currentColor;
|
|
13
|
-
}
|
|
14
|
-
/* Structurizr typography: bold name, smaller stereotype/type and description lines. */
|
|
15
|
-
.c4-shape .label .c4-name {
|
|
16
|
-
font-weight: bold;
|
|
17
|
-
}
|
|
18
|
-
.c4-shape .label .c4-type {
|
|
19
|
-
font-size: 0.75em;
|
|
20
|
-
}
|
|
21
|
-
.c4-shape .label .c4-descr {
|
|
22
|
-
font-size: 0.82em;
|
|
23
|
-
}
|
|
24
|
-
.c4-shape .basic,
|
|
25
|
-
.c4-shape rect,
|
|
26
|
-
.c4-shape path,
|
|
27
|
-
.c4-shape circle,
|
|
28
|
-
.c4-shape ellipse,
|
|
29
|
-
.c4-shape line {
|
|
30
|
-
stroke-width: 2px;
|
|
31
|
-
}
|
|
32
|
-
`,"getStyles"),init:(0,h.K)(({c4:t,wrap:e})=>{tX.setConf(t),tt.setWrap(e)},"init")}}}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2318],{12318:(e,t,r)=>{r.d(t,{zV:()=>ez});var n=r(57865),a=r(20381),l=r(82002),s=r(11);let i=(0,s.default)(()=>Promise.all([r.e(6500),r.e(1142),r.e(2283),r.e(3578)]).then(r.bind(r,83578)).then(e=>e.XtermView),{loadableGenerated:{webpack:()=>[83578]},ssr:!1,loading:e=>{let{error:t,retry:r}=e;return(0,n.jsx)("div",{className:"flex h-full min-h-0 w-full items-center justify-center bg-[#0d0c08] text-sm text-[#e9e3d4]",role:t?"alert":"status",children:t?(0,n.jsxs)("div",{className:"flex flex-col items-center gap-2",children:[(0,n.jsx)("span",{children:"터미널을 불러오지 못했습니다."}),(0,n.jsx)("button",{type:"button",className:"rounded border border-[#e9e3d4]/50 px-3 py-1 hover:bg-white/10",onClick:r,children:"다시 시도"})]}):"터미널 연결 중…"})}});function o(e){return(0,n.jsx)(i,{...e})}let c=(0,s.default)(()=>Promise.all([r.e(6500),r.e(1142),r.e(2283),r.e(9207)]).then(r.bind(r,59207)).then(e=>e.PtyLiveView),{loadableGenerated:{webpack:()=>[59207]},ssr:!1,loading:e=>{let{error:t,retry:r}=e;return(0,n.jsx)("div",{className:"flex h-full min-h-0 w-full items-center justify-center bg-[#0d0c08] text-sm text-[#e9e3d4]",role:t?"alert":"status",children:t?(0,n.jsxs)("div",{className:"flex flex-col items-center gap-2",children:[(0,n.jsx)("span",{children:"터미널을 불러오지 못했습니다."}),(0,n.jsx)("button",{type:"button",className:"rounded border border-[#e9e3d4]/50 px-3 py-1 hover:bg-white/10",onClick:r,children:"다시 시도"})]}):"터미널 연결 중…"})}});function d(e){return(0,n.jsx)(c,{...e})}var u=r(92200);let m=e=>"string"==typeof e&&e.trim()?e:null,p={codex:"codex",claude:"claude",gemini:"gemini",grok:"grok",self:"elanous",mission:"elanous 미션",shell:"셸",pty:"PTY"},h={PLAN:"text-sky-400",ROUTE:"text-violet-400",VERIFY:"text-amber-400",HEAL:"text-emerald-400",ESCALATE:"text-rose-400",SHIP:"text-green-400"};function b(e){let{rows:t,client:r,initial:l,onClose:s,stage:i=!1}=e,[o,c]=(0,a.useState)(l);(0,a.useEffect)(()=>{0===o.length&&t.length&&c(function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:3,r=e.filter(e=>e.alive),n=r.filter(e=>e.kind&&["codex","claude","self","mission","gemini","grok"].includes(e.kind)),a=r.filter(e=>!n.includes(e));return[...n,...a].slice(0,t).map(e=>e.id)}(t))},[t,o.length]),(0,a.useEffect)(()=>{let e=new URLSearchParams(window.location.search);o.length?e.set("wall",o.join(",")):e.delete("wall"),window.history.replaceState(null,"","".concat(window.location.pathname,"?").concat(e.toString()))},[o]);let[b,f]=(0,a.useState)([]);(0,a.useEffect)(()=>{let e=!0,t=async()=>{try{var t;let n=await r.fetchJson("/v1/logs?category=harness.decision&store=@active&since=6h&limit=300");e&&f(null!=(t=n.logs)?t:[])}catch(e){}};t();let n=window.setInterval(()=>{document.hidden||t()},5e3);return()=>{e=!1,window.clearInterval(n)}},[r]);let[x,g]=(0,a.useState)(!1);(0,a.useEffect)(()=>{"public"===new URLSearchParams(window.location.search).get("capture")&&g(!0)},[]);let v=(0,a.useMemo)(()=>x?(0,u.yR)(b.map(e=>{var t;return{ts:e.ts,category:"harness.decision",event:"decision",data:null!=(t=e.data)?t:null}})):b,[b,x]),w=(0,a.useMemo)(()=>o.map(e=>t.find(t=>t.id===e)).filter(e=>!!e),[o,t]),y=e=>c(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e].slice(-3));return(0,n.jsxs)("section",{className:"flex h-full min-h-0 flex-col bg-[#0b0a07]","aria-label":"터미널 나란히","data-pty-wall":!0,children:[(0,n.jsxs)("header",{className:"flex flex-wrap items-center gap-2 border-b border-zinc-700 px-3 py-2 text-xs text-zinc-200",children:[(0,n.jsxs)("span",{className:"font-medium",children:["나란히 \xb7 ",w.length,"/3"]}),t.filter(e=>e.alive).slice(0,14).map(e=>{var t,r,a;return(0,n.jsxs)("button",{type:"button",onClick:()=>y(e.id),"aria-pressed":o.includes(e.id),className:"rounded-full border px-2 py-0.5 font-mono ".concat(o.includes(e.id)?"border-emerald-500 bg-emerald-900/40 text-emerald-200":"border-zinc-700 text-zinc-400 hover:bg-zinc-800"),"data-pty-wall-chip":e.id,children:[null!=(r=e.kind)?r:"pty"," \xb7 ",e.nickname||e.id]},"".concat(null!=(a=null==(t=e.sourceRoot)?void 0:t.dbPath)?a:"",":").concat(e.id))}),(0,n.jsx)("button",{type:"button",onClick:s,className:"ml-auto rounded px-2 py-1 text-zinc-400 hover:bg-zinc-800","aria-label":"나란히 닫기",children:"닫기"})]}),0===w.length?(0,n.jsx)("p",{className:"p-6 text-sm text-zinc-400",children:"위에서 PTY 를 1~3개 고르세요 — 살아 있는 에이전트 PTY 가 없으면 비어 있습니다."}):(0,n.jsx)("div",{className:"grid min-h-0 flex-1 gap-1 p-1 ".concat(1===w.length?"grid-cols-1":2===w.length?"grid-cols-2":"grid-cols-3"),children:w.map(e=>{var t,a;let l=function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:3;return t.filter(t=>{var r;let n=null!=(r=t.data)?r:{};return!!e.runId&&n.runId===e.runId||n.target===e.id||n.shard===e.id}).sort((e,t)=>e.ts<t.ts?1:-1).slice(0,r).map(e=>{var t,r,n,a,l;let s=null!=(t=e.data)?t:{};return{ts:e.ts,kind:(null!=(r=m(s.kind))?r:"PLAN").toUpperCase(),what:null!=(n=m(s.what))?n:"(판단)",why:null!=(l=null!=(a=m(s.reason))?a:m(s.why))?l:m(s.purpose),target:m(s.target)}})}(e,v,2);return(0,n.jsxs)("div",{className:"flex min-h-0 flex-col overflow-hidden rounded border border-zinc-800","data-pty-wall-pane":e.id,children:[(0,n.jsxs)("div",{className:"flex items-center gap-2 bg-zinc-900 px-2 py-1 text-[11px]",children:[(0,n.jsx)("span",{className:"rounded bg-violet-900/50 px-1.5 py-0.5 text-violet-200","data-pty-agent":!0,children:function(e){let t=e.externalToolName&&p[e.externalToolName]||e.kind&&p[e.kind]||e.externalToolName||e.kind||"PTY";return"에이전트: ".concat(t).concat(e.runId?" \xb7 런 ".concat(e.runId.replace(/^run-/,"").slice(0,8)):"")}(e)}),(0,n.jsx)("span",{className:"truncate font-mono text-zinc-500",children:e.id})]}),(0,n.jsx)("div",{className:"min-h-[38px] border-b border-zinc-800 bg-zinc-950/80 px-2 py-1 ".concat(i?"text-sm":"text-[11px]"),"aria-label":"의도 띠","data-pty-intent":!0,children:0===l.length?(0,n.jsx)("span",{className:"text-zinc-500",children:"이 PTY 를 모는 판단 신호 없음(사람이 모는 PTY 거나 MAX 계측 꺼짐)"}):l.map(e=>{var t;return(0,n.jsxs)("div",{className:"truncate",children:[(0,n.jsx)("span",{className:"font-mono ".concat(null!=(t=h[e.kind])?t:"text-zinc-300"),children:e.kind})," ",(0,n.jsx)("span",{className:"text-zinc-100",children:e.what}),e.why&&(0,n.jsxs)("span",{className:"text-zinc-400",children:[" \xb7 왜: ",e.why]}),e.target&&(0,n.jsxs)("span",{className:"text-zinc-500",children:[" → ",e.target]})]},"".concat(e.ts,"-").concat(e.what))})}),(0,n.jsx)("div",{className:"min-h-0 flex-1",children:(0,n.jsx)(d,{terminal:e,client:r,onClose:()=>y(e.id)})})]},"".concat(null!=(a=null==(t=e.sourceRoot)?void 0:t.dbPath)?a:"",":").concat(e.id))})})]})}var f=r(96164);let x={connected:{label:"연결됨",color:"bg-emerald-500"},connecting:{label:"연결 중",color:"bg-amber-500"},disconnected:{label:"끊김",color:"bg-rose-500"}};function g(e){let{activeId:t,tabs:r,status:l,onSwitch:s,onAdd:i,actions:o,children:c}=e,[d,u]=(0,a.useState)(!1),[m,p]=(0,a.useState)(!1);return(0,a.useEffect)(()=>{if(!m&&!d)return;let e=e=>{"Escape"===e.key&&(u(!1),p(!1))};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[d,m]),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"relative flex h-10 max-h-10 shrink-0 items-center justify-between border-b border-zinc-800 bg-background px-2","aria-label":"간결한 터미널 상단바",children:[(0,n.jsxs)("div",{className:"relative min-w-0 max-w-[calc(50%_-_12px)] flex-1",children:[(0,n.jsxs)("button",{type:"button",className:"max-w-full truncate rounded px-2 py-1 text-left text-xs","aria-label":"터미널 고르기","aria-expanded":d,onClick:()=>{p(!1),u(e=>!e)},children:[null!=t?t:"터미널 준비 중"," ▾"]}),d&&(0,n.jsxs)("div",{className:"absolute left-0 top-full z-40 max-h-[60vh] min-w-48 overflow-auto rounded border border-zinc-700 bg-background p-1 shadow-xl",role:"menu","aria-label":"열린 터미널",children:[r.map(e=>(0,n.jsx)("button",{type:"button",role:"menuitem",className:"block w-full truncate rounded px-2 py-2 text-left text-sm hover:bg-accent","aria-current":e===t?"true":void 0,onClick:()=>{s(e),u(!1)},children:e},e)),(0,n.jsx)("button",{type:"button",role:"menuitem",className:"block w-full rounded px-2 py-2 text-left text-sm hover:bg-accent",onClick:()=>{i(),u(!1)},children:"+ 새 터미널"})]})]}),(0,n.jsx)("span",{className:"absolute left-1/2 h-2 w-2 -translate-x-1/2 rounded-full ".concat(x[l].color),title:x[l].label,"aria-label":x[l].label,role:"status"}),(0,n.jsx)("button",{type:"button",className:"shrink-0 rounded px-2 py-1 text-lg leading-none","aria-label":"터미널 더보기","aria-expanded":m,onClick:()=>{u(!1),p(e=>!e)},children:"⋯"})]}),m&&(0,n.jsx)("button",{type:"button",className:"fixed inset-0 z-40 bg-black/50","aria-label":"터미널 메뉴 닫기",onClick:()=>p(!1)}),(0,n.jsxs)("section",{className:m?"fixed inset-x-0 bottom-0 z-50 max-h-[75dvh] overflow-y-auto rounded-t-xl border-t border-zinc-700 bg-background p-4 shadow-2xl":"hidden","aria-label":"터미널 더보기 시트","aria-hidden":!m,children:[(0,n.jsxs)("div",{className:"mb-3 flex items-center justify-between",children:[(0,n.jsx)("span",{className:"text-sm font-medium",children:"터미널 동작"}),(0,n.jsx)("button",{type:"button",onClick:()=>p(!1),"aria-label":"터미널 메뉴 닫기",children:"닫기"})]}),(0,n.jsx)("div",{className:"flex flex-wrap gap-2 border-b border-zinc-800 pb-3",children:c}),(0,n.jsx)("div",{className:"pt-3",children:o})]})]})}var v=r(51851),w=r(16759),y=r(62351),k=r(23463);let j=/\x1b(?:\][^\x07\x1b]*(?:\x07|\x1b\\)|\[[0-?]*[ -/]*[@-~]|[@-Z\\-_])/g,N=new Map;function S(e){let{sessionId:t}=e,{client:r,setSessionId:l}=(0,w.Q)(),[s,i]=(0,a.useState)(N),[o,c]=(0,a.useState)(null);(0,a.useEffect)(()=>{let e=r.connectAcp({...t?{sessionId:t}:{},onSession:e=>{e&&e!==t&&l(e)}});(0,y.cY)("tui-mirror.attach",{sessionId:t});let n=e.on("sessionUpdate",e=>{var t,r;let n=(null!=(r=e.params)?r:{}).update;if(!n||"agent_thought_chunk"!==n.sessionUpdate)return;let a=(null==(t=n.content)?void 0:t.type)==="text"?n.content.text:null;a&&i(e=>{let t=function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Date.now(),n=(0,k.L)(t);if(!n||"terminalFrame"!==n.method)return e;let{terminalId:a,frame:l,instance:s,at:i}=n.payload,o="".concat(s).concat("\0").concat(a),c=e.get(o);if(c&&i<c.at)return e;let d=new Map(e);return d.set(o,{key:o,surfaceId:a,frame:l,instance:s,at:i,receivedAt:r}),d}(e,a);return t!==e&&(0,y.cY)("tui-mirror.frame",{bytes:a.length}),t})}),a=setInterval(()=>{i(e=>(function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Date.now(),r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:15e3,n=!1;for(let a of e.values())if(t-a.receivedAt>r){n=!0;break}if(!n)return e;let a=new Map;for(let[n,l]of e)t-l.receivedAt<=r&&a.set(n,l);return a})(e))},5e3);return()=>{clearInterval(a);try{n()}catch(e){}try{e.close()}catch(e){}}},[r,t,l]);let d=(0,a.useMemo)(()=>[...s.values()].sort((e,t)=>t.receivedAt-e.receivedAt||e.key.localeCompare(t.key)),[s]);(0,a.useEffect)(()=>{var e,t;o&&s.has(o)||c(null!=(t=null==(e=d[0])?void 0:e.key)?t:null)},[d,o,s]);let u=o?s.get(o):void 0;return(0,n.jsxs)("div",{className:"flex h-full min-h-0 flex-col bg-zinc-950 text-zinc-100",children:[(0,n.jsxs)("div",{className:"flex flex-wrap items-center gap-2 border-b border-zinc-800 px-3 py-2 text-xs text-zinc-400",children:[(0,n.jsx)("span",{className:"font-semibold text-zinc-200",children:"\uD83D\uDDA5 TUI 관측"}),(0,n.jsx)("span",{"aria-live":"polite",children:0===d.length?"자기신고 화면 대기 중…":"".concat(d.length,"개 화면 \xb7 라이브 미러")}),d.length>0&&(0,n.jsx)("select",{"aria-label":"관측할 TUI 화면 선택",className:"ml-auto rounded border border-zinc-700 bg-zinc-900 px-2 py-1 text-zinc-100",value:null!=o?o:"",onChange:e=>c(e.target.value),children:d.map(e=>(0,n.jsxs)("option",{value:e.key,children:[e.surfaceId," \xb7 ",e.instance]},e.key))})]}),(0,n.jsx)("pre",{className:"m-0 min-h-0 flex-1 overflow-auto whitespace-pre p-3 font-mono text-xs leading-snug text-zinc-100","aria-live":"polite","aria-label":"선택한 TUI 화면의 라이브 렌더 프레임",children:u?u.frame.replace(j,""):"자기신고하는 elanous 화면이 아직 없습니다. 대시보드(elanous)를 실행하면 여기 라이브로 미러링됩니다."})]})}var C=r(10751),I=r(93891),T=r(9645),E=r(10346),A=r(57993),Y=r(43105);function R(e){let{onFrameUploaded:t}=e,{config:r,client:l,sessionId:s}=(0,w.Q)(),i=(0,a.useRef)(null);(0,a.useEffect)(()=>()=>{try{var e;null==(e=i.current)||e.close()}catch(e){}i.current=null},[]);let o=(0,a.useCallback)(async e=>{if(t){try{t(e)}catch(e){}return}if(s){i.current||(i.current=l.connectAcp({sessionId:s}));try{var r;await i.current.send("terminal/camera/frame/notify",{sessionId:s,attachmentId:e.id,ts:null!=(r=e.createdAt)?r:Date.now()})}catch(e){(0,y.cY)("webterm.live-cam.notify-failed",{reason:e instanceof Error?e.message:String(e)})}}},[l,s,t]),c=function(e){var t,r,n;let l=null!=(t=e.intervalMs)?t:1e3,s=null!=(r=e.jpegQuality)?r:.85,i=null!=(n=e.maxDimension)?n:1280,[o,c]=(0,a.useState)({status:"idle",framesUploaded:0,lastAttachmentId:null,error:null}),d=(0,a.useRef)(null),u=(0,a.useRef)(null),m=(0,a.useRef)(null),p=(0,a.useRef)(null),h=(0,a.useRef)(!1),b=(0,a.useRef)(e.onFrameUploaded);b.current=e.onFrameUploaded;let f=(0,a.useRef)({baseUrl:e.baseUrl,token:e.token});f.current={baseUrl:e.baseUrl,token:e.token};let x=(0,a.useCallback)(()=>{null!==p.current&&(clearInterval(p.current),p.current=null);let e=d.current;if(e){for(let t of e.getTracks())try{t.stop()}catch(e){}d.current=null}if(u.current){try{u.current.pause()}catch(e){}u.current.srcObject=null,u.current=null}m.current=null,h.current=!1},[]),g=(0,a.useCallback)(async()=>{if(h.current)return void(0,y.cY)("webterm.live-cam.frame-dropped",{reason:"in-flight"});let e=u.current;if(!e||0===e.videoWidth||0===e.videoHeight)return void(0,y.cY)("webterm.live-cam.frame-skipped",{reason:"video-not-ready"});h.current=!0;try{let r=function(e,t,r){if(e<=r&&t<=r)return{width:e,height:t};let n=e/t;return e>=t?{width:r,height:Math.round(r/n)}:{width:Math.round(r*n),height:r}}(e.videoWidth,e.videoHeight,i),n=m.current;n&&n.width===r.width&&n.height===r.height||(m.current=n=function(e,t){let r=document.createElement("canvas");return r.width=e,r.height=t,r}(r.width,r.height));let a=n.getContext("2d");if(!a)return void(0,y.cY)("webterm.live-cam.no-ctx");a.drawImage(e,0,0,r.width,r.height);let l=await new Promise(e=>{n.toBlob(t=>e(t),"image/jpeg",s)});if(!l)return void(0,y.cY)("webterm.live-cam.toBlob-null");let o="live-frame-".concat(Date.now(),".jpg"),d=await (0,Y.v)({baseUrl:f.current.baseUrl,token:f.current.token,file:l,filename:o});if(!d.ok){c(e=>({...e,error:d.reason})),(0,y.cY)("webterm.live-cam.upload-failed",{reason:d.reason});return}c(e=>({...e,framesUploaded:e.framesUploaded+1,lastAttachmentId:d.meta.id,error:null}));try{var t;null==(t=b.current)||t.call(b,d.meta)}catch(e){(0,y.cY)("webterm.live-cam.onFrameUploaded-throw",{reason:e instanceof Error?e.message:String(e)})}}catch(t){let e=t instanceof Error?t.message:String(t);c(t=>({...t,error:e})),(0,y.cY)("webterm.live-cam.capture-error",{reason:e})}finally{h.current=!1}},[s,i]),v=(0,a.useCallback)(async()=>{var e;let t;if("undefined"==typeof navigator||!(null==(e=navigator.mediaDevices)?void 0:e.getUserMedia))return void c(e=>({...e,status:"unsupported",error:"getUserMedia not available"}));if(!f.current.baseUrl)return void c(e=>({...e,status:"error",error:"daemon baseUrl not configured"}));if(d.current)return;c(e=>({...e,status:"requesting",error:null}));try{t=await navigator.mediaDevices.getUserMedia({video:{facingMode:{ideal:"environment"}}})}catch(r){let e=r instanceof Error?r.message:String(r),t=e.includes("Permission")||e.includes("NotAllowed");c(r=>({...r,status:t?"denied":"error",error:e})),(0,y.cY)("webterm.live-cam.getUserMedia-failed",{reason:e,denied:t});return}d.current=t;let r=document.createElement("video");r.srcObject=t,r.muted=!0,r.playsInline=!0,u.current=r;try{await r.play()}catch(e){(0,y.cY)("webterm.live-cam.video-play-failed",{reason:e instanceof Error?e.message:String(e)})}c(e=>({...e,status:"streaming",framesUploaded:0,error:null})),null!==p.current&&clearInterval(p.current),p.current=setInterval(()=>{g()},l),(0,y.cY)("webterm.live-cam.started",{intervalMs:l})},[g,l]),w=(0,a.useCallback)(()=>{x(),c({status:"idle",framesUploaded:0,lastAttachmentId:null,error:null}),(0,y.cY)("webterm.live-cam.stopped")},[x]);return(0,a.useEffect)(()=>()=>{x()},[x]),{...o,start:v,stop:w,isRunning:"streaming"===o.status}}({baseUrl:r.baseUrl,...r.token?{token:r.token}:{},onFrameUploaded:o});return"unsupported"!==c.status&&r.baseUrl?"denied"===c.status?(0,n.jsx)("button",{type:"button",disabled:!0,className:"rounded border border-rose-300 bg-rose-50 px-2 py-0.5 text-[11px] text-rose-700 dark:border-rose-800 dark:bg-rose-950 dark:text-rose-200",title:"Camera permission denied. Enable in iOS Settings → Safari → Camera, then reload.","data-testid":"live-camera-denied",children:"Camera denied"}):c.isRunning?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("button",{type:"button",onClick:()=>c.stop(),className:"rounded border border-rose-300 bg-rose-50 px-2 py-0.5 text-rose-700 dark:border-rose-800 dark:bg-rose-950 dark:text-rose-200 hover:bg-rose-100 dark:hover:bg-rose-900",title:"Stop live camera","data-testid":"live-camera-stop",children:"■ Stop"}),(0,n.jsxs)("span",{className:"rounded border border-border bg-card px-1.5 py-0.5 font-mono text-[10px] text-muted-foreground","data-testid":"live-camera-stats","aria-live":"polite",children:[c.framesUploaded,"f",c.error?(0,n.jsx)("span",{className:"ml-1 text-rose-500",children:"err"}):null]})]}):(0,n.jsx)("button",{type:"button",disabled:"requesting"===c.status,onClick:()=>{c.start()},className:"rounded border px-2 py-0.5 hover:bg-accent disabled:opacity-50",title:"Start live camera — uploads a 1Hz frame stream so the agent can see what you point at","data-testid":"live-camera-start",children:"requesting"===c.status?"Requesting…":"\uD83D\uDCF9 Live"}):null}function z(e){let{terminalId:t,onClear:r,onRecordingChange:l,onAttached:s,voice:i,variant:o="default"}=e,{client:c,sessionId:d,config:u}=(0,w.Q)(),[m,p]=(0,a.useState)(null),[h,b]=(0,a.useState)(null),[f,x]=(0,a.useState)(!1),[g,v]=(0,a.useState)(null);(0,a.useEffect)(()=>{null==l||l(null!==m)},[m,l]);let k=(0,a.useRef)(null);(0,a.useEffect)(()=>()=>{try{var e;null==(e=k.current)||e.close()}catch(e){}k.current=null},[]),(0,a.useEffect)(()=>{if(!d)return;k.current||(k.current=c.connectAcp({sessionId:d}));let e=k.current,r=!1;return(async()=>{try{var n;let a=await e.send("terminal/record/list",{sessionId:d});if(r)return;let l=null==a||null==(n=a.recordings)?void 0:n.find(e=>e.terminalId===t);l?p({recorderId:l.recorderId,startedAt:l.startedAt}):p(null),b(null),v(null)}catch(e){(0,y.cY)("webterm.controls.list-error",{reason:String(e)})}})(),()=>{r=!0}},[c,d,t]);let j=(0,a.useCallback)(async()=>{if(!d)return void v("session 미설정 — daemon 연결을 먼저 확인하세요");k.current||(k.current=c.connectAcp({sessionId:d}));let e=k.current;x(!0),v(null),b(null);try{var r,n;let a=await e.send("terminal/record/start",{sessionId:d,terminalId:t});(null==a?void 0:a.started)&&a.recorderId?((0,y.cY)("webterm.controls.record.started",{recorderId:a.recorderId,terminalId:t}),p({recorderId:a.recorderId,startedAt:null!=(r=a.startedAt)?r:Date.now()})):v(null!=(n=null==a?void 0:a.reason)?n:"start failed")}catch(e){v(String(e instanceof Error?e.message:e))}finally{x(!1)}},[c,d,t]),N=(0,a.useCallback)(async()=>{var e,r,n,a;if(!d||!m)return;let l=null!=(e=k.current)?e:c.connectAcp({sessionId:d});k.current=l,x(!0),v(null);try{let e=await l.send("terminal/record/stop",{sessionId:d,terminalId:t});(null==e?void 0:e.stopped)&&e.recorderId&&e.downloadUrl?((0,y.cY)("webterm.controls.record.stopped",{recorderId:e.recorderId,frameCount:e.frameCount,elapsedSec:e.elapsedSec}),b({recorderId:e.recorderId,downloadUrl:e.downloadUrl,frameCount:null!=(r=e.frameCount)?r:0,elapsedSec:null!=(n=e.elapsedSec)?n:0}),p(null)):v(null!=(a=null==e?void 0:e.reason)?a:"stop failed")}catch(e){v(String(e instanceof Error?e.message:e))}finally{x(!1)}},[m,c,d,t]);return(0,n.jsxs)("div",{className:"sheet"===o?"flex flex-wrap items-center gap-2 text-xs":"flex flex-wrap items-center gap-2 border-b px-2 py-1 text-xs",children:[(0,n.jsx)("button",{type:"button",className:"rounded border px-2 py-0.5 hover:bg-accent",onClick:()=>{(0,y.cY)("webterm.controls.clear"),r()},children:"clear"}),(0,n.jsx)(E.T,{onAttached:s?e=>s([e]):void 0}),(0,n.jsx)(A.u,{onAttached:s}),(0,n.jsx)(R,{}),i&&(0,n.jsxs)("button",{type:"button",onClick:i.onToggle,disabled:i.disabled,title:i.disabled?"마이크 사용 불가 (insecure context 등)":"".concat(i.phaseLabel," \xb7 xterm 으로 typing"),"data-elanous-action":"webterm-voice-toggle-controls","aria-pressed":i.active,className:(0,T.cn)("inline-flex items-center gap-1 rounded border px-2 py-0.5",i.active?"border-rose-300 bg-rose-100 text-rose-800 dark:border-rose-700 dark:bg-rose-950/40 dark:text-rose-100":"hover:bg-accent",i.disabled&&"cursor-not-allowed opacity-50"),children:[(0,n.jsx)("span",{className:(0,T.cn)("h-1.5 w-1.5 rounded-full",i.dotColor,("listening"===i.phase||"speaking"===i.phase)&&"animate-pulse"),"aria-hidden":"true"}),i.active?(0,n.jsx)(C.A,{className:"h-3.5 w-3.5"}):(0,n.jsx)(I.A,{className:"h-3.5 w-3.5"}),(0,n.jsx)("span",{children:"voice→stdin"})]}),!m&&!h&&(0,n.jsx)("button",{type:"button",disabled:f,className:"rounded border px-2 py-0.5 ".concat(f?"opacity-50":"hover:bg-accent"," text-rose-600 dark:text-rose-400"),onClick:()=>void j(),title:"start asciicast recording",children:"● record"}),m&&(0,n.jsx)("button",{type:"button",disabled:f,className:"rounded border px-2 py-0.5 ".concat(f?"opacity-50":"hover:bg-accent"," bg-rose-600 text-white animate-pulse"),onClick:()=>void N(),title:"stop + save .cast",children:"■ stop"}),h&&(0,n.jsx)("a",{href:(e=>{var t;if(!e)return"";let r=null!=(t=u.baseUrl)?t:"",n=e.includes("?")?"&":"?",a=u.token?"".concat(n,"auth=").concat(encodeURIComponent(u.token)):"";return"".concat(r).concat(e).concat(a)})(h.downloadUrl),download:"".concat(h.recorderId,".cast"),className:"rounded border border-emerald-500 px-2 py-0.5 text-emerald-600 hover:bg-emerald-50 dark:hover:bg-emerald-950",onClick:()=>(0,y.cY)("webterm.controls.download.click",{recorderId:h.recorderId}),title:"".concat(h.frameCount," frames \xb7 ").concat(h.elapsedSec.toFixed(1),"s"),children:"⬇ download .cast"}),h&&(0,n.jsx)("button",{type:"button",className:"rounded border px-2 py-0.5 text-muted-foreground hover:bg-accent",onClick:()=>b(null),title:"dismiss","aria-label":"dismiss download",children:"\xd7"}),(m||h)&&(0,n.jsxs)("span",{className:"ml-auto text-[11px] text-muted-foreground",children:[m&&"● recording",h&&!m&&"✓ ".concat(h.recorderId)]}),g&&(0,n.jsx)("span",{className:"ml-2 max-w-[40%] truncate text-[11px] text-rose-500",title:g,children:g})]})}var P=r(60469),U=r(17237),M=r(85780);let D="elanous.pwa.hwKeyboard",L=/^(Escape|Tab|ArrowUp|ArrowDown|ArrowLeft|ArrowRight|F([1-9]|1[0-2]))$/;function $(e,t){try{null==e||e.setItem(D,t?"1":"0")}catch(e){}}let F=[{key:"esc",label:"Esc",width:"wide",title:"Escape (vim normal mode)"},{key:"tab",label:"Tab",width:"wide",title:"Tab (autocomplete)"},{key:"shift-enter",label:"⇧⏎",width:"wide",title:"Shift+Enter (newline)"},{key:"left",label:"←",width:"narrow",title:"Left arrow"},{key:"down",label:"↓",width:"narrow",title:"Down arrow"},{key:"up",label:"↑",width:"narrow",title:"Up arrow"},{key:"right",label:"→",width:"narrow",title:"Right arrow"}];function Q(e){let{terminalId:t}=e,{sessionId:r}=(0,w.Q)(),[l,s]=(0,a.useState)(()=>(0,P.ox)(t));(0,a.useEffect)(()=>{let e=()=>s((0,P.ox)(t));return e(),(0,P.Ok)(e)},[t]);let i=(0,a.useCallback)(()=>{let e=(0,P.ox)(t);if(!e)return;let n=(0,U.dI)({bufferType:e.buffer.active.type,mouseTracking:e.modes.mouseTrackingMode});"scroll-pages"===n.kind?e.scrollPages(n.pages):r&&(0,P.WP)(t,n.data)},[t,r]),[o,c]=(0,a.useState)(!1),[d,u]=(0,a.useState)(!1),[m,p]=(0,a.useState)(!1);(0,a.useEffect)(()=>{p(function(e){try{return(null==e?void 0:e.getItem(D))==="1"}catch(e){return!1}}(window.localStorage));let e=e=>{var t;t=navigator.userAgent,!e.isComposing&&229!==e.keyCode&&"Unidentified"!==e.key&&"Process"!==e.key&&(L.test(e.key)||(e.ctrlKey||e.metaKey||e.altKey)&&1===e.key.length||/Android/i.test(t)&&1===e.key.length||0)&&p(t=>t||($(window.localStorage,!0),(0,y.cY)("webterm.modifier-bar.hw-keyboard",{key:1===e.key.length?"char":e.key}),!0))};return document.addEventListener("keydown",e,!0),()=>document.removeEventListener("keydown",e,!0)},[]);let h=(0,a.useCallback)(()=>{$(window.localStorage,!1),p(!1)},[]),b=(0,a.useRef)(!1),f=(0,a.useRef)(!1);b.current=o,f.current=d;let x=(0,a.useRef)(null),g=(0,a.useCallback)(()=>{b.current=!1,f.current=!1,c(!1),u(!1),(0,P.Ct)(t,{ctrl:!1,alt:!1}),null!==x.current&&(clearTimeout(x.current),x.current=null)},[t]);(0,a.useEffect)(()=>(0,P.oy)(t,g),[t,g]);let v=(0,a.useCallback)((e,t)=>{null!==x.current&&(clearTimeout(x.current),x.current=null),(e||t)&&(x.current=setTimeout(()=>{g(),(0,y.cY)("webterm.modbar.auto-release",{})},5e3))},[g]);(0,a.useEffect)(()=>()=>{g()},[g]);let k=(0,a.useCallback)(e=>{if(!r)return void(0,y.cY)("webterm.modbar.no-session",{key:e});let n={ctrl:b.current,alt:f.current},a=(0,M.bu)(e,n);(0,y.cY)("webterm.modbar.send",{key:e,ctrl:n.ctrl,alt:n.alt,bytes:a.length});try{(0,P.WP)(t,a)}catch(e){(0,y.cY)("webterm.modbar.send-error",{reason:String(e)})}(n.ctrl||n.alt)&&((0,P.ho)(t),g())},[r,t,g]),j=(0,a.useCallback)(()=>{let e=!b.current;b.current=e,c(e),(0,P.Ct)(t,{ctrl:e,alt:f.current}),v(e,f.current)},[v,t]),N=(0,a.useCallback)(()=>{let e=!f.current;f.current=e,u(e),(0,P.Ct)(t,{ctrl:b.current,alt:e}),v(b.current,e)},[v,t]),S=e=>["flex h-7 shrink-0 items-center justify-center rounded border border-border bg-card font-mono text-[11px] text-muted-foreground hover:bg-muted hover:border-primary hover:text-foreground active:translate-y-px disabled:opacity-50","wide"===e?"px-2 min-w-[36px]":"w-8"].join(" "),C=e=>["flex h-7 shrink-0 items-center justify-center rounded border font-mono text-[11px] px-2 min-w-[36px] active:translate-y-px disabled:opacity-50 transition-colors",e?"border-amber-400 bg-amber-100 text-amber-900 dark:border-amber-500 dark:bg-amber-900 dark:text-amber-100":"border-border bg-card text-muted-foreground hover:bg-muted hover:border-primary hover:text-foreground"].join(" ");return m?(0,n.jsx)("div",{className:"flex items-center border-b border-border bg-background/60 px-2 py-0.5","data-testid":"modifier-bar-collapsed",children:(0,n.jsx)("button",{type:"button",onClick:h,className:"rounded px-1.5 py-0.5 text-[11px] text-muted-foreground hover:text-foreground",title:"물리 키보드가 잡혀 접었다 — 누르면 Esc\xb7Tab\xb7화살표 키 줄을 다시 편다",children:"⌨ 보조 키"})}):(0,n.jsxs)("div",{className:"flex min-w-0 max-w-full flex-nowrap items-center gap-1 overflow-x-auto border-b border-border bg-background/60 px-2 py-1","data-testid":"modifier-bar",role:"toolbar","aria-label":"Mobile keyboard modifiers",children:[F.map(e=>(0,n.jsx)("button",{type:"button",className:S(e.width),onClick:()=>{k(e.key)},disabled:!r,"aria-label":e.title,title:e.title,"data-testid":"modbar-".concat(e.key),children:e.label},e.key)),(0,n.jsx)("button",{type:"button",className:S("wide"),onClick:i,disabled:!l||!r,"aria-label":"과거 내용 보기",title:"과거 내용 보기 — 한 쪽 위로","data-testid":"modbar-history",children:"⇡ 기록"}),(0,n.jsx)("span",{className:"mx-1 shrink-0 text-[10px] text-muted-foreground/60","aria-hidden":!0,children:"\xb7"}),(0,n.jsx)("button",{type:"button",className:C(o),onClick:j,disabled:!r,"aria-label":"Ctrl modifier ".concat(o?"active":"idle"),"aria-pressed":o,title:"Ctrl modifier — toggles. Combines with arrow keys (e.g. Ctrl+→ = next word). Auto-releases after 5s or one keystroke.","data-testid":"modbar-ctrl",children:"Ctrl"}),(0,n.jsx)("button",{type:"button",className:C(d),onClick:N,disabled:!r,"aria-label":"Alt modifier ".concat(d?"active":"idle"),"aria-pressed":d,title:"Alt modifier — toggles. Combines with Esc/Tab/arrows. Auto-releases after 5s or one keystroke.","data-testid":"modbar-alt",children:"Alt"})]})}var O=r(2202);function H(e){let{foreignActivityTick:t,onPeerCountChange:r}=e,{client:l,sessionId:s}=(0,w.Q)(),[i,o]=(0,a.useState)(0),[c,d]=(0,a.useState)(!1);(0,a.useEffect)(()=>{null==r||r(i)},[i,r]);let u=(0,a.useRef)(null),m=(0,a.useRef)(null),p=(0,a.useCallback)(async()=>{if(!s)return;u.current||(u.current=l.connectAcp({sessionId:s}));let e=u.current;try{let t=await e.send("terminal/peers/count",{sessionId:s});"number"==typeof(null==t?void 0:t.count)&&(o(t.count),(0,y.cY)("webterm.peers.count",{count:t.count}))}catch(e){(0,y.cY)("webterm.peers.count.error",{reason:String(e)})}},[l,s]);return((0,a.useEffect)(()=>{p();let e=()=>{"visible"===document.visibilityState&&p()};return document.addEventListener("visibilitychange",e),()=>{document.removeEventListener("visibilitychange",e)}},[p]),(0,a.useEffect)(()=>()=>{try{var e;null==(e=u.current)||e.close()}catch(e){}u.current=null,m.current&&clearTimeout(m.current)},[]),(0,a.useEffect)(()=>{t&&(d(!0),m.current&&clearTimeout(m.current),m.current=setTimeout(()=>{d(!1),m.current=null,p()},1800))},[t,p]),i<=1&&!c)?null:(0,n.jsxs)("div",{className:"flex items-center gap-2 border-b border-border bg-amber-500/10 px-2 py-0.5 text-[11px]",children:[(0,n.jsx)(O.A,{className:"h-3 w-3 text-amber-600","aria-hidden":!0}),i>1&&(0,n.jsxs)("span",{className:"font-mono text-amber-700 dark:text-amber-400",children:[i," devices"]}),c&&(0,n.jsx)("span",{className:"ml-auto rounded bg-amber-500 px-1.5 py-0.5 font-medium text-white animate-pulse",children:"\uD83D\uDC64 typing"})]})}var _=r(86103);function B(e){let{onAttached:t,pageWide:r=!0}=e,{config:s}=(0,w.Q)(),[i,o]=(0,a.useState)(!1),[c,d]=(0,a.useState)(!1),u=(0,a.useRef)(0),m=(0,a.useCallback)(async e=>{if(0!==e.length){if(!s.baseUrl)return void l.oR.error("Daemon URL 미설정 — Settings 에서 입력");d(!0),(0,y.cY)("webterm.dropzone.drop",{count:e.length,totalBytes:e.reduce((e,t)=>e+t.size,0)});try{let r=await (0,Y.K)(e.map(e=>({file:e,filename:e.name})),{baseUrl:s.baseUrl,...s.token?{token:s.token}:{}}),n=r.filter(e=>e.ok),a=r.filter(e=>!e.ok);n.length>0&&(l.oR.success(1===n.length?"\uD83D\uDCCE ".concat(n[0].meta.filename):"\uD83D\uDCCE ".concat(n.length," files dropped")),null==t||t(n.map(e=>e.meta))),a.length>0&&l.oR.error(1===a.length?"드롭 실패: ".concat(a[0].reason.slice(0,80)):"".concat(a.length," 파일 드롭 실패"))}finally{d(!1)}}},[s.baseUrl,s.token,t]);return((0,a.useEffect)(()=>{if(!r)return;let e=e=>{e.dataTransfer&&e.dataTransfer.types.includes("Files")&&(e.preventDefault(),u.current+=1,o(!0))},t=e=>{e.dataTransfer&&e.dataTransfer.types.includes("Files")&&e.preventDefault()},n=e=>{e.dataTransfer&&e.dataTransfer.types.includes("Files")&&(e.preventDefault(),u.current=Math.max(0,u.current-1),0===u.current&&o(!1))},a=e=>{if(!e.dataTransfer)return;let t=e.dataTransfer.files;t&&0!==t.length&&(e.preventDefault(),u.current=0,o(!1),m(Array.from(t)))};return document.addEventListener("dragenter",e),document.addEventListener("dragover",t),document.addEventListener("dragleave",n),document.addEventListener("drop",a),()=>{document.removeEventListener("dragenter",e),document.removeEventListener("dragover",t),document.removeEventListener("dragleave",n),document.removeEventListener("drop",a)}},[m,r]),i||c)?(0,n.jsx)("div",{className:"pointer-events-none fixed inset-0 z-50 flex items-center justify-center bg-primary/20 backdrop-blur-sm",children:(0,n.jsxs)("div",{className:"rounded-xl border-2 border-dashed border-primary bg-card px-6 py-4 text-center shadow-lg",children:[(0,n.jsx)(_.A,{className:"mx-auto h-10 w-10 text-primary","aria-hidden":!0}),(0,n.jsx)("div",{className:"mt-2 text-sm font-medium text-foreground",children:c?"업로드 중…":"Drop files to attach"}),(0,n.jsx)("div",{className:"mt-1 text-xs text-muted-foreground",children:c?"":"iCloud \xb7 Files.app \xb7 폴더 모두 지원"})]})}):null}var W=r(73140),q=r(68502),K=r(68893),V=r(56087),Z=r(52433),G=r(93557),J=r(33832),X=r(53779),ee=r(46290),et=r(68190),er=r(46243),en=r(80298),ea=r(58174),el=r(36761),es=r(23451);async function ei(e,t){if(!t||0===t.length)return null;try{let r=await e.fetchJson("/v1/sessions/store/".concat(encodeURIComponent(t),"?ifExists=1"));if(!r||!Array.isArray(r.messages))return null;let n=function(e){let t=[];return e.forEach((e,r)=>{let n=function(e,t){let r=e.role;if("tool"===r)return{...(0,es.$Q)("\uD83D\uDEE0️ ".concat(e.toolName||"tool")),id:"hydrate-t-".concat(t)};let n=function(e){if("string"==typeof e)return e;if(!Array.isArray(e))return"";let t=[];for(let n of e)if(n&&"object"==typeof n){let e=n.type;if("text"===e&&"string"==typeof n.text)t.push(n.text);else if("image"===e)t.push("\uD83D\uDCCE image");else if("audio"===e)t.push("\uD83D\uDCCE audio");else if("tool_use"===e){var r;let e=null!=(r=n.name)?r:"tool";t.push("\uD83D\uDEE0️ ".concat(e))}else"tool_result"===e&&t.push("\uD83D\uDEE0️ result")}return t.join("\n").trim()}(e.content);return 0===n.length?null:"user"===r?{...(0,es.tw)(n),id:"hydrate-u-".concat(t)}:"assistant"===r?{id:"hydrate-a-".concat(t),role:"assistant",text:n,timestamp:Date.now(),meta:{provider:"history"}}:"system"===r?null:{...(0,es.$Q)(n),id:"hydrate-m-".concat(t)}}(e,r);n&&t.push(n)}),t.slice(-200)}(r.messages);return(0,y.cY)("webterm.terminal-chat.hydrate.ok",{sessionId:t,serverCount:r.messages.length,mappedCount:n.length}),n}catch(e){return(0,y.cY)("webterm.terminal-chat.hydrate.skip",{sessionId:t,reason:e instanceof Error?e.message:String(e)}),null}}let eo=[":cwd",":capture",":peers",":tab next",":tab prev"];function ec(e){let t=(null!=e?e:"").replace(/\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~])/g,"").replace(/\r/g,"").trim();return t.length>0?t:"(no output)"}let ed=(0,a.forwardRef)(function(e,t){let{terminalId:r,open:s,onTabIntent:i,height:o,voice:c}=e,d="number"==typeof o&&Number.isFinite(o)&&o>0?o:void 0,{client:u,config:m,sessionId:p,setSessionId:h}=(0,w.Q)(),b=(0,a.useRef)(p),f=(0,a.useRef)(null),[x,g]=(0,a.useState)([]),[v,k]=(0,a.useState)(!1),[j,N]=(0,a.useState)(null),[S,E]=(0,a.useState)([]),[A,Y]=(0,a.useState)(!1),R=(0,a.useRef)(async()=>{}),z=(0,a.useRef)(!1);z.current=v;let P=(0,a.useRef)(null),[U,M]=(0,a.useState)(!1),D=(0,el.$)({enabled:!!(null==c?void 0:c.active)&&!U,language:"ko-KR"}),L=(0,a.useRef)(D);L.current=D,(0,a.useEffect)(()=>{b.current=p},[p]),(0,a.useEffect)(()=>{try{var e;null==(e=f.current)||e.close()}catch(e){}if(f.current=null,s&&p)return f.current=u.connectAcp({sessionId:p}),()=>{try{var e;null==(e=f.current)||e.close()}catch(e){}f.current=null}},[u,s,p]),(0,a.useEffect)(()=>{let e=f.current;if(e&&s&&p)return e.on("sessionUpdate",e=>{var t;let r=P.current;if(!r)return;let n=e.params;if(!n||n.sessionId!==p)return;let a=n.update;if(a&&"agent_message_chunk"===a.sessionUpdate&&(null==(t=a.content)?void 0:t.type)==="text"&&"string"==typeof a.content.text){let e=a.content.text;if(0===e.length)return;g(t=>t.map(t=>{var n;return t.id===r?{...t,text:(null!=(n=t.text)?n:"")+e}:t})),L.current.pushText(e)}})},[s,p]);let $=(0,a.useRef)(null);(0,a.useEffect)(()=>{if(!s||!p||$.current===p)return;$.current=p;let e=!1;return(async()=>{let t=await ei(u,p);e||null===t||g(t)})(),()=>{e=!0}},[u,s,p]);let F=(0,a.useCallback)(e=>{g(t=>[...t,e].slice(-200))},[]);(0,a.useImperativeHandle)(t,()=>({submitVoiceTranscript:e=>{let t=e.trim();if(t){if(z.current)return void(0,y.cY)("webterm.terminal-chat.voice.skip-pending",{len:t.length});(0,y.cY)("webterm.terminal-chat.voice.auto-send",{len:t.length}),R.current(t)}}}),[]);let Q=(0,a.useCallback)(()=>{let e=b.current;return e?(f.current||(f.current=u.connectAcp({sessionId:e})),f.current):null},[u]),O=(0,a.useMemo)(()=>({client:u,sessionId:p,provider:m.provider,setSessionId:h,daemon:{baseUrl:m.baseUrl,...m.token?{token:m.token}:{}},messages:x}),[u,m.baseUrl,m.provider,m.token,x,p,h]),H=(0,a.useCallback)(e=>{E(t=>[...t,...e]),(0,y.cY)("webterm.terminal-chat.attach.queue",{terminalId:r,added:e.length,filenames:e.map(e=>e.filename)})},[r]),_=(0,a.useCallback)(e=>{E(t=>t.filter(t=>t.id!==e))},[]),B=(0,a.useCallback)(async e=>{let t=e.startsWith(":")?null:await (0,es.yN)(e,O);if(t){"__CLEAR__"===t.text?g([]):F((0,es.$Q)(t.text,r)),t.newSessionId&&h(t.newSessionId);return}if(!p)return void F((0,es.$Q)("session 미설정",r));let n=Q();if(!n)return void F((0,es.$Q)("session 미설정",r));let a=await n.send("terminal/repl/exec",{sessionId:p,terminalId:r,line:e});F((0,es.$Q)(ec(null==a?void 0:a.output),r)),(null==a?void 0:a.sessionIdChange)&&h(a.sessionIdChange),(null==a?void 0:a.tabIntent)!==void 0&&(null==i||i(a.tabIntent),F((0,es.$Q)("tab intent → ".concat(String(a.tabIntent)),r))),(null==a?void 0:a.injectPath)&&F((0,es.$Q)("captured → ".concat(a.injectPath),r)),(null==a?void 0:a.agentChatModeEnter)&&F((0,es.$Q)("agent chat mode hint — terminal dock already runs plain text as agent turns",r))},[F,O,Q,i,p,h,r]),ed=(0,a.useCallback)(async()=>{let e=b.current;if(e&&j)try{var t;let n=Q();if(!n)return;let a=await n.send("terminal/repl/agent/abort",{sessionId:e,terminalId:r});(0,y.cY)("webterm.terminal-chat.abort",{terminalId:r,aborted:null!=(t=null==a?void 0:a.aborted)&&t}),F((0,es.$Q)((null==a?void 0:a.aborted)?"agent turn aborted":"no active agent turn to abort",r))}catch(t){let e=t instanceof Error?t.message:String(t);F((0,es.$Q)("abort failed: ".concat(e),r))}finally{k(!1),N(null)}},[F,Q,j,r]),eu=(0,a.useCallback)(async e=>{E([]);let t=S.filter(e=>!("string"==typeof e.path&&e.path.length>0)).length;if(t>0){let e=1===t?"첨부 1건이 path 누락으로 누락됐습니다":"첨부 ".concat(t,"건이 path 누락으로 누락됐습니다");l.oR.warning(e),F((0,es.$Q)("⚠ ".concat(e),r)),(0,y.cY)("webterm.terminal-chat.attach.dropped",{terminalId:r,droppedCount:t,totalCount:S.length})}e.length>0&&F((0,es.tw)(e,r)),S.length>0&&F((0,es.$Q)("\uD83D\uDCCE attached: ".concat(S.map(e=>e.filename).join(", ")),r));let n=e.trim();if(n||0!==S.length){k(!0);try{if((0,es.FM)(n))return void await B(n);if(!p)return void F((0,es.$Q)("session 미설정",r));let e=Q();if(!e)return void F((0,es.$Q)("session 미설정",r));N(n);let t="assistant-".concat(Date.now(),"-").concat(Math.random().toString(36).slice(2,6));P.current=t,F({id:t,role:"assistant",text:"",timestamp:Date.now(),terminalId:r}),(0,y.cY)("webterm.terminal-chat.turn.start",{terminalId:r,sessionId:p,len:n.length,attachCount:S.length,placeholderId:t});let a=S.filter(e=>e.path).map(e=>"[attached] ".concat(e.path)),l=a.length>0?"".concat(a.join("\n"),"\n\n").concat(n).trimEnd():n,s=await e.send("terminal/repl/exec",{sessionId:p,terminalId:r,line:":agent ".concat(l)});(null==s?void 0:s.agent)?(g(e=>e.map(e=>e.id===t?{...e,text:e.text&&e.text.length>=s.agent.markdown.length?e.text:s.agent.markdown,meta:{provider:s.agent.modelLabel,stopReason:s.agent.stopReason}}:e)),L.current.flush()):(g(e=>e.filter(e=>e.id!==t)),F((0,es.$Q)(ec(null==s?void 0:s.output),r))),(0,y.cY)("webterm.terminal-chat.turn.end",{terminalId:r,hasAgent:!!(null==s?void 0:s.agent)})}catch(n){let e=n instanceof Error?n.message:String(n),t=P.current;t&&g(e=>e.filter(e=>e.id!==t)),L.current.cancel(),F((0,es.$Q)("error: ".concat(e),r)),l.oR.error("terminal chat failed: ".concat(e))}finally{P.current=null,k(!1),N(null)}}},[F,Q,B,S,p,r]);return((0,a.useEffect)(()=>{R.current=eu},[eu]),s)?(0,n.jsxs)("div",{className:"shrink-0 border-t border-border bg-background/95","data-terminal-chat-dock":!0,children:[(0,n.jsxs)("div",{className:"flex items-center gap-2 border-b border-border/80 px-3 py-2",children:[(0,n.jsxs)("div",{className:"flex min-w-0 flex-1 items-center gap-2",children:[(0,n.jsx)("span",{className:"inline-flex h-7 w-7 items-center justify-center rounded-md border border-primary/30 bg-primary/10 text-primary",children:(0,n.jsx)(q.A,{className:"h-4 w-4"})}),(0,n.jsxs)("div",{className:"min-w-0",children:[(0,n.jsx)("div",{className:"truncate text-sm font-medium",children:"Terminal Chat Dock"}),(0,n.jsxs)("div",{className:"truncate text-[11px] text-muted-foreground",children:[r," \xb7 plain text = contextual agent turn \xb7 ",(0,n.jsx)("code",{className:"rounded bg-muted px-1",children:":commands"})," stay local"]})]})]}),(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[c&&(0,n.jsxs)("button",{type:"button",onClick:c.onToggle,disabled:c.disabled,title:c.disabled?"마이크 사용 불가 (insecure context 등)":c.phaseLabel,"data-elanous-action":"webterm-voice-toggle-dock","aria-pressed":c.active,className:(0,T.cn)("inline-flex h-7 items-center gap-1.5 rounded-md border px-2 text-[11px]",c.active?"border-rose-300 bg-rose-100 text-rose-800 dark:border-rose-700 dark:bg-rose-950/40 dark:text-rose-100":"border-border hover:bg-accent",c.disabled&&"cursor-not-allowed opacity-50"),children:[(0,n.jsx)("span",{className:(0,T.cn)("h-1.5 w-1.5 rounded-full",c.dotColor,("listening"===c.phase||"speaking"===c.phase)&&"animate-pulse"),"aria-hidden":"true"}),c.active?(0,n.jsx)(C.A,{className:"h-3.5 w-3.5"}):(0,n.jsx)(I.A,{className:"h-3.5 w-3.5"}),(0,n.jsx)("span",{className:"hidden sm:inline",children:c.phaseLabel})]}),c&&c.active&&D.supported&&(0,n.jsx)("button",{type:"button",onClick:()=>{U||L.current.cancel(),M(e=>!e)},title:U?"음성 응답 켜기":"음성 응답 끄기","data-elanous-action":"webterm-tts-mute-toggle","aria-pressed":U,className:(0,T.cn)("inline-flex h-7 items-center justify-center rounded-md border px-2 text-[11px]",U?"border-border bg-muted text-muted-foreground":"border-fuchsia-300 bg-fuchsia-50 text-fuchsia-800 dark:border-fuchsia-700 dark:bg-fuchsia-950/40 dark:text-fuchsia-100"),children:U?(0,n.jsx)(K.A,{className:"h-3.5 w-3.5"}):(0,n.jsx)(V.A,{className:"h-3.5 w-3.5"})}),(0,n.jsx)(er.Qh,{}),(0,n.jsx)(W.vG,{children:(0,n.jsx)(et.rm,{})}),(0,n.jsx)(W.vG,{children:(0,n.jsx)(en.D,{})}),j&&(0,n.jsxs)(ea.$,{variant:"destructive",size:"sm",onClick:()=>void ed(),title:"abort active terminal-context agent turn",children:[(0,n.jsx)(Z.A,{className:"h-3.5 w-3.5"}),"Stop"]}),(0,n.jsxs)("div",{className:"relative",children:[(0,n.jsx)(ea.$,{variant:"outline",size:"icon-sm",onClick:()=>Y(e=>!e),"aria-label":"terminal quick commands",title:"terminal quick commands",children:(0,n.jsx)(G.A,{className:"h-3.5 w-3.5"})}),A&&(0,n.jsx)("div",{className:"absolute right-0 top-full z-40 mt-1 w-44 rounded-md border border-border bg-popover p-1 shadow-md",children:eo.map(e=>(0,n.jsx)("button",{type:"button",className:"block w-full rounded px-2 py-1 text-left font-mono text-[11px] hover:bg-accent",onClick:()=>{Y(!1),eu(e)},children:e},e))})]})]})]}),j&&(0,n.jsxs)("div",{className:"flex items-center gap-2 border-b border-border/70 px-3 py-2 text-[11px] text-muted-foreground",children:[(0,n.jsx)(J.A,{className:"h-3.5 w-3.5 animate-spin"}),(0,n.jsxs)("span",{className:"truncate",children:["terminal-context agent turn in progress",j.length>0?" \xb7 ".concat(j.slice(0,120)).concat(j.length>120?"…":""):""]})]}),(0,n.jsxs)("div",{className:(0,T.cn)("grid grid-rows-[1fr_auto]",void 0===d?"h-[clamp(160px,30vh,360px)] min-h-[200px]":void 0),...void 0===d?{}:{style:{height:d}},children:[(0,n.jsx)(X.D,{messages:x,pending:v,tabId:"dock-".concat(r)}),(0,n.jsx)(ee.V,{onSubmit:eu,disabled:v,attachments:S,onAttached:H,onRemoveAttachment:_,tabId:"dock-".concat(r),...c?{voice:c}:{}})]})]}):null});var eu=r(72449),em=r(18678);let ep=/^100\.(6[4-9]|[7-9]\d|1[01]\d|12[0-7])\./;function eh(){if(!window.location)return{isSecure:!1,reason:"unknown",hostname:"",protocol:""};let e=function(e,t){let r="https:"===e,n="http:"===e;return"localhost"===t||"127.0.0.1"===t||"[::1]"===t||"::1"===t?{isSecure:!0,reason:"localhost",hostname:t,protocol:e}:r&&/\.ts\.net$/i.test(t)?{isSecure:!0,reason:"https-tsnet",hostname:t,protocol:e}:r?{isSecure:!0,reason:"https-other",hostname:t,protocol:e}:n&&ep.test(t)?{isSecure:!1,reason:"http-tailscale",hostname:t,protocol:e,guidance:"Tailscale 100.x 주소는 HTTP라 마이크 권한이 차단됩니다. `tailscale serve` 또는 funnel 로 ts.net HTTPS 호스트를 노출하면 마이크가 동작합니다."}:n?{isSecure:!1,reason:"http-other",hostname:t,protocol:e,guidance:"브라우저는 HTTP origin 에서 마이크 접근을 차단합니다. HTTPS 로 접속하거나 localhost 로 옮기세요."}:{isSecure:!1,reason:"unknown",hostname:t,protocol:e}}(window.location.protocol,window.location.hostname);return e.isSecure&&!1===window.isSecureContext?{...e,isSecure:!1,reason:"unknown",guidance:"현재 origin 이 secure context 가 아닙니다 (브라우저 판정). HTTPS 로 접속하세요."}:e}let eb="elanous.webterm.voiceBanner.dismissed",ef={isSecure:!1,reason:"unknown",hostname:"",protocol:""};function ex(){var e;let{statusOverride:t}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},[r,l]=(0,a.useState)(!1),[s,i]=(0,a.useState)(null!=t?t:ef);if((0,a.useEffect)(()=>{l(function(){try{return"1"===window.sessionStorage.getItem(eb)}catch(e){return!1}}()),i(null!=t?t:eh())},[t]),s.isSecure||r)return null;let o="http-tailscale"===s.reason?"\uD83C\uDF99 Tailscale HTTP 에서 마이크가 차단됩니다":"\uD83C\uDF99 마이크 사용을 위해 HTTPS 가 필요합니다";return(0,n.jsxs)("div",{role:"alert","aria-live":"polite","data-testid":"webterm-voice-banner","data-reason":s.reason,className:"flex items-start gap-2 border-b border-amber-300 bg-amber-50 px-3 py-2 text-[12px] text-amber-900 dark:border-amber-700 dark:bg-amber-950/40 dark:text-amber-100",children:[(0,n.jsx)(eu.A,{className:"mt-[1px] h-3.5 w-3.5 shrink-0","aria-hidden":"true"}),(0,n.jsxs)("div",{className:"flex-1",children:[(0,n.jsx)("div",{className:"font-medium",children:o}),(0,n.jsx)("div",{className:"mt-0.5 text-amber-800/90 dark:text-amber-200/80",children:null!=(e=s.guidance)?e:"브라우저는 secure context (HTTPS \xb7 localhost) 에서만 마이크를 허용합니다."}),"http-tailscale"===s.reason&&(0,n.jsxs)("div",{className:"mt-1 font-mono text-[11px] text-amber-700 dark:text-amber-200/90",children:[(0,n.jsx)("code",{children:"tailscale serve --bg --https=443 31415"})," ","or"," ",(0,n.jsx)("a",{href:"https://tailscale.com/kb/1242/tailscale-serve",target:"_blank",rel:"noopener noreferrer",className:"underline hover:text-amber-900 dark:hover:text-amber-50",children:"ts.net HTTPS 가이드"})]})]}),(0,n.jsx)("button",{type:"button",onClick:()=>{try{window.sessionStorage.setItem(eb,"1")}catch(e){}l(!0)},"aria-label":"dismiss banner",title:"이 창을 닫을 때까지 숨기기",className:"rounded p-0.5 text-amber-700 hover:bg-amber-100 dark:text-amber-200 dark:hover:bg-amber-900/40",children:(0,n.jsx)(em.A,{className:"h-3.5 w-3.5"})})]})}async function eg(e){var t;let{terminalId:r,paths:n}=e,a=null==(t=e.alsoCopyToClipboard)||t,l=n.filter(e=>"string"==typeof e&&e.length>0).map(e=>"'".concat(e.replace(/'/g,"'\\''"),"'")).join(" ");if(!l)return{injected:!1,copied:!1};let s="".concat(l," "),i=!1;try{(i=(0,P.WP)(r,s))?(0,y.cY)("webterm.attach.inject.ok",{terminalId:r,pathCount:n.length,bytes:s.length}):(0,y.cY)("webterm.attach.inject.error",{terminalId:r,reason:"no-sender"})}catch(e){(0,y.cY)("webterm.attach.inject.error",{terminalId:r,reason:String(e)})}let o=!1;if(a&&"undefined"!=typeof navigator&&navigator.clipboard)try{await navigator.clipboard.writeText(l),o=!0,(0,y.cY)("webterm.attach.clipboard.ok",{pathCount:n.length})}catch(e){(0,y.cY)("webterm.attach.clipboard.skip",{reason:String(e)})}return{injected:i,copied:o}}var ev=r(55489),ew=r(43398),ey=r(48595),ek=r(69668);function ej(e){return e.length<=32?e:"…".concat(e.slice(-32))}function eN(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Date.now();if("number"!=typeof e||!Number.isFinite(e)||!Number.isFinite(t)||e>t)return null;let r=new Date(e);return Number.isFinite(r.getTime())?(0,ek.KW)(r.toISOString(),t):null}function eS(e){let t=new Map,r=new Set,n=new Set,a=[];for(let r of e){var l,s;if(n.has(r.id))continue;n.add(r.id),a.push(r);let e=null==(l=r.runId)?void 0:l.trim();if(!e)continue;let i=null!=(s=t.get(e))?s:[];i.push(r),t.set(e,i)}let i=[];for(let[e,n]of t){let t=function(e){let t=e.filter(e=>e.alive&&Number.isFinite(e.startedAt));if(0===t.length)return;let r=Math.max(...t.map(e=>{let{startedAt:t}=e;return t})),n=t.filter(e=>{let{startedAt:t}=e;return t===r});return 1===n.length?n[0]:void 0}(n);if(!t){for(let e of n)r.add(e.id);continue}i.push({runId:e,split:t.id,tabs:n.filter(e=>e.id!==t.id).map(e=>{let{id:t}=e;return t})})}let o=new Set(i.flatMap(e=>{let{split:t,tabs:r}=e;return[t,...r]}));return{layouts:i,unknown:a.filter(e=>{let{id:t}=e;return r.has(t)&&!o.has(t)}).map(e=>{let{id:t}=e;return{id:t,reason:"relationship-unavailable"}})}}function eC(e){return{layouts:e.layouts.map(e=>{let{runId:t,split:r,tabs:n}=e;return{runId:t,slots:[{terminalId:r,position:"split"},...n.map(e=>({terminalId:e,position:"tab"}))]}}),unknown:e.unknown.map(e=>({...e}))}}let eI=["terminal","observe","pty-list"],eT="elanous.webterm.activeId",eE="elanous.webterm.panelsMinimized",eA="elanous.webterm.chatDockOpen";function eY(e){return e.sourceRoot?{sourceRoot:e.sourceRoot.dbPath}:{}}function eR(e){let{layout:t,sessionId:r,onForeignInputActivity:a,terminalIds:l,activeId:s=null,visible:i=!0,clearRequests:c}=e,d=t.layouts.flatMap(e=>e.slots),u=new Map(d.map(e=>[e.terminalId,e])),m=new Set(t.layouts.map(e=>{var t;return null==(t=e.slots[0])?void 0:t.terminalId}).filter(e=>!!e)),p=void 0===l?d.map(e=>e.terminalId):[...new Set([...l,...s?[s]:[],...d.map(e=>e.terminalId)])],h=new Set(d.length>0?d.map(e=>e.terminalId):s?[s]:[]);return(0,n.jsxs)("div",{className:i?"grid h-full min-h-0 grid-cols-2 gap-2 p-2":"hidden","aria-label":"런별 터미널 배치",children:[t.layouts.map(e=>{let{runId:t}=e;return(0,n.jsx)("section",{className:"sr-only","aria-label":"런 ".concat(t," 터미널")},t)}),p.map(e=>{var t,l;let d=u.get(e),p=i&&h.has(e),b=null!=(t=null==d?void 0:d.position)?t:e===s?"single":"inactive-tab";return(0,n.jsxs)("div",{className:p?"".concat(m.has(e)?"col-start-1 ":"").concat((null==d?void 0:d.position)==="split"?"min-h-0 border border-emerald-600":(null==d?void 0:d.position)==="tab"?"min-h-0 border border-zinc-700":"col-span-2 h-full min-h-0"):"hidden","data-pane-position":b,"data-terminal-id":e,children:[d&&(0,n.jsxs)("p",{className:"sr-only",children:["split"===d.position?"분할 터미널":"탭 터미널",": ",e]}),(0,n.jsx)(o,{sessionId:r,terminalId:e,clearRequest:null!=(l=null==c?void 0:c[e])?l:0,onForeignInputActivity:a},e)]},e)}),t.unknown.map(e=>{let{id:t,reason:r}=e;return(0,n.jsxs)("p",{className:"text-xs text-muted-foreground","data-terminal-id":t,"data-pane-relationship":r,children:["터미널 ",t,": 관계를 알 수 없어 배치하지 않았습니다."]},t)})]})}function ez(){var e,t,r;let{initialPtyId:s=null,onPtySelection:i}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{client:o,config:c,sessionId:u}=(0,w.Q)(),{isCoarsePointer:m}=function(){let[e,t]=(0,a.useState)(!1);return(0,a.useEffect)(()=>{if(!window.matchMedia)return;let e=window.matchMedia("(pointer: coarse)");t(e.matches);let r=e=>{t(e.matches)};return"function"==typeof e.addEventListener?(e.addEventListener("change",r),()=>e.removeEventListener("change",r)):"function"==typeof e.addListener?(e.addListener(r),()=>e.removeListener(r)):void 0},[]),{isCoarsePointer:e}}(),{compact:p}=(0,v.K)(),[h,x]=(0,a.useState)(null),[k,j]=(0,a.useState)({}),[N,C]=(0,a.useState)([]),[I,T]=(0,a.useState)(!1),[E,A]=(0,a.useState)(null),[Y,R]=(0,a.useState)(null),[U,M]=(0,a.useState)(!1);(0,a.useEffect)(()=>{var e,t;let r=null!=(t=null==(e=window.location)?void 0:e.search)?t:"",n=function(e){let t=new URLSearchParams(e).get("wall");return t?t.split(",").map(e=>e.trim()).filter(Boolean).slice(0,3):[]}(r);n.length&&R(n),"1"===new URLSearchParams(r).get("stage")&&M(!0)},[]);let[D,L]=(0,a.useState)({status:"pending"}),$=function(e,t){let r="ready"===e.status&&"local"===e.issuedBy&&"restored-tab"!==e.fallbackReason,n="ready"===e.status&&e.fallbackReason?e.fallbackReason:"사유 미상";return{placeholder:t?null:"pending"===e.status?e.slow?"데몬이 느립니다 — 터미널을 만드는 중… (기다리는 중)":"터미널 이름을 준비하는 중…":"터미널 이름을 로컬에서 정했습니다 (".concat(n,")."),fallbackBanner:r?"터미널 이름을 로컬에서 정했습니다 (".concat(n,"). 데몬 발급을 확인하지 못했습니다."):null}}(D,null!==h),F=(0,a.useCallback)(e=>{L(e),"pending"===e.status&&x(null)},[]),O=(0,a.useRef)(!1),_=(0,a.useRef)(!1),[W,q]=(0,a.useState)("terminal"),K={view:W,buttons:eI.map(e=>({view:e,selected:e===W}))},V=(0,a.useCallback)(e=>{q(t=>"observe"===e&&"observe"===t?"terminal":e)},[]),[Z,G]=(0,a.useState)(!!s),[J,X]=(0,a.useState)([]),[ee,et]=(0,a.useState)(),[er,en]=(0,a.useState)(new Map),[ea,el]=(0,a.useState)("loading"),[es,ei]=(0,a.useState)(null),[eo,ec]=(0,a.useState)(null),eu=(0,a.useRef)(!1),em=null!=(r=null==es?void 0:es.id)?r:null,ep=es?(0,ey.x3)(es):null,[eb,ef]=(0,a.useState)("raw"),[ek,ez]=(0,a.useState)(new Map),[eP,eU]=(0,a.useState)(new Map),[eM,eD]=(0,a.useState)({status:"unrequested"}),eL=(0,a.useRef)(0),e$=(0,a.useRef)(0);(0,a.useEffect)(()=>{if("terminal"!==W&&"pty-list"!==W)return;let e=!1;el("loading");let t=setTimeout(()=>{(async()=>{try{let[t,r]=await Promise.all([o.listTerminals((0,ey.tC)(Z)),o.listProgressFrames().catch(e=>((0,y.cY)("webterm.pty-list.progress.error",{reason:String(e)}),null))]);if(e)return;X((0,ey.xu)(t.terminals)),et(t.scope),en(r?(0,ey.gA)(r.logs):new Map),el("idle")}catch(t){if(e)return;X([]),et(void 0),en(new Map),el("error"),(0,y.cY)("webterm.pty-list.error",{reason:String(t)})}})()},"terminal"!==W||s?0:1200);return()=>{e=!0,clearTimeout(t)}},[o,Z,W,s]),(0,a.useEffect)(()=>{null===ep||J.some(e=>(0,ey.x3)(e)===ep)||(eL.current+=1,e$.current+=1,ei(null),eD({status:"unrequested"}))},[J,ep]);let eF=(0,a.useCallback)((e,t)=>{let{id:r}=e,n=(0,ey.x3)(e),a=++eL.current;if("raw"===t){ez(e=>new Map(e).set(n,{status:"loading"})),o.fetchTerminalScrollback(e.id,100,eY(e)).then(e=>{eL.current===a&&e.id===r&&ez(t=>new Map(t).set(n,{status:"ready",scrollback:e.scrollback}))}).catch(e=>{eL.current===a&&(ez(e=>new Map(e).set(n,{status:"error"})),(0,y.cY)("webterm.pty-list.scrollback.error",{id:r,reason:String(e)}))});return}eU(e=>new Map(e).set(n,{status:"loading"})),o.fetchTerminalFrame(e.id,eY(e)).then(e=>{eL.current===a&&e.id===r&&eU(t=>new Map(t).set(n,{status:"ready",frame:e.frame,frameAt:e.frameAt,frameSource:e.frameSource}))}).catch(e=>{eL.current===a&&(eU(e=>new Map(e).set(n,{status:"error"})),(0,y.cY)("webterm.pty-list.frame.error",{id:r,reason:String(e)}))})},[o]),eQ=(0,a.useCallback)(function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],{id:r}=e;if(t&&(T(!1),A(e),null==i||i(e)),ep===(0,ey.x3)(e))return;let n=++e$.current;ei(e),eD({status:"loading"}),eF(e,eb),o.fetchTerminalLineage(r).then(e=>{e$.current===n&&e.key===r&&eD({status:"ready",lineage:e})}).catch(e=>{e$.current===n&&(eD({status:"error"}),(0,y.cY)("webterm.pty-list.lineage.error",{id:r,reason:String(e)}))})},[o,i,eb,eF,ep]);(0,a.useEffect)(()=>{if(eu.current||"loading"===ea||(eu.current=!0,!s))return;if("error"===ea){ec({kind:"list-unavailable"}),q("pty-list"),(0,y.cY)("webterm.initial-pty-selection",{ptyId:s,kind:"list-unavailable",reason:"pty-list-error"});return}let e=(0,ey.hH)(s,J);ec(e),"selected"!==e.kind&&q("pty-list"),(0,y.cY)("webterm.initial-pty-selection",{ptyId:s,kind:e.kind,reason:e.reason}),"selected"===e.kind&&(eQ(e.terminal),A(e.terminal))},[eQ,s,ea,J]);let eO=(0,a.useCallback)(e=>{e!==eb&&(ef(e),es&&eF(es,e))},[eb,eF,es]),eH=(0,a.useCallback)(async e=>{var t;let r=window.prompt("새 PTY 이름을 입력하세요.",null!=(t=e.nickname)?t:"");if(null!==r)try{let t=await o.renameTerminal(e.id,r),n=function(e){switch(e.status){case"success":return"PTY 이름을 '".concat(e.name,"'(으)로 바꿨습니다.");case"invalid-name":return"이 이름은 사용할 수 없습니다. 다른 이름을 입력해 주세요.";case"unknown-pty":return"이 PTY를 찾을 수 없습니다. 목록을 새로고침한 뒤 다시 시도해 주세요.";case"denied":return"이 PTY의 이름을 바꿀 권한이 없습니다.";case"failed":return"PTY 이름 변경에 실패했습니다. 잠시 후 다시 시도해 주세요.";case"owner-unreachable":return"PTY 소유 프로세스에 연결할 수 없어 이름을 바꾸지 못했습니다.";default:return e}}(t);"success"===t.status?l.oR.success(n):l.oR.error(n)}catch(e){l.oR.error("PTY 이름 변경 요청에 실패했습니다: ".concat(String(e)))}},[o]),e_=(0,a.useMemo)(()=>(0,ey.lH)(Z,J,ee,ep,ek,eb,eP),[eP,Z,J,ee,eb,ek,ep]),eB=(0,a.useMemo)(()=>(0,ey.Kh)(em,eM),[eM,em]),eW=(0,a.useMemo)(()=>(function(e,t){let r=t.trim();return r?{layouts:e.layouts.filter(e=>{let{slots:t}=e;return t.some(e=>e.terminalId===r)}).map(e=>({runId:e.runId,slots:e.slots.map(e=>({...e}))})),unknown:e.unknown.map(e=>({...e}))}:{layouts:[],unknown:e.unknown.map(e=>({...e}))}})(null===E&&(null===s||I)?eC(eS(J)):eC(eS(J.filter(e=>{var t;return e.id!==(null!=(t=null==E?void 0:E.id)?t:s)&&N.includes(e.id)}))),null!=h?h:""),[J,N,E,I,s,h]);(0,a.useEffect)(()=>{if(O.current||s||"loading"===ea)return;if(0===J.length){_.current||(_.current=!0,(0,y.cY)("webterm.initial-selection",{skipped:!0,reason:"no-terminals",listState:ea}));return}O.current=!0;let e=(0,ey.Dw)({storedId:null,fallbackId:h,terminals:J});(0,y.cY)("webterm.initial-selection",{terminalId:e.terminalId,reason:e.reason,rowCount:J.length}),e.terminalId!==h&&x(e.terminalId)},[J,ea]);let[eq,eK]=(0,a.useState)(0),[eV,eZ]=(0,a.useState)(!1),[eG,eJ]=(0,a.useState)(!0),[eX,e0]=(0,a.useState)(!1),[e1,e2]=(0,a.useState)(0),[e5,e3]=(0,a.useState)(null),e8=(0,a.useCallback)(e=>{e3({intent:e,nonce:Date.now()})},[]),e4=(0,a.useRef)(null),[e7,e9]=(0,a.useState)("none"),e6=(0,a.useRef)(e7);e6.current=e7;let te=(0,a.useRef)(h);te.current=h;let tt=(0,a.useCallback)(e=>{let t=e.trim();if(!t)return;let r=e6.current;if("controls"===r){let e=te.current;if(!e)return;if(!(0,P.WP)(e,t+" ")){(0,y.cY)("webterm.voice.stdin-inject-failed",{len:t.length,terminalId:e,reason:"no-sender"}),l.oR.error("터미널 입력 전송 실패 — 터미널 연결을 확인하고 다시 말해 주세요.");return}(0,y.cY)("webterm.voice.stdin-inject",{len:t.length,terminalId:e})}else if("dock"===r){var n;null==(n=e4.current)||n.submitVoiceTranscript(t)}else(0,y.cY)("webterm.voice.transcript-no-source",{len:t.length})},[]),tr=o.voiceWsUrl(),tn=(0,ev.sS)({wsUrl:tr,...c.token?{token:c.token}:{},onTranscript:tt}),ta=(0,a.useMemo)(()=>eh(),[]),tl=!c.baseUrl||!ta.isSecure,ts=(0,a.useCallback)(()=>{tn.active&&"dock"===e7?(e9("none"),tn.toggle()):(e9("dock"),tn.active||tn.toggle())},[tn,e7]),ti=(0,a.useCallback)(()=>{tn.active&&"controls"===e7?(e9("none"),tn.toggle()):(e9("controls"),tn.active||tn.toggle())},[tn,e7]),to=(0,a.useMemo)(()=>({active:tn.active&&"dock"===e7,phase:tn.phase,dotColor:ew.x[tn.phase],phaseLabel:ew.g[tn.phase],disabled:tl,onToggle:ts}),[tn.active,tn.phase,e7,tl,ts]),tc=(0,a.useMemo)(()=>({active:tn.active&&"controls"===e7,phase:tn.phase,dotColor:ew.x[tn.phase],phaseLabel:ew.g[tn.phase],disabled:tl,onToggle:ti}),[tn.active,tn.phase,e7,tl,ti]),td=(0,a.useRef)(ts);td.current=ts,(0,a.useEffect)(()=>{let e=e=>{"m"===e.key.toLowerCase()&&e.shiftKey&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),(0,y.cY)("webterm.voice.shortcut.toggle"),eJ(!0),td.current())};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[]),(0,a.useEffect)(()=>{let e=window.localStorage.getItem(eT);e&&e.length>0&&(!s||e!==s)&&(x(e),O.current=!0),"1"===window.localStorage.getItem(eE)&&eZ(!0),"0"===window.localStorage.getItem(eA)&&eJ(!1)},[]);let tu=(0,a.useCallback)(async e=>{if(!u||!h||0===e.length)return;let t=e.map(e=>e.path).filter(e=>"string"==typeof e&&e.length>0);if(0===t.length)return void(0,y.cY)("webterm.attach.no-path",{count:e.length});let r=await eg({terminalId:h,paths:t});if(r.injected){let e=1===t.length?"터미널에 path 첨부됨":"".concat(t.length," paths 터미널에 첨부됨"),n=r.copied?" \xb7 clipboard 도 복사":"";l.oR.success(e+n)}else l.oR.error("터미널 inject 실패 — 직접 paste 해주세요")},[o,u,h]),tm=(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("button",{type:"button","aria-pressed":K.buttons[0].selected,onClick:()=>{A(null),T(!0),V("terminal")},className:"rounded px-2 py-1 text-xs ".concat(K.buttons[0].selected?"bg-emerald-700 text-white":"bg-zinc-800 text-zinc-300 hover:bg-zinc-700"),children:"터미널"}),(0,n.jsxs)("button",{type:"button","aria-pressed":K.buttons[1].selected,onClick:()=>{A(null),T(!0),V("observe")},className:"rounded px-2 py-1 text-xs ".concat(K.buttons[1].selected?"bg-emerald-700 text-white":"bg-zinc-800 text-zinc-300 hover:bg-zinc-700"),title:"자기신고하는 elanous 대시보드 TUI 를 라이브로 관측(읽기 전용)",children:["\uD83D\uDDA5 TUI 관측 ",K.buttons[1].selected?"ON":"OFF"]}),(0,n.jsx)("button",{type:"button","aria-pressed":K.buttons[2].selected,onClick:()=>{A(null),T(!0),V("pty-list")},className:"rounded px-2 py-1 text-xs ".concat(K.buttons[2].selected?"bg-emerald-700 text-white":"bg-zinc-800 text-zinc-300 hover:bg-zinc-700"),children:"PTY 목록"}),(0,n.jsx)("button",{type:"button","aria-pressed":null!==Y,onClick:()=>R(e=>null===e?[]:null),className:"rounded px-2 py-1 text-xs ".concat(null!==Y?"bg-emerald-700 text-white":"bg-zinc-800 text-zinc-300 hover:bg-zinc-700"),"data-elanous-action":"pty-wall",children:"▦ 나란히"})]}),tp=h&&(0,n.jsx)(z,{terminalId:h,onClear:()=>j(e=>{var t;return{...e,[h]:(null!=(t=e[h])?t:0)+1}}),onRecordingChange:e0,onAttached:tu,voice:tc,variant:p?"sheet":"default"});return(0,n.jsxs)("div",{className:"flex h-full flex-col",children:[(0,n.jsx)(f.ZO,{variant:p?"sheet":"default",renderSheet:e=>{let{tabs:t,status:r,onSwitch:a,onAdd:l,actions:s}=e;return(0,n.jsxs)(g,{activeId:h,tabs:t,status:r,onSwitch:a,onAdd:l,actions:s,children:[tm,tp]})},activeId:h,onActiveChange:e=>{x(e),window.localStorage.setItem(eT,e),A(null),T(!0),q("terminal")},onInitialTerminalState:F,minimized:eV,onToggleMinimize:()=>{eZ(e=>{let t=!e;return window.localStorage.setItem(eE,t?"1":"0"),t})},recording:eX,peerCount:e1,chatDockOpen:eG,onToggleChatDock:()=>{if(eV){eZ(!1),window.localStorage.setItem(eE,"0"),eJ(!0),window.localStorage.setItem(eA,"1");return}eJ(e=>{let t=!e;return window.localStorage.setItem(eA,t?"1":"0"),requestAnimationFrame(()=>{window.dispatchEvent(new Event("resize"))}),t})},tabIntent:e5,onTabsChange:C,suspendInitialSpawn:!!s&&!I}),$.fallbackBanner&&(0,n.jsx)("p",{className:"border-b border-amber-700/50 bg-amber-950/30 px-3 py-1 text-xs text-amber-200",role:"status",children:$.fallbackBanner}),(0,n.jsx)(ex,{}),!p&&(0,n.jsx)("div",{className:eV?"hidden":"flex items-center gap-2 border-b border-zinc-800 px-3 py-1",children:tm}),h?(0,n.jsxs)("div",{className:eV||"terminal"!==W||null!==E||s&&!I?"hidden":"contents",children:[p?(0,n.jsx)("div",{className:"hidden",children:(0,n.jsx)(H,{foreignActivityTick:eq,onPeerCountChange:e2})}):(0,n.jsx)(H,{foreignActivityTick:eq,onPeerCountChange:e2}),!p&&tp,m&&(0,n.jsx)(Q,{terminalId:h}),(0,n.jsx)(B,{onAttached:tu})]}):null,(0,n.jsxs)("div",{className:"relative flex-1 min-h-0",children:[null!==Y&&(0,n.jsx)("div",{className:U?"fixed inset-0 z-50":"absolute inset-0 z-20","data-pty-wall-stage":U?"1":void 0,children:(0,n.jsx)(b,{rows:J,client:o,initial:Y,stage:U,onClose:()=>{R(null);let e=new URLSearchParams(window.location.search);e.delete("wall"),window.history.replaceState(null,"","".concat(window.location.pathname).concat(e.toString()?"?".concat(e):""))}})}),(0,n.jsx)(eR,{layout:eW,sessionId:u,terminalIds:N.filter(e=>e!==(null==E?void 0:E.id)&&(I||e!==s)),activeId:h&&(h===(null==E?void 0:E.id)||!I&&h===s)?null:h,clearRequests:k,visible:null!==h&&"terminal"===W&&null===E&&(!s||I),onForeignInputActivity:()=>eK(e=>e+1)}),E&&(0,n.jsx)(d,{terminal:E,client:o,onClose:()=>{T(!0),A(null),V("terminal")}},(0,ey.x3)(E)),E||"terminal"!==W||h&&(!s||I)?E?null:"pty-list"===W?(0,n.jsxs)("div",{className:"h-full overflow-auto p-3","aria-label":"데몬 PTY 목록",children:[(0,n.jsxs)("label",{className:"mb-3 flex items-center gap-2 text-sm",children:[(0,n.jsx)("input",{type:"checkbox",checked:e_.includeAll,onChange:e=>G(e.target.checked)}),"다른 인스턴스도 보기"]}),e_.scopeSummary&&(0,n.jsx)("p",{className:"mb-3 text-xs text-muted-foreground","aria-label":"PTY 목록 범위 요약",children:e_.scopeSummary}),(null==eo?void 0:eo.kind)==="ambiguous"&&(0,n.jsxs)("p",{className:"mb-3 text-xs text-amber-500",role:"status","aria-label":"URL PTY 선택 상태",children:["주소의 PTY ",s,"가 ",eo.candidates.length,"개 행과 맞아 선택하지 않았습니다."]}),(null==eo?void 0:eo.kind)==="list-unavailable"&&(0,n.jsxs)("p",{className:"mb-3 text-xs text-rose-500",role:"status","aria-label":"URL PTY 선택 상태",children:["PTY 목록을 읽지 못해 주소의 PTY ",s,"를 확인할 수 없습니다. 목록이 비었다는 뜻이 \xab아닙니다\xbb."]}),(null==eo?void 0:eo.kind)==="not-found"&&(0,n.jsxs)("p",{className:"mb-3 text-xs text-rose-500",role:"status","aria-label":"URL PTY 선택 상태",children:["주소의 PTY ",s,"를 찾지 못했습니다 (",eo.reason,")."]}),(null==(t=e_.rows.find(e=>e.view))||null==(e=t.view)?void 0:e.visible)&&(0,n.jsx)("div",{className:"mb-3 flex gap-2","aria-label":"PTY 화면 보기",children:e_.rows.find(e=>e.view).view.modes.map(e=>(0,n.jsx)("button",{type:"button","aria-pressed":e.selected,onClick:()=>eO(e.mode),className:"rounded px-2 py-1 text-xs ".concat(e.selected?"bg-emerald-700 text-white":"bg-zinc-800 text-zinc-300 hover:bg-zinc-700"),children:e.label},e.mode))}),"loading"===ea?(0,n.jsx)("p",{className:"text-sm text-muted-foreground",children:"PTY 목록을 불러오는 중…"}):"error"===ea?(0,n.jsx)("p",{className:"text-sm text-rose-500",children:"PTY 목록을 불러오지 못했습니다."}):0===J.length?(0,n.jsx)("p",{className:"text-sm text-muted-foreground",children:"데몬이 아는 PTY가 없습니다."}):(0,n.jsx)("ul",{className:"space-y-2",children:e_.rows.map(e=>{let{terminal:t}=e,r=function(e){var t,r,n;let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Date.now(),l=e.name||e.id,s=function(e,t,r){let n=[e,t].filter(Boolean).join("/")||r;if(!n||!e||n.length<=32)return n&&ej(n);if(!t)return e.length<=32?e:"…".concat(e.slice(-31));let a=32-e.length-2;return a<=0?e.length<=32?e:"…".concat(e.slice(-31)):"".concat(e,"/…").concat(t.slice(-a))}(e.treeName,e.worktreeName,e.workdir),i=function(e){var t;if(!(null==e?void 0:e.name)&&!(null==e?void 0:e.dbPath))return null;let r=[e.name&&ej(e.name),e.dbPath&&((t=e.dbPath).length<=32?t:"".concat(t.slice(0,31),"…"))].filter(e=>!!e);return"세션: ".concat(r.join(" \xb7 "))}(e.sourceRoot),o=eN(e.startedAt,a),c=void 0===e.lastControlAt?null:eN(e.lastControlAt,a);return{title:l,details:[...l===e.id?[]:[e.id],...e.status?["상태: ".concat(e.status)]:[],...e.kind?["종류: ".concat(e.kind)]:[],...e.nickname?["별명: ".concat(ej(e.nickname))]:[],...s?["위치: ".concat(s)]:[],e.alive?"생존: 실행 중":0===e.exitCode?"종료: 정상 종료 (exit 0)":"number"==typeof e.exitCode?"종료: 비정상 종료 (exit ".concat(e.exitCode,")"):"종료: 종료 코드 미상",function(e){if("direct-human"===e.terminalOriginCategory)return"출처: 사람";if("elanous"===e.terminalOriginCategory)return"출처: elanous";if("external-tool"===e.terminalOriginCategory)return e.externalToolName?"출처: 외부 도구 \xb7 ".concat(ej(e.externalToolName)):"출처: 외부 도구";let t=e.terminalOriginReason?" \xb7 ".concat(ej(e.terminalOriginReason)):"";return"출처: 이 행에서는 알 수 없음".concat(t)}(e),...e.controller?["통제: ".concat(ej(e.controller))]:[],"write"===(t=e.accessMode)?"접근: 쓰기":"read"===t?"접근: 읽기":"auto"===t?"접근: 자동":"접근: 이 행에서는 알 수 없음","running"===(r=e.ownerRunUsage)?"소유 런: 실행 중":"terminated-live-owner"===r?"소유 런: 종료됐지만 터미널 유지":"no-run-id"===r?"소유 런: 소유 런 정보 없음":"소유 런: 이 행에서는 알 수 없음",...e.instance?["우주: ".concat(ej(e.instance))]:[],...e.runId?["런: ".concat((n=e.runId).length<=8?n:"".concat(n.slice(0,8),"…"))]:[],...i?[i]:[],...o?["시작: ".concat(o)]:[],"마지막 제어: ".concat(null!=c?c:"이 행에서는 알 수 없음")]}}(t),a=er.get(t.id);return(0,n.jsxs)("li",{className:"rounded border p-2 text-sm ".concat(e.selected?"border-emerald-500":"border-border"),children:[(0,n.jsxs)("button",{type:"button",className:"w-full text-left","aria-pressed":e.selected,onClick:()=>eQ(t,!0),children:[(0,n.jsx)("p",{className:"font-medium",children:r.title}),r.details.map((e,r)=>(0,n.jsx)("p",{className:0===r?"font-mono text-xs text-muted-foreground":"text-xs text-muted-foreground",children:e},"".concat(t.id,"-").concat(e))),a&&(0,n.jsxs)("p",{className:"mt-1 text-xs text-muted-foreground","aria-label":"현재 활동: ".concat("complete"===a.status?"완료":"진행 중"),children:["complete"===a.status?"완료":"진행 중",": ",a.line,a.hasMissingFrames?" \xb7 일부 진행 프레임 누락":""]})]}),(0,n.jsx)("button",{type:"button",className:"mt-2 rounded bg-zinc-800 px-2 py-1 text-xs text-zinc-100 hover:bg-zinc-700",onClick:()=>{eH(t)},children:"이름 바꾸기"}),e.selected&&eB&&(0,n.jsxs)("section",{className:"mt-2 rounded bg-zinc-900 p-2 text-xs","aria-label":"선택 PTY 계보",children:[(0,n.jsx)("p",{className:"font-medium",children:"계보"}),"loading"===eB.kind&&(0,n.jsx)("p",{className:"text-muted-foreground",children:"계보를 불러오는 중…"}),"error"===eB.kind&&(0,n.jsx)("p",{className:"text-rose-400",children:"계보를 불러오지 못했습니다."}),"empty"===eB.kind&&(0,n.jsx)("p",{className:"text-muted-foreground",children:"연결된 다른 화면이 없습니다."}),eB.unreadablePayloadsSummary&&(0,n.jsx)("p",{className:"text-muted-foreground",children:eB.unreadablePayloadsSummary}),eB.groups.map(e=>(0,n.jsxs)("div",{className:"mt-2",children:[(0,n.jsxs)("p",{className:"font-mono",children:["묶음: ",e.joinedBy," \xb7 ",e.key]}),(0,n.jsx)("ul",{className:"mt-1 space-y-1",children:e.rows.map(e=>(0,n.jsxs)("li",{className:e.selected?"rounded bg-emerald-900 px-1 text-emerald-100":"",children:[e.selected?"현재 선택 \xb7 ":"",e.ptyId," \xb7 ",e.kind," \xb7 ",e.instance," \xb7 ",(0,ey.cl)(e.alive,e.closed)," \xb7 시작 ",(0,ey.OZ)(e.startedAt)]},e.ptyId))})]},"".concat(e.joinedBy,"-").concat(e.key)))]}),e.view&&(0,n.jsxs)("div",{className:"mt-2",children:[e.view.display.frameInfo&&(0,n.jsx)("p",{className:"mb-1 font-mono text-xs text-muted-foreground","aria-label":"렌더 화면 정보",children:e.view.display.frameInfo}),e.view.display.frameMetadata&&(0,n.jsxs)("p",{className:"mb-1 text-xs text-muted-foreground","aria-label":"렌더 프레임 메타데이터",children:["관측: ",e.view.display.frameMetadata.frameAt," \xb7 출처: ",e.view.display.frameMetadata.frameSource]}),(0,n.jsx)("pre",{className:"whitespace-pre-wrap rounded bg-zinc-950 p-2 text-xs ".concat("error"===e.view.display.kind?"text-rose-400":"text-zinc-100"),children:e.view.display.text})]})]},(0,ey.x3)(t))})})]}):"observe"===W?(0,n.jsx)(S,{sessionId:u},u):null:(0,n.jsxs)("div",{className:"flex h-full flex-col items-center justify-center gap-2 text-sm text-muted-foreground",role:"status","aria-live":"polite",children:[(null==eo?void 0:eo.kind)==="list-unavailable"&&(0,n.jsxs)("p",{className:"text-xs text-rose-500","aria-label":"URL PTY 선택 상태",children:["PTY 목록을 읽지 못해 주소의 PTY ",s,"를 확인할 수 없습니다. 목록이 비었다는 뜻이 \xab아닙니다\xbb."]}),(0,n.jsx)("span",{children:$.placeholder})]})]}),h&&!eV&&"terminal"===W&&!E&&(!s||I)&&(0,n.jsx)(ed,{ref:e4,terminalId:h,open:eG,onTabIntent:e8,voice:to})]})}},17237:(e,t,r)=>{r.d(t,{BX:()=>l,Yf:()=>o,dI:()=>a,fb:()=>i,kI:()=>s});var n=r(85780);function a(e){return"alternate"===e.bufferType?{kind:"send",data:"\x02["+(0,n.bu)("pageup")}:{kind:"scroll-pages",pages:-1}}function l(e){return 0===e.lines?{kind:"none"}:"alternate"===e.bufferType?{kind:"wheel",steps:e.lines}:{kind:"scrollback",lines:e.lines}}function s(e){if(!(e.cellHeight>0))return 0;let t=-Math.trunc((e.currentY-e.startY)/e.cellHeight)-e.sentSteps;return 0===t?0:t}function i(e,t,r,n){for(let a=0;a<Math.abs(t);a++)e.dispatchEvent(new WheelEvent("wheel",{deltaY:100*Math.sign(t),deltaMode:0,clientX:r,clientY:n,bubbles:!0,cancelable:!0}))}function o(e){if(!(e.cellHeight>0))return 0;let t=-Math.trunc((e.currentY-e.startY)/e.cellHeight)-(e.currentViewportY-e.startViewportY);return 0===t?0:t}},23463:(e,t,r)=>{r.d(t,{L:()=>n});function n(e){let t=e.split("\n"),r=t[0];if(!r)return null;let n=/^\[elanous\/term\/([a-zA-Z]+)\] (.+)$/.exec(r);if(!n)return null;let a=n[1];if("terminalOutput"!==a&&"terminalExit"!==a&&"terminalInputActivity"!==a&&"terminalFrame"!==a)return null;let l=[];for(let e=1;e<t.length;e++){let r=t[e];if(/^<<elanous-term-end /.test(r))break;l.push(r)}try{let e=JSON.parse(l.join("\n"));if("string"!=typeof e.terminalId)return null;if("terminalOutput"===a){if("string"!=typeof e.data)return null;return{method:a,payload:{terminalId:e.terminalId,data:e.data}}}if("terminalExit"===a){if("number"!=typeof e.code)return null;return{method:a,payload:{terminalId:e.terminalId,code:e.code}}}if("terminalFrame"===a){if("string"!=typeof e.frame||"string"!=typeof e.instance||"number"!=typeof e.at||!Number.isFinite(e.at))return null;return{method:a,payload:{terminalId:e.terminalId,frame:e.frame,instance:e.instance,at:e.at}}}if("string"!=typeof e.peerId||"number"!=typeof e.timestamp||"number"!=typeof e.bytes)return null;return{method:a,payload:{terminalId:e.terminalId,peerId:e.peerId,timestamp:e.timestamp,bytes:e.bytes}}}catch(e){return null}}},60469:(e,t,r)=>{r.d(t,{Ct:()=>m,JW:()=>s,Ok:()=>o,WP:()=>f,WU:()=>b,ho:()=>p,ox:()=>i,oy:()=>h});var n=r(62351);let a=new Map,l=new Set;function s(e,t){let r={view:t};return a.set(e,r),l.forEach(e=>e()),()=>{a.get(e)===r&&(a.delete(e),l.forEach(e=>e()))}}function i(e){var t,r;return null!=(r=null==(t=a.get(e))?void 0:t.view)?r:null}function o(e){return l.add(e),()=>{l.delete(e)}}let c=new Map,d=new Map,u=new Map;function m(e,t){t.ctrl||t.alt?d.set(e,{ctrl:t.ctrl,alt:t.alt}):d.delete(e)}function p(e){var t,r;let n=null!=(t=d.get(e))?t:null;return n&&(d.delete(e),null==(r=u.get(e))||r.forEach(e=>e())),n}function h(e,t){let r=u.get(e);return r||(r=new Set,u.set(e,r)),r.add(t),()=>{r.delete(t),0===r.size&&u.get(e)===r&&u.delete(e)}}function b(e,t){let r={sender:t};return c.set(e,r),()=>{c.get(e)===r&&c.delete(e)}}function f(e,t){let r=c.get(e);return r?(r.sender(t),!0):((0,n.cY)("webterm.input.no-sender",{terminalId:e,bytes:new TextEncoder().encode(t).length}),!1)}},85780:(e,t,r)=>{r.d(t,{KZ:()=>o,Q6:()=>i,bu:()=>s});let n={ctrl:!1,alt:!1};function a(e){if(!e.ctrl&&!e.alt)return null;let t=0;return e.alt&&(t+=2),e.ctrl&&(t+=4),1+t}let l={up:"A",down:"B",right:"C",left:"D"};function s(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:n;switch(e){case"esc":return t.alt?"\x1b\x1b":"\x1b";case"tab":return t.alt?"\x1b ":" ";case"shift-enter":return"\x1b\r";case"pageup":case"pagedown":{let r="pageup"===e?5:6,n=a(t);return null===n?"\x1b[".concat(r,"~"):"\x1b[".concat(r,";").concat(n,"~")}case"up":case"down":case"left":case"right":{let r=l[e],n=a(t);return null===n?"\x1b[".concat(r):"\x1b[1;".concat(n).concat(r)}}}function i(e){return 1===e.length}function o(e,t){if(!i(e))return e;let r=e.toUpperCase().charCodeAt(0),n=t.ctrl&&r>=64&&r<=95?String.fromCharCode(r-64):e;return t.alt?"\x1b".concat(n):n}},92200:(e,t,r)=>{r.d(t,{Er:()=>a,cj:()=>c,dc:()=>s,yR:()=>o});let n=/^(oauth\.|harness\.decision|llm\.router)/;function a(e){let t=[],r=e=>{"string"==typeof e&&e.trim()&&!t.includes(e.trim())&&t.push(e.trim())};for(let t of e){var a;let e=null!=(a=t.data)?a:{};if(t.category.startsWith("oauth.")){for(let t of["from","to","name","account"])r(e[t]);if(Array.isArray(e.usage))for(let t of e.usage)r(null==t?void 0:t.name);continue}if(n.test(t.category))for(let t of(r(e.account),["what","why","reason"])){let n=e[t];if("string"==typeof n)for(let e of n.matchAll(/계정\s+([A-Za-z0-9][\w.-]*)/g))r(e[1])}}return t}function l(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function s(e){let t=new Map(e.map((e,t)=>[e,"account-".concat(t+1)])),r=e.length?RegExp("(^|[^\\w-])(".concat(e.map(l).sort((e,t)=>t.length-e.length).join("|"),")(?![\\w-])"),"g"):null,n=new Map;return(e,a)=>{let l=e.replace(/\b[a-z0-9-]+\.tail[0-9a-f]+\.ts\.net\b/gi,"tailnet-host").replace(/\bmsb\d+\b/gi,e=>(e=>{let t=e.toLowerCase();n.has(t)||n.set(t,"remote-".concat(n.size+1));let r=n.get(t);return e===e.toUpperCase()?r.toUpperCase():r})(e)).replace(/\bmbp\b/gi,e=>e===e.toUpperCase()?"LOCAL":"local").replace(/\/Users\/[^/\s"']+/g,"~").replace(/(크레딧|credits?|💳)(\s*[:=]?\s*)[\d][\d,.]*/gi,"$1$2•••").replace(/[\d][\d,.]*(\s*)(크레딧|credits?)/gi,"•••$1$2").replace(/\$\s?[\d][\d,.]*/g,"$•••").replace(/(잔량?|remaining|left)(\s*[:=]?\s*)(?:[A-Za-z0-9][\w.-]*\s+)?\d+(?:\.\d+)?\s?%/gi,"$1$2•••");return a&&r&&(l=l.replace(r,(e,r,n)=>{var a;return"".concat(r).concat(null!=(a=t.get(n))?a:"account")})),l}}function i(e,t){if("string"==typeof e)return t(e);if(Array.isArray(e))return e.map(e=>i(e,t));if(e&&"object"==typeof e){let r={};for(let[n,a]of Object.entries(e))"apiEquivalentUsd"===n||"usd"===n||/credit(s|Balance)?$/i.test(n)||(r[n]=i(a,t));return r}return e}function o(e){let t=s(a(e));return e.map(e=>{let r=n.test(e.category);return{...e,event:t(e.event,!1),data:e.data?i(e.data,e=>t(e,r)):e.data}})}function c(e,t){let r=s(t);return i(e,e=>r(e,!0))}}}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[244],{40244:(e,t,r)=>{r.d(t,{Ay:()=>eP});var n=Object.defineProperty,o={};((e,t)=>{for(var r in t)n(e,r,{get:t[r],enumerable:!0})})(o,{Graph:()=>d,alg:()=>v,json:()=>f,version:()=>c});var i=Object.defineProperty,s=(e,t)=>{for(var r in t)i(e,r,{get:t[r],enumerable:!0})},d=class{constructor(e){this._isDirected=!0,this._isMultigraph=!1,this._isCompound=!1,this._nodes={},this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={},this._nodeCount=0,this._edgeCount=0,this._defaultNodeLabelFn=()=>{},this._defaultEdgeLabelFn=()=>{},e&&(this._isDirected=!("directed"in e)||e.directed,this._isMultigraph="multigraph"in e&&e.multigraph,this._isCompound="compound"in e&&e.compound),this._isCompound&&(this._parent={},this._children={},this._children["\0"]={})}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(e){return this._label=e,this}graph(){return this._label}setDefaultNodeLabel(e){return"function"!=typeof e?this._defaultNodeLabelFn=()=>e:this._defaultNodeLabelFn=e,this}nodeCount(){return this._nodeCount}nodes(){return Object.keys(this._nodes)}sources(){return this.nodes().filter(e=>0===Object.keys(this._in[e]).length)}sinks(){return this.nodes().filter(e=>0===Object.keys(this._out[e]).length)}setNodes(e,t){return e.forEach(e=>{void 0!==t?this.setNode(e,t):this.setNode(e)}),this}setNode(e,t){return e in this._nodes?arguments.length>1&&(this._nodes[e]=t):(this._nodes[e]=arguments.length>1?t:this._defaultNodeLabelFn(e),this._isCompound&&(this._parent[e]="\0",this._children[e]={},this._children["\0"][e]=!0),this._in[e]={},this._preds[e]={},this._out[e]={},this._sucs[e]={},++this._nodeCount),this}node(e){return this._nodes[e]}hasNode(e){return e in this._nodes}removeNode(e){if(e in this._nodes){let t=e=>this.removeEdge(this._edgeObjs[e]);delete this._nodes[e],this._isCompound&&(this._removeFromParentsChildList(e),delete this._parent[e],this.children(e).forEach(e=>{this.setParent(e)}),delete this._children[e]),Object.keys(this._in[e]).forEach(t),delete this._in[e],delete this._preds[e],Object.keys(this._out[e]).forEach(t),delete this._out[e],delete this._sucs[e],--this._nodeCount}return this}setParent(e,t){if(!this._isCompound)throw Error("Cannot set parent in a non-compound graph");if(void 0===t)t="\0";else{t+="";for(let r=t;void 0!==r;r=this.parent(r))if(r===e)throw Error("Setting "+t+" as parent of "+e+" would create a cycle");this.setNode(t)}return this.setNode(e),this._removeFromParentsChildList(e),this._parent[e]=t,this._children[t][e]=!0,this}parent(e){if(this._isCompound){let t=this._parent[e];if("\0"!==t)return t}}children(e="\0"){if(this._isCompound){let t=this._children[e];if(t)return Object.keys(t)}else{if("\0"===e)return this.nodes();this.hasNode(e)}return[]}predecessors(e){let t=this._preds[e];if(t)return Object.keys(t)}successors(e){let t=this._sucs[e];if(t)return Object.keys(t)}neighbors(e){let t=this.predecessors(e);if(t){let r=new Set(t);for(let t of this.successors(e))r.add(t);return Array.from(r.values())}}isLeaf(e){return 0===(this.isDirected()?this.successors(e):this.neighbors(e)).length}filterNodes(e){let t=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});t.setGraph(this.graph()),Object.entries(this._nodes).forEach(([r,n])=>{e(r)&&t.setNode(r,n)}),Object.values(this._edgeObjs).forEach(e=>{t.hasNode(e.v)&&t.hasNode(e.w)&&t.setEdge(e,this.edge(e))});let r={},n=e=>{let o=this.parent(e);return!o||t.hasNode(o)?(r[e]=null!=o?o:void 0,null!=o?o:void 0):o in r?r[o]:n(o)};return this._isCompound&&t.nodes().forEach(e=>t.setParent(e,n(e))),t}setDefaultEdgeLabel(e){return"function"!=typeof e?this._defaultEdgeLabelFn=()=>e:this._defaultEdgeLabelFn=e,this}edgeCount(){return this._edgeCount}edges(){return Object.values(this._edgeObjs)}setPath(e,t){return e.reduce((e,r)=>(void 0!==t?this.setEdge(e,r,t):this.setEdge(e,r),r)),this}setEdge(e,t,r,n){let o,i,s,d,h=!1;"object"==typeof e&&null!==e&&"v"in e?(o=e.v,i=e.w,s=e.name,2==arguments.length&&(d=t,h=!0)):(o=e,i=t,s=n,arguments.length>2&&(d=r,h=!0)),o=""+o,i=""+i,void 0!==s&&(s=""+s);let u=l(this._isDirected,o,i,s);if(u in this._edgeLabels)return h&&(this._edgeLabels[u]=d),this;if(void 0!==s&&!this._isMultigraph)throw Error("Cannot set a named edge when isMultigraph = false");this.setNode(o),this.setNode(i),this._edgeLabels[u]=h?d:this._defaultEdgeLabelFn(o,i,s);let c=function(e,t,r,n){let o=""+t,i=""+r;if(!e&&o>i){let e=o;o=i,i=e}let s={v:o,w:i};return n&&(s.name=n),s}(this._isDirected,o,i,s);return o=c.v,i=c.w,Object.freeze(c),this._edgeObjs[u]=c,a(this._preds[i],o),a(this._sucs[o],i),this._in[i][u]=c,this._out[o][u]=c,this._edgeCount++,this}edge(e,t,r){let n=1==arguments.length?u(this._isDirected,e):l(this._isDirected,e,t,r);return this._edgeLabels[n]}edgeAsObj(e,t,r){let n=1==arguments.length?this.edge(e):this.edge(e,t,r);return"object"!=typeof n?{label:n}:n}hasEdge(e,t,r){return(1==arguments.length?u(this._isDirected,e):l(this._isDirected,e,t,r))in this._edgeLabels}removeEdge(e,t,r){let n=1==arguments.length?u(this._isDirected,e):l(this._isDirected,e,t,r),o=this._edgeObjs[n];if(o){let e=o.v,t=o.w;delete this._edgeLabels[n],delete this._edgeObjs[n],h(this._preds[t],e),h(this._sucs[e],t),delete this._in[t][n],delete this._out[e][n],this._edgeCount--}return this}inEdges(e,t){return this.isDirected()?this.filterEdges(this._in[e],e,t):this.nodeEdges(e,t)}outEdges(e,t){return this.isDirected()?this.filterEdges(this._out[e],e,t):this.nodeEdges(e,t)}nodeEdges(e,t){if(e in this._nodes)return this.filterEdges({...this._in[e],...this._out[e]},e,t)}_removeFromParentsChildList(e){delete this._children[this._parent[e]][e]}filterEdges(e,t,r){if(!e)return;let n=Object.values(e);return r?n.filter(e=>e.v===t&&e.w===r||e.v===r&&e.w===t):n}};function a(e,t){e[t]?e[t]++:e[t]=1}function h(e,t){void 0===e[t]||--e[t]||delete e[t]}function l(e,t,r,n){let o=""+t,i=""+r;if(!e&&o>i){let e=o;o=i,i=e}return o+"\x01"+i+"\x01"+(void 0===n?"\0":n)}function u(e,t){return l(e,t.v,t.w,t.name)}var c="4.0.1",f={};function g(e){var t,r;let n={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:(t=e).nodes().map(e=>{let r=t.node(e),n=t.parent(e),o={v:e};return void 0!==r&&(o.value=r),void 0!==n&&(o.parent=n),o}),edges:(r=e).edges().map(e=>{let t=r.edge(e),n={v:e.v,w:e.w};return void 0!==e.name&&(n.name=e.name),void 0!==t&&(n.value=t),n})},o=e.graph();return void 0!==o&&(n.value=structuredClone(o)),n}function p(e){let t=new d(e.options);return void 0!==e.value&&t.setGraph(e.value),e.nodes.forEach(e=>{t.setNode(e.v,e.value),e.parent&&t.setParent(e.v,e.parent)}),e.edges.forEach(e=>{t.setEdge({v:e.v,w:e.w,name:e.name},e.value)}),t}s(f,{read:()=>p,write:()=>g});var v={};s(v,{CycleException:()=>C,bellmanFord:()=>m,components:()=>E,dijkstra:()=>y,dijkstraAll:()=>k,findCycles:()=>O,floydWarshall:()=>N,isAcyclic:()=>L,postorder:()=>D,preorder:()=>P,prim:()=>S,shortestPaths:()=>G,tarjan:()=>x,topsort:()=>M});var w=()=>1;function m(e,t,r,n){return function(e,t,r,n){let o={},i,s=0,d=e.nodes(),a=function(e){let t=r(e);o[e.v].distance+t<o[e.w].distance&&(o[e.w]={distance:o[e.v].distance+t,predecessor:e.v},i=!0)},h=function(){d.forEach(function(e){n(e).forEach(function(t){let r=t.v===e?t.v:t.w,n=r===t.v?t.w:t.v;a({v:r,w:n})})})};d.forEach(function(e){o[e]={distance:e===t?0:1/0,predecessor:""}});let l=d.length;for(let e=1;e<l&&(i=!1,s++,h(),i);e++);if(s===l-1&&(i=!1,h(),i))throw Error("The graph contains a negative weight cycle");return o}(e,String(t),r||w,n||function(t){return e.outEdges(t)})}function E(e){let t={},r=[],n;return e.nodes().forEach(function(o){n=[],function r(o){o in t||(t[o]=!0,n.push(o),e.successors(o).forEach(r),e.predecessors(o).forEach(r))}(o),n.length&&r.push(n)}),r}var b=class{constructor(){this._arr=[],this._keyIndices={}}size(){return this._arr.length}keys(){return this._arr.map(e=>e.key)}has(e){return e in this._keyIndices}priority(e){let t=this._keyIndices[e];if(void 0!==t)return this._arr[t].priority}min(){if(0===this.size())throw Error("Queue underflow");return this._arr[0].key}add(e,t){let r=this._keyIndices,n=String(e);if(!(n in r)){let e=this._arr,o=e.length;return r[n]=o,e.push({key:n,priority:t}),this._decrease(o),!0}return!1}removeMin(){this._swap(0,this._arr.length-1);let e=this._arr.pop();return delete this._keyIndices[e.key],this._heapify(0),e.key}decrease(e,t){let r=this._keyIndices[e];if(void 0===r)throw Error(`Key not found: ${e}`);let n=this._arr[r].priority;if(t>n)throw Error(`New priority is greater than current priority. Key: ${e} Old: ${n} New: ${t}`);this._arr[r].priority=t,this._decrease(r)}_heapify(e){let t=this._arr,r=2*e,n=r+1,o=e;r<t.length&&(o=t[r].priority<t[o].priority?r:o,n<t.length&&(o=t[n].priority<t[o].priority?n:o),o!==e&&(this._swap(e,o),this._heapify(o)))}_decrease(e){let t=this._arr,r=t[e].priority,n;for(;0!==e&&!(t[n=e>>1].priority<r);)this._swap(e,n),e=n}_swap(e,t){let r=this._arr,n=this._keyIndices,o=r[e],i=r[t];r[e]=i,r[t]=o,n[i.key]=e,n[o.key]=t}},_=()=>1;function y(e,t,r,n){return function(e,t,r,n){let o={},i=new b,s,d,a=function(e){let t=e.v!==s?e.v:e.w,n=o[t],a=r(e),h=d.distance+a;if(a<0)throw Error("dijkstra does not allow negative edge weights. Bad edge: "+e+" Weight: "+a);h<n.distance&&(n.distance=h,n.predecessor=s,i.decrease(t,h))};for(e.nodes().forEach(function(e){let r=e===t?0:1/0;o[e]={distance:r,predecessor:""},i.add(e,r)});i.size()>0&&(d=o[s=i.removeMin()]).distance!==1/0;)n(s).forEach(a);return o}(e,String(t),r||_,n||function(t){return e.outEdges(t)})}function k(e,t,r){return e.nodes().reduce(function(n,o){return n[o]=y(e,o,t,r),n},{})}function x(e){let t=0,r=[],n={},o=[];return e.nodes().forEach(function(i){i in n||function i(s){let d=n[s]={onStack:!0,lowlink:t,index:t++};if(r.push(s),e.successors(s).forEach(function(e){e in n?n[e].onStack&&(d.lowlink=Math.min(d.lowlink,n[e].index)):(i(e),d.lowlink=Math.min(d.lowlink,n[e].lowlink))}),d.lowlink===d.index){let e=[],t;do n[t=r.pop()].onStack=!1,e.push(t);while(s!==t);o.push(e)}}(i)}),o}function O(e){return x(e).filter(function(t){return t.length>1||1===t.length&&e.hasEdge(t[0],t[0])})}var j=()=>1;function N(e,t,r){var n,o,i;let s,d;return n=e,o=t||j,i=r||function(t){return e.outEdges(t)},s={},(d=n.nodes()).forEach(function(e){s[e]={},s[e][e]={distance:0,predecessor:""},d.forEach(function(t){e!==t&&(s[e][t]={distance:1/0,predecessor:""})}),i(e).forEach(function(t){let r=t.v===e?t.w:t.v,n=o(t);s[e][r]={distance:n,predecessor:e}})}),d.forEach(function(e){let t=s[e];d.forEach(function(r){let n=s[r];d.forEach(function(r){let o=n[e],i=t[r],s=n[r],d=o.distance+i.distance;d<s.distance&&(s.distance=d,s.predecessor=i.predecessor)})})}),s}var C=class extends Error{constructor(...e){super(...e)}};function M(e){let t={},r={},n=[];if(e.sinks().forEach(function o(i){if(i in r)throw new C;i in t||(r[i]=!0,t[i]=!0,e.predecessors(i).forEach(o),delete r[i],n.push(i))}),Object.keys(t).length!==e.nodeCount())throw new C;return n}function L(e){try{M(e)}catch(e){if(e instanceof C)return!1;throw e}return!0}function R(e,t,r){var n,o,i;let s,d;return n=t,o=function(e,t){return e.push(t),e},i=[],Array.isArray(n)||(n=[n]),s=t=>{var r;return null!=(r=e.isDirected()?e.successors(t):e.neighbors(t))?r:[]},d={},n.forEach(function(t){if(!e.hasNode(t))throw Error("Graph does not have node: "+t);i=function e(t,r,n,o,i,s,d){return r in o||(o[r]=!0,n||(d=s(d,r)),i(r).forEach(function(r){d=e(t,r,n,o,i,s,d)}),n&&(d=s(d,r))),d}(e,t,"post"===r,d,s,o,i)}),i}function D(e,t){return R(e,t,"post")}function P(e,t){return R(e,t,"pre")}function S(e,t){let r=new d,n={},o=new b,i;function s(e){let r=e.v===i?e.w:e.v,s=o.priority(r);if(void 0!==s){let d=t(e);d<s&&(n[r]=i,o.decrease(r,d))}}if(0===e.nodeCount())return r;e.nodes().forEach(function(e){o.add(e,1/0),r.setNode(e)}),o.decrease(e.nodes()[0],0);let a=!1;for(;o.size()>0;){if((i=o.removeMin())in n)r.setEdge(i,n[i]);else{if(a)throw Error("Input graph is not connected: "+e);a=!0}e.nodeEdges(i).forEach(s)}return r}function G(e,t,r,n){return function(e,t,r,n){if(void 0===r)return y(e,t,r,n);let o=!1,i=e.nodes();for(let s=0;s<i.length;s++){let d=n(i[s]);for(let e=0;e<d.length;e++){let t=d[e],n=t.v===i[s]?t.v:t.w,a=n===t.v?t.w:t.v;0>r({v:n,w:a})&&(o=!0)}if(o)return m(e,t,r,n)}return y(e,t,r,n)}(e,t,r,null!=n?n:t=>{let r=e.outEdges(t);return null!=r?r:[]})}function F(e,t,r,n){let o=n;for(;e.hasNode(o);)o=n+""+ ++K;return r.dummy=t,e.setNode(o,r),o}function T(e){let t=new d({multigraph:e.isMultigraph()}).setGraph(e.graph());return e.nodes().forEach(r=>{e.children(r).length||t.setNode(r,e.node(r))}),e.edges().forEach(r=>{t.setEdge(r,e.edge(r))}),t}function I(e,t){let r,n,o=e.x,i=e.y,s=t.x-o,d=t.y-i,a=e.width/2,h=e.height/2;if(!s&&!d)throw Error("Not possible to find intersection inside of the rectangle");return Math.abs(d)*a>Math.abs(s)*h?(d<0&&(h=-h),r=h*s/d,n=h):(s<0&&(a=-a),r=a,n=a*d/s),{x:o+r,y:i+n}}function A(e){let t=W(q(e)+1).map(()=>[]);return e.nodes().forEach(r=>{let n=e.node(r),o=n.rank;void 0!==o&&(t[o]||(t[o]=[]),t[o][n.order]=r)}),t}function B(e,t,r,n){let o={width:0,height:0};return arguments.length>=4&&(o.rank=r,o.order=n),F(e,"border",o,t)}function z(e,t){return t.length>65535?e(...(function(e,t=65535){let r=[];for(let n=0;n<e.length;n+=t){let o=e.slice(n,n+t);r.push(o)}return r})(t).map(t=>e(...t))):e(...t)}function q(e){return z(Math.max,e.nodes().map(t=>{let r=e.node(t).rank;return void 0===r?5e-324:r}))}function V(e,t){let r=Date.now();try{return t()}finally{console.log(e+" time: "+(Date.now()-r)+"ms")}}function $(e,t){return t()}var K=0;function W(e,t,r=1){null==t&&(t=e,e=0);let n=e=>e<t;r<0&&(n=e=>t<e);let o=[];for(let t=e;n(t);t+=r)o.push(t);return o}function H(e,t){let r={};for(let n of t)void 0!==e[n]&&(r[n]=e[n]);return r}function J(e,t){let r;return r="string"==typeof t?e=>e[t]:t,Object.entries(e).reduce((e,[t,n])=>(e[t]=r(n,t),e),{})}var Q=class{constructor(){((e,t,r)=>((e,t,r)=>t in e?n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r)(e,"symbol"!=typeof t?t+"":t,r))(this,"_sentinel");let e={};e._next=e._prev=e,this._sentinel=e}dequeue(){let e=this._sentinel,t=e._prev;if(t!==e)return U(t),t}enqueue(e){let t=this._sentinel;e._prev&&e._next&&U(e),e._next=t._next,t._next._prev=e,t._next=e,e._prev=t}toString(){let e=[],t=this._sentinel,r=t._prev;for(;r!==t;)e.push(JSON.stringify(r,X)),r=r._prev;return"["+e.join(", ")+"]"}};function U(e){e._prev._next=e._next,e._next._prev=e._prev,delete e._next,delete e._prev}function X(e,t){if("_next"!==e&&"_prev"!==e)return t}var Y=()=>1;function Z(e,t,r,n,o){let i=[],s=o?i:void 0;return(e.inEdges(n.v)||[]).forEach(n=>{let s=e.edge(n),d=e.node(n.v);o&&i.push({v:n.v,w:n.w}),d.out-=s,ee(t,r,d)}),(e.outEdges(n.v)||[]).forEach(n=>{let o=e.edge(n),i=n.w,s=e.node(i);s.in-=o,ee(t,r,s)}),e.removeNode(n.v),s}function ee(e,t,r){var n,o,i;r.out?r.in?null==(i=e[r.out-r.in+t])||i.enqueue(r):null==(o=e[e.length-1])||o.enqueue(r):null==(n=e[0])||n.enqueue(r)}function et(e){let t={};e.sources().forEach(function r(n){let o=e.node(n);if(Object.hasOwn(t,n))return o.rank;t[n]=!0;let i=e.outEdges(n),s=z(Math.min,i?i.map(t=>null==t?1/0:r(t.w)-e.edge(t).minlen):[]);return s===1/0&&(s=0),o.rank=s})}function er(e,t){return e.node(t.w).rank-e.node(t.v).rank-e.edge(t).minlen}var en=function(e){var t,r,n,o;let i,s,a=new d({directed:!1}),h=e.nodes();if(0===h.length)throw Error("Graph must have at least one node");let l=h[0],u=e.nodeCount();for(a.setNode(l,{});t=a,r=e,t.nodes().forEach(function e(n){let o=r.nodeEdges(n);o&&o.forEach(o=>{let i=o.v,s=n===i?o.w:i;t.hasNode(s)||er(r,o)||(t.setNode(s,{}),t.setEdge(n,s,{}),e(s))})}),t.nodeCount()<u&&(n=a,i=(o=e).edges().reduce((e,t)=>{let r=1/0;return n.hasNode(t.v)!==n.hasNode(t.w)&&(r=er(o,t)),r<e[0]?[r,t]:e},[1/0,null])[1]);)s=a.hasNode(i.v)?er(e,i):-er(e,i),function(e,t,r){e.nodes().forEach(e=>t.node(e).rank+=r)}(a,e,s);return a},{preorder:eo,postorder:ei}=v;function es(e){var t;let r,n,o;t=e,o=new d().setGraph(t.graph()),t.nodes().forEach(e=>o.setNode(e,t.node(e))),t.edges().forEach(e=>{let r=o.edge(e.v,e.w)||{weight:0,minlen:1},n=t.edge(e);o.setEdge(e.v,e.w,{weight:r.weight+n.weight,minlen:Math.max(r.minlen,n.minlen)})}),et(e=o);let i=en(e);for(eh(i),ed(i,e);r=el(i);)n=eu(i,e,r),ec(i,e,r,n)}function ed(e,t){let r=ei(e,e.nodes());(r=r.slice(0,r.length-1)).forEach(r=>{var n,o,i;let s;return n=e,o=t,i=r,s=n.node(i).parent,void(n.edge(i,s).cutvalue=ea(n,o,i))})}function ea(e,t,r){let n=e.node(r).parent,o=!0,i=t.edge(r,n),s=0;i||(o=!1,i=t.edge(n,r)),s=i.weight;let d=t.nodeEdges(r);return d&&d.forEach(i=>{let d=i.v===r,a=d?i.w:i.v;if(a!==n){var h,l,u;let n=d===o,c=t.edge(i).weight;if(s+=n?c:-c,h=e,l=r,u=a,h.hasEdge(l,u)){let t=e.edge(r,a).cutvalue;s+=n?-t:t}}}),s}function eh(e,t){arguments.length<2&&(t=e.nodes()[0]),function e(t,r,n,o,i){let s=n,d=t.node(o);r[o]=!0;let a=t.neighbors(o);return a&&a.forEach(i=>{Object.hasOwn(r,i)||(n=e(t,r,n,i,o))}),d.low=s,d.lim=n++,i?d.parent=i:delete d.parent,n}(e,{},1,t)}function el(e){return e.edges().find(t=>e.edge(t).cutvalue<0)}function eu(e,t,r){let n=r.v,o=r.w;t.hasEdge(n,o)||(n=r.w,o=r.v);let i=e.node(n),s=e.node(o),d=i,a=!1;return i.lim>s.lim&&(d=s,a=!0),t.edges().filter(t=>a===ef(e,e.node(t.v),d)&&a!==ef(e,e.node(t.w),d)).reduce((e,r)=>er(t,r)<er(t,e)?r:e)}function ec(e,t,r,n){let o=r.v,i=r.w;e.removeEdge(o,i),e.setEdge(n.v,n.w,{}),eh(e),ed(e,t),function(e,t){let r=e.nodes().find(t=>!e.node(t).parent);if(!r)return;let n=eo(e,[r]);(n=n.slice(1)).forEach(r=>{let n=e.node(r).parent,o=t.edge(r,n),i=!1;o||(o=t.edge(n,r),i=!0),t.node(r).rank=t.node(n).rank+(i?o.minlen:-o.minlen)})}(e,t)}function ef(e,t,r){return r.low<=t.lim&&t.lim<=r.lim}es.initLowLimValues=eh,es.initCutValues=ed,es.calcCutValue=ea,es.leaveEdge=el,es.enterEdge=eu,es.exchangeEdges=ec;function eg(e,t,r,n,o,i){let s=o[t][i-1],d=F(e,"border",{width:0,height:0,rank:i,borderType:t},r);o[t][i]=d,e.setParent(d,n),s&&e.setEdge(s,d,{weight:1})}function ep(e){e.nodes().forEach(t=>ev(e.node(t))),e.edges().forEach(t=>ev(e.edge(t)))}function ev(e){let t=e.width;e.width=e.height,e.height=t}function ew(e){e.y=-e.y}function em(e){let t=e.x;e.x=e.y,e.y=t}function eE(e,t,r){let n;for(;t.length&&(n=t[t.length-1]).i<=r;)t.pop(),e.push(n.vs),r++;return r}function eb(e,t,r){let n=new Map,o=(e,t)=>{n.has(e)||n.set(e,[]),n.get(e).push(t)};for(let t of e.nodes()){let r=e.node(t);if("number"==typeof r.rank&&o(r.rank,t),"number"==typeof r.minRank&&"number"==typeof r.maxRank)for(let e=r.minRank;e<=r.maxRank;e++)e!==r.rank&&o(e,t)}return t.map(function(t){var o;let i,s;return o=n.get(t)||[],i=function(e){let t;for(;e.hasNode(t="_root"+ ++K););return t}(e),s=new d({compound:!0}).setGraph({root:i}).setDefaultNodeLabel(t=>e.node(t)),o.forEach(n=>{let o=e.node(n),d=e.parent(n);if(o.rank===t||o.minRank<=t&&t<=o.maxRank){s.setNode(n),s.setParent(n,d||i);let a=e[r](n);a&&a.forEach(t=>{let r=t.v===n?t.w:t.v,o=s.edge(r,n),i=void 0!==o?o.weight:0;s.setEdge(r,n,{weight:e.edge(t).weight+i})}),Object.hasOwn(o,"minRank")&&s.setNode(n,{borderLeft:o.borderLeft[t],borderRight:o.borderRight[t]})}}),s})}function e_(e,t){Object.values(t).forEach(t=>t.forEach((t,r)=>e.node(t).order=r))}function ey(e,t,r){if(t>r){let e=t;t=r,r=e}let n=e[t];n||(e[t]=n={}),n[r]=!0}var ek=["nodesep","edgesep","ranksep","marginx","marginy"],ex={ranksep:50,edgesep:20,nodesep:50,rankdir:"TB",rankalign:"center"},eO=["acyclicer","ranker","rankdir","align","rankalign"],ej=["width","height","rank"],eN={width:0,height:0},eC=["minlen","weight","width","height","labeloffset"],eM={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},eL=["labelpos"];function eR(e,t){return J(H(e,t),Number)}function eD(e){let t={};return e&&Object.entries(e).forEach(([e,r])=>{"string"==typeof e&&(e=e.toLowerCase()),t[e]=r}),t}var eP={graphlib:o,version:"3.0.0",layout:function(e,t={}){let r=t.debugTiming?V:$;return r("layout",()=>{let n=r(" buildLayoutGraph",()=>{var t;let r,n;return t=e,r=new d({multigraph:!0,compound:!0}),n=eD(t.graph()),r.setGraph(Object.assign({},ex,eR(n,ek),H(n,eO))),t.nodes().forEach(e=>{let n=eR(eD(t.node(e)),ej);Object.keys(eN).forEach(e=>{void 0===n[e]&&(n[e]=eN[e])}),r.setNode(e,n);let o=t.parent(e);void 0!==o&&r.setParent(e,o)}),t.edges().forEach(e=>{let n=eD(t.edge(e));r.setEdge(e,Object.assign({},eM,eR(n,eC),H(n,eL)))}),r});return r(" runLayout",()=>{var e,o,i;return e=n,o=r,i=t,void(o(" makeSpaceForEdgeLabels",()=>{var t;let r;return r=(t=e).graph(),void(r.ranksep/=2,t.edges().forEach(e=>{let n=t.edge(e);n.minlen*=2,"c"!==n.labelpos.toLowerCase()&&("TB"===r.rankdir||"BT"===r.rankdir?n.width+=n.labeloffset:n.height+=n.labeloffset)}))}),o(" removeSelfEdges",()=>{var t;(t=e).edges().forEach(e=>{if(e.v===e.w){let r=t.node(e.v);r.selfEdges||(r.selfEdges=[]),r.selfEdges.push({e:e,label:t.edge(e)}),t.removeEdge(e)}})}),o(" acyclic",()=>{var t,r;let n,o,i;("greedy"===e.graph().acyclicer?function(e,t){var r,n;let o,i,s,a,h;if(1>=e.nodeCount())return[];let l=(r=e,n=t||Y,o=new d,i=0,s=0,r.nodes().forEach(e=>{o.setNode(e,{v:e,in:0,out:0})}),r.edges().forEach(e=>{let t=o.edge(e.v,e.w)||0,r=n(e);o.setEdge(e.v,e.w,t+r);let d=o.node(e.v),a=o.node(e.w);s=Math.max(s,d.out+=r),i=Math.max(i,a.in+=r)}),a=(function(e){let t=[];for(let r=0;r<e;r++)t.push(r);return t})(s+i+3).map(()=>new Q),h=i+1,o.nodes().forEach(e=>{ee(a,h,o.node(e))}),{graph:o,buckets:a,zeroIdx:h});return(function(e,t,r){var n;let o=[],i=t[t.length-1],s=t[0],d;for(;e.nodeCount();){for(;d=s.dequeue();)Z(e,t,r,d);for(;d=i.dequeue();)Z(e,t,r,d);if(e.nodeCount()){for(let i=t.length-2;i>0;--i)if(d=null==(n=t[i])?void 0:n.dequeue()){o=o.concat(Z(e,t,r,d,!0)||[]);break}}}return o})(l.graph,l.buckets,l.zeroIdx).flatMap(t=>e.outEdges(t.v,t.w)||[])}(e,(t=e,e=>t.edge(e).weight)):(n=[],o={},i={},(r=e).nodes().forEach(function e(t){Object.hasOwn(i,t)||(i[t]=!0,o[t]=!0,r.outEdges(t).forEach(t=>{Object.hasOwn(o,t.w)?n.push(t):e(t.w)}),delete o[t])}),n)).forEach(t=>{let r=e.edge(t);e.removeEdge(t),r.forwardName=t.name,r.reversed=!0,e.setEdge(t.w,t.v,r,"rev"+ ++K)})}),o(" nestingGraph.run",()=>{var t,r;let n,o,i,s,d,a;return n=F(e,"root",{},"_root"),s=2*(i=z(Math.max,Object.values((a={},(t=e).children("\0").forEach(e=>(function e(r,n){let o=t.children(r);o&&o.length&&o.forEach(t=>e(t,n+1)),a[r]=n})(e,1)),o=a)))-1)+1,e.graph().nestingRoot=n,e.edges().forEach(t=>e.edge(t).minlen*=s),d=(r=e).edges().reduce((e,t)=>e+r.edge(t).weight,0)+1,void(e.children("\0").forEach(t=>(function e(t,r,n,o,i,s,d){var a;let h=t.children(d);if(!h.length){d!==r&&t.setEdge(r,d,{weight:0,minlen:n});return}let l=B(t,"_bt"),u=B(t,"_bb"),c=t.node(d);t.setParent(l,d),c.borderTop=l,t.setParent(u,d),c.borderBottom=u,h.forEach(a=>{var h;e(t,r,n,o,i,s,a);let c=t.node(a),f=c.borderTop?c.borderTop:a,g=c.borderBottom?c.borderBottom:a,p=c.borderTop?o:2*o,v=f!==g?1:i-(null!=(h=s[d])?h:0)+1;t.setEdge(l,f,{weight:p,minlen:v,nestingEdge:!0}),t.setEdge(g,u,{weight:p,minlen:v,nestingEdge:!0})}),t.parent(d)||t.setEdge(r,l,{weight:0,minlen:i+(null!=(a=s[d])?a:0)})})(e,n,s,d,i,o,t)),e.graph().nodeRankFactor=s)}),o(" rank",()=>(function(e){let t=e.graph().ranker;if("function"==typeof t)return t(e);switch(t){case"network-simplex":default:es(e);break;case"tight-tree":var r;et(r=e),en(r);break;case"longest-path":et(e);case"none":}})(T(e))),o(" injectEdgeLabelProxies",()=>{var t;(t=e).edges().forEach(e=>{let r=t.edge(e);if(r.width&&r.height){let r=t.node(e.v),n={rank:(t.node(e.w).rank-r.rank)/2+r.rank,e:e};F(t,"edge-proxy",n,"_ep")}})}),o(" removeEmptyRanks",()=>{let t,r,n,o;return t=z(Math.min,e.nodes().map(t=>e.node(t).rank).filter(e=>void 0!==e)),r=[],e.nodes().forEach(n=>{let o=e.node(n).rank-t;r[o]||(r[o]=[]),r[o].push(n)}),n=0,o=e.graph().nodeRankFactor,void Array.from(r).forEach((t,r)=>{void 0===t&&r%o!=0?--n:void 0!==t&&n&&t.forEach(t=>e.node(t).rank+=n)})}),o(" nestingGraph.cleanup",()=>{let t;return t=e.graph(),void(e.removeNode(t.nestingRoot),delete t.nestingRoot,e.edges().forEach(t=>{e.edge(t).nestingEdge&&e.removeEdge(t)}))}),o(" normalizeRanks",()=>{let t;return t=z(Math.min,e.nodes().map(t=>{let r=e.node(t).rank;return void 0===r?Number.MAX_VALUE:r})),void e.nodes().forEach(r=>{let n=e.node(r);Object.hasOwn(n,"rank")&&(n.rank-=t)})}),o(" assignRankMinMax",()=>{var t;let r;return r=0,void((t=e).nodes().forEach(e=>{let n=t.node(e);n.borderTop&&(n.minRank=t.node(n.borderTop).rank,n.maxRank=t.node(n.borderBottom).rank,r=Math.max(r,n.maxRank))}),t.graph().maxRank=r)}),o(" removeEdgeLabelProxies",()=>{var t;(t=e).nodes().forEach(e=>{let r=t.node(e);"edge-proxy"===r.dummy&&(t.edge(r.e).labelRank=r.rank,t.removeNode(e))})}),o(" normalize.run",()=>{e.graph().dummyChains=[],e.edges().forEach(t=>(function(e,t){let r,n,o,i=t.v,s=e.node(i).rank,d=t.w,a=e.node(d).rank,h=t.name,l=e.edge(t),u=l.labelRank;if(a!==s+1){for(e.removeEdge(t),o=0,++s;s<a;++o,++s)l.points=[],r=F(e,"edge",n={width:0,height:0,edgeLabel:l,edgeObj:t,rank:s},"_d"),s===u&&(n.width=l.width,n.height=l.height,n.dummy="edge-label",n.labelpos=l.labelpos),e.setEdge(i,r,{weight:l.weight},h),0===o&&e.graph().dummyChains.push(r),i=r;e.setEdge(i,d,{weight:l.weight},h)}})(e,t))}),o(" parentDummyChains",()=>{var t,r;let n,o,i;return i=(n={},o=0,(r=t=e).children("\0").forEach(function e(t){let i=o;r.children(t).forEach(e),n[t]={low:i,lim:o++}}),n),void t.graph().dummyChains.forEach(e=>{let r=t.node(e),n=r.edgeObj,o=function(e,t,r,n){let o=[],i=[],s=Math.min(t[r].low,t[n].low),d=Math.max(t[r].lim,t[n].lim),a;a=r;do o.push(a=e.parent(a));while(a&&(t[a].low>s||d>t[a].lim));let h=a,l=n;for(;(l=e.parent(l))!==h;)i.push(l);return{path:o.concat(i.reverse()),lca:h}}(t,i,n.v,n.w),s=o.path,d=o.lca,a=0,h=s[0],l=!0;for(;e!==n.w;){if(r=t.node(e),l){for(;(h=s[a])!==d&&t.node(h).maxRank<r.rank;)a++;h===d&&(l=!1)}if(!l){for(;a<s.length-1&&t.node(s[a+1]).minRank<=r.rank;)a++;h=s[a]}void 0!==h&&t.setParent(e,h),e=t.successors(e)[0]}})}),o(" addBorderSegments",()=>{var t;(t=e).children("\0").forEach(function e(r){let n=t.children(r),o=t.node(r);if(n.length&&n.forEach(e),Object.hasOwn(o,"minRank")){o.borderLeft=[],o.borderRight=[];for(let e=o.minRank,n=o.maxRank+1;e<n;++e)eg(t,"borderLeft","_bl",r,o,e),eg(t,"borderRight","_br",r,o,e)}})}),o(" order",()=>(function e(t,r={}){let n,o,i;if("function"==typeof r.customOrder)return void r.customOrder(t,e);let s=q(t),a=eb(t,W(1,s+1),"inEdges"),h=eb(t,W(s-1,-1,-1),"outEdges"),l=(n={},i=W(z(Math.max,(o=t.nodes().filter(e=>!t.children(e).length)).map(e=>t.node(e).rank))+1).map(()=>[]),o.sort((e,r)=>t.node(e).rank-t.node(r).rank).forEach(function e(r){if(n[r])return;n[r]=!0,i[t.node(r).rank].push(r);let o=t.successors(r);o&&o.forEach(e)}),i);if(e_(t,l),r.disableOptimalOrderHeuristic)return;let u=1/0,c,f=r.constraints||[];for(let e=0,r=0;r<4;++e,++r){(function(e,t,r){let n=new d;e.forEach(function(e){var o;let i,s;r.forEach(e=>n.setEdge(e.left,e.right));let d=e.graph().root,a=function e(t,r,n,o){var i;let s,d,a,h,l,u,c,f,g,p,v=t.children(r),w=t.node(r),m=w?w.borderLeft:void 0,E=w?w.borderRight:void 0,b={};m&&(v=v.filter(e=>e!==m&&e!==E));let _=function(e,t=[]){return t.map(t=>{let r=e.inEdges(t);if(!r||!r.length)return{v:t};{let n=r.reduce((t,r)=>{let n=e.edge(r),o=e.node(r.v);return{sum:t.sum+n.weight*o.order,weight:t.weight+n.weight}},{sum:0,weight:0});return{v:t,barycenter:n.sum/n.weight,weight:n.weight}}})}(t,v);_.forEach(r=>{if(t.children(r.v).length){var i,s;let d=e(t,r.v,n,o);b[r.v]=d,Object.hasOwn(d,"barycenter")&&(i=r,s=d,void 0!==i.barycenter?(i.barycenter=(i.barycenter*i.weight+s.barycenter*s.weight)/(i.weight+s.weight),i.weight+=s.weight):(i.barycenter=s.barycenter,i.weight=s.weight))}});let y=(s={},_.forEach((e,t)=>{let r={indegree:0,in:[],out:[],vs:[e.v],i:t};void 0!==e.barycenter&&(r.barycenter=e.barycenter,r.weight=e.weight),s[e.v]=r}),n.edges().forEach(e=>{let t=s[e.v],r=s[e.w];void 0!==t&&void 0!==r&&(r.indegree++,t.out.push(r))}),function(e){let t=[];for(;e.length;){let r=e.pop();t.push(r),r.in.reverse().forEach(function(e){return t=>{t.merged||(void 0===t.barycenter||void 0===e.barycenter||t.barycenter>=e.barycenter)&&function(e,t){let r=0,n=0;e.weight&&(r+=e.barycenter*e.weight,n+=e.weight),t.weight&&(r+=t.barycenter*t.weight,n+=t.weight),e.vs=t.vs.concat(e.vs),e.barycenter=r/n,e.weight=n,e.i=Math.min(t.i,e.i),t.merged=!0}(e,t)}}(r)),r.out.forEach(function(t){return r=>{r.in.push(t),0==--r.indegree&&e.push(r)}}(r))}return t.filter(e=>!e.merged).map(e=>H(e,["vs","i","barycenter","weight"]))}(Object.values(s).filter(e=>!e.indegree)));!function(e,t){e.forEach(e=>{e.vs=e.vs.flatMap(e=>t[e]?t[e].vs:e)})}(y,b);let k=(h=(i=e=>Object.hasOwn(e,"barycenter"),d={lhs:[],rhs:[]},y.forEach(e=>{i(e)?d.lhs.push(e):d.rhs.push(e)}),a=d).lhs,l=a.rhs.sort((e,t)=>t.i-e.i),u=[],c=0,f=0,g=0,h.sort(function(e){return(t,r)=>t.barycenter<r.barycenter?-1:t.barycenter>r.barycenter?1:e?r.i-t.i:t.i-r.i}(!!o)),g=eE(u,l,g),h.forEach(e=>{g+=e.vs.length,u.push(e.vs),c+=e.barycenter*e.weight,f+=e.weight,g=eE(u,l,g)}),p={vs:u.flat(1)},f&&(p.barycenter=c/f,p.weight=f),p);if(m&&E){k.vs=[m,k.vs,E].flat(1);let e=t.predecessors(m);if(e&&e.length){let r=t.node(e[0]),n=t.predecessors(E),o=t.node(n[0]);Object.hasOwn(k,"barycenter")||(k.barycenter=0,k.weight=0),k.barycenter=(k.barycenter*k.weight+r.order+o.order)/(k.weight+2),k.weight+=2}}return k}(e,d,n,t);a.vs.forEach((t,r)=>e.node(t).order=r),o=a.vs,i={},o.forEach(t=>{let r=e.parent(t),o,d;for(;r;){if((o=e.parent(r))?(d=i[o],i[o]=r):(d=s,s=r),d&&d!==r)return void n.setEdge(d,r);r=o}})})})(e%2?a:h,e%4>=2,f),l=A(t);let n=function(e,t){let r=0;for(let n=1;n<t.length;++n)r+=function(e,t,r){var n;let o=(n=r.map((e,t)=>t),r.reduce((e,t,r)=>(e[t]=n[r],e),{})),i=t.flatMap(t=>{let r=e.outEdges(t);return r?r.map(t=>({pos:o[t.w],weight:e.edge(t).weight})).sort((e,t)=>e.pos-t.pos):[]}),s=1;for(;s<r.length;)s<<=1;let d=2*s-1;s-=1;let a=Array(d).fill(0),h=0;return i.forEach(e=>{let t=e.pos+s;a[t]+=e.weight;let r=0;for(;t>0;)t%2&&(r+=a[t+1]),t=t-1>>1,a[t]+=e.weight;h+=e.weight*r}),h}(e,t[n-1],t[n]);return r}(t,l);n<u?(r=0,c=Object.assign({},l),u=n):n===u&&(c=structuredClone(l))}e_(t,c)})(e,i)),o(" insertSelfEdges",()=>{var t;A(t=e).forEach(e=>{let r=0;e.forEach((e,n)=>{let o=t.node(e);o.order=n+r,(o.selfEdges||[]).forEach(e=>{F(t,"selfedge",{width:e.label.width,height:e.label.height,rank:o.rank,order:n+ ++r,e:e.e,label:e.label},"_se")}),delete o.selfEdges})})}),o(" adjustCoordinateSystem",()=>{var t;let r;("lr"===(r=null==(t=e.graph().rankdir)?void 0:t.toLowerCase())||"rl"===r)&&ep(e)}),o(" position",()=>{var t,r,n,o;let i,s,a,h,l,u,c,f,g,p,v,w,m,E,b;v=A(o=t=T(t=e)),m=(w=o.graph()).ranksep,E=w.rankalign,b=0,v.forEach(e=>{let t=e.reduce((e,t)=>{var r;let n=null!=(r=o.node(t).height)?r:0;return e>n?e:n},0);e.forEach(e=>{let r=o.node(e);"top"===E?r.y=b+r.height/2:"bottom"===E?r.y=b+t-r.height/2:r.y=b+t/2}),b+=t+m}),Object.entries((s=A(r=t),a=Object.assign((i={},s.length&&s.reduce(function(e,t){let n=0,o=0,s=e.length,d=t[t.length-1];return t.forEach((e,a)=>{let h=function(e,t){if(e.node(t).dummy){let r=e.predecessors(t);if(r)return r.find(t=>e.node(t).dummy)}}(r,e),l=h?r.node(h).order:s;(h||e===d)&&(t.slice(o,a+1).forEach(e=>{let t=r.predecessors(e);t&&t.forEach(t=>{let o=r.node(t),s=o.order;(s<n||l<s)&&!(o.dummy&&r.node(e).dummy)&&ey(i,t,e)})}),o=a+1,n=l)}),t}),i),function(e,t){let r={};function n(t,n,o,i,s){W(n,o).forEach(n=>{let o=t[n];if(void 0!==o&&e.node(o).dummy){let t=e.predecessors(o);t&&t.forEach(t=>{if(void 0===t)return;let n=e.node(t);n.dummy&&(n.order<i||n.order>s)&&ey(r,t,o)})}})}return t.length&&t.reduce(function(t,r){let o=-1,i=-1,s=0;return r.forEach((d,a)=>{if("border"===e.node(d).dummy){let t=e.predecessors(d);if(t&&t.length){let d=t[0];if(void 0===d)return;i=e.node(d).order,n(r,s,a,o,i),s=a,o=i}}n(r,s,r.length,i,t.length)}),r}),r}(r,s)),h={},["u","d"].forEach(e=>{l="u"===e?s:Object.values(s).reverse(),["l","r"].forEach(t=>{var n,o;let i,s,u;"r"===t&&(l=l.map(e=>Object.values(e).reverse()));let c=(n=l,o=t=>("u"===e?r.predecessors(t):r.successors(t))||[],i={},s={},u={},n.forEach(e=>{e.forEach((e,t)=>{i[e]=e,s[e]=e,u[e]=t})}),n.forEach(e=>{let t=-1;e.forEach(e=>{let r=o(e);if(r&&r.length){let n=r.sort((e,t)=>{let r=u[e],n=u[t];return(void 0!==r?r:0)-(void 0!==n?n:0)}),o=(n.length-1)/2;for(let r=Math.floor(o),d=Math.ceil(o);r<=d;++r){let o=n[r];if(void 0===o)continue;let d=u[o];if(void 0!==d&&s[e]===e&&t<d&&!function(e,t,r){if(t>r){let e=t;t=r,r=e}let n=e[t];return void 0!==n&&Object.hasOwn(n,r)}(a,e,o)){let r=i[o];void 0!==r&&(s[o]=e,s[e]=i[e]=r,t=d)}}}})}),{root:i,align:s}),f=function(e,t,r,n,o=!1){var i,s,a,h,l,u,c;let f,g,p,v={},w=(i=e,s=t,a=r,h=o,f=new d,p=(l=(g=i.graph()).nodesep,u=g.edgesep,c=h,(e,t,r)=>{let n=e.node(t),o=e.node(r),i,s;if(i=0+n.width/2,Object.hasOwn(n,"labelpos"))switch(n.labelpos.toLowerCase()){case"l":s=-n.width/2;break;case"r":s=n.width/2}if(s&&(i+=c?s:-s),s=void 0,i+=(n.dummy?u:l)/2,i+=(o.dummy?u:l)/2,i+=o.width/2,Object.hasOwn(o,"labelpos"))switch(o.labelpos.toLowerCase()){case"l":s=o.width/2;break;case"r":s=-o.width/2}return s&&(i+=c?s:-s),i}),s.forEach(e=>{let t;e.forEach(e=>{let r=a[e];if(void 0!==r){if(f.setNode(r),void 0!==t){let n=a[t];if(void 0!==n){let o=f.edge(n,r);f.setEdge(n,r,Math.max(p(i,e,t),o||0))}}t=e}})}),f),m=o?"borderLeft":"borderRight";function E(e,t){let r=w.nodes().slice(),n={},o=r.pop();for(;o;){if(n[o])e(o);else for(let e of(n[o]=!0,r.push(o),t(o)))r.push(e);o=r.pop()}}return E(function(e){let t=w.inEdges(e);t?v[e]=t.reduce((e,t)=>{var r;let n=null!=(r=v[t.v])?r:0,o=w.edge(t);return Math.max(e,n+(void 0!==o?o:0))},0):v[e]=0},function(e){return w.predecessors(e)||[]}),E(function(t){let r=w.outEdges(t),n=1/0;r&&(n=r.reduce((e,t)=>{let r=v[t.w],n=w.edge(t);return Math.min(e,(void 0!==r?r:0)-(void 0!==n?n:0))},1/0));let o=e.node(t);n!==1/0&&o.borderType!==m&&(v[t]=Math.max(void 0!==v[t]?v[t]:0,n))},function(e){return w.successors(e)||[]}),Object.keys(n).forEach(e=>{var t;let n=r[e];void 0!==n&&(v[e]=null!=(t=v[n])?t:0)}),v}(r,l,c.root,c.align,"r"===t);"r"===t&&(f=J(f,e=>-e)),h[e+t]=f})}),u=Object.values(h).reduce((e,t)=>{let n=-1/0,o=1/0;Object.entries(t).forEach(([e,t])=>{var i,s;let d=(i=r,s=e,i.node(s).width/2);n=Math.max(t+d,n),o=Math.min(t-d,o)});let i=n-o;return i<e[0]&&(e=[i,t]),e},[1/0,null])[1],f=z(Math.min,c=Object.values(u)),g=z(Math.max,c),["u","d"].forEach(e=>{["l","r"].forEach(t=>{let r=e+t,n=h[r];if(!n||n===u)return;let o=Object.values(n),i=f-z(Math.min,o);"l"!==t&&(i=g-z(Math.max,o)),i&&(h[r]=J(n,e=>e+i))})}),n=r.graph().align,(p=h.ul)?J(p,(e,t)=>{var r,o;if(n){let e=h[n.toLowerCase()];if(e&&void 0!==e[t])return e[t]}let i=Object.values(h).map(e=>{let r=e[t];return void 0!==r?r:0}).sort((e,t)=>e-t);return((null!=(r=i[1])?r:0)+(null!=(o=i[2])?o:0))/2}):{})).forEach(([e,r])=>t.node(e).x=r)}),o(" positionSelfEdges",()=>{var t;(t=e).nodes().forEach(e=>{let r=t.node(e);if("selfedge"===r.dummy){let n=t.node(r.e.v),o=n.x+n.width/2,i=n.y,s=r.x-o,d=n.height/2;t.setEdge(r.e,r.label),t.removeNode(e),r.label.points=[{x:o+2*s/3,y:i-d},{x:o+5*s/6,y:i-d},{x:o+s,y:i},{x:o+5*s/6,y:i+d},{x:o+2*s/3,y:i+d}],r.label.x=r.x,r.label.y=r.y}})}),o(" removeBorderNodes",()=>{var t;(t=e).nodes().forEach(e=>{if(t.children(e).length){let r=t.node(e),n=t.node(r.borderTop),o=t.node(r.borderBottom),i=t.node(r.borderLeft[r.borderLeft.length-1]),s=t.node(r.borderRight[r.borderRight.length-1]);r.width=Math.abs(s.x-i.x),r.height=Math.abs(o.y-n.y),r.x=i.x+r.width/2,r.y=n.y+r.height/2}}),t.nodes().forEach(e=>{"border"===t.node(e).dummy&&t.removeNode(e)})}),o(" normalize.undo",()=>{e.graph().dummyChains.forEach(t=>{let r=e.node(t),n=r.edgeLabel,o;for(e.setEdge(r.edgeObj,n);r.dummy;)o=e.successors(t)[0],e.removeNode(t),n.points.push({x:r.x,y:r.y}),"edge-label"===r.dummy&&(n.x=r.x,n.y=r.y,n.width=r.width,n.height=r.height),t=o,r=e.node(t)})}),o(" fixupEdgeLabelCoords",()=>{var t;(t=e).edges().forEach(e=>{let r=t.edge(e);if(Object.hasOwn(r,"x"))switch(("l"===r.labelpos||"r"===r.labelpos)&&(r.width-=r.labeloffset),r.labelpos){case"l":r.x-=r.width/2+r.labeloffset;break;case"r":r.x+=r.width/2+r.labeloffset}})}),o(" undoCoordinateSystem",()=>{var t,r,n;let o;("bt"===(o=null==(t=e.graph().rankdir)?void 0:t.toLowerCase())||"rl"===o)&&((r=e).nodes().forEach(e=>ew(r.node(e))),r.edges().forEach(e=>{var t;let n=r.edge(e);null==(t=n.points)||t.forEach(ew),Object.hasOwn(n,"y")&&ew(n)})),("lr"===o||"rl"===o)&&((n=e).nodes().forEach(e=>em(n.node(e))),n.edges().forEach(e=>{var t;let r=n.edge(e);null==(t=r.points)||t.forEach(em),Object.hasOwn(r,"x")&&em(r)}),ep(e))}),o(" translateGraph",()=>(function(e){let t=1/0,r=0,n=1/0,o=0,i=e.graph(),s=i.marginx||0,d=i.marginy||0;function a(e){let i=e.x,s=e.y,d=e.width,a=e.height;t=Math.min(t,i-d/2),r=Math.max(r,i+d/2),n=Math.min(n,s-a/2),o=Math.max(o,s+a/2)}e.nodes().forEach(t=>a(e.node(t))),e.edges().forEach(t=>{let r=e.edge(t);Object.hasOwn(r,"x")&&a(r)}),t-=s,n-=d,e.nodes().forEach(r=>{let o=e.node(r);o.x-=t,o.y-=n}),e.edges().forEach(r=>{let o=e.edge(r);o.points.forEach(e=>{e.x-=t,e.y-=n}),Object.hasOwn(o,"x")&&(o.x-=t),Object.hasOwn(o,"y")&&(o.y-=n)}),i.width=r-t+s,i.height=o-n+d})(e)),o(" assignNodeIntersects",()=>{var t;(t=e).edges().forEach(e=>{let r=t.edge(e),n=t.node(e.v),o=t.node(e.w),i,s;r.points?(i=r.points[0],s=r.points[r.points.length-1]):(r.points=[],i=o,s=n),r.points.unshift(I(n,i)),r.points.push(I(o,s))})}),o(" reversePoints",()=>{var t;(t=e).edges().forEach(e=>{let r=t.edge(e);r.reversed&&r.points.reverse()})}),o(" acyclic.undo",()=>{e.edges().forEach(t=>{let r=e.edge(t);if(r.reversed){e.removeEdge(t);let n=r.forwardName;delete r.reversed,delete r.forwardName,e.setEdge(t.w,t.v,r,n)}})}))}),r(" updateInputGraph",()=>{var t,r;return t=e,r=n,void(t.nodes().forEach(e=>{let n=t.node(e),o=r.node(e);n&&(n.x=o.x,n.y=o.y,n.order=o.order,n.rank=o.rank,r.children(e).length&&(n.width=o.width,n.height=o.height))}),t.edges().forEach(e=>{let n=t.edge(e),o=r.edge(e);n.points=o.points,Object.hasOwn(o,"x")&&(n.x=o.x,n.y=o.y)}),t.graph().width=r.graph().width,t.graph().height=r.graph().height)}),n})},debug:function(e){let t=A(e),r=new d({compound:!0,multigraph:!0}).setGraph({});return e.nodes().forEach(t=>{r.setNode(t,{label:t}),r.setParent(t,"layer"+e.node(t).rank)}),e.edges().forEach(e=>r.setEdge(e.v,e.w,{},e.name)),t.forEach((e,t)=>{r.setNode("layer"+t,{rank:"same"}),e.reduce((e,t)=>(r.setEdge(e,t,{style:"invis"}),t))}),r},util:{time:V,notime:$}}}}]);
|