@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
|
@@ -76,6 +76,7 @@ export async function runExternalCommandRunner(
|
|
|
76
76
|
cwd: string,
|
|
77
77
|
timeoutMs: number,
|
|
78
78
|
env?: NodeJS.ProcessEnv,
|
|
79
|
+
onStdout?: (chunk: string) => void,
|
|
79
80
|
): Promise<EvalRunnerOutput> {
|
|
80
81
|
const runnerCommands = runner.commands ?? [];
|
|
81
82
|
const commands = runnerCommands.length > 0 ? runnerCommands : runner.command === undefined ? [] : [runner.command];
|
|
@@ -91,7 +92,7 @@ export async function runExternalCommandRunner(
|
|
|
91
92
|
let fleetLoops = EMPTY_FLEET_LOOP_OBSERVATION;
|
|
92
93
|
const ledgerEntries: SessionEntry[] = [];
|
|
93
94
|
for (const command of commands) {
|
|
94
|
-
const result = await runShellCommand(command, cwd, runner.timeoutMs ?? timeoutMs, env);
|
|
95
|
+
const result = await runShellCommand(command, cwd, runner.timeoutMs ?? timeoutMs, env, onStdout);
|
|
95
96
|
stdout = appendLimited(stdout, result.stdout);
|
|
96
97
|
stderr = appendLimited(stderr, result.stderr);
|
|
97
98
|
wallTimeMs += result.wallTimeMs;
|
|
@@ -158,6 +159,7 @@ export function runShellCommand(
|
|
|
158
159
|
cwd: string,
|
|
159
160
|
timeoutMs: number,
|
|
160
161
|
env?: NodeJS.ProcessEnv,
|
|
162
|
+
onStdout?: (chunk: string) => void,
|
|
161
163
|
): Promise<ShellCommandResult> {
|
|
162
164
|
// `wallTimeMs` is published and compared across runs and machines, so it is
|
|
163
165
|
// measured on the monotonic clock: an NTP correction mid-suite would
|
|
@@ -171,6 +173,7 @@ export function runShellCommand(
|
|
|
171
173
|
const streamFold = createStreamInvariantFold();
|
|
172
174
|
const fleetLoopFold = createFleetLoopFold();
|
|
173
175
|
const callLedgerFold = createEvalCallLedgerFold();
|
|
176
|
+
let captureFailed = false;
|
|
174
177
|
let timedOut = false;
|
|
175
178
|
let settled = false;
|
|
176
179
|
// The overlay is additive: an eval item pins where Clio writes its
|
|
@@ -182,6 +185,18 @@ export function runShellCommand(
|
|
|
182
185
|
child.stdout.setEncoding("utf8");
|
|
183
186
|
child.stderr.setEncoding("utf8");
|
|
184
187
|
child.stdout.on("data", (chunk: string) => {
|
|
188
|
+
if (!captureFailed) {
|
|
189
|
+
try {
|
|
190
|
+
onStdout?.(chunk);
|
|
191
|
+
} catch (error) {
|
|
192
|
+
captureFailed = true;
|
|
193
|
+
stderr = appendLimited(
|
|
194
|
+
stderr,
|
|
195
|
+
`Eval event capture failed: ${error instanceof Error ? error.message : String(error)}`,
|
|
196
|
+
);
|
|
197
|
+
child.kill("SIGTERM");
|
|
198
|
+
}
|
|
199
|
+
}
|
|
185
200
|
stdout = appendLimited(stdout, chunk);
|
|
186
201
|
metricCapture.push(chunk);
|
|
187
202
|
usageFold.push(chunk);
|
|
@@ -203,7 +218,7 @@ export function runShellCommand(
|
|
|
203
218
|
clearTimeout(timer);
|
|
204
219
|
resolve({
|
|
205
220
|
command: commandLine,
|
|
206
|
-
exitCode,
|
|
221
|
+
exitCode: captureFailed ? 1 : exitCode,
|
|
207
222
|
stdout,
|
|
208
223
|
metricJsonl: metricCapture.finish(),
|
|
209
224
|
usage: usageFold.usage(),
|
|
@@ -309,7 +324,13 @@ function compactMetricEvent(event: Record<string, unknown>): Record<string, unkn
|
|
|
309
324
|
const type = typeof event.type === "string" ? normalizeClioCoderEventType(event.type) : event.type;
|
|
310
325
|
if (type === "tool_execution_start") {
|
|
311
326
|
const toolName = stringField(event, "toolName");
|
|
312
|
-
if (
|
|
327
|
+
if (
|
|
328
|
+
toolName !== "dispatch" &&
|
|
329
|
+
toolName !== "code_nav" &&
|
|
330
|
+
toolName !== "read" &&
|
|
331
|
+
toolName !== "grep" &&
|
|
332
|
+
toolName !== "gateway"
|
|
333
|
+
) {
|
|
313
334
|
return null;
|
|
314
335
|
}
|
|
315
336
|
return {
|
|
@@ -322,7 +343,11 @@ function compactMetricEvent(event: Record<string, unknown>): Record<string, unkn
|
|
|
322
343
|
? { args: boundedReadArgs(event.args) }
|
|
323
344
|
: toolName === "code_nav" && isRecord(event.args)
|
|
324
345
|
? { args: { mode: event.args.mode } }
|
|
325
|
-
:
|
|
346
|
+
: toolName === "gateway" && isRecord(event.args)
|
|
347
|
+
? {
|
|
348
|
+
args: { op: stringField(event.args, "op"), capability: stringField(event.args, "capability")?.slice(0, 256) },
|
|
349
|
+
}
|
|
350
|
+
: {}),
|
|
326
351
|
};
|
|
327
352
|
}
|
|
328
353
|
if (type === "tool_execution_end") {
|
|
@@ -27,8 +27,12 @@ export function adaptSuiteV2ResultToVerdictV1(
|
|
|
27
27
|
): EvalVerdictEnvelopeV1 {
|
|
28
28
|
// The suite runner owns the one final pass decision. In particular, a
|
|
29
29
|
// declared grader failure changes `pass` without pretending the runner or
|
|
30
|
-
// its invariants broke
|
|
31
|
-
|
|
30
|
+
// its invariants broke, and so does a no-op run: the machinery worked and
|
|
31
|
+
// the agent changed nothing. Every other failed result is a machinery failure.
|
|
32
|
+
const machinery =
|
|
33
|
+
result.pass || result.failureClass === "grader_failed" || result.failureClass === "noop"
|
|
34
|
+
? "ok"
|
|
35
|
+
: "infrastructure_failure";
|
|
32
36
|
const outcome = result.pass ? "pass" : "fail";
|
|
33
37
|
const graderExitCode = result.metrics["task.exitCode"];
|
|
34
38
|
return parseEvalVerdictEnvelopeV1({
|
|
@@ -230,6 +230,8 @@ export interface EvalRunnerV2 {
|
|
|
230
230
|
}
|
|
231
231
|
|
|
232
232
|
export interface EvalVerifyV2 {
|
|
233
|
+
/** Negative probes may intentionally do no work; requires a passing measure command. */
|
|
234
|
+
allowNoop?: boolean;
|
|
233
235
|
/** Workspace-relative grader code and dependencies that the runner must not change. */
|
|
234
236
|
protectedFiles?: string[];
|
|
235
237
|
commands?: string[];
|
|
@@ -244,7 +244,10 @@ function readVerify(
|
|
|
244
244
|
issues.push({ path, message: "expected object" });
|
|
245
245
|
return {};
|
|
246
246
|
}
|
|
247
|
+
if (value.allowNoop !== undefined && typeof value.allowNoop !== "boolean")
|
|
248
|
+
issues.push({ path: `${path}.allowNoop`, message: "expected boolean" });
|
|
247
249
|
return {
|
|
250
|
+
...(typeof value.allowNoop === "boolean" ? { allowNoop: value.allowNoop } : {}),
|
|
248
251
|
commands: readOptionalStringArray(value, "commands", `${path}.commands`, issues),
|
|
249
252
|
measure: readOptionalStringArray(value, "measure", `${path}.measure`, issues),
|
|
250
253
|
protectedFiles: readOptionalStringArray(value, "protectedFiles", `${path}.protectedFiles`, issues),
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import { constants } from "node:fs";
|
|
1
|
+
import { closeSync, constants, openSync, writeSync } from "node:fs";
|
|
2
2
|
import { lstat, mkdir, mkdtemp, open, readdir, realpath, rm, writeFile } from "node:fs/promises";
|
|
3
3
|
import { tmpdir } from "node:os";
|
|
4
4
|
import { isAbsolute, relative, resolve, sep } from "node:path";
|
|
5
5
|
import { namingCompatibilityEnvironment } from "../../../core/naming-compat.js";
|
|
6
|
+
import { safeResourceWrite } from "../../../core/safe-resource-write.js";
|
|
6
7
|
import { clioDataDir } from "../../../core/xdg.js";
|
|
8
|
+
import { isRedactedArtifactKey, redactArtifactForStorage } from "../artifacts/redact.js";
|
|
7
9
|
import { resolveMetricAssertion } from "../compare/thresholds.js";
|
|
8
10
|
import { buildEvalExecutionEnvelopeV1, type EvalExecutionObservationV1 } from "../execution-provenance.js";
|
|
9
11
|
import { aggregateEvalVerdicts } from "../metrics/aggregate.js";
|
|
@@ -18,6 +20,7 @@ import {
|
|
|
18
20
|
writeBoundaryInvariantMetrics,
|
|
19
21
|
} from "../metrics/invariants.js";
|
|
20
22
|
import { wallTimeMetric } from "../metrics/latency.js";
|
|
23
|
+
import { mainAgentReceiptForRun, noopFailureReason } from "../metrics/noop.js";
|
|
21
24
|
import { tokenAccountingFrom } from "../metrics/tokens.js";
|
|
22
25
|
import { zeroToolCallMetrics } from "../metrics/tool-calls.js";
|
|
23
26
|
import {
|
|
@@ -86,12 +89,36 @@ export async function runEvalSuiteV2(
|
|
|
86
89
|
const servingObservations: EvalServingObservation[] = [];
|
|
87
90
|
const maxCostUsd = loaded.suite.matrix.maxCostUsd;
|
|
88
91
|
let spentUsd = 0;
|
|
89
|
-
|
|
92
|
+
const matrix = expandEvalMatrix(loaded.suite);
|
|
93
|
+
// A separate checkpoint is explicitly incomplete, never mistaken for a
|
|
94
|
+
// finished suite artifact. Atomically retain grades before starting more work.
|
|
95
|
+
const checkpoint = (complete: boolean): void => {
|
|
96
|
+
safeResourceWrite(
|
|
97
|
+
resolve(clioDataDir(), "evals", evalId, "checkpoint.json"),
|
|
98
|
+
`${JSON.stringify(
|
|
99
|
+
redactArtifactForStorage({
|
|
100
|
+
version: 1,
|
|
101
|
+
evalId,
|
|
102
|
+
suite: { id: loaded.suite.suite.id, hash: loaded.hash },
|
|
103
|
+
status: complete ? "completed" : "running",
|
|
104
|
+
plannedRuns: matrix.length,
|
|
105
|
+
completedRuns: results.length,
|
|
106
|
+
results,
|
|
107
|
+
}),
|
|
108
|
+
null,
|
|
109
|
+
2,
|
|
110
|
+
)}\n`,
|
|
111
|
+
{ encoding: "utf8" },
|
|
112
|
+
);
|
|
113
|
+
};
|
|
114
|
+
checkpoint(false);
|
|
115
|
+
for (const item of matrix) {
|
|
90
116
|
// The cost ceiling bounds the whole matrix: once known receipt cost
|
|
91
117
|
// exceeds it, remaining items fail closed instead of running. A live
|
|
92
118
|
// suite can therefore never keep spending past its declared budget.
|
|
93
119
|
if (maxCostUsd !== undefined && spentUsd > maxCostUsd) {
|
|
94
120
|
results.push(budgetExhaustedResult(loaded, item.task, item.target, item.repeatIndex, spentUsd, maxCostUsd));
|
|
121
|
+
checkpoint(false);
|
|
95
122
|
continue;
|
|
96
123
|
}
|
|
97
124
|
const completed = await runMatrixItem(
|
|
@@ -107,8 +134,10 @@ export async function runEvalSuiteV2(
|
|
|
107
134
|
spentUsd += resultCostUsd(completed.result);
|
|
108
135
|
results.push(completed.result);
|
|
109
136
|
servingObservations.push(completed.serving);
|
|
137
|
+
checkpoint(false);
|
|
110
138
|
}
|
|
111
139
|
const serving = await evalServingConfiguration(loaded.suite.matrix.targets, servingObservations);
|
|
140
|
+
checkpoint(true);
|
|
112
141
|
return buildArtifact(loaded, evalId, results, options.clioEntry, serving);
|
|
113
142
|
}
|
|
114
143
|
|
|
@@ -179,21 +208,32 @@ async function runMatrixItem(
|
|
|
179
208
|
if (!setup.pass) throw new EvalWorkspaceSetupError(setup.exitCode, setup.stderr);
|
|
180
209
|
if (task.workspace.kind !== "local" || freshWorkspace) recordPatchBaseline(workspace.dir);
|
|
181
210
|
const checkGraderIntegrity = await protectGraderFiles(workspace.dir, task.verify.protectedFiles ?? []);
|
|
182
|
-
const
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
211
|
+
const runnerStdoutFile = resolve(stateDir, "eval-runner-output.jsonl");
|
|
212
|
+
const runner = await runTaskRunner(
|
|
213
|
+
task,
|
|
214
|
+
target,
|
|
215
|
+
workspace.dir,
|
|
216
|
+
clioEntry,
|
|
217
|
+
{
|
|
218
|
+
CLIO_CODER_STATE_DIR: stateDir,
|
|
219
|
+
CLIO_CODER_ENTRY: clioEntry,
|
|
220
|
+
},
|
|
221
|
+
runnerStdoutFile,
|
|
222
|
+
);
|
|
186
223
|
runnerEvidence = runner;
|
|
187
224
|
receipt = runner.receipt ?? null;
|
|
188
225
|
runnerWallTimeMs = runner.wallTimeMs;
|
|
189
|
-
const runnerStdoutFile = resolve(stateDir, "eval-runner-output.jsonl");
|
|
190
|
-
await writeFile(runnerStdoutFile, runner.stdout, { encoding: "utf8", mode: 0o600, flag: "wx" });
|
|
191
226
|
const patch = collectPatchMetrics(workspace.dir);
|
|
192
227
|
const receiptExitCode = runner.exitCode;
|
|
193
228
|
// Read after the runner returned and before the journal is removed: what
|
|
194
229
|
// Clio sealed for this item, judged against its own ledger, and whether
|
|
195
230
|
// the workers it attested are still running.
|
|
196
|
-
const
|
|
231
|
+
const journal = readRunJournal(stateDir);
|
|
232
|
+
const journalMetrics = invariantMetrics(stateDir, journal, receiptExitCode);
|
|
233
|
+
// Read for the no-op decision only. The main agent seals `noop` into
|
|
234
|
+
// its journal receipt and prints none, so this never feeds the
|
|
235
|
+
// receipt-backed evidence the runner reports.
|
|
236
|
+
const noopReceipt = mainAgentReceiptForRun(journal, runner.stdout);
|
|
197
237
|
await checkGraderIntegrity();
|
|
198
238
|
const measurement = await measureTaskOutcome(task, workspace.dir, {
|
|
199
239
|
...namingCompatibilityEnvironment(
|
|
@@ -224,18 +264,24 @@ async function runMatrixItem(
|
|
|
224
264
|
"result.failureClass": runner.exitCode === 0 ? null : "runner_failed",
|
|
225
265
|
...measurement.metrics,
|
|
226
266
|
};
|
|
267
|
+
if (typeof noopReceipt?.noop === "boolean") metrics["result.noop"] = noopReceipt.noop;
|
|
227
268
|
await checkGraderIntegrity();
|
|
228
269
|
const verifier = await runVerifiers(task, workspace.dir, metrics);
|
|
229
270
|
await checkGraderIntegrity();
|
|
230
271
|
const graderFailed = metrics["task.solved"] === false;
|
|
231
|
-
|
|
272
|
+
// A run that changed nothing it was allowed to change did not solve the
|
|
273
|
+
// task, even when the untouched workspace already satisfies the verifier.
|
|
274
|
+
const noop = noopReceipt?.noop === true && !(task.verify.allowNoop === true && metrics["task.solved"] === true);
|
|
275
|
+
const pass = runner.exitCode === 0 && !noop && verifier.pass && !graderFailed;
|
|
232
276
|
const failureClass = pass
|
|
233
277
|
? null
|
|
234
278
|
: runner.exitCode !== 0
|
|
235
279
|
? "runner_failed"
|
|
236
|
-
:
|
|
237
|
-
?
|
|
238
|
-
:
|
|
280
|
+
: noop
|
|
281
|
+
? "noop"
|
|
282
|
+
: !verifier.pass
|
|
283
|
+
? verifier.failureClass
|
|
284
|
+
: "grader_failed";
|
|
239
285
|
metrics["verifier.exitCode"] = verifier.exitCode;
|
|
240
286
|
metrics["result.pass"] = pass;
|
|
241
287
|
metrics["result.failureClass"] = failureClass;
|
|
@@ -250,9 +296,12 @@ async function runMatrixItem(
|
|
|
250
296
|
metrics,
|
|
251
297
|
artifacts: {
|
|
252
298
|
...runner.artifacts,
|
|
299
|
+
...(measurement.stdout ? { measureStdout: measurement.stdout } : {}),
|
|
300
|
+
...(measurement.stderr ? { measureStderr: measurement.stderr } : {}),
|
|
253
301
|
workspace: workspace.dir,
|
|
254
302
|
...(verifier.stdout.length > 0 ? { verifierStdout: verifier.stdout } : {}),
|
|
255
303
|
...(verifier.stderr.length > 0 ? { verifierStderr: verifier.stderr } : {}),
|
|
304
|
+
...(failureClass === "noop" && noopReceipt !== null ? { failureReason: noopFailureReason(noopReceipt) } : {}),
|
|
256
305
|
},
|
|
257
306
|
};
|
|
258
307
|
retention ??= retainSessionLedgers(stateDir, transcriptDir, runnerEvidence?.stdout);
|
|
@@ -385,8 +434,11 @@ function emptyLedgerSnapshot(): Awaited<ReturnType<typeof readEvalLedgerSnapshot
|
|
|
385
434
|
}
|
|
386
435
|
|
|
387
436
|
/** Journal-derived invariants for one finished item, read from its isolated state directory. */
|
|
388
|
-
function invariantMetrics(
|
|
389
|
-
|
|
437
|
+
function invariantMetrics(
|
|
438
|
+
stateDir: string,
|
|
439
|
+
journal: ReturnType<typeof readRunJournal>,
|
|
440
|
+
runnerExitCode: number,
|
|
441
|
+
): Record<string, number | boolean> {
|
|
390
442
|
return {
|
|
391
443
|
...receiptInvariantMetrics(journal, runnerExitCode),
|
|
392
444
|
...receiptUsageMetrics(journal),
|
|
@@ -416,12 +468,41 @@ async function runTaskRunner(
|
|
|
416
468
|
cwd: string,
|
|
417
469
|
clioEntry: string,
|
|
418
470
|
env: NodeJS.ProcessEnv,
|
|
471
|
+
stdoutFile: string,
|
|
419
472
|
): Promise<EvalRunnerOutput> {
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
473
|
+
const fd = openSync(stdoutFile, "wx", 0o600);
|
|
474
|
+
let bytes = 0;
|
|
475
|
+
const capture = (chunk: string): void => {
|
|
476
|
+
const buffer = Buffer.from(chunk);
|
|
477
|
+
bytes += buffer.byteLength;
|
|
478
|
+
if (bytes > 64 * 1024 * 1024)
|
|
479
|
+
throw new Error("complete runner event stream exceeds 64 MiB; refusing an incomplete grade");
|
|
480
|
+
let offset = 0;
|
|
481
|
+
while (offset < buffer.length) offset += writeSync(fd, buffer, offset, buffer.length - offset);
|
|
482
|
+
};
|
|
483
|
+
try {
|
|
484
|
+
if (task.runner.kind === "external-command")
|
|
485
|
+
return await runExternalCommandRunner(task.runner, cwd, task.timeoutMs, env, capture);
|
|
486
|
+
if (task.runner.kind === "clio-coder-run")
|
|
487
|
+
return await runClioRunRunner(
|
|
488
|
+
task.runner,
|
|
489
|
+
cwd,
|
|
490
|
+
clioEntry,
|
|
491
|
+
task.timeoutMs,
|
|
492
|
+
target,
|
|
493
|
+
env,
|
|
494
|
+
task.metrics.readObservation,
|
|
495
|
+
capture,
|
|
496
|
+
);
|
|
497
|
+
const result =
|
|
498
|
+
task.runner.kind === "context-index"
|
|
499
|
+
? await runContextIndexRunner(cwd, clioEntry, task.timeoutMs, target, env)
|
|
500
|
+
: await runContextInitRunner(task.runner, cwd, clioEntry, task.timeoutMs, target, env);
|
|
501
|
+
capture(result.stdout);
|
|
502
|
+
return result;
|
|
503
|
+
} finally {
|
|
504
|
+
closeSync(fd);
|
|
505
|
+
}
|
|
425
506
|
}
|
|
426
507
|
|
|
427
508
|
/**
|
|
@@ -434,12 +515,19 @@ async function measureTaskOutcome(
|
|
|
434
515
|
task: LoadedEvalSuiteV2["suite"]["tasks"][number],
|
|
435
516
|
cwd: string,
|
|
436
517
|
env?: NodeJS.ProcessEnv,
|
|
437
|
-
): Promise<{
|
|
518
|
+
): Promise<{
|
|
519
|
+
metrics: Record<string, number | string | boolean | null>;
|
|
520
|
+
stdout?: string;
|
|
521
|
+
stderr?: string;
|
|
522
|
+
executionObservation?: EvalExecutionObservationV1;
|
|
523
|
+
}> {
|
|
438
524
|
const commands = task.verify.measure ?? [];
|
|
439
525
|
if (commands.length === 0) return { metrics: {} };
|
|
440
526
|
const result = await runCommandVerifiers(commands, cwd, task.timeoutMs, env);
|
|
441
527
|
const behavioral = graderBehaviorMeasurement(result.stdout);
|
|
442
528
|
return {
|
|
529
|
+
stdout: result.stdout,
|
|
530
|
+
stderr: result.stderr,
|
|
443
531
|
metrics: {
|
|
444
532
|
"task.exitCode": result.exitCode,
|
|
445
533
|
"task.solved": result.exitCode === 0,
|
|
@@ -450,10 +538,10 @@ async function measureTaskOutcome(
|
|
|
450
538
|
}
|
|
451
539
|
|
|
452
540
|
function graderBehaviorMeasurement(stdout: string): {
|
|
453
|
-
metrics: Record<string, number | boolean>;
|
|
541
|
+
metrics: Record<string, number | string | boolean | null>;
|
|
454
542
|
executionObservation?: EvalExecutionObservationV1;
|
|
455
543
|
} {
|
|
456
|
-
const metrics: Record<string, number | boolean> = {};
|
|
544
|
+
const metrics: Record<string, number | string | boolean | null> = {};
|
|
457
545
|
let executionObservation: EvalExecutionObservationV1 | undefined;
|
|
458
546
|
for (const line of stdout.split(/\r?\n/u)) {
|
|
459
547
|
if (line.trim().length === 0) continue;
|
|
@@ -466,8 +554,8 @@ function graderBehaviorMeasurement(stdout: string): {
|
|
|
466
554
|
if (!isRecord(value)) continue;
|
|
467
555
|
if (normalizeEvalSchemaId(value.schema) === "clio-coder.eval.measure.v1" && isRecord(value.metrics)) {
|
|
468
556
|
for (const [key, metric] of Object.entries(value.metrics)) {
|
|
469
|
-
if (key
|
|
470
|
-
if (
|
|
557
|
+
if (!isAdmittedMeasureMetricKey(key)) continue;
|
|
558
|
+
if (isAdmittedMeasureMetricValue(key, metric)) metrics[key] = metric;
|
|
471
559
|
}
|
|
472
560
|
}
|
|
473
561
|
if (normalizeEvalSchemaId(value.schema) === "clio-coder.eval.execution-observation.v1") {
|
|
@@ -477,6 +565,52 @@ function graderBehaviorMeasurement(stdout: string): {
|
|
|
477
565
|
return { metrics, ...(executionObservation === undefined ? {} : { executionObservation }) };
|
|
478
566
|
}
|
|
479
567
|
|
|
568
|
+
const CUSTOM_MEASURE_METRIC_PREFIX = "custom.";
|
|
569
|
+
const CUSTOM_DIGEST_METRIC_PREFIX = "custom.digest.";
|
|
570
|
+
const CUSTOM_MEASURE_METRIC_KEY = /^[A-Za-z0-9._-]{1,128}$/u;
|
|
571
|
+
const SHA256_HEX = /^[0-9a-f]{64}$/u;
|
|
572
|
+
|
|
573
|
+
/**
|
|
574
|
+
* A grader may report the shipped proposal/memory/scope/explanation namespaces, the two
|
|
575
|
+
* legacy behavior keys, and any key in the
|
|
576
|
+
* `custom.` namespace. The prefix is what keeps this safe: grader metrics are
|
|
577
|
+
* spread last into the result, so an unprefixed key could overwrite
|
|
578
|
+
* `task.solved`, `patch.*`, `tokens.*`, `receipt.*`, or `tools.*` and turn a
|
|
579
|
+
* failed grade into a pass. A custom key that storage would redact is refused
|
|
580
|
+
* with an error naming it, because the stored value would silently become the
|
|
581
|
+
* string `[redacted]` and every numeric assertion on it would then fail. A bare
|
|
582
|
+
* `custom.` or `custom.digest.` names nothing and is dropped.
|
|
583
|
+
*/
|
|
584
|
+
function isAdmittedMeasureMetricKey(key: string): boolean {
|
|
585
|
+
if (key === "claims.unsupported" || key === "completion.reported") return true;
|
|
586
|
+
// These bounded namespaces are emitted by the shipped behavioral graders.
|
|
587
|
+
if (/^(proposal|memory|scope|explanation)\.[A-Za-z0-9._-]{1,120}$/u.test(key) && !isRedactedArtifactKey(key))
|
|
588
|
+
return true;
|
|
589
|
+
if (!key.startsWith(CUSTOM_MEASURE_METRIC_PREFIX) || !CUSTOM_MEASURE_METRIC_KEY.test(key)) return false;
|
|
590
|
+
if (key === CUSTOM_MEASURE_METRIC_PREFIX || key === CUSTOM_DIGEST_METRIC_PREFIX) return false;
|
|
591
|
+
if (isRedactedArtifactKey(key)) {
|
|
592
|
+
throw new Error(
|
|
593
|
+
`measure metric ${key} matches the artifact redaction pattern and would be stored as "[redacted]"; rename the metric`,
|
|
594
|
+
);
|
|
595
|
+
}
|
|
596
|
+
return true;
|
|
597
|
+
}
|
|
598
|
+
|
|
599
|
+
/**
|
|
600
|
+
* Measure values are finite numbers, booleans, or null for unmeasured facts. The one exception is a key
|
|
601
|
+
* under `custom.digest.`, which carries only a lowercase hex SHA-256 string; that
|
|
602
|
+
* is how a behavior digest reaches the sealed artifact. A value of any other
|
|
603
|
+
* type or shape is dropped.
|
|
604
|
+
*/
|
|
605
|
+
function isAdmittedMeasureMetricValue(key: string, value: unknown): value is number | string | boolean | null {
|
|
606
|
+
if (key.startsWith(CUSTOM_DIGEST_METRIC_PREFIX)) return typeof value === "string" && SHA256_HEX.test(value);
|
|
607
|
+
return (
|
|
608
|
+
(value === null && /^(proposal|memory|scope|explanation)\./u.test(key)) ||
|
|
609
|
+
typeof value === "boolean" ||
|
|
610
|
+
(typeof value === "number" && Number.isFinite(value))
|
|
611
|
+
);
|
|
612
|
+
}
|
|
613
|
+
|
|
480
614
|
function parseExecutionObservation(value: Record<string, unknown>): EvalExecutionObservationV1 {
|
|
481
615
|
const policies = isRecord(value.policyHashes) ? value.policyHashes : {};
|
|
482
616
|
const project = isRecord(value.projectContext) ? value.projectContext : null;
|
|
@@ -721,7 +855,14 @@ async function retainSessionLedgers(
|
|
|
721
855
|
const directory = await transcriptCaptureDirectory(destination);
|
|
722
856
|
if (runnerStdout) {
|
|
723
857
|
const path = resolve(directory, "runner-stdout.jsonl");
|
|
724
|
-
|
|
858
|
+
let complete: Buffer | string;
|
|
859
|
+
try {
|
|
860
|
+
complete = await readOwnedLedger(stateDir, resolve(stateDir, "eval-runner-output.jsonl"));
|
|
861
|
+
} catch (error) {
|
|
862
|
+
if ((error as NodeJS.ErrnoException).code !== "ENOENT") throw error;
|
|
863
|
+
complete = runnerStdout;
|
|
864
|
+
}
|
|
865
|
+
await writeFile(path, complete, { mode: 0o600, flag: "wx" });
|
|
725
866
|
retained.runnerStdoutPath = path;
|
|
726
867
|
}
|
|
727
868
|
for (const [index, pathToLedger] of refs.entries()) {
|
|
@@ -13,8 +13,9 @@
|
|
|
13
13
|
* closed.
|
|
14
14
|
*
|
|
15
15
|
* Unlike the other fixed reads this one takes an identifier, because an
|
|
16
|
-
* operator names the bundle. The
|
|
17
|
-
*
|
|
16
|
+
* operator names the bundle. The identifier is validated for shape here; a
|
|
17
|
+
* GUI host that echoes operator-supplied ids owes its own served-id window on
|
|
18
|
+
* top of that, because shape alone does not prove the id was ever served.
|
|
18
19
|
*/
|
|
19
20
|
|
|
20
21
|
import { clioDataDir } from "../../core/xdg.js";
|
|
@@ -36,6 +36,7 @@ export interface OperatorReloadResult {
|
|
|
36
36
|
status: "committed" | "deferred" | "rejected";
|
|
37
37
|
generation: number;
|
|
38
38
|
message: string;
|
|
39
|
+
degraded?: number;
|
|
39
40
|
}
|
|
40
41
|
export interface OperatorRuntimeOptions {
|
|
41
42
|
/** Captured from the existing registry, never inferred from runtime activation. */
|
|
@@ -45,7 +46,7 @@ export interface OperatorRuntimeOptions {
|
|
|
45
46
|
isIdle(): boolean;
|
|
46
47
|
list?: (cwd: string) => InstalledExtension[];
|
|
47
48
|
onChange?: () => void;
|
|
48
|
-
onReload?: (result: OperatorReloadResult) => void;
|
|
49
|
+
onReload?: (result: OperatorReloadResult, reason: "startup" | "reload" | "session-change") => void;
|
|
49
50
|
/** Synchronous paired snapshot/hook commit. Runtimes have a separate readiness clock. */
|
|
50
51
|
commitHooks?: () => { status: string; generation: number; reason?: string };
|
|
51
52
|
/** Explicit headless invocation starts only its selected owner. */
|
|
@@ -294,7 +295,13 @@ export class OperatorExtensionRuntime {
|
|
|
294
295
|
result = {
|
|
295
296
|
status: "committed",
|
|
296
297
|
generation: next,
|
|
297
|
-
|
|
298
|
+
degraded,
|
|
299
|
+
message:
|
|
300
|
+
degraded > 0
|
|
301
|
+
? `Extensions: ${degraded} failed to start; ${ready} ready. Open /extensions to inspect.`
|
|
302
|
+
: ready > 0
|
|
303
|
+
? `Extensions reloaded: ${ready} ready.`
|
|
304
|
+
: "Extensions reloaded. No runtime extensions enabled.",
|
|
298
305
|
};
|
|
299
306
|
} catch (error) {
|
|
300
307
|
for (const process of new Set([...this.processes.values(), ...staged.values()])) {
|
|
@@ -304,12 +311,12 @@ export class OperatorExtensionRuntime {
|
|
|
304
311
|
result = {
|
|
305
312
|
status: this.generation === next ? "committed" : "rejected",
|
|
306
313
|
generation: this.generation,
|
|
307
|
-
message: `${this.generation === next ? "
|
|
314
|
+
message: `${this.generation === next ? "Extensions reloaded with errors: " : "Extension reload failed: "}${error instanceof Error ? error.message : String(error)}`,
|
|
308
315
|
};
|
|
309
316
|
}
|
|
310
317
|
this.changed();
|
|
311
318
|
try {
|
|
312
|
-
this.options.onReload?.(result);
|
|
319
|
+
this.options.onReload?.(result, reason);
|
|
313
320
|
} catch {
|
|
314
321
|
/* Reporting follows settlement. */
|
|
315
322
|
}
|
|
@@ -35,7 +35,7 @@ import {
|
|
|
35
35
|
} from "./protocol.js";
|
|
36
36
|
|
|
37
37
|
export const MCP_CLIENT_NAME = "clio-coder";
|
|
38
|
-
export const DEFAULT_MCP_CLIENT_VERSION = "0.
|
|
38
|
+
export const DEFAULT_MCP_CLIENT_VERSION = "0.5.0";
|
|
39
39
|
export const DEFAULT_INITIALIZE_TIMEOUT_MS = 15_000;
|
|
40
40
|
export const DEFAULT_REQUEST_TIMEOUT_MS = 60_000;
|
|
41
41
|
export const DEFAULT_STDERR_TAIL_BYTES = 16 * 1024;
|
|
@@ -16,7 +16,8 @@ import { foldPromptCacheTelemetry, hasPromptCacheTelemetry, topExpectedColdReaso
|
|
|
16
16
|
import { readStateInfoResult } from "./state.js";
|
|
17
17
|
import { getVersionInfo } from "./version.js";
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
/** `info` reports a fact that needs no action, such as an optional tool that is absent. */
|
|
20
|
+
export type DoctorLevel = "ok" | "info" | "warn" | "error";
|
|
20
21
|
|
|
21
22
|
export interface DoctorFinding {
|
|
22
23
|
ok: boolean;
|
|
@@ -268,7 +269,7 @@ function latestSessionCacheFinding(stateDir: string): DoctorFinding | null {
|
|
|
268
269
|
return {
|
|
269
270
|
ok: true,
|
|
270
271
|
name: "cache telemetry",
|
|
271
|
-
detail: `last session ${latest.sessionId}: hot ${counts.hot} · partial ${counts.partial} · cold ${counts.cold} · small ${counts.small}; top expected reason ${topReason === null ? "none" : `${topReason.reason} (${topReason.count})`}`,
|
|
272
|
+
detail: `last session ${latest.sessionId}: hot ${counts.hot} · partial ${counts.partial} · cold ${counts.cold} · small ${counts.small} · unknown ${counts.unknown}; top expected reason ${topReason === null ? "none" : `${topReason.reason} (${topReason.count})`}`,
|
|
272
273
|
};
|
|
273
274
|
}
|
|
274
275
|
|
|
@@ -461,7 +462,7 @@ function foldDetail(detail: string): string {
|
|
|
461
462
|
export function formatDoctorReport(findings: DoctorFinding[]): string {
|
|
462
463
|
const lines = findings.map((f) => {
|
|
463
464
|
const level = f.level ?? (f.ok ? "ok" : "error");
|
|
464
|
-
const badge = level === "ok" ? "OK" : level === "warn" ? "WARN" : "!! ";
|
|
465
|
+
const badge = level === "ok" ? "OK" : level === "info" ? "INFO" : level === "warn" ? "WARN" : "!! ";
|
|
465
466
|
return `${badge.padEnd(4)} ${f.name.padEnd(22)} ${foldDetail(f.detail)}`;
|
|
466
467
|
});
|
|
467
468
|
return lines.join("\n");
|
|
@@ -675,7 +676,7 @@ async function doctorProbeContext(target: TargetDescriptor, runtime: RuntimeDesc
|
|
|
675
676
|
async function probeAdvertisedModels(
|
|
676
677
|
target: TargetDescriptor,
|
|
677
678
|
runtime: RuntimeDescriptor,
|
|
678
|
-
): Promise<{ advertised: string[]; resident: string[] } | null> {
|
|
679
|
+
): Promise<{ advertised: string[]; resident: string[]; cacheAdvisories: ReadonlyArray<string> } | null> {
|
|
679
680
|
if (runtime.kind !== "http" || typeof runtime.probe !== "function" || !target.url) return null;
|
|
680
681
|
let probe: ProbeResult;
|
|
681
682
|
try {
|
|
@@ -690,7 +691,7 @@ async function probeAdvertisedModels(
|
|
|
690
691
|
if (!advertised.includes(id)) advertised.push(id);
|
|
691
692
|
if (status.state === "loaded" || status.state === "loading") resident.push(id);
|
|
692
693
|
}
|
|
693
|
-
return { advertised, resident };
|
|
694
|
+
return { advertised, resident, cacheAdvisories: probe.cacheAdvisories ?? [] };
|
|
694
695
|
}
|
|
695
696
|
|
|
696
697
|
/**
|
|
@@ -701,6 +702,10 @@ async function probeAdvertisedModels(
|
|
|
701
702
|
* placeholder id it was saved with called out. A target with neither list is
|
|
702
703
|
* a WARN, not a pass, because nothing was verified. Network-bound like the
|
|
703
704
|
* runtime sweep, so it is not part of the synchronous `runDoctor()` core.
|
|
705
|
+
*
|
|
706
|
+
* The same probe reports server settings that defeat prefix-cache reuse. Each
|
|
707
|
+
* becomes a WARN row of its own, since the models can check out while every
|
|
708
|
+
* returning prompt still pays for a restore the operator can switch off.
|
|
704
709
|
*/
|
|
705
710
|
export async function runDoctorModelChecks(): Promise<DoctorFinding[]> {
|
|
706
711
|
let settings: ReturnType<typeof readSettings>;
|
|
@@ -724,40 +729,51 @@ export async function runDoctorModelChecks(): Promise<DoctorFinding[]> {
|
|
|
724
729
|
// unless another command in this process filled it.
|
|
725
730
|
if (registry.list().length === 0) registerBuiltinRuntimes(registry);
|
|
726
731
|
const results = await Promise.all(
|
|
727
|
-
settings.targets.map(async (target): Promise<DoctorFinding
|
|
732
|
+
settings.targets.map(async (target): Promise<DoctorFinding[]> => {
|
|
728
733
|
const runtime = registry.get(target.runtime);
|
|
729
|
-
if (!runtime) return
|
|
734
|
+
if (!runtime) return [];
|
|
730
735
|
// Cloud runtimes are validated against their catalog at configure time.
|
|
731
|
-
if (listKnownModelsForRuntime(runtime.id).length > 0) return
|
|
736
|
+
if (listKnownModelsForRuntime(runtime.id).length > 0) return [];
|
|
732
737
|
const roles = configuredModelRoles(settings, target);
|
|
733
|
-
if (roles.length === 0) return
|
|
738
|
+
if (roles.length === 0) return [];
|
|
734
739
|
const live = await probeAdvertisedModels(target, runtime);
|
|
740
|
+
const cache = (live?.cacheAdvisories ?? []).map(
|
|
741
|
+
(detail): DoctorFinding => ({ ok: true, level: "warn", name: `cache ${target.id}`, detail }),
|
|
742
|
+
);
|
|
735
743
|
const recorded = target.wireModels ?? [];
|
|
736
744
|
if (live === null && recorded.length === 0) {
|
|
737
|
-
return
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
745
|
+
return [
|
|
746
|
+
{
|
|
747
|
+
ok: true,
|
|
748
|
+
level: "warn",
|
|
749
|
+
name: `model ${target.id}`,
|
|
750
|
+
detail: `${roles.map((entry) => `${entry.role} '${entry.model}'`).join(", ")} could not be verified: the target did not answer and configure recorded no model list; run \`clio-coder targets --probe\` once it is up`,
|
|
751
|
+
},
|
|
752
|
+
];
|
|
743
753
|
}
|
|
744
754
|
const advertised = live ? live.advertised : recorded;
|
|
745
755
|
const source = live ? `advertised by ${target.url ?? target.id} now` : "recorded by configure at last save";
|
|
746
756
|
const missing = roles.filter((entry) => !advertised.includes(entry.model));
|
|
747
757
|
if (missing.length === 0) {
|
|
748
|
-
return
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
758
|
+
return [
|
|
759
|
+
{
|
|
760
|
+
ok: true,
|
|
761
|
+
name: `model ${target.id}`,
|
|
762
|
+
detail: `${roles.map((entry) => `${entry.role} '${entry.model}'`).join(", ")} ${source}`,
|
|
763
|
+
},
|
|
764
|
+
...cache,
|
|
765
|
+
];
|
|
753
766
|
}
|
|
754
767
|
const resident = live && live.resident.length > 0 ? live.resident.join(", ") : live ? "none" : "unknown";
|
|
755
|
-
return
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
768
|
+
return [
|
|
769
|
+
{
|
|
770
|
+
ok: false,
|
|
771
|
+
name: `model ${target.id}`,
|
|
772
|
+
detail: `${missing.map((entry) => `${entry.role} '${entry.model}'`).join(", ")} not ${source} (${advertised.length} ids). Resident instances: ${resident}. Re-run \`clio-coder configure --id ${target.id} --model <advertised id>\`; \`clio-coder targets --probe\` lists them`,
|
|
773
|
+
},
|
|
774
|
+
...cache,
|
|
775
|
+
];
|
|
760
776
|
}),
|
|
761
777
|
);
|
|
762
|
-
return results.
|
|
778
|
+
return results.flat();
|
|
763
779
|
}
|