@namzu/cli 34.1.1 → 36.0.0
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/CHANGELOG.md +800 -0
- package/README.md +160 -394
- package/assets/pal-blender-mcp.py +123 -0
- package/assets/pal-godot-mcp-pin.json +135 -0
- package/assets/pal-godot-mcp.cjs +418 -0
- package/dist/bin-main.d.ts +3 -0
- package/dist/bin-main.d.ts.map +1 -0
- package/dist/bin.d.ts +2 -1
- package/dist/bin.d.ts.map +1 -1
- package/dist/bin.js +85 -23
- package/dist/bin.js.map +6 -1
- package/dist/boot-narrative.d.ts +16 -0
- package/dist/boot-narrative.d.ts.map +1 -0
- package/dist/checkpoints/manifest.d.ts +107 -0
- package/dist/checkpoints/manifest.d.ts.map +1 -0
- package/dist/checkpoints/store.d.ts +280 -40
- package/dist/checkpoints/store.d.ts.map +1 -1
- package/dist/checkpoints/undo-plan.d.ts +83 -0
- package/dist/checkpoints/undo-plan.d.ts.map +1 -0
- package/dist/checkpoints/wrap.d.ts +4 -0
- package/dist/checkpoints/wrap.d.ts.map +1 -1
- package/dist/chunks/acp-BOSEA4R3.js +13448 -0
- package/dist/chunks/acp-BOSEA4R3.js.map +6 -0
- package/dist/chunks/activity-command-ACS7KL3C.js +262 -0
- package/dist/chunks/activity-command-ACS7KL3C.js.map +6 -0
- package/dist/chunks/add-DLS54YKS.js +712 -0
- package/dist/chunks/add-DLS54YKS.js.map +6 -0
- package/dist/chunks/agent-GV3DWYQC.js +87 -0
- package/dist/chunks/agent-GV3DWYQC.js.map +6 -0
- package/dist/chunks/agent-session-7VE6GJJH.js +46 -0
- package/dist/chunks/agent-session-7VE6GJJH.js.map +6 -0
- package/dist/chunks/archive-6ZENIEBP.js +84 -0
- package/dist/chunks/archive-6ZENIEBP.js.map +6 -0
- package/dist/chunks/bin-main-NFFT5ZIU.js +126 -0
- package/dist/chunks/bin-main-NFFT5ZIU.js.map +6 -0
- package/dist/chunks/browser-VT2U6NG2.js +31 -0
- package/dist/chunks/browser-VT2U6NG2.js.map +6 -0
- package/dist/chunks/chat-UNYVLDFL.js +101 -0
- package/dist/chunks/chat-UNYVLDFL.js.map +6 -0
- package/dist/chunks/chunk-2IL6OG3X.js +311 -0
- package/dist/chunks/chunk-2IL6OG3X.js.map +6 -0
- package/dist/chunks/chunk-2RBYHHLM.js +319 -0
- package/dist/chunks/chunk-2RBYHHLM.js.map +6 -0
- package/dist/chunks/chunk-42ZK2AH4.js +71 -0
- package/dist/chunks/chunk-42ZK2AH4.js.map +6 -0
- package/dist/chunks/chunk-5PQVJBIO.js +168 -0
- package/dist/chunks/chunk-5PQVJBIO.js.map +6 -0
- package/dist/chunks/chunk-6CPT2ZBS.js +75 -0
- package/dist/chunks/chunk-6CPT2ZBS.js.map +6 -0
- package/dist/chunks/chunk-6LLJQ3KY.js +225 -0
- package/dist/chunks/chunk-6LLJQ3KY.js.map +6 -0
- package/dist/chunks/chunk-6YFJDVGA.js +161 -0
- package/dist/chunks/chunk-6YFJDVGA.js.map +6 -0
- package/dist/chunks/chunk-6YG7D7U4.js +159 -0
- package/dist/chunks/chunk-6YG7D7U4.js.map +6 -0
- package/dist/chunks/chunk-6ZPODOJN.js +828 -0
- package/dist/chunks/chunk-6ZPODOJN.js.map +6 -0
- package/dist/chunks/chunk-76FLAFCG.js +51 -0
- package/dist/chunks/chunk-76FLAFCG.js.map +6 -0
- package/dist/chunks/chunk-7HCPD673.js +25326 -0
- package/dist/chunks/chunk-7HCPD673.js.map +6 -0
- package/dist/chunks/chunk-7KWGR2YA.js +257 -0
- package/dist/chunks/chunk-7KWGR2YA.js.map +6 -0
- package/dist/chunks/chunk-A22MBIYU.js +42 -0
- package/dist/chunks/chunk-A22MBIYU.js.map +6 -0
- package/dist/chunks/chunk-AHIDYIRB.js +329 -0
- package/dist/chunks/chunk-AHIDYIRB.js.map +6 -0
- package/dist/chunks/chunk-AK2U3N2A.js +31 -0
- package/dist/chunks/chunk-AK2U3N2A.js.map +6 -0
- package/dist/chunks/chunk-AKKRZTPB.js +283 -0
- package/dist/chunks/chunk-AKKRZTPB.js.map +6 -0
- package/dist/chunks/chunk-BCZR2B3Y.js +97 -0
- package/dist/chunks/chunk-BCZR2B3Y.js.map +6 -0
- package/dist/chunks/chunk-CHIEVVQ2.js +32 -0
- package/dist/chunks/chunk-CHIEVVQ2.js.map +6 -0
- package/dist/chunks/chunk-D67YBUO3.js +110 -0
- package/dist/chunks/chunk-D67YBUO3.js.map +6 -0
- package/dist/chunks/chunk-DIHEHK7K.js +765 -0
- package/dist/chunks/chunk-DIHEHK7K.js.map +6 -0
- package/dist/chunks/chunk-E5VLANCO.js +101 -0
- package/dist/chunks/chunk-E5VLANCO.js.map +6 -0
- package/dist/chunks/chunk-EEDZOGV4.js +47 -0
- package/dist/chunks/chunk-EEDZOGV4.js.map +6 -0
- package/dist/chunks/chunk-ENGNEELC.js +271 -0
- package/dist/chunks/chunk-ENGNEELC.js.map +6 -0
- package/dist/chunks/chunk-EVY4MVRE.js +74 -0
- package/dist/chunks/chunk-EVY4MVRE.js.map +6 -0
- package/dist/chunks/chunk-FJNDNNNQ.js +115 -0
- package/dist/chunks/chunk-FJNDNNNQ.js.map +6 -0
- package/dist/chunks/chunk-FOFGMP7O.js +20 -0
- package/dist/chunks/chunk-FOFGMP7O.js.map +6 -0
- package/dist/chunks/chunk-FTMTO72X.js +95 -0
- package/dist/chunks/chunk-FTMTO72X.js.map +6 -0
- package/dist/chunks/chunk-GIXSS6KW.js +2228 -0
- package/dist/chunks/chunk-GIXSS6KW.js.map +6 -0
- package/dist/chunks/chunk-GNBMKISG.js +19 -0
- package/dist/chunks/chunk-GNBMKISG.js.map +6 -0
- package/dist/chunks/chunk-GWQEMJFS.js +28 -0
- package/dist/chunks/chunk-GWQEMJFS.js.map +6 -0
- package/dist/chunks/chunk-H6B6AROX.js +151 -0
- package/dist/chunks/chunk-H6B6AROX.js.map +6 -0
- package/dist/chunks/chunk-HE7WUOX2.js +26 -0
- package/dist/chunks/chunk-HE7WUOX2.js.map +6 -0
- package/dist/chunks/chunk-HZBKWL42.js +303 -0
- package/dist/chunks/chunk-HZBKWL42.js.map +6 -0
- package/dist/chunks/chunk-I7HQR6ET.js +75 -0
- package/dist/chunks/chunk-I7HQR6ET.js.map +6 -0
- package/dist/chunks/chunk-IJEB77SH.js +648 -0
- package/dist/chunks/chunk-IJEB77SH.js.map +6 -0
- package/dist/chunks/chunk-JNPDWME5.js +675 -0
- package/dist/chunks/chunk-JNPDWME5.js.map +6 -0
- package/dist/chunks/chunk-JORONMD3.js +18 -0
- package/dist/chunks/chunk-JORONMD3.js.map +6 -0
- package/dist/chunks/chunk-JV3LONAU.js +76 -0
- package/dist/chunks/chunk-JV3LONAU.js.map +6 -0
- package/dist/chunks/chunk-K5HARZ7G.js +82516 -0
- package/dist/chunks/chunk-K5HARZ7G.js.map +6 -0
- package/dist/chunks/chunk-KONYGNG6.js +7661 -0
- package/dist/chunks/chunk-KONYGNG6.js.map +6 -0
- package/dist/chunks/chunk-LXB3S4IC.js +19 -0
- package/dist/chunks/chunk-LXB3S4IC.js.map +6 -0
- package/dist/chunks/chunk-M3IAMIBJ.js +661 -0
- package/dist/chunks/chunk-M3IAMIBJ.js.map +6 -0
- package/dist/chunks/chunk-MH6KUKVV.js +1142 -0
- package/dist/chunks/chunk-MH6KUKVV.js.map +6 -0
- package/dist/chunks/chunk-MS3IYQ72.js +1479 -0
- package/dist/chunks/chunk-MS3IYQ72.js.map +6 -0
- package/dist/chunks/chunk-MZP6SH3M.js +3497 -0
- package/dist/chunks/chunk-MZP6SH3M.js.map +6 -0
- package/dist/chunks/chunk-N3ZEXVSS.js +76 -0
- package/dist/chunks/chunk-N3ZEXVSS.js.map +6 -0
- package/dist/chunks/chunk-N6SR54VC.js +207 -0
- package/dist/chunks/chunk-N6SR54VC.js.map +6 -0
- package/dist/chunks/chunk-NADQQMMG.js +46 -0
- package/dist/chunks/chunk-NADQQMMG.js.map +6 -0
- package/dist/chunks/chunk-NBH52WHS.js +247 -0
- package/dist/chunks/chunk-NBH52WHS.js.map +6 -0
- package/dist/chunks/chunk-NICLKFBG.js +109 -0
- package/dist/chunks/chunk-NICLKFBG.js.map +6 -0
- package/dist/chunks/chunk-NIPHHZ5G.js +283 -0
- package/dist/chunks/chunk-NIPHHZ5G.js.map +6 -0
- package/dist/chunks/chunk-NQT244I2.js +517 -0
- package/dist/chunks/chunk-NQT244I2.js.map +6 -0
- package/dist/chunks/chunk-NUGPLXVK.js +228 -0
- package/dist/chunks/chunk-NUGPLXVK.js.map +6 -0
- package/dist/chunks/chunk-OEW7CJKK.js +140 -0
- package/dist/chunks/chunk-OEW7CJKK.js.map +6 -0
- package/dist/chunks/chunk-OH6TB27S.js +111 -0
- package/dist/chunks/chunk-OH6TB27S.js.map +6 -0
- package/dist/chunks/chunk-OWH6QQY2.js +1858 -0
- package/dist/chunks/chunk-OWH6QQY2.js.map +6 -0
- package/dist/chunks/chunk-OWXJOD4H.js +773 -0
- package/dist/chunks/chunk-OWXJOD4H.js.map +6 -0
- package/dist/chunks/chunk-PT537V7B.js +787 -0
- package/dist/chunks/chunk-PT537V7B.js.map +6 -0
- package/dist/chunks/chunk-QEQZFG2X.js +106 -0
- package/dist/chunks/chunk-QEQZFG2X.js.map +6 -0
- package/dist/chunks/chunk-QL4O4UGZ.js +245 -0
- package/dist/chunks/chunk-QL4O4UGZ.js.map +6 -0
- package/dist/chunks/chunk-QL54XCF4.js +73 -0
- package/dist/chunks/chunk-QL54XCF4.js.map +6 -0
- package/dist/chunks/chunk-SB6UD3ED.js +1355 -0
- package/dist/chunks/chunk-SB6UD3ED.js.map +6 -0
- package/dist/chunks/chunk-SGGRGKGV.js +34 -0
- package/dist/chunks/chunk-SGGRGKGV.js.map +6 -0
- package/dist/chunks/chunk-SKKWMMFP.js +474 -0
- package/dist/chunks/chunk-SKKWMMFP.js.map +6 -0
- package/dist/chunks/chunk-SMIDV4KH.js +171 -0
- package/dist/chunks/chunk-SMIDV4KH.js.map +6 -0
- package/dist/chunks/chunk-T2VUTAHB.js +46 -0
- package/dist/chunks/chunk-T2VUTAHB.js.map +6 -0
- package/dist/chunks/chunk-T4SB6AAF.js +134 -0
- package/dist/chunks/chunk-T4SB6AAF.js.map +6 -0
- package/dist/chunks/chunk-TBIX6JRE.js +24 -0
- package/dist/chunks/chunk-TBIX6JRE.js.map +6 -0
- package/dist/chunks/chunk-THNCQJ33.js +11265 -0
- package/dist/chunks/chunk-THNCQJ33.js.map +6 -0
- package/dist/chunks/chunk-U56QFYGA.js +818 -0
- package/dist/chunks/chunk-U56QFYGA.js.map +6 -0
- package/dist/chunks/chunk-U6GZ7EW4.js +106 -0
- package/dist/chunks/chunk-U6GZ7EW4.js.map +6 -0
- package/dist/chunks/chunk-UDDSFIMB.js +1373 -0
- package/dist/chunks/chunk-UDDSFIMB.js.map +6 -0
- package/dist/chunks/chunk-UFHNXZL2.js +399 -0
- package/dist/chunks/chunk-UFHNXZL2.js.map +6 -0
- package/dist/chunks/chunk-US5ZFPAU.js +400 -0
- package/dist/chunks/chunk-US5ZFPAU.js.map +6 -0
- package/dist/chunks/chunk-VRL2WNQN.js +7534 -0
- package/dist/chunks/chunk-VRL2WNQN.js.map +6 -0
- package/dist/chunks/chunk-W3UQMRYA.js +380 -0
- package/dist/chunks/chunk-W3UQMRYA.js.map +6 -0
- package/dist/chunks/chunk-W5KGCUP3.js +11111 -0
- package/dist/chunks/chunk-W5KGCUP3.js.map +6 -0
- package/dist/chunks/chunk-WHODOMXA.js +132 -0
- package/dist/chunks/chunk-WHODOMXA.js.map +6 -0
- package/dist/chunks/chunk-WT6TFCPV.js +154 -0
- package/dist/chunks/chunk-WT6TFCPV.js.map +6 -0
- package/dist/chunks/chunk-WY2WUTFR.js +164 -0
- package/dist/chunks/chunk-WY2WUTFR.js.map +6 -0
- package/dist/chunks/chunk-XEUQN4JC.js +54 -0
- package/dist/chunks/chunk-XEUQN4JC.js.map +6 -0
- package/dist/chunks/chunk-Y7B67G22.js +26 -0
- package/dist/chunks/chunk-Y7B67G22.js.map +6 -0
- package/dist/chunks/chunk-YEMJX2DS.js +69 -0
- package/dist/chunks/chunk-YEMJX2DS.js.map +6 -0
- package/dist/chunks/chunk-YKLKHDZU.js +2953 -0
- package/dist/chunks/chunk-YKLKHDZU.js.map +6 -0
- package/dist/chunks/chunk-YQEWD2EN.js +127 -0
- package/dist/chunks/chunk-YQEWD2EN.js.map +6 -0
- package/dist/chunks/chunk-YYQJIECC.js +1439 -0
- package/dist/chunks/chunk-YYQJIECC.js.map +6 -0
- package/dist/chunks/chunk-ZKVZNOUS.js +106 -0
- package/dist/chunks/chunk-ZKVZNOUS.js.map +6 -0
- package/dist/chunks/chunk-ZPR4IMRT.js +36 -0
- package/dist/chunks/chunk-ZPR4IMRT.js.map +6 -0
- package/dist/chunks/chunk-ZWA2JRJV.js +45 -0
- package/dist/chunks/chunk-ZWA2JRJV.js.map +6 -0
- package/dist/chunks/cli-runtime-F4MBZ2UQ.js +129 -0
- package/dist/chunks/cli-runtime-F4MBZ2UQ.js.map +6 -0
- package/dist/chunks/commands-GMQGFTIY.js +21 -0
- package/dist/chunks/commands-GMQGFTIY.js.map +6 -0
- package/dist/chunks/computer-GXDY4H35.js +493 -0
- package/dist/chunks/computer-GXDY4H35.js.map +6 -0
- package/dist/chunks/crash-report-STOHSORG.js +21 -0
- package/dist/chunks/crash-report-STOHSORG.js.map +6 -0
- package/dist/chunks/devtools-LBE4PAQN.js +3851 -0
- package/dist/chunks/devtools-LBE4PAQN.js.map +6 -0
- package/dist/chunks/dist-3AF2X4S5.js +1339 -0
- package/dist/chunks/dist-3AF2X4S5.js.map +6 -0
- package/dist/chunks/dist-AZIMHV2B.js +514 -0
- package/dist/chunks/dist-AZIMHV2B.js.map +6 -0
- package/dist/chunks/dist-BGYRQ5BC.js +555 -0
- package/dist/chunks/dist-BGYRQ5BC.js.map +6 -0
- package/dist/chunks/dist-OTTZ7WVD.js +1415 -0
- package/dist/chunks/dist-OTTZ7WVD.js.map +6 -0
- package/dist/chunks/dist-R3I3ATSG.js +1018 -0
- package/dist/chunks/dist-R3I3ATSG.js.map +6 -0
- package/dist/chunks/dist-TXEKDBQO.js +40642 -0
- package/dist/chunks/dist-TXEKDBQO.js.map +6 -0
- package/dist/chunks/dist-XTWYQHHN.js +520 -0
- package/dist/chunks/dist-XTWYQHHN.js.map +6 -0
- package/dist/chunks/doctor-VXSB4Y4P.js +28 -0
- package/dist/chunks/doctor-VXSB4Y4P.js.map +6 -0
- package/dist/chunks/drain-DXVICQBR.js +471 -0
- package/dist/chunks/drain-DXVICQBR.js.map +6 -0
- package/dist/chunks/endpoint-M2DDENPP.js +15 -0
- package/dist/chunks/endpoint-M2DDENPP.js.map +6 -0
- package/dist/chunks/eval-BMJQXDKA.js +187 -0
- package/dist/chunks/eval-BMJQXDKA.js.map +6 -0
- package/dist/chunks/exec-3T5ESZPH.js +1284 -0
- package/dist/chunks/exec-3T5ESZPH.js.map +6 -0
- package/dist/chunks/home-ILHA7B6Z.js +16 -0
- package/dist/chunks/home-ILHA7B6Z.js.map +6 -0
- package/dist/chunks/host-queries-QCMWDZGS.js +152 -0
- package/dist/chunks/host-queries-QCMWDZGS.js.map +6 -0
- package/dist/chunks/lib-KXZZJJG2.js +2657 -0
- package/dist/chunks/lib-KXZZJJG2.js.map +6 -0
- package/dist/chunks/lifecycle-CB23VJI7.js +63 -0
- package/dist/chunks/lifecycle-CB23VJI7.js.map +6 -0
- package/dist/chunks/list-N6WXZBMD.js +293 -0
- package/dist/chunks/list-N6WXZBMD.js.map +6 -0
- package/dist/chunks/login-26NCG6EQ.js +29 -0
- package/dist/chunks/login-26NCG6EQ.js.map +6 -0
- package/dist/chunks/logs-V7SNM7LA.js +116 -0
- package/dist/chunks/logs-V7SNM7LA.js.map +6 -0
- package/dist/chunks/mcp-BTHCU5ZC.js +763 -0
- package/dist/chunks/mcp-BTHCU5ZC.js.map +6 -0
- package/dist/chunks/message-command-HMIOR52C.js +170 -0
- package/dist/chunks/message-command-HMIOR52C.js.map +6 -0
- package/dist/chunks/node-QB2FA2ZB.js +916 -0
- package/dist/chunks/node-QB2FA2ZB.js.map +6 -0
- package/dist/chunks/operator-tools-7LMWOHSN.js +115 -0
- package/dist/chunks/operator-tools-7LMWOHSN.js.map +6 -0
- package/dist/chunks/output-schema-XCONYVZ7.js +11 -0
- package/dist/chunks/output-schema-XCONYVZ7.js.map +6 -0
- package/dist/chunks/pal-YEUKHA6F.js +200 -0
- package/dist/chunks/pal-YEUKHA6F.js.map +6 -0
- package/dist/chunks/paths-DXYFKIJU.js +10 -0
- package/dist/chunks/paths-DXYFKIJU.js.map +6 -0
- package/dist/chunks/pica-WNHDDIFX.js +1736 -0
- package/dist/chunks/pica-WNHDDIFX.js.map +6 -0
- package/dist/chunks/providers-EI3FAKYB.js +160 -0
- package/dist/chunks/providers-EI3FAKYB.js.map +6 -0
- package/dist/chunks/resident-5ZY6OG6B.js +1314 -0
- package/dist/chunks/resident-5ZY6OG6B.js.map +6 -0
- package/dist/chunks/resume-command-ONYRZIIA.js +22 -0
- package/dist/chunks/resume-command-ONYRZIIA.js.map +6 -0
- package/dist/chunks/schedule-6JPEO4NR.js +143 -0
- package/dist/chunks/schedule-6JPEO4NR.js.map +6 -0
- package/dist/chunks/serve-S7UWNIR3.js +21 -0
- package/dist/chunks/serve-S7UWNIR3.js.map +6 -0
- package/dist/chunks/service-WSW3M6K5.js +1633 -0
- package/dist/chunks/service-WSW3M6K5.js.map +6 -0
- package/dist/chunks/session-step-2VZM3CCA.js +26 -0
- package/dist/chunks/session-step-2VZM3CCA.js.map +6 -0
- package/dist/chunks/skills-KAZJYGX5.js +282 -0
- package/dist/chunks/skills-KAZJYGX5.js.map +6 -0
- package/dist/chunks/state-263OUKQA.js +717 -0
- package/dist/chunks/state-263OUKQA.js.map +6 -0
- package/dist/chunks/store-3XLCJ7EL.js +42 -0
- package/dist/chunks/store-3XLCJ7EL.js.map +6 -0
- package/dist/chunks/store-KN65QI2M.js +82 -0
- package/dist/chunks/store-KN65QI2M.js.map +6 -0
- package/dist/chunks/store-X3TESBIN.js +34 -0
- package/dist/chunks/store-X3TESBIN.js.map +6 -0
- package/dist/chunks/tui-5MU7JBXX.js +56703 -0
- package/dist/chunks/tui-5MU7JBXX.js.map +6 -0
- package/dist/chunks/upgrade-BYM4MWBC.js +315 -0
- package/dist/chunks/upgrade-BYM4MWBC.js.map +6 -0
- package/dist/chunks/webapi-6HUHZUAH.js +2715 -0
- package/dist/chunks/webapi-6HUHZUAH.js.map +6 -0
- package/dist/chunks/worktree-K3ZIPXRM.js +116 -0
- package/dist/chunks/worktree-K3ZIPXRM.js.map +6 -0
- package/dist/cli-runtime.d.ts +19 -0
- package/dist/cli-runtime.d.ts.map +1 -0
- package/dist/cli.d.ts +0 -15
- package/dist/cli.d.ts.map +1 -1
- package/dist/commands/acp-harness.d.ts +64 -0
- package/dist/commands/acp-harness.d.ts.map +1 -0
- package/dist/commands/acp-provider-retry.d.ts +27 -0
- package/dist/commands/acp-provider-retry.d.ts.map +1 -0
- package/dist/commands/acp.d.ts +134 -3
- package/dist/commands/acp.d.ts.map +1 -1
- package/dist/commands/computer.d.ts +3 -0
- package/dist/commands/computer.d.ts.map +1 -0
- package/dist/commands/desktop-host-changes.d.ts +65 -0
- package/dist/commands/desktop-host-changes.d.ts.map +1 -0
- package/dist/commands/desktop-host-header.d.ts +30 -0
- package/dist/commands/desktop-host-header.d.ts.map +1 -0
- package/dist/commands/desktop-host.d.ts +354 -0
- package/dist/commands/desktop-host.d.ts.map +1 -0
- package/dist/commands/desktop-model-catalogue.d.ts +25 -0
- package/dist/commands/desktop-model-catalogue.d.ts.map +1 -0
- package/dist/commands/effort-levels.d.ts +3 -0
- package/dist/commands/effort-levels.d.ts.map +1 -0
- package/dist/commands/exec-flags.d.ts +4 -0
- package/dist/commands/exec-flags.d.ts.map +1 -1
- package/dist/commands/exec.d.ts.map +1 -1
- package/dist/commands/lazy.d.ts +20 -0
- package/dist/commands/lazy.d.ts.map +1 -0
- package/dist/commands/manifest.d.ts +33 -0
- package/dist/commands/manifest.d.ts.map +1 -0
- package/dist/commands/mcp.d.ts +3 -0
- package/dist/commands/mcp.d.ts.map +1 -1
- package/dist/commands/pal.d.ts +5 -0
- package/dist/commands/pal.d.ts.map +1 -0
- package/dist/commands/permission-preview.d.ts +38 -0
- package/dist/commands/permission-preview.d.ts.map +1 -0
- package/dist/commands/registry.d.ts +10 -0
- package/dist/commands/registry.d.ts.map +1 -1
- package/dist/commands/serve.d.ts +1 -12
- package/dist/commands/serve.d.ts.map +1 -1
- package/dist/commands/stdin.d.ts.map +1 -1
- package/dist/commands/upgrade.d.ts +14 -0
- package/dist/commands/upgrade.d.ts.map +1 -1
- package/dist/compile-cache-enable.d.ts +2 -0
- package/dist/compile-cache-enable.d.ts.map +1 -0
- package/dist/compile-cache.d.ts +53 -0
- package/dist/compile-cache.d.ts.map +1 -0
- package/dist/computer/bundle.d.ts +18 -0
- package/dist/computer/bundle.d.ts.map +1 -0
- package/dist/computer/run.d.ts +26 -0
- package/dist/computer/run.d.ts.map +1 -0
- package/dist/computer/sentences.d.ts +30 -0
- package/dist/computer/sentences.d.ts.map +1 -0
- package/dist/config/load.d.ts +10 -1
- package/dist/config/load.d.ts.map +1 -1
- package/dist/context/capabilities.d.ts +25 -2
- package/dist/context/capabilities.d.ts.map +1 -1
- package/dist/context/runtime-message.d.ts.map +1 -1
- package/dist/crash-report.d.ts +22 -0
- package/dist/crash-report.d.ts.map +1 -0
- package/dist/debug-requested.d.ts +7 -0
- package/dist/debug-requested.d.ts.map +1 -0
- package/dist/doctor/checks/credentials.d.ts.map +1 -1
- package/dist/exit-codes.d.ts +9 -1
- package/dist/exit-codes.d.ts.map +1 -1
- package/dist/index.js +105 -17
- package/dist/index.js.map +6 -1
- package/dist/integrations/harness/claude-adapter.d.ts +20 -0
- package/dist/integrations/harness/claude-adapter.d.ts.map +1 -0
- package/dist/integrations/harness/claude-protocol.d.ts +67 -0
- package/dist/integrations/harness/claude-protocol.d.ts.map +1 -0
- package/dist/integrations/harness/codex-adapter.d.ts +80 -0
- package/dist/integrations/harness/codex-adapter.d.ts.map +1 -0
- package/dist/integrations/harness/codex-protocol.d.ts +22 -0
- package/dist/integrations/harness/codex-protocol.d.ts.map +1 -0
- package/dist/integrations/harness/model-cache.d.ts +16 -0
- package/dist/integrations/harness/model-cache.d.ts.map +1 -0
- package/dist/integrations/harness/native-executable.d.ts +8 -0
- package/dist/integrations/harness/native-executable.d.ts.map +1 -0
- package/dist/integrations/harness/process.d.ts +25 -0
- package/dist/integrations/harness/process.d.ts.map +1 -0
- package/dist/integrations/mcp/servers.d.ts.map +1 -1
- package/dist/integrations/peers/runtime.d.ts +64 -0
- package/dist/integrations/peers/runtime.d.ts.map +1 -0
- package/dist/integrations/plugins/inventory.d.ts +27 -0
- package/dist/integrations/plugins/inventory.d.ts.map +1 -0
- package/dist/integrations/providers/composer-settings.d.ts +33 -0
- package/dist/integrations/providers/composer-settings.d.ts.map +1 -0
- package/dist/integrations/providers/connections.d.ts +37 -0
- package/dist/integrations/providers/connections.d.ts.map +1 -0
- package/dist/integrations/providers/credential-store.d.ts +35 -0
- package/dist/integrations/providers/credential-store.d.ts.map +1 -1
- package/dist/integrations/providers/discover.d.ts +27 -1
- package/dist/integrations/providers/discover.d.ts.map +1 -1
- package/dist/integrations/providers/index.d.ts +2 -2
- package/dist/integrations/providers/index.d.ts.map +1 -1
- package/dist/integrations/providers/picker-operation.d.ts +6 -0
- package/dist/integrations/providers/picker-operation.d.ts.map +1 -0
- package/dist/integrations/providers/setup.d.ts +16 -1
- package/dist/integrations/providers/setup.d.ts.map +1 -1
- package/dist/integrations/resident/runner-worker.js +190 -161
- package/dist/integrations/resident/runner-worker.js.map +6 -1
- package/dist/integrations/resident/session-step.d.ts.map +1 -1
- package/dist/integrations/sessions/display-title.d.ts +8 -0
- package/dist/integrations/sessions/display-title.d.ts.map +1 -1
- package/dist/integrations/sessions/store.d.ts +23 -9
- package/dist/integrations/sessions/store.d.ts.map +1 -1
- package/dist/integrations/sessions/task-context.d.ts +1 -1
- package/dist/integrations/sessions/task-context.d.ts.map +1 -1
- package/dist/integrations/sessions/transcript-export.d.ts.map +1 -1
- package/dist/integrations/subagents/activity.d.ts +9 -6
- package/dist/integrations/subagents/activity.d.ts.map +1 -1
- package/dist/integrations/subagents/operator-journal.d.ts +20 -0
- package/dist/integrations/subagents/operator-journal.d.ts.map +1 -0
- package/dist/integrations/subagents/runtime.d.ts +11 -0
- package/dist/integrations/subagents/runtime.d.ts.map +1 -1
- package/dist/integrations/trust/store.d.ts +14 -0
- package/dist/integrations/trust/store.d.ts.map +1 -1
- package/dist/integrations/web/search.d.ts +1 -1
- package/dist/pals/actions.d.ts +57 -0
- package/dist/pals/actions.d.ts.map +1 -0
- package/dist/pals/activity-command.d.ts +3 -0
- package/dist/pals/activity-command.d.ts.map +1 -0
- package/dist/pals/activity.d.ts +18 -0
- package/dist/pals/activity.d.ts.map +1 -0
- package/dist/pals/agent-session.d.ts +19 -0
- package/dist/pals/agent-session.d.ts.map +1 -0
- package/dist/pals/channel-actions.d.ts +5 -0
- package/dist/pals/channel-actions.d.ts.map +1 -0
- package/dist/pals/channel-local.d.ts +7 -0
- package/dist/pals/channel-local.d.ts.map +1 -0
- package/dist/pals/channel.d.ts +20 -0
- package/dist/pals/channel.d.ts.map +1 -0
- package/dist/pals/chat.d.ts +6 -0
- package/dist/pals/chat.d.ts.map +1 -0
- package/dist/pals/communication.d.ts +47 -0
- package/dist/pals/communication.d.ts.map +1 -0
- package/dist/pals/conversations.d.ts +26 -0
- package/dist/pals/conversations.d.ts.map +1 -0
- package/dist/pals/desktop-communication.d.ts +111 -0
- package/dist/pals/desktop-communication.d.ts.map +1 -0
- package/dist/pals/dispatch.d.ts +13 -0
- package/dist/pals/dispatch.d.ts.map +1 -0
- package/dist/pals/environment.d.ts +103 -0
- package/dist/pals/environment.d.ts.map +1 -0
- package/dist/pals/guest-mcp-transport.d.ts +28 -0
- package/dist/pals/guest-mcp-transport.d.ts.map +1 -0
- package/dist/pals/guest-mcp.d.ts +22 -0
- package/dist/pals/guest-mcp.d.ts.map +1 -0
- package/dist/pals/inbox-start.d.ts +35 -0
- package/dist/pals/inbox-start.d.ts.map +1 -0
- package/dist/pals/message-command.d.ts +3 -0
- package/dist/pals/message-command.d.ts.map +1 -0
- package/dist/pals/operator-tools.d.ts +23 -0
- package/dist/pals/operator-tools.d.ts.map +1 -0
- package/dist/pals/public-transcript.d.ts +4 -0
- package/dist/pals/public-transcript.d.ts.map +1 -0
- package/dist/pals/review.d.ts +16 -0
- package/dist/pals/review.d.ts.map +1 -0
- package/dist/pals/store.d.ts +16 -0
- package/dist/pals/store.d.ts.map +1 -0
- package/dist/pals/tui-session.d.ts +11 -0
- package/dist/pals/tui-session.d.ts.map +1 -0
- package/dist/permissions/mode-names.d.ts +2 -0
- package/dist/permissions/mode-names.d.ts.map +1 -0
- package/dist/resume-invocation.d.ts +1 -1
- package/dist/resume-invocation.d.ts.map +1 -1
- package/dist/resume-shell.d.ts +8 -0
- package/dist/resume-shell.d.ts.map +1 -0
- package/dist/schedule/build.d.ts +12 -3
- package/dist/schedule/build.d.ts.map +1 -1
- package/dist/schedule/commands/add.d.ts +1 -1
- package/dist/schedule/commands/add.d.ts.map +1 -1
- package/dist/schedule/commands/lifecycle.d.ts.map +1 -1
- package/dist/schedule/commands/list.d.ts +3 -1
- package/dist/schedule/commands/list.d.ts.map +1 -1
- package/dist/schedule/daemon/daemon.d.ts +2 -0
- package/dist/schedule/daemon/daemon.d.ts.map +1 -1
- package/dist/schedule/delivery.d.ts +66 -0
- package/dist/schedule/delivery.d.ts.map +1 -0
- package/dist/schedule/fire/fire.d.ts +1 -1
- package/dist/schedule/fire/fire.d.ts.map +1 -1
- package/dist/schedule/fire/run-script.d.ts +2 -2
- package/dist/schedule/fire/run-script.d.ts.map +1 -1
- package/dist/schedule/fire/script-report.d.ts +31 -0
- package/dist/schedule/fire/script-report.d.ts.map +1 -0
- package/dist/schedule/floor.d.ts +1 -1
- package/dist/schedule/floor.d.ts.map +1 -1
- package/dist/schedule/folder.d.ts +6 -0
- package/dist/schedule/folder.d.ts.map +1 -1
- package/dist/schedule/resume-command.d.ts +3 -3
- package/dist/schedule/resume-command.d.ts.map +1 -1
- package/dist/schedule/store/history.d.ts.map +1 -1
- package/dist/schedule/store/jobs.d.ts +6 -6
- package/dist/schedule/store/jobs.d.ts.map +1 -1
- package/dist/schedule/store/script-state.d.ts +31 -0
- package/dist/schedule/store/script-state.d.ts.map +1 -0
- package/dist/schedule/store/state.d.ts +4 -2
- package/dist/schedule/store/state.d.ts.map +1 -1
- package/dist/schedule/types.d.ts +61 -16
- package/dist/schedule/types.d.ts.map +1 -1
- package/dist/skills/store.d.ts.map +1 -1
- package/dist/terminal/host.d.ts +22 -0
- package/dist/terminal/host.d.ts.map +1 -0
- package/dist/terminal/manager.d.ts +124 -0
- package/dist/terminal/manager.d.ts.map +1 -0
- package/dist/terminal/protocol.d.ts +162 -0
- package/dist/terminal/protocol.d.ts.map +1 -0
- package/dist/terminal/pty.d.ts +85 -0
- package/dist/terminal/pty.d.ts.map +1 -0
- package/dist/terminal/ring.d.ts +23 -0
- package/dist/terminal/ring.d.ts.map +1 -0
- package/dist/terminal/screen.d.ts +31 -0
- package/dist/terminal/screen.d.ts.map +1 -0
- package/dist/termination-state.d.ts +19 -0
- package/dist/termination-state.d.ts.map +1 -0
- package/dist/termination.d.ts +2 -9
- package/dist/termination.d.ts.map +1 -1
- package/dist/tui/AgentExplorer.d.ts +4 -1
- package/dist/tui/AgentExplorer.d.ts.map +1 -1
- package/dist/tui/App.d.ts.map +1 -1
- package/dist/tui/BackgroundJobsPanel.d.ts +26 -0
- package/dist/tui/BackgroundJobsPanel.d.ts.map +1 -0
- package/dist/tui/BrandHeader.d.ts.map +1 -1
- package/dist/tui/ChildComposer.d.ts +22 -0
- package/dist/tui/ChildComposer.d.ts.map +1 -0
- package/dist/tui/ChoicePicker.d.ts.map +1 -1
- package/dist/tui/Composer.d.ts +25 -4
- package/dist/tui/Composer.d.ts.map +1 -1
- package/dist/tui/ComposerFrame.d.ts.map +1 -1
- package/dist/tui/CopyPicker.d.ts.map +1 -1
- package/dist/tui/EditPromptPicker.d.ts.map +1 -1
- package/dist/tui/EffortSlider.d.ts.map +1 -1
- package/dist/tui/LiveActivity.d.ts +7 -1
- package/dist/tui/LiveActivity.d.ts.map +1 -1
- package/dist/tui/Markdown.d.ts.map +1 -1
- package/dist/tui/PendingInputPanel.d.ts +34 -0
- package/dist/tui/PendingInputPanel.d.ts.map +1 -0
- package/dist/tui/PermissionOverlay.d.ts.map +1 -1
- package/dist/tui/Picker.d.ts.map +1 -1
- package/dist/tui/ProviderSetup.d.ts.map +1 -1
- package/dist/tui/ResumePicker.d.ts.map +1 -1
- package/dist/tui/SaveSkillOverlay.d.ts.map +1 -1
- package/dist/tui/ScheduleReviewOverlay.d.ts +1 -1
- package/dist/tui/ScheduleReviewOverlay.d.ts.map +1 -1
- package/dist/tui/StatusBar.d.ts +7 -1
- package/dist/tui/StatusBar.d.ts.map +1 -1
- package/dist/tui/StatusPanel.d.ts.map +1 -1
- package/dist/tui/TextPrompt.d.ts.map +1 -1
- package/dist/tui/ToolOutputViewer.d.ts.map +1 -1
- package/dist/tui/Transcript.d.ts.map +1 -1
- package/dist/tui/TrustPrompt.d.ts +8 -0
- package/dist/tui/TrustPrompt.d.ts.map +1 -1
- package/dist/tui/agent.d.ts +135 -6
- package/dist/tui/agent.d.ts.map +1 -1
- package/dist/tui/browser-notices.d.ts.map +1 -1
- package/dist/tui/capability-notice.d.ts +38 -0
- package/dist/tui/capability-notice.d.ts.map +1 -0
- package/dist/tui/console-input.d.ts +31 -0
- package/dist/tui/console-input.d.ts.map +1 -0
- package/dist/tui/conversation-evidence-view.d.ts.map +1 -1
- package/dist/tui/credential-entry.d.ts.map +1 -1
- package/dist/tui/exit-summary.d.ts +9 -1
- package/dist/tui/exit-summary.d.ts.map +1 -1
- package/dist/tui/external-editor.d.ts.map +1 -1
- package/dist/tui/index.d.ts.map +1 -1
- package/dist/tui/key-hints.d.ts +51 -0
- package/dist/tui/key-hints.d.ts.map +1 -0
- package/dist/tui/launch-settings.d.ts +34 -0
- package/dist/tui/launch-settings.d.ts.map +1 -0
- package/dist/tui/log-pane.d.ts.map +1 -1
- package/dist/tui/model-choices.d.ts +39 -1
- package/dist/tui/model-choices.d.ts.map +1 -1
- package/dist/tui/model-search.d.ts +4 -1
- package/dist/tui/model-search.d.ts.map +1 -1
- package/dist/tui/output-size-watch.d.ts +32 -0
- package/dist/tui/output-size-watch.d.ts.map +1 -0
- package/dist/tui/permission-review.d.ts.map +1 -1
- package/dist/tui/person-terms.d.ts +58 -0
- package/dist/tui/person-terms.d.ts.map +1 -0
- package/dist/tui/plain-failure.d.ts +27 -0
- package/dist/tui/plain-failure.d.ts.map +1 -0
- package/dist/tui/plain-interruption.d.ts +46 -0
- package/dist/tui/plain-interruption.d.ts.map +1 -0
- package/dist/tui/provider-list.d.ts.map +1 -1
- package/dist/tui/render-mode.d.ts +19 -0
- package/dist/tui/render-mode.d.ts.map +1 -0
- package/dist/tui/schedule/host-commands.d.ts +2 -9
- package/dist/tui/schedule/host-commands.d.ts.map +1 -1
- package/dist/tui/schedule/integration.d.ts +8 -0
- package/dist/tui/schedule/integration.d.ts.map +1 -1
- package/dist/tui/schedule/source-deliveries.d.ts +37 -0
- package/dist/tui/schedule/source-deliveries.d.ts.map +1 -0
- package/dist/tui/schedule/startup.d.ts.map +1 -1
- package/dist/tui/schedule/tool-host.d.ts +3 -1
- package/dist/tui/schedule/tool-host.d.ts.map +1 -1
- package/dist/tui/setup-text.d.ts +14 -0
- package/dist/tui/setup-text.d.ts.map +1 -0
- package/dist/tui/shell-escape.d.ts.map +1 -1
- package/dist/tui/skills/suggest-setting.d.ts.map +1 -1
- package/dist/tui/slashCommands.d.ts +9 -2
- package/dist/tui/slashCommands.d.ts.map +1 -1
- package/dist/tui/terminal-choice-text.d.ts +7 -0
- package/dist/tui/terminal-choice-text.d.ts.map +1 -1
- package/dist/tui/tidy-tool-output.d.ts +83 -0
- package/dist/tui/tidy-tool-output.d.ts.map +1 -0
- package/dist/tui/tool-presentation.d.ts +6 -0
- package/dist/tui/tool-presentation.d.ts.map +1 -0
- package/dist/tui/triggers/copy.d.ts.map +1 -1
- package/dist/tui/triggers/setting.d.ts.map +1 -1
- package/dist/tui/turn-interruption.d.ts +1 -1
- package/dist/tui/turn-interruption.d.ts.map +1 -1
- package/dist/tui/turn-limits-settings.d.ts +4 -4
- package/dist/tui/turn-limits-settings.d.ts.map +1 -1
- package/dist/tui/types.d.ts +10 -0
- package/dist/tui/types.d.ts.map +1 -1
- package/dist/tui/web-activity.d.ts +3 -2
- package/dist/tui/web-activity.d.ts.map +1 -1
- package/dist/tui/zen-free-refusal.d.ts +17 -0
- package/dist/tui/zen-free-refusal.d.ts.map +1 -0
- package/dist/usage-error.d.ts +15 -0
- package/dist/usage-error.d.ts.map +1 -0
- package/dist/warning-filter.d.ts +30 -0
- package/dist/warning-filter.d.ts.map +1 -0
- package/package.json +22 -11
- package/skills/schedule-task/SKILL.md +74 -20
- package/dist/browser/commands.js +0 -365
- package/dist/browser/commands.js.map +0 -1
- package/dist/browser/control.js +0 -140
- package/dist/browser/control.js.map +0 -1
- package/dist/browser/describe.js +0 -27
- package/dist/browser/describe.js.map +0 -1
- package/dist/checkpoints/store.js +0 -192
- package/dist/checkpoints/store.js.map +0 -1
- package/dist/checkpoints/wrap.js +0 -37
- package/dist/checkpoints/wrap.js.map +0 -1
- package/dist/cli.js +0 -602
- package/dist/cli.js.map +0 -1
- package/dist/commands/acp.js +0 -388
- package/dist/commands/acp.js.map +0 -1
- package/dist/commands/archive.js +0 -65
- package/dist/commands/archive.js.map +0 -1
- package/dist/commands/browser.js +0 -16
- package/dist/commands/browser.js.map +0 -1
- package/dist/commands/doctor.js +0 -267
- package/dist/commands/doctor.js.map +0 -1
- package/dist/commands/drain.js +0 -498
- package/dist/commands/drain.js.map +0 -1
- package/dist/commands/eval.js +0 -237
- package/dist/commands/eval.js.map +0 -1
- package/dist/commands/exec-flags.js +0 -334
- package/dist/commands/exec-flags.js.map +0 -1
- package/dist/commands/exec-json.js +0 -497
- package/dist/commands/exec-json.js.map +0 -1
- package/dist/commands/exec.js +0 -688
- package/dist/commands/exec.js.map +0 -1
- package/dist/commands/host-queries.js +0 -156
- package/dist/commands/host-queries.js.map +0 -1
- package/dist/commands/login.js +0 -315
- package/dist/commands/login.js.map +0 -1
- package/dist/commands/mcp-oauth-login.js +0 -213
- package/dist/commands/mcp-oauth-login.js.map +0 -1
- package/dist/commands/mcp.js +0 -288
- package/dist/commands/mcp.js.map +0 -1
- package/dist/commands/prior-messages.js +0 -329
- package/dist/commands/prior-messages.js.map +0 -1
- package/dist/commands/provider-wait.js +0 -65
- package/dist/commands/provider-wait.js.map +0 -1
- package/dist/commands/registry.js +0 -40
- package/dist/commands/registry.js.map +0 -1
- package/dist/commands/resident-flags.js +0 -193
- package/dist/commands/resident-flags.js.map +0 -1
- package/dist/commands/resident-learning.js +0 -293
- package/dist/commands/resident-learning.js.map +0 -1
- package/dist/commands/resident.js +0 -419
- package/dist/commands/resident.js.map +0 -1
- package/dist/commands/resume.js +0 -109
- package/dist/commands/resume.js.map +0 -1
- package/dist/commands/schedule.js +0 -131
- package/dist/commands/schedule.js.map +0 -1
- package/dist/commands/serve.js +0 -21
- package/dist/commands/serve.js.map +0 -1
- package/dist/commands/skills.js +0 -178
- package/dist/commands/skills.js.map +0 -1
- package/dist/commands/state.js +0 -110
- package/dist/commands/state.js.map +0 -1
- package/dist/commands/stdin.js +0 -69
- package/dist/commands/stdin.js.map +0 -1
- package/dist/commands/types.js +0 -2
- package/dist/commands/types.js.map +0 -1
- package/dist/commands/upgrade-progress.js +0 -54
- package/dist/commands/upgrade-progress.js.map +0 -1
- package/dist/commands/upgrade.js +0 -232
- package/dist/commands/upgrade.js.map +0 -1
- package/dist/commands/worktree.js +0 -86
- package/dist/commands/worktree.js.map +0 -1
- package/dist/config/composer-triggers.js +0 -80
- package/dist/config/composer-triggers.js.map +0 -1
- package/dist/config/debug.js +0 -126
- package/dist/config/debug.js.map +0 -1
- package/dist/config/load.js +0 -1208
- package/dist/config/load.js.map +0 -1
- package/dist/config/schema.js +0 -13
- package/dist/config/schema.js.map +0 -1
- package/dist/config/tool-result-screens.js +0 -104
- package/dist/config/tool-result-screens.js.map +0 -1
- package/dist/config/trusted-project-context.js +0 -28
- package/dist/config/trusted-project-context.js.map +0 -1
- package/dist/config/turn-guards.js +0 -46
- package/dist/config/turn-guards.js.map +0 -1
- package/dist/config/user-config.js +0 -118
- package/dist/config/user-config.js.map +0 -1
- package/dist/context/capabilities.js +0 -164
- package/dist/context/capabilities.js.map +0 -1
- package/dist/context/directories.js +0 -69
- package/dist/context/directories.js.map +0 -1
- package/dist/context/doctrine.js +0 -24
- package/dist/context/doctrine.js.map +0 -1
- package/dist/context/environment.js +0 -255
- package/dist/context/environment.js.map +0 -1
- package/dist/context/project-path.js +0 -16
- package/dist/context/project-path.js.map +0 -1
- package/dist/context/project-tracker.js +0 -217
- package/dist/context/project-tracker.js.map +0 -1
- package/dist/context/project.js +0 -256
- package/dist/context/project.js.map +0 -1
- package/dist/context/runtime-message.js +0 -30
- package/dist/context/runtime-message.js.map +0 -1
- package/dist/context/sandbox.js +0 -114
- package/dist/context/sandbox.js.map +0 -1
- package/dist/context/turn-snapshot.js +0 -122
- package/dist/context/turn-snapshot.js.map +0 -1
- package/dist/doctor/checks/browser.js +0 -63
- package/dist/doctor/checks/browser.js.map +0 -1
- package/dist/doctor/checks/chain.js +0 -211
- package/dist/doctor/checks/chain.js.map +0 -1
- package/dist/doctor/checks/credentials.js +0 -98
- package/dist/doctor/checks/credentials.js.map +0 -1
- package/dist/doctor/checks/index.js +0 -72
- package/dist/doctor/checks/index.js.map +0 -1
- package/dist/doctor/checks/invariants.js +0 -79
- package/dist/doctor/checks/invariants.js.map +0 -1
- package/dist/doctor/checks/logging.js +0 -69
- package/dist/doctor/checks/logging.js.map +0 -1
- package/dist/doctor/checks/providers.js +0 -30
- package/dist/doctor/checks/providers.js.map +0 -1
- package/dist/doctor/checks/runtime.js +0 -40
- package/dist/doctor/checks/runtime.js.map +0 -1
- package/dist/doctor/checks/sandbox.js +0 -76
- package/dist/doctor/checks/sandbox.js.map +0 -1
- package/dist/doctor/checks/scheduler.js +0 -74
- package/dist/doctor/checks/scheduler.js.map +0 -1
- package/dist/doctor/checks/session-export.js +0 -62
- package/dist/doctor/checks/session-export.js.map +0 -1
- package/dist/doctor/checks/telemetry.js +0 -58
- package/dist/doctor/checks/telemetry.js.map +0 -1
- package/dist/doctor/checks/vault.js +0 -67
- package/dist/doctor/checks/vault.js.map +0 -1
- package/dist/doctor/index.js +0 -3
- package/dist/doctor/index.js.map +0 -1
- package/dist/doctor/registry.js +0 -230
- package/dist/doctor/registry.js.map +0 -1
- package/dist/exit-codes.js +0 -62
- package/dist/exit-codes.js.map +0 -1
- package/dist/installation.js +0 -48
- package/dist/installation.js.map +0 -1
- package/dist/integrations/clipboard/image.js +0 -119
- package/dist/integrations/clipboard/image.js.map +0 -1
- package/dist/integrations/clipboard/text.js +0 -43
- package/dist/integrations/clipboard/text.js.map +0 -1
- package/dist/integrations/files/attachment-store.js +0 -86
- package/dist/integrations/files/attachment-store.js.map +0 -1
- package/dist/integrations/mcp/oauth-store.js +0 -549
- package/dist/integrations/mcp/oauth-store.js.map +0 -1
- package/dist/integrations/mcp/servers.js +0 -519
- package/dist/integrations/mcp/servers.js.map +0 -1
- package/dist/integrations/mcp/user-config.js +0 -92
- package/dist/integrations/mcp/user-config.js.map +0 -1
- package/dist/integrations/notifications/desktop/freedesktop.js +0 -33
- package/dist/integrations/notifications/desktop/freedesktop.js.map +0 -1
- package/dist/integrations/notifications/desktop/macos.js +0 -17
- package/dist/integrations/notifications/desktop/macos.js.map +0 -1
- package/dist/integrations/notifications/desktop/sanitize.js +0 -49
- package/dist/integrations/notifications/desktop/sanitize.js.map +0 -1
- package/dist/integrations/notifications/desktop/throttle.js +0 -39
- package/dist/integrations/notifications/desktop/throttle.js.map +0 -1
- package/dist/integrations/notifications/desktop/windows-toast.js +0 -56
- package/dist/integrations/notifications/desktop/windows-toast.js.map +0 -1
- package/dist/integrations/notifications/desktop.js +0 -199
- package/dist/integrations/notifications/desktop.js.map +0 -1
- package/dist/integrations/notifications/terminal.js +0 -46
- package/dist/integrations/notifications/terminal.js.map +0 -1
- package/dist/integrations/npm-invocation.js +0 -23
- package/dist/integrations/npm-invocation.js.map +0 -1
- package/dist/integrations/plugins/runtime.js +0 -189
- package/dist/integrations/plugins/runtime.js.map +0 -1
- package/dist/integrations/plugins/settings.js +0 -106
- package/dist/integrations/plugins/settings.js.map +0 -1
- package/dist/integrations/providers/access.js +0 -23
- package/dist/integrations/providers/access.js.map +0 -1
- package/dist/integrations/providers/chain-capabilities.js +0 -211
- package/dist/integrations/providers/chain-capabilities.js.map +0 -1
- package/dist/integrations/providers/codex-device-login.js +0 -195
- package/dist/integrations/providers/codex-device-login.js.map +0 -1
- package/dist/integrations/providers/codex-oauth.js +0 -95
- package/dist/integrations/providers/codex-oauth.js.map +0 -1
- package/dist/integrations/providers/credential-provider.js +0 -74
- package/dist/integrations/providers/credential-provider.js.map +0 -1
- package/dist/integrations/providers/credential-store.js +0 -657
- package/dist/integrations/providers/credential-store.js.map +0 -1
- package/dist/integrations/providers/current-credential.js +0 -45
- package/dist/integrations/providers/current-credential.js.map +0 -1
- package/dist/integrations/providers/discover.js +0 -313
- package/dist/integrations/providers/discover.js.map +0 -1
- package/dist/integrations/providers/gemini-credentials.js +0 -148
- package/dist/integrations/providers/gemini-credentials.js.map +0 -1
- package/dist/integrations/providers/harness-credentials.js +0 -344
- package/dist/integrations/providers/harness-credentials.js.map +0 -1
- package/dist/integrations/providers/identity.js +0 -64
- package/dist/integrations/providers/identity.js.map +0 -1
- package/dist/integrations/providers/index.js +0 -14
- package/dist/integrations/providers/index.js.map +0 -1
- package/dist/integrations/providers/keychain.js +0 -78
- package/dist/integrations/providers/keychain.js.map +0 -1
- package/dist/integrations/providers/model-reasoning.js +0 -51
- package/dist/integrations/providers/model-reasoning.js.map +0 -1
- package/dist/integrations/providers/oauth.js +0 -302
- package/dist/integrations/providers/oauth.js.map +0 -1
- package/dist/integrations/providers/preferences.js +0 -287
- package/dist/integrations/providers/preferences.js.map +0 -1
- package/dist/integrations/providers/register.js +0 -154
- package/dist/integrations/providers/register.js.map +0 -1
- package/dist/integrations/providers/registry.js +0 -289
- package/dist/integrations/providers/registry.js.map +0 -1
- package/dist/integrations/providers/setup.js +0 -158
- package/dist/integrations/providers/setup.js.map +0 -1
- package/dist/integrations/providers/subscription-login.js +0 -328
- package/dist/integrations/providers/subscription-login.js.map +0 -1
- package/dist/integrations/providers/zen-catalogue.js +0 -196
- package/dist/integrations/providers/zen-catalogue.js.map +0 -1
- package/dist/integrations/resident/foreground.js +0 -95
- package/dist/integrations/resident/foreground.js.map +0 -1
- package/dist/integrations/resident/inspection.js +0 -282
- package/dist/integrations/resident/inspection.js.map +0 -1
- package/dist/integrations/resident/learning-sources.js +0 -79
- package/dist/integrations/resident/learning-sources.js.map +0 -1
- package/dist/integrations/resident/learning-storage.js +0 -55
- package/dist/integrations/resident/learning-storage.js.map +0 -1
- package/dist/integrations/resident/lifecycle-errors.js +0 -15
- package/dist/integrations/resident/lifecycle-errors.js.map +0 -1
- package/dist/integrations/resident/owned-runner.js +0 -91
- package/dist/integrations/resident/owned-runner.js.map +0 -1
- package/dist/integrations/resident/runner-control.js +0 -238
- package/dist/integrations/resident/runner-control.js.map +0 -1
- package/dist/integrations/resident/runner-launch.js +0 -142
- package/dist/integrations/resident/runner-launch.js.map +0 -1
- package/dist/integrations/resident/runner-store.js +0 -284
- package/dist/integrations/resident/runner-store.js.map +0 -1
- package/dist/integrations/resident/session-log-reads.js +0 -125
- package/dist/integrations/resident/session-log-reads.js.map +0 -1
- package/dist/integrations/resident/session-step.js +0 -471
- package/dist/integrations/resident/session-step.js.map +0 -1
- package/dist/integrations/resident/storage.js +0 -183
- package/dist/integrations/resident/storage.js.map +0 -1
- package/dist/integrations/resident/tool-evidence.js +0 -123
- package/dist/integrations/resident/tool-evidence.js.map +0 -1
- package/dist/integrations/resident/verification.js +0 -109
- package/dist/integrations/resident/verification.js.map +0 -1
- package/dist/integrations/sessions/checkpoint-view.js +0 -48
- package/dist/integrations/sessions/checkpoint-view.js.map +0 -1
- package/dist/integrations/sessions/context-inventory.js +0 -44
- package/dist/integrations/sessions/context-inventory.js.map +0 -1
- package/dist/integrations/sessions/conversation-search.js +0 -572
- package/dist/integrations/sessions/conversation-search.js.map +0 -1
- package/dist/integrations/sessions/display-title.js +0 -5
- package/dist/integrations/sessions/display-title.js.map +0 -1
- package/dist/integrations/sessions/evidence-page-validation.js +0 -74
- package/dist/integrations/sessions/evidence-page-validation.js.map +0 -1
- package/dist/integrations/sessions/evidence-recall.js +0 -117
- package/dist/integrations/sessions/evidence-recall.js.map +0 -1
- package/dist/integrations/sessions/store.js +0 -780
- package/dist/integrations/sessions/store.js.map +0 -1
- package/dist/integrations/sessions/task-context.js +0 -96
- package/dist/integrations/sessions/task-context.js.map +0 -1
- package/dist/integrations/sessions/transcript-export.js +0 -342
- package/dist/integrations/sessions/transcript-export.js.map +0 -1
- package/dist/integrations/state/home.js +0 -17
- package/dist/integrations/state/home.js.map +0 -1
- package/dist/integrations/state/identity.js +0 -49
- package/dist/integrations/state/identity.js.map +0 -1
- package/dist/integrations/state/immutable-json.js +0 -38
- package/dist/integrations/state/immutable-json.js.map +0 -1
- package/dist/integrations/state/private-directory.js +0 -43
- package/dist/integrations/state/private-directory.js.map +0 -1
- package/dist/integrations/state/project.js +0 -13
- package/dist/integrations/state/project.js.map +0 -1
- package/dist/integrations/state/report.js +0 -626
- package/dist/integrations/state/report.js.map +0 -1
- package/dist/integrations/state/retention.js +0 -18
- package/dist/integrations/state/retention.js.map +0 -1
- package/dist/integrations/subagents/NamzuCliAgent.js +0 -9
- package/dist/integrations/subagents/NamzuCliAgent.js.map +0 -1
- package/dist/integrations/subagents/activity.js +0 -759
- package/dist/integrations/subagents/activity.js.map +0 -1
- package/dist/integrations/subagents/batches.js +0 -172
- package/dist/integrations/subagents/batches.js.map +0 -1
- package/dist/integrations/subagents/definitions.js +0 -26
- package/dist/integrations/subagents/definitions.js.map +0 -1
- package/dist/integrations/subagents/model-effort.js +0 -12
- package/dist/integrations/subagents/model-effort.js.map +0 -1
- package/dist/integrations/subagents/parent.js +0 -47
- package/dist/integrations/subagents/parent.js.map +0 -1
- package/dist/integrations/subagents/policy.js +0 -3
- package/dist/integrations/subagents/policy.js.map +0 -1
- package/dist/integrations/subagents/replay.js +0 -295
- package/dist/integrations/subagents/replay.js.map +0 -1
- package/dist/integrations/subagents/runtime.js +0 -1317
- package/dist/integrations/subagents/runtime.js.map +0 -1
- package/dist/integrations/subagents/saved-agents.js +0 -102
- package/dist/integrations/subagents/saved-agents.js.map +0 -1
- package/dist/integrations/subagents/slash.js +0 -45
- package/dist/integrations/subagents/slash.js.map +0 -1
- package/dist/integrations/subagents/worktree-driver.js +0 -72
- package/dist/integrations/subagents/worktree-driver.js.map +0 -1
- package/dist/integrations/telemetry/session-export.js +0 -119
- package/dist/integrations/telemetry/session-export.js.map +0 -1
- package/dist/integrations/trust/store.js +0 -73
- package/dist/integrations/trust/store.js.map +0 -1
- package/dist/integrations/updates.js +0 -115
- package/dist/integrations/updates.js.map +0 -1
- package/dist/integrations/web/exa-search.js +0 -154
- package/dist/integrations/web/exa-search.js.map +0 -1
- package/dist/integrations/web/open-url.js +0 -73
- package/dist/integrations/web/open-url.js.map +0 -1
- package/dist/integrations/web/search.js +0 -68
- package/dist/integrations/web/search.js.map +0 -1
- package/dist/integrations/worktrees/managed.js +0 -231
- package/dist/integrations/worktrees/managed.js.map +0 -1
- package/dist/logging.js +0 -115
- package/dist/logging.js.map +0 -1
- package/dist/memory/io.js +0 -177
- package/dist/memory/io.js.map +0 -1
- package/dist/memory/presentation.js +0 -76
- package/dist/memory/presentation.js.map +0 -1
- package/dist/memory/store.js +0 -180
- package/dist/memory/store.js.map +0 -1
- package/dist/memory/typed.js +0 -336
- package/dist/memory/typed.js.map +0 -1
- package/dist/output/formatter.js +0 -16
- package/dist/output/formatter.js.map +0 -1
- package/dist/output/index.js +0 -22
- package/dist/output/index.js.map +0 -1
- package/dist/output/json.js +0 -51
- package/dist/output/json.js.map +0 -1
- package/dist/output/text.js +0 -50
- package/dist/output/text.js.map +0 -1
- package/dist/output/yaml.js +0 -26
- package/dist/output/yaml.js.map +0 -1
- package/dist/output-schema.js +0 -18
- package/dist/output-schema.js.map +0 -1
- package/dist/permissions/browser-sites.js +0 -270
- package/dist/permissions/browser-sites.js.map +0 -1
- package/dist/permissions/canonical-project.js +0 -13
- package/dist/permissions/canonical-project.js.map +0 -1
- package/dist/permissions/checks.js +0 -128
- package/dist/permissions/checks.js.map +0 -1
- package/dist/permissions/headless-trust.js +0 -86
- package/dist/permissions/headless-trust.js.map +0 -1
- package/dist/permissions/live-mode.js +0 -62
- package/dist/permissions/live-mode.js.map +0 -1
- package/dist/permissions/mode.js +0 -65
- package/dist/permissions/mode.js.map +0 -1
- package/dist/permissions/rules.js +0 -358
- package/dist/permissions/rules.js.map +0 -1
- package/dist/release-notes.js +0 -64
- package/dist/release-notes.js.map +0 -1
- package/dist/resume-invocation.js +0 -24
- package/dist/resume-invocation.js.map +0 -1
- package/dist/schedule/build.js +0 -374
- package/dist/schedule/build.js.map +0 -1
- package/dist/schedule/changes.js +0 -78
- package/dist/schedule/changes.js.map +0 -1
- package/dist/schedule/commands/add.js +0 -603
- package/dist/schedule/commands/add.js.map +0 -1
- package/dist/schedule/commands/args.js +0 -80
- package/dist/schedule/commands/args.js.map +0 -1
- package/dist/schedule/commands/confirm-prompt.js +0 -21
- package/dist/schedule/commands/confirm-prompt.js.map +0 -1
- package/dist/schedule/commands/lifecycle.js +0 -586
- package/dist/schedule/commands/lifecycle.js.map +0 -1
- package/dist/schedule/commands/list.js +0 -260
- package/dist/schedule/commands/list.js.map +0 -1
- package/dist/schedule/commands/logs.js +0 -106
- package/dist/schedule/commands/logs.js.map +0 -1
- package/dist/schedule/commands/service.js +0 -458
- package/dist/schedule/commands/service.js.map +0 -1
- package/dist/schedule/daemon/daemon.js +0 -1265
- package/dist/schedule/daemon/daemon.js.map +0 -1
- package/dist/schedule/daemon/endpoint.js +0 -158
- package/dist/schedule/daemon/endpoint.js.map +0 -1
- package/dist/schedule/daemon/exit.js +0 -8
- package/dist/schedule/daemon/exit.js.map +0 -1
- package/dist/schedule/daemon/log.js +0 -53
- package/dist/schedule/daemon/log.js.map +0 -1
- package/dist/schedule/daemon/notify.js +0 -158
- package/dist/schedule/daemon/notify.js.map +0 -1
- package/dist/schedule/daemon/retention.js +0 -46
- package/dist/schedule/daemon/retention.js.map +0 -1
- package/dist/schedule/daemon/sessions.js +0 -52
- package/dist/schedule/daemon/sessions.js.map +0 -1
- package/dist/schedule/env.js +0 -106
- package/dist/schedule/env.js.map +0 -1
- package/dist/schedule/fire/browser-preflight.js +0 -73
- package/dist/schedule/fire/browser-preflight.js.map +0 -1
- package/dist/schedule/fire/calls.js +0 -114
- package/dist/schedule/fire/calls.js.map +0 -1
- package/dist/schedule/fire/fire.js +0 -681
- package/dist/schedule/fire/fire.js.map +0 -1
- package/dist/schedule/fire/result.js +0 -19
- package/dist/schedule/fire/result.js.map +0 -1
- package/dist/schedule/fire/run-script.js +0 -81
- package/dist/schedule/fire/run-script.js.map +0 -1
- package/dist/schedule/fire/unattended-note.js +0 -51
- package/dist/schedule/fire/unattended-note.js.map +0 -1
- package/dist/schedule/fire/wake-gate.js +0 -90
- package/dist/schedule/fire/wake-gate.js.map +0 -1
- package/dist/schedule/floor.js +0 -1561
- package/dist/schedule/floor.js.map +0 -1
- package/dist/schedule/folder.js +0 -84
- package/dist/schedule/folder.js.map +0 -1
- package/dist/schedule/paths.js +0 -53
- package/dist/schedule/paths.js.map +0 -1
- package/dist/schedule/policy.js +0 -414
- package/dist/schedule/policy.js.map +0 -1
- package/dist/schedule/resume-command.js +0 -72
- package/dist/schedule/resume-command.js.map +0 -1
- package/dist/schedule/script-check.js +0 -146
- package/dist/schedule/script-check.js.map +0 -1
- package/dist/schedule/script-shell.js +0 -5
- package/dist/schedule/script-shell.js.map +0 -1
- package/dist/schedule/service/detect.js +0 -29
- package/dist/schedule/service/detect.js.map +0 -1
- package/dist/schedule/service/index.js +0 -361
- package/dist/schedule/service/index.js.map +0 -1
- package/dist/schedule/service/launchd.js +0 -84
- package/dist/schedule/service/launchd.js.map +0 -1
- package/dist/schedule/service/manifest.js +0 -16
- package/dist/schedule/service/manifest.js.map +0 -1
- package/dist/schedule/service/names.js +0 -22
- package/dist/schedule/service/names.js.map +0 -1
- package/dist/schedule/service/quote.js +0 -64
- package/dist/schedule/service/quote.js.map +0 -1
- package/dist/schedule/service/runner.js +0 -31
- package/dist/schedule/service/runner.js.map +0 -1
- package/dist/schedule/service/systemd.js +0 -96
- package/dist/schedule/service/systemd.js.map +0 -1
- package/dist/schedule/service/windows-task.js +0 -199
- package/dist/schedule/service/windows-task.js.map +0 -1
- package/dist/schedule/service/wsl.js +0 -121
- package/dist/schedule/service/wsl.js.map +0 -1
- package/dist/schedule/store/atomic.js +0 -138
- package/dist/schedule/store/atomic.js.map +0 -1
- package/dist/schedule/store/claims.js +0 -57
- package/dist/schedule/store/claims.js.map +0 -1
- package/dist/schedule/store/digest.js +0 -139
- package/dist/schedule/store/digest.js.map +0 -1
- package/dist/schedule/store/history.js +0 -117
- package/dist/schedule/store/history.js.map +0 -1
- package/dist/schedule/store/jobs.js +0 -277
- package/dist/schedule/store/jobs.js.map +0 -1
- package/dist/schedule/store/state.js +0 -38
- package/dist/schedule/store/state.js.map +0 -1
- package/dist/schedule/types.js +0 -33
- package/dist/schedule/types.js.map +0 -1
- package/dist/schedule/visible-source.js +0 -59
- package/dist/schedule/visible-source.js.map +0 -1
- package/dist/skills/audit.js +0 -75
- package/dist/skills/audit.js.map +0 -1
- package/dist/skills/catalog.js +0 -226
- package/dist/skills/catalog.js.map +0 -1
- package/dist/skills/directory.js +0 -51
- package/dist/skills/directory.js.map +0 -1
- package/dist/skills/save.js +0 -344
- package/dist/skills/save.js.map +0 -1
- package/dist/skills/store.js +0 -351
- package/dist/skills/store.js.map +0 -1
- package/dist/termination.js +0 -143
- package/dist/termination.js.map +0 -1
- package/dist/test-support/toolset.js +0 -27
- package/dist/test-support/toolset.js.map +0 -1
- package/dist/tui/AgentExplorer.js +0 -789
- package/dist/tui/AgentExplorer.js.map +0 -1
- package/dist/tui/App.js +0 -8209
- package/dist/tui/App.js.map +0 -1
- package/dist/tui/BrandHeader.js +0 -14
- package/dist/tui/BrandHeader.js.map +0 -1
- package/dist/tui/Checklist.js +0 -90
- package/dist/tui/Checklist.js.map +0 -1
- package/dist/tui/ChoicePicker.js +0 -64
- package/dist/tui/ChoicePicker.js.map +0 -1
- package/dist/tui/Composer.js +0 -908
- package/dist/tui/Composer.js.map +0 -1
- package/dist/tui/ComposerFrame.js +0 -79
- package/dist/tui/ComposerFrame.js.map +0 -1
- package/dist/tui/CopyPicker.js +0 -19
- package/dist/tui/CopyPicker.js.map +0 -1
- package/dist/tui/EditPromptPicker.js +0 -17
- package/dist/tui/EditPromptPicker.js.map +0 -1
- package/dist/tui/EffortSlider.js +0 -134
- package/dist/tui/EffortSlider.js.map +0 -1
- package/dist/tui/LiveActivity.js +0 -89
- package/dist/tui/LiveActivity.js.map +0 -1
- package/dist/tui/Markdown.js +0 -137
- package/dist/tui/Markdown.js.map +0 -1
- package/dist/tui/PermissionOverlay.js +0 -278
- package/dist/tui/PermissionOverlay.js.map +0 -1
- package/dist/tui/Picker.js +0 -1310
- package/dist/tui/Picker.js.map +0 -1
- package/dist/tui/ProviderSetup.js +0 -125
- package/dist/tui/ProviderSetup.js.map +0 -1
- package/dist/tui/ResumePicker.js +0 -34
- package/dist/tui/ResumePicker.js.map +0 -1
- package/dist/tui/SaveSkillOverlay.js +0 -118
- package/dist/tui/SaveSkillOverlay.js.map +0 -1
- package/dist/tui/ScheduleReviewOverlay.js +0 -166
- package/dist/tui/ScheduleReviewOverlay.js.map +0 -1
- package/dist/tui/StatusBar.js +0 -182
- package/dist/tui/StatusBar.js.map +0 -1
- package/dist/tui/StatusPanel.js +0 -11
- package/dist/tui/StatusPanel.js.map +0 -1
- package/dist/tui/TaskList.js +0 -43
- package/dist/tui/TaskList.js.map +0 -1
- package/dist/tui/TextPrompt.js +0 -185
- package/dist/tui/TextPrompt.js.map +0 -1
- package/dist/tui/ToolOutputViewer.js +0 -39
- package/dist/tui/ToolOutputViewer.js.map +0 -1
- package/dist/tui/Transcript.js +0 -235
- package/dist/tui/Transcript.js.map +0 -1
- package/dist/tui/TrustPrompt.js +0 -13
- package/dist/tui/TrustPrompt.js.map +0 -1
- package/dist/tui/ViewportBound.js +0 -55
- package/dist/tui/ViewportBound.js.map +0 -1
- package/dist/tui/agent-transcript-rows.js +0 -115
- package/dist/tui/agent-transcript-rows.js.map +0 -1
- package/dist/tui/agent.js +0 -4235
- package/dist/tui/agent.js.map +0 -1
- package/dist/tui/browser-notices.js +0 -107
- package/dist/tui/browser-notices.js.map +0 -1
- package/dist/tui/choice-selection.js +0 -38
- package/dist/tui/choice-selection.js.map +0 -1
- package/dist/tui/compact-transcript.js +0 -46
- package/dist/tui/compact-transcript.js.map +0 -1
- package/dist/tui/consent-timing.js +0 -48
- package/dist/tui/consent-timing.js.map +0 -1
- package/dist/tui/conversation-evidence-view.js +0 -96
- package/dist/tui/conversation-evidence-view.js.map +0 -1
- package/dist/tui/conversation-history.js +0 -33
- package/dist/tui/conversation-history.js.map +0 -1
- package/dist/tui/copy-targets.js +0 -189
- package/dist/tui/copy-targets.js.map +0 -1
- package/dist/tui/credential-entry.js +0 -134
- package/dist/tui/credential-entry.js.map +0 -1
- package/dist/tui/edit-prompts.js +0 -35
- package/dist/tui/edit-prompts.js.map +0 -1
- package/dist/tui/exit-summary.js +0 -30
- package/dist/tui/exit-summary.js.map +0 -1
- package/dist/tui/external-editor.js +0 -169
- package/dist/tui/external-editor.js.map +0 -1
- package/dist/tui/hypermode.js +0 -58
- package/dist/tui/hypermode.js.map +0 -1
- package/dist/tui/index.js +0 -81
- package/dist/tui/index.js.map +0 -1
- package/dist/tui/live-window.js +0 -281
- package/dist/tui/live-window.js.map +0 -1
- package/dist/tui/log-pane.js +0 -100
- package/dist/tui/log-pane.js.map +0 -1
- package/dist/tui/login-prompt.js +0 -105
- package/dist/tui/login-prompt.js.map +0 -1
- package/dist/tui/logo.js +0 -9
- package/dist/tui/logo.js.map +0 -1
- package/dist/tui/markdown-block-cache.js +0 -76
- package/dist/tui/markdown-block-cache.js.map +0 -1
- package/dist/tui/markdown-table.js +0 -175
- package/dist/tui/markdown-table.js.map +0 -1
- package/dist/tui/markdown-wrap.js +0 -189
- package/dist/tui/markdown-wrap.js.map +0 -1
- package/dist/tui/markdownParser.js +0 -237
- package/dist/tui/markdownParser.js.map +0 -1
- package/dist/tui/mentions.js +0 -150
- package/dist/tui/mentions.js.map +0 -1
- package/dist/tui/model-catalogue-view.js +0 -75
- package/dist/tui/model-catalogue-view.js.map +0 -1
- package/dist/tui/model-choices.js +0 -157
- package/dist/tui/model-choices.js.map +0 -1
- package/dist/tui/model-search.js +0 -28
- package/dist/tui/model-search.js.map +0 -1
- package/dist/tui/model-selection-intent.js +0 -96
- package/dist/tui/model-selection-intent.js.map +0 -1
- package/dist/tui/model-switch-tool.js +0 -74
- package/dist/tui/model-switch-tool.js.map +0 -1
- package/dist/tui/model-switch.js +0 -106
- package/dist/tui/model-switch.js.map +0 -1
- package/dist/tui/notices.js +0 -27
- package/dist/tui/notices.js.map +0 -1
- package/dist/tui/open-browser.js +0 -147
- package/dist/tui/open-browser.js.map +0 -1
- package/dist/tui/permission-review.js +0 -858
- package/dist/tui/permission-review.js.map +0 -1
- package/dist/tui/plugin-view.js +0 -59
- package/dist/tui/plugin-view.js.map +0 -1
- package/dist/tui/provider-list.js +0 -327
- package/dist/tui/provider-list.js.map +0 -1
- package/dist/tui/provider-selection.js +0 -16
- package/dist/tui/provider-selection.js.map +0 -1
- package/dist/tui/schedule/host-commands.js +0 -428
- package/dist/tui/schedule/host-commands.js.map +0 -1
- package/dist/tui/schedule/integration.js +0 -150
- package/dist/tui/schedule/integration.js.map +0 -1
- package/dist/tui/schedule/loop-host.js +0 -153
- package/dist/tui/schedule/loop-host.js.map +0 -1
- package/dist/tui/schedule/resume.js +0 -333
- package/dist/tui/schedule/resume.js.map +0 -1
- package/dist/tui/schedule/startup.js +0 -121
- package/dist/tui/schedule/startup.js.map +0 -1
- package/dist/tui/schedule/tool-host.js +0 -619
- package/dist/tui/schedule/tool-host.js.map +0 -1
- package/dist/tui/selection-window.js +0 -37
- package/dist/tui/selection-window.js.map +0 -1
- package/dist/tui/shell-escape.js +0 -110
- package/dist/tui/shell-escape.js.map +0 -1
- package/dist/tui/skills/learning.js +0 -131
- package/dist/tui/skills/learning.js.map +0 -1
- package/dist/tui/skills/suggest-setting.js +0 -55
- package/dist/tui/skills/suggest-setting.js.map +0 -1
- package/dist/tui/skills/suggestion-ledger.js +0 -52
- package/dist/tui/skills/suggestion-ledger.js.map +0 -1
- package/dist/tui/slashCommands.js +0 -1587
- package/dist/tui/slashCommands.js.map +0 -1
- package/dist/tui/status-card.js +0 -30
- package/dist/tui/status-card.js.map +0 -1
- package/dist/tui/status-panel-layout.js +0 -42
- package/dist/tui/status-panel-layout.js.map +0 -1
- package/dist/tui/stream-blocks.js +0 -187
- package/dist/tui/stream-blocks.js.map +0 -1
- package/dist/tui/task-activity.js +0 -157
- package/dist/tui/task-activity.js.map +0 -1
- package/dist/tui/terminal-choice-text.js +0 -118
- package/dist/tui/terminal-choice-text.js.map +0 -1
- package/dist/tui/terminal-display.js +0 -65
- package/dist/tui/terminal-display.js.map +0 -1
- package/dist/tui/terminal-hyperlinks.js +0 -70
- package/dist/tui/terminal-hyperlinks.js.map +0 -1
- package/dist/tui/theme.js +0 -34
- package/dist/tui/theme.js.map +0 -1
- package/dist/tui/triggers/analyze.js +0 -221
- package/dist/tui/triggers/analyze.js.map +0 -1
- package/dist/tui/triggers/context-text.js +0 -44
- package/dist/tui/triggers/context-text.js.map +0 -1
- package/dist/tui/triggers/copy.js +0 -163
- package/dist/tui/triggers/copy.js.map +0 -1
- package/dist/tui/triggers/detect.js +0 -295
- package/dist/tui/triggers/detect.js.map +0 -1
- package/dist/tui/triggers/fold.js +0 -44
- package/dist/tui/triggers/fold.js.map +0 -1
- package/dist/tui/triggers/pattern.js +0 -243
- package/dist/tui/triggers/pattern.js.map +0 -1
- package/dist/tui/triggers/provenance.js +0 -98
- package/dist/tui/triggers/provenance.js.map +0 -1
- package/dist/tui/triggers/registry.js +0 -164
- package/dist/tui/triggers/registry.js.map +0 -1
- package/dist/tui/triggers/setting.js +0 -61
- package/dist/tui/triggers/setting.js.map +0 -1
- package/dist/tui/triggers/verbs.js +0 -140
- package/dist/tui/triggers/verbs.js.map +0 -1
- package/dist/tui/turn-interruption.js +0 -160
- package/dist/tui/turn-interruption.js.map +0 -1
- package/dist/tui/turn-limits-settings.js +0 -88
- package/dist/tui/turn-limits-settings.js.map +0 -1
- package/dist/tui/types.js +0 -7
- package/dist/tui/types.js.map +0 -1
- package/dist/tui/units.js +0 -20
- package/dist/tui/units.js.map +0 -1
- package/dist/tui/use-selection-index.js +0 -13
- package/dist/tui/use-selection-index.js.map +0 -1
- package/dist/tui/web-activity.js +0 -105
- package/dist/tui/web-activity.js.map +0 -1
- package/dist/tui/workspace-diff.js +0 -101
- package/dist/tui/workspace-diff.js.map +0 -1
- package/dist/tui/workspace-review.js +0 -67
- package/dist/tui/workspace-review.js.map +0 -1
- package/dist/user-commands/store.js +0 -235
- package/dist/user-commands/store.js.map +0 -1
- package/dist/version.js +0 -23
- package/dist/version.js.map +0 -1
|
@@ -1,789 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
import { Box, Text } from 'ink';
|
|
3
|
-
import { useEffect, useState } from 'react';
|
|
4
|
-
import stringWidth from 'string-width';
|
|
5
|
-
import { DEFAULT_AGENT_PHASE, DEFAULT_AGENT_WORKFLOW, } from '../integrations/subagents/activity.js';
|
|
6
|
-
import { formatElapsed } from './LiveActivity.js';
|
|
7
|
-
import { formatCompactCount } from './units.js';
|
|
8
|
-
import { selectionWindow } from './selection-window.js';
|
|
9
|
-
import { terminalDisplayText } from './terminal-display.js';
|
|
10
|
-
import { truncateChoiceText } from './terminal-choice-text.js';
|
|
11
|
-
import { theme } from './theme.js';
|
|
12
|
-
const MAX_PICKER_ROWS = 9;
|
|
13
|
-
const COCKPIT_FRAME_COLUMNS = 4;
|
|
14
|
-
const WIDE_COCKPIT_INNER_COLUMNS = 84;
|
|
15
|
-
/**
|
|
16
|
-
* A resolved model id is host-reported, unbounded text — a self-hosted or
|
|
17
|
-
* gateway-style id routinely runs 60-90+ cells. The meta box that carries it
|
|
18
|
-
* sits `flexShrink={0}` beside the description/activity boxes that ARE
|
|
19
|
-
* allowed to shrink, so an uncapped model string does not get truncated
|
|
20
|
-
* itself: it forces its shrinkable neighbours down first, to zero if the
|
|
21
|
-
* deficit is large enough. Capping the label here, before it ever reaches
|
|
22
|
-
* `agentMetaParts`, bounds the meta box's width unconditionally so it can
|
|
23
|
-
* never outcompete the row's own description for space.
|
|
24
|
-
*/
|
|
25
|
-
const MAX_MODEL_LABEL_WIDTH = 24;
|
|
26
|
-
/**
|
|
27
|
-
* A focused phase's detail is wrapped to the pane width and clipped to this
|
|
28
|
-
* many rows, so an operator-authored sentence never grows the cockpit taller
|
|
29
|
-
* than a one-word one. The Box that holds it is always exactly this height
|
|
30
|
-
* when a detail exists, whether wrapping produced one row or the full budget.
|
|
31
|
-
*/
|
|
32
|
-
const PHASE_DETAIL_LINE_BUDGET = 3;
|
|
33
|
-
/**
|
|
34
|
-
* Shown at the head of a transcript rebuilt from saved evidence.
|
|
35
|
-
*
|
|
36
|
-
* Both halves are load-bearing. The first says where the rows came from, so
|
|
37
|
-
* an empty stretch reads as "the log did not record that" rather than as a
|
|
38
|
-
* child sitting idle. The second is the guarantee the docs already make about
|
|
39
|
-
* resume — delegated tasks are not restarted and their processes are not
|
|
40
|
-
* reconnected — restated on the one screen that otherwise looks exactly like
|
|
41
|
-
* a live child's. Nothing on this screen may imply otherwise: there is no
|
|
42
|
-
* message box and no cancel affordance here for a live child either, and a
|
|
43
|
-
* replayed one must never acquire one.
|
|
44
|
-
*/
|
|
45
|
-
export const REPLAYED_TRANSCRIPT_NOTICE = 'Replayed from saved evidence. This child cannot be continued.';
|
|
46
|
-
/**
|
|
47
|
-
* Rows outside the cockpit's own box: the one-line brand header, printed once
|
|
48
|
-
* above it, and the one-line composer footer, which now renders directly
|
|
49
|
-
* above the cockpit rather than below it (see StatusBar.tsx). The total is
|
|
50
|
-
* unchanged by that reordering — both rows still sit outside this box exactly
|
|
51
|
-
* once — so a box shorter than `terminalRows` minus this still leaves an
|
|
52
|
-
* unclaimed row that does not belong to anything, and an unclaimed row does
|
|
53
|
-
* not stay blank: it shows whatever transcript history was next in line to
|
|
54
|
-
* scroll off.
|
|
55
|
-
*/
|
|
56
|
-
const COCKPIT_CHROME_ROWS = 2;
|
|
57
|
-
const graphemes = new Intl.Segmenter(undefined, { granularity: 'grapheme' });
|
|
58
|
-
/**
|
|
59
|
-
* The parent's own commentary, directly above the rail and outside its tree.
|
|
60
|
-
*
|
|
61
|
-
* Outside is the point. Inside the tree these rows would read as chrome the
|
|
62
|
-
* panel emitted about its agents; above it, unboxed and aligned with the
|
|
63
|
-
* rail's inner text, they read as the turn talking — which is what they are
|
|
64
|
-
* (see {@link SubagentNarrationLine} for why only the parent may write one).
|
|
65
|
-
*
|
|
66
|
-
* The band claims a row per line and nothing more: no border, no heading, no
|
|
67
|
-
* blank separator, and nothing at all when there is no commentary, so a turn
|
|
68
|
-
* that never narrates renders exactly as it did before this existed. The
|
|
69
|
-
* monitor bounds the list, so the rows this can spend are bounded with it, and
|
|
70
|
-
* the rail below keeps its own height budget either way — that budget is
|
|
71
|
-
* computed from the terminal's rows and never from what is above it, so no
|
|
72
|
-
* agent row is ever traded for a line of commentary.
|
|
73
|
-
*
|
|
74
|
-
* On a screen with no spare row, these rows are paid for the way every other
|
|
75
|
-
* row this TUI adds is paid for: the frame grows, the terminal scrolls, and
|
|
76
|
-
* what leaves is the oldest conversation at the TOP — the rail stays where it
|
|
77
|
-
* is, whole. Measured in a real terminal at 24 rows with and without
|
|
78
|
-
* narration; note that a replay reading row 0 of the emulator's BUFFER rather
|
|
79
|
-
* than the viewport at `baseY` reports the opposite once the screen has
|
|
80
|
-
* scrolled, because those are no longer the same rows
|
|
81
|
-
* (`research/conversation-evidence/narration-band-cli.mjs`).
|
|
82
|
-
*/
|
|
83
|
-
export function AgentNarrationBand({ lines }) {
|
|
84
|
-
if (lines.length === 0)
|
|
85
|
-
return null;
|
|
86
|
-
return (
|
|
87
|
-
// paddingX 2 lands the text where the rail's title starts — past its
|
|
88
|
-
// two-cell header glyph — so the two columns line up.
|
|
89
|
-
_jsx(Box, { flexDirection: "column", paddingX: 2, children: lines.map((line) => (_jsx(Box, { children: _jsx(Text, { color: theme.text.muted, wrap: "truncate-end", children: terminalDisplayText(oneLine(line.text)) }) }, line.id))) }));
|
|
90
|
-
}
|
|
91
|
-
/**
|
|
92
|
-
* Compact, automatic view of every cohort that still owns live work.
|
|
93
|
-
*
|
|
94
|
-
* This is intentionally not a modal: the composer remains mounted directly
|
|
95
|
-
* above it and the operator can keep typing while children run. Completed
|
|
96
|
-
* siblings remain until their last live sibling settles, then the whole
|
|
97
|
-
* cohort leaves this projection together.
|
|
98
|
-
*
|
|
99
|
-
* Drawn as a borderless tree aligned with the transcript's own gutter — a
|
|
100
|
-
* header line, then one `├`/`└` branch per agent with its latest activity on
|
|
101
|
-
* a `⎿` line beneath it — rather than as a boxed panel: the rows are the
|
|
102
|
-
* turn's live work, not chrome around it.
|
|
103
|
-
*/
|
|
104
|
-
export function AgentTaskPanel({ agents, terminalRows, terminalColumns, compact = false, }) {
|
|
105
|
-
const now = useLiveNow(true);
|
|
106
|
-
const activityLines = agentTaskPanelShowsActivity(terminalRows);
|
|
107
|
-
const pageSize = agentTaskPanelPageSize(terminalRows);
|
|
108
|
-
const active = agents.filter((agent) => !isTerminalStatus(agent.status)).length;
|
|
109
|
-
const workflows = [...new Set(agents.map((agent) => agent.workflow))];
|
|
110
|
-
const workflowLabel = workflows.length === 1 ? workflows[0] : undefined;
|
|
111
|
-
// A shared, explicitly supplied workflow label earns the title slot; an
|
|
112
|
-
// absent one (every agent still carries the unlabelled default) or a mix
|
|
113
|
-
// of several distinct labels falls back to a neutral count instead of the
|
|
114
|
-
// generic default name, which named nothing about THESE agents.
|
|
115
|
-
const labelled = workflowLabel !== undefined && workflowLabel !== DEFAULT_AGENT_WORKFLOW;
|
|
116
|
-
const title = labelled
|
|
117
|
-
? workflowLabel
|
|
118
|
-
: `${agents.length} agent${agents.length === 1 ? '' : 's'}`;
|
|
119
|
-
const narrow = terminalColumns < 64;
|
|
120
|
-
const showModel = !narrow && terminalColumns >= 76;
|
|
121
|
-
const showCounters = !narrow && terminalColumns >= 96;
|
|
122
|
-
// A workflow the model split into several phases is drawn the way its
|
|
123
|
-
// phases went: a settled phase is one line (`✓ Phase 1 · 2/2 · 3.9s`), a
|
|
124
|
-
// live one is its line with its agents beneath it. One phase is drawn as
|
|
125
|
-
// before, the agents straight under the header.
|
|
126
|
-
const phases = agentPhases(agents);
|
|
127
|
-
const phased = phases.length > 1;
|
|
128
|
-
const groups = (phased ? phases : [{ id: 'all', agents }]).map((phase) => ({
|
|
129
|
-
phase: phased ? phase : undefined,
|
|
130
|
-
agents: [...phase.agents],
|
|
131
|
-
}));
|
|
132
|
-
// The page budget is spent on agents of live phases only; a settled
|
|
133
|
-
// phase costs its one line, and on a short screen not even that.
|
|
134
|
-
let budget = compact ? 0 : pageSize;
|
|
135
|
-
const drawn = groups.map((group) => {
|
|
136
|
-
const settled = group.phase !== undefined && isTerminalStatus(group.phase.status);
|
|
137
|
-
if (settled)
|
|
138
|
-
return { ...group, settled, visible: [] };
|
|
139
|
-
const visible = group.agents.slice(0, Math.max(0, budget));
|
|
140
|
-
budget -= visible.length;
|
|
141
|
-
return { ...group, settled, visible };
|
|
142
|
-
});
|
|
143
|
-
const hidden = compact
|
|
144
|
-
? 0
|
|
145
|
-
: drawn.reduce((sum, group) => sum + (group.settled ? 0 : group.agents.length - group.visible.length), 0);
|
|
146
|
-
const showSettledPhases = !compact && activityLines;
|
|
147
|
-
const running = agents.filter((agent) => agent.status === 'working' || agent.status === 'starting').length;
|
|
148
|
-
const queued = agents.filter((agent) => agent.status === 'queued').length;
|
|
149
|
-
const done = agents.length - active;
|
|
150
|
-
const startedAt = Math.min(...agents.map((agent) => agent.startedAt));
|
|
151
|
-
const spent = agents.reduce((sum, agent) => (agent.tokens === undefined ? sum : (sum ?? 0) + agent.tokens), undefined);
|
|
152
|
-
// Narrow or wide, the count is the reference's `done/total`, the same
|
|
153
|
-
// figure the cockpit header and each phase line carry, so one moment
|
|
154
|
-
// never reads as two different numbers.
|
|
155
|
-
const counts = narrow
|
|
156
|
-
? `${done}/${agents.length} done${hidden > 0 ? ` +${hidden}` : ''}`
|
|
157
|
-
: [
|
|
158
|
-
`${running} running`,
|
|
159
|
-
...(queued > 0 ? [`${queued} queued`] : []),
|
|
160
|
-
// The reference's own counter: how much of this workflow is done.
|
|
161
|
-
...(done > 0 ? [`${done}/${agents.length} done`] : []),
|
|
162
|
-
...(showCounters
|
|
163
|
-
? [
|
|
164
|
-
formatElapsed(Math.max(0, now - startedAt)),
|
|
165
|
-
...(spent !== undefined ? [`${formatCompactCount(spent)} tokens`] : []),
|
|
166
|
-
]
|
|
167
|
-
: []),
|
|
168
|
-
// A review owns the keyboard, so neither key reaches the rail while
|
|
169
|
-
// the panel is reduced for one: it names no key it cannot keep.
|
|
170
|
-
...(compact ? [] : ['↓ / ctrl+t']),
|
|
171
|
-
].join(' · ');
|
|
172
|
-
return (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Box, { children: [_jsx(Box, { width: 2, flexShrink: 0, children: _jsx(Text, { color: active > 0 ? theme.accent.assistant : theme.status.ok, children: active > 0 ? '●' : '✓' }) }), _jsx(Box, { flexShrink: 1, minWidth: 0, children: _jsx(Text, { color: theme.text.primary, bold: true, wrap: "truncate-end", children: terminalDisplayText(title) }) }), _jsx(Box, { flexShrink: 0, children: _jsxs(Text, { color: theme.text.muted, children: [" \u00B7 ", counts] }) })] }), drawn.map((group) => {
|
|
173
|
-
const phase = group.phase;
|
|
174
|
-
if (phase && group.settled && !showSettledPhases)
|
|
175
|
-
return null;
|
|
176
|
-
const indent = phase ? 4 : 2;
|
|
177
|
-
return (_jsxs(Box, { flexDirection: "column", children: [phase ? (_jsxs(Box, { paddingLeft: 2, children: [_jsx(Box, { width: 2, flexShrink: 0, children: _jsx(Text, { color: statusColor(phase.status), children: statusGlyph(phase.status) }) }), _jsx(Box, { flexShrink: 1, minWidth: 0, children: _jsx(Text, { color: group.settled ? theme.text.secondary : theme.text.primary, wrap: "truncate-end", children: oneLine(phase.name) }) }), _jsx(Box, { flexShrink: 0, children: _jsxs(Text, { color: theme.text.muted, children: [' · ', phaseProgress(phase), group.settled ? ` · ${formatElapsed(phaseElapsed(phase, now))}` : ''] }) })] })) : null, group.visible.map((agent, index) => {
|
|
178
|
-
const last = index === group.visible.length - 1 &&
|
|
179
|
-
group.agents.length === group.visible.length &&
|
|
180
|
-
(phase !== undefined || hidden === 0);
|
|
181
|
-
// Clamped: a child begun after this panel's last clock tick would
|
|
182
|
-
// otherwise read `-0.0s` until the next one.
|
|
183
|
-
const elapsed = formatElapsed(Math.max(0, (agent.completedAt ?? now) - agent.startedAt));
|
|
184
|
-
const meta = agentRailMetaParts(agent, { showModel, showCounters });
|
|
185
|
-
const agentRunning = !isTerminalStatus(agent.status);
|
|
186
|
-
const activity = agentRunning ? railActivity(agent) : undefined;
|
|
187
|
-
return (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Box, { paddingLeft: indent, children: [_jsx(Box, { width: 2, flexShrink: 0, children: _jsx(Text, { color: theme.text.muted, children: last ? '└' : '├' }) }), _jsx(Box, { width: 2, flexShrink: 0, children: _jsx(Text, { color: statusColor(agent.status), children: statusGlyph(agent.status) }) }), _jsx(Box, { width: narrow ? undefined : 28 - (indent - 2), flexGrow: narrow ? 1 : 0, flexShrink: 1, children: _jsx(Text, { color: theme.text.primary, wrap: "truncate-end", children: oneLine(agent.description || agent.agentId) }) }), _jsx(Box, { flexGrow: narrow ? 0 : 1, flexShrink: 1, marginLeft: 1, children: _jsxs(Text, { color: theme.text.secondary, wrap: "truncate-end", children: [agent.status === 'queued' ? 'queued' : elapsed, !narrow && !activityLines && activity ? ` · ${activity}` : ''] }) }), meta.length > 0 ? (_jsx(Box, { flexShrink: 0, marginLeft: 1, children: _jsx(Text, { color: theme.text.muted, wrap: "truncate-end", children: meta.join(' · ') }) })) : null] }), activityLines && activity ? (_jsxs(Box, { paddingLeft: indent, children: [_jsx(Box, { width: 4, flexShrink: 0, children: _jsx(Text, { color: theme.text.muted, children: last ? ' ' : '│' }) }), _jsx(Box, { flexShrink: 1, minWidth: 0, children: _jsxs(Text, { color: theme.text.secondary, wrap: "truncate-end", children: ["\u23BF ", activity] }) })] })) : null] }, agent.viewId));
|
|
188
|
-
})] }, phase?.id ?? 'all'));
|
|
189
|
-
}), hidden > 0 ? (_jsx(Box, { paddingLeft: 2, children: _jsxs(Text, { color: theme.text.muted, children: ["\u2514 +", hidden, " more \u00B7 ctrl+t"] }) })) : null] }));
|
|
190
|
-
}
|
|
191
|
-
/**
|
|
192
|
-
* Whether each running agent gets its own `⎿ activity` line. On a short
|
|
193
|
-
* terminal the activity stays inline after the elapsed time instead, so the
|
|
194
|
-
* rail keeps one row per agent where rows are scarcest.
|
|
195
|
-
*/
|
|
196
|
-
export function agentTaskPanelShowsActivity(terminalRows) {
|
|
197
|
-
return terminalRows !== undefined && Number.isFinite(terminalRows) && terminalRows >= 24;
|
|
198
|
-
}
|
|
199
|
-
/**
|
|
200
|
-
* Agents the compact panel may show without crowding the composer/footer.
|
|
201
|
-
* An agent costs two rows where activity lines are drawn and one elsewhere,
|
|
202
|
-
* so the budget in ROWS stays what it was when every agent took one.
|
|
203
|
-
*/
|
|
204
|
-
export function agentTaskPanelPageSize(terminalRows) {
|
|
205
|
-
if (terminalRows === undefined || !Number.isFinite(terminalRows))
|
|
206
|
-
return 2;
|
|
207
|
-
const rowsPerAgent = agentTaskPanelShowsActivity(terminalRows) ? 2 : 1;
|
|
208
|
-
return Math.max(1, Math.min(4, Math.floor((terminalRows - 12) / (3 * rowsPerAgent))));
|
|
209
|
-
}
|
|
210
|
-
/** What the running agent is doing now, or its status when it has said nothing yet. */
|
|
211
|
-
function railActivity(agent) {
|
|
212
|
-
if (agent.status === 'queued')
|
|
213
|
-
return 'Waiting for a slot';
|
|
214
|
-
return distinctActivity(agent) ?? statusLabel(agent.status);
|
|
215
|
-
}
|
|
216
|
-
/**
|
|
217
|
-
* The rail's own ordering: tool uses and spend first, then the model, with
|
|
218
|
-
* counters dropped first on a narrow screen. The saved marker, when present,
|
|
219
|
-
* leads for the reason `agentMetaParts` gives.
|
|
220
|
-
*/
|
|
221
|
-
function agentRailMetaParts(agent, options) {
|
|
222
|
-
const parts = [];
|
|
223
|
-
if (agent.replayed)
|
|
224
|
-
parts.push('saved');
|
|
225
|
-
if (options.showCounters) {
|
|
226
|
-
if (agent.toolCalls !== undefined) {
|
|
227
|
-
parts.push(`${agent.toolCalls} ${agent.toolCalls === 1 ? 'tool' : 'tools'}`);
|
|
228
|
-
}
|
|
229
|
-
if (agent.tokens !== undefined)
|
|
230
|
-
parts.push(formatCompactCount(agent.tokens));
|
|
231
|
-
}
|
|
232
|
-
if (options.showModel && agent.model) {
|
|
233
|
-
parts.push(truncateChoiceText(agent.model, MAX_MODEL_LABEL_WIDTH));
|
|
234
|
-
}
|
|
235
|
-
return parts;
|
|
236
|
-
}
|
|
237
|
-
/**
|
|
238
|
-
* Live cohorts plus their already-settled siblings. Terminal cohorts are
|
|
239
|
-
* retained by the monitor for explicit history but never reappear here.
|
|
240
|
-
*/
|
|
241
|
-
export function activeSubagentCohorts(agents) {
|
|
242
|
-
// Replayed rows are excluded before anything else, in BOTH directions:
|
|
243
|
-
// they never appear in this panel, and a replayed row whose saved status
|
|
244
|
-
// never reached a terminal value never makes a cohort look live. Saved
|
|
245
|
-
// evidence describes work that ended in another process, and this panel
|
|
246
|
-
// exists to say what is running now.
|
|
247
|
-
const live = agents.filter((agent) => agent.replayed !== true);
|
|
248
|
-
const activeCohorts = new Set(live.filter((agent) => !isTerminalStatus(agent.status)).map(agentCohortKey));
|
|
249
|
-
return live.filter((agent) => activeCohorts.has(agentCohortKey(agent)));
|
|
250
|
-
}
|
|
251
|
-
/**
|
|
252
|
-
* What stays on the rail together. A labelled workflow is one cohort across
|
|
253
|
-
* every batch of its parent turn, so a settled Phase 1 is still drawn while
|
|
254
|
-
* Phase 2 runs; an unlabelled batch is its own cohort, as it always was
|
|
255
|
-
* (`workflowGroupId` is exactly that split, made by the monitor).
|
|
256
|
-
*/
|
|
257
|
-
function agentCohortKey(agent) {
|
|
258
|
-
return agent.workflowGroupId;
|
|
259
|
-
}
|
|
260
|
-
/**
|
|
261
|
-
* Live workflow projection. App owns input; this component renders only the
|
|
262
|
-
* bounded scheduler state it receives and never invents orchestration state.
|
|
263
|
-
*/
|
|
264
|
-
export function AgentCockpit({ agents, selectedPhaseId, selectedId, focus, terminalRows, terminalColumns, }) {
|
|
265
|
-
const workflows = agentWorkflows(agents);
|
|
266
|
-
const workflowIndex = Math.max(0, workflows.findIndex((workflow) => workflow.phases.some((phase) => phase.id === selectedPhaseId)));
|
|
267
|
-
const workflow = workflows[workflowIndex];
|
|
268
|
-
const phases = workflow?.phases ?? [];
|
|
269
|
-
const selectedPhaseIndex = Math.max(0, phases.findIndex((phase) => phase.id === selectedPhaseId));
|
|
270
|
-
const selectedPhase = phases[selectedPhaseIndex];
|
|
271
|
-
const phaseAgents = selectedPhase?.agents ?? [];
|
|
272
|
-
const selectedAgentIndex = Math.max(0, phaseAgents.findIndex((agent) => agent.viewId === selectedId));
|
|
273
|
-
const now = useLiveNow(agents.some((agent) => agent.completedAt === undefined));
|
|
274
|
-
const active = workflow?.agents.filter((agent) => !isTerminalStatus(agent.status)).length ?? 0;
|
|
275
|
-
const wide = agentCockpitIsWide(terminalColumns);
|
|
276
|
-
const compact = terminalRows < 20;
|
|
277
|
-
const sideBySide = wide;
|
|
278
|
-
const phasePaneWidth = sideBySide
|
|
279
|
-
? Math.max(24, Math.min(36, Math.floor(terminalColumns * 0.3)))
|
|
280
|
-
: undefined;
|
|
281
|
-
if (focus === 'workflows') {
|
|
282
|
-
const { items } = selectionWindow(workflows, workflowIndex, agentWorkflowPageSize(terminalRows));
|
|
283
|
-
return (_jsxs(Box, { flexDirection: "column", height: Math.max(8, terminalRows - COCKPIT_CHROME_ROWS), borderStyle: "single", borderColor: theme.border.default, paddingX: 1, children: [_jsxs(Text, { color: theme.accent.assistant, bold: true, wrap: "truncate-end", children: ["Workflows \u00B7 ", workflowIndex + 1, "/", workflows.length] }), compact ? null : (_jsx(Text, { color: theme.text.muted, wrap: "truncate-end", children: "Select a workflow to inspect its phases and agents." })), _jsx(Box, { flexDirection: "column", flexGrow: 1, paddingTop: compact ? 0 : 1, children: items.map((item) => (_jsxs(Box, { height: 1, flexShrink: 0, children: [_jsx(Box, { width: 4, flexShrink: 0, children: _jsxs(Text, { color: item.id === workflow?.id ? theme.accent.assistant : theme.text.muted, children: [item.id === workflow?.id ? '›' : ' ', " ", statusGlyph(item.status)] }) }), _jsx(Box, { flexGrow: 1, minWidth: 0, children: _jsx(Text, { color: theme.text.primary, bold: item.id === workflow?.id, wrap: "truncate-end", children: oneLine(item.name) }) }), _jsx(Box, { flexShrink: 0, marginLeft: 1, children: _jsxs(Text, { color: statusColor(item.status), wrap: "truncate-end", children: [terminalColumns >= 70
|
|
284
|
-
? `${item.phases.length} ${item.phases.length === 1 ? 'phase' : 'phases'} · `
|
|
285
|
-
: '', item.agents.length, " agents \u00B7 ", statusLabel(item.status)] }) })] }, item.id))) }), _jsx(Box, { paddingTop: compact ? 0 : 1, children: _jsx(Text, { color: theme.text.muted, wrap: "truncate-end", children: terminalColumns >= 60
|
|
286
|
-
? '↑↓ navigate · PgUp/PgDn jump · enter select · esc return'
|
|
287
|
-
: '↑↓ · enter select · esc return' }) })] }));
|
|
288
|
-
}
|
|
289
|
-
const navigation = terminalColumns >= 90
|
|
290
|
-
? '←→ pane · ↑↓ navigate · PgUp/PgDn jump · enter select · esc return'
|
|
291
|
-
: terminalColumns >= 60
|
|
292
|
-
? '←→ pane · ↑↓ navigate · enter select · esc return'
|
|
293
|
-
: terminalColumns >= 38
|
|
294
|
-
? '←→ pane · ↑↓ · enter · esc return'
|
|
295
|
-
: 'enter · esc return';
|
|
296
|
-
const totalWorkflowAgents = workflow?.agents.length ?? 0;
|
|
297
|
-
// Same rule as the automatic rail's title: an explicit label names this
|
|
298
|
-
// workflow, an absent one (the unlabelled default) gets a neutral count
|
|
299
|
-
// instead of the generic default name.
|
|
300
|
-
const workflowTitle = selectedPhase?.workflow !== undefined && selectedPhase.workflow !== DEFAULT_AGENT_WORKFLOW
|
|
301
|
-
? oneLine(selectedPhase.workflow)
|
|
302
|
-
: `${totalWorkflowAgents} agent${totalWorkflowAgents === 1 ? '' : 's'} · ${active} running`;
|
|
303
|
-
return (_jsxs(Box, { flexDirection: "column", height: Math.max(8, terminalRows - COCKPIT_CHROME_ROWS), borderStyle: "single", borderColor: theme.border.default, paddingX: 1, children: [_jsxs(Box, { height: 1, flexShrink: 0, children: [_jsx(Box, { flexGrow: 1, minWidth: 0, children: _jsx(Text, { color: theme.text.primary, bold: true, wrap: "truncate-end", children: workflowTitle }) }), _jsx(Box, { flexShrink: 0, marginLeft: 1, children: _jsx(Text, { color: theme.text.muted, wrap: "truncate-end", children: workflow ? workflowProgress(workflow, now, terminalColumns) : '' }) })] }), compact ? null : (_jsx(Text, { color: theme.text.muted, wrap: "truncate-end", children: workflows.length > 1
|
|
304
|
-
? 'Select a phase, then inspect a child. Esc returns to workflows.'
|
|
305
|
-
: 'Select a phase, then inspect a child.' })), _jsxs(Box, { flexDirection: sideBySide ? 'row' : 'column', flexGrow: 1, paddingTop: compact ? 0 : 1, children: [_jsx(Box, { flexDirection: "column", width: phasePaneWidth, flexShrink: 0, children: _jsx(PhasePane, { phases: phases, selected: selectedPhaseIndex, focused: focus === 'phases', pageSize: compact ? 1 : agentPhasePageSize(terminalRows, wide), paneWidth: phasePaneWidth ?? Math.max(1, terminalColumns - COCKPIT_FRAME_COLUMNS), showDetail: !compact, now: now }) }), sideBySide ? (_jsx(Box, { width: 1, marginX: 1, flexShrink: 0, borderStyle: "single", borderColor: theme.border.default, borderTop: false, borderBottom: false, borderRight: false })) : null, _jsx(Box, { flexDirection: "column", flexGrow: 1, minWidth: 0, paddingTop: sideBySide || compact ? 0 : 1, children: _jsx(AgentPane, { agents: phaseAgents, ...(selectedPhase && selectedPhase.name !== DEFAULT_AGENT_PHASE
|
|
306
|
-
? { phaseName: selectedPhase.name }
|
|
307
|
-
: {}), selected: selectedAgentIndex, focused: focus === 'agents', pageSize: compact ? 1 : agentPickerPageSize(terminalRows, wide), now: now, wide: wide, terminalColumns: terminalColumns, detailWidth: Math.floor(Math.max(2, terminalColumns - COCKPIT_FRAME_COLUMNS - (phasePaneWidth ?? 0) - (sideBySide ? 3 : 0)) / 2) }) })] }), _jsx(Box, { paddingTop: compact ? 0 : 1, children: _jsx(Text, { color: theme.text.muted, wrap: "truncate-end", children: navigation }) })] }));
|
|
308
|
-
}
|
|
309
|
-
function PhasePane({ phases, selected, focused, pageSize, paneWidth, showDetail, now, }) {
|
|
310
|
-
const { start, items } = selectionWindow(phases, selected, pageSize);
|
|
311
|
-
// A narrow pane keeps the count and gives the time up first.
|
|
312
|
-
const showElapsed = paneWidth >= 28;
|
|
313
|
-
// "Focused" here is the phase carrying the `›` cursor, not which sub-pane
|
|
314
|
-
// currently holds keyboard focus — the detail stays visible while the
|
|
315
|
-
// operator drills into that phase's agents.
|
|
316
|
-
const focusedPhase = phases[selected];
|
|
317
|
-
const detailLines = showDetail && focusedPhase?.detail
|
|
318
|
-
? wrapPhaseDetailLines(focusedPhase.detail, paneWidth).slice(0, PHASE_DETAIL_LINE_BUDGET)
|
|
319
|
-
: [];
|
|
320
|
-
return (_jsxs(_Fragment, { children: [_jsx(Text, { color: focused ? theme.accent.assistant : theme.text.secondary, bold: true, children: "Phases" }), items.map((phase, visibleIndex) => {
|
|
321
|
-
const active = start + visibleIndex === selected;
|
|
322
|
-
return (_jsxs(Box, { children: [_jsx(Box, { width: 4, flexShrink: 0, children: _jsxs(Text, { color: active && focused ? theme.accent.assistant : theme.text.muted, children: [active ? '›' : ' ', " ", statusGlyph(phase.status)] }) }), _jsx(Box, { flexGrow: 1, flexShrink: 1, children: _jsxs(Text, { color: active ? theme.text.primary : theme.text.secondary, bold: active && focused, wrap: "truncate-end", children: [phase.order !== undefined ? `${phase.order + 1} ` : '', oneLine(phase.name)] }) }), _jsx(Box, { flexShrink: 0, marginLeft: 1, children: _jsxs(Text, { color: statusColor(phase.status), children: [phaseProgress(phase), showElapsed ? ` · ${formatElapsed(phaseElapsed(phase, now))}` : ''] }) })] }, phase.id));
|
|
323
|
-
}), detailLines.length > 0 ? (_jsx(Box, { flexDirection: "column", height: PHASE_DETAIL_LINE_BUDGET, flexShrink: 0, overflow: "hidden", marginTop: 1, children: detailLines.map((line, index) => (
|
|
324
|
-
// biome-ignore lint/suspicious/noArrayIndexKey: fixed-budget, order-stable lines of one wrap pass
|
|
325
|
-
_jsx(Text, { color: theme.text.muted, wrap: "truncate-end", children: line }, index))) })) : null] }));
|
|
326
|
-
}
|
|
327
|
-
function AgentPane({ agents, phaseName, selected, focused, pageSize, now, wide, terminalColumns, detailWidth, }) {
|
|
328
|
-
const { start, items } = selectionWindow(agents, selected, pageSize);
|
|
329
|
-
const showModel = wide;
|
|
330
|
-
const showCounters = wide && terminalColumns >= 120;
|
|
331
|
-
return (_jsxs(_Fragment, { children: [_jsxs(Text, { color: focused ? theme.accent.assistant : theme.text.secondary, bold: true, wrap: "truncate-end", children: [phaseName !== undefined ? `${oneLine(phaseName)} · ` : '', agents.length, " ", agents.length === 1 ? 'agent' : 'agents', agents.length > pageSize ? ` · ${selected + 1}/${agents.length}` : ''] }), items.map((agent, visibleIndex) => {
|
|
332
|
-
const active = start + visibleIndex === selected;
|
|
333
|
-
const elapsed = formatElapsed((agent.completedAt ?? now) - agent.startedAt);
|
|
334
|
-
const meta = agentMetaParts(agent, { showModel, showCounters });
|
|
335
|
-
return (_jsxs(Box, { children: [_jsx(Box, { width: 4, flexShrink: 0, children: _jsxs(Text, { color: active && focused ? theme.accent.assistant : theme.text.muted, children: [active ? '›' : ' ', " ", statusGlyph(agent.status)] }) }), _jsx(Box, { flexGrow: 1, flexShrink: 1, minWidth: 0, children: _jsx(Text, { color: active ? theme.text.primary : theme.text.secondary, bold: active && focused, wrap: "truncate-end", children: oneLine(agent.description || agent.agentId) }) }), _jsxs(Box, { marginLeft: 1, flexShrink: 0, width: wide ? detailWidth : undefined, children: [_jsx(Box, { flexGrow: 1, flexShrink: 1, minWidth: 0, children: _jsxs(Text, { color: theme.text.secondary, wrap: "truncate-end", children: [statusLabel(agent.status), " \u00B7", ' ', elapsed, wide && distinctActivity(agent) ? ` · ${distinctActivity(agent)}` : ''] }) }), meta.length > 0 ? (_jsx(Box, { flexShrink: 0, marginLeft: 1, children: _jsx(Text, { color: theme.text.muted, wrap: "truncate-end", children: meta.join(' · ') }) })) : null] })] }, agent.viewId));
|
|
336
|
-
})] }));
|
|
337
|
-
}
|
|
338
|
-
export function agentCockpitIsWide(terminalColumns) {
|
|
339
|
-
return Math.max(0, terminalColumns - COCKPIT_FRAME_COLUMNS) >= WIDE_COCKPIT_INNER_COLUMNS;
|
|
340
|
-
}
|
|
341
|
-
/** Group retained work before exposing phases. Labels do not create execution dependencies. */
|
|
342
|
-
export function agentWorkflows(agents) {
|
|
343
|
-
const groups = new Map();
|
|
344
|
-
for (const agent of agents) {
|
|
345
|
-
const group = groups.get(agent.workflowGroupId);
|
|
346
|
-
if (group)
|
|
347
|
-
group.push(agent);
|
|
348
|
-
else
|
|
349
|
-
groups.set(agent.workflowGroupId, [agent]);
|
|
350
|
-
}
|
|
351
|
-
return [...groups]
|
|
352
|
-
.map(([id, members]) => ({
|
|
353
|
-
id,
|
|
354
|
-
name: workflowGroupName(members),
|
|
355
|
-
startedAt: Math.min(...members.map((agent) => agent.startedAt)),
|
|
356
|
-
status: phaseStatus(members),
|
|
357
|
-
phases: agentPhases(members),
|
|
358
|
-
agents: members,
|
|
359
|
-
}))
|
|
360
|
-
.sort((left, right) => left.startedAt - right.startedAt || left.id.localeCompare(right.id));
|
|
361
|
-
}
|
|
362
|
-
/**
|
|
363
|
-
* A group's display name. An explicit, shared `workflow` label names it
|
|
364
|
-
* directly; a group whose agents never set one (the unlabelled default —
|
|
365
|
-
* `agentWorkflows` still groups them by batch, so two unrelated unlabelled
|
|
366
|
-
* batches are two separate groups here) never uses that default's literal
|
|
367
|
-
* text, which describes none of them in particular and is indistinguishable
|
|
368
|
-
* from any other unlabelled group's name. It gets a neutral name built from
|
|
369
|
-
* its own members instead, so two unlabelled groups stay tellable apart in
|
|
370
|
-
* a list — the first member's title, plus a `+N` count when there are more,
|
|
371
|
-
* or a plain agent count when even a title is missing.
|
|
372
|
-
*/
|
|
373
|
-
function workflowGroupName(members) {
|
|
374
|
-
const label = members[0]?.workflow;
|
|
375
|
-
if (label !== undefined && label !== DEFAULT_AGENT_WORKFLOW)
|
|
376
|
-
return label;
|
|
377
|
-
const title = oneLine(members[0]?.description || members[0]?.agentId || '').trim();
|
|
378
|
-
if (!title)
|
|
379
|
-
return `${members.length} agent${members.length === 1 ? '' : 's'}`;
|
|
380
|
-
return members.length > 1 ? `${title} +${members.length - 1}` : title;
|
|
381
|
-
}
|
|
382
|
-
export function agentWorkflowPageSize(terminalRows) {
|
|
383
|
-
return Math.max(1, Math.min(MAX_PICKER_ROWS, terminalRows - 10));
|
|
384
|
-
}
|
|
385
|
-
export function agentPhases(agents) {
|
|
386
|
-
const records = new Map();
|
|
387
|
-
const workflowStartedAt = new Map();
|
|
388
|
-
for (const agent of agents) {
|
|
389
|
-
const id = agent.phaseId;
|
|
390
|
-
const current = records.get(id);
|
|
391
|
-
if (current) {
|
|
392
|
-
current.startedAt = Math.min(current.startedAt, agent.startedAt);
|
|
393
|
-
current.agents.push(agent);
|
|
394
|
-
}
|
|
395
|
-
else {
|
|
396
|
-
records.set(id, {
|
|
397
|
-
workflowId: agent.workflowId,
|
|
398
|
-
workflow: agent.workflow,
|
|
399
|
-
name: agent.phase,
|
|
400
|
-
...(agent.phaseOrder !== undefined ? { order: agent.phaseOrder } : {}),
|
|
401
|
-
...(agent.phaseDetail !== undefined ? { detail: agent.phaseDetail } : {}),
|
|
402
|
-
sequence: agent.phaseSequence,
|
|
403
|
-
startedAt: agent.startedAt,
|
|
404
|
-
agents: [agent],
|
|
405
|
-
});
|
|
406
|
-
}
|
|
407
|
-
workflowStartedAt.set(agent.workflowId, Math.min(workflowStartedAt.get(agent.workflowId) ?? agent.startedAt, agent.startedAt));
|
|
408
|
-
}
|
|
409
|
-
return [...records.entries()]
|
|
410
|
-
.map(([id, phase]) => ({
|
|
411
|
-
id,
|
|
412
|
-
workflowId: phase.workflowId,
|
|
413
|
-
workflow: phase.workflow,
|
|
414
|
-
name: phase.name,
|
|
415
|
-
...(phase.order !== undefined ? { order: phase.order } : {}),
|
|
416
|
-
...(phase.detail !== undefined ? { detail: phase.detail } : {}),
|
|
417
|
-
sequence: phase.sequence,
|
|
418
|
-
startedAt: phase.startedAt,
|
|
419
|
-
status: phaseStatus(phase.agents),
|
|
420
|
-
agents: phase.agents,
|
|
421
|
-
}))
|
|
422
|
-
.sort((left, right) => {
|
|
423
|
-
const workflowOrder = (workflowStartedAt.get(left.workflowId) ?? left.startedAt) -
|
|
424
|
-
(workflowStartedAt.get(right.workflowId) ?? right.startedAt);
|
|
425
|
-
if (workflowOrder !== 0)
|
|
426
|
-
return workflowOrder;
|
|
427
|
-
const workflowName = left.workflow.localeCompare(right.workflow);
|
|
428
|
-
if (workflowName !== 0)
|
|
429
|
-
return workflowName;
|
|
430
|
-
if (left.order !== right.order) {
|
|
431
|
-
if (left.order === undefined)
|
|
432
|
-
return 1;
|
|
433
|
-
if (right.order === undefined)
|
|
434
|
-
return -1;
|
|
435
|
-
return left.order - right.order;
|
|
436
|
-
}
|
|
437
|
-
if (left.sequence !== right.sequence)
|
|
438
|
-
return left.sequence - right.sequence;
|
|
439
|
-
return left.name.localeCompare(right.name);
|
|
440
|
-
});
|
|
441
|
-
}
|
|
442
|
-
export function agentPhasePageSize(terminalRows, wide = true) {
|
|
443
|
-
const available = Math.max(2, terminalRows - (wide ? 10 : 12));
|
|
444
|
-
return wide
|
|
445
|
-
? Math.max(1, Math.min(MAX_PICKER_ROWS, available))
|
|
446
|
-
: Math.max(1, Math.min(4, Math.floor(available * 0.4)));
|
|
447
|
-
}
|
|
448
|
-
/** Child screen; leave two parent footer rows and one terminal cursor row free. */
|
|
449
|
-
export function AgentTranscript({ agent, tailOffset, terminalRows, terminalColumns, }) {
|
|
450
|
-
const page = agentTranscriptPage(agent, tailOffset, terminalRows, terminalColumns);
|
|
451
|
-
// A replayed child whose saved record never got an ending still has no
|
|
452
|
-
// clock running: ticking one would be the same claim the banner denies.
|
|
453
|
-
const now = useLiveNow(!agent.replayed && agent.completedAt === undefined);
|
|
454
|
-
const elapsed = formatElapsed((agent.completedAt ?? now) - agent.startedAt);
|
|
455
|
-
const tailLabel = isTerminalStatus(agent.status) ? 'Latest' : 'Live';
|
|
456
|
-
const meta = agentMetaParts(agent, {
|
|
457
|
-
showModel: terminalColumns >= 50,
|
|
458
|
-
showCounters: terminalColumns >= 70,
|
|
459
|
-
});
|
|
460
|
-
const navigation = terminalColumns >= 70
|
|
461
|
-
? `PgUp/PgDn · Home oldest · End ${tailLabel.toLowerCase()} · esc agents · q parent`
|
|
462
|
-
: terminalColumns >= 40
|
|
463
|
-
? '↑↓ scroll · esc agents · q parent'
|
|
464
|
-
: terminalColumns >= 30
|
|
465
|
-
? '↑↓ · esc list · q parent'
|
|
466
|
-
: 'esc list · q parent';
|
|
467
|
-
return (_jsxs(Box, { flexDirection: "column", height: page.pageSize + 8 + transcriptBannerRows(agent), flexShrink: 0, borderStyle: "single", borderColor: theme.accent.assistant, paddingX: 1, overflow: "hidden", children: [_jsxs(Box, { justifyContent: "space-between", height: 1, flexShrink: 0, children: [_jsx(Box, { flexGrow: 1, minWidth: 0, children: _jsx(Text, { color: theme.accent.assistant, bold: true, wrap: "truncate-end", children: "Subagent" }) }), _jsx(Box, { flexShrink: 0, children: _jsxs(Text, { color: statusColor(agent.status), wrap: "truncate-end", children: [statusLabel(agent.status), terminalColumns >= 40 ? ` · ${elapsed}` : ''] }) })] }), _jsxs(Box, { height: 1, flexShrink: 0, children: [_jsx(Box, { flexGrow: 1, flexShrink: 1, minWidth: 0, children: _jsx(Text, { color: theme.text.primary, bold: true, wrap: "truncate-end", children: oneLine(agent.description || agent.agentId) }) }), meta.length > 0 ? (_jsx(Box, { flexShrink: 0, marginLeft: 1, children: _jsx(Text, { color: theme.text.muted, wrap: "truncate-end", children: meta.join(' · ') }) })) : null] }), agent.replayed ? (_jsx(Box, { height: 1, flexShrink: 0, children: _jsx(Text, { color: theme.status.warn, wrap: "truncate-end", children: REPLAYED_TRANSCRIPT_NOTICE }) })) : null, _jsx(Box, { flexDirection: "column", marginTop: 1, height: page.pageSize, flexShrink: 0, children: page.rows.length === 0 ? (_jsx(Text, { color: theme.text.muted, wrap: "truncate-end", children: agent.replayed
|
|
468
|
-
? 'Saved evidence recorded no output for this child.'
|
|
469
|
-
: 'Waiting for child output…' })) : (page.rows.map((line) => (_jsxs(Box, { height: 1, flexShrink: 0, overflow: "hidden", children: [_jsx(Box, { width: 3, flexShrink: 0, children: _jsx(Text, { color: line.source !== 'prompt' && line.source.kind === 'tool'
|
|
470
|
-
? statusColor(line.source.status)
|
|
471
|
-
: lineColor(line), children: line.continuation ? ' ' : lineGlyph(line) }) }), _jsx(Box, { flexGrow: 1, minWidth: 0, children: _jsx(Text, { color: lineColor(line), wrap: "truncate-end", children: line.text }) })] }, line.id)))) }), _jsxs(Box, { flexDirection: "column", marginTop: 1, height: 2, flexShrink: 0, children: [_jsxs(Text, { color: theme.text.muted, wrap: "truncate-end", children: [page.last === page.total ? tailLabel : 'History', " \u00B7", ' ', page.total === 0 ? '0/0' : `${page.first}-${page.last}/${page.total}`] }), _jsx(Text, { color: theme.text.muted, wrap: "truncate-end", children: navigation })] })] }));
|
|
472
|
-
}
|
|
473
|
-
export function agentPickerPageSize(terminalRows, wide = true) {
|
|
474
|
-
const available = Math.max(2, terminalRows - (wide ? 10 : 12));
|
|
475
|
-
return wide
|
|
476
|
-
? Math.max(1, Math.min(MAX_PICKER_ROWS, available))
|
|
477
|
-
: Math.max(1, Math.min(MAX_PICKER_ROWS, available - agentPhasePageSize(terminalRows, false)));
|
|
478
|
-
}
|
|
479
|
-
/**
|
|
480
|
-
* Rows one transcript header claims beyond the fixed chrome.
|
|
481
|
-
*
|
|
482
|
-
* A replayed child spends one on its banner. It comes out of the page rather
|
|
483
|
-
* than growing the box, because the box is already sized to leave the parent
|
|
484
|
-
* its two footer rows and the terminal its cursor row — a box one row taller
|
|
485
|
-
* would take the cursor row, on the one screen where the extra row exists to
|
|
486
|
-
* stop a misreading rather than to show more of the turn.
|
|
487
|
-
*/
|
|
488
|
-
function transcriptBannerRows(agent) {
|
|
489
|
-
return agent.replayed ? 1 : 0;
|
|
490
|
-
}
|
|
491
|
-
export function agentTranscriptPageSize(terminalRows, reservedRows = 0) {
|
|
492
|
-
// Parent footer, cursor row, borders, heading, title, spacing and navigation.
|
|
493
|
-
return Math.max(1, terminalRows - 11 - reservedRows);
|
|
494
|
-
}
|
|
495
|
-
export function maxAgentTranscriptTailOffset(agent, terminalRows, terminalColumns) {
|
|
496
|
-
return Math.max(0, agentTranscriptRows(agent, terminalColumns).length -
|
|
497
|
-
agentTranscriptPageSize(terminalRows, transcriptBannerRows(agent)));
|
|
498
|
-
}
|
|
499
|
-
export function agentTranscriptPage(agent, tailOffset, terminalRows, terminalColumns) {
|
|
500
|
-
const pageSize = agentTranscriptPageSize(terminalRows, transcriptBannerRows(agent));
|
|
501
|
-
const rows = agentTranscriptRows(agent, terminalColumns);
|
|
502
|
-
const total = rows.length;
|
|
503
|
-
const offset = Math.min(Math.max(0, tailOffset), Math.max(0, total - pageSize));
|
|
504
|
-
const end = Math.max(0, total - offset);
|
|
505
|
-
const start = Math.max(0, end - pageSize);
|
|
506
|
-
return {
|
|
507
|
-
rows: rows.slice(start, end),
|
|
508
|
-
pageSize,
|
|
509
|
-
first: total === 0 ? 0 : start + 1,
|
|
510
|
-
last: end,
|
|
511
|
-
total,
|
|
512
|
-
};
|
|
513
|
-
}
|
|
514
|
-
/** Wrap before paging so every retained character remains reachable. */
|
|
515
|
-
export function agentTranscriptRows(agent, terminalColumns) {
|
|
516
|
-
const sources = [
|
|
517
|
-
{ id: `${agent.viewId}:prompt`, text: agent.prompt, source: 'prompt' },
|
|
518
|
-
...agent.transcript.map((row) => ({
|
|
519
|
-
id: row.id,
|
|
520
|
-
text: transcriptRowText(row),
|
|
521
|
-
source: row,
|
|
522
|
-
})),
|
|
523
|
-
];
|
|
524
|
-
// App padding, border, overlay padding and the three-cell glyph column sit
|
|
525
|
-
// outside this text. Conservative cell counting may wrap early but never
|
|
526
|
-
// hides a suffix.
|
|
527
|
-
const width = Math.max(1, (terminalColumns ?? 80) - 10);
|
|
528
|
-
const lines = [];
|
|
529
|
-
for (const source of sources) {
|
|
530
|
-
let sourceLine = 0;
|
|
531
|
-
for (const logical of terminalDisplayText(source.text).split('\n')) {
|
|
532
|
-
let text = '';
|
|
533
|
-
let cells = 0;
|
|
534
|
-
let continuation = sourceLine > 0;
|
|
535
|
-
for (const { segment: point } of graphemes.segment(expandTabs(logical))) {
|
|
536
|
-
const pointCells = stringWidth(point);
|
|
537
|
-
while (text.length > 0 && cells + pointCells > width) {
|
|
538
|
-
// Prefer a word boundary, retaining whitespace so paging never
|
|
539
|
-
// drops content. Unbroken URLs/code still split at graphemes.
|
|
540
|
-
const boundary = text.lastIndexOf(' ') + 1;
|
|
541
|
-
const split = boundary > 0 && text.slice(0, boundary).trim().length > 0
|
|
542
|
-
? boundary : text.length;
|
|
543
|
-
const rest = text.slice(split);
|
|
544
|
-
lines.push({
|
|
545
|
-
id: `${source.id}:${sourceLine++}`,
|
|
546
|
-
text: text.slice(0, split),
|
|
547
|
-
continuation,
|
|
548
|
-
source: source.source,
|
|
549
|
-
});
|
|
550
|
-
text = rest;
|
|
551
|
-
cells = stringWidth(rest);
|
|
552
|
-
continuation = true;
|
|
553
|
-
}
|
|
554
|
-
text += point;
|
|
555
|
-
cells += pointCells;
|
|
556
|
-
}
|
|
557
|
-
lines.push({
|
|
558
|
-
id: `${source.id}:${sourceLine++}`,
|
|
559
|
-
text,
|
|
560
|
-
continuation,
|
|
561
|
-
source: source.source,
|
|
562
|
-
});
|
|
563
|
-
}
|
|
564
|
-
}
|
|
565
|
-
return lines;
|
|
566
|
-
}
|
|
567
|
-
/** Resolve indentation before paging; raw tabs can move the terminal beyond a row's box. */
|
|
568
|
-
function expandTabs(line) {
|
|
569
|
-
let text = '';
|
|
570
|
-
let cells = 0;
|
|
571
|
-
for (const { segment } of graphemes.segment(line)) {
|
|
572
|
-
const point = segment === '\t' ? ' '.repeat(8 - (cells % 8)) : segment;
|
|
573
|
-
text += point;
|
|
574
|
-
cells += stringWidth(point);
|
|
575
|
-
}
|
|
576
|
-
return text;
|
|
577
|
-
}
|
|
578
|
-
function oneLine(text) {
|
|
579
|
-
return terminalDisplayText(text).replace(/\r?\n/g, ' ↵ ').replace(/\t/g, ' ⇥ ');
|
|
580
|
-
}
|
|
581
|
-
/** `42.1k`, `1.38M`; below 1,000 the exact count is short enough to show plainly. */
|
|
582
|
-
export { formatCompactCount };
|
|
583
|
-
/**
|
|
584
|
-
* `undefined` when this child has reported neither figure — there is nothing
|
|
585
|
-
* to show yet, which is different from having spent or called zero. Once
|
|
586
|
-
* spend is known but the tool count is not (or vice versa), the missing half
|
|
587
|
-
* renders as an em dash rather than a fabricated 0.
|
|
588
|
-
*/
|
|
589
|
-
function agentCounterText(agent) {
|
|
590
|
-
if (agent.tokens === undefined && agent.toolCalls === undefined)
|
|
591
|
-
return undefined;
|
|
592
|
-
const tokens = agent.tokens !== undefined ? formatCompactCount(agent.tokens) : '—';
|
|
593
|
-
if (agent.toolCalls === undefined)
|
|
594
|
-
return tokens;
|
|
595
|
-
return `${tokens} · ${agent.toolCalls} ${agent.toolCalls === 1 ? 'tool' : 'tools'}`;
|
|
596
|
-
}
|
|
597
|
-
/**
|
|
598
|
-
* Ordered so a caller can drop the least essential piece first: counters
|
|
599
|
-
* need the most room, the model name less, the saved marker none at all, and
|
|
600
|
-
* the description (rendered separately by every caller) never yields to any
|
|
601
|
-
* of them.
|
|
602
|
-
*/
|
|
603
|
-
function agentMetaParts(agent, options) {
|
|
604
|
-
const parts = [];
|
|
605
|
-
// Unconditional, and first, because it is the only part here that changes
|
|
606
|
-
// what the row MEANS rather than describing the work: a saved row reports
|
|
607
|
-
// a child that finished in some other process. Five cells is a price worth
|
|
608
|
-
// paying at every width to keep a past turn from reading as a present one.
|
|
609
|
-
if (agent.replayed)
|
|
610
|
-
parts.push('saved');
|
|
611
|
-
if (options.showModel && agent.model) {
|
|
612
|
-
parts.push(truncateChoiceText(agent.model, MAX_MODEL_LABEL_WIDTH));
|
|
613
|
-
}
|
|
614
|
-
const counters = options.showCounters ? agentCounterText(agent) : undefined;
|
|
615
|
-
if (counters)
|
|
616
|
-
parts.push(counters);
|
|
617
|
-
return parts;
|
|
618
|
-
}
|
|
619
|
-
function distinctActivity(agent) {
|
|
620
|
-
const activity = agent.latestActivity ? oneLine(agent.latestActivity) : undefined;
|
|
621
|
-
if (!activity || activity.toLowerCase() === agent.status)
|
|
622
|
-
return undefined;
|
|
623
|
-
const prefix = `${statusLabel(agent.status)} · `;
|
|
624
|
-
return activity.startsWith(prefix) ? activity.slice(prefix.length) : activity;
|
|
625
|
-
}
|
|
626
|
-
function phaseStatus(agents) {
|
|
627
|
-
if (agents.some((agent) => agent.status === 'failed'))
|
|
628
|
-
return 'failed';
|
|
629
|
-
if (agents.some((agent) => agent.status === 'working'))
|
|
630
|
-
return 'working';
|
|
631
|
-
if (agents.some((agent) => agent.status === 'queued'))
|
|
632
|
-
return 'queued';
|
|
633
|
-
if (agents.some((agent) => agent.status === 'starting'))
|
|
634
|
-
return 'starting';
|
|
635
|
-
if (agents.some((agent) => agent.status === 'cancelled'))
|
|
636
|
-
return 'cancelled';
|
|
637
|
-
return 'completed';
|
|
638
|
-
}
|
|
639
|
-
/**
|
|
640
|
-
* The cockpit's summary of one workflow, in the reference's terms: how many
|
|
641
|
-
* agents are done, how long it has run, what it has spent, and how it ended
|
|
642
|
-
* once nothing is left running: `1/3 agents done · 2 running · 5.2s · 18.0k
|
|
643
|
-
* tokens`, then `3/3 agents · 12s · 27.0k tokens · done` (or `failed`).
|
|
644
|
-
*/
|
|
645
|
-
function workflowProgress(workflow, now, columns) {
|
|
646
|
-
const agents = workflow.agents;
|
|
647
|
-
const running = agents.filter((agent) => !isTerminalStatus(agent.status)).length;
|
|
648
|
-
const done = agents.length - running;
|
|
649
|
-
const ending = workflow.status === 'completed' ? 'done' : workflow.status;
|
|
650
|
-
// The title beside this keeps its room: below 60 columns only the count
|
|
651
|
-
// and the ending, then the time from 70, the spend from 100.
|
|
652
|
-
if (columns < 60)
|
|
653
|
-
return running > 0 ? `${done}/${agents.length} done` : `${done}/${agents.length} · ${ending}`;
|
|
654
|
-
const ends = agents.map((agent) => agent.completedAt ?? now);
|
|
655
|
-
const elapsed = formatElapsed(Math.max(0, Math.max(...ends) - workflow.startedAt));
|
|
656
|
-
const spent = agents.reduce((sum, agent) => (agent.tokens === undefined ? sum : (sum ?? 0) + agent.tokens), undefined);
|
|
657
|
-
const counters = [
|
|
658
|
-
...(columns >= 70 ? [elapsed] : []),
|
|
659
|
-
...(columns >= 100 && spent !== undefined ? [`${formatCompactCount(spent)} tokens`] : []),
|
|
660
|
-
];
|
|
661
|
-
return (running > 0
|
|
662
|
-
? [`${done}/${agents.length} agents done`, `${running} running`, ...counters]
|
|
663
|
-
: [`${done}/${agents.length} agents`, ...counters, ending]).join(' · ');
|
|
664
|
-
}
|
|
665
|
-
/** First start to last finish; a phase still running counts to `now`. */
|
|
666
|
-
function phaseElapsed(phase, now) {
|
|
667
|
-
const ends = phase.agents.map((agent) => agent.completedAt ?? now);
|
|
668
|
-
return Math.max(0, Math.max(...ends) - phase.startedAt);
|
|
669
|
-
}
|
|
670
|
-
function phaseProgress(phase) {
|
|
671
|
-
const completed = phase.agents.filter((agent) => isTerminalStatus(agent.status)).length;
|
|
672
|
-
const failed = phase.agents.filter((agent) => agent.status === 'failed').length;
|
|
673
|
-
const cancelled = phase.agents.filter((agent) => agent.status === 'cancelled').length;
|
|
674
|
-
return [
|
|
675
|
-
`${completed}/${phase.agents.length}`,
|
|
676
|
-
...(failed > 0 ? [`failed ${failed}`] : []),
|
|
677
|
-
...(cancelled > 0 ? [`cancelled ${cancelled}`] : []),
|
|
678
|
-
].join(' · ');
|
|
679
|
-
}
|
|
680
|
-
/**
|
|
681
|
-
* Word-wrap phase detail text to `width` cells. An unbroken word wider than
|
|
682
|
-
* the pane still occupies exactly one line — `wrap="truncate-end"` on the
|
|
683
|
-
* rendered `Text` clips it visually rather than this function breaking a
|
|
684
|
-
* word or growing the line count.
|
|
685
|
-
*/
|
|
686
|
-
function wrapPhaseDetailLines(text, width) {
|
|
687
|
-
const safeWidth = Math.max(1, width);
|
|
688
|
-
const words = oneLine(text)
|
|
689
|
-
.split(' ')
|
|
690
|
-
.filter((word) => word.length > 0);
|
|
691
|
-
const lines = [];
|
|
692
|
-
let line = '';
|
|
693
|
-
for (const word of words) {
|
|
694
|
-
const candidate = line ? `${line} ${word}` : word;
|
|
695
|
-
if (line && stringWidth(candidate) > safeWidth) {
|
|
696
|
-
lines.push(line);
|
|
697
|
-
line = word;
|
|
698
|
-
}
|
|
699
|
-
else {
|
|
700
|
-
line = candidate;
|
|
701
|
-
}
|
|
702
|
-
}
|
|
703
|
-
if (line)
|
|
704
|
-
lines.push(line);
|
|
705
|
-
return lines;
|
|
706
|
-
}
|
|
707
|
-
function isTerminalStatus(status) {
|
|
708
|
-
return status === 'completed' || status === 'failed' || status === 'cancelled';
|
|
709
|
-
}
|
|
710
|
-
function statusGlyph(status) {
|
|
711
|
-
switch (status) {
|
|
712
|
-
case 'starting':
|
|
713
|
-
case 'queued':
|
|
714
|
-
return '◌';
|
|
715
|
-
case 'working':
|
|
716
|
-
return '●';
|
|
717
|
-
case 'completed':
|
|
718
|
-
return '✓';
|
|
719
|
-
case 'failed':
|
|
720
|
-
return '✗';
|
|
721
|
-
case 'cancelled':
|
|
722
|
-
return '○';
|
|
723
|
-
}
|
|
724
|
-
}
|
|
725
|
-
function statusLabel(status) {
|
|
726
|
-
return status[0]?.toUpperCase() + status.slice(1);
|
|
727
|
-
}
|
|
728
|
-
function statusColor(status) {
|
|
729
|
-
switch (status) {
|
|
730
|
-
case 'completed':
|
|
731
|
-
return theme.text.secondary;
|
|
732
|
-
case 'failed':
|
|
733
|
-
return theme.status.error;
|
|
734
|
-
case 'starting':
|
|
735
|
-
case 'queued':
|
|
736
|
-
case 'working':
|
|
737
|
-
return theme.accent.assistant;
|
|
738
|
-
case 'cancelled':
|
|
739
|
-
return theme.text.muted;
|
|
740
|
-
}
|
|
741
|
-
}
|
|
742
|
-
function lineGlyph(line) {
|
|
743
|
-
if (line.source === 'prompt')
|
|
744
|
-
return '›';
|
|
745
|
-
return rowGlyph(line.source);
|
|
746
|
-
}
|
|
747
|
-
function rowGlyph(row) {
|
|
748
|
-
if (row.kind === 'assistant')
|
|
749
|
-
return '∴';
|
|
750
|
-
if (row.kind === 'system')
|
|
751
|
-
return row.direction === 'to-child' ? '←' : '·';
|
|
752
|
-
return row.status === 'working' ? '◌' : row.status === 'failed' ? '✗' : '✓';
|
|
753
|
-
}
|
|
754
|
-
/**
|
|
755
|
-
* A delivered `send_message` renders as `← from parent: …` — the arrow is
|
|
756
|
-
* the row's own glyph (`rowGlyph`), so only the label goes here. Every other
|
|
757
|
-
* row kind keeps its own text unchanged.
|
|
758
|
-
*/
|
|
759
|
-
function transcriptRowText(row) {
|
|
760
|
-
if (row.kind === 'tool' && row.detail)
|
|
761
|
-
return `${row.text}\n${row.detail}`;
|
|
762
|
-
if (row.kind === 'system' && row.direction === 'to-child')
|
|
763
|
-
return `from parent: ${row.text}`;
|
|
764
|
-
return row.text;
|
|
765
|
-
}
|
|
766
|
-
function lineColor(line) {
|
|
767
|
-
if (line.source === 'prompt')
|
|
768
|
-
return theme.text.secondary;
|
|
769
|
-
return rowColor(line.source);
|
|
770
|
-
}
|
|
771
|
-
function rowColor(row) {
|
|
772
|
-
if (row.kind === 'assistant')
|
|
773
|
-
return theme.text.primary;
|
|
774
|
-
if (row.kind === 'system')
|
|
775
|
-
return theme.text.muted;
|
|
776
|
-
return row.status === 'failed' ? theme.status.error : theme.text.secondary;
|
|
777
|
-
}
|
|
778
|
-
function useLiveNow(active) {
|
|
779
|
-
const [now, setNow] = useState(() => Date.now());
|
|
780
|
-
useEffect(() => {
|
|
781
|
-
if (!active)
|
|
782
|
-
return;
|
|
783
|
-
const timer = setInterval(() => setNow(Date.now()), 1_000);
|
|
784
|
-
timer.unref?.();
|
|
785
|
-
return () => clearInterval(timer);
|
|
786
|
-
}, [active]);
|
|
787
|
-
return now;
|
|
788
|
-
}
|
|
789
|
-
//# sourceMappingURL=AgentExplorer.js.map
|