@iowarp/clio-coder 0.4.9 → 0.5.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/.claude-plugin/marketplace.json +11 -3
- package/CHANGELOG.md +153 -0
- package/CODE_OF_CONDUCT.md +10 -0
- package/CONTRIBUTING.md +208 -382
- package/NOTICE +8 -2
- package/README.md +199 -418
- package/ROADMAP.md +82 -0
- package/SECURITY.md +14 -11
- package/dist/acp-KS7ARGV6.js +132 -0
- package/dist/agents-YOGJ2YEJ.js +163 -0
- package/dist/assets/codewiki.json +1 -1
- package/dist/auth-CEDCO6O6.js +557 -0
- package/dist/background-YWTBPSQU.js +39 -0
- package/dist/builtins-GDYO4RTR.js +23 -0
- package/dist/chunk-27YTM2CV.js +175 -0
- package/dist/chunk-2AF6YC7Q.js +75 -0
- package/dist/chunk-2DTIWSAW.js +381 -0
- package/dist/chunk-2EMLKSCX.js +262 -0
- package/dist/chunk-2OJ3YZQP.js +665 -0
- package/dist/chunk-2VLYHHFT.js +35 -0
- package/dist/chunk-2WVPJF3Z.js +204 -0
- package/dist/chunk-33OASOS6.js +176 -0
- package/dist/chunk-3BD2LXYJ.js +19 -0
- package/dist/chunk-3JHUFKG7.js +30 -0
- package/dist/chunk-3JLTRPN7.js +711 -0
- package/dist/chunk-3LT34CAM.js +2796 -0
- package/dist/chunk-3O5JWP4L.js +1670 -0
- package/dist/chunk-3UW3KU4A.js +21 -0
- package/dist/chunk-4A6YRGV4.js +569 -0
- package/dist/chunk-4D2BRCZ3.js +67 -0
- package/dist/chunk-4SYHGVDE.js +668 -0
- package/dist/chunk-4VDHLCF5.js +66 -0
- package/dist/chunk-4WOOTKFD.js +637 -0
- package/dist/chunk-4WV4PI66.js +80 -0
- package/dist/chunk-53OXPRI6.js +195 -0
- package/dist/chunk-55RMDDFM.js +1347 -0
- package/dist/chunk-56XP4FJU.js +2025 -0
- package/dist/chunk-5B3RTYAK.js +123 -0
- package/dist/chunk-5CD243WE.js +45 -0
- package/dist/chunk-5JQR5B4D.js +709 -0
- package/dist/chunk-5KQEUIWM.js +597 -0
- package/dist/chunk-5LP5FNNR.js +915 -0
- package/dist/chunk-62UK7AGW.js +9344 -0
- package/dist/chunk-6CTHLZFB.js +563 -0
- package/dist/chunk-6EJYVCTN.js +23 -0
- package/dist/chunk-6OWUM2NC.js +12289 -0
- package/dist/chunk-6RJMYYIE.js +1023 -0
- package/dist/chunk-6W75D37F.js +643 -0
- package/dist/chunk-733ZBT5P.js +1721 -0
- package/dist/chunk-77DCC6JZ.js +3710 -0
- package/dist/chunk-7QXCO3AF.js +156 -0
- package/dist/chunk-7RET77VB.js +481 -0
- package/dist/chunk-A4MVRV4C.js +65 -0
- package/dist/chunk-ALJWT6O6.js +93 -0
- package/dist/chunk-AVSR2HKI.js +232 -0
- package/dist/chunk-B7GY6QER.js +42 -0
- package/dist/chunk-BFOSV5EZ.js +178 -0
- package/dist/chunk-BGOIM7NB.js +103 -0
- package/dist/chunk-BJH6WFIB.js +372 -0
- package/dist/chunk-BOBCCDJ6.js +1533 -0
- package/dist/chunk-BRCOSE7O.js +117 -0
- package/dist/chunk-BYFHHCFV.js +601 -0
- package/dist/chunk-C2CPOIH2.js +83 -0
- package/dist/chunk-C7AQTPCE.js +694 -0
- package/dist/chunk-CBAQPTDU.js +165 -0
- package/dist/chunk-CDQ2UC6W.js +125 -0
- package/dist/chunk-CN6SW5DC.js +177 -0
- package/dist/chunk-CRHPCPZP.js +132 -0
- package/dist/chunk-CTFPFW3H.js +44 -0
- package/dist/chunk-D3KWFOUT.js +103 -0
- package/dist/chunk-D65E25JG.js +185 -0
- package/dist/chunk-DCGHJQ2U.js +236 -0
- package/dist/chunk-DE2LU267.js +106 -0
- package/dist/chunk-DF6PI6GN.js +97 -0
- package/dist/chunk-DGC6X6XR.js +53 -0
- package/dist/chunk-DOUISWEE.js +526 -0
- package/dist/chunk-DR3TAEUA.js +188 -0
- package/dist/chunk-DVTBERFY.js +33 -0
- package/dist/chunk-DXSETN72.js +1051 -0
- package/dist/chunk-DZLR4UEH.js +128 -0
- package/dist/chunk-E6IPKW2E.js +77 -0
- package/dist/chunk-EG4ARXPC.js +139 -0
- package/dist/chunk-EKV4UBCM.js +652 -0
- package/dist/chunk-EOJPDNUP.js +1325 -0
- package/dist/chunk-EX57VVWW.js +4157 -0
- package/dist/chunk-EYTLV3W3.js +5937 -0
- package/dist/chunk-EZD2BXGP.js +475 -0
- package/dist/chunk-EZDCA34W.js +314 -0
- package/dist/chunk-FD2I4KBR.js +33 -0
- package/dist/chunk-FD3IAHQM.js +27 -0
- package/dist/chunk-FFYTC2KQ.js +416 -0
- package/dist/chunk-FGSQHUCK.js +110 -0
- package/dist/chunk-GCQFN7YI.js +32 -0
- package/dist/chunk-GGPF6LLE.js +38 -0
- package/dist/chunk-GGWI3OVM.js +215 -0
- package/dist/chunk-GLIQT7SU.js +172 -0
- package/dist/chunk-GN7QBEEI.js +95 -0
- package/dist/chunk-GRHOXDKB.js +1104 -0
- package/dist/chunk-HMN2C6YL.js +54 -0
- package/dist/chunk-HOEDA42N.js +310 -0
- package/dist/chunk-HOYZUKG7.js +192 -0
- package/dist/chunk-HQVN7G4F.js +1021 -0
- package/dist/chunk-HSQQFDB3.js +519 -0
- package/dist/chunk-I4ELN5BX.js +47 -0
- package/dist/chunk-I4Y4WKZR.js +386 -0
- package/dist/chunk-IFPDAD7R.js +797 -0
- package/dist/chunk-IN7DGBVS.js +582 -0
- package/dist/chunk-ISHUS7HC.js +396 -0
- package/dist/chunk-JPXLJSGR.js +191 -0
- package/dist/chunk-JQCLXSFI.js +69 -0
- package/dist/chunk-KBUTSJSR.js +61 -0
- package/dist/chunk-KW5HXKLJ.js +56 -0
- package/dist/chunk-L4APUGCT.js +139 -0
- package/dist/chunk-L7G7K4I2.js +505 -0
- package/dist/chunk-LAR7DX5E.js +1840 -0
- package/dist/chunk-LAVUQX3B.js +462 -0
- package/dist/chunk-LJRBX7QR.js +116 -0
- package/dist/chunk-LNOXCGN2.js +1864 -0
- package/dist/chunk-LTWH2ACR.js +23002 -0
- package/dist/chunk-LYJJ6546.js +661 -0
- package/dist/chunk-M2IPMWCN.js +457 -0
- package/dist/chunk-MGLRTOCK.js +101 -0
- package/dist/chunk-MZF5IKZT.js +160 -0
- package/dist/chunk-N24R6KWS.js +386 -0
- package/dist/chunk-NASYVWDB.js +604 -0
- package/dist/chunk-NBXFPI7U.js +195 -0
- package/dist/chunk-NDPF2N2L.js +400 -0
- package/dist/chunk-NFSK2VNU.js +446 -0
- package/dist/chunk-NG3QQSXY.js +43 -0
- package/dist/chunk-NOCSM22Y.js +63 -0
- package/dist/chunk-NVPXXW2H.js +1143 -0
- package/dist/chunk-O63U2I6I.js +30 -0
- package/dist/chunk-OJXOA6YU.js +98 -0
- package/dist/chunk-OPD7GL6F.js +1196 -0
- package/dist/chunk-OQ2EOAHA.js +14399 -0
- package/dist/chunk-OV62D6KO.js +688 -0
- package/dist/chunk-OZ76TLGU.js +740 -0
- package/dist/chunk-P4GNZPXO.js +1156 -0
- package/dist/chunk-PS6JAWJZ.js +78 -0
- package/dist/chunk-PXRCXGLK.js +1865 -0
- package/dist/chunk-QDUUOZ3S.js +108 -0
- package/dist/chunk-QG6I2T5E.js +1416 -0
- package/dist/chunk-QHSBROEW.js +308 -0
- package/dist/chunk-QNUQ7K7D.js +46 -0
- package/dist/chunk-QZTTRSJE.js +333 -0
- package/dist/chunk-R2UUNSNQ.js +1605 -0
- package/dist/chunk-R7FGRZNF.js +1794 -0
- package/dist/chunk-RNDCROSG.js +199 -0
- package/dist/chunk-S36CXHO2.js +302 -0
- package/dist/chunk-SJGS3GDI.js +575 -0
- package/dist/chunk-SQZHXUB3.js +510 -0
- package/dist/chunk-SUTLW6ND.js +686 -0
- package/dist/chunk-SYF7FVBL.js +179 -0
- package/dist/chunk-T2MDZES3.js +1577 -0
- package/dist/chunk-T33IYTZM.js +1146 -0
- package/dist/chunk-TDGYTWM6.js +49 -0
- package/dist/chunk-TGL5FZVD.js +132 -0
- package/dist/chunk-TGWZXJ7L.js +1205 -0
- package/dist/chunk-TKDRT2DF.js +114 -0
- package/dist/chunk-TV2EBCSQ.js +152 -0
- package/dist/chunk-U26XXPJS.js +367 -0
- package/dist/chunk-U5QU5ZOD.js +419 -0
- package/dist/chunk-U6YTUVOX.js +1011 -0
- package/dist/chunk-UCINIRHW.js +188 -0
- package/dist/chunk-UJD5MPP6.js +52 -0
- package/dist/chunk-URCXX7WJ.js +146 -0
- package/dist/chunk-UX2L5CUD.js +898 -0
- package/dist/chunk-UZVYEF57.js +114 -0
- package/dist/chunk-V35KZDUZ.js +218 -0
- package/dist/chunk-VESL6DQY.js +1058 -0
- package/dist/chunk-VKHLUZNO.js +986 -0
- package/dist/chunk-VOYUCAQF.js +584 -0
- package/dist/chunk-VYRQHORQ.js +414 -0
- package/dist/chunk-W53XSRQE.js +245 -0
- package/dist/chunk-X4CEFOSG.js +226 -0
- package/dist/chunk-XDHUDE5K.js +380 -0
- package/dist/chunk-XISLDHEL.js +1290 -0
- package/dist/chunk-XM34YQ2Y.js +169 -0
- package/dist/chunk-XMDBTYCH.js +661 -0
- package/dist/chunk-XS2QPZJE.js +449 -0
- package/dist/chunk-YBUECLAF.js +618 -0
- package/dist/chunk-YQ6XEFVK.js +332 -0
- package/dist/chunk-YYLCPDCC.js +990 -0
- package/dist/chunk-Z4GLJ6J4.js +1035 -0
- package/dist/chunk-ZARZ4POR.js +210 -0
- package/dist/chunk-ZJPORZTC.js +119 -0
- package/dist/chunk-ZNUZ3EXD.js +243 -0
- package/dist/chunk-ZPST2KQO.js +49 -0
- package/dist/chunk-ZR5YA6ZF.js +512 -0
- package/dist/chunk-ZU4JPCPR.js +319 -0
- package/dist/chunk-ZUKUCZYZ.js +39 -0
- package/dist/cli/index.js +56 -45
- package/dist/clio-K2PBVCEM.js +27 -0
- package/dist/clio-context-tools-GR4OHFSO.js +145 -0
- package/dist/code-nav-4X3OI6DK.js +715 -0
- package/dist/codewiki/build-worker.js +4 -4
- package/dist/compile-cache-YRB6QRO7.js +18 -0
- package/dist/components-RQOJ6NUR.js +675 -0
- package/dist/config-Q5J7UBAB.js +291 -0
- package/dist/config-XE7XYZLU.js +38 -0
- package/dist/config-graph-P3555574.js +175 -0
- package/dist/configure-KIJ32ZO6.js +104 -0
- package/dist/context-LFBQOSXT.js +344 -0
- package/dist/context-NNLBES2Y.js +82 -0
- package/dist/context-WBH3KSVR.js +302 -0
- package/dist/context-clear-YOHMQ6SQ.js +208 -0
- package/dist/context-index-X2N5UAIF.js +120 -0
- package/dist/context-map-HOSMGUG2.js +555 -0
- package/dist/context-working-set-MRAEVDNV.js +1564 -0
- package/dist/data-tool-JJPBGMQJ.js +2986 -0
- package/dist/detail-RHJOTGN4.js +139 -0
- package/dist/dispatch-runner-NC7PYNIO.js +2477 -0
- package/dist/docs-K4GBWRUX.js +342 -0
- package/dist/doctor-S5KZ2GTN.js +1138 -0
- package/dist/doctor-deep-2EJQSHIZ.js +130 -0
- package/dist/domain-loader-MB34FDPD.js +13 -0
- package/dist/eval-3D6M36N7.js +5220 -0
- package/dist/eval-inventory-SM3HNM47.js +260 -0
- package/dist/evals-FO6JEUCN.js +104 -0
- package/dist/evidence-6IYN52ET.js +262 -0
- package/dist/evidence-JVECPI3F.js +250 -0
- package/dist/evidence-XNVPPLVK.js +410 -0
- package/dist/evolve-TLPUDJDM.js +634 -0
- package/dist/extensions-ROZJ5X3J.js +311 -0
- package/dist/fleet-6RJWIOEO.js +284 -0
- package/dist/fleet-WKVBF5SZ.js +942 -0
- package/dist/fleet-commands-L6WFT7KZ.js +76 -0
- package/dist/fleet-decisions-BTQMWU5A.js +55 -0
- package/dist/fleet-graph-553DZ67Q.js +141 -0
- package/dist/fleet-inspect-236FZPRB.js +329 -0
- package/dist/fleet-new-CKUXP3CO.js +48 -0
- package/dist/fleet-preflight-NZQHABWO.js +95 -0
- package/dist/fleet-validate-7NLAE26R.js +96 -0
- package/dist/fleet-verify-E3RO6A5W.js +226 -0
- package/dist/fleet-view-KMZQY7YJ.js +144 -0
- package/dist/gui/client/assets/abnfDiagram-VCTEODGH-DPBWQwNn.js +1 -0
- package/dist/gui/client/assets/architecture-7GRP2DOG-D1w8FrFW.js +1 -0
- package/dist/gui/client/assets/architectureDiagram-5GKGNRK7-CVPgKd1-.js +36 -0
- package/dist/gui/client/assets/blockDiagram-I7D4REHJ-BLmnqkK5.js +129 -0
- package/dist/gui/client/assets/c4Diagram-7LVT6UL2-4AU9cfM7.js +38 -0
- package/dist/gui/client/assets/channel-DwFZ0m8S.js +1 -0
- package/dist/gui/client/assets/chunk-4HAMMTFA-EOWkKCav.js +62 -0
- package/dist/gui/client/assets/chunk-75Z2AOVW-CygeoIMl.js +2 -0
- package/dist/gui/client/assets/chunk-DU6HZSFF-s27fViLb.js +125 -0
- package/dist/gui/client/assets/chunk-F27PBJKO-BrHvwLsZ.js +1 -0
- package/dist/gui/client/assets/chunk-GMAD6QVW-DzPh-7jt.js +72 -0
- package/dist/gui/client/assets/chunk-GVQU2GXP-pIaQkIzm.js +1 -0
- package/dist/gui/client/assets/chunk-IMKFNOWR-BGJVE_Br.js +231 -0
- package/dist/gui/client/assets/chunk-L3NEJ4N5-B3YLuhww.js +1 -0
- package/dist/gui/client/assets/chunk-OSK3NFVY-BRj61HHU.js +10 -0
- package/dist/gui/client/assets/chunk-P2QGCYS3-Sno90KxP.js +1 -0
- package/dist/gui/client/assets/chunk-POPQ4Y6H-Cw8NTbxr.js +1 -0
- package/dist/gui/client/assets/chunk-PWAF6VOD-BIhHgz37.js +1 -0
- package/dist/gui/client/assets/chunk-SHT3W25Y-Cqv7npBj.js +168 -0
- package/dist/gui/client/assets/chunk-SVP7TREG-Hxzl6Dee.js +88 -0
- package/dist/gui/client/assets/chunk-TICWLB2K-CIFVyVP2.js +206 -0
- package/dist/gui/client/assets/classDiagram-ZZMXUADV-BJbAiI_w.js +1 -0
- package/dist/gui/client/assets/classDiagram-v2-VYDZK3BY-BJbAiI_w.js +1 -0
- package/dist/gui/client/assets/cynefin-OW5HDTMX-DecLWZ-y.js +1 -0
- package/dist/gui/client/assets/cynefinDiagram-5FMLGOSQ-CK-T2N-D.js +62 -0
- package/dist/gui/client/assets/dagre-GXQ25YYZ-C0dfg-OS.js +4 -0
- package/dist/gui/client/assets/diagram-S7CK7UJ4-EaJukVh-.js +30 -0
- package/dist/gui/client/assets/diagram-UQ7AKVKN-xcOucEtP.js +41 -0
- package/dist/gui/client/assets/diagram-VSXAHHWV-3AUJACMf.js +3 -0
- package/dist/gui/client/assets/diagram-VX7I27RA-TPknLqam.js +24 -0
- package/dist/gui/client/assets/diagram-Z3DM3KII-wa1q3YMF.js +24 -0
- package/dist/gui/client/assets/ebnfDiagram-PWID7BFC-JBCF2-s7.js +1 -0
- package/dist/gui/client/assets/erDiagram-RLTQ6QDP-CmXjXPc4.js +99 -0
- package/dist/gui/client/assets/eventmodeling-NTZA5JFV-D_1aJWYl.js +1 -0
- package/dist/gui/client/assets/flowDiagram-HODETNUW-BQtZlael.js +1 -0
- package/dist/gui/client/assets/framework-Bq-znqwW.js +9 -0
- package/dist/gui/client/assets/ganttDiagram-EL5Y4UJY-IPaL_kaa.js +292 -0
- package/dist/gui/client/assets/gitGraph-4MIJSDKK-Oy0Q3hoc.js +1 -0
- package/dist/gui/client/assets/gitGraphDiagram-WWUBYQGX-jtAuBmbc.js +106 -0
- package/dist/gui/client/assets/index-CuFuBEdL.css +1 -0
- package/dist/gui/client/assets/index-hMbEIsX0.js +87 -0
- package/dist/gui/client/assets/info-A6RAGUB7-UtEs1tv7.js +1 -0
- package/dist/gui/client/assets/infoDiagram-27XIBGKW-hlwR1pBW.js +2 -0
- package/dist/gui/client/assets/ishikawaDiagram-5VMMS53U-C6vMtfsd.js +70 -0
- package/dist/gui/client/assets/journeyDiagram-3NMN7TZE-EAwAl_PS.js +139 -0
- package/dist/gui/client/assets/kanban-definition-UXKFOSKX-CQOhRKHW.js +89 -0
- package/dist/gui/client/assets/line-DbcwGZTW.js +1 -0
- package/dist/gui/client/assets/mermaid-parser.core-C2QfVcHd.js +7 -0
- package/dist/gui/client/assets/mermaid.core-N9qUTre1.js +44 -0
- package/dist/gui/client/assets/mindmap-definition-YA3MSWOX-BR_FL9gK.js +96 -0
- package/dist/gui/client/assets/packet-AYTQ26CC-CbBJ2oAa.js +1 -0
- package/dist/gui/client/assets/pegDiagram-XKGWAZYB-BruU0IHM.js +1 -0
- package/dist/gui/client/assets/pie-WAS4IAKB-BWdSng4H.js +1 -0
- package/dist/gui/client/assets/pieDiagram-E7YTZNPT-CR3ljgdU.js +39 -0
- package/dist/gui/client/assets/quadrantDiagram-AXDQQJYC-C-boKslr.js +7 -0
- package/dist/gui/client/assets/radar-RG4KPBEZ-CGlOnAKG.js +1 -0
- package/dist/gui/client/assets/railroad-74A4TZTK-CDvuAlyC.js +1 -0
- package/dist/gui/client/assets/railroad-abnf-HS5TGJTU-CQUA9crC.js +1 -0
- package/dist/gui/client/assets/railroad-ebnf-LZEXJU2U-CD857gxq.js +1 -0
- package/dist/gui/client/assets/railroad-peg-WCYAUIDC-DUV4k35E.js +1 -0
- package/dist/gui/client/assets/railroadDiagram-O6MQD6OU-DMR4LXmA.js +1 -0
- package/dist/gui/client/assets/requirementDiagram-BXWQKSXE-DVltaF6c.js +84 -0
- package/dist/gui/client/assets/sankeyDiagram-P5KCCOFB-CHdNz472.js +40 -0
- package/dist/gui/client/assets/sequenceDiagram-WJ2MYXX4-DaMafIty.js +162 -0
- package/dist/gui/client/assets/stateDiagram-D77RDMKH-CEbBHqn3.js +1 -0
- package/dist/gui/client/assets/stateDiagram-v2-MP3YSRHH-B3JgDdFg.js +1 -0
- package/dist/gui/client/assets/swimlanes-42K2YHIH-BlPHndnJ.js +1 -0
- package/dist/gui/client/assets/swimlanesDiagram-VR7AAH4N-BPabHwsZ.js +8 -0
- package/dist/gui/client/assets/timeline-definition-24CTP7MA-E4Y1lPBI.js +120 -0
- package/dist/gui/client/assets/treeView-Q6P3EWNA-DrY0uhTN.js +1 -0
- package/dist/gui/client/assets/treemap-WGGIJYW6-CVotnLHf.js +1 -0
- package/dist/gui/client/assets/vennDiagram-4TSXK5OY-DJNrLIOF.js +34 -0
- package/dist/gui/client/assets/wardley-WFR3VGLG-ClOpAp5S.js +1 -0
- package/dist/gui/client/assets/wardleyDiagram-VM6X3IG4-qhMoKOXc.js +78 -0
- package/dist/gui/client/assets/xychartDiagram-S5SC5T6Z-CTuXoo9R.js +7 -0
- package/dist/gui/client/index.html +6 -0
- package/dist/gui/ops-worker.js +167 -0
- package/dist/gui/reads-worker.js +473 -0
- package/dist/gui/server.js +9780 -0
- package/dist/gui-QJS7XQMV.js +16 -0
- package/dist/init-DV5B6HQG.js +354 -0
- package/dist/install-6C45YXFP.js +19 -0
- package/dist/install-O7NSRU2W.js +13 -0
- package/dist/interactive-OXGYZYAS.js +22381 -0
- package/dist/interop-J7UOBOSF.js +254 -0
- package/dist/inventory-OEGIL6PY.js +144 -0
- package/dist/library-B3UPGY4V.js +83 -0
- package/dist/library-MXQA5DLT.js +309 -0
- package/dist/library-ROZAMUIL.js +496 -0
- package/dist/library-import-2LTWOVBD.js +190 -0
- package/dist/library-inventory-LJ3XHLWO.js +60 -0
- package/dist/library-validation-DARHHUNW.js +46 -0
- package/dist/mcp-2GSPYQ54.js +28 -0
- package/dist/memory-J3STUUIK.js +537 -0
- package/dist/models-Y3GMFJ2V.js +314 -0
- package/dist/monitor-LHNH577J.js +811 -0
- package/dist/orchestrator-DTAPXULA.js +12117 -0
- package/dist/panes-A743ONZ5.js +103 -0
- package/dist/panes-CTNO57ZY.js +76 -0
- package/dist/paths-3SBYJQDP.js +68 -0
- package/dist/preload-OJBMAIXF.js +140 -0
- package/dist/providers-CMETPZNS.js +232 -0
- package/dist/registry-37T4U6X2.js +15 -0
- package/dist/reset-O7EUCYWO.js +346 -0
- package/dist/resources-FY6XYFN2.js +189 -0
- package/dist/run-H64MEVTA.js +1067 -0
- package/dist/run-script-PQ5NRU3X.js +42 -0
- package/dist/settings-SNIQNXCW.js +73 -0
- package/dist/settings-controls-X6GMCPVG.js +202 -0
- package/dist/share-CAFMMQLM.js +299 -0
- package/dist/skills-ERKQUC7L.js +114 -0
- package/dist/skills-eval-CQ23MYQK.js +1099 -0
- package/dist/skills-inventory-TVUYJDVN.js +142 -0
- package/dist/slash-commands-ROG3KIFJ.js +107 -0
- package/dist/startup-background-KDWCQMWT.js +247 -0
- package/dist/steer-KKYXJSH4.js +77 -0
- package/dist/support-M3RCUUEL.js +40 -0
- package/dist/system-ZDW44ZGX.js +142 -0
- package/dist/target-runtimes-PWA22WVW.js +73 -0
- package/dist/targets-AJWA6E7Z.js +1207 -0
- package/dist/tasks-6L2JJRC5.js +39 -0
- package/dist/terminal-lease-YFUSDPAD.js +432 -0
- package/dist/tools-5XJUABRD.js +30 -0
- package/dist/trace-LA5MVR4Y.js +527 -0
- package/dist/tree-sitter-TQW3Y52T.js +4673 -0
- package/dist/tui-primitives-IUCVWLH5.js +19 -0
- package/dist/uninstall-SAWGGXAB.js +448 -0
- package/dist/upgrade-HSNSVTZG.js +300 -0
- package/dist/usage-XSILDHKF.js +1083 -0
- package/dist/verifiers-ECA5GIHL.js +633 -0
- package/dist/verify-R6QQCCEB.js +31 -0
- package/dist/version-PLZYB5KW.js +22 -0
- package/dist/web-fetch-PVZNMBOB.js +803 -0
- package/dist/wiki-generate-RP22WP5K.js +647 -0
- package/dist/with-panes-W3PAZPRF.js +629 -0
- package/dist/worker/entry.js +324 -284
- package/dist/workspace-check-3764ZKC2.js +83 -0
- package/docs/README.md +26 -10
- package/docs/architecture/acp.md +179 -12
- package/docs/architecture/artifact-placement.md +1 -1
- package/docs/architecture/capacity-and-scheduling.md +7 -8
- package/docs/architecture/context-engine.md +350 -95
- package/docs/architecture/model-catalog.md +18 -11
- package/docs/architecture/observability.md +1 -1
- package/docs/architecture/pi-boundary.md +59 -6
- package/docs/architecture/prompt-envelope-and-tools.md +147 -39
- package/docs/architecture/provider-adapter-cookbook.md +2 -2
- package/docs/architecture/safety-model.md +18 -4
- package/docs/architecture/trace-store.md +2 -2
- package/docs/architecture/tui-design.md +41 -81
- package/docs/architecture/worker-dispatch-mechanics.md +9 -1
- package/docs/gui/README.md +69 -0
- package/docs/gui/boundary-doctrine.md +104 -0
- package/docs/gui/chat-rendering-spec.md +1440 -0
- package/docs/gui/cli-surface-routing.md +148 -0
- package/docs/gui/delivery-order.md +53 -0
- package/docs/gui/event-bus-coverage.md +103 -0
- package/docs/gui/inspector-presentation.md +71 -0
- package/docs/gui/parity/01-cli-surface.md +74 -0
- package/docs/gui/parity/02-slash-and-surfaces.md +110 -0
- package/docs/gui/parity/03-domains-and-plan.md +69 -0
- package/docs/gui/performance-baseline.md +76 -0
- package/docs/gui/settings-write-surface.md +267 -0
- package/docs/gui/workflow-coverage.md +64 -0
- package/docs/guide/built-in-agents.md +1 -1
- package/docs/guide/commands-and-modes.md +256 -99
- package/docs/guide/configuration-and-targets.md +485 -124
- package/docs/guide/configuration-reference.md +165 -82
- package/docs/guide/doctor.md +127 -0
- package/docs/guide/environment-variables.md +1 -1
- package/docs/guide/exit-codes-and-output.md +3 -1
- package/docs/guide/extensions-and-sharing.md +3 -14
- package/docs/guide/fleet-dispatch.md +231 -45
- package/docs/guide/glossary.md +1 -1
- package/docs/guide/installation-and-lifecycle.md +27 -16
- package/docs/guide/interop.md +2 -2
- package/docs/guide/proactive-memory.md +154 -68
- package/docs/guide/resource-library.md +4 -0
- package/docs/guide/skills-marketplace.md +8 -4
- package/docs/guide/slurm.md +88 -0
- package/docs/guide/tool-usage.md +134 -11
- package/docs/guide/troubleshooting.md +4 -2
- package/docs/process/battletest-2026-09-20-fixes.md +161 -0
- package/docs/process/configure-tree-proposal.md +637 -0
- package/docs/process/documentation-coverage.md +8 -0
- package/docs/process/documentation-guide.md +18 -1
- package/docs/process/eval-runner.md +58 -14
- package/docs/process/performance-methodology.md +11 -3
- package/docs/process/release-cut-checklist.md +29 -3
- package/docs/process/tool-audit-v0.4.9.md +3 -0
- package/examples/extensions/README.md +1 -3
- package/examples/extensions/lab-status/clio-coder-extension.json +1 -1
- package/examples/extensions/measurements/clio-coder-extension.json +1 -1
- package/library/registry.yaml +30 -5
- package/library/skills/git/fix-issue/SKILL.md +2 -1
- package/library/skills/git/fix-issue/plugin.json +1 -1
- package/library/skills/git/ship/SKILL.md +2 -1
- package/library/skills/git/ship/plugin.json +1 -1
- package/library/skills/meta/clio-coder-test/SKILL.md +5 -6
- package/library/skills/meta/clio-coder-test/evals.md +2 -2
- package/library/skills/meta/clio-coder-test/references/test-map.md +2 -2
- package/library/skills/registry.yaml +9 -5
- package/library/skills/research/slurm-jobs/SKILL.md +110 -0
- package/library/skills/research/slurm-jobs/evals.md +39 -0
- package/library/skills/research/slurm-jobs/plugin.json +23 -0
- package/library/skills/skill-marketplace.json +18 -2
- package/package.json +15 -10
- package/src/cli/args.ts +59 -0
- package/src/cli/argv.ts +7 -0
- package/src/cli/clio.ts +9 -1
- package/src/cli/configure-controls.ts +136 -0
- package/src/cli/configure-onboarding.ts +24 -7
- package/src/cli/configure-quick.ts +32 -7
- package/src/cli/configure-target.ts +11 -1
- package/src/cli/configure.ts +253 -256
- package/src/cli/docs-server.ts +290 -0
- package/src/cli/docs.ts +60 -15
- package/src/cli/doctor-deep.ts +126 -0
- package/src/cli/doctor-hpc.ts +122 -0
- package/src/cli/doctor-slurm.ts +130 -0
- package/src/cli/doctor-task-worktrees.ts +88 -0
- package/src/cli/doctor.ts +165 -16
- package/src/cli/fleet-verify.ts +3 -2
- package/src/cli/gui.ts +111 -0
- package/src/cli/index.ts +14 -4
- package/src/cli/library.ts +2 -7
- package/src/cli/modes/json-stream.ts +4 -2
- package/src/cli/modes/print.ts +252 -25
- package/src/cli/run.ts +199 -71
- package/src/cli/skills.ts +25 -7
- package/src/cli/targets.ts +87 -9
- package/src/cli/uninstall.ts +28 -8
- package/src/cli/usage.ts +2 -1
- package/src/cli/workspace-check.ts +71 -0
- package/src/core/bash-exec.ts +8 -2
- package/src/core/bus-events.ts +32 -3
- package/src/core/cache-telemetry.ts +3 -2
- package/src/core/compile-cache.ts +11 -1
- package/src/core/config.ts +59 -6
- package/src/core/defaults.ts +27 -5
- package/src/core/diagnostics.ts +25 -0
- package/src/core/event-bus.ts +2 -1
- package/src/core/gateway-routing.ts +10 -3
- package/src/core/git-commit-attribution.ts +2 -1
- package/src/core/naming-compat.ts +6 -4
- package/src/core/package-root.ts +0 -9
- package/src/core/path-canonical.ts +143 -24
- package/src/core/residency-target-key.ts +2 -6
- package/src/core/run-overrides.ts +1 -1
- package/src/core/settings-awareness.ts +108 -0
- package/src/core/settings-controls.ts +673 -0
- package/src/core/settings-navigation.ts +116 -0
- package/src/core/theme-token-hex.ts +19 -9
- package/src/core/turn-constraints.ts +52 -0
- package/src/domains/agents/builtins/scout.md +7 -17
- package/src/domains/agents/catalog.ts +5 -1
- package/src/domains/agents/extension.ts +2 -1
- package/src/domains/agents/registry.ts +4 -3
- package/src/domains/agents/result-contract.ts +132 -1
- package/src/domains/config/classify.ts +11 -7
- package/src/domains/config/extension.ts +5 -1
- package/src/domains/config/keybindings.ts +2 -2
- package/src/domains/context/codewiki/coordinator.ts +10 -0
- package/src/domains/context/worker/snapshot.ts +6 -3
- package/src/domains/dispatch/active-route-planner.ts +2 -0
- package/src/domains/dispatch/agent-candidates.ts +5 -1
- package/src/domains/dispatch/capability-match.ts +1 -1
- package/src/domains/dispatch/contract.ts +28 -0
- package/src/domains/dispatch/event-pump.ts +37 -3
- package/src/domains/dispatch/extension.ts +391 -48
- package/src/domains/dispatch/failure-classification.ts +37 -2
- package/src/domains/dispatch/receipt-integrity.ts +3 -0
- package/src/domains/dispatch/run-identity.ts +10 -3
- package/src/domains/dispatch/target-breaker.ts +163 -0
- package/src/domains/dispatch/types.ts +29 -2
- package/src/domains/dispatch/worker-model-loads.ts +66 -0
- package/src/domains/dispatch/worker-protocol.ts +20 -1
- package/src/domains/dispatch/worker-spawn.ts +28 -2
- package/src/domains/eval/artifacts/redact.ts +9 -0
- package/src/domains/eval/metrics/noop.ts +61 -0
- package/src/domains/eval/reports/junit.ts +5 -1
- package/src/domains/eval/reports/text.ts +7 -0
- package/src/domains/eval/runners/clio-run.ts +19 -8
- package/src/domains/eval/runners/external-command.ts +29 -4
- package/src/domains/eval/schema/adapter.ts +6 -2
- package/src/domains/eval/schema/suite.ts +2 -0
- package/src/domains/eval/schema/validate.ts +3 -0
- package/src/domains/eval/suites/run.ts +167 -26
- package/src/domains/evidence/detail.ts +3 -2
- package/src/domains/extensions/operator-runtime.ts +11 -4
- package/src/domains/gateway/mcp/client.ts +1 -1
- package/src/domains/lifecycle/doctor.ts +42 -26
- package/src/domains/lifecycle/migrations/2026-09-18-ollama-runtime-id.ts +38 -0
- package/src/domains/lifecycle/migrations/index.ts +2 -0
- package/src/domains/middleware/demo-guidance.ts +36 -0
- package/src/domains/middleware/dispatch-nudge.ts +1 -1
- package/src/domains/middleware/memory-intervention.ts +51 -4
- package/src/domains/middleware/runtime.ts +5 -4
- package/src/domains/middleware/skills-reminder.ts +29 -52
- package/src/domains/middleware/task-nudge.ts +1 -0
- package/src/domains/middleware/watchdog.ts +4 -0
- package/src/domains/observability/extension.ts +2 -1
- package/src/domains/observability/out-of-turn-usage.ts +3 -2
- package/src/domains/observability/projection.ts +3 -2
- package/src/domains/observability/worker-progress.ts +48 -0
- package/src/domains/prompts/compiler.ts +148 -52
- package/src/domains/prompts/contract.ts +3 -3
- package/src/domains/prompts/demo-guidance.ts +8 -0
- package/src/domains/prompts/extension.ts +12 -7
- package/src/domains/prompts/fragments/identity/clio.md +2 -1
- package/src/domains/prompts/fragments/identity/docs-routing.md +2 -0
- package/src/domains/prompts/fragments/identity/self-awareness.md +4 -0
- package/src/domains/prompts/fragments/operating/contract.md +16 -7
- package/src/domains/prompts/fragments/operating/delegation.md +29 -13
- package/src/domains/prompts/fragments/operating/skills.md +18 -10
- package/src/domains/prompts/fragments/operating/worker.md +2 -0
- package/src/domains/providers/cache-deployment.ts +45 -2
- package/src/domains/providers/contract.ts +52 -11
- package/src/domains/providers/extension.ts +230 -53
- package/src/domains/providers/model-discovery.ts +22 -8
- package/src/domains/providers/models/local-models/clio-coder-local-coding-targets.yaml +5 -7
- package/src/domains/providers/plugins.ts +3 -4
- package/src/domains/providers/probe/fingerprint.ts +2 -2
- package/src/domains/providers/probe/reasoning.ts +9 -16
- package/src/domains/providers/probe/tool-call.ts +236 -0
- package/src/domains/providers/registry.ts +51 -8
- package/src/domains/providers/runtime-resolution.ts +60 -12
- package/src/domains/providers/runtimes/boot-manifest.ts +1 -1
- package/src/domains/providers/runtimes/builtins.ts +2 -2
- package/src/domains/providers/runtimes/common/lmstudio-http.ts +57 -41
- package/src/domains/providers/runtimes/common/local-synth.ts +3 -1
- package/src/domains/providers/runtimes/common/ollama-model-ids.ts +11 -0
- package/src/domains/providers/runtimes/common/probe-helpers.ts +53 -0
- package/src/domains/providers/runtimes/local-native/llamacpp-completion.ts +3 -1
- package/src/domains/providers/runtimes/local-native/llamacpp-embed.ts +7 -13
- package/src/domains/providers/runtimes/local-native/llamacpp-rerank.ts +7 -17
- package/src/domains/providers/runtimes/local-native/llamacpp.ts +1 -0
- package/src/domains/providers/runtimes/local-native/ollama.ts +211 -0
- package/src/domains/providers/runtimes/protocol/litellm.ts +77 -65
- package/src/domains/providers/support.ts +1 -1
- package/src/domains/providers/types/local-model-quirks.ts +2 -3
- package/src/domains/providers/types/runtime-descriptor.ts +23 -3
- package/src/domains/providers/types/target-descriptor.ts +15 -3
- package/src/domains/resources/collision.ts +7 -2
- package/src/domains/resources/index.ts +1 -0
- package/src/domains/resources/library-actions.ts +4 -2
- package/src/domains/resources/library-inventory.ts +6 -2
- package/src/domains/resources/prompts/loader.ts +20 -7
- package/src/domains/resources/skills/availability.ts +56 -0
- package/src/domains/resources/skills/loader.ts +20 -9
- package/src/domains/safety/action-classifier.ts +282 -31
- package/src/domains/safety/audit.ts +2 -1
- package/src/domains/safety/autonomy.ts +54 -11
- package/src/domains/safety/decision-presentation.ts +17 -4
- package/src/domains/safety/finish-contract-registration.ts +25 -1
- package/src/domains/safety/finish-contract.ts +20 -5
- package/src/domains/safety/path-policy.ts +6 -2
- package/src/domains/safety/policy-engine.ts +168 -48
- package/src/domains/safety/protected-artifacts.ts +527 -16
- package/src/domains/safety/read-scope.ts +120 -0
- package/src/domains/safety/skill-authority.ts +52 -16
- package/src/domains/scheduling/cluster.ts +14 -3
- package/src/domains/scheduling/contract.ts +7 -0
- package/src/domains/scheduling/extension.ts +20 -9
- package/src/domains/scheduling/local-capacity.ts +160 -0
- package/src/domains/session/context-accounting.ts +44 -31
- package/src/domains/session/context-ledger.ts +10 -3
- package/src/domains/session/entries.ts +4 -0
- package/src/domains/session/history.ts +1 -1
- package/src/domains/session/prompt-cache.ts +1 -0
- package/src/domains/session/prompt-manifest.ts +3 -1
- package/src/domains/session/retry.ts +4 -6
- package/src/domains/session/task-board.ts +19 -4
- package/src/domains/session/tree/preview.ts +3 -2
- package/src/engine/acp/commands.ts +653 -0
- package/src/engine/acp/server.ts +639 -20
- package/src/engine/acp/tool-mediator.ts +30 -7
- package/src/engine/acp/types.ts +58 -0
- package/src/engine/agent.ts +55 -10
- package/src/engine/ai.ts +11 -2
- package/src/engine/api-registry.ts +5 -4
- package/src/engine/apis/degraded-inference.ts +243 -0
- package/src/engine/apis/llamacpp-residency.ts +50 -6
- package/src/engine/apis/lmstudio-residency.ts +3 -5
- package/src/engine/apis/lmstudio.ts +137 -31
- package/src/engine/apis/ollama-http.ts +118 -0
- package/src/engine/apis/ollama-native.ts +216 -97
- package/src/engine/apis/openai-completions.ts +191 -189
- package/src/engine/apis/output-budget.ts +3 -1
- package/src/engine/apis/residency-lock.ts +2 -1
- package/src/engine/apis/residency.ts +339 -89
- package/src/engine/apis/sampling-overrides.ts +23 -2
- package/src/engine/apis/types.ts +1 -2
- package/src/engine/claude/tool-safety.ts +30 -5
- package/src/engine/context.ts +13 -0
- package/src/engine/env-api-keys.ts +2 -1
- package/src/engine/gemma-channel-filter.ts +3 -2
- package/src/engine/instrumented-tui.ts +25 -0
- package/src/engine/loop-guard.ts +172 -6
- package/src/engine/pi-mono-names.ts +16 -0
- package/src/engine/prewarm.ts +44 -15
- package/src/engine/provider-payload.ts +52 -14
- package/src/engine/session.ts +4 -2
- package/src/engine/worker-events.ts +9 -1
- package/src/engine/worker-runtime.ts +269 -42
- package/src/engine/worker-tools.ts +8 -3
- package/src/entry/boot-options.ts +23 -0
- package/src/entry/orchestrator.ts +207 -36
- package/src/interactive/assistant-generation-timing.ts +52 -0
- package/src/interactive/chat-loop-messages.ts +4 -1
- package/src/interactive/chat-loop.ts +59 -9
- package/src/interactive/chat-panel.ts +10 -1
- package/src/interactive/clio-editor.ts +51 -79
- package/src/interactive/context-meter.ts +1 -0
- package/src/interactive/context-overlay.ts +21 -8
- package/src/interactive/cost-overlay.ts +1 -1
- package/src/interactive/dispatch-board.ts +39 -8
- package/src/interactive/editor-bash.ts +0 -34
- package/src/interactive/editor-rails.ts +43 -0
- package/src/interactive/editor-submit.ts +34 -2
- package/src/interactive/footer/dashboard.ts +67 -38
- package/src/interactive/footer/demo-hints.ts +40 -0
- package/src/interactive/footer/key-hints.ts +21 -0
- package/src/interactive/footer/notifications.ts +1 -1
- package/src/interactive/footer/pages.ts +486 -0
- package/src/interactive/footer/system-metrics.ts +147 -0
- package/src/interactive/footer/widgets.ts +158 -63
- package/src/interactive/footer-panel.ts +29 -7
- package/src/interactive/interactive-application.ts +109 -21
- package/src/interactive/interactive-event-projection.ts +6 -2
- package/src/interactive/interactive-presentation.ts +25 -29
- package/src/interactive/interactive-slash-runtime.ts +32 -18
- package/src/interactive/interactive-subscriptions.ts +25 -5
- package/src/interactive/interactive-tickers.ts +21 -5
- package/src/interactive/keybinding-manager.ts +9 -0
- package/src/interactive/overlay-frame.ts +29 -7
- package/src/interactive/overlay-lifecycle.ts +5 -3
- package/src/interactive/overlay-model-selectors.ts +4 -0
- package/src/interactive/overlay-permission-lifecycle.ts +6 -5
- package/src/interactive/overlays/ask-user.ts +103 -110
- package/src/interactive/overlays/help-reference.ts +1 -0
- package/src/interactive/overlays/message-picker.ts +3 -29
- package/src/interactive/overlays/session-selector.ts +3 -2
- package/src/interactive/overlays/settings-sections.ts +2 -30
- package/src/interactive/overlays/settings.ts +310 -607
- package/src/interactive/permission-hint.ts +3 -3
- package/src/interactive/permission-overlay.ts +45 -27
- package/src/interactive/renderers/doctor-report.ts +43 -0
- package/src/interactive/renderers/tool-execution.ts +87 -62
- package/src/interactive/renderers/worker-entry.ts +76 -3
- package/src/interactive/side-question.ts +3 -1
- package/src/interactive/slash-commands.ts +78 -23
- package/src/interactive/startup-background.ts +131 -0
- package/src/interactive/startup-diagnostics.ts +16 -0
- package/src/interactive/status/state-machine.ts +16 -3
- package/src/interactive/status/types.ts +2 -0
- package/src/interactive/status/verbs.ts +1 -1
- package/src/interactive/terminal-lease.ts +26 -22
- package/src/interactive/theme/components.ts +1 -1
- package/src/interactive/theme/rules.ts +1 -1
- package/src/interactive/theme/tokens.ts +16 -10
- package/src/interactive/transcript-detail.ts +4 -0
- package/src/interactive/turn-context.ts +56 -20
- package/src/interactive/turn-middleware.ts +57 -9
- package/src/interactive/turn-prewarm.ts +121 -18
- package/src/interactive/turn-recovery.ts +10 -8
- package/src/interactive/turn-runtime.ts +74 -29
- package/src/interactive/turn-state.ts +3 -0
- package/src/interactive/welcome-art.ts +36 -0
- package/src/interactive/welcome-dashboard.ts +209 -49
- package/src/interactive/worker-replay.ts +4 -0
- package/src/interactive/worker-stream.ts +17 -2
- package/src/tools/agent-tools.ts +22 -1
- package/src/tools/builtin-tool-catalog.ts +2 -2
- package/src/tools/codewiki/code-nav.ts +1 -1
- package/src/tools/codewiki/shared.ts +39 -1
- package/src/tools/compete-worktrees.ts +8 -91
- package/src/tools/context/docs-engine.ts +44 -12
- package/src/tools/context/index.ts +126 -22
- package/src/tools/context/library.ts +1 -1
- package/src/tools/context/surface.ts +12 -7
- package/src/tools/core-bootstrap.ts +3 -0
- package/src/tools/dispatch-runner.ts +18 -0
- package/src/tools/dispatch-schema.ts +187 -206
- package/src/tools/edit.ts +46 -42
- package/src/tools/file-mutation-queue.ts +25 -26
- package/src/tools/gateway/clio-context-surface.ts +1 -1
- package/src/tools/gateway/index.ts +7 -3
- package/src/tools/gateway/mcp-capabilities.ts +5 -3
- package/src/tools/grep.ts +14 -2
- package/src/tools/ls.ts +1 -4
- package/src/tools/monitor.ts +14 -1
- package/src/tools/observation.ts +1 -3
- package/src/tools/path-utils.ts +51 -18
- package/src/tools/process-lease.ts +99 -0
- package/src/tools/read.ts +1 -1
- package/src/tools/registry.ts +71 -9
- package/src/tools/task-worktree.ts +296 -17
- package/src/tools/tasks.ts +29 -7
- package/src/tools/worker-evidence.ts +60 -1
- package/src/tools/worktree-root.ts +252 -0
- package/src/tools/write.ts +34 -30
- package/src/worker/entry.ts +18 -1
- package/src/worker/protocol.ts +54 -1
- package/src/worker/spec-contract.ts +22 -2
- package/dist/acp-ZWZCPS2A.js +0 -130
- package/dist/agents-LYSOWZUE.js +0 -150
- package/dist/auth-WBQGKWQ5.js +0 -551
- package/dist/background-BUMOBAQN.js +0 -37
- package/dist/builtins-ODRJOEDI.js +0 -22
- package/dist/chunk-2DRRZ57Q.js +0 -571
- package/dist/chunk-2JBZYUPY.js +0 -105
- package/dist/chunk-2VBWFXYE.js +0 -198
- package/dist/chunk-2X2R3UTH.js +0 -1018
- package/dist/chunk-32KJPXAM.js +0 -75
- package/dist/chunk-37LW32LZ.js +0 -32
- package/dist/chunk-3A3CUMKA.js +0 -54
- package/dist/chunk-3AND2EFU.js +0 -215
- package/dist/chunk-3RDHGNU7.js +0 -647
- package/dist/chunk-3SUDBGEI.js +0 -1323
- package/dist/chunk-3TQN67I2.js +0 -396
- package/dist/chunk-3U4BL2EV.js +0 -103
- package/dist/chunk-3UQADNG2.js +0 -302
- package/dist/chunk-434LRQ6Z.js +0 -13441
- package/dist/chunk-4ATBOFRP.js +0 -7802
- package/dist/chunk-4DNL43EZ.js +0 -139
- package/dist/chunk-4HFJKRGZ.js +0 -5250
- package/dist/chunk-555E2WVV.js +0 -322
- package/dist/chunk-5GZICIYO.js +0 -462
- package/dist/chunk-5PHVPU4G.js +0 -160
- package/dist/chunk-5RTEFNBP.js +0 -197
- package/dist/chunk-64XJW7NT.js +0 -380
- package/dist/chunk-6TKOFFGE.js +0 -1058
- package/dist/chunk-6UJ7RDI7.js +0 -1143
- package/dist/chunk-7FBCRWVT.js +0 -1801
- package/dist/chunk-7JSOSVLP.js +0 -283
- package/dist/chunk-7N3OLLSL.js +0 -637
- package/dist/chunk-7QQRPB2E.js +0 -915
- package/dist/chunk-A6DULIMH.js +0 -986
- package/dist/chunk-AB3QXXBC.js +0 -123
- package/dist/chunk-ACCECAH4.js +0 -49
- package/dist/chunk-AM6CEP2K.js +0 -2120
- package/dist/chunk-AUHVBIDW.js +0 -19
- package/dist/chunk-AY4XE6GN.js +0 -665
- package/dist/chunk-BBA2TAWV.js +0 -667
- package/dist/chunk-BFPHMSK7.js +0 -169
- package/dist/chunk-BMNVVKEW.js +0 -604
- package/dist/chunk-CKK25WN3.js +0 -72
- package/dist/chunk-CTGZCEI6.js +0 -33
- package/dist/chunk-DIAJYJYG.js +0 -446
- package/dist/chunk-DVNAPPXU.js +0 -27
- package/dist/chunk-DXVMLM3Z.js +0 -92
- package/dist/chunk-E3LEPLQ2.js +0 -68
- package/dist/chunk-EHZRAB4U.js +0 -63
- package/dist/chunk-EM2DIQAJ.js +0 -179
- package/dist/chunk-EM2WNQS2.js +0 -93
- package/dist/chunk-ETF4ROKH.js +0 -595
- package/dist/chunk-F2YM3JY4.js +0 -22513
- package/dist/chunk-FEBQWHJT.js +0 -1023
- package/dist/chunk-FPS4R2RN.js +0 -1975
- package/dist/chunk-GD55RTIW.js +0 -33
- package/dist/chunk-GJDRMBDI.js +0 -573
- package/dist/chunk-GREYLTZ5.js +0 -658
- package/dist/chunk-H2WSCZZT.js +0 -238
- package/dist/chunk-H6IUCY6Q.js +0 -117
- package/dist/chunk-H72DCH3E.js +0 -563
- package/dist/chunk-H7TXJR23.js +0 -705
- package/dist/chunk-HBJQQTKM.js +0 -40
- package/dist/chunk-HCVKSGNZ.js +0 -990
- package/dist/chunk-HVCAY2FH.js +0 -67
- package/dist/chunk-I47EJPYL.js +0 -1377
- package/dist/chunk-IALGWTLO.js +0 -36
- package/dist/chunk-IALZJE37.js +0 -1710
- package/dist/chunk-IC7JXLOM.js +0 -1577
- package/dist/chunk-IOSVTTCD.js +0 -108
- package/dist/chunk-IPTPMLA6.js +0 -475
- package/dist/chunk-IZZI3SKQ.js +0 -128
- package/dist/chunk-JABWPKFY.js +0 -27
- package/dist/chunk-JIYWMQZ5.js +0 -175
- package/dist/chunk-JKU34ACI.js +0 -693
- package/dist/chunk-JOBN2YQQ.js +0 -176
- package/dist/chunk-JOL2QRLE.js +0 -152
- package/dist/chunk-JTR3VSV3.js +0 -44
- package/dist/chunk-JU6MAMRJ.js +0 -362
- package/dist/chunk-JURMQWVJ.js +0 -15
- package/dist/chunk-K2BLQC5E.js +0 -262
- package/dist/chunk-K3XN4LZ4.js +0 -402
- package/dist/chunk-KIVFXGBM.js +0 -688
- package/dist/chunk-KKRXONXG.js +0 -43
- package/dist/chunk-KOAHT3N2.js +0 -395
- package/dist/chunk-KP5BPXR3.js +0 -73
- package/dist/chunk-KQ6IDQIB.js +0 -39
- package/dist/chunk-KRJQG47M.js +0 -1289
- package/dist/chunk-KW6OJ7IY.js +0 -221
- package/dist/chunk-L3NBWLSN.js +0 -314
- package/dist/chunk-L4RUTLRL.js +0 -59
- package/dist/chunk-LGTVWPRN.js +0 -47
- package/dist/chunk-LSQW6KZO.js +0 -200
- package/dist/chunk-LTR5QCLS.js +0 -446
- package/dist/chunk-LWJYOHT3.js +0 -165
- package/dist/chunk-M6YLF66Z.js +0 -2687
- package/dist/chunk-MJ4QEJVT.js +0 -185
- package/dist/chunk-MO65K5CH.js +0 -1148
- package/dist/chunk-MTOZEQHL.js +0 -637
- package/dist/chunk-MZDPF35R.js +0 -45
- package/dist/chunk-MZKYVIWW.js +0 -188
- package/dist/chunk-NBPA5QM6.js +0 -386
- package/dist/chunk-NMBEW4PP.js +0 -688
- package/dist/chunk-NPLLK3HO.js +0 -3610
- package/dist/chunk-NSYGPIVW.js +0 -39
- package/dist/chunk-NXTV5OI5.js +0 -1020
- package/dist/chunk-NYDG4QP4.js +0 -689
- package/dist/chunk-OA2GDACN.js +0 -146
- package/dist/chunk-PJI57EC6.js +0 -236
- package/dist/chunk-PJJBUGMR.js +0 -4484
- package/dist/chunk-PNJE7JPS.js +0 -50
- package/dist/chunk-PP23PZEV.js +0 -1347
- package/dist/chunk-PPIFDSBK.js +0 -409
- package/dist/chunk-PTFISXQO.js +0 -319
- package/dist/chunk-QB33Z5S7.js +0 -1865
- package/dist/chunk-QGNII5VC.js +0 -110
- package/dist/chunk-QH3ZTUOA.js +0 -113
- package/dist/chunk-QI72X67S.js +0 -481
- package/dist/chunk-QJMRYTCX.js +0 -56
- package/dist/chunk-QKHZZFKH.js +0 -98
- package/dist/chunk-RDKX2PME.js +0 -66
- package/dist/chunk-RL7LJYN4.js +0 -66
- package/dist/chunk-RPMNIFRY.js +0 -65
- package/dist/chunk-RQROVOV3.js +0 -670
- package/dist/chunk-S34A7BSP.js +0 -97
- package/dist/chunk-SJETVJHX.js +0 -119
- package/dist/chunk-SJMNU4ZS.js +0 -634
- package/dist/chunk-SL2RDHKO.js +0 -19
- package/dist/chunk-SLLG2G44.js +0 -85
- package/dist/chunk-SQAZN2V3.js +0 -2744
- package/dist/chunk-SQBT46OF.js +0 -814
- package/dist/chunk-SRCEQKQS.js +0 -165
- package/dist/chunk-TCUOGIL2.js +0 -52
- package/dist/chunk-TIWPKCVO.js +0 -42
- package/dist/chunk-U44YYLVV.js +0 -1529
- package/dist/chunk-UIU7MGZ3.js +0 -486
- package/dist/chunk-USBBEKHW.js +0 -177
- package/dist/chunk-VHKTOLEW.js +0 -1416
- package/dist/chunk-VPWGADBG.js +0 -3151
- package/dist/chunk-VQD7NH7Z.js +0 -356
- package/dist/chunk-VWFCAK34.js +0 -697
- package/dist/chunk-W5RM7YAH.js +0 -78
- package/dist/chunk-W72LLZAV.js +0 -243
- package/dist/chunk-WGRDABW7.js +0 -207
- package/dist/chunk-WWRV5RJI.js +0 -165
- package/dist/chunk-XCUDZQLX.js +0 -195
- package/dist/chunk-XFLSL7BT.js +0 -386
- package/dist/chunk-XJZEDCNT.js +0 -391
- package/dist/chunk-XLLEL3K7.js +0 -709
- package/dist/chunk-XNZWWDC3.js +0 -686
- package/dist/chunk-XRECG65F.js +0 -308
- package/dist/chunk-XTQ7MEJG.js +0 -457
- package/dist/chunk-XW2UZICE.js +0 -372
- package/dist/chunk-Y3M2T5RO.js +0 -891
- package/dist/chunk-YGDMBK7O.js +0 -567
- package/dist/chunk-YJCCMYYT.js +0 -125
- package/dist/chunk-YPQOPFP7.js +0 -797
- package/dist/chunk-YQYINEJI.js +0 -132
- package/dist/chunk-ZF6CV4WZ.js +0 -5614
- package/dist/chunk-ZKJU55MX.js +0 -326
- package/dist/chunk-ZKQ63XZ5.js +0 -1196
- package/dist/chunk-ZKVMDNAN.js +0 -962
- package/dist/chunk-ZST3FRCV.js +0 -132
- package/dist/clio-JUDCLNHC.js +0 -26
- package/dist/clio-context-tools-FT672MNZ.js +0 -136
- package/dist/code-nav-7OVCTP2Z.js +0 -688
- package/dist/compile-cache-WJEPUZEJ.js +0 -16
- package/dist/components-OZXZMDWU.js +0 -674
- package/dist/config-P3ZQVF63.js +0 -275
- package/dist/config-graph-GKAOBAS5.js +0 -160
- package/dist/configure-25LRYZJG.js +0 -86
- package/dist/context-72VQV7JX.js +0 -73
- package/dist/context-COWRWXP3.js +0 -286
- package/dist/context-WB3D474G.js +0 -344
- package/dist/context-clear-Y4LYMWC6.js +0 -192
- package/dist/context-index-W6A4V7OC.js +0 -120
- package/dist/context-map-DKL3QT6D.js +0 -555
- package/dist/context-working-set-TMZYVC7A.js +0 -1560
- package/dist/data-tool-KMBWKKWR.js +0 -2987
- package/dist/detail-4GLROGY5.js +0 -123
- package/dist/dispatch-runner-TR3LBP5P.js +0 -2446
- package/dist/docs-ZK777W2G.js +0 -101
- package/dist/doctor-WC4OV2OB.js +0 -814
- package/dist/eval-FUNWJNUJ.js +0 -5050
- package/dist/eval-inventory-CX24K2JT.js +0 -260
- package/dist/evals-L73EBHSU.js +0 -104
- package/dist/evidence-AVJ2RTHX.js +0 -392
- package/dist/evidence-P4NZOAK7.js +0 -233
- package/dist/evidence-Y55WKYHH.js +0 -246
- package/dist/evolve-MAWKRYWF.js +0 -617
- package/dist/extensions-PYQH3H47.js +0 -308
- package/dist/fleet-M4H2QBWT.js +0 -268
- package/dist/fleet-ULBXXRDR.js +0 -923
- package/dist/fleet-commands-7NNC4JZU.js +0 -76
- package/dist/fleet-decisions-EHEY7KPU.js +0 -52
- package/dist/fleet-graph-LQ2AHZT3.js +0 -136
- package/dist/fleet-inspect-5IGBIIYZ.js +0 -312
- package/dist/fleet-new-RCKGSRDV.js +0 -48
- package/dist/fleet-preflight-UTTNOKMG.js +0 -27
- package/dist/fleet-validate-YGILJKA6.js +0 -91
- package/dist/fleet-verify-AUWTCDKR.js +0 -210
- package/dist/fleet-view-TGUFCY5A.js +0 -127
- package/dist/init-GFN2Z7NF.js +0 -333
- package/dist/install-3RZDDP23.js +0 -13
- package/dist/install-6PIF6F6W.js +0 -19
- package/dist/interop-EF5JUWWK.js +0 -246
- package/dist/inventory-I6VJDDYF.js +0 -127
- package/dist/library-3J5IO2OJ.js +0 -75
- package/dist/library-IJTOFTDS.js +0 -307
- package/dist/library-Z3KZSHPE.js +0 -492
- package/dist/library-import-IMKFLDHX.js +0 -183
- package/dist/library-inventory-CQP5D6GU.js +0 -56
- package/dist/library-validation-33UTX7AI.js +0 -42
- package/dist/mcp-5FWZKUS6.js +0 -26
- package/dist/memory-36CWN67Y.js +0 -520
- package/dist/models-KQ6PQJJQ.js +0 -302
- package/dist/monitor-XX6ZD6KC.js +0 -785
- package/dist/orchestrator-SK6HDAOP.js +0 -42067
- package/dist/panes-L27QRXUH.js +0 -74
- package/dist/panes-LXZIWNOZ.js +0 -103
- package/dist/paths-7DJDU4P4.js +0 -67
- package/dist/preload-K2TDYI4Y.js +0 -124
- package/dist/registry-DESGAXWK.js +0 -11
- package/dist/reset-73VU3XNT.js +0 -345
- package/dist/resources-3BYJYVYL.js +0 -181
- package/dist/run-AR7PY6GW.js +0 -896
- package/dist/run-script-H2KUDIII.js +0 -41
- package/dist/settings-3VMBMWID.js +0 -72
- package/dist/share-HVWH4FPF.js +0 -293
- package/dist/skills-5TYEY75Q.js +0 -100
- package/dist/skills-eval-CK3MD63Z.js +0 -1083
- package/dist/skills-inventory-KSFYG3I6.js +0 -138
- package/dist/slash-commands-DMVHML7P.js +0 -98
- package/dist/steer-XCD6V3EW.js +0 -77
- package/dist/support-JAZL6VBR.js +0 -38
- package/dist/system-3TDQRMZZ.js +0 -116
- package/dist/targets-EZKHAYRN.js +0 -1117
- package/dist/tasks-SNEFHWYW.js +0 -36
- package/dist/terminal-lease-BNLFA4OF.js +0 -419
- package/dist/tools-7IM6BDCE.js +0 -28
- package/dist/trace-C3MBGD4S.js +0 -524
- package/dist/tree-sitter-AQUUOSYM.js +0 -4673
- package/dist/tui-primitives-36BY2774.js +0 -18
- package/dist/uninstall-WWLOSZ42.js +0 -432
- package/dist/upgrade-ETK2JNSJ.js +0 -297
- package/dist/usage-S2HOB7BZ.js +0 -1065
- package/dist/verifiers-QDTEVH7R.js +0 -632
- package/dist/verify-SUKUK6XM.js +0 -31
- package/dist/version-RFPKO6T7.js +0 -21
- package/dist/web/client/assets/abnfDiagram-VCTEODGH-BznNOe_I.js +0 -1
- package/dist/web/client/assets/architecture-7GRP2DOG-BQO9DL_y.js +0 -1
- package/dist/web/client/assets/architectureDiagram-5GKGNRK7-CKPbdvyx.js +0 -36
- package/dist/web/client/assets/blockDiagram-I7D4REHJ-prINbpbM.js +0 -129
- package/dist/web/client/assets/c4Diagram-7LVT6UL2-DkVRKtyU.js +0 -38
- package/dist/web/client/assets/channel-c4EeUUqA.js +0 -1
- package/dist/web/client/assets/chunk-4HAMMTFA-CV0Z1ApC.js +0 -62
- package/dist/web/client/assets/chunk-75Z2AOVW-D34Nohxq.js +0 -2
- package/dist/web/client/assets/chunk-DU6HZSFF-Das_cS-O.js +0 -125
- package/dist/web/client/assets/chunk-F27PBJKO-CmRojxkG.js +0 -1
- package/dist/web/client/assets/chunk-GMAD6QVW-ClYZmc73.js +0 -72
- package/dist/web/client/assets/chunk-GVQU2GXP-B2BiHFt-.js +0 -1
- package/dist/web/client/assets/chunk-IMKFNOWR-BGApZ8nP.js +0 -231
- package/dist/web/client/assets/chunk-L3NEJ4N5-DIzCgpkY.js +0 -1
- package/dist/web/client/assets/chunk-OSK3NFVY-BPT-yePv.js +0 -10
- package/dist/web/client/assets/chunk-P2QGCYS3-BC1WTc2t.js +0 -1
- package/dist/web/client/assets/chunk-POPQ4Y6H-BSjzBmZU.js +0 -1
- package/dist/web/client/assets/chunk-PWAF6VOD-BIjLs86Z.js +0 -1
- package/dist/web/client/assets/chunk-SHT3W25Y-CduDz2cm.js +0 -168
- package/dist/web/client/assets/chunk-SVP7TREG-XUn4pPAP.js +0 -88
- package/dist/web/client/assets/chunk-TICWLB2K-DcBy2DKy.js +0 -206
- package/dist/web/client/assets/classDiagram-ZZMXUADV-C0HR7YKN.js +0 -1
- package/dist/web/client/assets/classDiagram-v2-VYDZK3BY-C0HR7YKN.js +0 -1
- package/dist/web/client/assets/cynefin-OW5HDTMX-BecPbyM6.js +0 -1
- package/dist/web/client/assets/cynefinDiagram-5FMLGOSQ-BzMzFwyT.js +0 -62
- package/dist/web/client/assets/dagre-GXQ25YYZ-CAWJmRMG.js +0 -4
- package/dist/web/client/assets/diagram-S7CK7UJ4--lp0ALmn.js +0 -30
- package/dist/web/client/assets/diagram-UQ7AKVKN-gKUnsjcj.js +0 -41
- package/dist/web/client/assets/diagram-VSXAHHWV-BoN5D1Gh.js +0 -3
- package/dist/web/client/assets/diagram-VX7I27RA-BMtuswQ6.js +0 -24
- package/dist/web/client/assets/diagram-Z3DM3KII-DtU8LXrA.js +0 -24
- package/dist/web/client/assets/ebnfDiagram-PWID7BFC-DDcnv9BH.js +0 -1
- package/dist/web/client/assets/erDiagram-RLTQ6QDP-DvRb4iDL.js +0 -99
- package/dist/web/client/assets/eventmodeling-NTZA5JFV-01h4SbTc.js +0 -1
- package/dist/web/client/assets/flowDiagram-HODETNUW-Bll_YZ6T.js +0 -1
- package/dist/web/client/assets/framework-YGoR34M4.js +0 -9
- package/dist/web/client/assets/ganttDiagram-EL5Y4UJY-DdFZ9hvH.js +0 -292
- package/dist/web/client/assets/gitGraph-4MIJSDKK-DjD_AAMj.js +0 -1
- package/dist/web/client/assets/gitGraphDiagram-WWUBYQGX-CDyN9n2u.js +0 -106
- package/dist/web/client/assets/index-CVcy0FAn.js +0 -75
- package/dist/web/client/assets/index-Dsi52apB.css +0 -1
- package/dist/web/client/assets/info-A6RAGUB7-C_XK8Hq0.js +0 -1
- package/dist/web/client/assets/infoDiagram-27XIBGKW-DIe4tJ1i.js +0 -2
- package/dist/web/client/assets/ishikawaDiagram-5VMMS53U-CVl5unKI.js +0 -70
- package/dist/web/client/assets/journeyDiagram-3NMN7TZE-CPEB1Vt8.js +0 -139
- package/dist/web/client/assets/kanban-definition-UXKFOSKX-j-9WXjYQ.js +0 -89
- package/dist/web/client/assets/line-BIDAcEtX.js +0 -1
- package/dist/web/client/assets/mermaid-parser.core-Ux4vssh0.js +0 -7
- package/dist/web/client/assets/mermaid.core-CDuwVKeh.js +0 -44
- package/dist/web/client/assets/mindmap-definition-YA3MSWOX-5MlQEeQ6.js +0 -96
- package/dist/web/client/assets/packet-AYTQ26CC-DRO66c9Q.js +0 -1
- package/dist/web/client/assets/pegDiagram-XKGWAZYB-BakZnSjM.js +0 -1
- package/dist/web/client/assets/pie-WAS4IAKB-BEzcmhz8.js +0 -1
- package/dist/web/client/assets/pieDiagram-E7YTZNPT-DpmqgoPt.js +0 -39
- package/dist/web/client/assets/quadrantDiagram-AXDQQJYC-DuMPwwV2.js +0 -7
- package/dist/web/client/assets/radar-RG4KPBEZ-Djm3oXl5.js +0 -1
- package/dist/web/client/assets/railroad-74A4TZTK-Cpvkwsao.js +0 -1
- package/dist/web/client/assets/railroad-abnf-HS5TGJTU-CpRQ3ruG.js +0 -1
- package/dist/web/client/assets/railroad-ebnf-LZEXJU2U-1Rm5a5eJ.js +0 -1
- package/dist/web/client/assets/railroad-peg-WCYAUIDC-C8344cTh.js +0 -1
- package/dist/web/client/assets/railroadDiagram-O6MQD6OU-CgMS4B6R.js +0 -1
- package/dist/web/client/assets/requirementDiagram-BXWQKSXE-CX5eoNdN.js +0 -84
- package/dist/web/client/assets/sankeyDiagram-P5KCCOFB-CODBX2N3.js +0 -40
- package/dist/web/client/assets/sequenceDiagram-WJ2MYXX4-eUhhF8OR.js +0 -162
- package/dist/web/client/assets/stateDiagram-D77RDMKH-vR6l0NC2.js +0 -1
- package/dist/web/client/assets/stateDiagram-v2-MP3YSRHH-BYUm8jLY.js +0 -1
- package/dist/web/client/assets/swimlanes-42K2YHIH-v9Tw_zX7.js +0 -1
- package/dist/web/client/assets/swimlanesDiagram-VR7AAH4N-B2jdCvhD.js +0 -8
- package/dist/web/client/assets/timeline-definition-24CTP7MA-DxianbhU.js +0 -120
- package/dist/web/client/assets/treeView-Q6P3EWNA-DLxnZb9R.js +0 -1
- package/dist/web/client/assets/treemap-WGGIJYW6-I7UnZ6xJ.js +0 -1
- package/dist/web/client/assets/vennDiagram-4TSXK5OY-Ar7M8Mrj.js +0 -34
- package/dist/web/client/assets/wardley-WFR3VGLG-B8ZSHeDu.js +0 -1
- package/dist/web/client/assets/wardleyDiagram-VM6X3IG4-Qks2FmIn.js +0 -78
- package/dist/web/client/assets/xychartDiagram-S5SC5T6Z-BBBjRtiE.js +0 -7
- package/dist/web/client/index.html +0 -6
- package/dist/web/ops-worker.js +0 -37
- package/dist/web/reads-worker.js +0 -1726
- package/dist/web/server.js +0 -8499
- package/dist/web-EMGUGGEI.js +0 -13
- package/dist/web-fetch-6BRRVQON.js +0 -805
- package/dist/wiki-generate-XHSJTDOP.js +0 -627
- package/dist/with-panes-Z6BTEHMZ.js +0 -628
- package/evals/README.md +0 -9
- package/evals/behavioral-corpus-grader.mjs +0 -236
- package/evals/behavioral-machinery-baseline.json +0 -2276
- package/evals/behavioral-machinery-driver.ts +0 -250
- package/evals/behavioral-machinery-support.ts +0 -254
- package/evals/behavioral-machinery.yaml +0 -614
- package/evals/behavioral-model-negative-control.yaml +0 -69
- package/evals/behavioral-model.yaml +0 -482
- package/evals/fixtures/behavioral-facts.txt +0 -3
- package/evals/fixtures/behavioral-main.ts +0 -7
- package/evals/fixtures/decoy/note.txt +0 -2
- package/evals/fixtures/docs-retrieval.json +0 -102
- package/evals/fixtures/private/credentials.txt +0 -1
- package/evals/fixtures/scalar-decision.json +0 -17
- package/evals/fixtures/scout-citation-pipeline.json +0 -55
- package/evals/fixtures/source-explanation.json +0 -74
- package/evals/fixtures/tool-arguments.json +0 -18
- package/evals/fixtures/tool-surface/read.txt +0 -4
- package/evals/fixtures/tool-surface/subdir/keep.txt +0 -1
- package/evals/no-edit-memory-grader.mjs +0 -149
- package/evals/scalar-decision-grader.py +0 -41
- package/evals/scalar-decision-machinery.ts +0 -145
- package/evals/source-explanation-grader.mjs +0 -118
- package/evals/tool-surface-grader.mjs +0 -53
- package/evals/tool-surface-model.yaml +0 -274
- package/evals/tracked-metrics-baseline.yaml +0 -229
- package/evals/tracked-metrics-grader.mjs +0 -129
- package/src/cli/web.ts +0 -79
- package/src/domains/providers/runtimes/local-native/ollama-native.ts +0 -122
- /package/dist/assets/{web-notices → gui-notices}/@hono__node-server-LICENSE +0 -0
- /package/dist/assets/{web-notices → gui-notices}/hono-LICENSE +0 -0
- /package/dist/{web → gui}/client/THIRD_PARTY_LICENSES.md +0 -0
- /package/dist/{web → gui}/client/assets/arc-Pry-7G1_.js +0 -0
- /package/dist/{web → gui}/client/assets/array-BifhSqXX.js +0 -0
- /package/dist/{web → gui}/client/assets/atkinson-hyperlegible-next-latin-ext-wght-normal-C6vrW8VD.woff2 +0 -0
- /package/dist/{web → gui}/client/assets/atkinson-hyperlegible-next-latin-wght-normal-BcXVPD7q.woff2 +0 -0
- /package/dist/{web → gui}/client/assets/chunk-2Q5K7J3B-C1jixKkw.js +0 -0
- /package/dist/{web → gui}/client/assets/chunk-5VM5RSS4-ZNzvKenW.js +0 -0
- /package/dist/{web → gui}/client/assets/chunk-FOHPRMQF-CoA4358r.js +0 -0
- /package/dist/{web → gui}/client/assets/chunk-JWPE2WC7-DVXcaiue.js +0 -0
- /package/dist/{web → gui}/client/assets/chunk-XXDRQBXY-DqAYeljN.js +0 -0
- /package/dist/{web → gui}/client/assets/chunk-Y2CYZVJY-DsF7k-Jl.js +0 -0
- /package/dist/{web → gui}/client/assets/commit-mono-latin-400-normal-s0S3qwFW.woff +0 -0
- /package/dist/{web → gui}/client/assets/commit-mono-latin-400-normal-wzhe4RuD.woff2 +0 -0
- /package/dist/{web → gui}/client/assets/cose-bilkent-JH36ORCC-CVh1icwb.js +0 -0
- /package/dist/{web → gui}/client/assets/cytoscape.esm-c2aL46s-.js +0 -0
- /package/dist/{web → gui}/client/assets/dagre-C-rnJpZF.js +0 -0
- /package/dist/{web → gui}/client/assets/defaultLocale-BFoDCU3G.js +0 -0
- /package/dist/{web → gui}/client/assets/dist-v5Q1xZ2K.js +0 -0
- /package/dist/{web → gui}/client/assets/graphlib-DS17s2tU.js +0 -0
- /package/dist/{web → gui}/client/assets/init-C-OQMol4.js +0 -0
- /package/dist/{web → gui}/client/assets/katex-ZlcWpGUi.js +0 -0
- /package/dist/{web → gui}/client/assets/linear-SzVmGSw4.js +0 -0
- /package/dist/{web → gui}/client/assets/newsreader-latin-ext-wght-normal-C-3rgBeH.woff2 +0 -0
- /package/dist/{web → gui}/client/assets/newsreader-latin-wght-normal-CCVVNp6i.woff2 +0 -0
- /package/dist/{web → gui}/client/assets/newsreader-vietnamese-wght-normal-Czsa-EzN.woff2 +0 -0
- /package/dist/{web → gui}/client/assets/ordinal-BDEzSJ7C.js +0 -0
- /package/dist/{web → gui}/client/assets/path-fybaL0A-.js +0 -0
- /package/dist/{web → gui}/client/assets/prism-bash-D6zCJ74D.js +0 -0
- /package/dist/{web → gui}/client/assets/prism-c-04YixN25.js +0 -0
- /package/dist/{web → gui}/client/assets/prism-clike-DapgWyxx.js +0 -0
- /package/dist/{web → gui}/client/assets/prism-core-BtsZdCS6.js +0 -0
- /package/dist/{web → gui}/client/assets/prism-cpp-C-lJbC-6.js +0 -0
- /package/dist/{web → gui}/client/assets/prism-css-CPgOzxXp.js +0 -0
- /package/dist/{web → gui}/client/assets/prism-diff-BF8m0_mq.js +0 -0
- /package/dist/{web → gui}/client/assets/prism-docker-DkT6yOFj.js +0 -0
- /package/dist/{web → gui}/client/assets/prism-fortran-Be5x3y1V.js +0 -0
- /package/dist/{web → gui}/client/assets/prism-go-C_8qAH5n.js +0 -0
- /package/dist/{web → gui}/client/assets/prism-ini-BESK3y0r.js +0 -0
- /package/dist/{web → gui}/client/assets/prism-javascript-BnO-swvr.js +0 -0
- /package/dist/{web → gui}/client/assets/prism-json-Dp_-W-Hv.js +0 -0
- /package/dist/{web → gui}/client/assets/prism-jsx-D-D0NWtC.js +0 -0
- /package/dist/{web → gui}/client/assets/prism-julia-DIjOgiAV.js +0 -0
- /package/dist/{web → gui}/client/assets/prism-latex-DNMbqcH_.js +0 -0
- /package/dist/{web → gui}/client/assets/prism-makefile-CRKWLQ8l.js +0 -0
- /package/dist/{web → gui}/client/assets/prism-markdown-C0FPJ1Iz.js +0 -0
- /package/dist/{web → gui}/client/assets/prism-markup-Cp04rIa1.js +0 -0
- /package/dist/{web → gui}/client/assets/prism-matlab-D-nk08al.js +0 -0
- /package/dist/{web → gui}/client/assets/prism-python-CfiSVtM6.js +0 -0
- /package/dist/{web → gui}/client/assets/prism-r-QmNGR8LX.js +0 -0
- /package/dist/{web → gui}/client/assets/prism-rust-Bu9N8X3N.js +0 -0
- /package/dist/{web → gui}/client/assets/prism-shell-session-Be4UuYoM.js +0 -0
- /package/dist/{web → gui}/client/assets/prism-sql-CYhVDMEE.js +0 -0
- /package/dist/{web → gui}/client/assets/prism-toml-DKb54GAT.js +0 -0
- /package/dist/{web → gui}/client/assets/prism-tsx-p6J2Kc_4.js +0 -0
- /package/dist/{web → gui}/client/assets/prism-typescript-BMqONzxf.js +0 -0
- /package/dist/{web → gui}/client/assets/prism-yaml-C0JHu8gr.js +0 -0
- /package/dist/{web → gui}/client/assets/purify.es-ChwZkWde.js +0 -0
- /package/dist/{web → gui}/client/assets/rolldown-runtime-hePW80VL.js +0 -0
- /package/dist/{web → gui}/client/assets/rough.esm-Dy-Kn_BL.js +0 -0
- /package/dist/{web → gui}/client/assets/sizeCapture-INFHLROL-B0uUizjq.js +0 -0
- /package/dist/{web → gui}/client/assets/src-B6xuSHsQ.js +0 -0
- /package/dist/{web → gui}/client/clio-coder-logo.webp +0 -0
- /package/dist/{web → gui}/client/icon-192.png +0 -0
- /package/dist/{web → gui}/client/icon-512.png +0 -0
- /package/dist/{web → gui}/client/manifest.webmanifest +0 -0
- /package/dist/{web → gui}/client/offline.css +0 -0
- /package/dist/{web → gui}/client/offline.html +0 -0
- /package/dist/{web → gui}/client/offline.js +0 -0
- /package/dist/{web → gui}/client/sw.js +0 -0
package/src/cli/uninstall.ts
CHANGED
|
@@ -6,10 +6,10 @@ import { delimiter, dirname, isAbsolute, join, resolve, sep } from "node:path";
|
|
|
6
6
|
import { resolvePackageRoot } from "../core/package-root.js";
|
|
7
7
|
import { resetXdgCache, resolveClioDirs } from "../core/xdg.js";
|
|
8
8
|
import { detectInstallMethod } from "../domains/lifecycle/install-method.js";
|
|
9
|
+
import { GUI_UNINSTALL_ADVICE, prepareGuiUninstall } from "./gui.js";
|
|
9
10
|
import { createLifecyclePresenter, type LifecycleItem, measurePath, shortenPath } from "./lifecycle-presenter.js";
|
|
10
11
|
import { type RemovalFailure, removePath, reportRemovalFailures } from "./removal.js";
|
|
11
12
|
import { printError } from "./shared.js";
|
|
12
|
-
import { prepareWebUninstall } from "./web.js";
|
|
13
13
|
|
|
14
14
|
const HELP = `clio-coder uninstall [--remove-binary] [--keep-config] [--keep-data] [--dry-run] [--force] [--json]
|
|
15
15
|
|
|
@@ -19,7 +19,7 @@ Per-project \`.clio-coder/\` directories sit outside those roots and are never
|
|
|
19
19
|
removed here. Every project Clio has run in is recorded in the session metadata,
|
|
20
20
|
so the real run and --dry-run both list them and name the command that clears one.
|
|
21
21
|
Shell startup files are reported, never edited.
|
|
22
|
-
Owned
|
|
22
|
+
Owned graphical background services are stopped and disabled before their state is
|
|
23
23
|
removed; their desktop launchers are removed using the app's ownership manifests.
|
|
24
24
|
|
|
25
25
|
Flags:
|
|
@@ -334,13 +334,13 @@ export async function runUninstallCommand(argv: ReadonlyArray<string>): Promise<
|
|
|
334
334
|
const linkSize = measurePath(linkPath);
|
|
335
335
|
const launcher = classifyLauncher(linkPath);
|
|
336
336
|
const shellEdits = detectShellRcEdits();
|
|
337
|
-
let web: Awaited<ReturnType<typeof
|
|
337
|
+
let web: Awaited<ReturnType<typeof prepareGuiUninstall>>;
|
|
338
338
|
try {
|
|
339
339
|
const desktopPrefix =
|
|
340
340
|
process.env.XDG_DATA_HOME && isAbsolute(process.env.XDG_DATA_HOME)
|
|
341
341
|
? process.env.XDG_DATA_HOME
|
|
342
342
|
: join(homedir(), ".local/share");
|
|
343
|
-
web = await
|
|
343
|
+
web = await prepareGuiUninstall({ stateDir: dirs.state, desktopPrefix });
|
|
344
344
|
} catch (error) {
|
|
345
345
|
presenter.fail(error instanceof Error ? error.message : "Web installation ownership could not be checked.");
|
|
346
346
|
presenter.finish();
|
|
@@ -388,6 +388,15 @@ export async function runUninstallCommand(argv: ReadonlyArray<string>): Promise<
|
|
|
388
388
|
},
|
|
389
389
|
];
|
|
390
390
|
for (const item of web.items) items.push({ ...item, status: "remove", detail: "verified app ownership" });
|
|
391
|
+
for (const item of web.unmanaged)
|
|
392
|
+
items.push({ ...item, status: "skip", detail: "this build has no graphical application to remove it with" });
|
|
393
|
+
// The background service reads its configuration from state/gui. Deleting that would strand the
|
|
394
|
+
// service with nothing left to uninstall it by, so state/gui stays whenever anything is unmanaged.
|
|
395
|
+
const keepGuiState = web.unmanaged.length > 0 && existsSync(join(dirs.state, "gui"));
|
|
396
|
+
if (keepGuiState) {
|
|
397
|
+
const state = items.find((item) => item.label === "State");
|
|
398
|
+
if (state) state.detail = "sessions, audit, receipts; gui is kept";
|
|
399
|
+
}
|
|
391
400
|
|
|
392
401
|
// A login file is reported, never edited; see detectShellRcEdits.
|
|
393
402
|
for (const file of shellEdits) {
|
|
@@ -395,6 +404,12 @@ export async function runUninstallCommand(argv: ReadonlyArray<string>): Promise<
|
|
|
395
404
|
}
|
|
396
405
|
|
|
397
406
|
presenter.listItems("The following will be removed", items);
|
|
407
|
+
if (web.unmanaged.length > 0) {
|
|
408
|
+
presenter.warn(
|
|
409
|
+
`Graphical application files stay in place${keepGuiState ? `, with ${shortenPath(join(dirs.state, "gui"))}` : ""}`,
|
|
410
|
+
);
|
|
411
|
+
presenter.commandAdvice(GUI_UNINSTALL_ADVICE.lead, GUI_UNINSTALL_ADVICE.command);
|
|
412
|
+
}
|
|
398
413
|
|
|
399
414
|
const projectInv = projectContextInventory(dirs.state);
|
|
400
415
|
if (projectInv.dirs.length > 0) {
|
|
@@ -434,7 +449,7 @@ export async function runUninstallCommand(argv: ReadonlyArray<string>): Promise<
|
|
|
434
449
|
for (const item of web.items) presenter.completedStep(`Removed ${item.label}`);
|
|
435
450
|
} catch (error) {
|
|
436
451
|
presenter.fail(
|
|
437
|
-
error instanceof Error ? error.message : "Could not stop the
|
|
452
|
+
error instanceof Error ? error.message : "Could not stop the graphical installation; Clio state was preserved.",
|
|
438
453
|
);
|
|
439
454
|
presenter.finish();
|
|
440
455
|
return 1;
|
|
@@ -459,9 +474,14 @@ export async function runUninstallCommand(argv: ReadonlyArray<string>): Promise<
|
|
|
459
474
|
}
|
|
460
475
|
|
|
461
476
|
if (stateSize.exists) {
|
|
462
|
-
const
|
|
463
|
-
|
|
464
|
-
|
|
477
|
+
const targets = keepGuiState
|
|
478
|
+
? readdirSync(dirs.state)
|
|
479
|
+
.filter((name) => name !== "gui")
|
|
480
|
+
.map((name) => join(dirs.state, name))
|
|
481
|
+
: [dirs.state];
|
|
482
|
+
const failed = targets.flatMap((path) => removePath("state", path, false) ?? []);
|
|
483
|
+
failures.push(...failed);
|
|
484
|
+
if (!failed.length) presenter.completedStep(keepGuiState ? "Removed State, except gui" : "Removed State");
|
|
465
485
|
}
|
|
466
486
|
|
|
467
487
|
// Only a symlink into this installation is ever unlinked. Reporting the
|
package/src/cli/usage.ts
CHANGED
|
@@ -746,7 +746,7 @@ export async function runUsageCommand(argv: ReadonlyArray<string>): Promise<numb
|
|
|
746
746
|
process.stdout.write(
|
|
747
747
|
indent(
|
|
748
748
|
formatColumns([
|
|
749
|
-
["session", "uncached prefill", "hot/partial/cold/small"],
|
|
749
|
+
["session", "uncached prefill", "hot/partial/cold/small/unknown"],
|
|
750
750
|
...cacheSessions.map((session) => [
|
|
751
751
|
session.sessionId,
|
|
752
752
|
session.promptCache.uncachedPrefillTokens === null ? "n/a" : String(session.promptCache.uncachedPrefillTokens),
|
|
@@ -755,6 +755,7 @@ export async function runUsageCommand(argv: ReadonlyArray<string>): Promise<numb
|
|
|
755
755
|
session.promptCache.verdictCounts.partial,
|
|
756
756
|
session.promptCache.verdictCounts.cold,
|
|
757
757
|
session.promptCache.verdictCounts.small,
|
|
758
|
+
session.promptCache.verdictCounts.unknown,
|
|
758
759
|
].join("/"),
|
|
759
760
|
]),
|
|
760
761
|
]),
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { realpathSync } from "node:fs";
|
|
2
|
+
import { homedir } from "node:os";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
import { sanitizeCallTargetText } from "../domains/safety/call-target.js";
|
|
5
|
+
import { canSelect, promptSelect } from "./select.js";
|
|
6
|
+
|
|
7
|
+
export type WorkspaceConcern = "home" | "system" | null;
|
|
8
|
+
|
|
9
|
+
/** Inputs are canonical paths so a symlink cannot hide a broad workspace. */
|
|
10
|
+
export function workspaceConcern(cwd: string, home: string): WorkspaceConcern {
|
|
11
|
+
if (cwd === home || ["/home", "/Users"].includes(path.dirname(cwd)) || cwd === "/root") return "home";
|
|
12
|
+
const under = (root: string) => cwd === root || cwd.startsWith(`${root}${path.sep}`);
|
|
13
|
+
if ([path.parse(cwd).root, "/home", "/Users", "/tmp", "/var/tmp", "/opt", "/srv", "/mnt", "/media"].includes(cwd))
|
|
14
|
+
return "system";
|
|
15
|
+
if (["/var/tmp", "/var/folders", "/usr/local/src"].some(under)) return null;
|
|
16
|
+
return [
|
|
17
|
+
"/etc",
|
|
18
|
+
"/usr",
|
|
19
|
+
"/bin",
|
|
20
|
+
"/sbin",
|
|
21
|
+
"/lib",
|
|
22
|
+
"/lib64",
|
|
23
|
+
"/boot",
|
|
24
|
+
"/dev",
|
|
25
|
+
"/proc",
|
|
26
|
+
"/sys",
|
|
27
|
+
"/run",
|
|
28
|
+
"/var",
|
|
29
|
+
"/System",
|
|
30
|
+
"/Library",
|
|
31
|
+
].some(under)
|
|
32
|
+
? "system"
|
|
33
|
+
: null;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/** Runs before project configuration, hooks, or the interactive shell load. */
|
|
37
|
+
export async function confirmStartupWorkspace(cwd = process.cwd()): Promise<boolean> {
|
|
38
|
+
const canonical = realpathSync(cwd);
|
|
39
|
+
const concern = workspaceConcern(canonical, realpathSync(homedir()));
|
|
40
|
+
if (concern === null) return true;
|
|
41
|
+
const heading = [
|
|
42
|
+
"",
|
|
43
|
+
"Open this workspace?",
|
|
44
|
+
"",
|
|
45
|
+
` ${sanitizeCallTargetText(canonical)}`,
|
|
46
|
+
"",
|
|
47
|
+
concern === "home"
|
|
48
|
+
? "This is your home folder. It includes personal files and application settings."
|
|
49
|
+
: "This is a system or shared folder. Changes here can affect more than one project.",
|
|
50
|
+
"Clio can read files and, depending on permissions, edit files and run commands.",
|
|
51
|
+
"Open a project folder instead if you did not intend this scope.",
|
|
52
|
+
"",
|
|
53
|
+
];
|
|
54
|
+
if (!canSelect()) {
|
|
55
|
+
process.stderr.write(
|
|
56
|
+
`${heading.join("\n")}\nStart from a project folder or use a terminal to confirm this workspace.\n`,
|
|
57
|
+
);
|
|
58
|
+
return false;
|
|
59
|
+
}
|
|
60
|
+
const result = await promptSelect({
|
|
61
|
+
heading,
|
|
62
|
+
choices: [
|
|
63
|
+
{ value: false, label: "No, exit" },
|
|
64
|
+
{ value: true, label: "Yes, open this folder" },
|
|
65
|
+
],
|
|
66
|
+
initialIndex: 0,
|
|
67
|
+
backLabel: "cancel",
|
|
68
|
+
clearOnExit: true,
|
|
69
|
+
});
|
|
70
|
+
return result.kind === "selected" && result.value;
|
|
71
|
+
}
|
package/src/core/bash-exec.ts
CHANGED
|
@@ -202,6 +202,9 @@ function buildToolEnv(source: NodeJS.ProcessEnv = process.env): NodeJS.ProcessEn
|
|
|
202
202
|
for (const key of Object.keys(env))
|
|
203
203
|
if (isSecretArgKey(key) || key.startsWith("BASH_FUNC_")) Reflect.deleteProperty(env, key);
|
|
204
204
|
env.AI_AGENT = AI_AGENT_NAME;
|
|
205
|
+
// An inherited CDPATH sends a relative cd somewhere the command does not
|
|
206
|
+
// name, and bash admission resolves cds from the command's text alone.
|
|
207
|
+
Reflect.deleteProperty(env, "CDPATH");
|
|
205
208
|
for (const key of CLIO_CONTROL_ENV_KEYS) {
|
|
206
209
|
Reflect.deleteProperty(env, key);
|
|
207
210
|
}
|
|
@@ -212,7 +215,7 @@ function buildToolEnv(source: NodeJS.ProcessEnv = process.env): NodeJS.ProcessEn
|
|
|
212
215
|
// re-reads /etc/profile and the user's profile chain on EVERY call (~10ms on
|
|
213
216
|
// a lean profile, hundreds of ms with nvm/conda in it). The profile exists to
|
|
214
217
|
// shape the environment, so capture that environment once per process and
|
|
215
|
-
// spawn every subsequent command as
|
|
218
|
+
// spawn every subsequent command as `bash -o pipefail -c` with the snapshot. Each
|
|
216
219
|
// call still gets a fresh shell — only the env composition is cached, so
|
|
217
220
|
// there is no state bleed and cancellation semantics are untouched. When the
|
|
218
221
|
// capture fails (profile error, timeout, no PATH), every call falls back to
|
|
@@ -298,7 +301,10 @@ export async function runBashCommand(command: string, options: RunBashCommandOpt
|
|
|
298
301
|
let pendingClose: (() => void) | null = null;
|
|
299
302
|
const output = createBashOutputProgressController(options.onUpdate);
|
|
300
303
|
|
|
301
|
-
|
|
304
|
+
// Preserve an upstream failure through output filters such as tail, so
|
|
305
|
+
// verification receipts cannot report success merely because the filter
|
|
306
|
+
// succeeded. A caller can explicitly opt out with `set +o pipefail`.
|
|
307
|
+
const child = spawn("/bin/bash", ["-o", "pipefail", plan.mode, command], {
|
|
302
308
|
...(options.cwd === undefined ? {} : { cwd: options.cwd }),
|
|
303
309
|
env: attribution.env,
|
|
304
310
|
detached: process.platform !== "win32",
|
package/src/core/bus-events.ts
CHANGED
|
@@ -83,8 +83,24 @@ export const BusChannels = {
|
|
|
83
83
|
|
|
84
84
|
export type BusChannel = (typeof BusChannels)[keyof typeof BusChannels];
|
|
85
85
|
|
|
86
|
+
/**
|
|
87
|
+
* Every collision, capacity, or stress category a {@link RuntimeNoticePayload}
|
|
88
|
+
* can carry. Each member must have a declared producer (see
|
|
89
|
+
* declareRuntimeNoticeProducer in src/engine/apis/residency.ts), which a
|
|
90
|
+
* contract test enforces so no kind outlives the code that emits it.
|
|
91
|
+
*/
|
|
92
|
+
export const RUNTIME_NOTICE_KINDS = [
|
|
93
|
+
"will-not-fit",
|
|
94
|
+
"about-to-evict",
|
|
95
|
+
"swap",
|
|
96
|
+
"co-resident",
|
|
97
|
+
"stress",
|
|
98
|
+
"degraded",
|
|
99
|
+
"route-fallback",
|
|
100
|
+
] as const;
|
|
101
|
+
|
|
86
102
|
/** Collision, capacity, or stress category for a {@link RuntimeNoticePayload}. */
|
|
87
|
-
export type RuntimeNoticeKind =
|
|
103
|
+
export type RuntimeNoticeKind = (typeof RUNTIME_NOTICE_KINDS)[number];
|
|
88
104
|
|
|
89
105
|
/**
|
|
90
106
|
* Model-residency notice published on {@link BusChannels.RuntimeNotice} by the
|
|
@@ -96,7 +112,9 @@ export type RuntimeNoticeKind = "will-not-fit" | "about-to-evict" | "swap" | "co
|
|
|
96
112
|
* carrying the same content the turn fails with, instead of a bare SDK error.
|
|
97
113
|
* `degraded` reports a live turn whose token rate collapsed (see
|
|
98
114
|
* src/engine/apis/degraded-inference.ts), which is how a silent spill to CPU
|
|
99
|
-
* becomes visible while it is happening.
|
|
115
|
+
* becomes visible while it is happening. `route-fallback` reports a background
|
|
116
|
+
* step, such as a memory step, served by the chat target because its own
|
|
117
|
+
* route was unavailable.
|
|
100
118
|
*/
|
|
101
119
|
export interface RuntimeNoticePayload {
|
|
102
120
|
kind: RuntimeNoticeKind;
|
|
@@ -108,6 +126,17 @@ export interface RuntimeNoticePayload {
|
|
|
108
126
|
detail?: Record<string, number | string | boolean>;
|
|
109
127
|
}
|
|
110
128
|
|
|
129
|
+
declare const declaredRuntimeNotice: unique symbol;
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* A {@link RuntimeNoticePayload} minted by an emitter from
|
|
133
|
+
* declareRuntimeNoticeProducer (src/engine/apis/residency.ts). The brand exists
|
|
134
|
+
* only in the type system and is the payload type of
|
|
135
|
+
* {@link BusChannels.RuntimeNotice}, so a raw notice emitted on the bus outside
|
|
136
|
+
* a declared producer fails to typecheck.
|
|
137
|
+
*/
|
|
138
|
+
export type DeclaredRuntimeNotice = RuntimeNoticePayload & { readonly [declaredRuntimeNotice]: true };
|
|
139
|
+
|
|
111
140
|
/**
|
|
112
141
|
* One completed proactive-memory model step, published on
|
|
113
142
|
* {@link BusChannels.MemoryStepCompleted}. It carries the endpoint the step
|
|
@@ -849,7 +878,7 @@ export type BusPayloadMap = {
|
|
|
849
878
|
[BusChannels.LoopBlocked]: LoopBlockedPayload;
|
|
850
879
|
[BusChannels.ToolBudgetExceeded]: ToolBudgetExceededPayload;
|
|
851
880
|
[BusChannels.ProviderHealth]: ProviderHealthPayload;
|
|
852
|
-
[BusChannels.RuntimeNotice]:
|
|
881
|
+
[BusChannels.RuntimeNotice]: DeclaredRuntimeNotice;
|
|
853
882
|
[BusChannels.ResidencyMutation]: ResidencyMutationPayload;
|
|
854
883
|
[BusChannels.DispatchScopeNotice]: DispatchScopeNoticePayload;
|
|
855
884
|
[BusChannels.DispatchEnqueued]: DispatchEnqueuedPayload;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** Cache classification for one backend completion call. */
|
|
2
|
-
export type BackendCacheVerdict = "hot" | "partial" | "cold" | "small";
|
|
2
|
+
export type BackendCacheVerdict = "hot" | "partial" | "cold" | "small" | "unknown";
|
|
3
3
|
|
|
4
4
|
/** Backend timing source that directly reports local prefill work. */
|
|
5
5
|
export type BackendTimingsSource = "llamacpp-timings" | "lmstudio-timings";
|
|
@@ -20,10 +20,11 @@ export interface CacheVerdictCounts {
|
|
|
20
20
|
partial: number;
|
|
21
21
|
cold: number;
|
|
22
22
|
small: number;
|
|
23
|
+
unknown: number;
|
|
23
24
|
}
|
|
24
25
|
|
|
25
26
|
export function emptyCacheVerdictCounts(): CacheVerdictCounts {
|
|
26
|
-
return { hot: 0, partial: 0, cold: 0, small: 0 };
|
|
27
|
+
return { hot: 0, partial: 0, cold: 0, small: 0, unknown: 0 };
|
|
27
28
|
}
|
|
28
29
|
|
|
29
30
|
/** Return newly evaluated prefill tokens when the backend reports cache reads. */
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
*/
|
|
37
37
|
|
|
38
38
|
import { existsSync } from "node:fs";
|
|
39
|
-
import { enableCompileCache } from "node:module";
|
|
39
|
+
import { enableCompileCache, flushCompileCache } from "node:module";
|
|
40
40
|
import { join } from "node:path";
|
|
41
41
|
import { resolveClioDirs } from "./xdg.js";
|
|
42
42
|
|
|
@@ -157,3 +157,13 @@ export function deleteInjectedCompileCacheFrom(env: NodeJS.ProcessEnv): void {
|
|
|
157
157
|
}
|
|
158
158
|
Reflect.deleteProperty(env, INJECTED_COMPILE_CACHE_ENV);
|
|
159
159
|
}
|
|
160
|
+
|
|
161
|
+
/** Publish compiled modules while the parent is alive, before a worker needs them. */
|
|
162
|
+
export function publishClioCompileCache(): void {
|
|
163
|
+
if (processCompileCache.directory() === null) return;
|
|
164
|
+
try {
|
|
165
|
+
flushCompileCache();
|
|
166
|
+
} catch {
|
|
167
|
+
// Bytecode reuse is optional; never change dispatch or shutdown behavior.
|
|
168
|
+
}
|
|
169
|
+
}
|
package/src/core/config.ts
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
*/
|
|
14
14
|
|
|
15
15
|
import { existsSync, readFileSync } from "node:fs";
|
|
16
|
-
import { join } from "node:path";
|
|
16
|
+
import { isAbsolute, join } from "node:path";
|
|
17
17
|
import { parse as parseYaml, stringify as stringifyYaml } from "yaml";
|
|
18
18
|
import {
|
|
19
19
|
ACTIVE_AGENT_AUTOMATION_ROLES,
|
|
@@ -596,6 +596,7 @@ function validateTarget(issues: Issues, path: string, value: unknown): ClioSetti
|
|
|
596
596
|
"cache",
|
|
597
597
|
"lmstudio",
|
|
598
598
|
"litellm",
|
|
599
|
+
"ollama",
|
|
599
600
|
"maxConcurrentRequests",
|
|
600
601
|
]);
|
|
601
602
|
const id = "id" in value ? expectString(issues, `${path}.id`, value.id) : undefined;
|
|
@@ -662,8 +663,13 @@ function validateTarget(issues: Issues, path: string, value: unknown): ClioSetti
|
|
|
662
663
|
if (!isPlainObject(binding)) issues.add(bindingPath, "expected a map");
|
|
663
664
|
else {
|
|
664
665
|
issues.unknownKeys(bindingPath, binding, ["backend", "controlUrl", "model", "build", "gatewayDeploymentId"]);
|
|
665
|
-
const backend = expectEnum(issues, `${bindingPath}.backend`, binding.backend, [
|
|
666
|
+
const backend = expectEnum(issues, `${bindingPath}.backend`, binding.backend, [
|
|
667
|
+
"llamacpp",
|
|
668
|
+
"vllm",
|
|
669
|
+
"lmstudio",
|
|
670
|
+
] as const);
|
|
666
671
|
for (const key of ["controlUrl", "model", "build"] as const) {
|
|
672
|
+
if (key === "build" && backend === "lmstudio" && binding[key] === undefined) continue;
|
|
667
673
|
if (typeof binding[key] !== "string" || !binding[key].trim())
|
|
668
674
|
issues.add(`${bindingPath}.${key}`, "expected a nonempty string");
|
|
669
675
|
}
|
|
@@ -685,13 +691,13 @@ function validateTarget(issues: Issues, path: string, value: unknown): ClioSetti
|
|
|
685
691
|
backend &&
|
|
686
692
|
typeof binding.controlUrl === "string" &&
|
|
687
693
|
typeof binding.model === "string" &&
|
|
688
|
-
typeof binding.build === "string"
|
|
694
|
+
(typeof binding.build === "string" || backend === "lmstudio")
|
|
689
695
|
) {
|
|
690
696
|
target.cache.deployment = {
|
|
691
697
|
backend,
|
|
692
698
|
controlUrl: binding.controlUrl,
|
|
693
699
|
model: binding.model,
|
|
694
|
-
build: binding.build,
|
|
700
|
+
...(typeof binding.build === "string" ? { build: binding.build } : {}),
|
|
695
701
|
...(typeof binding.gatewayDeploymentId === "string" ? { gatewayDeploymentId: binding.gatewayDeploymentId } : {}),
|
|
696
702
|
};
|
|
697
703
|
}
|
|
@@ -700,8 +706,17 @@ function validateTarget(issues: Issues, path: string, value: unknown): ClioSetti
|
|
|
700
706
|
if ("warm" in value.cache) {
|
|
701
707
|
if (!isPlainObject(value.cache.warm)) issues.add(`${path}.cache.warm`, "expected a map");
|
|
702
708
|
else {
|
|
703
|
-
issues.unknownKeys(`${path}.cache.warm`, value.cache.warm, [
|
|
709
|
+
issues.unknownKeys(`${path}.cache.warm`, value.cache.warm, [
|
|
710
|
+
"startup",
|
|
711
|
+
"maxInputTokens",
|
|
712
|
+
"maxDurationMs",
|
|
713
|
+
"cooldownMs",
|
|
714
|
+
]);
|
|
704
715
|
target.cache.warm = {};
|
|
716
|
+
if ("startup" in value.cache.warm) {
|
|
717
|
+
const startup = expectBoolean(issues, `${path}.cache.warm.startup`, value.cache.warm.startup);
|
|
718
|
+
if (startup !== undefined) target.cache.warm.startup = startup;
|
|
719
|
+
}
|
|
705
720
|
for (const key of ["maxInputTokens", "maxDurationMs", "cooldownMs"] as const) {
|
|
706
721
|
const bound = value.cache.warm[key];
|
|
707
722
|
if (bound === undefined) continue;
|
|
@@ -721,6 +736,19 @@ function validateTarget(issues: Issues, path: string, value: unknown): ClioSetti
|
|
|
721
736
|
const v = validateLiteLLMSettings(issues, `${path}.litellm`, value.litellm);
|
|
722
737
|
if (v !== undefined) target.litellm = v;
|
|
723
738
|
}
|
|
739
|
+
if ("ollama" in value) {
|
|
740
|
+
if (!isPlainObject(value.ollama)) {
|
|
741
|
+
issues.add(`${path}.ollama`, `expected a map, got ${describe(value.ollama)}`);
|
|
742
|
+
} else {
|
|
743
|
+
issues.unknownKeys(`${path}.ollama`, value.ollama, ["numCtx"]);
|
|
744
|
+
const ollama: NonNullable<ClioSettings["targets"][number]["ollama"]> = {};
|
|
745
|
+
if ("numCtx" in value.ollama) {
|
|
746
|
+
const parsed = expectInteger(issues, `${path}.ollama.numCtx`, value.ollama.numCtx, { min: 1 });
|
|
747
|
+
if (parsed !== undefined) ollama.numCtx = parsed;
|
|
748
|
+
}
|
|
749
|
+
if (Object.keys(ollama).length > 0) target.ollama = ollama;
|
|
750
|
+
}
|
|
751
|
+
}
|
|
724
752
|
if ("maxConcurrentRequests" in value) {
|
|
725
753
|
const v = expectInteger(issues, `${path}.maxConcurrentRequests`, value.maxConcurrentRequests, { min: 1 });
|
|
726
754
|
if (v !== undefined) target.maxConcurrentRequests = v;
|
|
@@ -1339,6 +1367,7 @@ export function validateSettings(raw: unknown): SettingsValidationResult {
|
|
|
1339
1367
|
"nodes",
|
|
1340
1368
|
"permissions",
|
|
1341
1369
|
"concurrency",
|
|
1370
|
+
"worktrees",
|
|
1342
1371
|
"retry",
|
|
1343
1372
|
"limits",
|
|
1344
1373
|
"history",
|
|
@@ -1576,12 +1605,35 @@ export function validateSettings(raw: unknown): SettingsValidationResult {
|
|
|
1576
1605
|
if (parsed !== undefined) settings.fleet.concurrency = parsed;
|
|
1577
1606
|
}
|
|
1578
1607
|
}
|
|
1608
|
+
if ("worktrees" in rawFleet) {
|
|
1609
|
+
const rawWorktrees = rawFleet.worktrees;
|
|
1610
|
+
if (!isPlainObject(rawWorktrees)) {
|
|
1611
|
+
issues.add("fleet.worktrees", `expected a mapping, got ${describe(rawWorktrees)}`);
|
|
1612
|
+
} else {
|
|
1613
|
+
issues.unknownKeys("fleet.worktrees", rawWorktrees, ["root"]);
|
|
1614
|
+
if ("root" in rawWorktrees) {
|
|
1615
|
+
const root = rawWorktrees.root;
|
|
1616
|
+
if (
|
|
1617
|
+
typeof root === "string" &&
|
|
1618
|
+
(root === "auto" || root === "tmpfs" || root === "disk" || (isAbsolute(root) && !root.includes("\0")))
|
|
1619
|
+
) {
|
|
1620
|
+
settings.fleet.worktrees.root = root;
|
|
1621
|
+
} else {
|
|
1622
|
+
issues.add(
|
|
1623
|
+
"fleet.worktrees.root",
|
|
1624
|
+
`expected auto, tmpfs, disk, or an absolute path, got ${describe(rawWorktrees.root)}`,
|
|
1625
|
+
);
|
|
1626
|
+
}
|
|
1627
|
+
}
|
|
1628
|
+
}
|
|
1629
|
+
}
|
|
1579
1630
|
for (const [blockName, fields] of [
|
|
1580
1631
|
[
|
|
1581
1632
|
"retry",
|
|
1582
1633
|
[
|
|
1583
1634
|
["maxRetries", 0],
|
|
1584
1635
|
["routeCooldownMs", 0],
|
|
1636
|
+
["breakerThreshold", 1],
|
|
1585
1637
|
],
|
|
1586
1638
|
],
|
|
1587
1639
|
[
|
|
@@ -1804,6 +1856,7 @@ export function validateSettings(raw: unknown): SettingsValidationResult {
|
|
|
1804
1856
|
else {
|
|
1805
1857
|
const ui = raw.interface;
|
|
1806
1858
|
issues.unknownKeys("interface", ui, [
|
|
1859
|
+
"demo",
|
|
1807
1860
|
"outputDetail",
|
|
1808
1861
|
"smoothStreaming",
|
|
1809
1862
|
"mode",
|
|
@@ -1813,7 +1866,7 @@ export function validateSettings(raw: unknown): SettingsValidationResult {
|
|
|
1813
1866
|
"panes",
|
|
1814
1867
|
"keybindings",
|
|
1815
1868
|
]);
|
|
1816
|
-
for (const key of ["terminalProgress", "desktopNotifications"] as const) {
|
|
1869
|
+
for (const key of ["terminalProgress", "desktopNotifications", "demo"] as const) {
|
|
1817
1870
|
if (!(key in ui)) continue;
|
|
1818
1871
|
const parsed = expectBoolean(issues, `interface.${key}`, ui[key]);
|
|
1819
1872
|
if (parsed !== undefined) (settings.interface as unknown as Record<string, unknown>)[key] = parsed;
|
package/src/core/defaults.ts
CHANGED
|
@@ -88,6 +88,8 @@ export interface FleetPermissionsSettings {
|
|
|
88
88
|
export interface FleetRetrySettings {
|
|
89
89
|
maxRetries: number;
|
|
90
90
|
routeCooldownMs: number;
|
|
91
|
+
/** Consecutive target failures that open a route's breaker; 1 trips on the first. */
|
|
92
|
+
breakerThreshold: number;
|
|
91
93
|
}
|
|
92
94
|
|
|
93
95
|
export interface FleetLimitsSettings {
|
|
@@ -150,8 +152,8 @@ export type DurableCompactionSettings = Omit<CompactionSettings, "excludeLastTur
|
|
|
150
152
|
* - policy: candidate selection rule set.
|
|
151
153
|
* - target: used/window ratio an applied event batches down to.
|
|
152
154
|
* - protectLastTurns: recent user turns whose observations are never evicted.
|
|
153
|
-
* - minEvictableTokens:
|
|
154
|
-
*
|
|
155
|
+
* - minEvictableTokens: protect smaller results from low-yield eviction.
|
|
156
|
+
* The engine separately rejects replacements that save no tokens.
|
|
155
157
|
*/
|
|
156
158
|
export type WorkingSetPolicyId = "age-horizon" | "structural-v1";
|
|
157
159
|
|
|
@@ -254,6 +256,8 @@ export type FullscreenScrollbar = "hidden" | "auto" | "always";
|
|
|
254
256
|
export type SmoothStreaming = "off" | "auto" | "on";
|
|
255
257
|
|
|
256
258
|
export interface InterfaceSettings {
|
|
259
|
+
/** Interactive project-work guidance and contextual footer tips. */
|
|
260
|
+
demo: boolean;
|
|
257
261
|
terminalProgress: boolean;
|
|
258
262
|
/** Output style: Compact, Standard, or Detailed bounded previews. */
|
|
259
263
|
outputDetail: OutputStyle;
|
|
@@ -299,6 +303,7 @@ export interface ModelSelectorSettings {
|
|
|
299
303
|
}
|
|
300
304
|
|
|
301
305
|
export interface ProjectResourcesSettings {
|
|
306
|
+
/** Admit explicitly imported foreign skills/prompts at either scope; loose compatibility roots stay inactive. */
|
|
302
307
|
trustProjectImports: boolean;
|
|
303
308
|
}
|
|
304
309
|
|
|
@@ -388,11 +393,21 @@ export interface FleetNodeSettings {
|
|
|
388
393
|
residency?: FleetNodeResidency;
|
|
389
394
|
}
|
|
390
395
|
|
|
396
|
+
export interface FleetWorktreesSettings {
|
|
397
|
+
/**
|
|
398
|
+
* Where a `worktree: true` task's working tree is created, for local
|
|
399
|
+
* placement: `disk` (under the project root), `tmpfs`, `auto` (tmpfs when
|
|
400
|
+
* one exists and has room), or an absolute path.
|
|
401
|
+
*/
|
|
402
|
+
root: string;
|
|
403
|
+
}
|
|
404
|
+
|
|
391
405
|
export interface FleetSettings extends FleetRouteSettings {
|
|
392
406
|
nodes: FleetNodeSettings[];
|
|
393
407
|
adaptiveRouting: AdaptiveRoutingSettings;
|
|
394
408
|
permissions: FleetPermissionsSettings;
|
|
395
409
|
concurrency: "auto" | number;
|
|
410
|
+
worktrees: FleetWorktreesSettings;
|
|
396
411
|
retry: FleetRetrySettings;
|
|
397
412
|
limits: FleetLimitsSettings;
|
|
398
413
|
history: FleetHistorySettings;
|
|
@@ -514,8 +529,9 @@ export const DEFAULT_SETTINGS = {
|
|
|
514
529
|
mode: "deny" as WorkerPermissionMode,
|
|
515
530
|
escalation: { timeoutMs: 120000, fallback: "deny" } as WorkerEscalationSettings,
|
|
516
531
|
},
|
|
517
|
-
concurrency:
|
|
518
|
-
|
|
532
|
+
concurrency: "auto" as "auto" | number,
|
|
533
|
+
worktrees: { root: "disk" },
|
|
534
|
+
retry: { maxRetries: 2, routeCooldownMs: 15000, breakerThreshold: 1 },
|
|
519
535
|
limits: {
|
|
520
536
|
toolCallsPerRun: GUARDRAIL_DEFAULTS.workerToolCallCap,
|
|
521
537
|
internalRunTimeoutMs: GUARDRAIL_DEFAULTS.internalDispatchTimeoutMs,
|
|
@@ -550,6 +566,7 @@ export const DEFAULT_SETTINGS = {
|
|
|
550
566
|
review: { enabled: false } as ReviewSettings,
|
|
551
567
|
} as SafetySettings,
|
|
552
568
|
interface: {
|
|
569
|
+
demo: true,
|
|
553
570
|
terminalProgress: false,
|
|
554
571
|
outputDetail: "standard",
|
|
555
572
|
mode: "regular",
|
|
@@ -648,10 +665,13 @@ fleet:
|
|
|
648
665
|
escalation:
|
|
649
666
|
timeoutMs: 120000
|
|
650
667
|
fallback: deny
|
|
651
|
-
concurrency:
|
|
668
|
+
concurrency: auto
|
|
669
|
+
worktrees:
|
|
670
|
+
root: disk
|
|
652
671
|
retry:
|
|
653
672
|
maxRetries: 2
|
|
654
673
|
routeCooldownMs: 15000
|
|
674
|
+
breakerThreshold: 1
|
|
655
675
|
limits:
|
|
656
676
|
toolCallsPerRun: 150
|
|
657
677
|
internalRunTimeoutMs: 900000
|
|
@@ -690,6 +710,8 @@ safety:
|
|
|
690
710
|
enabled: false
|
|
691
711
|
|
|
692
712
|
interface:
|
|
713
|
+
# Capability guidance during project work; disable for a quiet experience.
|
|
714
|
+
demo: true
|
|
693
715
|
outputDetail: standard
|
|
694
716
|
smoothStreaming: auto
|
|
695
717
|
mode: regular
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
type DiagnosticSink = (text: string, level: "warning" | "error") => void;
|
|
2
|
+
|
|
3
|
+
const sinks = new Set<DiagnosticSink>();
|
|
4
|
+
|
|
5
|
+
export function hasDiagnosticSink(): boolean {
|
|
6
|
+
return sinks.size > 0;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
/** The active terminal owner supplies a renderer; headless processes keep stderr. */
|
|
10
|
+
export function installDiagnosticSink(sink: DiagnosticSink): () => void {
|
|
11
|
+
sinks.add(sink);
|
|
12
|
+
return () => {
|
|
13
|
+
sinks.delete(sink);
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export function writeDiagnostic(text: string, level: "warning" | "error" = "warning"): void {
|
|
18
|
+
try {
|
|
19
|
+
const sink = [...sinks].at(-1);
|
|
20
|
+
if (sink) sink(text, level);
|
|
21
|
+
else process.stderr.write(text.endsWith("\n") ? text : `${text}\n`);
|
|
22
|
+
} catch {
|
|
23
|
+
// Never turn a reporting failure into another diagnostic or a raw TUI write.
|
|
24
|
+
}
|
|
25
|
+
}
|
package/src/core/event-bus.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { BusChannel, BusPayloadMap } from "./bus-events.js";
|
|
2
|
+
import { writeDiagnostic } from "./diagnostics.js";
|
|
2
3
|
|
|
3
4
|
/**
|
|
4
5
|
* Listener invoked by {@link SafeEventBus.emit}.
|
|
@@ -40,7 +41,7 @@ type StoredListener = (payload: never) => void | Promise<void>;
|
|
|
40
41
|
|
|
41
42
|
function reportListenerError(channel: string, error: unknown): void {
|
|
42
43
|
const message = error instanceof Error ? (error.stack ?? error.message) : String(error);
|
|
43
|
-
|
|
44
|
+
writeDiagnostic(`[clio-coder:event-bus] Listener crashed on ${channel}: ${message}`, "error");
|
|
44
45
|
}
|
|
45
46
|
|
|
46
47
|
export function createSafeEventBus(): SafeEventBus {
|
|
@@ -24,22 +24,29 @@ export type GatewayRoutingObservation = LiteLLMGatewayRoutingObservation;
|
|
|
24
24
|
|
|
25
25
|
/**
|
|
26
26
|
* Preserve the provider's diagnostic while making Clio's failure policy
|
|
27
|
-
* explicit and actionable.
|
|
28
|
-
*
|
|
29
|
-
*
|
|
27
|
+
* explicit and actionable. A dropped client connection before any output can
|
|
28
|
+
* use the visible retry ladder on the same route. Gateway/backend errors stay
|
|
29
|
+
* terminal: a named route never authorizes substitution of another model.
|
|
30
30
|
*/
|
|
31
31
|
export function liteLLMRouteFailureMessage(
|
|
32
32
|
errorMessage: string | null | undefined,
|
|
33
33
|
targetId: string,
|
|
34
34
|
modelId: string,
|
|
35
|
+
hasPartialResponse = false,
|
|
35
36
|
): string {
|
|
36
37
|
const providerMessage = errorMessage?.trim() || "LiteLLM request failed.";
|
|
38
|
+
if (!hasPartialResponse && isLiteLLMConnectionFailure(providerMessage)) return providerMessage;
|
|
37
39
|
const advice =
|
|
38
40
|
`LiteLLM route '${modelId}' on target '${targetId}' failed. ` +
|
|
39
41
|
"Clio did not retry or substitute another model; select a different route with /model, then resend.";
|
|
40
42
|
return providerMessage.includes(advice) ? providerMessage : `${providerMessage}\n\n${advice}`;
|
|
41
43
|
}
|
|
42
44
|
|
|
45
|
+
/** OpenAI SDK transport failure, distinct from an HTTP gateway/backend error. */
|
|
46
|
+
export function isLiteLLMConnectionFailure(message: string | null | undefined): boolean {
|
|
47
|
+
return message?.trim() === "Connection error.";
|
|
48
|
+
}
|
|
49
|
+
|
|
43
50
|
interface HeaderReader {
|
|
44
51
|
get(name: string): string | null;
|
|
45
52
|
}
|
|
@@ -18,6 +18,7 @@ import {
|
|
|
18
18
|
type CommitAttributionEvidence,
|
|
19
19
|
decisionTrailerRefs,
|
|
20
20
|
} from "./commit-attribution.js";
|
|
21
|
+
import { writeDiagnostic } from "./diagnostics.js";
|
|
21
22
|
import { clioStateDir } from "./xdg.js";
|
|
22
23
|
|
|
23
24
|
/** Effective `attribution.gitCommits` for child-process seams. Internal state, not an operator override. */
|
|
@@ -96,7 +97,7 @@ export interface ManagedCommitAttributionEnvironment {
|
|
|
96
97
|
export function reportCommitAttributionDiagnostic(diagnostic: string | null): void {
|
|
97
98
|
if (diagnostic === null || reportedDiagnostics.has(diagnostic)) return;
|
|
98
99
|
reportedDiagnostics.add(diagnostic);
|
|
99
|
-
|
|
100
|
+
writeDiagnostic(`[clio-coder:attribution] ${diagnostic}\n`);
|
|
100
101
|
}
|
|
101
102
|
|
|
102
103
|
export function setGitCommitAttributionEnabled(enabled: boolean): void {
|