elanous 0.2.31 → 0.2.34
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/{LSXfY0u9QtfDbejY0Ukf_ → L04y73dlwKeTW-GetaTF3}/_buildManifest.js +1 -1
- package/apps/pwa/out/_next/static/chunks/1162.c69abda138c7ce43.js +79 -0
- package/apps/pwa/out/_next/static/chunks/1449-1fede62af84c3e43.js +1 -0
- package/apps/pwa/out/_next/static/chunks/1598-13fc845935e816df.js +1 -0
- package/apps/pwa/out/_next/static/chunks/1639.62c5e16fa20d242f.js +94 -0
- package/apps/pwa/out/_next/static/chunks/{4174.92ed04922709ac9e.js → 1644.35dd25240ae24e4b.js} +2 -2
- package/apps/pwa/out/_next/static/chunks/1661-adb8b2babc9aaf8c.js +1 -0
- package/apps/pwa/out/_next/static/chunks/{2940-619bfd8ef337c611.js → 1895-60ed0e341c658bd4.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/{5525.86debf231e181813.js → 2124.ed5bf480cea7f85b.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/2147.107c0fc6146fb15a.js +23 -0
- package/apps/pwa/out/_next/static/chunks/2202-ef1c9b000c3074fc.js +1 -0
- package/apps/pwa/out/_next/static/chunks/2247.1e326638ee43e672.js +115 -0
- package/apps/pwa/out/_next/static/chunks/2268.56e1e3d58180abae.js +8 -0
- package/apps/pwa/out/_next/static/chunks/2469-606819c812414021.js +1 -0
- package/apps/pwa/out/_next/static/chunks/{6092.a7f99e68b188ca66.js → 2547.dd27303624cb4da8.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/{2213.2ccbada92c33ea0f.js → 2554.3b5e200f5f5cfcd6.js} +16 -16
- package/apps/pwa/out/_next/static/chunks/2593.e53c1620c0bb3599.js +1 -0
- package/apps/pwa/out/_next/static/chunks/2690.e96671114222676a.js +1 -0
- package/apps/pwa/out/_next/static/chunks/2898-79ee1a5cc0cd9d13.js +1 -0
- package/apps/pwa/out/_next/static/chunks/298.26099a9f65e5c8ff.js +1 -0
- package/apps/pwa/out/_next/static/chunks/{5173-233188df2f42c626.js → 2987-30cf9c2eb7b8bdd5.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/2992.51fc2a7295bd8139.js +1 -0
- package/apps/pwa/out/_next/static/chunks/{3541-ce3a5424ed5ad7f1.js → 3001-5a52788c813b6113.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/3014-291245fba9df7b5b.js +1 -0
- package/apps/pwa/out/_next/static/chunks/3068.ee78201f0251a18d.js +1 -0
- package/apps/pwa/out/_next/static/chunks/3083.cd399a17e9365f78.js +1 -0
- package/apps/pwa/out/_next/static/chunks/3103.84470c8445962f04.js +34 -0
- package/apps/pwa/out/_next/static/chunks/{6433.fc573af22bbc9ab7.js → 3110.0a7065f25c841818.js} +17 -17
- package/apps/pwa/out/_next/static/chunks/3117-e1c474683fd1f824.js +1 -0
- package/apps/pwa/out/_next/static/chunks/3121.779fafe3e44612c5.js +1 -0
- package/apps/pwa/out/_next/static/chunks/3251-2c17bd5a91f8de2e.js +1 -0
- package/apps/pwa/out/_next/static/chunks/326.3fb32322bb2ddf6d.js +1 -0
- package/apps/pwa/out/_next/static/chunks/3411-f87314c6c66ebc73.js +1 -0
- package/apps/pwa/out/_next/static/chunks/{6157.0c9af021de4fb31b.js → 3414.172ad4ca2d9b08e8.js} +2 -2
- package/apps/pwa/out/_next/static/chunks/3421-7ff7fbaa156985a7.js +1 -0
- package/apps/pwa/out/_next/static/chunks/{4745.67d6f99c245af3f7.js → 3498.cf2a15a8a9e5b926.js} +3 -3
- package/apps/pwa/out/_next/static/chunks/381.f55dc63ea87735e6.js +1 -0
- package/apps/pwa/out/_next/static/chunks/3819.163d4777f0a597f6.js +32 -0
- package/apps/pwa/out/_next/static/chunks/{5543.a438b8ab5a13ea47.js → 3837.722e053fb9f321ad.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/4129-ab0a6189f1778633.js +1 -0
- package/apps/pwa/out/_next/static/chunks/4361.93d14ba594b3a035.js +104 -0
- package/apps/pwa/out/_next/static/chunks/4364.7a7eb19cceb67d2f.js +286 -0
- package/apps/pwa/out/_next/static/chunks/4406.d71f506f7c3ee9d3.js +149 -0
- package/apps/pwa/out/_next/static/chunks/4461.2ad1514180ae7e29.js +148 -0
- package/apps/pwa/out/_next/static/chunks/4479.bd309cbe0e3842ee.js +64 -0
- package/apps/pwa/out/_next/static/chunks/4522-05966f777d66d13b.js +1 -0
- package/apps/pwa/out/_next/static/chunks/4543-9a3e9812e845de65.js +1 -0
- package/apps/pwa/out/_next/static/chunks/4557.f8f1d84a0d90d590.js +74 -0
- package/apps/pwa/out/_next/static/chunks/4589-79b11542179ef58c.js +1 -0
- package/apps/pwa/out/_next/static/chunks/4633-9f8f9f88ffbb8f5c.js +1 -0
- package/apps/pwa/out/_next/static/chunks/4831.23af4d10c0697b5e.js +1 -0
- package/apps/pwa/out/_next/static/chunks/4983.5951b85724f61f2a.js +1 -0
- package/apps/pwa/out/_next/static/chunks/{b313b242.cb1265eea908db61.js → 4fa33ebd.21c1bd5b294496e6.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/{997ce8a5-2ad501927003b41b.js → 5014f970-22bef0b5210f7d60.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/{2112-e4efc21a6505d5bc.js → 5028-f0722e6114c313e7.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/{2898.fd781bc7cf01a7b7.js → 5249.96a848656b582a93.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/5311.16e0ffbfa5468b80.js +62 -0
- package/apps/pwa/out/_next/static/chunks/{9407.e49124dedf0f5e72.js → 5446.edf141cff9ef647d.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/{9002.e5658224e3dc1b6f.js → 5489.ec2dd1b5272a19dc.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/{1335-6731f392c35216eb.js → 5576-82d3703636d5c4b9.js} +3 -3
- package/apps/pwa/out/_next/static/chunks/559.df87695df637920c.js +1 -0
- package/apps/pwa/out/_next/static/chunks/5618-5c88f2f70178c4ad.js +1 -0
- package/apps/pwa/out/_next/static/chunks/5764.05487bf0b73ddb6b.js +1 -0
- package/apps/pwa/out/_next/static/chunks/5930.e678826c3f831aab.js +1 -0
- package/apps/pwa/out/_next/static/chunks/5dfb57f7.f2e3305326202474.js +1 -0
- package/apps/pwa/out/_next/static/chunks/6053-d893974de92e6198.js +1 -0
- package/apps/pwa/out/_next/static/chunks/{2985.39ccdecd36848b12.js → 6086.913a69e6fa3e4a8b.js} +4 -4
- package/apps/pwa/out/_next/static/chunks/6200-cefd6f33f59d765e.js +1 -0
- package/apps/pwa/out/_next/static/chunks/6314-edeba650ae686ac9.js +1 -0
- package/apps/pwa/out/_next/static/chunks/6316-bc9a9b74d7842d79.js +1 -0
- package/apps/pwa/out/_next/static/chunks/6476-13b9779b73528008.js +1 -0
- package/apps/pwa/out/_next/static/chunks/666-04db3ac4c8e3c66f.js +1 -0
- package/apps/pwa/out/_next/static/chunks/670.682e55106ef915a6.js +77 -0
- package/apps/pwa/out/_next/static/chunks/{7862.30a8d6482bb238eb.js → 6740.43de73fc427c9fe2.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/6816.b7ba9d0a1a4a46a7.js +1 -0
- package/apps/pwa/out/_next/static/chunks/690-fbbcc777f189af37.js +1 -0
- package/apps/pwa/out/_next/static/chunks/6989.0d3d4020e5cb3df6.js +90 -0
- package/apps/pwa/out/_next/static/chunks/{2871.0bca6137343b3f76.js → 7005.1623d2aea78eb85f.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/7193-cf355cca5ba6c5d5.js +1 -0
- package/apps/pwa/out/_next/static/chunks/7217-d17393fe7af78fa6.js +1 -0
- package/apps/pwa/out/_next/static/chunks/7232.24edbd938a69c8d0.js +1 -0
- package/apps/pwa/out/_next/static/chunks/7295cd1e.b4b557908888eeee.js +1 -0
- package/apps/pwa/out/_next/static/chunks/7323.adb02de21991883c.js +1 -0
- package/apps/pwa/out/_next/static/chunks/7386.5d8e7e42e818dfb6.js +287 -0
- package/apps/pwa/out/_next/static/chunks/{7502.ccd5b8065545edd0.js → 7431.3051e9b8a4372d2d.js} +2 -2
- package/apps/pwa/out/_next/static/chunks/{3583.a05e88cc8d594628.js → 7448.478958ffbbba0ac0.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/7537.ba2208c5c656b8a3.js +1 -0
- package/apps/pwa/out/_next/static/chunks/7562.948255cbc3e79d33.js +41 -0
- package/apps/pwa/out/_next/static/chunks/7596-962ae6db6cfc9c83.js +1 -0
- package/apps/pwa/out/_next/static/chunks/7671.cff51beac212a2ba.js +1 -0
- package/apps/pwa/out/_next/static/chunks/7883.3916734ee16d3e58.js +27 -0
- package/apps/pwa/out/_next/static/chunks/{9989.3694300e5f000b14.js → 7952.b192c31b6a0e00cc.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/801.5b24e81eded22d1b.js +1 -0
- package/apps/pwa/out/_next/static/chunks/8176.8c9a8613f5a01ac1.js +36 -0
- package/apps/pwa/out/_next/static/chunks/819e78a6.fa3dd7f7da19bf61.js +1 -0
- package/apps/pwa/out/_next/static/chunks/8220-78978450c3183d8d.js +1 -0
- package/apps/pwa/out/_next/static/chunks/8221-eb60b5bc692a3361.js +1 -0
- package/apps/pwa/out/_next/static/chunks/826.e9a26064f474949e.js +1 -0
- package/apps/pwa/out/_next/static/chunks/{5307.60f2209e809bd627.js → 8368.014caa8de2f5af34.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/8459-a351487a4480f584.js +1 -0
- package/apps/pwa/out/_next/static/chunks/8482-75823d513a4ce151.js +1 -0
- package/apps/pwa/out/_next/static/chunks/8488.8da515248cda3f3a.js +1 -0
- package/apps/pwa/out/_next/static/chunks/{9221.7d22eaf353a2d4e7.js → 8548.036c344973968847.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/8584.388a1779d9b203af.js +1 -0
- package/apps/pwa/out/_next/static/chunks/8637.a55e098e61ffefb8.js +1 -0
- package/apps/pwa/out/_next/static/chunks/8817.61bb7ffbba502ecb.js +1 -0
- package/apps/pwa/out/_next/static/chunks/{9398-6aed28f0a96d0d6f.js → 9131-fce7256c4180c4a5.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/9207-8e6a12db30373f32.js +1 -0
- package/apps/pwa/out/_next/static/chunks/9263-00ae932c62696a86.js +1 -0
- package/apps/pwa/out/_next/static/chunks/9318.caafc3a130e8769c.js +1 -0
- package/apps/pwa/out/_next/static/chunks/932.da3fb55951882562.js +93 -0
- package/apps/pwa/out/_next/static/chunks/9433.002f8426ac75b6b7.js +1 -0
- package/apps/pwa/out/_next/static/chunks/9464.dd631a5a14b1d660.js +24 -0
- package/apps/pwa/out/_next/static/chunks/{3278.2e5d15b53a4091c8.js → 9550.d5f76828f972058c.js} +2 -2
- package/apps/pwa/out/_next/static/chunks/{2534.e85ae21ad0dac829.js → 9739.8d5f36ac67a3b236.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/9743.beeabb9d5f86abe4.js +1 -0
- package/apps/pwa/out/_next/static/chunks/9843-a23d3f32dc43f715.js +1 -0
- package/apps/pwa/out/_next/static/chunks/994-28211077c7c587d5.js +1 -0
- package/apps/pwa/out/_next/static/chunks/{7a1887c4.f36b88fba31da8fd.js → 9a8cb466.cc9fc9e6e46038aa.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/{0bb0ff36.b8d418980951e5ba.js → 9b48c871.204d5d13e7809bd0.js} +7 -7
- package/apps/pwa/out/_next/static/chunks/{409f1e57.d0649fc47691ebfe.js → abb4b98b.163e0f56e84ae35d.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/app/_not-found/page-3b4c947f174e33d8.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/approvals/page-369d5ce99483f859.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/autopilot/page-63c0ed0eb26e5fce.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/board/page-62802c6003bc85cc.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/botlab/page-ecb41560d4e77be9.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/bots/page-7b65ad8130c93e95.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/ceo/page-8755477c15a9060c.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/chat/page-5725447dd972c471.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/consult/page-b979de0591a69375.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/control/page-6d0796bf4633751a.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/decisions/page-59c31dc0394e67b4.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/design-check/page-12dfc95f6cc5c718.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/editor/page-25788244e66aa4dd.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/exec/page-a2555dc705466322.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/field/page-4fb31eb476dcbad3.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/healthz/route-3b4c947f174e33d8.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/inside/page-578729adbeaa40cb.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/intake/page-a1d20fffbec35205.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/layout-4a558f94516b8004.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/live/page-9e3834705b86145e.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/live-run/page-d7bff0f0905a662c.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/loops/page-cb1c5fe746ea4014.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/market/page-9ee320507356582a.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/missions/[id]/page-66fd183b74835886.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/morning/page-3272a064a01a9927.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/not-found-f281b7a7f6ef2529.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/observatory/page-d45a65f8b7124fcd.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/ops/checklist/page-e9c1fe684dd19a66.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/ops/release/page-b8322932fc6e34de.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/ops/seats/page-82c66d9af2290575.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/outputs/page-63c6752009c97b05.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/page-bb33d42ebc358aec.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/reflection/page-7e4c9379197d7214.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/scheduler/page-38bf1e9a7001732b.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/sessions/page-2e5b752012389d56.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/settings/devices/{page-0a07363b130182a1.js → page-398c0faa173203f7.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/app/settings/page-002f53a965b6445c.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/setup/done/page-7f75997f61a26269.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/setup/layout-3b4c947f174e33d8.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/setup/page-05631753294f23fb.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/share/page-edd700fd2cc3d7f8.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/showroom/page-105f83ecb4594365.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/tasks/page-5823e87d2017f19c.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/term/page-df3445b207ceceab.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/today/page-b51ca09566c03de7.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/trace/page-8aacd5ded5dbac60.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/vault/page-bae3365a0b3c6a8e.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/workflows/chat-ui/page-9ed52b48ff1aa7fd.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/workflows/page-b6f8cad35fe00946.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/workspace/page-6d25ceda500d2457.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/worktrees/page-b6401a5f2c962fe8.js +1 -0
- package/apps/pwa/out/_next/static/chunks/ebf6cf5e.0d2f887b040e80fb.js +122 -0
- package/apps/pwa/out/_next/static/chunks/f09ec7d7-d29abe23edcbb193.js +1 -0
- package/apps/pwa/out/_next/static/chunks/{ebc7d829.264a0bcb6c750b50.js → ffdc3a04.b9c23c1b28dd4a96.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/framework-9322cb8a56ac081c.js +1 -0
- package/apps/pwa/out/_next/static/chunks/main-2fbab294e49a1561.js +1 -0
- package/apps/pwa/out/_next/static/chunks/main-app-f36729f56621a8f3.js +1 -0
- package/apps/pwa/out/_next/static/chunks/pages/_app-2a62e450b47c6114.js +1 -0
- package/apps/pwa/out/_next/static/chunks/pages/_error-5e17f7b445f34d43.js +1 -0
- package/apps/pwa/out/_next/static/chunks/webpack-b4263e2190ea7adf.js +1 -0
- package/apps/pwa/out/_next/static/css/b5d88eba78a3d7bf.css +1 -0
- package/apps/pwa/out/approvals/index.html +1 -1
- package/apps/pwa/out/approvals/index.txt +23 -23
- package/apps/pwa/out/autopilot/index.html +1 -1
- package/apps/pwa/out/autopilot/index.txt +23 -23
- package/apps/pwa/out/board/index.html +1 -1
- package/apps/pwa/out/board/index.txt +23 -23
- package/apps/pwa/out/botlab/index.html +1 -1
- package/apps/pwa/out/botlab/index.txt +22 -22
- package/apps/pwa/out/bots/index.html +1 -1
- package/apps/pwa/out/bots/index.txt +22 -22
- package/apps/pwa/out/ceo/index.html +1 -1
- package/apps/pwa/out/ceo/index.txt +23 -23
- package/apps/pwa/out/chat/index.html +1 -1
- package/apps/pwa/out/chat/index.txt +22 -22
- package/apps/pwa/out/consult/index.html +1 -1
- package/apps/pwa/out/consult/index.txt +23 -23
- package/apps/pwa/out/control/index.html +1 -1
- package/apps/pwa/out/control/index.txt +23 -23
- package/apps/pwa/out/decisions/index.html +1 -1
- package/apps/pwa/out/decisions/index.txt +22 -22
- package/apps/pwa/out/design-check/index.html +1 -1
- package/apps/pwa/out/design-check/index.txt +23 -23
- package/apps/pwa/out/editor/index.html +1 -1
- package/apps/pwa/out/editor/index.txt +23 -23
- package/apps/pwa/out/exec/index.html +1 -1
- package/apps/pwa/out/exec/index.txt +23 -23
- package/apps/pwa/out/field/index.html +1 -1
- package/apps/pwa/out/field/index.txt +23 -23
- package/apps/pwa/out/healthz +1 -1
- package/apps/pwa/out/index.html +1 -1
- package/apps/pwa/out/index.txt +22 -22
- package/apps/pwa/out/inside/index.html +1 -1
- package/apps/pwa/out/inside/index.txt +22 -22
- package/apps/pwa/out/intake/index.html +1 -1
- package/apps/pwa/out/intake/index.txt +23 -23
- package/apps/pwa/out/live/index.html +1 -1
- package/apps/pwa/out/live/index.txt +26 -23
- package/apps/pwa/out/live-run/index.html +1 -1
- package/apps/pwa/out/live-run/index.txt +23 -23
- package/apps/pwa/out/loops/index.html +1 -1
- package/apps/pwa/out/loops/index.txt +22 -22
- package/apps/pwa/out/market/index.html +1 -1
- package/apps/pwa/out/market/index.txt +22 -22
- package/apps/pwa/out/missions/placeholder/index.html +1 -1
- package/apps/pwa/out/missions/placeholder/index.txt +22 -22
- package/apps/pwa/out/morning/index.html +1 -1
- package/apps/pwa/out/morning/index.txt +23 -23
- package/apps/pwa/out/observatory/index.html +1 -1
- package/apps/pwa/out/observatory/index.txt +23 -23
- package/apps/pwa/out/ops/checklist/index.html +1 -1
- package/apps/pwa/out/ops/checklist/index.txt +22 -22
- package/apps/pwa/out/ops/release/index.html +1 -1
- package/apps/pwa/out/ops/release/index.txt +22 -22
- package/apps/pwa/out/ops/seats/index.html +1 -1
- package/apps/pwa/out/ops/seats/index.txt +22 -22
- package/apps/pwa/out/outputs/index.html +1 -1
- package/apps/pwa/out/outputs/index.txt +22 -22
- package/apps/pwa/out/reflection/index.html +1 -1
- package/apps/pwa/out/reflection/index.txt +23 -23
- package/apps/pwa/out/scheduler/index.html +1 -1
- package/apps/pwa/out/scheduler/index.txt +23 -23
- package/apps/pwa/out/sessions/index.html +1 -1
- package/apps/pwa/out/sessions/index.txt +22 -22
- package/apps/pwa/out/settings/devices/index.html +1 -1
- package/apps/pwa/out/settings/devices/index.txt +23 -23
- package/apps/pwa/out/settings/index.html +1 -1
- package/apps/pwa/out/settings/index.txt +23 -23
- package/apps/pwa/out/setup/done/index.html +1 -1
- package/apps/pwa/out/setup/done/index.txt +23 -23
- package/apps/pwa/out/setup/index.html +1 -1
- package/apps/pwa/out/setup/index.txt +23 -23
- package/apps/pwa/out/share/index.html +1 -1
- package/apps/pwa/out/share/index.txt +23 -23
- package/apps/pwa/out/showroom/index.html +1 -1
- package/apps/pwa/out/showroom/index.txt +22 -22
- package/apps/pwa/out/tasks/index.html +1 -1
- package/apps/pwa/out/tasks/index.txt +23 -23
- package/apps/pwa/out/term/index.html +1 -1
- package/apps/pwa/out/term/index.txt +23 -23
- package/apps/pwa/out/today/index.html +1 -1
- package/apps/pwa/out/today/index.txt +23 -23
- package/apps/pwa/out/trace/index.html +1 -1
- package/apps/pwa/out/trace/index.txt +23 -23
- package/apps/pwa/out/vault/index.html +1 -1
- package/apps/pwa/out/vault/index.txt +23 -23
- package/apps/pwa/out/workflows/chat-ui/index.html +1 -1
- package/apps/pwa/out/workflows/chat-ui/index.txt +23 -23
- package/apps/pwa/out/workflows/index.html +1 -1
- package/apps/pwa/out/workflows/index.txt +23 -23
- package/apps/pwa/out/workspace/index.html +1 -1
- package/apps/pwa/out/workspace/index.txt +23 -23
- package/apps/pwa/out/worktrees/index.html +1 -1
- package/apps/pwa/out/worktrees/index.txt +23 -23
- package/bin/elanous.mjs +9 -2
- package/docs/goal-context/README.md +1 -0
- package/graphs/default-loop.yaml +20 -3
- package/graphs/document-loop.yaml +21 -2
- package/graphs/implement-loop.yaml +11 -0
- package/graphs/journey/SCENARIOS.md +33 -0
- package/graphs/journey/recipes.yaml +1 -0
- package/graphs/journey/ta-journey.yaml +84 -0
- package/graphs/journey/units/author/author.yaml +20 -0
- package/graphs/journey/units/author/recipes.yaml +2 -0
- package/graphs/journey/units/green/green.yaml +20 -0
- package/graphs/journey/units/green/recipes.yaml +2 -0
- package/graphs/journey/units/pr/pr.yaml +20 -0
- package/graphs/journey/units/pr/recipes.yaml +2 -0
- package/graphs/journey/units/remember/recipes.yaml +2 -0
- package/graphs/journey/units/remember/remember.yaml +20 -0
- package/graphs/operate-loop.yaml +21 -2
- package/graphs/overlays/stop-heal-ladder.yaml +1 -1
- package/graphs/release-rehearsal/recipes.yaml +1 -1
- package/graphs/release-rehearsal/release-rehearsal.yaml +2 -2
- package/graphs/research-loop.yaml +23 -2
- package/graphs/units/dispatch-pod/dispatch-pod.yaml +50 -0
- package/graphs/units/dispatch-pod/recipes.yaml +14 -0
- package/graphs/units/entry/entry.yaml +50 -0
- package/graphs/units/entry/recipes.yaml +14 -0
- package/graphs/units/harvest/harvest.yaml +25 -0
- package/graphs/units/harvest/recipes.yaml +4 -0
- package/graphs/units/land/land.yaml +45 -0
- package/graphs/units/land/recipes.yaml +3 -0
- package/graphs/units/recipes.yaml +7 -0
- package/graphs/units/recover.yaml +39 -0
- package/graphs/units/reflect/recipes.yaml +3 -0
- package/graphs/units/reflect/reflect.yaml +15 -0
- package/graphs/units/task-agent-recover-review.yaml +17 -0
- package/graphs/units/task-agent-recover-wait.yaml +17 -0
- package/graphs/units/verbs/make-doc.yaml +34 -0
- package/graphs/units/verbs/recipes.yaml +33 -0
- package/graphs/units/verbs/verify.yaml +55 -0
- package/graphs/work/recipes.yaml +2 -0
- package/graphs/work/research-report.yaml +28 -0
- package/package.json +1 -1
- package/scripts/ci-typecheck-changed.ts +95 -17
- package/scripts/docs/generate-graph-anatomy.ts +19 -2
- package/scripts/graph-harvest-unit.ts +22 -0
- package/scripts/graph-units/journey-stub.ts +6 -0
- package/scripts/graph-units/land-enqueue.ts +78 -0
- package/scripts/graph-units/recover-plan.ts +15 -0
- package/scripts/graph-units/reflect-node.ts +88 -0
- package/scripts/graph-units/ta-journey-observe.ts +109 -0
- package/scripts/graph-units/verbs/headless-goal-loop.ts +152 -0
- package/scripts/graph-units/verbs/verify-stage.ts +75 -0
- package/scripts/graph-units/verbs-envelope.ts +139 -0
- package/scripts/hq/standby-snapshot.ts +25 -0
- package/scripts/measure-si-task-cpu.ts +143 -0
- package/scripts/public-export.ts +43 -1
- package/scripts/ratchets/test-interference-patterns.allowlist.txt +0 -2
- package/scripts/ratchets/train-side-invariants.sh +45 -0
- package/scripts/release-loop/auto-approve-node.ts +30 -16
- package/scripts/release-loop/gate-closure.ts +5 -1
- package/scripts/release-loop/gate-diff.ts +1 -1
- package/scripts/release-loop/gate-node.ts +498 -31
- package/scripts/release-loop/gate-partial.ts +3 -3
- package/scripts/release-loop/gate-radius-shadow.ts +138 -0
- package/scripts/release-loop/gate-traffic-mode.ts +128 -0
- package/scripts/release-loop/gate-triage-node.ts +5 -2
- package/scripts/release-loop/known-issues-0.2.33-approved.json +194 -0
- package/scripts/release-loop/known-issues-node.ts +77 -8
- package/scripts/release-loop/preflight.ts +93 -7
- package/scripts/release-loop/prepare-node.ts +102 -4
- package/scripts/release-loop/publish-node.ts +60 -9
- package/scripts/release-loop/resume-cap.ts +56 -0
- package/scripts/release-loop/resume-release.ts +114 -15
- package/scripts/release-loop/resume.ts +24 -1
- package/scripts/release-loop/tui-sim-node.ts +8 -2
- package/scripts/release-loop/unattended-release.ts +8 -2
- package/src/acp/core-turn-bridge.ts +36 -9
- package/src/acp/elanous-extensions.ts +3 -0
- package/src/acp/reasoning-thought-buffer.ts +45 -0
- package/src/acp/server.ts +3 -0
- package/src/acp/tool-trace.ts +186 -11
- package/src/agent/self-ambient-cache.ts +156 -0
- package/src/agent/self-ambient.ts +8 -1
- package/src/agent/task-notification.ts +5 -0
- package/src/agent-substrate/acp-reviewer.ts +52 -12
- package/src/agent-substrate/pr-reviewer.ts +3 -1
- package/src/agent-substrate/review-finding-key.ts +53 -0
- package/src/agent-substrate/self-review-cli.ts +126 -5
- package/src/ask-user-question/pending-questions.ts +1 -1
- package/src/ask-user-question/tool.ts +22 -0
- package/src/autopilot/build/llm-conflict-merge.ts +56 -10
- package/src/autopilot/pr-manager.ts +213 -46
- package/src/capture/frame-state-detect.ts +39 -0
- package/src/capture/tui-self-report.ts +134 -6
- package/src/chat/index.ts +61 -15
- package/src/chat/pickers/modal-runtime.ts +6 -0
- package/src/chat/pickers/modals.ts +8 -2
- package/src/chat/tool-render/dispatch.ts +62 -10
- package/src/cli/ask-bare.ts +1 -0
- package/src/cli/control-cli.ts +24 -7
- package/src/cli/guardian-cli.ts +10 -0
- package/src/cli/import-cli.ts +12 -0
- package/src/cli/light-entry-route.ts +35 -0
- package/src/cli/llm-detect-cli.ts +23 -1
- package/src/cli/log-event-names.ts +10 -0
- package/src/cli/msg-cli.ts +1 -0
- package/src/cli/pod-cli.ts +14 -3
- package/src/cli/pr-cli.ts +140 -41
- package/src/cli/pr-land-base-read.ts +36 -0
- package/src/cli/pr-land-heavy-remote.ts +81 -25
- package/src/cli/pr-land-overlap-evidence.ts +200 -18
- package/src/cli/pr-land-pod-shadow-job.ts +26 -3
- package/src/cli/pr-land-recovery.ts +64 -0
- package/src/cli/pr-land-refusal.ts +20 -5
- package/src/cli/pty-takeover-cli.ts +94 -19
- package/src/cli/release-cli.ts +120 -33
- package/src/cli/release-run-if-ready.ts +29 -28
- package/src/cli/release-single-flight.ts +178 -0
- package/src/cli/seat-cli.ts +37 -0
- package/src/cli/setup-cli.ts +40 -1
- package/src/cli/sim-cli.ts +18 -0
- package/src/cli/tasks-cli.ts +149 -5
- package/src/context-bus/ops-events.ts +6 -2
- package/src/control/control-status.ts +8 -3
- package/src/control-plane/ledger.ts +5 -3
- package/src/control-plane/server.ts +5 -3
- package/src/core-turn/run-core-turn.ts +1 -0
- package/src/core-turn/run-goal-loop.ts +21 -0
- package/src/core-turn/short-question.ts +5 -1
- package/src/core-turn/types.ts +3 -0
- package/src/dashboard/acp-active-model.ts +42 -1
- package/src/dashboard/background-jobs-status.ts +66 -0
- package/src/dashboard/index.ts +153 -111
- package/src/dashboard/input/agent-wake.ts +242 -0
- package/src/dashboard/input/chat-main-entry-runtime.ts +5 -0
- package/src/dashboard/input/chat-main-plain-turn-runtime.ts +3 -0
- package/src/dashboard/input/dashboard-plain-turn-stream.ts +4 -0
- package/src/dashboard/input/external-input-host.ts +23 -9
- package/src/dashboard/input/mouse-wiring.ts +108 -11
- package/src/dashboard/input/seat-autowake.ts +56 -3
- package/src/dashboard/log-click-runtime.ts +118 -2
- package/src/dashboard/seat-boot-preamble.ts +1 -1
- package/src/dashboard/slash-runtime/ask-clarification.ts +48 -0
- package/src/dashboard/slash-runtime/dashboard-delegated-slashes.ts +68 -0
- package/src/dashboard/slash-runtime/dashboard-handlers.ts +62 -322
- package/src/dashboard/slash-runtime/dashboard-log-slash.ts +208 -0
- package/src/dashboard/turn-preamble.ts +163 -41
- package/src/dashboard/turn-session-layers.ts +4 -2
- package/src/dashboard/turn-start-segments.ts +222 -0
- package/src/dashboard/turn-stream-formatter.ts +34 -1
- package/src/dashboard/turn-stream-runtime.ts +2 -0
- package/src/dashboard/turn-typeahead-prompt-zone.ts +67 -0
- package/src/display/prompt-row-owner.ts +146 -0
- package/src/display/resize-listener.ts +33 -2
- package/src/domains/guardian-tick.ts +54 -2
- package/src/domains/outbound-alert.ts +3 -2
- package/src/extractors.ts +3 -1
- package/src/fold-stack.ts +4 -2
- package/src/git-fs/index.ts +263 -36
- package/src/git-fs/retry.ts +4 -0
- package/src/git-fs/runner.ts +2 -0
- package/src/graph-runner/runner.ts +114 -44
- package/src/grok/credential.ts +5 -0
- package/src/harness/gate-reserve.ts +87 -0
- package/src/harness/harness-cli-command.ts +39 -10
- package/src/harness/harness-incidents.ts +17 -0
- package/src/harness/harness-pod-dispatch.ts +38 -1
- package/src/harness/harness-queue.ts +15 -0
- package/src/harness/harness-salvage-cli.ts +14 -2
- package/src/index.ts +198 -12
- package/src/input/external-input-queue.ts +34 -9
- package/src/intake-plane/already-built-hint.ts +89 -0
- package/src/knowhow/pack.ts +199 -0
- package/src/light-cli.ts +95 -0
- package/src/llm/route-decision.ts +36 -0
- package/src/llm/tool-loop-steered-rejection.ts +8 -0
- package/src/llm-request-shape.ts +209 -0
- package/src/llm.ts +221 -276
- package/src/loops/budget.ts +95 -0
- package/src/loops/msg-wake.ts +8 -2
- package/src/loops/orchestrator/tick.ts +24 -2
- package/src/loops/orchestrator/traffic.ts +132 -1
- package/src/maturity/feature-maturity.ts +1 -1
- package/src/mss/logging/log-store.ts +4 -5
- package/src/mss/logging/render-categories.ts +5 -0
- package/src/nexus/api/graphs-api.ts +22 -3
- package/src/nexus/api/http-server.ts +1 -1
- package/src/nexus/api/ops-api.ts +12 -0
- package/src/oauth/claude-pty-maturity.ts +66 -0
- package/src/oauth/codex-access-mirror.ts +55 -0
- package/src/oauth/fallback-chain.ts +1 -1
- package/src/onboarding/first-run.ts +5 -3
- package/src/onboarding/non-interactive.ts +64 -13
- package/src/onboarding.ts +10 -2
- package/src/ops/overview-collect.ts +36 -1
- package/src/ops/overview.ts +70 -2
- package/src/pr-tool/census.ts +41 -8
- package/src/pr-tool/inflight-registry.ts +296 -0
- package/src/prompt-library/gpt6-family-addendum.ts +14 -1
- package/src/pty-shell/herdr-agent-report.ts +442 -0
- package/src/pty-shell/pty-control-ipc.ts +5 -5
- package/src/pty-shell/pty-manifest.ts +12 -3
- package/src/pty-shell/pty-write-outcome.ts +24 -6
- package/src/pty-shell/tui-run-state.ts +151 -6
- package/src/release-loop/checklist.ts +79 -5
- package/src/release-loop/feature-store.ts +19 -2
- package/src/release-loop/placement.ts +10 -3
- package/src/release-loop/rehearsal.ts +205 -25
- package/src/release-loop/rubric.ts +16 -2
- package/src/seat-loop/traffic-signal.ts +2 -1
- package/src/self-dev/ask-launch-flow.ts +13 -0
- package/src/self-dev/draft-residue.ts +243 -24
- package/src/self-dev/draft-sweep.ts +52 -3
- package/src/self-dev/graph-journey-nodes.ts +10 -6
- package/src/self-dev/graph-journey-route.ts +60 -6
- package/src/self-dev/orchestrate.ts +79 -3
- package/src/self-dev/run-supervisor.ts +107 -12
- package/src/self-dev/run-types.ts +5 -1
- package/src/self-dev/shard-plan.ts +11 -3
- package/src/self-dev/shard-run.ts +103 -10
- package/src/self-implement/elanous-tui-spawn.ts +14 -0
- package/src/self-implement/follow-up-placement.ts +79 -0
- package/src/self-implement/gate-artifacts.ts +15 -4
- package/src/self-implement/gate-baseline.ts +145 -10
- package/src/self-implement/gate-cli.ts +7 -2
- package/src/self-implement/gate-remote.ts +35 -6
- package/src/self-implement/goal-author-identity.ts +66 -0
- package/src/self-implement/goal-author-preservation-obligation.ts +35 -0
- package/src/self-implement/goal-author.ts +4 -120
- package/src/self-implement/graph-overlay-yaml.ts +17 -2
- package/src/self-implement/graph-unit-flatten.ts +103 -0
- package/src/self-implement/graph-unit-resolver.ts +107 -0
- package/src/self-implement/graph-yaml.ts +151 -1
- package/src/self-implement/headless-elanous-driver.ts +1 -0
- package/src/self-implement/host-regate.ts +36 -4
- package/src/self-implement/knowhow-pack.ts +103 -0
- package/src/self-implement/orchestrator.ts +109 -11
- package/src/self-implement/pod-warm-pool-profile.ts +45 -0
- package/src/self-implement/review-mustfix-class.ts +203 -0
- package/src/self-implement/run-ledger.ts +16 -14
- package/src/self-implement/run-stop.ts +8 -2
- package/src/self-implement/seams.ts +32 -1
- package/src/self-implement/stop-autoheal.ts +25 -1
- package/src/session/chat.ts +27 -0
- package/src/session-runtime/index.ts +22 -267
- package/src/session-runtime/retry-policy.ts +2 -1
- package/src/shell-runner/background-surface.ts +15 -5
- package/src/skills/tools/agent.ts +39 -6
- package/src/skills/tools/list-dir.ts +11 -0
- package/src/skills/tools/schedule-wakeup.ts +457 -0
- package/src/skills/tools/shell.ts +245 -3
- package/src/status/bar.ts +26 -0
- package/src/steward/digest-delivery.ts +118 -0
- package/src/steward/hold-hygiene.ts +120 -0
- package/src/steward/release-day.ts +7 -3
- package/src/steward/triage.ts +47 -4
- package/src/surface/shell-runner-boot.ts +5 -2
- package/src/task-agent/harvest-unit.ts +141 -0
- package/src/task-agent/live-moves.ts +98 -12
- package/src/task-agent/parent-host.ts +93 -3
- package/src/task-agent/postland-card.ts +80 -1
- package/src/task-agent/rejudge-on-head.ts +112 -26
- package/src/task-agent/repair-branch-cas.ts +4 -1
- package/src/task-agent/repair-cycle.ts +16 -3
- package/src/task-agent/run-identity.ts +4 -3
- package/src/task-agent/shadow.ts +12 -2
- package/src/task-agent/task-hand.ts +76 -5
- package/src/task-agent/work-order-build.ts +22 -0
- package/src/task-orchestrator/surfaces/pod-account-broker.ts +39 -3
- package/src/task-orchestrator/surfaces/pod-command-job.ts +67 -12
- package/src/task-orchestrator/surfaces/pod-lease.ts +98 -0
- package/src/task-orchestrator/surfaces/pod-ledger-events.ts +1 -1
- package/src/task-orchestrator/surfaces/pod-lifecycle-stages.ts +86 -8
- package/src/task-orchestrator/surfaces/pod-pool.ts +76 -18
- package/src/task-orchestrator/surfaces/pod-reuse-cleanup.ts +10 -6
- package/src/task-orchestrator/surfaces/pod-source-receive.ts +54 -4
- package/src/task-orchestrator/surfaces/pod-warm-worker-pod.ts +548 -0
- package/src/task-orchestrator/surfaces/pod-warm-worker-provider.ts +389 -0
- package/src/task-orchestrator/surfaces/pod-warm-worker-runner.ts +90 -0
- package/src/task-orchestrator/surfaces/pod-warm-worker-runtime.ts +158 -3
- package/src/task-orchestrator/surfaces/self-implement-pod.ts +230 -43
- package/src/task-orchestrator/surfaces/self-implement.ts +83 -2
- package/src/tool-runtime/truncation-store.ts +4 -0
- package/src/tui/chat/execution-badge.ts +5 -1
- package/src/tui/input-lag-probe.ts +230 -0
- package/src/tui-client/dashboard-session.ts +10 -1
- package/src/tui.ts +4 -0
- package/src/user-config/coercion.ts +36 -0
- package/src/user-config.ts +18 -41
- package/src/ux-sim/scenario.ts +314 -0
- package/src/version/packed-revision.json +1 -1
- package/apps/pwa/out/_next/static/chunks/1034-8b639cee57b8e4a8.js +0 -1
- package/apps/pwa/out/_next/static/chunks/1085-6c2d35526f11f840.js +0 -1
- package/apps/pwa/out/_next/static/chunks/1220.1ff7d5cdc34b1ae5.js +0 -27
- package/apps/pwa/out/_next/static/chunks/1247.5884ec81b39fe2e7.js +0 -287
- package/apps/pwa/out/_next/static/chunks/1302.87681521a7a4661e.js +0 -62
- package/apps/pwa/out/_next/static/chunks/1324-59dae3002413623b.js +0 -1
- package/apps/pwa/out/_next/static/chunks/1343-f40b5870ac1eda5a.js +0 -1
- package/apps/pwa/out/_next/static/chunks/146-b6cd56be11dda017.js +0 -1
- package/apps/pwa/out/_next/static/chunks/1654.32de4b324981a188.js +0 -23
- package/apps/pwa/out/_next/static/chunks/1834-50625904996a8fa8.js +0 -1
- package/apps/pwa/out/_next/static/chunks/1849.1ce38efa6c527d9a.js +0 -149
- package/apps/pwa/out/_next/static/chunks/1913.7cc6fb6055b1ed3f.js +0 -41
- package/apps/pwa/out/_next/static/chunks/2001.6c7e0fd02190886c.js +0 -1
- package/apps/pwa/out/_next/static/chunks/2030.41fae98c7e907304.js +0 -1
- package/apps/pwa/out/_next/static/chunks/2099-08b2f2dfba742c9b.js +0 -1
- package/apps/pwa/out/_next/static/chunks/2134.ecee03a550ee7250.js +0 -1
- package/apps/pwa/out/_next/static/chunks/2236.66061832181cb745.js +0 -1
- package/apps/pwa/out/_next/static/chunks/2422.b0bd272e7020d7e6.js +0 -1
- package/apps/pwa/out/_next/static/chunks/3040.92ff9ffc9f971cb9.js +0 -115
- package/apps/pwa/out/_next/static/chunks/3144.6861096c7b4edef7.js +0 -64
- package/apps/pwa/out/_next/static/chunks/3267c0e6.d34854e7b3984a6e.js +0 -1
- package/apps/pwa/out/_next/static/chunks/3771.e928edf2867d28c0.js +0 -1
- package/apps/pwa/out/_next/static/chunks/3902.e1e71aaac850a045.js +0 -34
- package/apps/pwa/out/_next/static/chunks/4063-03284b5de59965f3.js +0 -1
- package/apps/pwa/out/_next/static/chunks/4111.2bfedbb233ad206b.js +0 -1
- package/apps/pwa/out/_next/static/chunks/4300-c7ec4eeabbb5f3f7.js +0 -1
- package/apps/pwa/out/_next/static/chunks/4483.646d5065199e1b55.js +0 -36
- package/apps/pwa/out/_next/static/chunks/4519.28199ff26b2fd80d.js +0 -1
- package/apps/pwa/out/_next/static/chunks/4581.ef2443578054544f.js +0 -1
- package/apps/pwa/out/_next/static/chunks/4608-8d894e9cbe4f08bf.js +0 -1
- package/apps/pwa/out/_next/static/chunks/4639.ae48a01d1bb50a93.js +0 -286
- package/apps/pwa/out/_next/static/chunks/4739.08742ac668aada67.js +0 -77
- package/apps/pwa/out/_next/static/chunks/4882-16cef71d6a1a32be.js +0 -1
- package/apps/pwa/out/_next/static/chunks/4999.c064a4000c2a9e94.js +0 -79
- package/apps/pwa/out/_next/static/chunks/5260-69f35419bca263e7.js +0 -1
- package/apps/pwa/out/_next/static/chunks/5272.b92d1b72a15c25fe.js +0 -1
- package/apps/pwa/out/_next/static/chunks/5304.04d24756f242a094.js +0 -148
- package/apps/pwa/out/_next/static/chunks/5415-997980f828667736.js +0 -1
- package/apps/pwa/out/_next/static/chunks/5458-16cd7a2b51b74c8c.js +0 -1
- package/apps/pwa/out/_next/static/chunks/5572-42c9084f27ca761e.js +0 -1
- package/apps/pwa/out/_next/static/chunks/5661-80470aac963d9f36.js +0 -1
- package/apps/pwa/out/_next/static/chunks/5723.421338408b5c30c4.js +0 -74
- package/apps/pwa/out/_next/static/chunks/5809.64c3664267c50bce.js +0 -1
- package/apps/pwa/out/_next/static/chunks/6000.64bc21ac8627f2f5.js +0 -94
- package/apps/pwa/out/_next/static/chunks/6013.39459b9c68eabf5f.js +0 -1
- package/apps/pwa/out/_next/static/chunks/607-06466dff012b03ef.js +0 -1
- package/apps/pwa/out/_next/static/chunks/60fb96c9.360b01d8d4927b7b.js +0 -1
- package/apps/pwa/out/_next/static/chunks/6192.a190b989b81e9743.js +0 -1
- package/apps/pwa/out/_next/static/chunks/6323.8672b4817a306928.js +0 -1
- package/apps/pwa/out/_next/static/chunks/6444.7d1fdcb9b09ae71c.js +0 -1
- package/apps/pwa/out/_next/static/chunks/6517.4147878ac06d584d.js +0 -90
- package/apps/pwa/out/_next/static/chunks/6532.e34302010b2f0b68.js +0 -32
- package/apps/pwa/out/_next/static/chunks/6544cb48.a87fe20ddf137be2.js +0 -1
- package/apps/pwa/out/_next/static/chunks/6546.74bc4ed82f19016d.js +0 -104
- package/apps/pwa/out/_next/static/chunks/6684-e7523ce7c2fad075.js +0 -1
- package/apps/pwa/out/_next/static/chunks/6726.ebdc82feb161431e.js +0 -1
- package/apps/pwa/out/_next/static/chunks/6739.00fb6f892e5e392b.js +0 -1
- package/apps/pwa/out/_next/static/chunks/6745.934c4921bf15513a.js +0 -1
- package/apps/pwa/out/_next/static/chunks/6767.ea607cf0c20a25af.js +0 -24
- package/apps/pwa/out/_next/static/chunks/6843.67bfd020da0926c5.js +0 -93
- package/apps/pwa/out/_next/static/chunks/6948.1062d4594652b5bf.js +0 -1
- package/apps/pwa/out/_next/static/chunks/7138-eaf841fc1dc03463.js +0 -1
- package/apps/pwa/out/_next/static/chunks/7174-cda29ee13d7790e7.js +0 -1
- package/apps/pwa/out/_next/static/chunks/7304-3c07583f4e405f4f.js +0 -1
- package/apps/pwa/out/_next/static/chunks/7371.80c05c653b08e907.js +0 -1
- package/apps/pwa/out/_next/static/chunks/7391.ebae168025c91b6a.js +0 -1
- package/apps/pwa/out/_next/static/chunks/7557.e325503a090a4310.js +0 -8
- package/apps/pwa/out/_next/static/chunks/7569-9ce9432c7f10989f.js +0 -1
- package/apps/pwa/out/_next/static/chunks/7886-55854585fadeded1.js +0 -1
- package/apps/pwa/out/_next/static/chunks/7947-d0759430f8042240.js +0 -1
- package/apps/pwa/out/_next/static/chunks/8018.a32663f04a6fc5f9.js +0 -1
- package/apps/pwa/out/_next/static/chunks/8097-92f87bd108322f66.js +0 -1
- package/apps/pwa/out/_next/static/chunks/8215-1661812b6e9ad71f.js +0 -1
- package/apps/pwa/out/_next/static/chunks/8260-19c921a51ca8ec3e.js +0 -1
- package/apps/pwa/out/_next/static/chunks/8440.3a5cf5c85aa76db8.js +0 -1
- package/apps/pwa/out/_next/static/chunks/8519-4599be2249161e68.js +0 -1
- package/apps/pwa/out/_next/static/chunks/8547.b028b90c5c01ace6.js +0 -1
- package/apps/pwa/out/_next/static/chunks/8587-cbe02a953a7f4990.js +0 -1
- package/apps/pwa/out/_next/static/chunks/877-2b977259c4b15655.js +0 -1
- package/apps/pwa/out/_next/static/chunks/9019-0a4b40c50c7314fb.js +0 -1
- package/apps/pwa/out/_next/static/chunks/9138.b6e80031afb1d973.js +0 -1
- package/apps/pwa/out/_next/static/chunks/9188-d36e4fc869ddc166.js +0 -1
- package/apps/pwa/out/_next/static/chunks/9230.44f5039e796e4ab4.js +0 -1
- package/apps/pwa/out/_next/static/chunks/9279-d28c5b7754d010ae.js +0 -1
- package/apps/pwa/out/_next/static/chunks/939.336acce73e98482c.js +0 -1
- package/apps/pwa/out/_next/static/chunks/9610.c07cce4bfcc14ed7.js +0 -1
- package/apps/pwa/out/_next/static/chunks/9667-ce78c2ce91050ff9.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/_not-found/page-339fabb3499da0e1.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/approvals/page-bf3634a117322df7.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/autopilot/page-3535a4a69f1fafaa.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/board/page-b9f51447f757fbf2.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/botlab/page-2ebb8fd59b9461f9.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/bots/page-a2fc4e49a4fa4ba8.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/ceo/page-5a503541353e60a8.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/chat/page-6025101384e361a5.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/consult/page-f4b630cc8b5273cd.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/control/page-a645f00a06483e9a.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/decisions/page-61ac22cbab1ee4ec.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/design-check/page-e9bab7413b028b28.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/editor/page-c992eafe028b642e.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/exec/page-e547e6ce55f1fb33.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/field/page-d27e1b9850fd54bf.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/healthz/route-339fabb3499da0e1.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/inside/page-805ac2e137b7a121.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/intake/page-0fec29c7ba01894b.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/layout-339a07410cd6f36b.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/live/page-349f2752d8cd37ad.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/live-run/page-d5c6dcf31c25cecc.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/loops/page-2fd93ed8c9f16580.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/market/page-9b564dbff0fefc35.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/missions/[id]/page-62f4475d3c38fb9b.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/morning/page-814ba51385225776.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/not-found-397d479626e5a459.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/observatory/page-af1bba4e3251b728.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/ops/checklist/page-3ad3be5e7d3fdce9.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/ops/release/page-f219ccdbc0bf27df.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/ops/seats/page-4da93ad35d4a8d28.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/outputs/page-456666766e5ce6fc.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/page-7404e377e8adb8c5.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/reflection/page-14456240ed2a36ad.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/scheduler/page-3a658d5fa6d16a25.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/sessions/page-0157de6e85f8bb6b.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/settings/page-841d73d4ac44ed49.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/setup/done/page-6f43a3d1146e6377.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/setup/layout-339fabb3499da0e1.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/setup/page-521ee23ac8c0abfa.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/share/page-a9992ee285efaa83.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/showroom/page-3d48e85fa89ec04f.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/tasks/page-d2ced71132fac9b2.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/term/page-f08358bdf251adb9.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/today/page-233c71cd5f68f0d7.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/trace/page-70151d78de2f375e.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/vault/page-dcac33a3e2cb72c0.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/workflows/chat-ui/page-149dc1caba411bb9.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/workflows/page-0448145ccd5c45c1.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/workspace/page-9cb0c444903da65d.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/worktrees/page-17e504c396e0e389.js +0 -1
- package/apps/pwa/out/_next/static/chunks/e5012ffe.f727e23c231f4342.js +0 -122
- package/apps/pwa/out/_next/static/chunks/ea695e3c-1f1d70d740cf3031.js +0 -1
- package/apps/pwa/out/_next/static/chunks/framework-906af9bd029e166c.js +0 -1
- package/apps/pwa/out/_next/static/chunks/main-a24847f9f684d469.js +0 -1
- package/apps/pwa/out/_next/static/chunks/main-app-7bdcd8aa7c8397d3.js +0 -1
- package/apps/pwa/out/_next/static/chunks/pages/_app-6ba46a5066fc226d.js +0 -1
- package/apps/pwa/out/_next/static/chunks/pages/_error-a8dc6d07591f2a25.js +0 -1
- package/apps/pwa/out/_next/static/chunks/webpack-f13df28c15c55eee.js +0 -1
- package/apps/pwa/out/_next/static/css/3f5fc6f96e2cf7b2.css +0 -1
- package/src/cli/g6a-registration-probe.ts +0 -16
- /package/apps/pwa/out/_next/static/{LSXfY0u9QtfDbejY0Ukf_ → L04y73dlwKeTW-GetaTF3}/_ssgManifest.js +0 -0
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { buildGitSnapshot } from '../git-fs/index.js';
|
|
2
2
|
import { debug } from '../debug/log.js';
|
|
3
|
-
import { getUserConfig } from '../user-config.js';
|
|
4
3
|
import { resolve } from 'node:path';
|
|
5
4
|
import type { ModelFamily } from '../models/prompts.js';
|
|
6
5
|
import type { InputSourceKind, InputSourceRef } from '../input/input-source-kind.js';
|
|
@@ -411,46 +410,6 @@ const TOOL_NAME_TO_FAMILY = new Map<string, SessionToolFamilyRule>(
|
|
|
411
410
|
SESSION_TOOL_FAMILY_RULES.flatMap(rule => rule.names.map(name => [name, rule] as const)),
|
|
412
411
|
);
|
|
413
412
|
|
|
414
|
-
/** Names belonging to the runtime-debug family — used by the
|
|
415
|
-
* exposeFullLlmTools=false post-filter to know which tools to drop. */
|
|
416
|
-
const RUNTIME_DEBUG_FAMILY_NAMES: ReadonlySet<string> = new Set(
|
|
417
|
-
SESSION_TOOL_FAMILY_RULES.find(r => r.id === 'runtime-debug')?.names ?? [],
|
|
418
|
-
);
|
|
419
|
-
|
|
420
|
-
/** Read-only inspection tools kept alive when minimal mode is on.
|
|
421
|
-
* Roughly half of the 9-entry runtime-debug family — picked by
|
|
422
|
-
* chatlog-triage value and gated to read-only-and-safe operations.
|
|
423
|
-
* Excluded by design (LLM-mutating or UI-stealing):
|
|
424
|
-
* debug_setLevel — would let the LLM crank logs to keytrace,
|
|
425
|
-
* flooding the file sink during a triage.
|
|
426
|
-
* debug_openView — server-side cousin of the user-pressed
|
|
427
|
-
* Ctrl+digit shortcut that already annoyed
|
|
428
|
-
* the user (incident 2026-05-04).
|
|
429
|
-
* debug_selectEvent — UI-cursor mutation; steals focus from the
|
|
430
|
-
* human reviewer.
|
|
431
|
-
* input_history_list — redundant with input_history_search.
|
|
432
|
-
* Leaves the LLM with enough surface to triage chatlogs without
|
|
433
|
-
* the surface area that lets it disrupt the live session. */
|
|
434
|
-
const RUNTIME_DEBUG_MINIMAL_KEEP: ReadonlySet<string> = new Set([
|
|
435
|
-
'debug_getLastLlm', // last request/response pair
|
|
436
|
-
'debug_getState', // event-buffer + stats dump
|
|
437
|
-
'debug_getCallStack', // call-path triage
|
|
438
|
-
'debug_getAgentState', // sub-agent queue inspection
|
|
439
|
-
'input_history_search', // self-lookup of prior user inputs
|
|
440
|
-
]);
|
|
441
|
-
|
|
442
|
-
/** Drop runtime-debug tools (except the single essential one) when
|
|
443
|
-
* the user has set debug.exposeFullLlmTools=false. Other host tool
|
|
444
|
-
* families pass through untouched. Called at the tail of every host
|
|
445
|
-
* tool resolver so the gate applies uniformly across surfaces. */
|
|
446
|
-
function applyDebugMinimalFilter<T extends { name: string }>(tools: T[]): T[] {
|
|
447
|
-
if (getUserConfig().debug.exposeFullLlmTools !== false) return tools;
|
|
448
|
-
return tools.filter(t => {
|
|
449
|
-
if (!RUNTIME_DEBUG_FAMILY_NAMES.has(t.name)) return true;
|
|
450
|
-
return RUNTIME_DEBUG_MINIMAL_KEEP.has(t.name);
|
|
451
|
-
});
|
|
452
|
-
}
|
|
453
|
-
|
|
454
413
|
interface SessionNativeToolRule {
|
|
455
414
|
id: string;
|
|
456
415
|
description: string;
|
|
@@ -650,19 +609,6 @@ const HOST_TOOL_FAMILY_RULE_MAP = new Map<string, SessionToolFamilyRule>(
|
|
|
650
609
|
SESSION_TOOL_FAMILY_RULES.map(rule => [rule.id, rule] as const),
|
|
651
610
|
);
|
|
652
611
|
|
|
653
|
-
function isCodeGroundingModelSurfaceEnabled(): boolean {
|
|
654
|
-
const config = getUserConfig();
|
|
655
|
-
const configured = (config.raw.tools as Record<string, unknown> | undefined)?.nativeStructure;
|
|
656
|
-
const source = configured
|
|
657
|
-
&& typeof configured === 'object'
|
|
658
|
-
&& typeof (configured as Record<string, unknown>).enabled === 'boolean'
|
|
659
|
-
? 'config'
|
|
660
|
-
: 'default';
|
|
661
|
-
const enabled = config.tools.nativeStructure.enabled === true;
|
|
662
|
-
debug.log('tools.surface', 'code-grounding-exposure', { enabled, source });
|
|
663
|
-
return enabled;
|
|
664
|
-
}
|
|
665
|
-
|
|
666
612
|
const SESSION_RUNTIME_TOOL_FAMILY_RULES: SessionRuntimeToolFamilyRule[] = [
|
|
667
613
|
{
|
|
668
614
|
id: 'fleet-core',
|
|
@@ -979,8 +925,12 @@ function isSessionSurfaceId(value: string | null | undefined): value is SessionS
|
|
|
979
925
|
|
|
980
926
|
export function buildSessionRuntimeSystemMessages(opts: {
|
|
981
927
|
cwd: string;
|
|
928
|
+
/** Serve a snapshot up to this old and rebuild it asynchronously (TUI turn path). */
|
|
929
|
+
gitSnapshotStaleMs?: number;
|
|
982
930
|
}): LLMMessage[] {
|
|
983
|
-
const snapshot = buildGitSnapshot(opts.cwd
|
|
931
|
+
const snapshot = buildGitSnapshot(opts.cwd, opts.gitSnapshotStaleMs !== undefined
|
|
932
|
+
? { staleWhileRevalidateMs: opts.gitSnapshotStaleMs }
|
|
933
|
+
: {});
|
|
984
934
|
return snapshot
|
|
985
935
|
? [{ role: 'system', content: `## Git Snapshot\n\n${snapshot}` }]
|
|
986
936
|
: [];
|
|
@@ -1694,45 +1644,6 @@ export function buildSessionSurfaceManualSections(
|
|
|
1694
1644
|
|
|
1695
1645
|
return sections;
|
|
1696
1646
|
}
|
|
1697
|
-
export function resolveDynamicSessionHostTools(opts: {
|
|
1698
|
-
userText: string;
|
|
1699
|
-
hostTools: readonly LLMToolDef[];
|
|
1700
|
-
toolAvailability?: Readonly<Record<string, boolean>>;
|
|
1701
|
-
defaultFamilyIds?: readonly string[];
|
|
1702
|
-
surfaceId?: SessionSurfaceId;
|
|
1703
|
-
}): LLMToolDef[] {
|
|
1704
|
-
const text = opts.userText.toLowerCase();
|
|
1705
|
-
const available = new Map(opts.hostTools.map(tool => [tool.name, tool] as const));
|
|
1706
|
-
const selected = new Set<string>();
|
|
1707
|
-
|
|
1708
|
-
for (const familyId of opts.defaultFamilyIds ?? []) {
|
|
1709
|
-
for (const rule of SESSION_TOOL_FAMILY_RULES) {
|
|
1710
|
-
if (rule.id !== familyId) continue;
|
|
1711
|
-
for (const name of rule.names) {
|
|
1712
|
-
if (available.has(name)) selected.add(name);
|
|
1713
|
-
}
|
|
1714
|
-
}
|
|
1715
|
-
}
|
|
1716
|
-
|
|
1717
|
-
for (const tool of opts.hostTools) {
|
|
1718
|
-
if (mentionsTool(text, tool.name)) selected.add(tool.name);
|
|
1719
|
-
}
|
|
1720
|
-
for (const rule of SESSION_TOOL_FAMILY_RULES) {
|
|
1721
|
-
const surfaceMatch = matchesSurfaceAwareFamilyIntent(rule.id, text, opts.surfaceId);
|
|
1722
|
-
if (!rule.match(text) && !surfaceMatch) continue;
|
|
1723
|
-
for (const name of rule.names) {
|
|
1724
|
-
if (available.has(name)) selected.add(name);
|
|
1725
|
-
}
|
|
1726
|
-
}
|
|
1727
|
-
|
|
1728
|
-
return applyDebugMinimalFilter(
|
|
1729
|
-
[...selected]
|
|
1730
|
-
.filter(name => isToolAvailable(name, opts.toolAvailability))
|
|
1731
|
-
.map(name => available.get(name))
|
|
1732
|
-
.filter((tool): tool is LLMToolDef => !!tool),
|
|
1733
|
-
);
|
|
1734
|
-
}
|
|
1735
|
-
|
|
1736
1647
|
const ESSENTIAL_NATIVE_RULE_IDS = [
|
|
1737
1648
|
'code-read', 'code-grep', 'code-glob', 'code-list-dir', 'code-edit', 'code-write',
|
|
1738
1649
|
// Keep dev-harness in the assembly candidate set so the catalog policy below is the single model-exposure authority.
|
|
@@ -1740,7 +1651,8 @@ const ESSENTIAL_NATIVE_RULE_IDS = [
|
|
|
1740
1651
|
] as const;
|
|
1741
1652
|
const ESSENTIAL_HOST_FAMILY_IDS = ['self-ops', 'release-read'] as const;
|
|
1742
1653
|
// Keep this TUI essential addition out of the shared control/agent self-ops family.
|
|
1743
|
-
|
|
1654
|
+
// ScheduleWakeup (H5) is a dashboard-only host tool — present only when the TUI registered it.
|
|
1655
|
+
const ESSENTIAL_HOST_EXTRA_NAMES = ['logs_query', 'ScheduleWakeup'] as const;
|
|
1744
1656
|
const ESSENTIAL_RUNTIME_FAMILY_IDS = ['bash', 'run-shell', 'ops-ledger', 'pty-shell', 'run-tests', 'elanous_skills_list', 'skill_exec', 'code-grounding'] as const;
|
|
1745
1657
|
const ESSENTIAL_OPTIONAL_TOOL_NAMES = [
|
|
1746
1658
|
'GetDashboardState',
|
|
@@ -1802,76 +1714,35 @@ export function buildSessionRuntimeToolSpecs(opts: {
|
|
|
1802
1714
|
userText: string;
|
|
1803
1715
|
hostTools: readonly LLMToolDef[];
|
|
1804
1716
|
runtimeTools?: readonly ToolRuntime<Record<string, unknown>, ToolRunResult>[];
|
|
1805
|
-
pluginTools?: readonly LLMToolDef[];
|
|
1806
|
-
schedulerTools?: readonly LLMToolSpec[];
|
|
1807
1717
|
optionalTools?: readonly LLMToolSpec[];
|
|
1808
1718
|
toolAvailability?: Readonly<Record<string, boolean>>;
|
|
1809
1719
|
surface?: SessionSurfaceProfile;
|
|
1810
1720
|
preferredSurfaceId?: SessionSurfaceId;
|
|
1811
1721
|
controlMode?: boolean;
|
|
1812
|
-
/** TUI --rich preserves the legacy userText-driven surface catalog. */
|
|
1813
|
-
rich?: boolean;
|
|
1814
1722
|
}): LLMToolSpec[] {
|
|
1723
|
+
// TUI-DIET-D1-TAIL — the legacy userText-driven catalog (`rich !== false`) is gone;
|
|
1724
|
+
// every caller already passed rich=false, so the essential catalog is the only path.
|
|
1725
|
+
// The surface profile is still resolved for the always-on observation below.
|
|
1815
1726
|
const surface = opts.surface ?? resolveSessionSurfaceProfile({
|
|
1816
1727
|
userText: opts.userText,
|
|
1817
1728
|
preferredSurfaceId: opts.preferredSurfaceId,
|
|
1818
1729
|
controlMode: opts.controlMode,
|
|
1819
1730
|
});
|
|
1820
|
-
const
|
|
1821
|
-
userText: opts.userText,
|
|
1731
|
+
const essentialSpecs = buildEssentialSessionRuntimeToolSpecs({
|
|
1822
1732
|
hostTools: opts.hostTools,
|
|
1823
|
-
toolAvailability: opts.toolAvailability,
|
|
1824
|
-
defaultFamilyIds: surface.defaultHostFamilyIds,
|
|
1825
|
-
surfaceId: surface.id,
|
|
1826
|
-
});
|
|
1827
|
-
const dynamicRuntimeTools = resolveDynamicSessionRuntimeToolSpecs({
|
|
1828
|
-
userText: opts.userText,
|
|
1829
1733
|
runtimeTools: opts.runtimeTools ?? [],
|
|
1830
|
-
|
|
1831
|
-
surfaceId: surface.id,
|
|
1832
|
-
});
|
|
1833
|
-
const dynamicNativeTools = resolveDynamicSessionNativeToolSpecs({
|
|
1834
|
-
userText: opts.userText,
|
|
1734
|
+
optionalTools: opts.optionalTools ?? [],
|
|
1835
1735
|
toolAvailability: opts.toolAvailability,
|
|
1836
|
-
defaultFamilyIds: surface.defaultNativeFamilyIds,
|
|
1837
|
-
surfaceId: surface.id,
|
|
1838
1736
|
});
|
|
1839
|
-
const
|
|
1840
|
-
const
|
|
1841
|
-
|
|
1842
|
-
|
|
1843
|
-
|
|
1844
|
-
|
|
1845
|
-
|
|
1846
|
-
|
|
1847
|
-
|
|
1848
|
-
// session" while Bash was actually exposed at position 7+).
|
|
1849
|
-
const finalSpecs: LLMToolSpec[] = opts.rich === false
|
|
1850
|
-
? (() => {
|
|
1851
|
-
const essentialSpecs = buildEssentialSessionRuntimeToolSpecs({
|
|
1852
|
-
hostTools: opts.hostTools,
|
|
1853
|
-
runtimeTools: opts.runtimeTools ?? [],
|
|
1854
|
-
optionalTools: opts.optionalTools ?? [],
|
|
1855
|
-
toolAvailability: opts.toolAvailability,
|
|
1856
|
-
});
|
|
1857
|
-
if (!hasDevHarnessIntent(opts.userText)) return essentialSpecs;
|
|
1858
|
-
const droppedNames = new Set(['Edit', 'Write']);
|
|
1859
|
-
const filteredSpecs = essentialSpecs.filter(spec => !droppedNames.has(spec.name));
|
|
1860
|
-
if (filteredSpecs.length !== essentialSpecs.length) {
|
|
1861
|
-
debug.log('session-runtime.tools', 'harness-phrase-write-tools-dropped', {
|
|
1862
|
-
dropped: ['Edit', 'Write'],
|
|
1863
|
-
});
|
|
1864
|
-
}
|
|
1865
|
-
return filteredSpecs;
|
|
1866
|
-
})()
|
|
1867
|
-
: [
|
|
1868
|
-
...dynamicNativeTools,
|
|
1869
|
-
...hostSpecs,
|
|
1870
|
-
...dynamicRuntimeTools,
|
|
1871
|
-
...pluginSpecs,
|
|
1872
|
-
...schedulerSpecs,
|
|
1873
|
-
...optionalSpecs,
|
|
1874
|
-
];
|
|
1737
|
+
const droppedNames = new Set(['Edit', 'Write']);
|
|
1738
|
+
const finalSpecs: LLMToolSpec[] = hasDevHarnessIntent(opts.userText)
|
|
1739
|
+
? essentialSpecs.filter(spec => !droppedNames.has(spec.name))
|
|
1740
|
+
: essentialSpecs;
|
|
1741
|
+
if (finalSpecs.length !== essentialSpecs.length) {
|
|
1742
|
+
debug.log('session-runtime.tools', 'harness-phrase-write-tools-dropped', {
|
|
1743
|
+
dropped: ['Edit', 'Write'],
|
|
1744
|
+
});
|
|
1745
|
+
}
|
|
1875
1746
|
// Forensic — final tool list returned to streamLLMWithTools. Lets
|
|
1876
1747
|
// us diff TUI vs JSON-test (`elanous repro`) tool exposure when codex
|
|
1877
1748
|
// behavior diverges. Counts AND names so we can spot per-source
|
|
@@ -1903,18 +1774,10 @@ export function buildSessionRuntimeToolSpecs(opts: {
|
|
|
1903
1774
|
// diag-gated (분석 레벨) 유지 — 매턴 detail 이라 always-on 이면 노이즈 독.
|
|
1904
1775
|
// 노출 tool 셋을 보려면 `/debug diag` 후 elanous logs --category llm.tool-
|
|
1905
1776
|
// exposure. always-on 은 이상탐지(surface tool 0개·core 누락) 전용 — 루틴
|
|
1906
|
-
// per-turn 노출은 diag. (2026-07-17 규율: over-log
|
|
1777
|
+
// per-turn 노출은 diag. (2026-07-17 규율: over-log 되돌림.)
|
|
1907
1778
|
if (debug.enabled) {
|
|
1908
1779
|
debug.log('llm.tool-exposure', 'session-runtime-tool-specs.return', {
|
|
1909
1780
|
total: finalSpecs.length,
|
|
1910
|
-
counts: {
|
|
1911
|
-
host: hostSpecs.length,
|
|
1912
|
-
runtime: dynamicRuntimeTools.length,
|
|
1913
|
-
native: dynamicNativeTools.length,
|
|
1914
|
-
plugin: pluginSpecs.length,
|
|
1915
|
-
scheduler: schedulerSpecs.length,
|
|
1916
|
-
optional: optionalSpecs.length,
|
|
1917
|
-
},
|
|
1918
1781
|
names: finalSpecs.map(s => s.name),
|
|
1919
1782
|
surfaceId: surface.id,
|
|
1920
1783
|
userTextChars: opts.userText.length,
|
|
@@ -1923,76 +1786,6 @@ export function buildSessionRuntimeToolSpecs(opts: {
|
|
|
1923
1786
|
return finalSpecs;
|
|
1924
1787
|
}
|
|
1925
1788
|
|
|
1926
|
-
function resolveDynamicSessionRuntimeToolSpecs(opts: {
|
|
1927
|
-
userText: string;
|
|
1928
|
-
runtimeTools: readonly ToolRuntime<Record<string, unknown>, ToolRunResult>[];
|
|
1929
|
-
defaultFamilyIds?: readonly string[];
|
|
1930
|
-
surfaceId?: SessionSurfaceId;
|
|
1931
|
-
}): LLMToolSpec[] {
|
|
1932
|
-
const text = opts.userText.toLowerCase();
|
|
1933
|
-
const available = new Map(opts.runtimeTools.map(tool => [tool.id, tool] as const));
|
|
1934
|
-
const selected = new Set<string>();
|
|
1935
|
-
|
|
1936
|
-
// Pass 0 — T1 world-I/O substrate (RFC §3 · P2 상시화). Shell/PTY
|
|
1937
|
-
// execution is domain-independent substrate: a coding agent needs to
|
|
1938
|
-
// run what it builds on EVERY surface (research cross-check, ops
|
|
1939
|
-
// triage, control), not only the coding surfaces. Mirrors the native
|
|
1940
|
-
// 6-core Pass-0. Subject to availability — a surface that doesn't wire
|
|
1941
|
-
// the shell runtimes (`available.has` false) simply skips them, so no
|
|
1942
|
-
// phantom tools appear. Trade/financial dispatch is unaffected: these
|
|
1943
|
-
// are exposure only; execution safety stays in bash sandbox / PtyShell
|
|
1944
|
-
// approval (shell.allowDashboardPty) gates.
|
|
1945
|
-
for (const familyId of CORE_RUNTIME_FAMILY_IDS) {
|
|
1946
|
-
const rule = RUNTIME_TOOL_FAMILY_RULE_MAP.get(familyId);
|
|
1947
|
-
if (!rule) continue;
|
|
1948
|
-
for (const name of rule.names) {
|
|
1949
|
-
if (available.has(name)) selected.add(name);
|
|
1950
|
-
}
|
|
1951
|
-
}
|
|
1952
|
-
|
|
1953
|
-
for (const familyId of opts.defaultFamilyIds ?? []) {
|
|
1954
|
-
const rule = RUNTIME_TOOL_FAMILY_RULE_MAP.get(familyId);
|
|
1955
|
-
if (!rule) continue;
|
|
1956
|
-
// code-grounding belongs to coding defaults but remains opt-in to avoid carrying its spec on every coding turn.
|
|
1957
|
-
// Its rule intentionally never dynamically matches: only coding profiles list it as a default family.
|
|
1958
|
-
if (rule.id === 'code-grounding' && !isCodeGroundingModelSurfaceEnabled()) continue;
|
|
1959
|
-
for (const name of rule.names) {
|
|
1960
|
-
if (available.has(name)) selected.add(name);
|
|
1961
|
-
}
|
|
1962
|
-
}
|
|
1963
|
-
|
|
1964
|
-
for (const tool of opts.runtimeTools) {
|
|
1965
|
-
if (mentionsTool(text, tool.id) || mentionsTool(text, tool.spec.name)) {
|
|
1966
|
-
selected.add(tool.id);
|
|
1967
|
-
}
|
|
1968
|
-
}
|
|
1969
|
-
|
|
1970
|
-
for (const rule of SESSION_RUNTIME_TOOL_FAMILY_RULES) {
|
|
1971
|
-
const surfaceMatch = matchesSurfaceAwareRuntimeIntent(rule.id, text, opts.surfaceId);
|
|
1972
|
-
if (!rule.match(text) && !surfaceMatch) continue;
|
|
1973
|
-
for (const name of rule.names) {
|
|
1974
|
-
if (available.has(name)) selected.add(name);
|
|
1975
|
-
}
|
|
1976
|
-
}
|
|
1977
|
-
|
|
1978
|
-
const specs = [...selected]
|
|
1979
|
-
.map(name => available.get(name))
|
|
1980
|
-
.filter((tool): tool is ToolRuntime<Record<string, unknown>, ToolRunResult> => !!tool)
|
|
1981
|
-
.map(tool => tool.spec);
|
|
1982
|
-
// 관측 보강(2026-07-17) — native.resolve 미러. runtime 축(Bash·RunShell 등)이
|
|
1983
|
-
// 어느 surface/family 로 노출됐는지 elanous logs --category llm.tool-exposure 로
|
|
1984
|
-
// 조회 가능하게. runtime 축 로깅이 없어 "Bash 노출됐나" 를 로그로 못 봤던 갭.
|
|
1985
|
-
if (debug.enabled) {
|
|
1986
|
-
debug.log('llm.tool-exposure', 'runtime.resolve', {
|
|
1987
|
-
surfaceId: opts.surfaceId ?? null,
|
|
1988
|
-
defaultFamilyIds: [...(opts.defaultFamilyIds ?? [])],
|
|
1989
|
-
availableCount: available.size,
|
|
1990
|
-
selectedNames: specs.map(s => s.name),
|
|
1991
|
-
});
|
|
1992
|
-
}
|
|
1993
|
-
return specs;
|
|
1994
|
-
}
|
|
1995
|
-
|
|
1996
1789
|
/** Six core file-IO tools that survive on EVERY surface regardless
|
|
1997
1790
|
* of the surface's `defaultNativeFamilyIds`. User-stated invariant
|
|
1998
1791
|
* (2026-05-04): "the 6 core tools must stay alive even in basic
|
|
@@ -2011,19 +1804,6 @@ const CORE_NATIVE_FAMILY_IDS: readonly string[] = [
|
|
|
2011
1804
|
'code-write',
|
|
2012
1805
|
];
|
|
2013
1806
|
|
|
2014
|
-
/** T1 world-I/O substrate on the RUNTIME axis (RFC §3 · P2 상시화) —
|
|
2015
|
-
* shell + interactive PTY execution that survives on EVERY surface,
|
|
2016
|
-
* regardless of the surface's `defaultRuntimeFamilyIds`. Domain-
|
|
2017
|
-
* independent: a coding agent must run what it builds on the research /
|
|
2018
|
-
* control / ops surfaces too, not only the coding surfaces. The
|
|
2019
|
-
* symmetric counterpart to `CORE_NATIVE_FAMILY_IDS`. Availability-gated
|
|
2020
|
-
* (a surface that doesn't wire these runtimes just skips them). */
|
|
2021
|
-
const CORE_RUNTIME_FAMILY_IDS: readonly string[] = [
|
|
2022
|
-
'bash',
|
|
2023
|
-
'run-shell',
|
|
2024
|
-
'pty-shell',
|
|
2025
|
-
];
|
|
2026
|
-
|
|
2027
1807
|
export function resolveDynamicSessionNativeToolSpecs(opts: {
|
|
2028
1808
|
userText: string;
|
|
2029
1809
|
toolAvailability?: Readonly<Record<string, boolean>>;
|
|
@@ -2263,13 +2043,6 @@ function toSpec(tool: LLMToolDef): LLMToolSpec {
|
|
|
2263
2043
|
};
|
|
2264
2044
|
}
|
|
2265
2045
|
|
|
2266
|
-
function mentionsTool(text: string, toolName: string): boolean {
|
|
2267
|
-
const normalized = toolName.toLowerCase();
|
|
2268
|
-
if (text.includes(normalized)) return true;
|
|
2269
|
-
const humanized = normalized.replace(/[_]/g, ' ');
|
|
2270
|
-
return humanized !== normalized && text.includes(humanized);
|
|
2271
|
-
}
|
|
2272
|
-
|
|
2273
2046
|
function hasAny(text: string, needles: readonly string[]): boolean {
|
|
2274
2047
|
return needles.some(needle => text.includes(needle));
|
|
2275
2048
|
}
|
|
@@ -2804,15 +2577,6 @@ function hasOpsUiIntent(text: string): boolean {
|
|
|
2804
2577
|
return matchesIntentLexicon(text, OPS_UI_INTENT_TERMS);
|
|
2805
2578
|
}
|
|
2806
2579
|
|
|
2807
|
-
function matchesSurfaceAwareFamilyIntent(
|
|
2808
|
-
familyId: string,
|
|
2809
|
-
text: string,
|
|
2810
|
-
surfaceId?: SessionSurfaceId,
|
|
2811
|
-
): boolean {
|
|
2812
|
-
if (!surfaceId) return false;
|
|
2813
|
-
return SURFACE_AWARE_POLICIES[surfaceId]?.hostFamilyMatchers?.[familyId]?.(text) ?? false;
|
|
2814
|
-
}
|
|
2815
|
-
|
|
2816
2580
|
function matchesSurfaceAwareNativeIntent(
|
|
2817
2581
|
familyId: string,
|
|
2818
2582
|
text: string,
|
|
@@ -2822,15 +2586,6 @@ function matchesSurfaceAwareNativeIntent(
|
|
|
2822
2586
|
return SURFACE_AWARE_POLICIES[surfaceId]?.nativeFamilyMatchers?.[familyId]?.(text) ?? false;
|
|
2823
2587
|
}
|
|
2824
2588
|
|
|
2825
|
-
function matchesSurfaceAwareRuntimeIntent(
|
|
2826
|
-
familyId: string,
|
|
2827
|
-
text: string,
|
|
2828
|
-
surfaceId?: SessionSurfaceId,
|
|
2829
|
-
): boolean {
|
|
2830
|
-
if (!surfaceId) return false;
|
|
2831
|
-
return SURFACE_AWARE_POLICIES[surfaceId]?.runtimeFamilyMatchers?.[familyId]?.(text) ?? false;
|
|
2832
|
-
}
|
|
2833
|
-
|
|
2834
2589
|
function isToolAvailable(
|
|
2835
2590
|
name: string,
|
|
2836
2591
|
overrides?: Readonly<Record<string, boolean>>,
|
|
@@ -226,7 +226,8 @@ export function providerNamesFromFallbackChain(chain: readonly string[]): string
|
|
|
226
226
|
const seen = new Set<string>();
|
|
227
227
|
for (const step of chain) {
|
|
228
228
|
// `codex-credits`(체인 마지막 칸 · 크레딧)도 provider 는 openai-codex 다 — 이미 앞에 있으면 중복이라 빠진다.
|
|
229
|
-
const name = step === 'grok' ? 'grok' : step === '
|
|
229
|
+
const name = step === 'grok' ? 'grok' : step === 'zai' ? 'glm'
|
|
230
|
+
: step === 'codex-rotate' || step === 'codex-credits' ? 'openai-codex' : undefined;
|
|
230
231
|
if (!name || seen.has(name)) continue;
|
|
231
232
|
seen.add(name);
|
|
232
233
|
out.push(name);
|
|
@@ -51,6 +51,12 @@ export interface BgRollup {
|
|
|
51
51
|
finished: number;
|
|
52
52
|
/** Total entries (running + backgrounded + finished). */
|
|
53
53
|
total: number;
|
|
54
|
+
/** TUI-BG-JOB-VISIBILITY (#71) — live handles that outlive the turn:
|
|
55
|
+
* `mode === 'bg'` handles still running ⊕ any handle flipped to
|
|
56
|
+
* 'backgrounded'. Inline/foreground runs are excluded (they end with
|
|
57
|
+
* the turn and already show as `running`). Feeds the status-bar
|
|
58
|
+
* `⧗ 백그라운드 N` segment. */
|
|
59
|
+
background: number;
|
|
54
60
|
}
|
|
55
61
|
|
|
56
62
|
export interface BackgroundSurfaceOpts {
|
|
@@ -200,13 +206,17 @@ function buildRollup(
|
|
|
200
206
|
rows: Map<string, TrackedRow>,
|
|
201
207
|
now: () => number,
|
|
202
208
|
): BgRollup {
|
|
203
|
-
let running = 0, backgrounded = 0, finished = 0;
|
|
209
|
+
let running = 0, backgrounded = 0, finished = 0, background = 0;
|
|
204
210
|
const entries: BgEntry[] = [];
|
|
205
211
|
for (const row of rows.values()) {
|
|
206
212
|
entries.push(entryOf(row, now));
|
|
207
|
-
if (row.status === 'running')
|
|
208
|
-
|
|
209
|
-
|
|
213
|
+
if (row.status === 'running') {
|
|
214
|
+
running++;
|
|
215
|
+
if (row.handle.mode === 'bg') background++;
|
|
216
|
+
} else if (row.status === 'backgrounded') {
|
|
217
|
+
backgrounded++;
|
|
218
|
+
background++;
|
|
219
|
+
} else finished++;
|
|
210
220
|
}
|
|
211
|
-
return { entries, running, backgrounded, finished, total: entries.length };
|
|
221
|
+
return { entries, running, backgrounded, finished, total: entries.length, background };
|
|
212
222
|
}
|
|
@@ -57,7 +57,43 @@ export const AGENT_TOOL_DEFAULT_MAX_TURNS = 20;
|
|
|
57
57
|
|
|
58
58
|
/** Hard ceiling regardless of caller-supplied max_turns. Prevents a
|
|
59
59
|
* pathological skill prompt from spawning 200-turn workers. */
|
|
60
|
-
const AGENT_TOOL_TURNS_CEILING = 50;
|
|
60
|
+
export const AGENT_TOOL_TURNS_CEILING = 50;
|
|
61
|
+
|
|
62
|
+
/** Numeric ceiling on concurrent `run_in_background` Agent-tool fan-out.
|
|
63
|
+
* Pure declaration — enforcement in dispatchAgent is the follow-up cell
|
|
64
|
+
* TUI-AGENT-CAPS-WIRING (not wired here). */
|
|
65
|
+
export const AGENT_TOOL_BACKGROUND_FANOUT_CEILING = 8;
|
|
66
|
+
|
|
67
|
+
/** Clamp a caller-supplied `max_turns` onto `[1, AGENT_TOOL_TURNS_CEILING]`.
|
|
68
|
+
* Non-finite / omitted values fall back to `AGENT_TOOL_DEFAULT_MAX_TURNS`. */
|
|
69
|
+
export function resolveAgentToolMaxTurns(requested: unknown): number {
|
|
70
|
+
if (typeof requested === 'number' && Number.isFinite(requested)) {
|
|
71
|
+
return Math.max(1, Math.min(AGENT_TOOL_TURNS_CEILING, Math.floor(requested)));
|
|
72
|
+
}
|
|
73
|
+
return AGENT_TOOL_DEFAULT_MAX_TURNS;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/** Strip the Agent tool so nesting stays one level: children never see
|
|
77
|
+
* Agent, so they cannot spawn grandchildren through this dispatcher. */
|
|
78
|
+
export function stripAgentToolForOneLevelNesting<T extends { name: string }>(
|
|
79
|
+
tools: readonly T[],
|
|
80
|
+
): T[] {
|
|
81
|
+
return tools.filter(t => t.name !== 'Agent');
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/** Live `run_in_background` tasks occupy fan-out slots until they terminal.
|
|
85
|
+
* Pure judgement — the ceiling check that uses it is TUI-AGENT-CAPS-WIRING. */
|
|
86
|
+
export function countLiveBackgroundFanout(
|
|
87
|
+
tasks: ReadonlyArray<{ background?: boolean; state?: string }>,
|
|
88
|
+
): number {
|
|
89
|
+
let n = 0;
|
|
90
|
+
for (const task of tasks) {
|
|
91
|
+
if (!task.background) continue;
|
|
92
|
+
if (task.state === 'done' || task.state === 'error' || task.state === 'aborted') continue;
|
|
93
|
+
n++;
|
|
94
|
+
}
|
|
95
|
+
return n;
|
|
96
|
+
}
|
|
61
97
|
|
|
62
98
|
/** Fallback agent when subagent_type is missing or unresolvable. The
|
|
63
99
|
* loader picks this up from src/agents/general-purpose.md — built
|
|
@@ -312,9 +348,7 @@ export async function dispatchAgent(
|
|
|
312
348
|
// *stronger* models on spawn (e.g. upgrade mini → full, or lock
|
|
313
349
|
// sub-agents to the parent's resolved model so a mis-configured
|
|
314
350
|
// agent frontmatter can't weaken them).
|
|
315
|
-
const requestedMaxTurns =
|
|
316
|
-
? Math.max(1, Math.min(AGENT_TOOL_TURNS_CEILING, Math.floor(args.max_turns)))
|
|
317
|
-
: AGENT_TOOL_DEFAULT_MAX_TURNS;
|
|
351
|
+
const requestedMaxTurns = resolveAgentToolMaxTurns(args.max_turns);
|
|
318
352
|
|
|
319
353
|
// PFC-S1 P1: new optional fields.
|
|
320
354
|
const runInBackground = args.run_in_background === true;
|
|
@@ -573,8 +607,7 @@ export async function dispatchAgent(
|
|
|
573
607
|
|
|
574
608
|
// Strip the Agent tool itself from the sub-agent's available tools.
|
|
575
609
|
// One level of nesting only — see file header rationale.
|
|
576
|
-
childTools = childTools
|
|
577
|
-
.filter(t => t.name !== 'Agent');
|
|
610
|
+
childTools = stripAgentToolForOneLevelNesting(childTools);
|
|
578
611
|
// Wave 5 E1 — apply per-spawn tool_filter. Narrows the intersection
|
|
579
612
|
// further (cannot widen the host's allowlist). When `allow` is
|
|
580
613
|
// explicit-empty `[]`, the worker runs text-only.
|
|
@@ -24,6 +24,7 @@ import { readdirSync, statSync, lstatSync, readlinkSync } from 'node:fs';
|
|
|
24
24
|
import { isAbsolute, resolve, join } from 'node:path';
|
|
25
25
|
import type { LLMToolSpec } from '../../llm.js';
|
|
26
26
|
import { getSessionCwd } from '../../session/working-dir.js';
|
|
27
|
+
import { debug } from '../../debug/log.js';
|
|
27
28
|
import { noteBroadSearch } from './search-loop-guard.js';
|
|
28
29
|
|
|
29
30
|
const DEFAULT_HEAD_LIMIT = 200;
|
|
@@ -99,6 +100,16 @@ export async function dispatchListDir(args: Record<string, unknown>): Promise<Li
|
|
|
99
100
|
String(head),
|
|
100
101
|
]);
|
|
101
102
|
if (searchLoop.blocked) {
|
|
103
|
+
// 관측(TUI-OPS-TURN-GUARD 공백 ①): Grep(grep.ts) 과 «같은» 범주·이벤트로 차단을 남긴다 —
|
|
104
|
+
// 종전엔 throw 만 해서 ListDir 차단은 조회하면 0 이었고, 그 0 은 「안 막혔다」가 아니라 「안 쟀다」였다.
|
|
105
|
+
// 경로 원문·내용은 싣지 않는다(깊이·옵션 축만). 동작·문구는 그대로.
|
|
106
|
+
debug.log('tools.search', 'broad-search-blocked', {
|
|
107
|
+
tool: 'ListDir',
|
|
108
|
+
consecutive: searchLoop.consecutive,
|
|
109
|
+
pathDepth: abs.split(/[\\/]+/).filter(Boolean).length,
|
|
110
|
+
showHidden,
|
|
111
|
+
sort,
|
|
112
|
+
}, { level: 'warn' });
|
|
102
113
|
throw new Error(
|
|
103
114
|
`RUNTIME BLOCKED — repeated broad search loop detected (${searchLoop.consecutive} consecutive broad-search calls). ` +
|
|
104
115
|
`You already listed ${abs}. Stop re-listing the same tree. Pick concrete files or directories from prior results ` +
|