@namzu/cli 35.0.0 → 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 +756 -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/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/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/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.map +1 -1
- 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 +19 -3
- 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.map +1 -1
- 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 +125 -3
- 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 +4 -1
- 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 +21 -10
- 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 -461
- 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 -611
- 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 -476
- 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 -8499
- package/dist/tui/App.js.map +0 -1
- package/dist/tui/BackgroundJobsPanel.js +0 -129
- package/dist/tui/BackgroundJobsPanel.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 -939
- 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/PendingInputPanel.js +0 -108
- package/dist/tui/PendingInputPanel.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 -4301
- 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 -1588
- 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
package/dist/skills/catalog.js
DELETED
|
@@ -1,226 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The skills a session offers the MODEL.
|
|
3
|
-
*
|
|
4
|
-
* `store.ts` discovers `SKILL.md` files for the operator. Until this module
|
|
5
|
-
* existed those files reached the model only when the operator pasted one in
|
|
6
|
-
* (`/skills <name>`, `exec --skills`): the kernel's manifest and its `skill`
|
|
7
|
-
* tool were wired for plugin skills alone. This builds one SDK
|
|
8
|
-
* `SkillRegistry` per session from the discovered tiers and, per turn, merges
|
|
9
|
-
* it with the plugin runtime's registry into what the turn receives:
|
|
10
|
-
*
|
|
11
|
-
* - `registry` — what the `skill` tool loads from (and lists, paged);
|
|
12
|
-
* - `manifest` — the skills described in the prompt's `<available_skills>`;
|
|
13
|
-
* - `overflowNote` — the names that did not fit the manifest's budget.
|
|
14
|
-
*
|
|
15
|
-
* Metadata only until the model asks: a skill's body is read when the `skill`
|
|
16
|
-
* tool loads it, never at session start.
|
|
17
|
-
*
|
|
18
|
-
* ## Gating
|
|
19
|
-
*
|
|
20
|
-
* A skill whose `metadata.namzu-requires-tools` names a tool the turn does
|
|
21
|
-
* not have is hidden from both the manifest and the tool — instructions for a
|
|
22
|
-
* capability the session lacks read as a capability to go looking for.
|
|
23
|
-
*
|
|
24
|
-
* ## Budget
|
|
25
|
-
*
|
|
26
|
-
* The manifest costs prompt on every request, so it is capped at
|
|
27
|
-
* min(2% of the context window, 4 KB). Skills that do not fit are named in
|
|
28
|
-
* one line and stay loadable; the `skill` tool lists them with descriptions,
|
|
29
|
-
* paged, when called without a name.
|
|
30
|
-
*/
|
|
31
|
-
import { dirname } from 'node:path';
|
|
32
|
-
import { SKILL_TOOL_NAME, SkillRegistry, isInvocableBy, } from '@namzu/sdk';
|
|
33
|
-
import { SKILL_TIERS, discoverSkills, parseRequiredTools, } from './store.js';
|
|
34
|
-
/** The manifest never costs more than this many characters. */
|
|
35
|
-
export const SKILL_MANIFEST_MAX_CHARS = 4096;
|
|
36
|
-
/** Share of the context window the manifest may take. */
|
|
37
|
-
export const SKILL_MANIFEST_WINDOW_SHARE = 0.02;
|
|
38
|
-
/** The kernel's own chars-per-token estimate. */
|
|
39
|
-
const CHARS_PER_TOKEN = 4;
|
|
40
|
-
/** min(2% of the window, 4 KB), in characters. */
|
|
41
|
-
export function skillManifestBudget(contextWindowTokens) {
|
|
42
|
-
const share = Math.floor(contextWindowTokens * SKILL_MANIFEST_WINDOW_SHARE * CHARS_PER_TOKEN);
|
|
43
|
-
return Math.max(0, Math.min(SKILL_MANIFEST_MAX_CHARS, share));
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* What one skill's `<skill>` entry costs in the manifest. Mirrors the
|
|
47
|
-
* kernel's `renderSkillsSection` entry closely enough to budget with; the
|
|
48
|
-
* section's fixed preamble is not counted — it is paid once whatever fits.
|
|
49
|
-
*/
|
|
50
|
-
export function manifestEntryChars(skill) {
|
|
51
|
-
const m = skill.metadata;
|
|
52
|
-
let chars = '<skill>\n<name></name>\n<description></description>\n<location>/SKILL.md</location>\n</skill>\n'
|
|
53
|
-
.length +
|
|
54
|
-
m.name.length +
|
|
55
|
-
m.description.trim().length +
|
|
56
|
-
skill.dirPath.length;
|
|
57
|
-
if (m.compatibility)
|
|
58
|
-
chars += '<compatibility></compatibility>\n'.length + m.compatibility.length;
|
|
59
|
-
if (m.license)
|
|
60
|
-
chars += '<license></license>\n'.length + m.license.length;
|
|
61
|
-
if (m.allowedTools)
|
|
62
|
-
chars += '<allowed_tools></allowed_tools>\n'.length + m.allowedTools.length;
|
|
63
|
-
return chars;
|
|
64
|
-
}
|
|
65
|
-
/** The tools a skill says the session must have; see the module comment. */
|
|
66
|
-
export function requiredToolsOf(skill) {
|
|
67
|
-
const metadata = skill.metadata.metadata;
|
|
68
|
-
const declared = metadata && Object.hasOwn(metadata, 'namzu-requires-tools')
|
|
69
|
-
? metadata['namzu-requires-tools']
|
|
70
|
-
: undefined;
|
|
71
|
-
return parseRequiredTools(declared) ?? [];
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* Discover the file tiers and register each usable winner's metadata; every
|
|
75
|
-
* turn discovers again, so the catalog follows the files.
|
|
76
|
-
*
|
|
77
|
-
* A file the kernel loader refuses (a name that does not match its
|
|
78
|
-
* directory, a missing description, a contradictory `invocation`) is left
|
|
79
|
-
* out of the model's catalog with a warning; the operator still sees it in
|
|
80
|
-
* `/skills list` and can still activate it by name.
|
|
81
|
-
*/
|
|
82
|
-
export async function createSessionSkillCatalog(options) {
|
|
83
|
-
const discovery = {
|
|
84
|
-
cwd: options.cwd,
|
|
85
|
-
...(options.home !== undefined ? { home: options.home } : {}),
|
|
86
|
-
...(options.config ? { config: options.config } : {}),
|
|
87
|
-
...(options.systemDir !== undefined ? { systemDir: options.systemDir } : {}),
|
|
88
|
-
};
|
|
89
|
-
const files = new SkillRegistry(options.log);
|
|
90
|
-
let registered = [];
|
|
91
|
-
/** The path each registered name was read from, to notice a new winner. */
|
|
92
|
-
const registeredPaths = new Map();
|
|
93
|
-
let order = [];
|
|
94
|
-
// Re-run every turn: a skill written while the session runs (`save_skill`,
|
|
95
|
-
// or the operator's editor) reaches the next turn, a new winner in a
|
|
96
|
-
// higher tier replaces the one it shadows, and a removed file is dropped.
|
|
97
|
-
// Discovery reads a handful of small files; a turn costs far more.
|
|
98
|
-
const sync = async () => {
|
|
99
|
-
const candidates = discoverSkills(discovery)
|
|
100
|
-
.filter((skill) => skill.problem === undefined && skill.disabled !== true)
|
|
101
|
-
// Highest precedence first: when the budget runs out, the project's own
|
|
102
|
-
// skills are the last to lose their description.
|
|
103
|
-
.sort((a, b) => SKILL_TIERS.indexOf(b.tier) - SKILL_TIERS.indexOf(a.tier) || a.name.localeCompare(b.name));
|
|
104
|
-
const next = [];
|
|
105
|
-
const seen = new Set();
|
|
106
|
-
for (const skill of candidates) {
|
|
107
|
-
seen.add(skill.name);
|
|
108
|
-
if (registeredPaths.get(skill.name) === skill.path) {
|
|
109
|
-
next.push(skill);
|
|
110
|
-
continue;
|
|
111
|
-
}
|
|
112
|
-
try {
|
|
113
|
-
await files.register(dirname(skill.path), 'metadata');
|
|
114
|
-
registeredPaths.set(skill.name, skill.path);
|
|
115
|
-
next.push(skill);
|
|
116
|
-
}
|
|
117
|
-
catch (error) {
|
|
118
|
-
if (registeredPaths.delete(skill.name))
|
|
119
|
-
files.unregister(skill.name);
|
|
120
|
-
options.log?.warn('skill not offered to the model', {
|
|
121
|
-
'namzu.skill.name': skill.name,
|
|
122
|
-
'namzu.skill.path': skill.path,
|
|
123
|
-
'namzu.skill.reason': error instanceof Error ? error.message : String(error),
|
|
124
|
-
});
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
for (const name of [...registeredPaths.keys()]) {
|
|
128
|
-
if (seen.has(name))
|
|
129
|
-
continue;
|
|
130
|
-
registeredPaths.delete(name);
|
|
131
|
-
files.unregister(name);
|
|
132
|
-
}
|
|
133
|
-
registered = next;
|
|
134
|
-
order = next.map((skill) => skill.name);
|
|
135
|
-
};
|
|
136
|
-
await sync();
|
|
137
|
-
return {
|
|
138
|
-
get fileSkills() {
|
|
139
|
-
return registered;
|
|
140
|
-
},
|
|
141
|
-
get hasFileSkills() {
|
|
142
|
-
return registered.length > 0;
|
|
143
|
-
},
|
|
144
|
-
async forTurn(input) {
|
|
145
|
-
await sync();
|
|
146
|
-
const tools = new Set(input.toolNames);
|
|
147
|
-
const gated = (skill) => requiredToolsOf(skill).every((name) => tools.has(name));
|
|
148
|
-
// `load` re-reads a changed file and drops a deleted one, so an edit
|
|
149
|
-
// made while the session runs reaches the next turn.
|
|
150
|
-
const fileSkills = [];
|
|
151
|
-
for (const name of order) {
|
|
152
|
-
const loaded = await files.load(name, 'metadata');
|
|
153
|
-
if (!loaded || !gated(loaded.skill))
|
|
154
|
-
continue;
|
|
155
|
-
// Metadata only. The registry keeps a body once the model has loaded
|
|
156
|
-
// it, and the kernel pastes any body it is handed into the prompt
|
|
157
|
-
// under "Loaded Skills" — every later request would then carry a
|
|
158
|
-
// second copy of what the tool result already put in the history.
|
|
159
|
-
const { body: _body, ...metadataOnly } = loaded.skill;
|
|
160
|
-
fileSkills.push(metadataOnly);
|
|
161
|
-
}
|
|
162
|
-
const offered = new Set(fileSkills.map((skill) => skill.metadata.name));
|
|
163
|
-
const plugins = input.pluginSkills;
|
|
164
|
-
const pluginSkills = [];
|
|
165
|
-
if (plugins) {
|
|
166
|
-
for (const name of plugins.names()) {
|
|
167
|
-
const loaded = await plugins.load(name, 'metadata');
|
|
168
|
-
if (loaded)
|
|
169
|
-
pluginSkills.push(loaded.skill);
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
const all = [...fileSkills, ...pluginSkills];
|
|
173
|
-
if (all.length === 0) {
|
|
174
|
-
return { registry: undefined, manifest: undefined, overflowNote: null, overflow: [] };
|
|
175
|
-
}
|
|
176
|
-
const budget = skillManifestBudget(input.contextWindowTokens);
|
|
177
|
-
const manifest = [];
|
|
178
|
-
const overflow = [];
|
|
179
|
-
let spent = 0;
|
|
180
|
-
for (const skill of all) {
|
|
181
|
-
// Operator-only skills are not in the manifest at all; the kernel
|
|
182
|
-
// filters them too, and they must not use up its budget.
|
|
183
|
-
if (!isInvocableBy(skill, 'model')) {
|
|
184
|
-
manifest.push(skill);
|
|
185
|
-
continue;
|
|
186
|
-
}
|
|
187
|
-
const cost = manifestEntryChars(skill);
|
|
188
|
-
if (overflow.length === 0 && spent + cost <= budget) {
|
|
189
|
-
manifest.push(skill);
|
|
190
|
-
spent += cost;
|
|
191
|
-
}
|
|
192
|
-
else {
|
|
193
|
-
overflow.push(skill.metadata.name);
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
const registry = {
|
|
197
|
-
names: () => [...offered, ...(plugins ? plugins.names() : [])],
|
|
198
|
-
async catalog() {
|
|
199
|
-
const fileEntries = (await files.catalog()).filter((entry) => offered.has(entry.registeredName));
|
|
200
|
-
const pluginEntries = plugins ? await plugins.catalog() : [];
|
|
201
|
-
return [...fileEntries, ...pluginEntries];
|
|
202
|
-
},
|
|
203
|
-
async load(name) {
|
|
204
|
-
if (offered.has(name))
|
|
205
|
-
return files.load(name);
|
|
206
|
-
if (plugins?.has(name))
|
|
207
|
-
return plugins.load(name);
|
|
208
|
-
return undefined;
|
|
209
|
-
},
|
|
210
|
-
};
|
|
211
|
-
return {
|
|
212
|
-
registry,
|
|
213
|
-
manifest: manifest.length > 0 ? manifest : undefined,
|
|
214
|
-
overflowNote: overflowNote(overflow),
|
|
215
|
-
overflow,
|
|
216
|
-
};
|
|
217
|
-
},
|
|
218
|
-
};
|
|
219
|
-
}
|
|
220
|
-
/** The one line naming skills the manifest had no room to describe. */
|
|
221
|
-
export function overflowNote(names) {
|
|
222
|
-
if (names.length === 0)
|
|
223
|
-
return null;
|
|
224
|
-
return `More skills are available than the skills manifest describes: ${names.join(', ')}. Call the \`${SKILL_TOOL_NAME}\` tool without a name to list them with descriptions, or with a name to load one when the task matches it.`;
|
|
225
|
-
}
|
|
226
|
-
//# sourceMappingURL=catalog.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/skills/catalog.ts"],"names":[],"mappings":"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"}
|
package/dist/skills/directory.js
DELETED
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The directory the model can open for a skill, in this CLI.
|
|
3
|
-
*
|
|
4
|
-
* The `skill` tool loads a body from the path the CLI discovered it at, and a
|
|
5
|
-
* body that says "run scripts/render.sh" needs a directory the model's own
|
|
6
|
-
* tools can open. On the host that is the same path. Inside the sandbox it
|
|
7
|
-
* is only sometimes: the local sandbox mounts its root (the working directory,
|
|
8
|
-
* or a disposable directory for an `ephemeral` workspace) and, with the
|
|
9
|
-
* working directory, the added directories, each at its own canonical path,
|
|
10
|
-
* and nothing else. The sandbox's file API refuses every other path, links
|
|
11
|
-
* followed. So:
|
|
12
|
-
*
|
|
13
|
-
* - a project skill (`<cwd>/.namzu/skills`, `<cwd>/.agents/skills`,
|
|
14
|
-
* `<cwd>/skills`) is reachable, and so is one under an added directory;
|
|
15
|
-
* - a user skill (`~/.namzu/skills`, `~/.agents/skills`), a built-in skill
|
|
16
|
-
* (inside the installed package), a plugin skill outside the project, one
|
|
17
|
-
* in `.agents/skills` above `<cwd>`, and a project skill whose directory
|
|
18
|
-
* is a link to somewhere unmounted are not, and are answered `undefined`
|
|
19
|
-
* rather than with a path that would fail;
|
|
20
|
-
* - under an `ephemeral` workspace nothing of the host is mounted, so every
|
|
21
|
-
* skill is `undefined`.
|
|
22
|
-
*
|
|
23
|
-
* The bwrap tier also binds `/usr`, `/opt` and the Node prefix read-only for
|
|
24
|
-
* commands to run. A built-in skill of a CLI installed under one of them can
|
|
25
|
-
* be `cat` from `bash` there, but the `read` tool refuses it and the macOS
|
|
26
|
-
* and namespace tiers differ again, so it is not offered as reachable.
|
|
27
|
-
*/
|
|
28
|
-
import { resolveWithinReal } from '@namzu/sdk';
|
|
29
|
-
export function createSkillDirectoryResolver(options) {
|
|
30
|
-
return async (skill, context) => {
|
|
31
|
-
if (skill.directory === undefined)
|
|
32
|
-
return undefined;
|
|
33
|
-
// On the host the model's tools open the path the CLI read the skill
|
|
34
|
-
// from: a path outside the working directory is a permission question,
|
|
35
|
-
// not a wall.
|
|
36
|
-
if (!context.sandbox)
|
|
37
|
-
return skill.directory;
|
|
38
|
-
for (const root of [context.sandbox.rootDir, ...options.sandboxMounts()]) {
|
|
39
|
-
try {
|
|
40
|
-
// Canonical, because that is the path each root is mounted at;
|
|
41
|
-
// a link out of the root throws, and its target is not mounted.
|
|
42
|
-
return await resolveWithinReal(root, skill.directory);
|
|
43
|
-
}
|
|
44
|
-
catch {
|
|
45
|
-
// Not under this root; try the next.
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
return undefined;
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
//# sourceMappingURL=directory.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"directory.js","sourceRoot":"","sources":["../../src/skills/directory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAA+B,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAW3E,MAAM,UAAU,4BAA4B,CAC3C,OAAsC;IAEtC,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAC/B,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS;YAAE,OAAO,SAAS,CAAA;QACnD,qEAAqE;QACrE,uEAAuE;QACvE,cAAc;QACd,IAAI,CAAC,OAAO,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC,SAAS,CAAA;QAC5C,KAAK,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,EAAE,CAAC;YAC1E,IAAI,CAAC;gBACJ,+DAA+D;gBAC/D,gEAAgE;gBAChE,OAAO,MAAM,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAA;YACtD,CAAC;YAAC,MAAM,CAAC;gBACR,qCAAqC;YACtC,CAAC;QACF,CAAC;QACD,OAAO,SAAS,CAAA;IACjB,CAAC,CAAA;AACF,CAAC"}
|
package/dist/skills/save.js
DELETED
|
@@ -1,344 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `save_skill`: the model proposes a `SKILL.md`, the operator decides.
|
|
3
|
-
*
|
|
4
|
-
* The tool exists only in the interactive TUI (the App hands it to its own
|
|
5
|
-
* session through `extraTools`; `exec`, `drain`, a scheduled run and every
|
|
6
|
-
* sub-agent build their registries without it). Nothing is written until a
|
|
7
|
-
* person picks a target on a screen drawn from what this module computes —
|
|
8
|
-
* the exact file, with invisible characters shown, where it would go, and
|
|
9
|
-
* which existing skill it would replace or be hidden by. That question is
|
|
10
|
-
* the host's own (`SaveSkillHost.confirm`), not the permission gate's, so no
|
|
11
|
-
* permission mode answers it: `auto` still asks.
|
|
12
|
-
*
|
|
13
|
-
* A saved skill is a single `SKILL.md`, written atomically (a temporary
|
|
14
|
-
* beside it, then `rename`). The session catalog discovers again every turn,
|
|
15
|
-
* so the model is offered it from the next turn on.
|
|
16
|
-
*/
|
|
17
|
-
import { randomBytes } from 'node:crypto';
|
|
18
|
-
import { closeSync, fsyncSync, mkdirSync, openSync, renameSync, rmSync, writeSync } from 'node:fs';
|
|
19
|
-
import { homedir } from 'node:os';
|
|
20
|
-
import { dirname, join, relative, sep } from 'node:path';
|
|
21
|
-
import { defineTool, mcpJsonSchemaToZod, revealHiddenCharacters, scanSchedulePrompt, } from '@namzu/sdk';
|
|
22
|
-
import { SKILL_TIERS, discoverSkillRoster, parseSkillMarkdown, projectSkillsDir, skillTierLabel, userSkillsDir, } from './store.js';
|
|
23
|
-
export const SAVE_SKILL_TOOL_NAME = 'save_skill';
|
|
24
|
-
/** The built-in skill that interviews the operator and drafts a skill. */
|
|
25
|
-
export const SKILL_CREATOR_SKILL = 'skill-creator';
|
|
26
|
-
/** What `/skills new [idea]` sends as the operator's prompt. */
|
|
27
|
-
export function newSkillPrompt(idea) {
|
|
28
|
-
const what = idea.trim();
|
|
29
|
-
return [
|
|
30
|
-
`Help me create a new skill. Load the ${SKILL_CREATOR_SKILL} skill with the skill tool and follow it: interview me, show me the draft, and save it with save_skill only after I agree. Write the skill in the language of my own messages, not in English by default (namzu writes this request in English; it does not count).`,
|
|
31
|
-
what ? `What the skill should do: ${what}` : 'Start by asking what the skill should do.',
|
|
32
|
-
].join(' ');
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* What `/skills save [name]` sends: one turn, in the conversation whose work
|
|
36
|
-
* it saves, that ends on the `save_skill` screen. The screen shows the whole
|
|
37
|
-
* file and saves nothing until the operator picks a place, so the model is
|
|
38
|
-
* told to go straight to it rather than ask in a reply first.
|
|
39
|
-
*/
|
|
40
|
-
export function learnSkillPrompt(name) {
|
|
41
|
-
return [
|
|
42
|
-
`Save what we just did in this conversation as a reusable skill. Load the ${SKILL_CREATOR_SKILL} skill with the skill tool and follow its "from this conversation" mode: generalise the task, replace this run's names, paths, values and dates with placeholders, leave out secrets and personal data, and never copy tool, file or page output into it.`,
|
|
43
|
-
name
|
|
44
|
-
? `Name it ${name}.`
|
|
45
|
-
: 'Choose a short name for the kind of task, not for this instance of it.',
|
|
46
|
-
'Write the description and instructions in the language of my own earlier messages in this conversation, not in English by default (namzu writes this request in English; it does not count). The name stays lowercase ASCII with dashes.',
|
|
47
|
-
'The save_skill confirmation screen is my review of the draft: call save_skill with origin "learned" in this turn, without asking me in a reply first. If I cancel, ask what to change.',
|
|
48
|
-
].join(' ');
|
|
49
|
-
}
|
|
50
|
-
/** The kernel loader's own limits, checked here so the operator is never shown a file it would refuse. */
|
|
51
|
-
export const SKILL_NAME_MAX_CHARS = 64;
|
|
52
|
-
export const SKILL_DESCRIPTION_MAX_CHARS = 1024;
|
|
53
|
-
/** A skill body is instructions, not a document store. */
|
|
54
|
-
export const SKILL_BODY_MAX_BYTES = 64 * 1024;
|
|
55
|
-
export const SKILL_NAME_PATTERN = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;
|
|
56
|
-
export class SkillDraftError extends Error {
|
|
57
|
-
name = 'SkillDraftError';
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Normalise and check what the model proposed. Throws {@link SkillDraftError}
|
|
61
|
-
* naming the first problem.
|
|
62
|
-
*/
|
|
63
|
-
export function validateSkillDraft(input) {
|
|
64
|
-
const name = input.name.trim();
|
|
65
|
-
if (name.length === 0 || name.length > SKILL_NAME_MAX_CHARS || !SKILL_NAME_PATTERN.test(name)) {
|
|
66
|
-
throw new SkillDraftError(`name "${name}" must be 1–${SKILL_NAME_MAX_CHARS} lowercase letters, digits and single hyphens (like "release-notes").`);
|
|
67
|
-
}
|
|
68
|
-
// One line: the frontmatter holds a single-line value, and a description
|
|
69
|
-
// is read by the model as one sentence or two anyway.
|
|
70
|
-
const description = input.description.replace(/\s+/g, ' ').trim();
|
|
71
|
-
if (description.length === 0)
|
|
72
|
-
throw new SkillDraftError('description must not be empty.');
|
|
73
|
-
if (description.length > SKILL_DESCRIPTION_MAX_CHARS) {
|
|
74
|
-
throw new SkillDraftError(`description is ${description.length} characters; at most ${SKILL_DESCRIPTION_MAX_CHARS}.`);
|
|
75
|
-
}
|
|
76
|
-
const body = input.body.replace(/\r\n?/g, '\n').trim();
|
|
77
|
-
if (body.length === 0)
|
|
78
|
-
throw new SkillDraftError('body must not be empty.');
|
|
79
|
-
const bytes = Buffer.byteLength(body, 'utf8');
|
|
80
|
-
if (bytes > SKILL_BODY_MAX_BYTES) {
|
|
81
|
-
throw new SkillDraftError(`body is ${bytes} bytes; at most ${SKILL_BODY_MAX_BYTES}.`);
|
|
82
|
-
}
|
|
83
|
-
if (/^---[ \t]*$/m.test(body.split('\n', 1)[0] ?? '')) {
|
|
84
|
-
throw new SkillDraftError('body must be the instructions only; pass name and description as fields, not as frontmatter.');
|
|
85
|
-
}
|
|
86
|
-
return { name, description, body, origin: input.origin ?? 'created' };
|
|
87
|
-
}
|
|
88
|
-
/** The `SKILL.md` for a draft. Round-tripped through the reader before anyone sees it. */
|
|
89
|
-
export function composeSkillMarkdown(draft, meta) {
|
|
90
|
-
const lines = [
|
|
91
|
-
'---',
|
|
92
|
-
`name: ${draft.name}`,
|
|
93
|
-
`description: "${draft.description}"`,
|
|
94
|
-
'metadata:',
|
|
95
|
-
` namzu-origin: ${draft.origin}`,
|
|
96
|
-
...(meta.sessionId ? [` namzu-session: "${meta.sessionId}"`] : []),
|
|
97
|
-
` namzu-created: "${meta.createdAt.toISOString()}"`,
|
|
98
|
-
'---',
|
|
99
|
-
'',
|
|
100
|
-
draft.body,
|
|
101
|
-
'',
|
|
102
|
-
];
|
|
103
|
-
const markdown = lines.join('\n');
|
|
104
|
-
let parsed;
|
|
105
|
-
try {
|
|
106
|
-
parsed = parseSkillMarkdown(markdown);
|
|
107
|
-
}
|
|
108
|
-
catch (error) {
|
|
109
|
-
throw new SkillDraftError(`the file would not load: ${error instanceof Error ? error.message : String(error)}`);
|
|
110
|
-
}
|
|
111
|
-
if (parsed.name !== draft.name || parsed.description !== draft.description) {
|
|
112
|
-
throw new SkillDraftError('the description would read back differently from what was written; drop leading or trailing quotes and brackets.');
|
|
113
|
-
}
|
|
114
|
-
return markdown;
|
|
115
|
-
}
|
|
116
|
-
function displayPath(path, cwd) {
|
|
117
|
-
const rel = relative(cwd, path);
|
|
118
|
-
if (rel && !rel.startsWith('..') && !rel.startsWith(sep))
|
|
119
|
-
return `./${rel.split(sep).join('/')}`;
|
|
120
|
-
const home = homedir();
|
|
121
|
-
const fromHome = relative(home, path);
|
|
122
|
-
if (fromHome && !fromHome.startsWith('..'))
|
|
123
|
-
return `~/${fromHome.split(sep).join('/')}`;
|
|
124
|
-
return path;
|
|
125
|
-
}
|
|
126
|
-
/** Where each choice writes, and what already holds that name. */
|
|
127
|
-
export function planSkillTargets(name, options) {
|
|
128
|
-
const roster = discoverSkillRoster({
|
|
129
|
-
cwd: options.cwd,
|
|
130
|
-
...(options.home !== undefined ? { home: options.home } : {}),
|
|
131
|
-
// Every tier, the built-in one included even when the config turns it
|
|
132
|
-
// off: "replaces" is about files, and the file is there.
|
|
133
|
-
config: { ...(options.config ?? {}), builtin: true, disabled: [] },
|
|
134
|
-
});
|
|
135
|
-
const existing = [
|
|
136
|
-
...roster.skills.filter((skill) => skill.name === name),
|
|
137
|
-
...roster.shadowed.filter((skill) => skill.name === name),
|
|
138
|
-
];
|
|
139
|
-
const target = (scope) => {
|
|
140
|
-
const tier = scope;
|
|
141
|
-
const dir = scope === 'user' ? userSkillsDir(options.home) : projectSkillsDir(options.cwd);
|
|
142
|
-
const path = join(dir, name, 'SKILL.md');
|
|
143
|
-
const rank = SKILL_TIERS.indexOf(tier);
|
|
144
|
-
const collisions = existing
|
|
145
|
-
.map((skill) => {
|
|
146
|
-
const overwrite = skill.path === path;
|
|
147
|
-
const higher = !overwrite && SKILL_TIERS.indexOf(skill.tier) > rank;
|
|
148
|
-
return {
|
|
149
|
-
effect: higher ? 'hidden-by' : 'replaces',
|
|
150
|
-
where: skillTierLabel(skill.tier),
|
|
151
|
-
path: skill.path,
|
|
152
|
-
overwrite,
|
|
153
|
-
};
|
|
154
|
-
})
|
|
155
|
-
.sort((a, b) => Number(b.overwrite) - Number(a.overwrite));
|
|
156
|
-
return { scope, path, displayPath: displayPath(path, options.cwd), collisions };
|
|
157
|
-
};
|
|
158
|
-
return { user: target('user'), project: target('project') };
|
|
159
|
-
}
|
|
160
|
-
/** One line per collision, as the confirmation and the tool result say it. */
|
|
161
|
-
export function describeCollision(collision, cwd) {
|
|
162
|
-
const where = displayPath(collision.path, cwd);
|
|
163
|
-
if (collision.overwrite)
|
|
164
|
-
return `replaces ${collision.where} skill ${where} (overwrites it)`;
|
|
165
|
-
return collision.effect === 'replaces'
|
|
166
|
-
? `replaces ${collision.where} skill ${where}`
|
|
167
|
-
: `hidden by ${collision.where} skill ${where}, which keeps winning`;
|
|
168
|
-
}
|
|
169
|
-
/** The prompt tripwire, worded for a skill. */
|
|
170
|
-
export function skillWarnings(markdown) {
|
|
171
|
-
return scanSchedulePrompt(markdown).map((finding) => finding.replace(/^The prompt/, 'The skill'));
|
|
172
|
-
}
|
|
173
|
-
/**
|
|
174
|
-
* Write `text` to `path` so a reader sees the old file or the new one, never
|
|
175
|
-
* part of either: a temporary beside it, flushed, then renamed over it.
|
|
176
|
-
*/
|
|
177
|
-
export function writeFileAtomically(path, text) {
|
|
178
|
-
mkdirSync(dirname(path), { recursive: true });
|
|
179
|
-
const temporary = join(dirname(path), `.SKILL.md.${process.pid}.${randomBytes(6).toString('hex')}.tmp`);
|
|
180
|
-
try {
|
|
181
|
-
const fd = openSync(temporary, 'wx', 0o644);
|
|
182
|
-
try {
|
|
183
|
-
writeSync(fd, text);
|
|
184
|
-
fsyncSync(fd);
|
|
185
|
-
}
|
|
186
|
-
finally {
|
|
187
|
-
closeSync(fd);
|
|
188
|
-
}
|
|
189
|
-
renameSync(temporary, path);
|
|
190
|
-
}
|
|
191
|
-
catch (error) {
|
|
192
|
-
rmSync(temporary, { force: true });
|
|
193
|
-
throw error;
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
const inputSchema = mcpJsonSchemaToZod({
|
|
197
|
-
type: 'object',
|
|
198
|
-
properties: {
|
|
199
|
-
name: {
|
|
200
|
-
type: 'string',
|
|
201
|
-
minLength: 1,
|
|
202
|
-
maxLength: 128,
|
|
203
|
-
description: 'Directory and skill name: lowercase letters, digits and single hyphens, at most 64.',
|
|
204
|
-
},
|
|
205
|
-
description: {
|
|
206
|
-
type: 'string',
|
|
207
|
-
minLength: 1,
|
|
208
|
-
maxLength: 4096,
|
|
209
|
-
description: 'One or two sentences saying WHEN to use the skill (the task and the words a user would use), at most 1024 characters. The model decides to load a skill from this alone.',
|
|
210
|
-
},
|
|
211
|
-
body: {
|
|
212
|
-
type: 'string',
|
|
213
|
-
minLength: 1,
|
|
214
|
-
maxLength: 200_000,
|
|
215
|
-
description: 'The instructions: markdown, no frontmatter. Steps, constraints, examples.',
|
|
216
|
-
},
|
|
217
|
-
scope: {
|
|
218
|
-
type: 'string',
|
|
219
|
-
enum: ['user', 'project'],
|
|
220
|
-
description: 'Where you suggest it go: user (~/.namzu/skills, every project) or project (./.namzu/skills). The operator chooses.',
|
|
221
|
-
},
|
|
222
|
-
replaces: {
|
|
223
|
-
type: 'string',
|
|
224
|
-
description: 'The name of the existing skill this updates, when it is one. Must equal name.',
|
|
225
|
-
},
|
|
226
|
-
origin: {
|
|
227
|
-
type: 'string',
|
|
228
|
-
enum: ['created', 'learned'],
|
|
229
|
-
description: 'created: written with the operator; learned: generalised from this conversation.',
|
|
230
|
-
},
|
|
231
|
-
},
|
|
232
|
-
required: ['name', 'description', 'body'],
|
|
233
|
-
additionalProperties: false,
|
|
234
|
-
});
|
|
235
|
-
function refuse(error) {
|
|
236
|
-
return { success: false, output: '', error };
|
|
237
|
-
}
|
|
238
|
-
/**
|
|
239
|
-
* The `save_skill` tool over a {@link SaveSkillHost}. Register it only where a
|
|
240
|
-
* person is present to confirm — the interactive TUI's own session.
|
|
241
|
-
*/
|
|
242
|
-
export function buildSaveSkillTool(host) {
|
|
243
|
-
return defineTool({
|
|
244
|
-
name: SAVE_SKILL_TOOL_NAME,
|
|
245
|
-
description: 'Propose a reusable skill (a SKILL.md: name, description, instructions) for the operator to save. The operator sees the whole file and where it would go, and picks user, project or cancel; nothing is written without that. Use it only when the operator asked for a skill (the skill-creator skill describes how to draft one).',
|
|
246
|
-
inputSchema,
|
|
247
|
-
category: 'custom',
|
|
248
|
-
permissions: ['file_write'],
|
|
249
|
-
readOnly: false,
|
|
250
|
-
destructive: false,
|
|
251
|
-
concurrencySafe: false,
|
|
252
|
-
// A person reads the whole file before answering; the default two
|
|
253
|
-
// minutes would close the question on them.
|
|
254
|
-
timeoutMs: 30 * 60_000,
|
|
255
|
-
presentCall: (input) => ({
|
|
256
|
-
kind: 'generic',
|
|
257
|
-
label: `Propose skill ${typeof input.name === 'string' ? input.name : ''}`.trim(),
|
|
258
|
-
presentation: 'activity',
|
|
259
|
-
}),
|
|
260
|
-
// The operator's No on the tool's own screen is not a failure.
|
|
261
|
-
presentResult: (_input, result) => !result.success && result.data?.cancelled === true
|
|
262
|
-
? { kind: 'generic', label: 'Cancelled — nothing was saved', outcome: 'cancelled' }
|
|
263
|
-
: undefined,
|
|
264
|
-
async execute(raw, context) {
|
|
265
|
-
const input = raw;
|
|
266
|
-
let draft;
|
|
267
|
-
try {
|
|
268
|
-
draft = validateSkillDraft({
|
|
269
|
-
name: input.name,
|
|
270
|
-
description: input.description,
|
|
271
|
-
body: input.body,
|
|
272
|
-
...(input.origin ? { origin: input.origin } : {}),
|
|
273
|
-
});
|
|
274
|
-
}
|
|
275
|
-
catch (error) {
|
|
276
|
-
return refuse(`save_skill: ${error instanceof Error ? error.message : String(error)}`);
|
|
277
|
-
}
|
|
278
|
-
if (input.replaces !== undefined && input.replaces.trim() !== draft.name) {
|
|
279
|
-
return refuse(`save_skill: replaces "${input.replaces}" must equal name "${draft.name}"; a skill is updated under its own name, not renamed.`);
|
|
280
|
-
}
|
|
281
|
-
const sessionId = host.sessionId();
|
|
282
|
-
let markdown;
|
|
283
|
-
try {
|
|
284
|
-
markdown = composeSkillMarkdown(draft, {
|
|
285
|
-
...(sessionId ? { sessionId } : {}),
|
|
286
|
-
createdAt: (host.now ?? (() => new Date()))(),
|
|
287
|
-
});
|
|
288
|
-
}
|
|
289
|
-
catch (error) {
|
|
290
|
-
return refuse(`save_skill: ${error instanceof Error ? error.message : String(error)}`);
|
|
291
|
-
}
|
|
292
|
-
const cwd = host.cwd();
|
|
293
|
-
const home = host.home?.();
|
|
294
|
-
const config = host.config?.();
|
|
295
|
-
const targets = planSkillTargets(draft.name, {
|
|
296
|
-
cwd,
|
|
297
|
-
...(home !== undefined ? { home } : {}),
|
|
298
|
-
...(config ? { config } : {}),
|
|
299
|
-
});
|
|
300
|
-
const request = {
|
|
301
|
-
draft,
|
|
302
|
-
markdown,
|
|
303
|
-
revealed: revealHiddenCharacters(markdown),
|
|
304
|
-
targets,
|
|
305
|
-
suggested: input.scope ?? 'user',
|
|
306
|
-
...(sessionId ? { sessionId } : {}),
|
|
307
|
-
warnings: skillWarnings(markdown),
|
|
308
|
-
};
|
|
309
|
-
let answer;
|
|
310
|
-
try {
|
|
311
|
-
answer = await host.confirm(request, context.abortSignal);
|
|
312
|
-
}
|
|
313
|
-
catch {
|
|
314
|
-
answer = 'cancel';
|
|
315
|
-
}
|
|
316
|
-
if (context.abortSignal?.aborted)
|
|
317
|
-
answer = 'cancel';
|
|
318
|
-
if (answer !== 'user' && answer !== 'project') {
|
|
319
|
-
return {
|
|
320
|
-
...refuse('The operator cancelled; nothing was written. Ask what to change, or leave it.'),
|
|
321
|
-
data: { cancelled: true },
|
|
322
|
-
};
|
|
323
|
-
}
|
|
324
|
-
const target = targets[answer];
|
|
325
|
-
try {
|
|
326
|
-
writeFileAtomically(target.path, markdown);
|
|
327
|
-
}
|
|
328
|
-
catch (error) {
|
|
329
|
-
return refuse(`save_skill: could not write ${target.path}: ${error instanceof Error ? error.message : String(error)}`);
|
|
330
|
-
}
|
|
331
|
-
host.saved?.({ name: draft.name, path: target.path });
|
|
332
|
-
const notes = target.collisions.map((c) => describeCollision(c, cwd));
|
|
333
|
-
return {
|
|
334
|
-
success: true,
|
|
335
|
-
output: [
|
|
336
|
-
`Saved skill "${draft.name}" to ${target.displayPath}.${notes.length > 0 ? ` It ${notes.join('; ')}.` : ''}`,
|
|
337
|
-
`It is offered to the model from the next turn; the operator can activate it now with /skills ${draft.name}.`,
|
|
338
|
-
].join(' '),
|
|
339
|
-
data: { name: draft.name, path: target.path, scope: answer },
|
|
340
|
-
};
|
|
341
|
-
},
|
|
342
|
-
});
|
|
343
|
-
}
|
|
344
|
-
//# sourceMappingURL=save.js.map
|