@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
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import { tmpdir } from "node:os";
|
|
2
|
+
import { runCommandVector } from "../core/safe-exec.js";
|
|
3
|
+
import { resolveClioDirs } from "../core/xdg.js";
|
|
4
|
+
import { resolveMcpServers } from "../domains/gateway/mcp/index.js";
|
|
5
|
+
import { resolveOnPath } from "../domains/interop/detect.js";
|
|
6
|
+
import type { DoctorFinding } from "../domains/lifecycle/doctor.js";
|
|
7
|
+
|
|
8
|
+
const PROBE_TIMEOUT_MS = 5_000;
|
|
9
|
+
const PROBE_MAX_OUTPUT_BYTES = 16 * 1024;
|
|
10
|
+
const GUIDE = "docs/guide/slurm.md";
|
|
11
|
+
|
|
12
|
+
export interface SlurmMcpOptions {
|
|
13
|
+
workspaceRoot?: string;
|
|
14
|
+
/** Skip the declaration lookup: reading it would resolve the config root. */
|
|
15
|
+
untouched?: boolean;
|
|
16
|
+
timeoutMs?: number;
|
|
17
|
+
/** Override for the user config directory (tests). */
|
|
18
|
+
configDir?: string;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
async function run(binary: string, args: string[], timeoutMs: number): Promise<{ ok: boolean; text: string }> {
|
|
22
|
+
const cwd = tmpdir();
|
|
23
|
+
const result = await runCommandVector(binary, args, {
|
|
24
|
+
cwd,
|
|
25
|
+
workspaceRoot: cwd,
|
|
26
|
+
timeoutMs,
|
|
27
|
+
maxOutputBytes: PROBE_MAX_OUTPUT_BYTES,
|
|
28
|
+
});
|
|
29
|
+
return { ok: !result.timedOut && result.exitCode === 0, text: `${result.stdout}\n${result.stderr}` };
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/** `clio-kit` has shipped without `--version`; the server listing still says whether Slurm is in this build. */
|
|
33
|
+
async function clioKitDetail(binary: string, timeoutMs: number): Promise<string> {
|
|
34
|
+
const version = await run(binary, ["--version"], timeoutMs);
|
|
35
|
+
const versionLine = version.ok
|
|
36
|
+
? (version.text
|
|
37
|
+
.split(/\r?\n/)
|
|
38
|
+
.map((line) => line.trim())
|
|
39
|
+
.find((line) => /\d+\.\d+/.test(line)) ?? "version not reported")
|
|
40
|
+
: "version not reported (no --version)";
|
|
41
|
+
const listing = await run(binary, ["mcp-servers"], timeoutMs);
|
|
42
|
+
const ships = listing.ok
|
|
43
|
+
? /^\s*-?\s*slurm\s*$/mu.test(listing.text)
|
|
44
|
+
? "ships the slurm server"
|
|
45
|
+
: "does not list a slurm server"
|
|
46
|
+
: "its server listing could not be read";
|
|
47
|
+
return `${binary}: ${versionLine}; ${ships}`;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
function isSlurmServer(server: { command: string; args: ReadonlyArray<string> }): boolean {
|
|
51
|
+
const words = [server.command, ...server.args];
|
|
52
|
+
const at = words.indexOf("mcp-server");
|
|
53
|
+
return at !== -1 && words[at + 1] === "slurm" && /(^|\/)clio-kit$/u.test(words[at - 1] ?? server.command);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Slurm through the clio-kit MCP server: whether `clio-kit` is on PATH, whether
|
|
58
|
+
* an `mcp.yaml` declares its Slurm server, and whether the scheduler clients
|
|
59
|
+
* exist. Most installs use none of this, so nothing here is ever a failure,
|
|
60
|
+
* and an install with none of the three gets one informational row.
|
|
61
|
+
*/
|
|
62
|
+
export async function slurmMcpFindings(options: SlurmMcpOptions = {}): Promise<DoctorFinding[]> {
|
|
63
|
+
const timeoutMs = options.timeoutMs ?? PROBE_TIMEOUT_MS;
|
|
64
|
+
const clioKit = resolveOnPath(["clio-kit"]);
|
|
65
|
+
const sbatch = resolveOnPath(["sbatch"]);
|
|
66
|
+
const squeue = resolveOnPath(["squeue"]);
|
|
67
|
+
const declared =
|
|
68
|
+
options.untouched === true
|
|
69
|
+
? []
|
|
70
|
+
: resolveMcpServers({
|
|
71
|
+
cwd: options.workspaceRoot ?? process.cwd(),
|
|
72
|
+
configDir: options.configDir ?? resolveClioDirs().config,
|
|
73
|
+
}).servers.filter(isSlurmServer);
|
|
74
|
+
|
|
75
|
+
const kitPresent = clioKit.presence === "present" && clioKit.binary !== undefined;
|
|
76
|
+
const schedulerPresent = sbatch.presence === "present" || squeue.presence === "present";
|
|
77
|
+
if (!kitPresent && declared.length === 0 && !schedulerPresent) {
|
|
78
|
+
return [
|
|
79
|
+
{
|
|
80
|
+
ok: true,
|
|
81
|
+
level: "info",
|
|
82
|
+
name: "slurm mcp",
|
|
83
|
+
detail: `not set up: clio-kit, sbatch, and squeue are not on PATH and no mcp.yaml declares the Slurm server; see ${GUIDE}`,
|
|
84
|
+
},
|
|
85
|
+
];
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
const findings: DoctorFinding[] = [];
|
|
89
|
+
findings.push(
|
|
90
|
+
kitPresent
|
|
91
|
+
? { ok: true, level: "ok", name: "slurm clio-kit", detail: await clioKitDetail(clioKit.binary as string, timeoutMs) }
|
|
92
|
+
: { ok: true, level: "info", name: "slurm clio-kit", detail: `not on PATH; see ${GUIDE}` },
|
|
93
|
+
);
|
|
94
|
+
findings.push(
|
|
95
|
+
declared.length > 0
|
|
96
|
+
? {
|
|
97
|
+
ok: true,
|
|
98
|
+
level: declared.every((server) => server.trust.status === "trusted") ? "ok" : "info",
|
|
99
|
+
name: "slurm mcp server",
|
|
100
|
+
detail: declared
|
|
101
|
+
.map((server) => {
|
|
102
|
+
const trust =
|
|
103
|
+
server.trust.status === "trusted"
|
|
104
|
+
? `trusted, action class ${server.trust.actionClass}`
|
|
105
|
+
: `${server.trust.status}; run clio-coder mcp trust ${server.id}`;
|
|
106
|
+
return `${server.id} declared in ${server.path} (${server.scope}, ${trust})`;
|
|
107
|
+
})
|
|
108
|
+
.join("; "),
|
|
109
|
+
}
|
|
110
|
+
: {
|
|
111
|
+
ok: true,
|
|
112
|
+
level: "info",
|
|
113
|
+
name: "slurm mcp server",
|
|
114
|
+
detail: `no mcp.yaml entry runs clio-kit mcp-server slurm; see ${GUIDE}`,
|
|
115
|
+
},
|
|
116
|
+
);
|
|
117
|
+
const clients = [
|
|
118
|
+
["sbatch", sbatch],
|
|
119
|
+
["squeue", squeue],
|
|
120
|
+
] as const;
|
|
121
|
+
findings.push({
|
|
122
|
+
ok: true,
|
|
123
|
+
level: schedulerPresent ? "ok" : "info",
|
|
124
|
+
name: "slurm scheduler",
|
|
125
|
+
detail: clients
|
|
126
|
+
.map(([name, found]) => `${name} ${found.presence === "present" ? found.binary : "not on PATH"}`)
|
|
127
|
+
.join("; "),
|
|
128
|
+
});
|
|
129
|
+
return findings;
|
|
130
|
+
}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { readSettings } from "../core/config.js";
|
|
2
|
+
import { rawDurationMs } from "../core/timers.js";
|
|
3
|
+
import type { DoctorFinding } from "../domains/lifecycle/doctor.js";
|
|
4
|
+
import { gitCheckoutRoot, listPreservedTaskWorktrees, type PreservedTaskWorktree } from "../tools/task-worktree.js";
|
|
5
|
+
import {
|
|
6
|
+
allowedWorktreeParents,
|
|
7
|
+
HOST_WORKTREE_ROOT_FACTS,
|
|
8
|
+
resolveWorktreeRoot,
|
|
9
|
+
type WorktreeRootFacts,
|
|
10
|
+
} from "../tools/worktree-root.js";
|
|
11
|
+
|
|
12
|
+
function ageLabel(createdAt: string | null, now: number): string {
|
|
13
|
+
const created = createdAt === null ? Number.NaN : Date.parse(createdAt);
|
|
14
|
+
if (!Number.isFinite(created)) return "age unknown";
|
|
15
|
+
// A clock that stepped backwards renders as new, not as a negative age.
|
|
16
|
+
const minutes = Math.floor(Math.max(0, rawDurationMs(created, now)) / 60_000);
|
|
17
|
+
if (minutes < 60) return `${minutes}m old`;
|
|
18
|
+
const hours = Math.floor(minutes / 60);
|
|
19
|
+
return hours < 48 ? `${hours}h old` : `${Math.floor(hours / 24)}d old`;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
function describe(entry: PreservedTaskWorktree, now: number): string {
|
|
23
|
+
return (
|
|
24
|
+
`${entry.branch} (${entry.state}, ${ageLabel(entry.createdAt, now)}, ${entry.reason}): ` +
|
|
25
|
+
`inspect with git log ${entry.base}..${entry.branch}; drop with git worktree remove --force ${entry.path} && ` +
|
|
26
|
+
`git branch -D ${entry.branch} && rm ${entry.claimPath}`
|
|
27
|
+
);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export interface TaskWorktreeFindingOptions {
|
|
31
|
+
now?: number;
|
|
32
|
+
/** `fleet.worktrees.root`; read from settings when absent. */
|
|
33
|
+
rootSetting?: string;
|
|
34
|
+
remoteEligible?: boolean;
|
|
35
|
+
facts?: WorktreeRootFacts;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
function configuredRoot(): { setting: string; remoteEligible: boolean } {
|
|
39
|
+
try {
|
|
40
|
+
const fleet = readSettings().fleet;
|
|
41
|
+
return { setting: fleet.worktrees.root, remoteEligible: fleet.nodes.length > 0 };
|
|
42
|
+
} catch {
|
|
43
|
+
return { setting: "disk", remoteEligible: false };
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
function formatGiB(bytes: number | null): string {
|
|
48
|
+
return bytes === null ? "free space unknown" : `${(bytes / 1024 ** 3).toFixed(1)} GiB free`;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Task worktrees (`worktree: true` dispatch): where the next one would be
|
|
53
|
+
* created, and every one that outlived its run. Doctor only reads: it never
|
|
54
|
+
* removes one, because each may hold the only copy of a worker's changes.
|
|
55
|
+
*/
|
|
56
|
+
export function taskWorktreeFindings(workspaceRoot: string, options: TaskWorktreeFindingOptions = {}): DoctorFinding[] {
|
|
57
|
+
const root = gitCheckoutRoot(workspaceRoot);
|
|
58
|
+
if (root === null) return [];
|
|
59
|
+
const now = options.now ?? Date.now();
|
|
60
|
+
const facts = options.facts ?? HOST_WORKTREE_ROOT_FACTS;
|
|
61
|
+
const configured = options.rootSetting === undefined ? configuredRoot() : null;
|
|
62
|
+
const setting = options.rootSetting ?? configured?.setting ?? "disk";
|
|
63
|
+
const remoteEligible = options.remoteEligible ?? configured?.remoteEligible ?? false;
|
|
64
|
+
const resolved = resolveWorktreeRoot({ setting, projectRoot: root, remoteEligible, facts });
|
|
65
|
+
const measured = resolved.base ?? root;
|
|
66
|
+
const rootFinding: DoctorFinding = {
|
|
67
|
+
ok: true,
|
|
68
|
+
level: resolved.notice === undefined ? "ok" : "warn",
|
|
69
|
+
name: "task worktree root",
|
|
70
|
+
detail:
|
|
71
|
+
`fleet.worktrees.root ${setting}: ${resolved.parent} (${facts.filesystemType(measured) ?? "unknown filesystem"}, ` +
|
|
72
|
+
`${formatGiB(facts.freeBytes(measured))})${resolved.notice === undefined ? "" : `; ${resolved.notice}`}`,
|
|
73
|
+
};
|
|
74
|
+
const preserved = listPreservedTaskWorktrees(root, allowedWorktreeParents(setting, root, facts));
|
|
75
|
+
if (preserved.length === 0) {
|
|
76
|
+
return [rootFinding, { ok: true, name: "task worktrees", detail: "none preserved" }];
|
|
77
|
+
}
|
|
78
|
+
return [
|
|
79
|
+
rootFinding,
|
|
80
|
+
...preserved.map((entry) => ({
|
|
81
|
+
ok: true,
|
|
82
|
+
// A run keeps its worktree on purpose; a crash leaving work behind wants a look.
|
|
83
|
+
level: entry.state === "settled" ? ("info" as const) : ("warn" as const),
|
|
84
|
+
name: `task worktree ${entry.runId}`,
|
|
85
|
+
detail: describe(entry, now),
|
|
86
|
+
})),
|
|
87
|
+
];
|
|
88
|
+
}
|
package/src/cli/doctor.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { readSettings } from "../core/config.js";
|
|
2
2
|
import {
|
|
3
|
+
type DoctorFinding,
|
|
3
4
|
formatDoctorReport,
|
|
4
5
|
isUninitializedHome,
|
|
5
6
|
runDoctor,
|
|
@@ -8,14 +9,19 @@ import {
|
|
|
8
9
|
runDoctorModelChecks,
|
|
9
10
|
runDoctorRuntimeChecks,
|
|
10
11
|
} from "../domains/lifecycle/doctor.js";
|
|
12
|
+
import type { ProvidersContract } from "../domains/providers/contract.js";
|
|
13
|
+
import { type AutonomyLevel, DEFAULT_AUTONOMY_LEVEL } from "../domains/safety/autonomy.js";
|
|
14
|
+
import { hpcToolchainFindings } from "./doctor-hpc.js";
|
|
11
15
|
import { namingFootprintFindings } from "./doctor-naming.js";
|
|
12
16
|
import { panesFindings } from "./doctor-panes.js";
|
|
17
|
+
import { slurmMcpFindings } from "./doctor-slurm.js";
|
|
13
18
|
import { stateStorageFinding } from "./doctor-state-size.js";
|
|
19
|
+
import { taskWorktreeFindings } from "./doctor-task-worktrees.js";
|
|
14
20
|
import { toolchainFindings } from "./doctor-toolchain.js";
|
|
15
21
|
import { validationContractFinding } from "./doctor-validation-contract.js";
|
|
16
22
|
import { printError } from "./shared.js";
|
|
17
23
|
|
|
18
|
-
const HELP = `clio-coder doctor [--fix] [--json]
|
|
24
|
+
const HELP = `clio-coder doctor [--fix] [--json] [--deep [--tools-timeout <seconds>]]
|
|
19
25
|
|
|
20
26
|
Diagnose Clio Coder state without creating files. On a home Clio has never
|
|
21
27
|
written to, doctor says so in one row and exits 0. Use --fix to repair structure:
|
|
@@ -24,21 +30,86 @@ missing directories, missing template files, and credential permissions.
|
|
|
24
30
|
dispatch for the current project root; plain doctor only reports it.
|
|
25
31
|
Settings are validated directly against the current schema.
|
|
26
32
|
Pass --json to emit a machine-readable report on stdout.
|
|
33
|
+
--deep adds a live tool-call probe on every configured target, which can load
|
|
34
|
+
a cold local model and releases it afterwards, and a dry run of the workspace
|
|
35
|
+
validation contract that resolves each validator command and reports whether
|
|
36
|
+
it would run without an approval ask at the configured autonomy. The dry run
|
|
37
|
+
executes nothing. --tools-timeout bounds each tool probe (default 120).
|
|
27
38
|
`;
|
|
28
39
|
|
|
29
|
-
export
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
40
|
+
export interface DoctorDeepOptions {
|
|
41
|
+
/** The providers contract to probe with; the CLI loads its own when absent. */
|
|
42
|
+
providers?: ProvidersContract;
|
|
43
|
+
/** Tool-probe generation timeout in ms. */
|
|
44
|
+
toolsTimeoutMs?: number;
|
|
45
|
+
/** Autonomy the dry run judges against; the configured level when absent. */
|
|
46
|
+
autonomy?: AutonomyLevel;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export interface DoctorCollectOptions {
|
|
50
|
+
fix?: boolean;
|
|
51
|
+
/** Run the deep checks as well. */
|
|
52
|
+
deep?: DoctorDeepOptions | false;
|
|
53
|
+
workspaceRoot?: string;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
function configuredAutonomy(): AutonomyLevel {
|
|
57
|
+
try {
|
|
58
|
+
return readSettings().safety.autonomy;
|
|
59
|
+
} catch {
|
|
60
|
+
return DEFAULT_AUTONOMY_LEVEL;
|
|
33
61
|
}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
async function deepFindings(
|
|
65
|
+
untouched: boolean,
|
|
66
|
+
workspaceRoot: string,
|
|
67
|
+
deep: DoctorDeepOptions,
|
|
68
|
+
): Promise<DoctorFinding[]> {
|
|
69
|
+
// Loaded on demand, as the model sweep loads the runtimes: plain doctor
|
|
70
|
+
// never pays for the providers domain or the policy engine.
|
|
71
|
+
const { contractDryRunFindings, deepToolProbeFindings } = await import("./doctor-deep.js");
|
|
72
|
+
const probeOptions = deep.toolsTimeoutMs !== undefined ? { toolsTimeoutMs: deep.toolsTimeoutMs } : {};
|
|
73
|
+
let toolRows: DoctorFinding[] = [];
|
|
74
|
+
if (deep.providers) {
|
|
75
|
+
toolRows = await deepToolProbeFindings(deep.providers, probeOptions);
|
|
76
|
+
} else if (!untouched) {
|
|
77
|
+
// The providers domain is loaded only when there is a target to probe:
|
|
78
|
+
// loading it on a home with no targets would cost a domain boot for
|
|
79
|
+
// nothing, and on an untouched home there are no settings to read.
|
|
80
|
+
let targetCount = 0;
|
|
81
|
+
try {
|
|
82
|
+
targetCount = readSettings().targets.length;
|
|
83
|
+
} catch {
|
|
84
|
+
// The settings row already reports an unreadable document.
|
|
85
|
+
}
|
|
86
|
+
if (targetCount > 0) {
|
|
87
|
+
const [{ loadDomains }, { ConfigDomainModule }, { ProvidersDomainModule }] = await Promise.all([
|
|
88
|
+
import("../core/domain-loader.js"),
|
|
89
|
+
import("../domains/config/index.js"),
|
|
90
|
+
import("../domains/providers/index.js"),
|
|
91
|
+
]);
|
|
92
|
+
const loaded = await loadDomains([ConfigDomainModule, ProvidersDomainModule]);
|
|
93
|
+
try {
|
|
94
|
+
const providers = loaded.getContract<ProvidersContract>("providers");
|
|
95
|
+
if (providers) toolRows = await deepToolProbeFindings(providers, probeOptions);
|
|
96
|
+
} finally {
|
|
97
|
+
await loaded.stop();
|
|
98
|
+
}
|
|
99
|
+
}
|
|
41
100
|
}
|
|
101
|
+
const contractRows = contractDryRunFindings({ workspaceRoot, autonomy: deep.autonomy ?? configuredAutonomy() });
|
|
102
|
+
return [...toolRows, ...contractRows];
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Every doctor check in report order. The CLI prints these; the TUI's
|
|
107
|
+
* `/doctor` renders the same list in-session and passes its own providers
|
|
108
|
+
* contract so the deep probe runs against the session's targets.
|
|
109
|
+
*/
|
|
110
|
+
export async function collectDoctorFindings(options: DoctorCollectOptions = {}): Promise<DoctorFinding[]> {
|
|
111
|
+
const fix = options.fix === true;
|
|
112
|
+
const workspaceRoot = options.workspaceRoot ?? process.cwd();
|
|
42
113
|
// Decided before runDoctor so a --fix run, which initializes the home, still
|
|
43
114
|
// gets every check on the home it just built.
|
|
44
115
|
const untouched = !fix && isUninitializedHome();
|
|
@@ -65,11 +136,18 @@ export async function runDoctorCommand(args: ReadonlyArray<string> = []): Promis
|
|
|
65
136
|
const interopChecks = untouched ? [] : await runDoctorInteropChecks();
|
|
66
137
|
// Fleet preflight probes each configured node over SSH and persists the
|
|
67
138
|
// per-node eligibility verdicts dispatch placement enforces.
|
|
68
|
-
const fleetChecks = untouched ? [] : await runDoctorFleetChecks(
|
|
139
|
+
const fleetChecks = untouched ? [] : await runDoctorFleetChecks(workspaceRoot, { fix });
|
|
69
140
|
// Resolution reads PATH and the vendor root and creates nothing, but on an
|
|
70
141
|
// untouched home there is no vendor root to look at and the answer would be
|
|
71
142
|
// "none" for every row regardless, so the sweep stays with the others.
|
|
72
143
|
const toolChecks = untouched ? [] : toolchainFindings({ panesEnabled, filesEnabled });
|
|
144
|
+
// Compilers, MPI, build systems, and the scheduler. Each probe resolves PATH
|
|
145
|
+
// and runs a bounded `--version` in a scratch directory, so it creates
|
|
146
|
+
// nothing and runs on an untouched home too.
|
|
147
|
+
const hpcChecks = await hpcToolchainFindings({ workspaceRoot });
|
|
148
|
+
// Slurm through the clio-kit MCP server. PATH lookups and two bounded
|
|
149
|
+
// clio-kit spawns; the mcp.yaml lookup is skipped on an untouched home.
|
|
150
|
+
const slurmChecks = await slurmMcpFindings({ workspaceRoot, untouched });
|
|
73
151
|
// The pane sweep pings a socket and reads PATH; it creates nothing except the
|
|
74
152
|
// journal directory it is asked about, which is inside the state root doctor
|
|
75
153
|
// has already agreed not to build on an untouched home.
|
|
@@ -77,8 +155,12 @@ export async function runDoctorCommand(args: ReadonlyArray<string> = []): Promis
|
|
|
77
155
|
const namingChecks = namingFootprintFindings({ fix, yaziEnabled: filesEnabled });
|
|
78
156
|
// The validation contract lives in the workspace, not the home, so it is
|
|
79
157
|
// checked on every run: a broken contract is why rigor stayed normal.
|
|
80
|
-
const contractChecks = [validationContractFinding()];
|
|
81
|
-
|
|
158
|
+
const contractChecks = [validationContractFinding(workspaceRoot)];
|
|
159
|
+
// Task worktrees live in the workspace too. The sweep reads claims and asks
|
|
160
|
+
// git; it removes nothing.
|
|
161
|
+
const worktreeChecks = taskWorktreeFindings(workspaceRoot);
|
|
162
|
+
const deepChecks = options.deep ? await deepFindings(untouched, workspaceRoot, options.deep) : [];
|
|
163
|
+
return [
|
|
82
164
|
...findings,
|
|
83
165
|
...storageChecks,
|
|
84
166
|
...runtimeChecks,
|
|
@@ -86,13 +168,80 @@ export async function runDoctorCommand(args: ReadonlyArray<string> = []): Promis
|
|
|
86
168
|
...interopChecks,
|
|
87
169
|
...fleetChecks,
|
|
88
170
|
...toolChecks,
|
|
171
|
+
...hpcChecks,
|
|
172
|
+
...slurmChecks,
|
|
89
173
|
...paneChecks,
|
|
90
174
|
...namingChecks,
|
|
91
175
|
...contractChecks,
|
|
176
|
+
...worktreeChecks,
|
|
177
|
+
...deepChecks,
|
|
92
178
|
];
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
/**
|
|
182
|
+
* In-session diagnostics: structured findings for the TUI card, plus the plain
|
|
183
|
+
* report for hosts without a card renderer, at the level of the worst row.
|
|
184
|
+
*/
|
|
185
|
+
export function doctorNotice(findings: ReadonlyArray<DoctorFinding>): {
|
|
186
|
+
level: "success" | "warn" | "error";
|
|
187
|
+
text: string;
|
|
188
|
+
findings: ReadonlyArray<DoctorFinding>;
|
|
189
|
+
} {
|
|
190
|
+
const errors = findings.filter((f) => !f.ok).length;
|
|
191
|
+
const warnings = findings.filter((f) => f.ok && f.level === "warn").length;
|
|
192
|
+
const level = errors > 0 ? "error" : warnings > 0 ? "warn" : "success";
|
|
193
|
+
const head = `doctor: ${findings.length} checks, ${errors} error(s), ${warnings} warning(s)`;
|
|
194
|
+
return { level, text: `${head}\n${formatDoctorReport([...findings])}`, findings };
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
interface DoctorArgs {
|
|
198
|
+
fix: boolean;
|
|
199
|
+
json: boolean;
|
|
200
|
+
deep: boolean;
|
|
201
|
+
toolsTimeoutMs?: number;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
function parseDoctorArgs(args: ReadonlyArray<string>): DoctorArgs {
|
|
205
|
+
const parsed: DoctorArgs = { fix: false, json: false, deep: false };
|
|
206
|
+
for (let i = 0; i < args.length; i += 1) {
|
|
207
|
+
const arg = args[i];
|
|
208
|
+
if (arg === "--fix") parsed.fix = true;
|
|
209
|
+
else if (arg === "--json") parsed.json = true;
|
|
210
|
+
else if (arg === "--deep") parsed.deep = true;
|
|
211
|
+
else if (arg === "--tools-timeout") {
|
|
212
|
+
const value = args[i + 1];
|
|
213
|
+
const seconds = value === undefined ? Number.NaN : Number(value);
|
|
214
|
+
if (!Number.isFinite(seconds) || seconds <= 0)
|
|
215
|
+
throw new Error("--tools-timeout requires a positive number of seconds");
|
|
216
|
+
parsed.toolsTimeoutMs = Math.round(seconds * 1000);
|
|
217
|
+
i += 1;
|
|
218
|
+
} else throw new Error(`unknown flag: ${arg}`);
|
|
219
|
+
}
|
|
220
|
+
if (parsed.toolsTimeoutMs !== undefined && !parsed.deep) throw new Error("--tools-timeout requires --deep");
|
|
221
|
+
return parsed;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
export async function runDoctorCommand(args: ReadonlyArray<string> = []): Promise<number> {
|
|
225
|
+
if (args.includes("--help") || args.includes("-h")) {
|
|
226
|
+
process.stdout.write(HELP);
|
|
227
|
+
return 0;
|
|
228
|
+
}
|
|
229
|
+
let parsed: DoctorArgs;
|
|
230
|
+
try {
|
|
231
|
+
parsed = parseDoctorArgs(args);
|
|
232
|
+
} catch (error) {
|
|
233
|
+
printError(error instanceof Error ? error.message : String(error));
|
|
234
|
+
process.stderr.write(HELP);
|
|
235
|
+
return 2;
|
|
236
|
+
}
|
|
237
|
+
const { fix, json } = parsed;
|
|
238
|
+
const all = await collectDoctorFindings({
|
|
239
|
+
fix,
|
|
240
|
+
deep: parsed.deep ? (parsed.toolsTimeoutMs !== undefined ? { toolsTimeoutMs: parsed.toolsTimeoutMs } : {}) : false,
|
|
241
|
+
});
|
|
93
242
|
const ok = all.every((f) => f.ok);
|
|
94
243
|
if (json) {
|
|
95
|
-
process.stdout.write(`${JSON.stringify({ ok, fix, findings: all }, null, 2)}\n`);
|
|
244
|
+
process.stdout.write(`${JSON.stringify({ ok, fix, deep: parsed.deep, findings: all }, null, 2)}\n`);
|
|
96
245
|
} else {
|
|
97
246
|
process.stdout.write(`${formatDoctorReport(all)}\n`);
|
|
98
247
|
}
|
package/src/cli/fleet-verify.ts
CHANGED
|
@@ -9,8 +9,9 @@
|
|
|
9
9
|
* rather than inside it.
|
|
10
10
|
*
|
|
11
11
|
* Like `evidence inspect --json` it takes an identifier, because an operator
|
|
12
|
-
* names the run.
|
|
13
|
-
*
|
|
12
|
+
* names the run. The identifier is validated for shape here; a GUI host that
|
|
13
|
+
* echoes operator-supplied ids owes its own served-id window on top of that,
|
|
14
|
+
* because shape alone does not prove the id was ever served.
|
|
14
15
|
*/
|
|
15
16
|
|
|
16
17
|
import { readFileSync } from "node:fs";
|
package/src/cli/gui.ts
ADDED
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { existsSync, lstatSync } from "node:fs";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
import { pathToFileURL } from "node:url";
|
|
4
|
+
import { resolvePackageRoot } from "../core/package-root.js";
|
|
5
|
+
import { printError } from "./argv.js";
|
|
6
|
+
|
|
7
|
+
const HELP = `Clio Coder graphical application
|
|
8
|
+
|
|
9
|
+
Usage:
|
|
10
|
+
clio-coder gui [--open] [--port <0-65535>]
|
|
11
|
+
clio-coder gui background install [--open] [--port <1-65535>]
|
|
12
|
+
clio-coder gui background status|start|open|stop|uninstall
|
|
13
|
+
clio-coder gui launcher install|status|uninstall
|
|
14
|
+
|
|
15
|
+
The foreground server prints a private launch link. --open opens your default
|
|
16
|
+
browser. Press Ctrl+C to stop. --no-open explicitly disables browser opening.
|
|
17
|
+
Optional --idle-exit <milliseconds> stops an idle foreground server.
|
|
18
|
+
Use --path </app/path> to open a particular page. --reuse-background uses this
|
|
19
|
+
installation's background app when configured, or starts a foreground server.
|
|
20
|
+
|
|
21
|
+
On Linux with a systemd user session, background install keeps the app available
|
|
22
|
+
at login. Open its launch link once, then install it from your browser. Background
|
|
23
|
+
stop stops it now; background uninstall also removes its login and desktop entries.
|
|
24
|
+
Other platforms can run the foreground app. Your CLI, terminal interface,
|
|
25
|
+
headless runs, and graphical app use the same Clio runtime and configuration.
|
|
26
|
+
`;
|
|
27
|
+
|
|
28
|
+
export async function runGuiCommand(args: string[]): Promise<number> {
|
|
29
|
+
if (args.includes("--help") || args.includes("-h")) {
|
|
30
|
+
process.stdout.write(HELP);
|
|
31
|
+
return 0;
|
|
32
|
+
}
|
|
33
|
+
try {
|
|
34
|
+
const root = resolvePackageRoot();
|
|
35
|
+
process.env.CLIO_CODER_PACKAGE_ROOT = root;
|
|
36
|
+
const entry = join(root, "dist/gui/server.js");
|
|
37
|
+
if (!existsSync(entry)) {
|
|
38
|
+
printError("The graphical application has not been built here. Run `pnpm run build` in this checkout.");
|
|
39
|
+
return 2;
|
|
40
|
+
}
|
|
41
|
+
// A URL keeps this a separate entry; bundling it into the command chunk
|
|
42
|
+
// would change import.meta.url and the worker/client paths beside it.
|
|
43
|
+
const server = await import(pathToFileURL(entry).href);
|
|
44
|
+
await server.main(args);
|
|
45
|
+
return 0;
|
|
46
|
+
} catch (error) {
|
|
47
|
+
printError(error instanceof Error ? error.message : "Could not start the graphical application.");
|
|
48
|
+
return 1;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/** Separate packaged entry; inspection never starts a listener or opens a browser. */
|
|
53
|
+
export interface GuiUninstallPlan {
|
|
54
|
+
items: Array<{ label: string; path: string }>;
|
|
55
|
+
/**
|
|
56
|
+
* Graphical-application files this build can see and cannot remove, because it
|
|
57
|
+
* carries no application bundle to verify their ownership or stop their service.
|
|
58
|
+
* Uninstall reports them and leaves them, together with the state they depend on.
|
|
59
|
+
*/
|
|
60
|
+
unmanaged: Array<{ label: string; path: string }>;
|
|
61
|
+
remove(): Promise<void>;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/** The command that removes what `unmanaged` lists, from a build that includes the application. */
|
|
65
|
+
export const GUI_UNINSTALL_ADVICE = {
|
|
66
|
+
lead: "To remove them, run from a build that includes the graphical application:",
|
|
67
|
+
command: "clio-coder gui background uninstall && clio-coder gui launcher uninstall",
|
|
68
|
+
} as const;
|
|
69
|
+
|
|
70
|
+
export async function prepareGuiUninstall(options: {
|
|
71
|
+
stateDir: string;
|
|
72
|
+
desktopPrefix: string;
|
|
73
|
+
packageRoot?: string;
|
|
74
|
+
}): Promise<GuiUninstallPlan> {
|
|
75
|
+
// Most CLI-only installs have no web lifecycle files. Keep that path lazy,
|
|
76
|
+
// including checkouts whose optional web bundle has not been built yet.
|
|
77
|
+
const paths = [
|
|
78
|
+
{ label: "Graphical background service", path: join(options.stateDir, "gui/background") },
|
|
79
|
+
{ label: "Desktop launcher", path: join(options.desktopPrefix, "applications/io.iowarp.ClioCoder.desktop") },
|
|
80
|
+
{
|
|
81
|
+
label: "Desktop launcher ownership record",
|
|
82
|
+
path: join(options.desktopPrefix, "applications/io.iowarp.ClioCoder.desktop.owner.json"),
|
|
83
|
+
},
|
|
84
|
+
];
|
|
85
|
+
const present = paths.filter(({ path }) => {
|
|
86
|
+
try {
|
|
87
|
+
lstatSync(path);
|
|
88
|
+
return true;
|
|
89
|
+
} catch (error) {
|
|
90
|
+
if (["ENOENT", "ENOTDIR"].includes((error as NodeJS.ErrnoException).code ?? "")) return false;
|
|
91
|
+
throw error;
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
if (!present.length)
|
|
95
|
+
return {
|
|
96
|
+
items: [],
|
|
97
|
+
unmanaged: [],
|
|
98
|
+
remove: async () => {
|
|
99
|
+
if ((await prepareGuiUninstall(options)).items.length)
|
|
100
|
+
throw new Error("A web installation appeared during confirmation; run uninstall again.");
|
|
101
|
+
},
|
|
102
|
+
};
|
|
103
|
+
const packageRoot = options.packageRoot ?? resolvePackageRoot();
|
|
104
|
+
const entry = join(packageRoot, "dist/gui/server.js");
|
|
105
|
+
// A terminal-only build has no bundle. Deleting these files blind could strand a running systemd
|
|
106
|
+
// unit or remove a launcher another installation owns, so they are reported and left alone.
|
|
107
|
+
if (!existsSync(entry)) return { items: [], unmanaged: present, remove: async () => {} };
|
|
108
|
+
const server = await import(pathToFileURL(entry).href);
|
|
109
|
+
const plan = await server.prepareGuiUninstall({ ...options, packageRoot });
|
|
110
|
+
return { ...plan, unmanaged: [] };
|
|
111
|
+
}
|
package/src/cli/index.ts
CHANGED
|
@@ -30,7 +30,7 @@ science. CLIO stands for Context Layer for Input/Output, named for the Greek mus
|
|
|
30
30
|
|
|
31
31
|
Usage:
|
|
32
32
|
clio-coder start interactive repository chat
|
|
33
|
-
clio-coder
|
|
33
|
+
clio-coder gui [--open] start the graphical application
|
|
34
34
|
clio-coder acp serve Clio as an ACP v1 agent over stdio
|
|
35
35
|
clio-coder --acp alias for clio-coder acp
|
|
36
36
|
clio-coder run [flags] <task> run one headless main-agent turn
|
|
@@ -79,8 +79,9 @@ Usage:
|
|
|
79
79
|
clio-coder tools list|status|install|remove <id> pinned external programs Clio can drive
|
|
80
80
|
clio-coder interop inspect --json detected external coding agents and how far each one is wired
|
|
81
81
|
clio-coder panes install|theme install the pane multiplexer (alias for 'tools install herdr'), or print Clio's theme as a herdr block
|
|
82
|
-
clio-coder docs [topic] open documentation in the
|
|
82
|
+
clio-coder docs [topic] open documentation in the graphical app (--no-open to print the launch link)
|
|
83
83
|
clio-coder dev <command> harness instruments; run 'clio-coder dev' for the list
|
|
84
|
+
clio-coder --demo|--no-demo enable or disable interactive guidance for this session
|
|
84
85
|
clio-coder --help, -h this message
|
|
85
86
|
clio-coder --help --all this message plus every command under 'clio-coder dev'
|
|
86
87
|
`;
|
|
@@ -158,6 +159,7 @@ async function main(argv: string[]): Promise<number> {
|
|
|
158
159
|
noSkills,
|
|
159
160
|
skillPaths,
|
|
160
161
|
panes,
|
|
162
|
+
demo,
|
|
161
163
|
autonomy,
|
|
162
164
|
rest,
|
|
163
165
|
error: globalFlagError,
|
|
@@ -187,6 +189,10 @@ async function main(argv: string[]): Promise<number> {
|
|
|
187
189
|
...(skillPaths.length > 0 ? { skillPaths } : {}),
|
|
188
190
|
...(panes === undefined ? {} : { panes }),
|
|
189
191
|
};
|
|
192
|
+
if (demo !== undefined && subcommand) {
|
|
193
|
+
printError("--demo and --no-demo apply to interactive sessions only; start clio-coder without a subcommand.");
|
|
194
|
+
return 2;
|
|
195
|
+
}
|
|
190
196
|
if (autonomy !== undefined && subcommand) {
|
|
191
197
|
// Silently dropping a safety level would be worse than refusing it.
|
|
192
198
|
printError(
|
|
@@ -197,7 +203,11 @@ async function main(argv: string[]): Promise<number> {
|
|
|
197
203
|
if (!subcommand) {
|
|
198
204
|
await enableBootCompileCache();
|
|
199
205
|
const { runClioCommand } = await import("./clio.js");
|
|
200
|
-
return runClioCommand({
|
|
206
|
+
return runClioCommand({
|
|
207
|
+
...bootOptions,
|
|
208
|
+
...(demo === undefined ? {} : { demo }),
|
|
209
|
+
...(autonomy === undefined ? {} : { autonomy }),
|
|
210
|
+
});
|
|
201
211
|
}
|
|
202
212
|
|
|
203
213
|
return dispatch(subcommand, subArgs, bootOptions);
|
|
@@ -274,7 +284,7 @@ const COMMAND_HANDLERS = new Map<string, CommandHandler>([
|
|
|
274
284
|
["tasks", async (subArgs) => (await import("./tasks.js")).runTasksCommand(subArgs)],
|
|
275
285
|
["mcp", async (subArgs) => (await import("./mcp.js")).runMcpCommand(subArgs)],
|
|
276
286
|
["verifiers", async (subArgs) => (await import("./verifiers.js")).runVerifiersCommand(subArgs)],
|
|
277
|
-
["
|
|
287
|
+
["gui", async (subArgs) => (await import("./gui.js")).runGuiCommand(subArgs)],
|
|
278
288
|
["docs", async (subArgs) => (await import("./docs.js")).runDocsCommand(subArgs)],
|
|
279
289
|
["share", async (subArgs) => (await import("./share.js")).runShareCommand(subArgs)],
|
|
280
290
|
["export", async (subArgs) => (await import("./share.js")).runExportCommand(subArgs)],
|
package/src/cli/library.ts
CHANGED
|
@@ -288,6 +288,7 @@ export async function runLibraryCommand(
|
|
|
288
288
|
{
|
|
289
289
|
...entry,
|
|
290
290
|
provenance: record.origin,
|
|
291
|
+
copies: record.copies.filter((copy) => !options.scope || copy.scope === options.scope),
|
|
291
292
|
...(record.format ? { format: record.format } : {}),
|
|
292
293
|
...(record.provides ? { provides: record.provides } : {}),
|
|
293
294
|
},
|
|
@@ -297,13 +298,7 @@ export async function runLibraryCommand(
|
|
|
297
298
|
if (parsed.json) emit({ entries, diagnostics: discovery.diagnostics });
|
|
298
299
|
else {
|
|
299
300
|
for (const entry of entries) {
|
|
300
|
-
const states =
|
|
301
|
-
entry.installed
|
|
302
|
-
.map(
|
|
303
|
-
(item) =>
|
|
304
|
-
`${item.scope}:${item.loadable ? "loadable" : !item.enabled ? "disabled" : !item.effective ? "shadowed" : "unloadable"}`,
|
|
305
|
-
)
|
|
306
|
-
.join(", ") || "available";
|
|
301
|
+
const states = entry.copies.map((item) => `${item.scope}:${item.state}`).join(", ") || "available";
|
|
307
302
|
process.stdout.write(
|
|
308
303
|
`${libraryEntryRef(entry)}\t${entry.version ?? ""}\t${states}\t${originLabel(entry.provenance)}\t${entry.description}\n`,
|
|
309
304
|
);
|