elanous 0.2.28 → 0.2.29
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/{y1ltt7oCZxVpC6zVPhZ2O → cIpv5nU9AycwYWZI9H589}/_buildManifest.js +1 -1
- package/apps/pwa/out/_next/static/chunks/{ab4d57c2.e90bc2cb31949045.js → 058a98ba.7eb28d5e6dc03565.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/{4565-67e4c620597965c8.js → 1015-9cba22a5a4554797.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/1084-4e66af7376a18db7.js +1 -0
- package/apps/pwa/out/_next/static/chunks/1106.3a6410b7b0c70ad4.js +1 -0
- package/apps/pwa/out/_next/static/chunks/1127.32fc642f70423506.js +8 -0
- package/apps/pwa/out/_next/static/chunks/{1516.83dd2c1b86b4e507.js → 1142.65d002789ab3af7d.js} +2 -2
- package/apps/pwa/out/_next/static/chunks/1189-d9b8e1995a831fae.js +1 -0
- package/apps/pwa/out/_next/static/chunks/1224.6da98c7ad0eb7dd8.js +34 -0
- package/apps/pwa/out/_next/static/chunks/1370.4e3e2558f111fd5d.js +1 -0
- package/apps/pwa/out/_next/static/chunks/1514-b7da377fdc4eb17a.js +1 -0
- package/apps/pwa/out/_next/static/chunks/1516.dfaceff3fd2d0e0d.js +1 -0
- package/apps/pwa/out/_next/static/chunks/1577.3c24c32584e10d70.js +286 -0
- package/apps/pwa/out/_next/static/chunks/161.130a569855c4d68c.js +24 -0
- package/apps/pwa/out/_next/static/chunks/1782-59db1b5aa06df38a.js +1 -0
- package/apps/pwa/out/_next/static/chunks/{1743.563d3168e95825ef.js → 1852.7f7b53991fcb99ef.js} +2 -2
- package/apps/pwa/out/_next/static/chunks/1864.16da9556e78a9236.js +1 -0
- package/apps/pwa/out/_next/static/chunks/1b6f6b2a.aff090122be3726e.js +1 -0
- package/apps/pwa/out/_next/static/chunks/2341.e8a9135e5b910dd5.js +36 -0
- package/apps/pwa/out/_next/static/chunks/257.10afdbe3520f2fc2.js +1 -0
- package/apps/pwa/out/_next/static/chunks/2658.87550e692dc493f6.js +64 -0
- package/apps/pwa/out/_next/static/chunks/2673.85e2f02efae7a85f.js +1 -0
- package/apps/pwa/out/_next/static/chunks/2766-bee623b37472ed63.js +1 -0
- package/apps/pwa/out/_next/static/chunks/2794.6d836872b0bf43e2.js +1 -0
- package/apps/pwa/out/_next/static/chunks/2806.eb57ced1a528ed39.js +1 -0
- package/apps/pwa/out/_next/static/chunks/283.7a121c4910e6dad7.js +1 -0
- package/apps/pwa/out/_next/static/chunks/{65ebff95.081daeff622d238e.js → 285adb1a.5654e605dddf86d2.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/2870.1dc29aa5fc01f09f.js +115 -0
- package/apps/pwa/out/_next/static/chunks/293.fd38e77ce5d48103.js +1 -0
- package/apps/pwa/out/_next/static/chunks/2993-5952a1cd3fd5d441.js +1 -0
- package/apps/pwa/out/_next/static/chunks/3160-95c96f4d2a21dd26.js +1 -0
- package/apps/pwa/out/_next/static/chunks/32-a523427c5bd5ed00.js +1 -0
- package/apps/pwa/out/_next/static/chunks/3280.af38002a6424a905.js +90 -0
- package/apps/pwa/out/_next/static/chunks/328bb3ab-6628a1114fe3fb3b.js +1 -0
- package/apps/pwa/out/_next/static/chunks/3292-5ddffdb2f517b44f.js +1 -0
- package/apps/pwa/out/_next/static/chunks/{9917-9e26abc5f7772735.js → 3396-97b97928c49190c9.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/{6196.34d6b229079e9e28.js → 3403.7199205e65124486.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/3523.d3231daaf7aba993.js +1 -0
- package/apps/pwa/out/_next/static/chunks/3763.577de3181e1e6ea0.js +1 -0
- package/apps/pwa/out/_next/static/chunks/4138-cc56b0938ef72783.js +1 -0
- package/apps/pwa/out/_next/static/chunks/419.736c0d6f426249a7.js +1 -0
- package/apps/pwa/out/_next/static/chunks/4255-8350c43d307a8875.js +1 -0
- package/apps/pwa/out/_next/static/chunks/{6def8a8e.c81f9ca41028eccf.js → 425cfc4d.fb91158e3971c39f.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/4352.a4954693499c2714.js +1 -0
- package/apps/pwa/out/_next/static/chunks/4421-f2dcbc6fd80ec013.js +1 -0
- package/apps/pwa/out/_next/static/chunks/4513-51b94aeee37c9905.js +1 -0
- package/apps/pwa/out/_next/static/chunks/{16e57f67.3ea19e893461e611.js → 46bd8bea.2f4b4099172fcdb7.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/{5081.a240b63fad28663a.js → 4759.1f76713aefb87db5.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/4928-c3b72f99aa588699.js +1 -0
- package/apps/pwa/out/_next/static/chunks/4986-f9fc0283fb325219.js +1 -0
- package/apps/pwa/out/_next/static/chunks/5014.671a7b9f69c2b7b1.js +94 -0
- package/apps/pwa/out/_next/static/chunks/5137.d398e24710b3feb6.js +1 -0
- package/apps/pwa/out/_next/static/chunks/5298.0bea74885cabe754.js +1 -0
- package/apps/pwa/out/_next/static/chunks/5315.74c53a39739b11c4.js +1 -0
- package/apps/pwa/out/_next/static/chunks/5317-8b1df8d02105cd07.js +1 -0
- package/apps/pwa/out/_next/static/chunks/5358-33051f41a2b239af.js +1 -0
- package/apps/pwa/out/_next/static/chunks/5388.a2ec02501f714ad5.js +62 -0
- package/apps/pwa/out/_next/static/chunks/5395.e6ac948a2d15058d.js +1 -0
- package/apps/pwa/out/_next/static/chunks/5409-f282bf533c151849.js +1 -0
- package/apps/pwa/out/_next/static/chunks/5466.d0f4aba9d52acfa8.js +27 -0
- package/apps/pwa/out/_next/static/chunks/5564.3d28b353470fe305.js +104 -0
- package/apps/pwa/out/_next/static/chunks/{9974.e77b4ff4884557b3.js → 5591.a35e7a217734a8b9.js} +2 -2
- package/apps/pwa/out/_next/static/chunks/569.b0cbfb4dee4a167a.js +93 -0
- package/apps/pwa/out/_next/static/chunks/5835-72465b73a8bb8d74.js +1 -0
- package/apps/pwa/out/_next/static/chunks/5941.045d6093139e1f7a.js +1 -0
- package/apps/pwa/out/_next/static/chunks/{5492-e05e26a033ba80d2.js → 6013-2f769370d8b4c2c6.js} +3 -3
- package/apps/pwa/out/_next/static/chunks/6228.47cabb83564dfe54.js +24 -0
- package/apps/pwa/out/_next/static/chunks/6457-8d1993002a87d0fe.js +1 -0
- package/apps/pwa/out/_next/static/chunks/6513.ef54cfae52351982.js +2 -0
- package/apps/pwa/out/_next/static/chunks/{5408.377c8c543635b81f.js → 6534.1ab00f370db7b105.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/6582.13d245bf87df69f1.js +148 -0
- package/apps/pwa/out/_next/static/chunks/6655.c33f6acc2c61bb89.js +149 -0
- package/apps/pwa/out/_next/static/chunks/6731-9d7195af289c8d4c.js +1 -0
- package/apps/pwa/out/_next/static/chunks/6733.0be05b1db9279fc5.js +79 -0
- package/apps/pwa/out/_next/static/chunks/6742-90937146253a8b9e.js +1 -0
- package/apps/pwa/out/_next/static/chunks/{8578.dff22d988cc2b106.js → 6767.1fcfc9b8be83975f.js} +16 -16
- package/apps/pwa/out/_next/static/chunks/6776.06ff1e3b464cc607.js +1 -0
- package/apps/pwa/out/_next/static/chunks/{9311.24c8f5ea793253dd.js → 6853.cc5174a9dee59593.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/687-816858f77a396a4e.js +1 -0
- package/apps/pwa/out/_next/static/chunks/6888.72c7b8cfb02a7e61.js +1 -0
- package/apps/pwa/out/_next/static/chunks/6993.c17c828ac3ef3253.js +1 -0
- package/apps/pwa/out/_next/static/chunks/7076.9f27ef666b0cefdd.js +1 -0
- package/apps/pwa/out/_next/static/chunks/7113.1403c5d451804e8c.js +287 -0
- package/apps/pwa/out/_next/static/chunks/7169.9dd603c726c2cd7c.js +1 -0
- package/apps/pwa/out/_next/static/chunks/7247-e3ec21f761f86710.js +1 -0
- package/apps/pwa/out/_next/static/chunks/7261-a47b72f96f5199df.js +1 -0
- package/apps/pwa/out/_next/static/chunks/7335-5cda81ac90310077.js +1 -0
- package/apps/pwa/out/_next/static/chunks/7356-c2e4af090546e2d4.js +1 -0
- package/apps/pwa/out/_next/static/chunks/{94.4cfed21c0b781a06.js → 7375.050ea0d72968e49f.js} +16 -16
- package/apps/pwa/out/_next/static/chunks/738-59518742078fda71.js +1 -0
- package/apps/pwa/out/_next/static/chunks/7385.a7375f10db73243a.js +77 -0
- package/apps/pwa/out/_next/static/chunks/7445.cf1cf2fe109bcd96.js +1 -0
- package/apps/pwa/out/_next/static/chunks/7505.a2057432ab6ef99a.js +1 -0
- package/apps/pwa/out/_next/static/chunks/7515.31f45fac1f9c70cb.js +74 -0
- package/apps/pwa/out/_next/static/chunks/7658-d4ce8c72a9548a91.js +1 -0
- package/apps/pwa/out/_next/static/chunks/7725-4f83d5541fbdb81b.js +1 -0
- package/apps/pwa/out/_next/static/chunks/8107-0b1ae46bc5bcb788.js +1 -0
- package/apps/pwa/out/_next/static/chunks/8132.bfea2f016ce8d992.js +1 -0
- package/apps/pwa/out/_next/static/chunks/8332.6f0f49df772e163b.js +23 -0
- package/apps/pwa/out/_next/static/chunks/{7483.ba01c6c209b81bba.js → 8398.73a19b39715eda04.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/{2846.d6a433b8663819a5.js → 8471.8d2a8c74f09c36ff.js} +3 -3
- package/apps/pwa/out/_next/static/chunks/8672.e299832bc7d18ee2.js +1 -0
- package/apps/pwa/out/_next/static/chunks/8735.f1ef798a5f260f6f.js +226 -0
- package/apps/pwa/out/_next/static/chunks/{5785-ea8d2c633b6688e3.js → 8767-2f6a634f5abeaa01.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/8774-88f67f7d8d53d299.js +1 -0
- package/apps/pwa/out/_next/static/chunks/8782.252e5a405d86e4ed.js +32 -0
- package/apps/pwa/out/_next/static/chunks/8795.32573a185af18c7b.js +41 -0
- package/apps/pwa/out/_next/static/chunks/909-9ed7aa0dba804316.js +1 -0
- package/apps/pwa/out/_next/static/chunks/9100.22b0301256827007.js +1 -0
- package/apps/pwa/out/_next/static/chunks/9140-dde77575570bc71e.js +1 -0
- package/apps/pwa/out/_next/static/chunks/{4593.10f5b9bd702d4a6c.js → 9143.ff14585db1d275ff.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/9292-a7ad9a01c7044b93.js +1 -0
- package/apps/pwa/out/_next/static/chunks/9517.00627dc51b02821c.js +1 -0
- package/apps/pwa/out/_next/static/chunks/9725.dcbb585652d8e9c5.js +1 -0
- package/apps/pwa/out/_next/static/chunks/9761.a3ebf5c389c24ddc.js +1 -0
- package/apps/pwa/out/_next/static/chunks/{4204.a409ab6250c0f6a8.js → 9907.49be0fcadaf214b5.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/9972.834d2b2b7d48f1ed.js +1 -0
- package/apps/pwa/out/_next/static/chunks/9995-1a90486f5ae01546.js +1 -0
- package/apps/pwa/out/_next/static/chunks/{973cbf1b.3bbcf2b41548eca7.js → a435ad95.577add051b4facb2.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/app/_not-found/page-83372d8b5863ebf7.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/approvals/page-d69256d7613c140a.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/autopilot/page-352c5e9ba3f9b858.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/board/page-69f1d725524201a8.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/botlab/{page-fa46d4588e8442c2.js → page-a5635eba0d73b84e.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/app/bots/page-ad9181d84285e4ea.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/ceo/{page-66ad46ed0279feb9.js → page-86feb08080261a2f.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/app/chat/page-ffa15987e4756d03.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/consult/page-11a3ab44ac327cc1.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/control/page-6309b11c4264d24d.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/decisions/page-8800472079612e87.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/design-check/page-d387bf3f2301882a.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/editor/page-048f88d8c8658da6.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/exec/page-6c14f9739b7f6880.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/field/page-2834f44f64e98d74.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/healthz/route-83372d8b5863ebf7.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/inside/page-a13df6f88e824887.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/intake/page-8a4397248754cf2b.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/layout-daf0bd329360a336.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/live/page-f7ef1c28764cb476.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/live-run/page-61e74f28b9353dac.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/loops/{page-646b50f63b6fe732.js → page-8aaa6dedc4c10dfb.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/app/market/page-294602ba649be829.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/missions/[id]/page-5fa5f41ed3fce323.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/morning/{page-6f131b51193a36f9.js → page-33bf667a5fb297bf.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/app/not-found-5ae3cbd6e5dba515.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/observatory/page-eb867d16ad6fdede.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/ops/checklist/page-1ab789fa68682f7e.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/ops/release/page-6fd41b5b6ff13a71.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/ops/seats/page-fb3d5f7642c99fba.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/outputs/page-70f705b2b5ed42ca.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/page-c9c93b358a7667b5.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/reflection/page-1563c556b81c96ed.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/scheduler/page-ce89c20c45b3a673.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/sessions/page-423ae63d786f4ee9.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/settings/devices/page-591a5378a4c4447c.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/settings/page-a250496b19a5824b.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/setup/done/page-c36a9277febc5911.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/setup/layout-83372d8b5863ebf7.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/setup/page-29900ed0011b2c83.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/share/page-a5de57edc6d7f942.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/showroom/page-16bdd4c9f40498df.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/tasks/page-75e946e6e71cc6d8.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/term/page-9eb56166774eb256.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/today/page-1c5f9ef35dbb22c5.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/trace/page-657ff9985e508498.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/vault/page-22dc72499da68fb2.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/workflows/chat-ui/page-9f92737b8766009a.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/workflows/page-094ad334e40f8169.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/workspace/page-8bcd379852ff6287.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/worktrees/page-6b04413f280cd344.js +1 -0
- package/apps/pwa/out/_next/static/chunks/{f4dfbfc0.a69fb12f854882aa.js → bc324b7c.02a09dd93f6a399b.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/de70ab42-d28d47437208d458.js +1 -0
- package/apps/pwa/out/_next/static/chunks/f800c5e3.46dbd7f2af8c3fce.js +1 -0
- package/apps/pwa/out/_next/static/chunks/f8bc19ad.47579f6d684b0760.js +122 -0
- package/apps/pwa/out/_next/static/chunks/framework-ca9ac4609fb9fed8.js +1 -0
- package/apps/pwa/out/_next/static/chunks/main-app-0dd08d32d15a030f.js +1 -0
- package/apps/pwa/out/_next/static/chunks/main-f0399d33955c4e01.js +1 -0
- package/apps/pwa/out/_next/static/chunks/pages/_app-d42caca6f8ac2211.js +1 -0
- package/apps/pwa/out/_next/static/chunks/pages/_error-42e713c13aa41ca8.js +1 -0
- package/apps/pwa/out/_next/static/chunks/webpack-8fbf8f61a377aa16.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/release-loop.yaml +6 -2
- package/package.json +1 -1
- package/plugins/agent-team/agents/research.md +1 -0
- package/scripts/ci-typecheck-changed.ts +3 -2
- package/scripts/coord-channel-watch.sh +26 -6
- package/scripts/coord-role-pack.ts +143 -0
- package/scripts/lib/morning-report-options.ts +41 -0
- package/scripts/pr-land-extra-remote-gates.ts +49 -0
- package/scripts/release-loop/gate-batch-safe.ts +23 -0
- package/scripts/release-loop/gate-history.ts +422 -0
- package/scripts/release-loop/gate-node.ts +310 -46
- package/scripts/release-loop/gate-triage-node.ts +190 -0
- package/scripts/release-loop/spawn-lane.ts +68 -0
- package/scripts/release-loop/tui-node-checks.ts +23 -0
- package/scripts/release-loop/version-node.ts +62 -4
- package/scripts/test-deterministic.ts +41 -12
- package/scripts/usage-rollup.ts +11 -3
- package/src/acp/core-turn-bridge.ts +98 -22
- package/src/acp/elanous-extensions.ts +2 -0
- package/src/acp/server.ts +2 -0
- package/src/agent/ref-grounding.ts +18 -0
- package/src/agent-substrate/pr-reviewer.ts +29 -21
- package/src/budget/pty-usage-reemit.ts +7 -0
- package/src/budget/run-usage-rollup.ts +9 -0
- package/src/budget/usage-daily-store.ts +98 -0
- package/src/capture/tui-self-report.ts +22 -4
- package/src/chat/index.ts +31 -10
- package/src/chat/pickers/modal-runtime.ts +1 -0
- package/src/chat/pickers/modals.ts +3 -1
- package/src/chat/turn-typeahead.ts +123 -16
- package/src/cli/dashboard-name-flag.ts +48 -0
- package/src/cli/doctor-cli.ts +80 -0
- package/src/cli/log-event-names.ts +12 -0
- package/src/cli/msg-cli.ts +45 -2
- package/src/cli/pr-cli.ts +382 -105
- package/src/cli/pr-land-heavy-remote.ts +233 -0
- package/src/cli/pr-land-overlap-evidence.ts +104 -5
- package/src/cli/pty-takeover-cli.ts +125 -16
- package/src/cli/release-cli.ts +44 -2
- package/src/cli/remote-resolve.ts +2 -1
- package/src/cli/seat-cli.ts +26 -16
- package/src/cli/tasks-cli.ts +8 -2
- package/src/cli/usage-cli.ts +146 -12
- package/src/cli/usage-daily-cli.ts +84 -0
- package/src/context-bus/context-now.ts +82 -5
- package/src/core-turn/auth-rejected-notice.ts +41 -0
- package/src/core-turn/run-core-turn.ts +13 -2
- package/src/core-turn/run-goal-loop.ts +17 -1
- package/src/core-turn/short-question.ts +45 -12
- package/src/core-turn/types.ts +7 -0
- package/src/dashboard/acp-active-model.ts +40 -0
- package/src/dashboard/auto-compact-runtime.ts +2 -0
- package/src/dashboard/boot-banner.ts +80 -0
- package/src/dashboard/dashboard-status-lines.ts +11 -0
- package/src/dashboard/detail-viewer-runtime.ts +15 -2
- package/src/dashboard/event-loop-stall-monitor.ts +4 -0
- package/src/dashboard/goal-loop-thinking.ts +16 -0
- package/src/dashboard/hitl-boot.ts +9 -4
- package/src/dashboard/index.ts +228 -387
- package/src/dashboard/input/chat-main-entry-runtime.ts +2 -0
- package/src/dashboard/input/chat-main-log-actions.ts +4 -0
- package/src/dashboard/input/chat-main-log-command.ts +12 -1
- package/src/dashboard/input/chat-main-plain-turn-runtime.ts +172 -3
- package/src/dashboard/input/chat-main-session.ts +6 -2
- package/src/dashboard/input/chat-main-slash-command.ts +7 -0
- package/src/dashboard/input/chat-main-turn.ts +2 -1
- package/src/dashboard/input/compact-prepass-recovery.ts +97 -0
- package/src/dashboard/input/dashboard-chord-actions.ts +10 -1
- package/src/dashboard/input/dashboard-chord-runtime.ts +2 -0
- package/src/dashboard/input/external-input-host.ts +45 -0
- package/src/dashboard/input/log-fold-binding.ts +18 -0
- package/src/dashboard/input/mouse-wiring.ts +17 -4
- package/src/dashboard/input/turn-steer-bridge.ts +94 -0
- package/src/dashboard/log-click-runtime.ts +5 -3
- package/src/dashboard/running-build-status.ts +74 -0
- package/src/dashboard/seat-boot-preamble.ts +113 -0
- package/src/dashboard/seat-local-instructions.ts +305 -0
- package/src/dashboard/slash-runtime/dashboard-handlers.ts +100 -28
- package/src/dashboard/slash-runtime/model-choices.ts +35 -0
- package/src/dashboard/term-slash-runtime.ts +15 -0
- package/src/dashboard/turn-preamble.ts +30 -2
- package/src/dashboard/turn-session-layers.ts +176 -0
- package/src/dashboard/turn-stream-formatter.ts +14 -6
- package/src/dashboard/turn-stream-presentation-applier.ts +8 -0
- package/src/domains/release-tool.ts +8 -9
- package/src/domains/surface-events.ts +4 -1
- package/src/domains/watch-default-scheduler.ts +8 -9
- package/src/fold-stack.ts +24 -1
- package/src/git-fs/dirty.ts +32 -4
- package/src/git-fs/index.ts +43 -1
- package/src/graph-runner/runner.ts +1 -0
- package/src/harness/harness-gc.ts +32 -5
- package/src/index.ts +14 -1
- package/src/input/external-input-queue.ts +219 -0
- package/src/interactive-terminal-modal.ts +13 -0
- package/src/llm/route-decision.ts +25 -0
- package/src/llm-stream-retry-display.ts +59 -0
- package/src/llm.ts +253 -55
- package/src/log-entry.ts +3 -3
- package/src/log-pane/search.ts +29 -4
- package/src/loops/agent-reply.ts +256 -0
- package/src/loops/budget.ts +37 -7
- package/src/loops/loop-cli.ts +3 -2
- package/src/loops/msg-address.ts +57 -0
- package/src/loops/msg-wake.ts +282 -0
- package/src/loops/orchestrator/inbox.ts +60 -3
- package/src/loops/orchestrator/tick.ts +24 -4
- package/src/loops/registry.ts +42 -4
- package/src/memory.ts +20 -5
- package/src/native-tool-catalog.ts +125 -0
- package/src/nexus/api/http-server.ts +5 -0
- package/src/nexus/api/ops-api.ts +2 -0
- package/src/nexus/api/project-autopsy.ts +127 -0
- package/src/nexus/api/terminals.ts +3 -0
- package/src/nexus/api/workflow-approvals.ts +2 -0
- package/src/nexus/onboarding/first-boot-wizard.ts +56 -2
- package/src/oauth/codex-account-store.ts +15 -3
- package/src/oauth/codex-billing-route.ts +31 -0
- package/src/ops/overview-collect.ts +19 -2
- package/src/panes/log-pane.ts +67 -8
- package/src/persona/presets.ts +44 -0
- package/src/plugins/maker/wizard-generate.ts +6 -4
- package/src/preview/terminal.ts +14 -1
- package/src/prompt-cache/types.ts +2 -0
- package/src/prompt-enhance/enhance.ts +24 -8
- package/src/prompt-library/universal-preamble.ts +273 -56
- package/src/pty-shell/pty-control-ipc.ts +4 -1
- package/src/pty-shell/pty-manifest.ts +77 -5
- package/src/pty-shell/registry.ts +19 -2
- package/src/pty-shell/tui-run-state.ts +253 -0
- package/src/release-loop/light-rc.ts +28 -3
- package/src/release-loop/rehearsal.ts +1 -1
- package/src/render.ts +5 -1
- package/src/seat-loop/seat-report.ts +42 -2
- package/src/self-dev/run-supervisor.ts +71 -5
- package/src/self-dev/shard-aggregate.ts +2 -0
- package/src/self-dev/shard-run.ts +23 -2
- package/src/self-health/signatures.ts +132 -0
- package/src/self-implement/doctor-visit.ts +118 -0
- package/src/self-implement/gate-cli.ts +11 -2
- package/src/self-implement/goal-author-decompose.ts +80 -16
- package/src/self-implement/goal-author.ts +114 -72
- package/src/self-implement/goal-authoring-grounding.ts +1 -1
- package/src/self-implement/goal-file-name.ts +65 -0
- package/src/self-implement/ground-goal.ts +2 -1
- package/src/self-implement/host-regate.ts +14 -0
- package/src/self-implement/review-mustfix-class.ts +115 -0
- package/src/self-implement/run-ledger.ts +111 -7
- package/src/self-implement/running-runs.ts +10 -6
- package/src/self-implement/self-implement-runtime.ts +32 -0
- package/src/session/pending-input.ts +62 -11
- package/src/session-runtime/index.ts +7 -1
- package/src/skills/tools/ops-ledger.ts +707 -0
- package/src/skills/tools/persistent-grounding.ts +47 -7
- package/src/skills/tools/shell.ts +117 -1
- package/src/status/bar.ts +32 -2
- package/src/status/status-provider-info.ts +58 -0
- package/src/task-agent/rejudge-on-head.ts +4 -1
- package/src/task-agent/remote-rejudge-bind.ts +34 -5
- package/src/task-agent/repair-cycle.ts +13 -0
- package/src/task-orchestrator/surfaces/kubectl-transient-retry.ts +51 -0
- package/src/task-orchestrator/surfaces/pod-command-job.ts +63 -7
- package/src/task-orchestrator/surfaces/pod-install-slots.ts +6 -11
- package/src/task-orchestrator/surfaces/pod-mirror-seed.ts +76 -0
- package/src/task-orchestrator/surfaces/self-implement-pod.ts +107 -33
- package/src/terminal/session-registry.ts +6 -0
- package/src/thinking-line.ts +12 -3
- package/src/tool-runtime/index.ts +4 -0
- package/src/tool-runtime/ops-ledger-runtimes.ts +84 -0
- package/src/tool-runtime/ref-consult-runtime.ts +17 -2
- package/src/tool-runtime/run-shell-runtime.ts +4 -1
- package/src/tool-runtime/self-cognition-runtimes.ts +5 -1
- package/src/tui.ts +5 -0
- package/src/user-config.ts +54 -6
- package/src/ux-sim/fake-llm.ts +29 -0
- package/src/ux-sim/in-process-cli.ts +175 -0
- package/src/version/packed-revision.json +1 -1
- package/apps/pwa/out/_next/static/chunks/1027.a0f04663d24c2779.js +0 -1
- package/apps/pwa/out/_next/static/chunks/1038.676007ae505822e7.js +0 -1
- package/apps/pwa/out/_next/static/chunks/1113.a37eadf7f740d955.js +0 -1
- package/apps/pwa/out/_next/static/chunks/112-fa7c526c20ce1405.js +0 -1
- package/apps/pwa/out/_next/static/chunks/1144.5fa1fa1d48dbcd12.js +0 -36
- package/apps/pwa/out/_next/static/chunks/1146.80d15ea7c6e6ee95.js +0 -1
- package/apps/pwa/out/_next/static/chunks/1157.f08bf2b70915e176.js +0 -148
- package/apps/pwa/out/_next/static/chunks/119b405e.8fdd0e44d1ff37aa.js +0 -1
- package/apps/pwa/out/_next/static/chunks/1296.04560d98e73fbf51.js +0 -1
- package/apps/pwa/out/_next/static/chunks/1314-f604ba013ec535b0.js +0 -1
- package/apps/pwa/out/_next/static/chunks/1454-29d1d773d5996a49.js +0 -1
- package/apps/pwa/out/_next/static/chunks/1464.f3209af0d8ae4ff2.js +0 -1
- package/apps/pwa/out/_next/static/chunks/1729-d73dd25e564679d4.js +0 -1
- package/apps/pwa/out/_next/static/chunks/1843.5924c24295243261.js +0 -27
- package/apps/pwa/out/_next/static/chunks/1987.e28149724b92918b.js +0 -1
- package/apps/pwa/out/_next/static/chunks/2066-5ca18ffa5a4be68b.js +0 -1
- package/apps/pwa/out/_next/static/chunks/2240.d10a66695155fd93.js +0 -1
- package/apps/pwa/out/_next/static/chunks/2391.e2cbc98d4abbb41a.js +0 -1
- package/apps/pwa/out/_next/static/chunks/2528.3868070ef1be69f9.js +0 -24
- package/apps/pwa/out/_next/static/chunks/2566-734cb83bbd405886.js +0 -1
- package/apps/pwa/out/_next/static/chunks/2697.76ca2ac3efef6f3b.js +0 -1
- package/apps/pwa/out/_next/static/chunks/275.0e6bad414729bfa0.js +0 -32
- package/apps/pwa/out/_next/static/chunks/2803-33bdae771855a8d1.js +0 -1
- package/apps/pwa/out/_next/static/chunks/3143.257997a5f1ed79df.js +0 -34
- package/apps/pwa/out/_next/static/chunks/3259-86f3be56e43eaf6a.js +0 -1
- package/apps/pwa/out/_next/static/chunks/3280-e177c33bfbdcfb0a.js +0 -1
- package/apps/pwa/out/_next/static/chunks/3294-2b6a6d45a46a6c1c.js +0 -1
- package/apps/pwa/out/_next/static/chunks/3309.364573ceedbdfd5f.js +0 -1
- package/apps/pwa/out/_next/static/chunks/3522.758840fc5e7fe630.js +0 -287
- package/apps/pwa/out/_next/static/chunks/3525-a7c989c1a661e880.js +0 -1
- package/apps/pwa/out/_next/static/chunks/3694.b1a66387756458c0.js +0 -1
- package/apps/pwa/out/_next/static/chunks/370.124f9e678a76fc01.js +0 -1
- package/apps/pwa/out/_next/static/chunks/3797-9643105335e660fe.js +0 -1
- package/apps/pwa/out/_next/static/chunks/4084.15ecaf4240bd9e77.js +0 -286
- package/apps/pwa/out/_next/static/chunks/4089-b3382b8843114eee.js +0 -1
- package/apps/pwa/out/_next/static/chunks/4293.928a8d573c16aab7.js +0 -1
- package/apps/pwa/out/_next/static/chunks/4402.f9238a3b18a7bd43.js +0 -1
- package/apps/pwa/out/_next/static/chunks/4490-9b090b0f9427f902.js +0 -1
- package/apps/pwa/out/_next/static/chunks/4548.13502d0ca3b4f862.js +0 -8
- package/apps/pwa/out/_next/static/chunks/4599-548bc96cda44a5a7.js +0 -1
- package/apps/pwa/out/_next/static/chunks/4625.206574e33a9e7ae8.js +0 -104
- package/apps/pwa/out/_next/static/chunks/4862-392c9a71f0d8dfb4.js +0 -1
- package/apps/pwa/out/_next/static/chunks/5054.2906d1b02542edc5.js +0 -149
- package/apps/pwa/out/_next/static/chunks/5102-c822bbbee5a022a4.js +0 -1
- package/apps/pwa/out/_next/static/chunks/5194-8c93f2e7e4b6f717.js +0 -1
- package/apps/pwa/out/_next/static/chunks/5305-bacd7eca0b9a5848.js +0 -1
- package/apps/pwa/out/_next/static/chunks/5311.9071ee3f44fd7ff5.js +0 -1
- package/apps/pwa/out/_next/static/chunks/5369.9f34353442daa421.js +0 -1
- package/apps/pwa/out/_next/static/chunks/589-49d730cb8138b397.js +0 -1
- package/apps/pwa/out/_next/static/chunks/5904-264a6412ae3c9028.js +0 -1
- package/apps/pwa/out/_next/static/chunks/5980.728531d5c566535c.js +0 -1
- package/apps/pwa/out/_next/static/chunks/599-56f2c0a5cc4a7295.js +0 -1
- package/apps/pwa/out/_next/static/chunks/6011.f525002e21bef0ac.js +0 -23
- package/apps/pwa/out/_next/static/chunks/6132.4381ab93683f1acf.js +0 -1
- package/apps/pwa/out/_next/static/chunks/6149.2e698635e454d8f6.js +0 -1
- package/apps/pwa/out/_next/static/chunks/6356-0afafc4230cf9767.js +0 -1
- package/apps/pwa/out/_next/static/chunks/6406.64756073f7df35b8.js +0 -77
- package/apps/pwa/out/_next/static/chunks/6479-16e62aedafa0e310.js +0 -1
- package/apps/pwa/out/_next/static/chunks/6599.b5246b46a2453329.js +0 -64
- package/apps/pwa/out/_next/static/chunks/6610.5c26eec011565acb.js +0 -1
- package/apps/pwa/out/_next/static/chunks/666.37d18474edc1c552.js +0 -2
- package/apps/pwa/out/_next/static/chunks/6904.a0b5b1ed4f2d2c20.js +0 -1
- package/apps/pwa/out/_next/static/chunks/7247-1f4aba94aba50d9f.js +0 -1
- package/apps/pwa/out/_next/static/chunks/7274-e71a7c5b7760cd02.js +0 -1
- package/apps/pwa/out/_next/static/chunks/7290.1fcaeef3adb5d0d4.js +0 -1
- package/apps/pwa/out/_next/static/chunks/7477-2c64e42760f82f33.js +0 -1
- package/apps/pwa/out/_next/static/chunks/7505-47002b76ff1aef6c.js +0 -1
- package/apps/pwa/out/_next/static/chunks/7600-11884ca4da68e5d9.js +0 -1
- package/apps/pwa/out/_next/static/chunks/7607.40d8bb3689697ccb.js +0 -62
- package/apps/pwa/out/_next/static/chunks/7752.5cbdd0b433c54af9.js +0 -1
- package/apps/pwa/out/_next/static/chunks/7763.f51fcc19ca1414ec.js +0 -1
- package/apps/pwa/out/_next/static/chunks/7785.846140c859b1adf6.js +0 -1
- package/apps/pwa/out/_next/static/chunks/7807-a0fdac6393e0bf36.js +0 -1
- package/apps/pwa/out/_next/static/chunks/7837-20a63b4b7e9342b1.js +0 -1
- package/apps/pwa/out/_next/static/chunks/800.7815414cf280545d.js +0 -1
- package/apps/pwa/out/_next/static/chunks/8085-1e5fce59500a2cc2.js +0 -1
- package/apps/pwa/out/_next/static/chunks/8100.415f2105faa63e97.js +0 -1
- package/apps/pwa/out/_next/static/chunks/8290.701aa42ed13aa767.js +0 -226
- package/apps/pwa/out/_next/static/chunks/83a80514-b897b64df43ce108.js +0 -1
- package/apps/pwa/out/_next/static/chunks/8444.d9c74214a3145a43.js +0 -93
- package/apps/pwa/out/_next/static/chunks/8569.98c915534928c7f9.js +0 -24
- package/apps/pwa/out/_next/static/chunks/8591.b1c7f876e5ec7cfb.js +0 -1
- package/apps/pwa/out/_next/static/chunks/8715-f63756021d3ab989.js +0 -1
- package/apps/pwa/out/_next/static/chunks/8879.776c2ec7732aa114.js +0 -115
- package/apps/pwa/out/_next/static/chunks/8881.ddca15b3c82c490c.js +0 -1
- package/apps/pwa/out/_next/static/chunks/8946.5da5c87f32a2e1a8.js +0 -41
- package/apps/pwa/out/_next/static/chunks/9117.080b9b75be90e14d.js +0 -74
- package/apps/pwa/out/_next/static/chunks/9167.f3ecb28f367d6e69.js +0 -94
- package/apps/pwa/out/_next/static/chunks/9224.66095370ee28c93b.js +0 -1
- package/apps/pwa/out/_next/static/chunks/9238-0682b013c83d6449.js +0 -1
- package/apps/pwa/out/_next/static/chunks/9449.d3ed795da4befb1c.js +0 -1
- package/apps/pwa/out/_next/static/chunks/949.1e7d45ccb71580aa.js +0 -90
- package/apps/pwa/out/_next/static/chunks/9638-d268329f2c6f4f8d.js +0 -1
- package/apps/pwa/out/_next/static/chunks/9842-d6644eb53d3dc6bf.js +0 -1
- package/apps/pwa/out/_next/static/chunks/9863.94ca3263e760696e.js +0 -1
- package/apps/pwa/out/_next/static/chunks/9938.b23e4d4dfa0114cd.js +0 -79
- package/apps/pwa/out/_next/static/chunks/app/_not-found/page-d9babd8795f396a5.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/approvals/page-5ab1e47978577c5e.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/autopilot/page-24453f6a302816b4.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/board/page-6c131d30bb1cf871.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/bots/page-dc0772b11861af51.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/chat/page-5159dc8752c6cd29.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/consult/page-c5a2478861c08b87.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/control/page-f722a9dec084e08b.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/decisions/page-256ffd365d32e100.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/design-check/page-e0de78ae7b99f01c.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/editor/page-cfbdc44b708d9801.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/exec/page-4c741eb760f2f77c.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/field/page-e9ba98f5f1440a21.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/healthz/route-d9babd8795f396a5.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/inside/page-dafc901bb1b72b5f.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/intake/page-2f6f303fa114ec24.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/layout-1634081c5272006c.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/live/page-ced0bcfc6542b3fc.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/live-run/page-bb1f05cd51c38944.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/market/page-db069b48a59c8c00.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/missions/[id]/page-f736324afa2117c1.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/not-found-435f5e2faf02bc01.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/observatory/page-497e0eedf20e7890.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/ops/checklist/page-a8d28fdf995e16ea.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/ops/release/page-8966452228753c5e.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/ops/seats/page-fd5d18656cb432b6.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/outputs/page-5663779cb1a37609.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/page-66a67eb19ebd976b.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/reflection/page-3b492aa78cf3c4a6.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/scheduler/page-c71267e7681da982.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/sessions/page-a21d1e1797172692.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/settings/devices/page-cb249e81ed339318.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/settings/page-781cfc5114e097da.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/setup/done/page-478157214db6a023.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/setup/layout-d9babd8795f396a5.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/setup/page-86141f12cf090b7f.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/share/page-7256c73bb1c36751.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/showroom/page-5c738ca7adef3de5.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/tasks/page-0138c8091ec17224.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/term/page-cc2f24f16d85e735.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/today/page-979d318a534e92da.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/trace/page-182d394f7e6e096b.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/vault/page-21050928a697ed7a.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/workflows/chat-ui/page-44b9d807005a9030.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/workflows/page-601fb77340e63c9a.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/workspace/page-75d3fb5d47af0edf.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/worktrees/page-11bf9e5725a72c22.js +0 -1
- package/apps/pwa/out/_next/static/chunks/dcf24383-2f82e35f2d827393.js +0 -1
- package/apps/pwa/out/_next/static/chunks/e117f801.e92bf10242653497.js +0 -1
- package/apps/pwa/out/_next/static/chunks/e87d89b9.2e71c0ae475d28a1.js +0 -122
- package/apps/pwa/out/_next/static/chunks/framework-bf135b997155e90e.js +0 -1
- package/apps/pwa/out/_next/static/chunks/main-5571537543bea91c.js +0 -1
- package/apps/pwa/out/_next/static/chunks/main-app-25c51c7df7f3a442.js +0 -1
- package/apps/pwa/out/_next/static/chunks/pages/_app-e3b2c1f5d82abd65.js +0 -1
- package/apps/pwa/out/_next/static/chunks/pages/_error-083f2e23e9bc3641.js +0 -1
- package/apps/pwa/out/_next/static/chunks/webpack-e94d22b7a028217b.js +0 -1
- package/src/dashboard/bench-slash-runtime.ts +0 -40
- package/src/dashboard/input/search-modal-router.ts +0 -9
- package/src/dashboard/modals/pane-key-router.ts +0 -27
- package/src/dashboard/view-slash-runtime.ts +0 -48
- /package/apps/pwa/out/_next/static/{y1ltt7oCZxVpC6zVPhZ2O → cIpv5nU9AycwYWZI9H589}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
// ── Ops-ledger tool runtimes (우편 msg · 판 release checklist) ──
|
|
2
|
+
//
|
|
3
|
+
// Registers the eight in-process ledger tools with the tool-runtime
|
|
4
|
+
// layer so every surface (skill-runner, TUI) can call them by name:
|
|
5
|
+
// MsgList / MsgPost / MsgAck and ChecklistList / ChecklistAdd /
|
|
6
|
+
// ChecklistSet / ChecklistEdit / ChecklistMove. Dispatchers live in
|
|
7
|
+
// src/skills/tools/ops-ledger.ts; this file is a thin adapter — the
|
|
8
|
+
// same pattern as team-tool-runtimes.ts. Every call goes through
|
|
9
|
+
// `observeLedgerCall` — one `ops-ledger` `call` line with the tool, the
|
|
10
|
+
// elapsed ms, ok, the seat actor and ids (never bodies or evidence).
|
|
11
|
+
|
|
12
|
+
import {
|
|
13
|
+
buildMsgListTool, dispatchMsgList,
|
|
14
|
+
buildMsgPostTool, dispatchMsgPost,
|
|
15
|
+
buildMsgAckTool, dispatchMsgAck,
|
|
16
|
+
buildChecklistListTool, dispatchChecklistList,
|
|
17
|
+
buildChecklistAddTool, dispatchChecklistAdd,
|
|
18
|
+
buildChecklistSetTool, dispatchChecklistSet,
|
|
19
|
+
buildChecklistMoveTool, dispatchChecklistMove,
|
|
20
|
+
buildChecklistEditTool, dispatchChecklistEdit,
|
|
21
|
+
type ChecklistAddResult, type ChecklistEditResult, type ChecklistListResult, type ChecklistMoveResult,
|
|
22
|
+
type ChecklistSetResult, type MsgAckResult, type MsgListResult, type MsgPostResult,
|
|
23
|
+
observeLedgerCall,
|
|
24
|
+
} from '../skills/tools/ops-ledger.js';
|
|
25
|
+
import type { ToolRuntime } from './types.js';
|
|
26
|
+
|
|
27
|
+
export const msgListRuntime: ToolRuntime<Record<string, unknown>, MsgListResult> = {
|
|
28
|
+
id: 'msg_list',
|
|
29
|
+
spec: buildMsgListTool(),
|
|
30
|
+
async run(req) { return observeLedgerCall('MsgList', req, () => dispatchMsgList(req), (a, r) => ({ to: a.to, ...(r ? { count: r.count, after: r.after } : {}) })); },
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
export const msgPostRuntime: ToolRuntime<Record<string, unknown>, MsgPostResult> = {
|
|
34
|
+
id: 'msg_post',
|
|
35
|
+
spec: buildMsgPostTool(),
|
|
36
|
+
async run(req) { return observeLedgerCall('MsgPost', req, () => dispatchMsgPost(req), (a, r) => ({ from: a.from, to: a.to, ...(r ? { id: r.message.id } : {}) })); },
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
export const msgAckRuntime: ToolRuntime<Record<string, unknown>, MsgAckResult> = {
|
|
40
|
+
id: 'msg_ack',
|
|
41
|
+
spec: buildMsgAckTool(),
|
|
42
|
+
async run(req) { return observeLedgerCall('MsgAck', req, () => dispatchMsgAck(req), (a, r) => ({ to: a.to, id: a.id, ...(r ? { cursor: r.cursor } : {}) })); },
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
export const checklistListRuntime: ToolRuntime<Record<string, unknown>, ChecklistListResult> = {
|
|
46
|
+
id: 'checklist_list',
|
|
47
|
+
spec: buildChecklistListTool(),
|
|
48
|
+
async run(req) { return observeLedgerCall('ChecklistList', req, () => dispatchChecklistList(req), (a, r) => ({ version: r?.version ?? a.version, ...(r ? { items: r.items.length, history: r.history.length } : {}) })); },
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
export const checklistAddRuntime: ToolRuntime<Record<string, unknown>, ChecklistAddResult> = {
|
|
52
|
+
id: 'checklist_add',
|
|
53
|
+
spec: buildChecklistAddTool(),
|
|
54
|
+
async run(req) { return observeLedgerCall('ChecklistAdd', req, () => dispatchChecklistAdd(req), (a, r) => ({ id: a.id, version: r?.version ?? a.version })); },
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
export const checklistSetRuntime: ToolRuntime<Record<string, unknown>, ChecklistSetResult> = {
|
|
58
|
+
id: 'checklist_set',
|
|
59
|
+
spec: buildChecklistSetTool(),
|
|
60
|
+
async run(req) { return observeLedgerCall('ChecklistSet', req, () => dispatchChecklistSet(req), (a, r) => ({ id: a.id, version: r?.version ?? a.version, ...(a.status === undefined ? {} : { status: a.status }) })); },
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
export const checklistEditRuntime: ToolRuntime<Record<string, unknown>, ChecklistEditResult> = {
|
|
64
|
+
id: 'checklist_edit',
|
|
65
|
+
spec: buildChecklistEditTool(),
|
|
66
|
+
async run(req) { return observeLedgerCall('ChecklistEdit', req, () => dispatchChecklistEdit(req), (a, r) => ({ id: a.id, version: r?.version ?? a.version, field: a.field })); },
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
export const checklistMoveRuntime: ToolRuntime<Record<string, unknown>, ChecklistMoveResult> = {
|
|
70
|
+
id: 'checklist_move',
|
|
71
|
+
spec: buildChecklistMoveTool(),
|
|
72
|
+
async run(req) { return observeLedgerCall('ChecklistMove', req, () => dispatchChecklistMove(req), (a) => ({ id: a.id, from: a.from, to: a.to })); },
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
export const ALL_OPS_LEDGER_RUNTIMES: ToolRuntime<any, any>[] = [
|
|
76
|
+
msgListRuntime,
|
|
77
|
+
msgPostRuntime,
|
|
78
|
+
msgAckRuntime,
|
|
79
|
+
checklistListRuntime,
|
|
80
|
+
checklistAddRuntime,
|
|
81
|
+
checklistSetRuntime,
|
|
82
|
+
checklistEditRuntime,
|
|
83
|
+
checklistMoveRuntime,
|
|
84
|
+
];
|
|
@@ -23,7 +23,7 @@ import { join } from 'node:path';
|
|
|
23
23
|
import { homedir } from 'node:os';
|
|
24
24
|
import type { LLMToolSpec } from '../llm.js';
|
|
25
25
|
import type { ToolRuntime, ToolRuntimeContext } from './types.js';
|
|
26
|
-
import { DEFAULT_REFERENCE_ROOTS } from '../agent/ref-grounding.js'; // ★ F3 — 로컬 canonical ref 루트
|
|
26
|
+
import { DEFAULT_REFERENCE_ROOTS, denyNonPublicReference } from '../agent/ref-grounding.js'; // ★ F3 — 로컬 canonical ref 루트
|
|
27
27
|
import { debug } from '../debug/log.js';
|
|
28
28
|
|
|
29
29
|
const CACHE_ROOT_DEFAULT = join(homedir(), '.cache', 'elanous-refs');
|
|
@@ -123,6 +123,17 @@ export function dispatchRefConsult(
|
|
|
123
123
|
): RefConsultResult {
|
|
124
124
|
const host = args.host ?? 'github.com';
|
|
125
125
|
const cacheRoot = args.cacheRoot ?? CACHE_ROOT_DEFAULT;
|
|
126
|
+
// 대표 2026-10-14 — 비공개 소스(Claude Code 사본)는 캐시·로컬 ref 어느 쪽이든 조회하지 않는다.
|
|
127
|
+
// owner·repo 는 단일 경로 성분이어야 한다 — `<사본 이름>/.` 같은 값이 join() 정규화로 이름 판정을 우회하지 못하게.
|
|
128
|
+
for (const [field, value] of [['owner', args.owner], ['repo', args.repo]] as const) {
|
|
129
|
+
if (!/^[A-Za-z0-9._-]+$/.test(value) || value === '.' || value === '..') {
|
|
130
|
+
throw new Error(`RefConsult: ${field} must be a single path segment (got ${JSON.stringify(value)})`);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
// 판정은 `repo` 칸만 — 공개 저장소 owner 이름이 우연히 같아도 막지 않는다(로컬 중첩 경로는 아래에서 따로 거른다).
|
|
134
|
+
if (denyNonPublicReference(args.repo)) {
|
|
135
|
+
throw new Error(`RefConsult: ${args.owner}/${args.repo} is a non-public source and is not consulted. Use public documentation instead.`);
|
|
136
|
+
}
|
|
126
137
|
// ★ F3(2026-07-22) — repo 경로 해석을 fallback 체인으로: ①에이전트 scratch 캐시(SyncRepo 산출·있으면 우선)
|
|
127
138
|
// → ②로컬 canonical ref(~/source/ref/<repo>·flat bare-name·재클론 없이 90 repo 즉시 grep) → ③둘 다 없으면
|
|
128
139
|
// throw. 종전엔 캐시만 봐서 캐시 미존재 시 canonical ref 가 놀아도 "SyncRepo 먼저" 로 죽던 단절을 연결.
|
|
@@ -133,7 +144,11 @@ export function dispatchRefConsult(
|
|
|
133
144
|
if (!existsSync(join(cachePath, '.git'))) {
|
|
134
145
|
const roots = args.referenceRoots ?? DEFAULT_REFERENCE_ROOTS;
|
|
135
146
|
const localHit = roots
|
|
136
|
-
.flatMap((root) => [
|
|
147
|
+
.flatMap((root) => [
|
|
148
|
+
join(root, args.repo),
|
|
149
|
+
// 로컬 ref 의 <owner>/<repo> 중첩은 owner 디렉터리가 비공개 사본이면 그 아래로 내려가지 않는다.
|
|
150
|
+
...(denyNonPublicReference(args.owner) ? [] : [join(root, args.owner, args.repo)]),
|
|
151
|
+
])
|
|
137
152
|
.find((p) => existsSync(join(p, '.git')));
|
|
138
153
|
if (localHit) { repoPath = localHit; source = 'local-ref'; }
|
|
139
154
|
else {
|
|
@@ -31,6 +31,9 @@ export const runShellRuntime: ToolRuntime<Record<string, unknown>, RunShellDispa
|
|
|
31
31
|
ctx.surface === 'dashboard' && req.sandbox === undefined
|
|
32
32
|
? { ...req, sandbox: 'auto' }
|
|
33
33
|
: req;
|
|
34
|
-
return dispatchRunShell(effectiveReq, {
|
|
34
|
+
return dispatchRunShell(effectiveReq, {
|
|
35
|
+
signal: ctx.signal,
|
|
36
|
+
availableToolNames: ctx.agentHostTools?.map(tool => tool.name),
|
|
37
|
+
});
|
|
35
38
|
},
|
|
36
39
|
};
|
|
@@ -195,7 +195,11 @@ export const SELF_COGNITION_RUNTIMES: readonly ToolRuntime[] = SELF_COGNITION_TO
|
|
|
195
195
|
return coreSpec(name);
|
|
196
196
|
},
|
|
197
197
|
run: async (args, ctx) => name === 'context_now'
|
|
198
|
-
? (
|
|
198
|
+
? (() => {
|
|
199
|
+
const options = { ...(typeof args.topic === 'string' ? { topic: args.topic } : {}) };
|
|
200
|
+
return import('../context-bus/context-now.js').then(now => ctx.surface === 'tui'
|
|
201
|
+
? now.contextNowInWorker(options) : now.contextNow(options));
|
|
202
|
+
})()
|
|
199
203
|
: name === 'memory_recall' || name === 'self_recall'
|
|
200
204
|
? runRecall(name, args, ctx)
|
|
201
205
|
: toToolRunResult(await coreTools().buildCoreTools().dispatch(name, args)),
|
package/src/tui.ts
CHANGED
|
@@ -965,6 +965,11 @@ export function injectKey(key: Key): boolean {
|
|
|
965
965
|
return true;
|
|
966
966
|
}
|
|
967
967
|
|
|
968
|
+
/** 아직 readKey 가 소비하지 않은 키 수 — 외부 입력 대기열이 «사용자 키보다 앞서» 끼어들지 않게 본다. */
|
|
969
|
+
export function pendingKeyCount(): number {
|
|
970
|
+
return _keyQueue.length;
|
|
971
|
+
}
|
|
972
|
+
|
|
968
973
|
export function termSize(): { rows: number; cols: number } {
|
|
969
974
|
return { rows: process.stdout.rows || 24, cols: process.stdout.columns || 80 };
|
|
970
975
|
}
|
package/src/user-config.ts
CHANGED
|
@@ -1659,6 +1659,10 @@ export interface DashboardConfig {
|
|
|
1659
1659
|
* Defaults off so optional pane/window controls do not occupy keys
|
|
1660
1660
|
* required by essential input, reading, and escape controls. */
|
|
1661
1661
|
enableSupplementalGlobalKeys: boolean;
|
|
1662
|
+
/** First-screen boot banner. Absent = `minimal`: only failures and first-run
|
|
1663
|
+
* guidance reach the transcript; healthy daemon/PWA/hitl-port rows move to
|
|
1664
|
+
* `/status`. `full` restores the historical band. */
|
|
1665
|
+
bootBanner?: 'minimal' | 'full';
|
|
1662
1666
|
}
|
|
1663
1667
|
|
|
1664
1668
|
export interface DashboardPromptBankConfig {
|
|
@@ -3337,7 +3341,8 @@ export interface AutoReviewConfig {
|
|
|
3337
3341
|
};
|
|
3338
3342
|
}
|
|
3339
3343
|
|
|
3340
|
-
export type ModelRole = 'implement' | 'review' | 'research' | 'planning' | 'audit' | 'classify' | 'graph-grow';
|
|
3344
|
+
export type ModelRole = 'implement' | 'review' | 'research' | 'planning' | 'audit' | 'classify' | 'graph-grow' | 'coordinator' | 'guardian';
|
|
3345
|
+
export type AgentModelRole = 'coordinator' | 'guardian';
|
|
3341
3346
|
|
|
3342
3347
|
export interface RoleModelConfig {
|
|
3343
3348
|
implement?: string;
|
|
@@ -3347,6 +3352,8 @@ export interface RoleModelConfig {
|
|
|
3347
3352
|
audit?: string;
|
|
3348
3353
|
classify?: string;
|
|
3349
3354
|
'graph-grow'?: string;
|
|
3355
|
+
coordinator?: string;
|
|
3356
|
+
guardian?: string;
|
|
3350
3357
|
}
|
|
3351
3358
|
|
|
3352
3359
|
/** Sparse provider-agnostic model tier preferences by execution role. */
|
|
@@ -3429,6 +3436,10 @@ export const ROLE_MODEL_DEFAULTS: Record<ModelRole, { environment: string; tier:
|
|
|
3429
3436
|
audit: { environment: 'ELANOUS_MEMORY_JUDGE_MODEL', tier: 'better' },
|
|
3430
3437
|
classify: { environment: 'ELANOUS_ACTION_CLASSIFIER_MODEL', tier: 'budget' },
|
|
3431
3438
|
'graph-grow': { environment: 'ELANOUS_GRAPH_GROW_MODEL', tier: 'better' },
|
|
3439
|
+
// 이 티어는 provider 만 명시했을 때 쓰인다. 에이전트 기동은
|
|
3440
|
+
// resolveConfiguredAgentRoleLlm 이 명시 설정을 먼저 요구한다.
|
|
3441
|
+
coordinator: { environment: 'ELANOUS_COORDINATOR_MODEL', tier: 'balanced' },
|
|
3442
|
+
guardian: { environment: 'ELANOUS_GUARDIAN_MODEL', tier: 'balanced' },
|
|
3432
3443
|
};
|
|
3433
3444
|
|
|
3434
3445
|
/** Resolve `auto` through the same runtime provider selector that dispatches LLM calls.
|
|
@@ -3583,6 +3594,24 @@ export function resolveRoleLlm(role: ModelRole, opts: RoleLlmResolveOptions = {}
|
|
|
3583
3594
|
return baseline;
|
|
3584
3595
|
}
|
|
3585
3596
|
|
|
3597
|
+
/** 조율자·수호자는 사용자 선택이 없으면 기동하지 않는다.
|
|
3598
|
+
* 일반 역할의 기본 모델 사다리와 구분해, 발사 인자·env pin·roleLlm 설정 중
|
|
3599
|
+
* 실제 모델 선택(provider/tier/model)이 있을 때만 해석한다. effort 단독은 선택이 아니다. */
|
|
3600
|
+
export function resolveConfiguredAgentRoleLlm(
|
|
3601
|
+
role: AgentModelRole,
|
|
3602
|
+
opts: RoleLlmResolveOptions = {},
|
|
3603
|
+
): RoleLlmResolution | undefined {
|
|
3604
|
+
const config = opts.config ?? getUserConfig();
|
|
3605
|
+
const hasSelection = (spec: RoleLlmSpec | undefined): boolean =>
|
|
3606
|
+
Boolean(spec?.provider || spec?.tier || spec?.model?.trim());
|
|
3607
|
+
const configured = [
|
|
3608
|
+
(opts.overrides ?? launchRoleLlmOverrides)?.[role],
|
|
3609
|
+
roleLlmEnvPin(role, opts.env ?? process.env),
|
|
3610
|
+
config.roleLlm?.[role],
|
|
3611
|
+
].some(hasSelection);
|
|
3612
|
+
return configured ? resolveRoleLlm(role, { ...opts, config }) : undefined;
|
|
3613
|
+
}
|
|
3614
|
+
|
|
3586
3615
|
/** POD-ROLE-LLM — 역할 고정을 «프로세스 env» 로 받는 칸. `ELANOUS_ROLE_LLM_<ROLE>` = RoleLlmSpec JSON
|
|
3587
3616
|
* (예 `{"provider":"openai-codex","tier":"best","model":"gpt-6-sol"}`).
|
|
3588
3617
|
* ⭐ 왜 env 인가: `--role-llm` 은 부모 프로세스 메모리 값이고 Pod 안엔 운영 config 가 없다 —
|
|
@@ -3840,9 +3869,9 @@ export interface UserConfig {
|
|
|
3840
3869
|
/** GUARD-ONE-a: omitted means shadow. `live` is parsed for the later cutover, but `elanous guardian tick`
|
|
3841
3870
|
* refuses it until a human-confirmed operational change (GUARD-ONE-a ships shadow only). */
|
|
3842
3871
|
guardian?: { mode?: 'shadow' | 'live'; /** Orphan CLI GC on the guardian tick: off = no ps collection, shadow (default) = evidence only, on = evidence then SIGTERM. */ orphanGc?: 'off' | 'shadow' | 'on' };
|
|
3843
|
-
/**
|
|
3844
|
-
*
|
|
3845
|
-
taskAgent?: { liveMoves?: string[]; /** TA-REJUDGE-PERIODIC — steward tick runs `tasks rejudge --all` every N minutes (absent/0 = off). */ rejudgeEveryMinutes?: number; /** 1-minute load average above which that tick is skipped (default 60). */ rejudgeMaxLoad?: number; parentHost?: { host?: string; cwd?: string; elanous?: string; configDir?: string; podPool?: string; approvalCapacity?: number } | Array<{ host?: string; cwd?: string; elanous?: string; configDir?: string; podPool?: string; approvalCapacity?: number }> };
|
|
3872
|
+
/** Task-agent live move allow-list (`src/task-agent/live-moves.ts` validates its vocabulary).
|
|
3873
|
+
* Absent = env ELANOUS_TASK_AGENT_LIVE_MOVES, else none (pure shadow). */
|
|
3874
|
+
taskAgent?: { liveMoves?: string[]; /** TA-REJUDGE-PERIODIC — steward tick runs `tasks rejudge --all` every N minutes (absent/0 = off). */ rejudgeEveryMinutes?: number; /** 1-minute load average above which that tick is skipped (default 60). */ rejudgeMaxLoad?: number; /** TA-REPAIR-TICK-CAP — new repair launches per `tasks rejudge --all` (default 3, 0 = none). */ repairMaxPerTick?: number; parentHost?: { host?: string; cwd?: string; elanous?: string; configDir?: string; podPool?: string; approvalCapacity?: number } | Array<{ host?: string; cwd?: string; elanous?: string; configDir?: string; podPool?: string; approvalCapacity?: number }> };
|
|
3846
3875
|
events?: EventsConfig;
|
|
3847
3876
|
/** GATE-REMOTE — see GateRemoteConfig. Absent = defaults (auto on · node-b · load 20 · cap 2). */
|
|
3848
3877
|
gateRemote?: GateRemoteConfig;
|
|
@@ -4046,7 +4075,7 @@ export function parseRoleLlmEntry(raw: unknown): { ok: true; spec: RoleLlmSpec }
|
|
|
4046
4075
|
return { ok: true, spec };
|
|
4047
4076
|
}
|
|
4048
4077
|
|
|
4049
|
-
export const MODEL_ROLES: readonly ModelRole[] = ['implement', 'review', 'research', 'planning', 'audit', 'classify', 'graph-grow'];
|
|
4078
|
+
export const MODEL_ROLES: readonly ModelRole[] = ['implement', 'review', 'research', 'planning', 'audit', 'classify', 'graph-grow', 'coordinator', 'guardian'];
|
|
4050
4079
|
|
|
4051
4080
|
export function isModelRole(v: unknown): v is ModelRole {
|
|
4052
4081
|
return typeof v === 'string' && (MODEL_ROLES as readonly string[]).includes(v);
|
|
@@ -4154,13 +4183,18 @@ function parseTaskAgentConfig(raw: unknown): UserConfig['taskAgent'] {
|
|
|
4154
4183
|
}
|
|
4155
4184
|
const parentHost = parseTaskAgentParentHost((raw as Record<string, unknown>).parentHost);
|
|
4156
4185
|
// TA-REJUDGE-PERIODIC — 음이 아닌 유한수만 산다(0 = 끔). 그 밖은 경고하고 버린다(= 끔 · 기본 부하 상한).
|
|
4157
|
-
const rejudge: { rejudgeEveryMinutes?: number; rejudgeMaxLoad?: number } = {};
|
|
4186
|
+
const rejudge: { rejudgeEveryMinutes?: number; rejudgeMaxLoad?: number; repairMaxPerTick?: number } = {};
|
|
4158
4187
|
for (const key of ['rejudgeEveryMinutes', 'rejudgeMaxLoad'] as const) {
|
|
4159
4188
|
const value = (raw as Record<string, unknown>)[key];
|
|
4160
4189
|
if (value === undefined) continue;
|
|
4161
4190
|
if (typeof value === 'number' && Number.isFinite(value) && value >= 0) rejudge[key] = value;
|
|
4162
4191
|
else warnUserConfigDrop(`taskAgent.${key}`, `음이 아닌 수가 아니다(${JSON.stringify(value)}) — 버림`);
|
|
4163
4192
|
}
|
|
4193
|
+
const repairMaxPerTick = (raw as Record<string, unknown>).repairMaxPerTick;
|
|
4194
|
+
if (repairMaxPerTick !== undefined) {
|
|
4195
|
+
if (Number.isSafeInteger(repairMaxPerTick) && (repairMaxPerTick as number) >= 0) rejudge.repairMaxPerTick = repairMaxPerTick as number;
|
|
4196
|
+
else warnUserConfigDrop('taskAgent.repairMaxPerTick', `음이 아닌 정수가 아니다(${JSON.stringify(repairMaxPerTick)}) — 기본 3`);
|
|
4197
|
+
}
|
|
4164
4198
|
const extras = { ...rejudge, ...(parentHost ? { parentHost } : {}) };
|
|
4165
4199
|
const liveMoves = (raw as Record<string, unknown>).liveMoves;
|
|
4166
4200
|
if (liveMoves === undefined) return Object.keys(extras).length ? extras : undefined;
|
|
@@ -4261,6 +4295,10 @@ function parseRoleLlmConfig(raw: unknown): RoleLlmConfig | undefined {
|
|
|
4261
4295
|
if (effort === 'low' || effort === 'medium' || effort === 'high') spec.effort = effort;
|
|
4262
4296
|
else warnUserConfigDrop(`roleLlm.${role}.effort`, `low|medium|high 가 아니다(${JSON.stringify(effort)}) — 버림`);
|
|
4263
4297
|
}
|
|
4298
|
+
if ((role === 'coordinator' || role === 'guardian') && !spec.provider && !spec.tier && !spec.model) {
|
|
4299
|
+
dropped.push({ role, reason: 'provider·tier·model 중 하나는 있어야 한다 (effort 단독은 기동 설정이 아니다)' });
|
|
4300
|
+
continue;
|
|
4301
|
+
}
|
|
4264
4302
|
if (Object.keys(spec).length > 0) parsed[role] = spec;
|
|
4265
4303
|
} else {
|
|
4266
4304
|
const entry = parseRoleLlmEntry(rawEntry);
|
|
@@ -4275,6 +4313,11 @@ function parseRoleLlmConfig(raw: unknown): RoleLlmConfig | undefined {
|
|
|
4275
4313
|
// 사용자는 「왜 내 설정이 안 먹지」를 영영 못 푼다(CLI 는 이름을 대며 거부하는데 여기만 조용했다).
|
|
4276
4314
|
// ⇒ 버린 것을 «이름과 이유»로 남긴다. 로딩 자체는 계속한다.
|
|
4277
4315
|
if (dropped.length > 0) {
|
|
4316
|
+
for (const { role, reason } of dropped) {
|
|
4317
|
+
if (role === 'coordinator' || role === 'guardian') {
|
|
4318
|
+
warnUserConfigDrop(`roleLlm.${role}`, `${reason} — 버림; 명시 모델 없이는 에이전트 기동 거부`);
|
|
4319
|
+
}
|
|
4320
|
+
}
|
|
4278
4321
|
try {
|
|
4279
4322
|
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
4280
4323
|
const { debug } = require('./debug/log.js') as typeof import('./debug/log.js');
|
|
@@ -5722,6 +5765,7 @@ export function buildUserConfig(path: string = defaultPath()): UserConfig {
|
|
|
5722
5765
|
? dash.foldMode
|
|
5723
5766
|
: 'task-unit',
|
|
5724
5767
|
benchmark: dash.benchmark === true ? true : undefined,
|
|
5768
|
+
bootBanner: dash.bootBanner === 'minimal' || dash.bootBanner === 'full' ? dash.bootBanner : undefined,
|
|
5725
5769
|
enableVirtualWindowSwitchKeys: dash.enableVirtualWindowSwitchKeys === true,
|
|
5726
5770
|
enableSupplementalGlobalKeys: dash.enableSupplementalGlobalKeys === true,
|
|
5727
5771
|
promptBank: {
|
|
@@ -6535,6 +6579,9 @@ export function saveUserConfig(
|
|
|
6535
6579
|
answerPriority: cfg.llm.answerPriority,
|
|
6536
6580
|
maxTurns: cfg.llm.maxTurns,
|
|
6537
6581
|
missionRouting: cfg.llm.missionRouting,
|
|
6582
|
+
// ⛔ 로드(parseLlmRoutePolicy)만 있고 저장이 없으면 `config set llm.routePolicy` 가 «조용히» 떨어진다
|
|
6583
|
+
// (10-14 OP 실측 — set 뒤 get 이 undefined · TUI-MODEL-SESSION-SCOPE ①).
|
|
6584
|
+
routePolicy: cfg.llm.routePolicy,
|
|
6538
6585
|
}),
|
|
6539
6586
|
skills: stripUndef({
|
|
6540
6587
|
activeSet: cfg.skills.activeSet,
|
|
@@ -6698,6 +6745,7 @@ export function saveUserConfig(
|
|
|
6698
6745
|
promptBank: cfg.dashboard.promptBank,
|
|
6699
6746
|
foldMode: cfg.dashboard.foldMode,
|
|
6700
6747
|
benchmark: cfg.dashboard.benchmark,
|
|
6748
|
+
bootBanner: cfg.dashboard.bootBanner,
|
|
6701
6749
|
enableVirtualWindowSwitchKeys: cfg.dashboard.enableVirtualWindowSwitchKeys,
|
|
6702
6750
|
enableSupplementalGlobalKeys: cfg.dashboard.enableSupplementalGlobalKeys,
|
|
6703
6751
|
}),
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deterministic, network-free LLM for gate tests without provider credentials.
|
|
3
|
+
* The opt-in is deliberately explicit; production never selects this provider.
|
|
4
|
+
*/
|
|
5
|
+
import type { LLMMessage, LLMOpts, LLMProvider, LLMStreamEvent } from '../llm.js';
|
|
6
|
+
|
|
7
|
+
export const TEST_FAKE_LLM_ENV = 'ELANOUS_TEST_FAKE_LLM';
|
|
8
|
+
export const TEST_FAKE_LLM_RESPONSE_ENV = 'ELANOUS_TEST_FAKE_LLM_RESPONSE';
|
|
9
|
+
|
|
10
|
+
export function testFakeLlmEnabled(): boolean {
|
|
11
|
+
return process.env[TEST_FAKE_LLM_ENV] === '1';
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export function testFakeLlmResponse(): string {
|
|
15
|
+
return process.env[TEST_FAKE_LLM_RESPONSE_ENV] ?? '[test-fake-llm] OK';
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/** Shares the real LLMProvider contract; only the external model call is replaced. */
|
|
19
|
+
export const testFakeLlmProvider: LLMProvider = {
|
|
20
|
+
name: 'test-fake-llm',
|
|
21
|
+
defaultModel: 'test-fake-llm',
|
|
22
|
+
available: testFakeLlmEnabled,
|
|
23
|
+
async *chat(_messages: LLMMessage[], _opts?: LLMOpts): AsyncGenerator<string, void, unknown> {
|
|
24
|
+
yield testFakeLlmResponse();
|
|
25
|
+
},
|
|
26
|
+
async *streamChat(_messages: LLMMessage[], _opts?: LLMOpts): AsyncGenerator<LLMStreamEvent, void, unknown> {
|
|
27
|
+
yield { type: 'text', delta: testFakeLlmResponse() };
|
|
28
|
+
},
|
|
29
|
+
};
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
// S1 CLI simulation: invoke the registered Commander action in this process.
|
|
2
|
+
// The caller chooses a narrow command path; this is deliberately not a general
|
|
3
|
+
// replacement for the CLI process boundary (signals, startup, and PTY need S2).
|
|
4
|
+
import { mkdtempSync, rmSync } from 'node:fs';
|
|
5
|
+
import { tmpdir } from 'node:os';
|
|
6
|
+
import { join } from 'node:path';
|
|
7
|
+
import { format } from 'node:util';
|
|
8
|
+
import { getElanousConfigDirOverride, resetElanousConfigDir, setElanousConfigDir } from '../elanous-config-dir.js';
|
|
9
|
+
import { getTestStateRoot, setTestStateRoot } from '../nexus/paths.js';
|
|
10
|
+
|
|
11
|
+
export interface InProcessCliResult {
|
|
12
|
+
readonly exitCode: number;
|
|
13
|
+
readonly stdout: string;
|
|
14
|
+
readonly stderr: string;
|
|
15
|
+
readonly stateRoot: string;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export interface InProcessCliOptions {
|
|
19
|
+
/** Exact command paths allowed by the caller. Default: the read-only `where` command. */
|
|
20
|
+
readonly allowPaths?: readonly (readonly string[])[];
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
type MutableCommand = {
|
|
24
|
+
commands: MutableCommand[];
|
|
25
|
+
name(): string;
|
|
26
|
+
_optionValues?: Record<string, unknown>;
|
|
27
|
+
_optionValueSources?: Record<string, string>;
|
|
28
|
+
args: string[];
|
|
29
|
+
rawArgs?: string[];
|
|
30
|
+
processedArgs?: unknown[];
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
function registeredCommandPath(root: MutableCommand, args: readonly string[]): string[] {
|
|
34
|
+
const path: string[] = [];
|
|
35
|
+
let command = root;
|
|
36
|
+
for (const arg of args) {
|
|
37
|
+
if (arg.startsWith('-')) break;
|
|
38
|
+
const child = command.commands.find((candidate) => candidate.name() === arg);
|
|
39
|
+
if (!child) break;
|
|
40
|
+
path.push(arg);
|
|
41
|
+
command = child;
|
|
42
|
+
}
|
|
43
|
+
return path;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
function snapshotCommands(root: MutableCommand): () => void {
|
|
47
|
+
const snapshots: Array<{ command: MutableCommand; values: Record<string, unknown> | undefined; sources: Record<string, string> | undefined; args: string[]; rawArgs: string[] | undefined; processedArgs: unknown[] | undefined }> = [];
|
|
48
|
+
const visit = (command: MutableCommand): void => {
|
|
49
|
+
snapshots.push({
|
|
50
|
+
command,
|
|
51
|
+
values: command._optionValues ? { ...command._optionValues } : undefined,
|
|
52
|
+
sources: command._optionValueSources ? { ...command._optionValueSources } : undefined,
|
|
53
|
+
args: [...command.args],
|
|
54
|
+
rawArgs: command.rawArgs ? [...command.rawArgs] : undefined,
|
|
55
|
+
processedArgs: command.processedArgs ? [...command.processedArgs] : undefined,
|
|
56
|
+
});
|
|
57
|
+
command.commands.forEach(visit);
|
|
58
|
+
};
|
|
59
|
+
visit(root);
|
|
60
|
+
return () => {
|
|
61
|
+
for (const item of snapshots) {
|
|
62
|
+
item.command._optionValues = item.values;
|
|
63
|
+
item.command._optionValueSources = item.sources;
|
|
64
|
+
item.command.args = item.args;
|
|
65
|
+
item.command.rawArgs = item.rawArgs;
|
|
66
|
+
item.command.processedArgs = item.processedArgs;
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
class SimulatedExit extends Error {
|
|
72
|
+
constructor(readonly code: number) { super(`CLI exit ${code}`); }
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
// process.argv, stdio and Commander are singletons. Only one simulated turn
|
|
76
|
+
// may own them; callers never have to coordinate this themselves.
|
|
77
|
+
let previous: Promise<void> = Promise.resolve();
|
|
78
|
+
|
|
79
|
+
export async function simInProcessCli(args: readonly string[], options: InProcessCliOptions = {}): Promise<InProcessCliResult> {
|
|
80
|
+
const allowed = options.allowPaths ?? [['where']];
|
|
81
|
+
// Reject unmatched prefixes before touching singleton process state. The
|
|
82
|
+
// registered tree below resolves the exact command, leaving positionals out.
|
|
83
|
+
if (!allowed.some((entry) => entry.length > 0 && entry.every((part, index) => part === args[index]))) {
|
|
84
|
+
throw new Error(`in-process CLI command not allowed: ${args.join(' ') || '(empty)'}`);
|
|
85
|
+
}
|
|
86
|
+
if (args.some((arg) => arg === '--test' || arg.startsWith('--test=') || arg === '--config-dir' || arg.startsWith('--config-dir=') || arg === '--test-state-dir' || arg.startsWith('--test-state-dir='))) {
|
|
87
|
+
throw new Error('in-process CLI owns its isolated state root; do not pass root flags');
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
const turn = previous;
|
|
91
|
+
let release!: () => void;
|
|
92
|
+
previous = new Promise<void>((resolve) => { release = resolve; });
|
|
93
|
+
await turn;
|
|
94
|
+
try {
|
|
95
|
+
const stateRoot = mkdtempSync(join(tmpdir(), 'ux-sim-cli-'));
|
|
96
|
+
const oldStateEnv = process.env.ELANOUS_STATE_DIR;
|
|
97
|
+
const oldConfigRoot = getElanousConfigDirOverride();
|
|
98
|
+
const oldTestRoot = getTestStateRoot();
|
|
99
|
+
const oldArgv = process.argv;
|
|
100
|
+
const oldExitCode = process.exitCode;
|
|
101
|
+
const oldExit = process.exit;
|
|
102
|
+
const oldStdout = process.stdout.write;
|
|
103
|
+
const oldStderr = process.stderr.write;
|
|
104
|
+
const oldConsoleLog = console.log;
|
|
105
|
+
const oldConsoleInfo = console.info;
|
|
106
|
+
const oldConsoleWarn = console.warn;
|
|
107
|
+
const oldConsoleError = console.error;
|
|
108
|
+
const stdout: string[] = [];
|
|
109
|
+
const stderr: string[] = [];
|
|
110
|
+
let restoreCommand: (() => void) | undefined;
|
|
111
|
+
let exitCode = 0;
|
|
112
|
+
try {
|
|
113
|
+
process.env.ELANOUS_STATE_DIR = stateRoot;
|
|
114
|
+
setTestStateRoot(stateRoot);
|
|
115
|
+
setElanousConfigDir(stateRoot);
|
|
116
|
+
process.argv = ['bun', 'elanous', ...args];
|
|
117
|
+
process.exitCode = 0;
|
|
118
|
+
// Import after selecting the test universe: some CLI modules resolve
|
|
119
|
+
// paths at module initialization. This is the real registered CLI tree.
|
|
120
|
+
const { program } = await import('../index.js');
|
|
121
|
+
const command = program as unknown as MutableCommand & {
|
|
122
|
+
exitOverride: () => void;
|
|
123
|
+
_exitCallback?: (error: unknown) => void;
|
|
124
|
+
};
|
|
125
|
+
const path = registeredCommandPath(command, args);
|
|
126
|
+
if (path.length === 0 || !allowed.some((entry) => entry.length === path.length && entry.every((part, index) => part === path[index]))) {
|
|
127
|
+
throw new Error(`in-process CLI command not allowed: ${path.join(' ') || '(empty)'}`);
|
|
128
|
+
}
|
|
129
|
+
restoreCommand = snapshotCommands(command);
|
|
130
|
+
const oldExitCallback = command._exitCallback;
|
|
131
|
+
command.exitOverride();
|
|
132
|
+
const capture = (parts: string[], chunk: string | Uint8Array): boolean => {
|
|
133
|
+
parts.push(typeof chunk === 'string' ? chunk : Buffer.from(chunk).toString('utf8'));
|
|
134
|
+
return true;
|
|
135
|
+
};
|
|
136
|
+
process.stdout.write = ((chunk: string | Uint8Array) => capture(stdout, chunk)) as typeof process.stdout.write;
|
|
137
|
+
process.stderr.write = ((chunk: string | Uint8Array) => capture(stderr, chunk)) as typeof process.stderr.write;
|
|
138
|
+
console.log = (...items: unknown[]) => { stdout.push(format(...items) + '\n'); };
|
|
139
|
+
console.info = (...items: unknown[]) => { stdout.push(format(...items) + '\n'); };
|
|
140
|
+
console.warn = (...items: unknown[]) => { stderr.push(format(...items) + '\n'); };
|
|
141
|
+
console.error = (...items: unknown[]) => { stderr.push(format(...items) + '\n'); };
|
|
142
|
+
process.exit = ((code?: number) => { throw new SimulatedExit(code ?? 0); }) as typeof process.exit;
|
|
143
|
+
try {
|
|
144
|
+
await program.parseAsync(['bun', 'elanous', ...args]);
|
|
145
|
+
exitCode = typeof process.exitCode === 'number' ? process.exitCode : 0;
|
|
146
|
+
} catch (error) {
|
|
147
|
+
if (error instanceof SimulatedExit) exitCode = error.code;
|
|
148
|
+
else if (error && typeof error === 'object' && 'exitCode' in error && typeof error.exitCode === 'number') exitCode = error.exitCode;
|
|
149
|
+
else throw error;
|
|
150
|
+
} finally {
|
|
151
|
+
command._exitCallback = oldExitCallback;
|
|
152
|
+
}
|
|
153
|
+
return { exitCode, stdout: stdout.join(''), stderr: stderr.join(''), stateRoot };
|
|
154
|
+
} finally {
|
|
155
|
+
process.exit = oldExit;
|
|
156
|
+
process.stdout.write = oldStdout;
|
|
157
|
+
process.stderr.write = oldStderr;
|
|
158
|
+
console.log = oldConsoleLog;
|
|
159
|
+
console.info = oldConsoleInfo;
|
|
160
|
+
console.warn = oldConsoleWarn;
|
|
161
|
+
console.error = oldConsoleError;
|
|
162
|
+
restoreCommand?.();
|
|
163
|
+
process.argv = oldArgv;
|
|
164
|
+
process.exitCode = oldExitCode;
|
|
165
|
+
if (oldStateEnv === undefined) delete process.env.ELANOUS_STATE_DIR;
|
|
166
|
+
else process.env.ELANOUS_STATE_DIR = oldStateEnv;
|
|
167
|
+
setTestStateRoot(oldTestRoot ?? null);
|
|
168
|
+
if (oldConfigRoot === undefined) resetElanousConfigDir();
|
|
169
|
+
else setElanousConfigDir(oldConfigRoot);
|
|
170
|
+
rmSync(stateRoot, { recursive: true, force: true });
|
|
171
|
+
}
|
|
172
|
+
} finally {
|
|
173
|
+
release();
|
|
174
|
+
}
|
|
175
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"commit":"
|
|
1
|
+
{"commit":"da327ac97e69de03cc201ab8c1f59338055b9399"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1027],{11027:(e,r,t)=>{t.d(r,{diagram:()=>g});var a=t(34009),n=t(98436);t(98269),t(57541);var s=t(17487),l=t(13345),p=t(15369),i=(0,p.Pz)().RailroadPeg.parser.LangiumParser,o=(0,l.K)(e=>{let r=e.alternatives.map(u);return 1===r.length?r[0]:{type:"choice",alternatives:r}},"transformOrderedChoice"),u=(0,l.K)(e=>{let r=e.elements.map(m);return 1===r.length?r[0]:{type:"sequence",elements:r}},"transformSequence"),m=(0,l.K)(e=>{let r=c(e.suffix);return e.operator?{type:"special",text:"&"===e.operator?`&${d(r)}`:`!${d(r)}`}:r},"transformPrefix"),d=(0,l.K)(e=>{switch(e.type){case"terminal":return`"${e.value}"`;case"nonterminal":return e.name;case"special":return e.text;default:return"(...)"}},"nodeToLabel"),c=(0,l.K)(e=>{let r=f(e.primary);if(!e.operator)return r;switch(e.operator){case"?":return{type:"optional",element:r};case"*":return{type:"repetition",element:r,min:0,max:1/0};case"+":return{type:"repetition",element:r,min:1,max:1/0};default:throw Error(`Unsupported PEG suffix operator: ${e.operator}`)}},"transformSuffix"),f=(0,l.K)(e=>{switch(e.$type){case"PegLiteral":return{type:"terminal",value:e.value};case"PegIdentifier":return{type:"nonterminal",name:e.name};case"PegGroup":return o(e.element);case"PegAny":return{type:"special",text:e.dot};default:throw Error(`Unsupported PEG primary node: ${e.$type}`)}},"transformPrimary"),y=(0,l.K)(e=>({name:e.name,definition:o(e.definition)}),"transformRule"),P=(0,l.K)(e=>{(0,n.S)(e,a.db),e.title&&a.db.setTitle(e.title),e.rules.map(e=>a.db.addRule(y(e)))},"populateDb"),g={parser:{parse:(0,l.K)(e=>{a.db.clear(),s.R.debug("[PEG Parser] Starting Langium parse");let r=i.parse(e);if(r.lexerErrors.length>0||r.parserErrors.length>0)throw new p.zg(r);let t=r.value;s.R.debug("[PEG Parser] Parsed rules:",t.rules.length),P(t),s.R.debug("[PEG Parser] Parse complete")},"parse"),parser:{yy:a.db}},db:a.db,renderer:a.U,styles:a.$}}}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1038],{51038:(e,s,c)=>{c.d(s,{createCynefinServices:()=>a.t});var a=c(1974);c(64390)}}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1113],{1113:(e,a,s)=>{s.d(a,{createRadarServices:()=>c.f});var c=s(75378);s(64390)}}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[112],{2595:(e,t,a)=>{a.d(t,{A:()=>l});let l=(0,a(30728).A)("share-2",[["circle",{cx:"18",cy:"5",r:"3",key:"gq8acd"}],["circle",{cx:"6",cy:"12",r:"3",key:"w7nqdw"}],["circle",{cx:"18",cy:"19",r:"3",key:"1xt0gg"}],["line",{x1:"8.59",x2:"15.42",y1:"13.51",y2:"17.49",key:"47mynk"}],["line",{x1:"15.41",x2:"8.59",y1:"6.51",y2:"10.49",key:"1n3mei"}]])},5935:(e,t,a)=>{a.d(t,{A:()=>l});let l=(0,a(30728).A)("telescope",[["path",{d:"m10.065 12.493-6.18 1.318a.934.934 0 0 1-1.108-.702l-.537-2.15a1.07 1.07 0 0 1 .691-1.265l13.504-4.44",key:"k4qptu"}],["path",{d:"m13.56 11.747 4.332-.924",key:"19l80z"}],["path",{d:"m16 21-3.105-6.21",key:"7oh9d"}],["path",{d:"M16.485 5.94a2 2 0 0 1 1.455-2.425l1.09-.272a1 1 0 0 1 1.212.727l1.515 6.06a1 1 0 0 1-.727 1.213l-1.09.272a2 2 0 0 1-2.425-1.455z",key:"m7xp4m"}],["path",{d:"m6.158 8.633 1.114 4.456",key:"74o979"}],["path",{d:"m8 21 3.105-6.21",key:"1fvxut"}],["circle",{cx:"12",cy:"13",r:"2",key:"1c1ljs"}]])},9564:(e,t,a)=>{a.d(t,{A:()=>l});let l=(0,a(30728).A)("bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]])},12812:(e,t,a)=>{a.d(t,{A:()=>l});let l=(0,a(30728).A)("layers-2",[["path",{d:"M13 13.74a2 2 0 0 1-2 0L2.5 8.87a1 1 0 0 1 0-1.74L11 2.26a2 2 0 0 1 2 0l8.5 4.87a1 1 0 0 1 0 1.74z",key:"15q6uc"}],["path",{d:"m20 14.285 1.5.845a1 1 0 0 1 0 1.74L13 21.74a2 2 0 0 1-2 0l-8.5-4.87a1 1 0 0 1 0-1.74l1.5-.845",key:"byia6g"}]])},23699:(e,t,a)=>{a.d(t,{A:()=>l});let l=(0,a(30728).A)("compass",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m16.24 7.76-1.804 5.411a2 2 0 0 1-1.265 1.265L7.76 16.24l1.804-5.411a2 2 0 0 1 1.265-1.265z",key:"9ktpf1"}]])},27475:(e,t,a)=>{a.d(t,{A:()=>l});let l=(0,a(30728).A)("users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]])},29806:(e,t,a)=>{a.d(t,{A:()=>l});let l=(0,a(30728).A)("palette",[["path",{d:"M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z",key:"e79jfc"}],["circle",{cx:"13.5",cy:"6.5",r:".5",fill:"currentColor",key:"1okk4w"}],["circle",{cx:"17.5",cy:"10.5",r:".5",fill:"currentColor",key:"f64h9f"}],["circle",{cx:"6.5",cy:"12.5",r:".5",fill:"currentColor",key:"qy21gx"}],["circle",{cx:"8.5",cy:"7.5",r:".5",fill:"currentColor",key:"fotxhn"}]])},30728:(e,t,a)=>{a.d(t,{A:()=>k});var l=a(49954);let r=function(){for(var e=arguments.length,t=Array(e),a=0;a<e;a++)t[a]=arguments[a];return t.filter((e,t,a)=>!!e&&""!==e.trim()&&a.indexOf(e)===t).join(" ").trim()},y=e=>{let t=e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,a)=>a?a.toUpperCase():t.toLowerCase());return t.charAt(0).toUpperCase()+t.slice(1)};var h={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let c=(0,l.createContext)({}),d=(0,l.forwardRef)((e,t)=>{var a,y,d;let{color:k,size:i,strokeWidth:p,absoluteStrokeWidth:o,className:n="",children:s,iconNode:x,...u}=e,{size:A=24,strokeWidth:M=2,absoluteStrokeWidth:v=!1,color:m="currentColor",className:g=""}=null!=(a=(0,l.useContext)(c))?a:{},w=(null!=o?o:v)?24*Number(null!=p?p:M)/Number(null!=i?i:A):null!=p?p:M;return(0,l.createElement)("svg",{ref:t,...h,width:null!=(y=null!=i?i:A)?y:h.width,height:null!=(d=null!=i?i:A)?d:h.height,stroke:null!=k?k:m,strokeWidth:w,className:r("lucide",g,n),...!s&&!(e=>{for(let t in e)if(t.startsWith("aria-")||"role"===t||"title"===t)return!0;return!1})(u)&&{"aria-hidden":"true"},...u},[...x.map(e=>{let[t,a]=e;return(0,l.createElement)(t,a)}),...Array.isArray(s)?s:[s]])}),k=(e,t)=>{let a=(0,l.forwardRef)((a,h)=>{let{className:c,...k}=a;return(0,l.createElement)(d,{ref:h,iconNode:t,className:r("lucide-".concat(y(e).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()),"lucide-".concat(e),c),...k})});return a.displayName=y(e),a}},34115:(e,t,a)=>{a.d(t,{A:()=>l});let l=(0,a(30728).A)("book-open",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]])},36613:(e,t,a)=>{a.d(t,{A:()=>l});let l=(0,a(30728).A)("layers",[["path",{d:"M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z",key:"zw3jo"}],["path",{d:"M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12",key:"1wduqc"}],["path",{d:"M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17",key:"kqbvx6"}]])},37720:(e,t,a)=>{a.d(t,{A:()=>l});let l=(0,a(30728).A)("calendar-clock",[["path",{d:"M16 14v2.2l1.6 1",key:"fo4ql5"}],["path",{d:"M16 2v4",key:"4m81vk"}],["path",{d:"M21 7.5V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h3.5",key:"1osxxc"}],["path",{d:"M3 10h5",key:"r794hk"}],["path",{d:"M8 2v4",key:"1cmpym"}],["circle",{cx:"16",cy:"16",r:"6",key:"qoo3c4"}]])},45281:(e,t,a)=>{a.d(t,{A:()=>l});let l=(0,a(30728).A)("square-terminal",[["path",{d:"m7 11 2-2-2-2",key:"1lz0vl"}],["path",{d:"M11 13h4",key:"1p7l4v"}],["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}]])},50963:(e,t,a)=>{a.d(t,{A:()=>l});let l=(0,a(30728).A)("git-pull-request",[["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}],["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["path",{d:"M13 6h3a2 2 0 0 1 2 2v7",key:"1yeb86"}],["line",{x1:"6",x2:"6",y1:"9",y2:"21",key:"rroup"}]])},60166:(e,t,a)=>{a.d(t,{A:()=>l});let l=(0,a(30728).A)("git-branch",[["path",{d:"M15 6a9 9 0 0 0-9 9V3",key:"1cii5b"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}]])},60748:(e,t,a)=>{a.d(t,{A:()=>l});let l=(0,a(30728).A)("message-square",[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]])},65e3:(e,t,a)=>{a.d(t,{A:()=>l});let l=(0,a(30728).A)("store",[["path",{d:"M15 21v-5a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v5",key:"slp6dd"}],["path",{d:"M17.774 10.31a1.12 1.12 0 0 0-1.549 0 2.5 2.5 0 0 1-3.451 0 1.12 1.12 0 0 0-1.548 0 2.5 2.5 0 0 1-3.452 0 1.12 1.12 0 0 0-1.549 0 2.5 2.5 0 0 1-3.77-3.248l2.889-4.184A2 2 0 0 1 7 2h10a2 2 0 0 1 1.653.873l2.895 4.192a2.5 2.5 0 0 1-3.774 3.244",key:"o0xfot"}],["path",{d:"M4 10.95V19a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8.05",key:"wn3emo"}]])},78396:(e,t,a)=>{a.d(t,{A:()=>l});let l=(0,a(30728).A)("settings",[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]])},79036:(e,t,a)=>{a.d(t,{A:()=>l});let l=(0,a(30728).A)("layout-grid",[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]])},79906:(e,t,a)=>{a.d(t,{A:()=>l});let l=(0,a(30728).A)("lightbulb",[["path",{d:"M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5",key:"1gvzjb"}],["path",{d:"M9 18h6",key:"x1upvd"}],["path",{d:"M10 22h4",key:"ceow96"}]])},91418:(e,t,a)=>{a.d(t,{A:()=>l});let l=(0,a(30728).A)("sliders-vertical",[["path",{d:"M10 8h4",key:"1sr2af"}],["path",{d:"M12 21v-9",key:"17s77i"}],["path",{d:"M12 8V3",key:"13r4qs"}],["path",{d:"M17 16h4",key:"h1uq16"}],["path",{d:"M19 12V3",key:"o1uvq1"}],["path",{d:"M19 21v-5",key:"qua636"}],["path",{d:"M3 14h4",key:"bcjad9"}],["path",{d:"M5 10V3",key:"cb8scm"}],["path",{d:"M5 21v-7",key:"1w1uti"}]])},93667:(e,t,a)=>{a.d(t,{A:()=>l});let l=(0,a(30728).A)("inbox",[["polyline",{points:"22 12 16 12 14 15 10 15 8 12 2 12",key:"o97t9d"}],["path",{d:"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z",key:"oot6mr"}]])},93708:(e,t,a)=>{a.d(t,{A:()=>l});let l=(0,a(30728).A)("activity",[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]])},96548:(e,t,a)=>{a.d(t,{A:()=>l});let l=(0,a(30728).A)("square-kanban",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M8 7v7",key:"1x2jlm"}],["path",{d:"M12 7v4",key:"xawao1"}],["path",{d:"M16 7v9",key:"1hp2iy"}]])},97007:(e,t,a)=>{a.d(t,{A:()=>l});let l=(0,a(30728).A)("crosshair",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"22",x2:"18",y1:"12",y2:"12",key:"l9bcsi"}],["line",{x1:"6",x2:"2",y1:"12",y2:"12",key:"13hhkx"}],["line",{x1:"12",x2:"12",y1:"6",y2:"2",key:"10w3f3"}],["line",{x1:"12",x2:"12",y1:"22",y2:"18",key:"15g9kq"}]])}}]);
|