@iowarp/clio-coder 0.4.9 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +11 -3
- package/CHANGELOG.md +153 -0
- package/CODE_OF_CONDUCT.md +10 -0
- package/CONTRIBUTING.md +208 -382
- package/NOTICE +8 -2
- package/README.md +199 -418
- package/ROADMAP.md +82 -0
- package/SECURITY.md +14 -11
- package/dist/acp-KS7ARGV6.js +132 -0
- package/dist/agents-YOGJ2YEJ.js +163 -0
- package/dist/assets/codewiki.json +1 -1
- package/dist/auth-CEDCO6O6.js +557 -0
- package/dist/background-YWTBPSQU.js +39 -0
- package/dist/builtins-GDYO4RTR.js +23 -0
- package/dist/chunk-27YTM2CV.js +175 -0
- package/dist/chunk-2AF6YC7Q.js +75 -0
- package/dist/chunk-2DTIWSAW.js +381 -0
- package/dist/chunk-2EMLKSCX.js +262 -0
- package/dist/chunk-2OJ3YZQP.js +665 -0
- package/dist/chunk-2VLYHHFT.js +35 -0
- package/dist/chunk-2WVPJF3Z.js +204 -0
- package/dist/chunk-33OASOS6.js +176 -0
- package/dist/chunk-3BD2LXYJ.js +19 -0
- package/dist/chunk-3JHUFKG7.js +30 -0
- package/dist/chunk-3JLTRPN7.js +711 -0
- package/dist/chunk-3LT34CAM.js +2796 -0
- package/dist/chunk-3O5JWP4L.js +1670 -0
- package/dist/chunk-3UW3KU4A.js +21 -0
- package/dist/chunk-4A6YRGV4.js +569 -0
- package/dist/chunk-4D2BRCZ3.js +67 -0
- package/dist/chunk-4SYHGVDE.js +668 -0
- package/dist/chunk-4VDHLCF5.js +66 -0
- package/dist/chunk-4WOOTKFD.js +637 -0
- package/dist/chunk-4WV4PI66.js +80 -0
- package/dist/chunk-53OXPRI6.js +195 -0
- package/dist/chunk-55RMDDFM.js +1347 -0
- package/dist/chunk-56XP4FJU.js +2025 -0
- package/dist/chunk-5B3RTYAK.js +123 -0
- package/dist/chunk-5CD243WE.js +45 -0
- package/dist/chunk-5JQR5B4D.js +709 -0
- package/dist/chunk-5KQEUIWM.js +597 -0
- package/dist/chunk-5LP5FNNR.js +915 -0
- package/dist/chunk-62UK7AGW.js +9344 -0
- package/dist/chunk-6CTHLZFB.js +563 -0
- package/dist/chunk-6EJYVCTN.js +23 -0
- package/dist/chunk-6OWUM2NC.js +12289 -0
- package/dist/chunk-6RJMYYIE.js +1023 -0
- package/dist/chunk-6W75D37F.js +643 -0
- package/dist/chunk-733ZBT5P.js +1721 -0
- package/dist/chunk-77DCC6JZ.js +3710 -0
- package/dist/chunk-7QXCO3AF.js +156 -0
- package/dist/chunk-7RET77VB.js +481 -0
- package/dist/chunk-A4MVRV4C.js +65 -0
- package/dist/chunk-ALJWT6O6.js +93 -0
- package/dist/chunk-AVSR2HKI.js +232 -0
- package/dist/chunk-B7GY6QER.js +42 -0
- package/dist/chunk-BFOSV5EZ.js +178 -0
- package/dist/chunk-BGOIM7NB.js +103 -0
- package/dist/chunk-BJH6WFIB.js +372 -0
- package/dist/chunk-BOBCCDJ6.js +1533 -0
- package/dist/chunk-BRCOSE7O.js +117 -0
- package/dist/chunk-BYFHHCFV.js +601 -0
- package/dist/chunk-C2CPOIH2.js +83 -0
- package/dist/chunk-C7AQTPCE.js +694 -0
- package/dist/chunk-CBAQPTDU.js +165 -0
- package/dist/chunk-CDQ2UC6W.js +125 -0
- package/dist/chunk-CN6SW5DC.js +177 -0
- package/dist/chunk-CRHPCPZP.js +132 -0
- package/dist/chunk-CTFPFW3H.js +44 -0
- package/dist/chunk-D3KWFOUT.js +103 -0
- package/dist/chunk-D65E25JG.js +185 -0
- package/dist/chunk-DCGHJQ2U.js +236 -0
- package/dist/chunk-DE2LU267.js +106 -0
- package/dist/chunk-DF6PI6GN.js +97 -0
- package/dist/chunk-DGC6X6XR.js +53 -0
- package/dist/chunk-DOUISWEE.js +526 -0
- package/dist/chunk-DR3TAEUA.js +188 -0
- package/dist/chunk-DVTBERFY.js +33 -0
- package/dist/chunk-DXSETN72.js +1051 -0
- package/dist/chunk-DZLR4UEH.js +128 -0
- package/dist/chunk-E6IPKW2E.js +77 -0
- package/dist/chunk-EG4ARXPC.js +139 -0
- package/dist/chunk-EKV4UBCM.js +652 -0
- package/dist/chunk-EOJPDNUP.js +1325 -0
- package/dist/chunk-EX57VVWW.js +4157 -0
- package/dist/chunk-EYTLV3W3.js +5937 -0
- package/dist/chunk-EZD2BXGP.js +475 -0
- package/dist/chunk-EZDCA34W.js +314 -0
- package/dist/chunk-FD2I4KBR.js +33 -0
- package/dist/chunk-FD3IAHQM.js +27 -0
- package/dist/chunk-FFYTC2KQ.js +416 -0
- package/dist/chunk-FGSQHUCK.js +110 -0
- package/dist/chunk-GCQFN7YI.js +32 -0
- package/dist/chunk-GGPF6LLE.js +38 -0
- package/dist/chunk-GGWI3OVM.js +215 -0
- package/dist/chunk-GLIQT7SU.js +172 -0
- package/dist/chunk-GN7QBEEI.js +95 -0
- package/dist/chunk-GRHOXDKB.js +1104 -0
- package/dist/chunk-HMN2C6YL.js +54 -0
- package/dist/chunk-HOEDA42N.js +310 -0
- package/dist/chunk-HOYZUKG7.js +192 -0
- package/dist/chunk-HQVN7G4F.js +1021 -0
- package/dist/chunk-HSQQFDB3.js +519 -0
- package/dist/chunk-I4ELN5BX.js +47 -0
- package/dist/chunk-I4Y4WKZR.js +386 -0
- package/dist/chunk-IFPDAD7R.js +797 -0
- package/dist/chunk-IN7DGBVS.js +582 -0
- package/dist/chunk-ISHUS7HC.js +396 -0
- package/dist/chunk-JPXLJSGR.js +191 -0
- package/dist/chunk-JQCLXSFI.js +69 -0
- package/dist/chunk-KBUTSJSR.js +61 -0
- package/dist/chunk-KW5HXKLJ.js +56 -0
- package/dist/chunk-L4APUGCT.js +139 -0
- package/dist/chunk-L7G7K4I2.js +505 -0
- package/dist/chunk-LAR7DX5E.js +1840 -0
- package/dist/chunk-LAVUQX3B.js +462 -0
- package/dist/chunk-LJRBX7QR.js +116 -0
- package/dist/chunk-LNOXCGN2.js +1864 -0
- package/dist/chunk-LTWH2ACR.js +23002 -0
- package/dist/chunk-LYJJ6546.js +661 -0
- package/dist/chunk-M2IPMWCN.js +457 -0
- package/dist/chunk-MGLRTOCK.js +101 -0
- package/dist/chunk-MZF5IKZT.js +160 -0
- package/dist/chunk-N24R6KWS.js +386 -0
- package/dist/chunk-NASYVWDB.js +604 -0
- package/dist/chunk-NBXFPI7U.js +195 -0
- package/dist/chunk-NDPF2N2L.js +400 -0
- package/dist/chunk-NFSK2VNU.js +446 -0
- package/dist/chunk-NG3QQSXY.js +43 -0
- package/dist/chunk-NOCSM22Y.js +63 -0
- package/dist/chunk-NVPXXW2H.js +1143 -0
- package/dist/chunk-O63U2I6I.js +30 -0
- package/dist/chunk-OJXOA6YU.js +98 -0
- package/dist/chunk-OPD7GL6F.js +1196 -0
- package/dist/chunk-OQ2EOAHA.js +14399 -0
- package/dist/chunk-OV62D6KO.js +688 -0
- package/dist/chunk-OZ76TLGU.js +740 -0
- package/dist/chunk-P4GNZPXO.js +1156 -0
- package/dist/chunk-PS6JAWJZ.js +78 -0
- package/dist/chunk-PXRCXGLK.js +1865 -0
- package/dist/chunk-QDUUOZ3S.js +108 -0
- package/dist/chunk-QG6I2T5E.js +1416 -0
- package/dist/chunk-QHSBROEW.js +308 -0
- package/dist/chunk-QNUQ7K7D.js +46 -0
- package/dist/chunk-QZTTRSJE.js +333 -0
- package/dist/chunk-R2UUNSNQ.js +1605 -0
- package/dist/chunk-R7FGRZNF.js +1794 -0
- package/dist/chunk-RNDCROSG.js +199 -0
- package/dist/chunk-S36CXHO2.js +302 -0
- package/dist/chunk-SJGS3GDI.js +575 -0
- package/dist/chunk-SQZHXUB3.js +510 -0
- package/dist/chunk-SUTLW6ND.js +686 -0
- package/dist/chunk-SYF7FVBL.js +179 -0
- package/dist/chunk-T2MDZES3.js +1577 -0
- package/dist/chunk-T33IYTZM.js +1146 -0
- package/dist/chunk-TDGYTWM6.js +49 -0
- package/dist/chunk-TGL5FZVD.js +132 -0
- package/dist/chunk-TGWZXJ7L.js +1205 -0
- package/dist/chunk-TKDRT2DF.js +114 -0
- package/dist/chunk-TV2EBCSQ.js +152 -0
- package/dist/chunk-U26XXPJS.js +367 -0
- package/dist/chunk-U5QU5ZOD.js +419 -0
- package/dist/chunk-U6YTUVOX.js +1011 -0
- package/dist/chunk-UCINIRHW.js +188 -0
- package/dist/chunk-UJD5MPP6.js +52 -0
- package/dist/chunk-URCXX7WJ.js +146 -0
- package/dist/chunk-UX2L5CUD.js +898 -0
- package/dist/chunk-UZVYEF57.js +114 -0
- package/dist/chunk-V35KZDUZ.js +218 -0
- package/dist/chunk-VESL6DQY.js +1058 -0
- package/dist/chunk-VKHLUZNO.js +986 -0
- package/dist/chunk-VOYUCAQF.js +584 -0
- package/dist/chunk-VYRQHORQ.js +414 -0
- package/dist/chunk-W53XSRQE.js +245 -0
- package/dist/chunk-X4CEFOSG.js +226 -0
- package/dist/chunk-XDHUDE5K.js +380 -0
- package/dist/chunk-XISLDHEL.js +1290 -0
- package/dist/chunk-XM34YQ2Y.js +169 -0
- package/dist/chunk-XMDBTYCH.js +661 -0
- package/dist/chunk-XS2QPZJE.js +449 -0
- package/dist/chunk-YBUECLAF.js +618 -0
- package/dist/chunk-YQ6XEFVK.js +332 -0
- package/dist/chunk-YYLCPDCC.js +990 -0
- package/dist/chunk-Z4GLJ6J4.js +1035 -0
- package/dist/chunk-ZARZ4POR.js +210 -0
- package/dist/chunk-ZJPORZTC.js +119 -0
- package/dist/chunk-ZNUZ3EXD.js +243 -0
- package/dist/chunk-ZPST2KQO.js +49 -0
- package/dist/chunk-ZR5YA6ZF.js +512 -0
- package/dist/chunk-ZU4JPCPR.js +319 -0
- package/dist/chunk-ZUKUCZYZ.js +39 -0
- package/dist/cli/index.js +56 -45
- package/dist/clio-K2PBVCEM.js +27 -0
- package/dist/clio-context-tools-GR4OHFSO.js +145 -0
- package/dist/code-nav-4X3OI6DK.js +715 -0
- package/dist/codewiki/build-worker.js +4 -4
- package/dist/compile-cache-YRB6QRO7.js +18 -0
- package/dist/components-RQOJ6NUR.js +675 -0
- package/dist/config-Q5J7UBAB.js +291 -0
- package/dist/config-XE7XYZLU.js +38 -0
- package/dist/config-graph-P3555574.js +175 -0
- package/dist/configure-KIJ32ZO6.js +104 -0
- package/dist/context-LFBQOSXT.js +344 -0
- package/dist/context-NNLBES2Y.js +82 -0
- package/dist/context-WBH3KSVR.js +302 -0
- package/dist/context-clear-YOHMQ6SQ.js +208 -0
- package/dist/context-index-X2N5UAIF.js +120 -0
- package/dist/context-map-HOSMGUG2.js +555 -0
- package/dist/context-working-set-MRAEVDNV.js +1564 -0
- package/dist/data-tool-JJPBGMQJ.js +2986 -0
- package/dist/detail-RHJOTGN4.js +139 -0
- package/dist/dispatch-runner-NC7PYNIO.js +2477 -0
- package/dist/docs-K4GBWRUX.js +342 -0
- package/dist/doctor-S5KZ2GTN.js +1138 -0
- package/dist/doctor-deep-2EJQSHIZ.js +130 -0
- package/dist/domain-loader-MB34FDPD.js +13 -0
- package/dist/eval-3D6M36N7.js +5220 -0
- package/dist/eval-inventory-SM3HNM47.js +260 -0
- package/dist/evals-FO6JEUCN.js +104 -0
- package/dist/evidence-6IYN52ET.js +262 -0
- package/dist/evidence-JVECPI3F.js +250 -0
- package/dist/evidence-XNVPPLVK.js +410 -0
- package/dist/evolve-TLPUDJDM.js +634 -0
- package/dist/extensions-ROZJ5X3J.js +311 -0
- package/dist/fleet-6RJWIOEO.js +284 -0
- package/dist/fleet-WKVBF5SZ.js +942 -0
- package/dist/fleet-commands-L6WFT7KZ.js +76 -0
- package/dist/fleet-decisions-BTQMWU5A.js +55 -0
- package/dist/fleet-graph-553DZ67Q.js +141 -0
- package/dist/fleet-inspect-236FZPRB.js +329 -0
- package/dist/fleet-new-CKUXP3CO.js +48 -0
- package/dist/fleet-preflight-NZQHABWO.js +95 -0
- package/dist/fleet-validate-7NLAE26R.js +96 -0
- package/dist/fleet-verify-E3RO6A5W.js +226 -0
- package/dist/fleet-view-KMZQY7YJ.js +144 -0
- package/dist/gui/client/assets/abnfDiagram-VCTEODGH-DPBWQwNn.js +1 -0
- package/dist/gui/client/assets/architecture-7GRP2DOG-D1w8FrFW.js +1 -0
- package/dist/gui/client/assets/architectureDiagram-5GKGNRK7-CVPgKd1-.js +36 -0
- package/dist/gui/client/assets/blockDiagram-I7D4REHJ-BLmnqkK5.js +129 -0
- package/dist/gui/client/assets/c4Diagram-7LVT6UL2-4AU9cfM7.js +38 -0
- package/dist/gui/client/assets/channel-DwFZ0m8S.js +1 -0
- package/dist/gui/client/assets/chunk-4HAMMTFA-EOWkKCav.js +62 -0
- package/dist/gui/client/assets/chunk-75Z2AOVW-CygeoIMl.js +2 -0
- package/dist/gui/client/assets/chunk-DU6HZSFF-s27fViLb.js +125 -0
- package/dist/gui/client/assets/chunk-F27PBJKO-BrHvwLsZ.js +1 -0
- package/dist/gui/client/assets/chunk-GMAD6QVW-DzPh-7jt.js +72 -0
- package/dist/gui/client/assets/chunk-GVQU2GXP-pIaQkIzm.js +1 -0
- package/dist/gui/client/assets/chunk-IMKFNOWR-BGJVE_Br.js +231 -0
- package/dist/gui/client/assets/chunk-L3NEJ4N5-B3YLuhww.js +1 -0
- package/dist/gui/client/assets/chunk-OSK3NFVY-BRj61HHU.js +10 -0
- package/dist/gui/client/assets/chunk-P2QGCYS3-Sno90KxP.js +1 -0
- package/dist/gui/client/assets/chunk-POPQ4Y6H-Cw8NTbxr.js +1 -0
- package/dist/gui/client/assets/chunk-PWAF6VOD-BIhHgz37.js +1 -0
- package/dist/gui/client/assets/chunk-SHT3W25Y-Cqv7npBj.js +168 -0
- package/dist/gui/client/assets/chunk-SVP7TREG-Hxzl6Dee.js +88 -0
- package/dist/gui/client/assets/chunk-TICWLB2K-CIFVyVP2.js +206 -0
- package/dist/gui/client/assets/classDiagram-ZZMXUADV-BJbAiI_w.js +1 -0
- package/dist/gui/client/assets/classDiagram-v2-VYDZK3BY-BJbAiI_w.js +1 -0
- package/dist/gui/client/assets/cynefin-OW5HDTMX-DecLWZ-y.js +1 -0
- package/dist/gui/client/assets/cynefinDiagram-5FMLGOSQ-CK-T2N-D.js +62 -0
- package/dist/gui/client/assets/dagre-GXQ25YYZ-C0dfg-OS.js +4 -0
- package/dist/gui/client/assets/diagram-S7CK7UJ4-EaJukVh-.js +30 -0
- package/dist/gui/client/assets/diagram-UQ7AKVKN-xcOucEtP.js +41 -0
- package/dist/gui/client/assets/diagram-VSXAHHWV-3AUJACMf.js +3 -0
- package/dist/gui/client/assets/diagram-VX7I27RA-TPknLqam.js +24 -0
- package/dist/gui/client/assets/diagram-Z3DM3KII-wa1q3YMF.js +24 -0
- package/dist/gui/client/assets/ebnfDiagram-PWID7BFC-JBCF2-s7.js +1 -0
- package/dist/gui/client/assets/erDiagram-RLTQ6QDP-CmXjXPc4.js +99 -0
- package/dist/gui/client/assets/eventmodeling-NTZA5JFV-D_1aJWYl.js +1 -0
- package/dist/gui/client/assets/flowDiagram-HODETNUW-BQtZlael.js +1 -0
- package/dist/gui/client/assets/framework-Bq-znqwW.js +9 -0
- package/dist/gui/client/assets/ganttDiagram-EL5Y4UJY-IPaL_kaa.js +292 -0
- package/dist/gui/client/assets/gitGraph-4MIJSDKK-Oy0Q3hoc.js +1 -0
- package/dist/gui/client/assets/gitGraphDiagram-WWUBYQGX-jtAuBmbc.js +106 -0
- package/dist/gui/client/assets/index-CuFuBEdL.css +1 -0
- package/dist/gui/client/assets/index-hMbEIsX0.js +87 -0
- package/dist/gui/client/assets/info-A6RAGUB7-UtEs1tv7.js +1 -0
- package/dist/gui/client/assets/infoDiagram-27XIBGKW-hlwR1pBW.js +2 -0
- package/dist/gui/client/assets/ishikawaDiagram-5VMMS53U-C6vMtfsd.js +70 -0
- package/dist/gui/client/assets/journeyDiagram-3NMN7TZE-EAwAl_PS.js +139 -0
- package/dist/gui/client/assets/kanban-definition-UXKFOSKX-CQOhRKHW.js +89 -0
- package/dist/gui/client/assets/line-DbcwGZTW.js +1 -0
- package/dist/gui/client/assets/mermaid-parser.core-C2QfVcHd.js +7 -0
- package/dist/gui/client/assets/mermaid.core-N9qUTre1.js +44 -0
- package/dist/gui/client/assets/mindmap-definition-YA3MSWOX-BR_FL9gK.js +96 -0
- package/dist/gui/client/assets/packet-AYTQ26CC-CbBJ2oAa.js +1 -0
- package/dist/gui/client/assets/pegDiagram-XKGWAZYB-BruU0IHM.js +1 -0
- package/dist/gui/client/assets/pie-WAS4IAKB-BWdSng4H.js +1 -0
- package/dist/gui/client/assets/pieDiagram-E7YTZNPT-CR3ljgdU.js +39 -0
- package/dist/gui/client/assets/quadrantDiagram-AXDQQJYC-C-boKslr.js +7 -0
- package/dist/gui/client/assets/radar-RG4KPBEZ-CGlOnAKG.js +1 -0
- package/dist/gui/client/assets/railroad-74A4TZTK-CDvuAlyC.js +1 -0
- package/dist/gui/client/assets/railroad-abnf-HS5TGJTU-CQUA9crC.js +1 -0
- package/dist/gui/client/assets/railroad-ebnf-LZEXJU2U-CD857gxq.js +1 -0
- package/dist/gui/client/assets/railroad-peg-WCYAUIDC-DUV4k35E.js +1 -0
- package/dist/gui/client/assets/railroadDiagram-O6MQD6OU-DMR4LXmA.js +1 -0
- package/dist/gui/client/assets/requirementDiagram-BXWQKSXE-DVltaF6c.js +84 -0
- package/dist/gui/client/assets/sankeyDiagram-P5KCCOFB-CHdNz472.js +40 -0
- package/dist/gui/client/assets/sequenceDiagram-WJ2MYXX4-DaMafIty.js +162 -0
- package/dist/gui/client/assets/stateDiagram-D77RDMKH-CEbBHqn3.js +1 -0
- package/dist/gui/client/assets/stateDiagram-v2-MP3YSRHH-B3JgDdFg.js +1 -0
- package/dist/gui/client/assets/swimlanes-42K2YHIH-BlPHndnJ.js +1 -0
- package/dist/gui/client/assets/swimlanesDiagram-VR7AAH4N-BPabHwsZ.js +8 -0
- package/dist/gui/client/assets/timeline-definition-24CTP7MA-E4Y1lPBI.js +120 -0
- package/dist/gui/client/assets/treeView-Q6P3EWNA-DrY0uhTN.js +1 -0
- package/dist/gui/client/assets/treemap-WGGIJYW6-CVotnLHf.js +1 -0
- package/dist/gui/client/assets/vennDiagram-4TSXK5OY-DJNrLIOF.js +34 -0
- package/dist/gui/client/assets/wardley-WFR3VGLG-ClOpAp5S.js +1 -0
- package/dist/gui/client/assets/wardleyDiagram-VM6X3IG4-qhMoKOXc.js +78 -0
- package/dist/gui/client/assets/xychartDiagram-S5SC5T6Z-CTuXoo9R.js +7 -0
- package/dist/gui/client/index.html +6 -0
- package/dist/gui/ops-worker.js +167 -0
- package/dist/gui/reads-worker.js +473 -0
- package/dist/gui/server.js +9780 -0
- package/dist/gui-QJS7XQMV.js +16 -0
- package/dist/init-DV5B6HQG.js +354 -0
- package/dist/install-6C45YXFP.js +19 -0
- package/dist/install-O7NSRU2W.js +13 -0
- package/dist/interactive-OXGYZYAS.js +22381 -0
- package/dist/interop-J7UOBOSF.js +254 -0
- package/dist/inventory-OEGIL6PY.js +144 -0
- package/dist/library-B3UPGY4V.js +83 -0
- package/dist/library-MXQA5DLT.js +309 -0
- package/dist/library-ROZAMUIL.js +496 -0
- package/dist/library-import-2LTWOVBD.js +190 -0
- package/dist/library-inventory-LJ3XHLWO.js +60 -0
- package/dist/library-validation-DARHHUNW.js +46 -0
- package/dist/mcp-2GSPYQ54.js +28 -0
- package/dist/memory-J3STUUIK.js +537 -0
- package/dist/models-Y3GMFJ2V.js +314 -0
- package/dist/monitor-LHNH577J.js +811 -0
- package/dist/orchestrator-DTAPXULA.js +12117 -0
- package/dist/panes-A743ONZ5.js +103 -0
- package/dist/panes-CTNO57ZY.js +76 -0
- package/dist/paths-3SBYJQDP.js +68 -0
- package/dist/preload-OJBMAIXF.js +140 -0
- package/dist/providers-CMETPZNS.js +232 -0
- package/dist/registry-37T4U6X2.js +15 -0
- package/dist/reset-O7EUCYWO.js +346 -0
- package/dist/resources-FY6XYFN2.js +189 -0
- package/dist/run-H64MEVTA.js +1067 -0
- package/dist/run-script-PQ5NRU3X.js +42 -0
- package/dist/settings-SNIQNXCW.js +73 -0
- package/dist/settings-controls-X6GMCPVG.js +202 -0
- package/dist/share-CAFMMQLM.js +299 -0
- package/dist/skills-ERKQUC7L.js +114 -0
- package/dist/skills-eval-CQ23MYQK.js +1099 -0
- package/dist/skills-inventory-TVUYJDVN.js +142 -0
- package/dist/slash-commands-ROG3KIFJ.js +107 -0
- package/dist/startup-background-KDWCQMWT.js +247 -0
- package/dist/steer-KKYXJSH4.js +77 -0
- package/dist/support-M3RCUUEL.js +40 -0
- package/dist/system-ZDW44ZGX.js +142 -0
- package/dist/target-runtimes-PWA22WVW.js +73 -0
- package/dist/targets-AJWA6E7Z.js +1207 -0
- package/dist/tasks-6L2JJRC5.js +39 -0
- package/dist/terminal-lease-YFUSDPAD.js +432 -0
- package/dist/tools-5XJUABRD.js +30 -0
- package/dist/trace-LA5MVR4Y.js +527 -0
- package/dist/tree-sitter-TQW3Y52T.js +4673 -0
- package/dist/tui-primitives-IUCVWLH5.js +19 -0
- package/dist/uninstall-SAWGGXAB.js +448 -0
- package/dist/upgrade-HSNSVTZG.js +300 -0
- package/dist/usage-XSILDHKF.js +1083 -0
- package/dist/verifiers-ECA5GIHL.js +633 -0
- package/dist/verify-R6QQCCEB.js +31 -0
- package/dist/version-PLZYB5KW.js +22 -0
- package/dist/web-fetch-PVZNMBOB.js +803 -0
- package/dist/wiki-generate-RP22WP5K.js +647 -0
- package/dist/with-panes-W3PAZPRF.js +629 -0
- package/dist/worker/entry.js +324 -284
- package/dist/workspace-check-3764ZKC2.js +83 -0
- package/docs/README.md +26 -10
- package/docs/architecture/acp.md +179 -12
- package/docs/architecture/artifact-placement.md +1 -1
- package/docs/architecture/capacity-and-scheduling.md +7 -8
- package/docs/architecture/context-engine.md +350 -95
- package/docs/architecture/model-catalog.md +18 -11
- package/docs/architecture/observability.md +1 -1
- package/docs/architecture/pi-boundary.md +59 -6
- package/docs/architecture/prompt-envelope-and-tools.md +147 -39
- package/docs/architecture/provider-adapter-cookbook.md +2 -2
- package/docs/architecture/safety-model.md +18 -4
- package/docs/architecture/trace-store.md +2 -2
- package/docs/architecture/tui-design.md +41 -81
- package/docs/architecture/worker-dispatch-mechanics.md +9 -1
- package/docs/gui/README.md +69 -0
- package/docs/gui/boundary-doctrine.md +104 -0
- package/docs/gui/chat-rendering-spec.md +1440 -0
- package/docs/gui/cli-surface-routing.md +148 -0
- package/docs/gui/delivery-order.md +53 -0
- package/docs/gui/event-bus-coverage.md +103 -0
- package/docs/gui/inspector-presentation.md +71 -0
- package/docs/gui/parity/01-cli-surface.md +74 -0
- package/docs/gui/parity/02-slash-and-surfaces.md +110 -0
- package/docs/gui/parity/03-domains-and-plan.md +69 -0
- package/docs/gui/performance-baseline.md +76 -0
- package/docs/gui/settings-write-surface.md +267 -0
- package/docs/gui/workflow-coverage.md +64 -0
- package/docs/guide/built-in-agents.md +1 -1
- package/docs/guide/commands-and-modes.md +256 -99
- package/docs/guide/configuration-and-targets.md +485 -124
- package/docs/guide/configuration-reference.md +165 -82
- package/docs/guide/doctor.md +127 -0
- package/docs/guide/environment-variables.md +1 -1
- package/docs/guide/exit-codes-and-output.md +3 -1
- package/docs/guide/extensions-and-sharing.md +3 -14
- package/docs/guide/fleet-dispatch.md +231 -45
- package/docs/guide/glossary.md +1 -1
- package/docs/guide/installation-and-lifecycle.md +27 -16
- package/docs/guide/interop.md +2 -2
- package/docs/guide/proactive-memory.md +154 -68
- package/docs/guide/resource-library.md +4 -0
- package/docs/guide/skills-marketplace.md +8 -4
- package/docs/guide/slurm.md +88 -0
- package/docs/guide/tool-usage.md +134 -11
- package/docs/guide/troubleshooting.md +4 -2
- package/docs/process/battletest-2026-09-20-fixes.md +161 -0
- package/docs/process/configure-tree-proposal.md +637 -0
- package/docs/process/documentation-coverage.md +8 -0
- package/docs/process/documentation-guide.md +18 -1
- package/docs/process/eval-runner.md +58 -14
- package/docs/process/performance-methodology.md +11 -3
- package/docs/process/release-cut-checklist.md +29 -3
- package/docs/process/tool-audit-v0.4.9.md +3 -0
- package/examples/extensions/README.md +1 -3
- package/examples/extensions/lab-status/clio-coder-extension.json +1 -1
- package/examples/extensions/measurements/clio-coder-extension.json +1 -1
- package/library/registry.yaml +30 -5
- package/library/skills/git/fix-issue/SKILL.md +2 -1
- package/library/skills/git/fix-issue/plugin.json +1 -1
- package/library/skills/git/ship/SKILL.md +2 -1
- package/library/skills/git/ship/plugin.json +1 -1
- package/library/skills/meta/clio-coder-test/SKILL.md +5 -6
- package/library/skills/meta/clio-coder-test/evals.md +2 -2
- package/library/skills/meta/clio-coder-test/references/test-map.md +2 -2
- package/library/skills/registry.yaml +9 -5
- package/library/skills/research/slurm-jobs/SKILL.md +110 -0
- package/library/skills/research/slurm-jobs/evals.md +39 -0
- package/library/skills/research/slurm-jobs/plugin.json +23 -0
- package/library/skills/skill-marketplace.json +18 -2
- package/package.json +15 -10
- package/src/cli/args.ts +59 -0
- package/src/cli/argv.ts +7 -0
- package/src/cli/clio.ts +9 -1
- package/src/cli/configure-controls.ts +136 -0
- package/src/cli/configure-onboarding.ts +24 -7
- package/src/cli/configure-quick.ts +32 -7
- package/src/cli/configure-target.ts +11 -1
- package/src/cli/configure.ts +253 -256
- package/src/cli/docs-server.ts +290 -0
- package/src/cli/docs.ts +60 -15
- package/src/cli/doctor-deep.ts +126 -0
- package/src/cli/doctor-hpc.ts +122 -0
- package/src/cli/doctor-slurm.ts +130 -0
- package/src/cli/doctor-task-worktrees.ts +88 -0
- package/src/cli/doctor.ts +165 -16
- package/src/cli/fleet-verify.ts +3 -2
- package/src/cli/gui.ts +111 -0
- package/src/cli/index.ts +14 -4
- package/src/cli/library.ts +2 -7
- package/src/cli/modes/json-stream.ts +4 -2
- package/src/cli/modes/print.ts +252 -25
- package/src/cli/run.ts +199 -71
- package/src/cli/skills.ts +25 -7
- package/src/cli/targets.ts +87 -9
- package/src/cli/uninstall.ts +28 -8
- package/src/cli/usage.ts +2 -1
- package/src/cli/workspace-check.ts +71 -0
- package/src/core/bash-exec.ts +8 -2
- package/src/core/bus-events.ts +32 -3
- package/src/core/cache-telemetry.ts +3 -2
- package/src/core/compile-cache.ts +11 -1
- package/src/core/config.ts +59 -6
- package/src/core/defaults.ts +27 -5
- package/src/core/diagnostics.ts +25 -0
- package/src/core/event-bus.ts +2 -1
- package/src/core/gateway-routing.ts +10 -3
- package/src/core/git-commit-attribution.ts +2 -1
- package/src/core/naming-compat.ts +6 -4
- package/src/core/package-root.ts +0 -9
- package/src/core/path-canonical.ts +143 -24
- package/src/core/residency-target-key.ts +2 -6
- package/src/core/run-overrides.ts +1 -1
- package/src/core/settings-awareness.ts +108 -0
- package/src/core/settings-controls.ts +673 -0
- package/src/core/settings-navigation.ts +116 -0
- package/src/core/theme-token-hex.ts +19 -9
- package/src/core/turn-constraints.ts +52 -0
- package/src/domains/agents/builtins/scout.md +7 -17
- package/src/domains/agents/catalog.ts +5 -1
- package/src/domains/agents/extension.ts +2 -1
- package/src/domains/agents/registry.ts +4 -3
- package/src/domains/agents/result-contract.ts +132 -1
- package/src/domains/config/classify.ts +11 -7
- package/src/domains/config/extension.ts +5 -1
- package/src/domains/config/keybindings.ts +2 -2
- package/src/domains/context/codewiki/coordinator.ts +10 -0
- package/src/domains/context/worker/snapshot.ts +6 -3
- package/src/domains/dispatch/active-route-planner.ts +2 -0
- package/src/domains/dispatch/agent-candidates.ts +5 -1
- package/src/domains/dispatch/capability-match.ts +1 -1
- package/src/domains/dispatch/contract.ts +28 -0
- package/src/domains/dispatch/event-pump.ts +37 -3
- package/src/domains/dispatch/extension.ts +391 -48
- package/src/domains/dispatch/failure-classification.ts +37 -2
- package/src/domains/dispatch/receipt-integrity.ts +3 -0
- package/src/domains/dispatch/run-identity.ts +10 -3
- package/src/domains/dispatch/target-breaker.ts +163 -0
- package/src/domains/dispatch/types.ts +29 -2
- package/src/domains/dispatch/worker-model-loads.ts +66 -0
- package/src/domains/dispatch/worker-protocol.ts +20 -1
- package/src/domains/dispatch/worker-spawn.ts +28 -2
- package/src/domains/eval/artifacts/redact.ts +9 -0
- package/src/domains/eval/metrics/noop.ts +61 -0
- package/src/domains/eval/reports/junit.ts +5 -1
- package/src/domains/eval/reports/text.ts +7 -0
- package/src/domains/eval/runners/clio-run.ts +19 -8
- package/src/domains/eval/runners/external-command.ts +29 -4
- package/src/domains/eval/schema/adapter.ts +6 -2
- package/src/domains/eval/schema/suite.ts +2 -0
- package/src/domains/eval/schema/validate.ts +3 -0
- package/src/domains/eval/suites/run.ts +167 -26
- package/src/domains/evidence/detail.ts +3 -2
- package/src/domains/extensions/operator-runtime.ts +11 -4
- package/src/domains/gateway/mcp/client.ts +1 -1
- package/src/domains/lifecycle/doctor.ts +42 -26
- package/src/domains/lifecycle/migrations/2026-09-18-ollama-runtime-id.ts +38 -0
- package/src/domains/lifecycle/migrations/index.ts +2 -0
- package/src/domains/middleware/demo-guidance.ts +36 -0
- package/src/domains/middleware/dispatch-nudge.ts +1 -1
- package/src/domains/middleware/memory-intervention.ts +51 -4
- package/src/domains/middleware/runtime.ts +5 -4
- package/src/domains/middleware/skills-reminder.ts +29 -52
- package/src/domains/middleware/task-nudge.ts +1 -0
- package/src/domains/middleware/watchdog.ts +4 -0
- package/src/domains/observability/extension.ts +2 -1
- package/src/domains/observability/out-of-turn-usage.ts +3 -2
- package/src/domains/observability/projection.ts +3 -2
- package/src/domains/observability/worker-progress.ts +48 -0
- package/src/domains/prompts/compiler.ts +148 -52
- package/src/domains/prompts/contract.ts +3 -3
- package/src/domains/prompts/demo-guidance.ts +8 -0
- package/src/domains/prompts/extension.ts +12 -7
- package/src/domains/prompts/fragments/identity/clio.md +2 -1
- package/src/domains/prompts/fragments/identity/docs-routing.md +2 -0
- package/src/domains/prompts/fragments/identity/self-awareness.md +4 -0
- package/src/domains/prompts/fragments/operating/contract.md +16 -7
- package/src/domains/prompts/fragments/operating/delegation.md +29 -13
- package/src/domains/prompts/fragments/operating/skills.md +18 -10
- package/src/domains/prompts/fragments/operating/worker.md +2 -0
- package/src/domains/providers/cache-deployment.ts +45 -2
- package/src/domains/providers/contract.ts +52 -11
- package/src/domains/providers/extension.ts +230 -53
- package/src/domains/providers/model-discovery.ts +22 -8
- package/src/domains/providers/models/local-models/clio-coder-local-coding-targets.yaml +5 -7
- package/src/domains/providers/plugins.ts +3 -4
- package/src/domains/providers/probe/fingerprint.ts +2 -2
- package/src/domains/providers/probe/reasoning.ts +9 -16
- package/src/domains/providers/probe/tool-call.ts +236 -0
- package/src/domains/providers/registry.ts +51 -8
- package/src/domains/providers/runtime-resolution.ts +60 -12
- package/src/domains/providers/runtimes/boot-manifest.ts +1 -1
- package/src/domains/providers/runtimes/builtins.ts +2 -2
- package/src/domains/providers/runtimes/common/lmstudio-http.ts +57 -41
- package/src/domains/providers/runtimes/common/local-synth.ts +3 -1
- package/src/domains/providers/runtimes/common/ollama-model-ids.ts +11 -0
- package/src/domains/providers/runtimes/common/probe-helpers.ts +53 -0
- package/src/domains/providers/runtimes/local-native/llamacpp-completion.ts +3 -1
- package/src/domains/providers/runtimes/local-native/llamacpp-embed.ts +7 -13
- package/src/domains/providers/runtimes/local-native/llamacpp-rerank.ts +7 -17
- package/src/domains/providers/runtimes/local-native/llamacpp.ts +1 -0
- package/src/domains/providers/runtimes/local-native/ollama.ts +211 -0
- package/src/domains/providers/runtimes/protocol/litellm.ts +77 -65
- package/src/domains/providers/support.ts +1 -1
- package/src/domains/providers/types/local-model-quirks.ts +2 -3
- package/src/domains/providers/types/runtime-descriptor.ts +23 -3
- package/src/domains/providers/types/target-descriptor.ts +15 -3
- package/src/domains/resources/collision.ts +7 -2
- package/src/domains/resources/index.ts +1 -0
- package/src/domains/resources/library-actions.ts +4 -2
- package/src/domains/resources/library-inventory.ts +6 -2
- package/src/domains/resources/prompts/loader.ts +20 -7
- package/src/domains/resources/skills/availability.ts +56 -0
- package/src/domains/resources/skills/loader.ts +20 -9
- package/src/domains/safety/action-classifier.ts +282 -31
- package/src/domains/safety/audit.ts +2 -1
- package/src/domains/safety/autonomy.ts +54 -11
- package/src/domains/safety/decision-presentation.ts +17 -4
- package/src/domains/safety/finish-contract-registration.ts +25 -1
- package/src/domains/safety/finish-contract.ts +20 -5
- package/src/domains/safety/path-policy.ts +6 -2
- package/src/domains/safety/policy-engine.ts +168 -48
- package/src/domains/safety/protected-artifacts.ts +527 -16
- package/src/domains/safety/read-scope.ts +120 -0
- package/src/domains/safety/skill-authority.ts +52 -16
- package/src/domains/scheduling/cluster.ts +14 -3
- package/src/domains/scheduling/contract.ts +7 -0
- package/src/domains/scheduling/extension.ts +20 -9
- package/src/domains/scheduling/local-capacity.ts +160 -0
- package/src/domains/session/context-accounting.ts +44 -31
- package/src/domains/session/context-ledger.ts +10 -3
- package/src/domains/session/entries.ts +4 -0
- package/src/domains/session/history.ts +1 -1
- package/src/domains/session/prompt-cache.ts +1 -0
- package/src/domains/session/prompt-manifest.ts +3 -1
- package/src/domains/session/retry.ts +4 -6
- package/src/domains/session/task-board.ts +19 -4
- package/src/domains/session/tree/preview.ts +3 -2
- package/src/engine/acp/commands.ts +653 -0
- package/src/engine/acp/server.ts +639 -20
- package/src/engine/acp/tool-mediator.ts +30 -7
- package/src/engine/acp/types.ts +58 -0
- package/src/engine/agent.ts +55 -10
- package/src/engine/ai.ts +11 -2
- package/src/engine/api-registry.ts +5 -4
- package/src/engine/apis/degraded-inference.ts +243 -0
- package/src/engine/apis/llamacpp-residency.ts +50 -6
- package/src/engine/apis/lmstudio-residency.ts +3 -5
- package/src/engine/apis/lmstudio.ts +137 -31
- package/src/engine/apis/ollama-http.ts +118 -0
- package/src/engine/apis/ollama-native.ts +216 -97
- package/src/engine/apis/openai-completions.ts +191 -189
- package/src/engine/apis/output-budget.ts +3 -1
- package/src/engine/apis/residency-lock.ts +2 -1
- package/src/engine/apis/residency.ts +339 -89
- package/src/engine/apis/sampling-overrides.ts +23 -2
- package/src/engine/apis/types.ts +1 -2
- package/src/engine/claude/tool-safety.ts +30 -5
- package/src/engine/context.ts +13 -0
- package/src/engine/env-api-keys.ts +2 -1
- package/src/engine/gemma-channel-filter.ts +3 -2
- package/src/engine/instrumented-tui.ts +25 -0
- package/src/engine/loop-guard.ts +172 -6
- package/src/engine/pi-mono-names.ts +16 -0
- package/src/engine/prewarm.ts +44 -15
- package/src/engine/provider-payload.ts +52 -14
- package/src/engine/session.ts +4 -2
- package/src/engine/worker-events.ts +9 -1
- package/src/engine/worker-runtime.ts +269 -42
- package/src/engine/worker-tools.ts +8 -3
- package/src/entry/boot-options.ts +23 -0
- package/src/entry/orchestrator.ts +207 -36
- package/src/interactive/assistant-generation-timing.ts +52 -0
- package/src/interactive/chat-loop-messages.ts +4 -1
- package/src/interactive/chat-loop.ts +59 -9
- package/src/interactive/chat-panel.ts +10 -1
- package/src/interactive/clio-editor.ts +51 -79
- package/src/interactive/context-meter.ts +1 -0
- package/src/interactive/context-overlay.ts +21 -8
- package/src/interactive/cost-overlay.ts +1 -1
- package/src/interactive/dispatch-board.ts +39 -8
- package/src/interactive/editor-bash.ts +0 -34
- package/src/interactive/editor-rails.ts +43 -0
- package/src/interactive/editor-submit.ts +34 -2
- package/src/interactive/footer/dashboard.ts +67 -38
- package/src/interactive/footer/demo-hints.ts +40 -0
- package/src/interactive/footer/key-hints.ts +21 -0
- package/src/interactive/footer/notifications.ts +1 -1
- package/src/interactive/footer/pages.ts +486 -0
- package/src/interactive/footer/system-metrics.ts +147 -0
- package/src/interactive/footer/widgets.ts +158 -63
- package/src/interactive/footer-panel.ts +29 -7
- package/src/interactive/interactive-application.ts +109 -21
- package/src/interactive/interactive-event-projection.ts +6 -2
- package/src/interactive/interactive-presentation.ts +25 -29
- package/src/interactive/interactive-slash-runtime.ts +32 -18
- package/src/interactive/interactive-subscriptions.ts +25 -5
- package/src/interactive/interactive-tickers.ts +21 -5
- package/src/interactive/keybinding-manager.ts +9 -0
- package/src/interactive/overlay-frame.ts +29 -7
- package/src/interactive/overlay-lifecycle.ts +5 -3
- package/src/interactive/overlay-model-selectors.ts +4 -0
- package/src/interactive/overlay-permission-lifecycle.ts +6 -5
- package/src/interactive/overlays/ask-user.ts +103 -110
- package/src/interactive/overlays/help-reference.ts +1 -0
- package/src/interactive/overlays/message-picker.ts +3 -29
- package/src/interactive/overlays/session-selector.ts +3 -2
- package/src/interactive/overlays/settings-sections.ts +2 -30
- package/src/interactive/overlays/settings.ts +310 -607
- package/src/interactive/permission-hint.ts +3 -3
- package/src/interactive/permission-overlay.ts +45 -27
- package/src/interactive/renderers/doctor-report.ts +43 -0
- package/src/interactive/renderers/tool-execution.ts +87 -62
- package/src/interactive/renderers/worker-entry.ts +76 -3
- package/src/interactive/side-question.ts +3 -1
- package/src/interactive/slash-commands.ts +78 -23
- package/src/interactive/startup-background.ts +131 -0
- package/src/interactive/startup-diagnostics.ts +16 -0
- package/src/interactive/status/state-machine.ts +16 -3
- package/src/interactive/status/types.ts +2 -0
- package/src/interactive/status/verbs.ts +1 -1
- package/src/interactive/terminal-lease.ts +26 -22
- package/src/interactive/theme/components.ts +1 -1
- package/src/interactive/theme/rules.ts +1 -1
- package/src/interactive/theme/tokens.ts +16 -10
- package/src/interactive/transcript-detail.ts +4 -0
- package/src/interactive/turn-context.ts +56 -20
- package/src/interactive/turn-middleware.ts +57 -9
- package/src/interactive/turn-prewarm.ts +121 -18
- package/src/interactive/turn-recovery.ts +10 -8
- package/src/interactive/turn-runtime.ts +74 -29
- package/src/interactive/turn-state.ts +3 -0
- package/src/interactive/welcome-art.ts +36 -0
- package/src/interactive/welcome-dashboard.ts +209 -49
- package/src/interactive/worker-replay.ts +4 -0
- package/src/interactive/worker-stream.ts +17 -2
- package/src/tools/agent-tools.ts +22 -1
- package/src/tools/builtin-tool-catalog.ts +2 -2
- package/src/tools/codewiki/code-nav.ts +1 -1
- package/src/tools/codewiki/shared.ts +39 -1
- package/src/tools/compete-worktrees.ts +8 -91
- package/src/tools/context/docs-engine.ts +44 -12
- package/src/tools/context/index.ts +126 -22
- package/src/tools/context/library.ts +1 -1
- package/src/tools/context/surface.ts +12 -7
- package/src/tools/core-bootstrap.ts +3 -0
- package/src/tools/dispatch-runner.ts +18 -0
- package/src/tools/dispatch-schema.ts +187 -206
- package/src/tools/edit.ts +46 -42
- package/src/tools/file-mutation-queue.ts +25 -26
- package/src/tools/gateway/clio-context-surface.ts +1 -1
- package/src/tools/gateway/index.ts +7 -3
- package/src/tools/gateway/mcp-capabilities.ts +5 -3
- package/src/tools/grep.ts +14 -2
- package/src/tools/ls.ts +1 -4
- package/src/tools/monitor.ts +14 -1
- package/src/tools/observation.ts +1 -3
- package/src/tools/path-utils.ts +51 -18
- package/src/tools/process-lease.ts +99 -0
- package/src/tools/read.ts +1 -1
- package/src/tools/registry.ts +71 -9
- package/src/tools/task-worktree.ts +296 -17
- package/src/tools/tasks.ts +29 -7
- package/src/tools/worker-evidence.ts +60 -1
- package/src/tools/worktree-root.ts +252 -0
- package/src/tools/write.ts +34 -30
- package/src/worker/entry.ts +18 -1
- package/src/worker/protocol.ts +54 -1
- package/src/worker/spec-contract.ts +22 -2
- package/dist/acp-ZWZCPS2A.js +0 -130
- package/dist/agents-LYSOWZUE.js +0 -150
- package/dist/auth-WBQGKWQ5.js +0 -551
- package/dist/background-BUMOBAQN.js +0 -37
- package/dist/builtins-ODRJOEDI.js +0 -22
- package/dist/chunk-2DRRZ57Q.js +0 -571
- package/dist/chunk-2JBZYUPY.js +0 -105
- package/dist/chunk-2VBWFXYE.js +0 -198
- package/dist/chunk-2X2R3UTH.js +0 -1018
- package/dist/chunk-32KJPXAM.js +0 -75
- package/dist/chunk-37LW32LZ.js +0 -32
- package/dist/chunk-3A3CUMKA.js +0 -54
- package/dist/chunk-3AND2EFU.js +0 -215
- package/dist/chunk-3RDHGNU7.js +0 -647
- package/dist/chunk-3SUDBGEI.js +0 -1323
- package/dist/chunk-3TQN67I2.js +0 -396
- package/dist/chunk-3U4BL2EV.js +0 -103
- package/dist/chunk-3UQADNG2.js +0 -302
- package/dist/chunk-434LRQ6Z.js +0 -13441
- package/dist/chunk-4ATBOFRP.js +0 -7802
- package/dist/chunk-4DNL43EZ.js +0 -139
- package/dist/chunk-4HFJKRGZ.js +0 -5250
- package/dist/chunk-555E2WVV.js +0 -322
- package/dist/chunk-5GZICIYO.js +0 -462
- package/dist/chunk-5PHVPU4G.js +0 -160
- package/dist/chunk-5RTEFNBP.js +0 -197
- package/dist/chunk-64XJW7NT.js +0 -380
- package/dist/chunk-6TKOFFGE.js +0 -1058
- package/dist/chunk-6UJ7RDI7.js +0 -1143
- package/dist/chunk-7FBCRWVT.js +0 -1801
- package/dist/chunk-7JSOSVLP.js +0 -283
- package/dist/chunk-7N3OLLSL.js +0 -637
- package/dist/chunk-7QQRPB2E.js +0 -915
- package/dist/chunk-A6DULIMH.js +0 -986
- package/dist/chunk-AB3QXXBC.js +0 -123
- package/dist/chunk-ACCECAH4.js +0 -49
- package/dist/chunk-AM6CEP2K.js +0 -2120
- package/dist/chunk-AUHVBIDW.js +0 -19
- package/dist/chunk-AY4XE6GN.js +0 -665
- package/dist/chunk-BBA2TAWV.js +0 -667
- package/dist/chunk-BFPHMSK7.js +0 -169
- package/dist/chunk-BMNVVKEW.js +0 -604
- package/dist/chunk-CKK25WN3.js +0 -72
- package/dist/chunk-CTGZCEI6.js +0 -33
- package/dist/chunk-DIAJYJYG.js +0 -446
- package/dist/chunk-DVNAPPXU.js +0 -27
- package/dist/chunk-DXVMLM3Z.js +0 -92
- package/dist/chunk-E3LEPLQ2.js +0 -68
- package/dist/chunk-EHZRAB4U.js +0 -63
- package/dist/chunk-EM2DIQAJ.js +0 -179
- package/dist/chunk-EM2WNQS2.js +0 -93
- package/dist/chunk-ETF4ROKH.js +0 -595
- package/dist/chunk-F2YM3JY4.js +0 -22513
- package/dist/chunk-FEBQWHJT.js +0 -1023
- package/dist/chunk-FPS4R2RN.js +0 -1975
- package/dist/chunk-GD55RTIW.js +0 -33
- package/dist/chunk-GJDRMBDI.js +0 -573
- package/dist/chunk-GREYLTZ5.js +0 -658
- package/dist/chunk-H2WSCZZT.js +0 -238
- package/dist/chunk-H6IUCY6Q.js +0 -117
- package/dist/chunk-H72DCH3E.js +0 -563
- package/dist/chunk-H7TXJR23.js +0 -705
- package/dist/chunk-HBJQQTKM.js +0 -40
- package/dist/chunk-HCVKSGNZ.js +0 -990
- package/dist/chunk-HVCAY2FH.js +0 -67
- package/dist/chunk-I47EJPYL.js +0 -1377
- package/dist/chunk-IALGWTLO.js +0 -36
- package/dist/chunk-IALZJE37.js +0 -1710
- package/dist/chunk-IC7JXLOM.js +0 -1577
- package/dist/chunk-IOSVTTCD.js +0 -108
- package/dist/chunk-IPTPMLA6.js +0 -475
- package/dist/chunk-IZZI3SKQ.js +0 -128
- package/dist/chunk-JABWPKFY.js +0 -27
- package/dist/chunk-JIYWMQZ5.js +0 -175
- package/dist/chunk-JKU34ACI.js +0 -693
- package/dist/chunk-JOBN2YQQ.js +0 -176
- package/dist/chunk-JOL2QRLE.js +0 -152
- package/dist/chunk-JTR3VSV3.js +0 -44
- package/dist/chunk-JU6MAMRJ.js +0 -362
- package/dist/chunk-JURMQWVJ.js +0 -15
- package/dist/chunk-K2BLQC5E.js +0 -262
- package/dist/chunk-K3XN4LZ4.js +0 -402
- package/dist/chunk-KIVFXGBM.js +0 -688
- package/dist/chunk-KKRXONXG.js +0 -43
- package/dist/chunk-KOAHT3N2.js +0 -395
- package/dist/chunk-KP5BPXR3.js +0 -73
- package/dist/chunk-KQ6IDQIB.js +0 -39
- package/dist/chunk-KRJQG47M.js +0 -1289
- package/dist/chunk-KW6OJ7IY.js +0 -221
- package/dist/chunk-L3NBWLSN.js +0 -314
- package/dist/chunk-L4RUTLRL.js +0 -59
- package/dist/chunk-LGTVWPRN.js +0 -47
- package/dist/chunk-LSQW6KZO.js +0 -200
- package/dist/chunk-LTR5QCLS.js +0 -446
- package/dist/chunk-LWJYOHT3.js +0 -165
- package/dist/chunk-M6YLF66Z.js +0 -2687
- package/dist/chunk-MJ4QEJVT.js +0 -185
- package/dist/chunk-MO65K5CH.js +0 -1148
- package/dist/chunk-MTOZEQHL.js +0 -637
- package/dist/chunk-MZDPF35R.js +0 -45
- package/dist/chunk-MZKYVIWW.js +0 -188
- package/dist/chunk-NBPA5QM6.js +0 -386
- package/dist/chunk-NMBEW4PP.js +0 -688
- package/dist/chunk-NPLLK3HO.js +0 -3610
- package/dist/chunk-NSYGPIVW.js +0 -39
- package/dist/chunk-NXTV5OI5.js +0 -1020
- package/dist/chunk-NYDG4QP4.js +0 -689
- package/dist/chunk-OA2GDACN.js +0 -146
- package/dist/chunk-PJI57EC6.js +0 -236
- package/dist/chunk-PJJBUGMR.js +0 -4484
- package/dist/chunk-PNJE7JPS.js +0 -50
- package/dist/chunk-PP23PZEV.js +0 -1347
- package/dist/chunk-PPIFDSBK.js +0 -409
- package/dist/chunk-PTFISXQO.js +0 -319
- package/dist/chunk-QB33Z5S7.js +0 -1865
- package/dist/chunk-QGNII5VC.js +0 -110
- package/dist/chunk-QH3ZTUOA.js +0 -113
- package/dist/chunk-QI72X67S.js +0 -481
- package/dist/chunk-QJMRYTCX.js +0 -56
- package/dist/chunk-QKHZZFKH.js +0 -98
- package/dist/chunk-RDKX2PME.js +0 -66
- package/dist/chunk-RL7LJYN4.js +0 -66
- package/dist/chunk-RPMNIFRY.js +0 -65
- package/dist/chunk-RQROVOV3.js +0 -670
- package/dist/chunk-S34A7BSP.js +0 -97
- package/dist/chunk-SJETVJHX.js +0 -119
- package/dist/chunk-SJMNU4ZS.js +0 -634
- package/dist/chunk-SL2RDHKO.js +0 -19
- package/dist/chunk-SLLG2G44.js +0 -85
- package/dist/chunk-SQAZN2V3.js +0 -2744
- package/dist/chunk-SQBT46OF.js +0 -814
- package/dist/chunk-SRCEQKQS.js +0 -165
- package/dist/chunk-TCUOGIL2.js +0 -52
- package/dist/chunk-TIWPKCVO.js +0 -42
- package/dist/chunk-U44YYLVV.js +0 -1529
- package/dist/chunk-UIU7MGZ3.js +0 -486
- package/dist/chunk-USBBEKHW.js +0 -177
- package/dist/chunk-VHKTOLEW.js +0 -1416
- package/dist/chunk-VPWGADBG.js +0 -3151
- package/dist/chunk-VQD7NH7Z.js +0 -356
- package/dist/chunk-VWFCAK34.js +0 -697
- package/dist/chunk-W5RM7YAH.js +0 -78
- package/dist/chunk-W72LLZAV.js +0 -243
- package/dist/chunk-WGRDABW7.js +0 -207
- package/dist/chunk-WWRV5RJI.js +0 -165
- package/dist/chunk-XCUDZQLX.js +0 -195
- package/dist/chunk-XFLSL7BT.js +0 -386
- package/dist/chunk-XJZEDCNT.js +0 -391
- package/dist/chunk-XLLEL3K7.js +0 -709
- package/dist/chunk-XNZWWDC3.js +0 -686
- package/dist/chunk-XRECG65F.js +0 -308
- package/dist/chunk-XTQ7MEJG.js +0 -457
- package/dist/chunk-XW2UZICE.js +0 -372
- package/dist/chunk-Y3M2T5RO.js +0 -891
- package/dist/chunk-YGDMBK7O.js +0 -567
- package/dist/chunk-YJCCMYYT.js +0 -125
- package/dist/chunk-YPQOPFP7.js +0 -797
- package/dist/chunk-YQYINEJI.js +0 -132
- package/dist/chunk-ZF6CV4WZ.js +0 -5614
- package/dist/chunk-ZKJU55MX.js +0 -326
- package/dist/chunk-ZKQ63XZ5.js +0 -1196
- package/dist/chunk-ZKVMDNAN.js +0 -962
- package/dist/chunk-ZST3FRCV.js +0 -132
- package/dist/clio-JUDCLNHC.js +0 -26
- package/dist/clio-context-tools-FT672MNZ.js +0 -136
- package/dist/code-nav-7OVCTP2Z.js +0 -688
- package/dist/compile-cache-WJEPUZEJ.js +0 -16
- package/dist/components-OZXZMDWU.js +0 -674
- package/dist/config-P3ZQVF63.js +0 -275
- package/dist/config-graph-GKAOBAS5.js +0 -160
- package/dist/configure-25LRYZJG.js +0 -86
- package/dist/context-72VQV7JX.js +0 -73
- package/dist/context-COWRWXP3.js +0 -286
- package/dist/context-WB3D474G.js +0 -344
- package/dist/context-clear-Y4LYMWC6.js +0 -192
- package/dist/context-index-W6A4V7OC.js +0 -120
- package/dist/context-map-DKL3QT6D.js +0 -555
- package/dist/context-working-set-TMZYVC7A.js +0 -1560
- package/dist/data-tool-KMBWKKWR.js +0 -2987
- package/dist/detail-4GLROGY5.js +0 -123
- package/dist/dispatch-runner-TR3LBP5P.js +0 -2446
- package/dist/docs-ZK777W2G.js +0 -101
- package/dist/doctor-WC4OV2OB.js +0 -814
- package/dist/eval-FUNWJNUJ.js +0 -5050
- package/dist/eval-inventory-CX24K2JT.js +0 -260
- package/dist/evals-L73EBHSU.js +0 -104
- package/dist/evidence-AVJ2RTHX.js +0 -392
- package/dist/evidence-P4NZOAK7.js +0 -233
- package/dist/evidence-Y55WKYHH.js +0 -246
- package/dist/evolve-MAWKRYWF.js +0 -617
- package/dist/extensions-PYQH3H47.js +0 -308
- package/dist/fleet-M4H2QBWT.js +0 -268
- package/dist/fleet-ULBXXRDR.js +0 -923
- package/dist/fleet-commands-7NNC4JZU.js +0 -76
- package/dist/fleet-decisions-EHEY7KPU.js +0 -52
- package/dist/fleet-graph-LQ2AHZT3.js +0 -136
- package/dist/fleet-inspect-5IGBIIYZ.js +0 -312
- package/dist/fleet-new-RCKGSRDV.js +0 -48
- package/dist/fleet-preflight-UTTNOKMG.js +0 -27
- package/dist/fleet-validate-YGILJKA6.js +0 -91
- package/dist/fleet-verify-AUWTCDKR.js +0 -210
- package/dist/fleet-view-TGUFCY5A.js +0 -127
- package/dist/init-GFN2Z7NF.js +0 -333
- package/dist/install-3RZDDP23.js +0 -13
- package/dist/install-6PIF6F6W.js +0 -19
- package/dist/interop-EF5JUWWK.js +0 -246
- package/dist/inventory-I6VJDDYF.js +0 -127
- package/dist/library-3J5IO2OJ.js +0 -75
- package/dist/library-IJTOFTDS.js +0 -307
- package/dist/library-Z3KZSHPE.js +0 -492
- package/dist/library-import-IMKFLDHX.js +0 -183
- package/dist/library-inventory-CQP5D6GU.js +0 -56
- package/dist/library-validation-33UTX7AI.js +0 -42
- package/dist/mcp-5FWZKUS6.js +0 -26
- package/dist/memory-36CWN67Y.js +0 -520
- package/dist/models-KQ6PQJJQ.js +0 -302
- package/dist/monitor-XX6ZD6KC.js +0 -785
- package/dist/orchestrator-SK6HDAOP.js +0 -42067
- package/dist/panes-L27QRXUH.js +0 -74
- package/dist/panes-LXZIWNOZ.js +0 -103
- package/dist/paths-7DJDU4P4.js +0 -67
- package/dist/preload-K2TDYI4Y.js +0 -124
- package/dist/registry-DESGAXWK.js +0 -11
- package/dist/reset-73VU3XNT.js +0 -345
- package/dist/resources-3BYJYVYL.js +0 -181
- package/dist/run-AR7PY6GW.js +0 -896
- package/dist/run-script-H2KUDIII.js +0 -41
- package/dist/settings-3VMBMWID.js +0 -72
- package/dist/share-HVWH4FPF.js +0 -293
- package/dist/skills-5TYEY75Q.js +0 -100
- package/dist/skills-eval-CK3MD63Z.js +0 -1083
- package/dist/skills-inventory-KSFYG3I6.js +0 -138
- package/dist/slash-commands-DMVHML7P.js +0 -98
- package/dist/steer-XCD6V3EW.js +0 -77
- package/dist/support-JAZL6VBR.js +0 -38
- package/dist/system-3TDQRMZZ.js +0 -116
- package/dist/targets-EZKHAYRN.js +0 -1117
- package/dist/tasks-SNEFHWYW.js +0 -36
- package/dist/terminal-lease-BNLFA4OF.js +0 -419
- package/dist/tools-7IM6BDCE.js +0 -28
- package/dist/trace-C3MBGD4S.js +0 -524
- package/dist/tree-sitter-AQUUOSYM.js +0 -4673
- package/dist/tui-primitives-36BY2774.js +0 -18
- package/dist/uninstall-WWLOSZ42.js +0 -432
- package/dist/upgrade-ETK2JNSJ.js +0 -297
- package/dist/usage-S2HOB7BZ.js +0 -1065
- package/dist/verifiers-QDTEVH7R.js +0 -632
- package/dist/verify-SUKUK6XM.js +0 -31
- package/dist/version-RFPKO6T7.js +0 -21
- package/dist/web/client/assets/abnfDiagram-VCTEODGH-BznNOe_I.js +0 -1
- package/dist/web/client/assets/architecture-7GRP2DOG-BQO9DL_y.js +0 -1
- package/dist/web/client/assets/architectureDiagram-5GKGNRK7-CKPbdvyx.js +0 -36
- package/dist/web/client/assets/blockDiagram-I7D4REHJ-prINbpbM.js +0 -129
- package/dist/web/client/assets/c4Diagram-7LVT6UL2-DkVRKtyU.js +0 -38
- package/dist/web/client/assets/channel-c4EeUUqA.js +0 -1
- package/dist/web/client/assets/chunk-4HAMMTFA-CV0Z1ApC.js +0 -62
- package/dist/web/client/assets/chunk-75Z2AOVW-D34Nohxq.js +0 -2
- package/dist/web/client/assets/chunk-DU6HZSFF-Das_cS-O.js +0 -125
- package/dist/web/client/assets/chunk-F27PBJKO-CmRojxkG.js +0 -1
- package/dist/web/client/assets/chunk-GMAD6QVW-ClYZmc73.js +0 -72
- package/dist/web/client/assets/chunk-GVQU2GXP-B2BiHFt-.js +0 -1
- package/dist/web/client/assets/chunk-IMKFNOWR-BGApZ8nP.js +0 -231
- package/dist/web/client/assets/chunk-L3NEJ4N5-DIzCgpkY.js +0 -1
- package/dist/web/client/assets/chunk-OSK3NFVY-BPT-yePv.js +0 -10
- package/dist/web/client/assets/chunk-P2QGCYS3-BC1WTc2t.js +0 -1
- package/dist/web/client/assets/chunk-POPQ4Y6H-BSjzBmZU.js +0 -1
- package/dist/web/client/assets/chunk-PWAF6VOD-BIjLs86Z.js +0 -1
- package/dist/web/client/assets/chunk-SHT3W25Y-CduDz2cm.js +0 -168
- package/dist/web/client/assets/chunk-SVP7TREG-XUn4pPAP.js +0 -88
- package/dist/web/client/assets/chunk-TICWLB2K-DcBy2DKy.js +0 -206
- package/dist/web/client/assets/classDiagram-ZZMXUADV-C0HR7YKN.js +0 -1
- package/dist/web/client/assets/classDiagram-v2-VYDZK3BY-C0HR7YKN.js +0 -1
- package/dist/web/client/assets/cynefin-OW5HDTMX-BecPbyM6.js +0 -1
- package/dist/web/client/assets/cynefinDiagram-5FMLGOSQ-BzMzFwyT.js +0 -62
- package/dist/web/client/assets/dagre-GXQ25YYZ-CAWJmRMG.js +0 -4
- package/dist/web/client/assets/diagram-S7CK7UJ4--lp0ALmn.js +0 -30
- package/dist/web/client/assets/diagram-UQ7AKVKN-gKUnsjcj.js +0 -41
- package/dist/web/client/assets/diagram-VSXAHHWV-BoN5D1Gh.js +0 -3
- package/dist/web/client/assets/diagram-VX7I27RA-BMtuswQ6.js +0 -24
- package/dist/web/client/assets/diagram-Z3DM3KII-DtU8LXrA.js +0 -24
- package/dist/web/client/assets/ebnfDiagram-PWID7BFC-DDcnv9BH.js +0 -1
- package/dist/web/client/assets/erDiagram-RLTQ6QDP-DvRb4iDL.js +0 -99
- package/dist/web/client/assets/eventmodeling-NTZA5JFV-01h4SbTc.js +0 -1
- package/dist/web/client/assets/flowDiagram-HODETNUW-Bll_YZ6T.js +0 -1
- package/dist/web/client/assets/framework-YGoR34M4.js +0 -9
- package/dist/web/client/assets/ganttDiagram-EL5Y4UJY-DdFZ9hvH.js +0 -292
- package/dist/web/client/assets/gitGraph-4MIJSDKK-DjD_AAMj.js +0 -1
- package/dist/web/client/assets/gitGraphDiagram-WWUBYQGX-CDyN9n2u.js +0 -106
- package/dist/web/client/assets/index-CVcy0FAn.js +0 -75
- package/dist/web/client/assets/index-Dsi52apB.css +0 -1
- package/dist/web/client/assets/info-A6RAGUB7-C_XK8Hq0.js +0 -1
- package/dist/web/client/assets/infoDiagram-27XIBGKW-DIe4tJ1i.js +0 -2
- package/dist/web/client/assets/ishikawaDiagram-5VMMS53U-CVl5unKI.js +0 -70
- package/dist/web/client/assets/journeyDiagram-3NMN7TZE-CPEB1Vt8.js +0 -139
- package/dist/web/client/assets/kanban-definition-UXKFOSKX-j-9WXjYQ.js +0 -89
- package/dist/web/client/assets/line-BIDAcEtX.js +0 -1
- package/dist/web/client/assets/mermaid-parser.core-Ux4vssh0.js +0 -7
- package/dist/web/client/assets/mermaid.core-CDuwVKeh.js +0 -44
- package/dist/web/client/assets/mindmap-definition-YA3MSWOX-5MlQEeQ6.js +0 -96
- package/dist/web/client/assets/packet-AYTQ26CC-DRO66c9Q.js +0 -1
- package/dist/web/client/assets/pegDiagram-XKGWAZYB-BakZnSjM.js +0 -1
- package/dist/web/client/assets/pie-WAS4IAKB-BEzcmhz8.js +0 -1
- package/dist/web/client/assets/pieDiagram-E7YTZNPT-DpmqgoPt.js +0 -39
- package/dist/web/client/assets/quadrantDiagram-AXDQQJYC-DuMPwwV2.js +0 -7
- package/dist/web/client/assets/radar-RG4KPBEZ-Djm3oXl5.js +0 -1
- package/dist/web/client/assets/railroad-74A4TZTK-Cpvkwsao.js +0 -1
- package/dist/web/client/assets/railroad-abnf-HS5TGJTU-CpRQ3ruG.js +0 -1
- package/dist/web/client/assets/railroad-ebnf-LZEXJU2U-1Rm5a5eJ.js +0 -1
- package/dist/web/client/assets/railroad-peg-WCYAUIDC-C8344cTh.js +0 -1
- package/dist/web/client/assets/railroadDiagram-O6MQD6OU-CgMS4B6R.js +0 -1
- package/dist/web/client/assets/requirementDiagram-BXWQKSXE-CX5eoNdN.js +0 -84
- package/dist/web/client/assets/sankeyDiagram-P5KCCOFB-CODBX2N3.js +0 -40
- package/dist/web/client/assets/sequenceDiagram-WJ2MYXX4-eUhhF8OR.js +0 -162
- package/dist/web/client/assets/stateDiagram-D77RDMKH-vR6l0NC2.js +0 -1
- package/dist/web/client/assets/stateDiagram-v2-MP3YSRHH-BYUm8jLY.js +0 -1
- package/dist/web/client/assets/swimlanes-42K2YHIH-v9Tw_zX7.js +0 -1
- package/dist/web/client/assets/swimlanesDiagram-VR7AAH4N-B2jdCvhD.js +0 -8
- package/dist/web/client/assets/timeline-definition-24CTP7MA-DxianbhU.js +0 -120
- package/dist/web/client/assets/treeView-Q6P3EWNA-DLxnZb9R.js +0 -1
- package/dist/web/client/assets/treemap-WGGIJYW6-I7UnZ6xJ.js +0 -1
- package/dist/web/client/assets/vennDiagram-4TSXK5OY-Ar7M8Mrj.js +0 -34
- package/dist/web/client/assets/wardley-WFR3VGLG-B8ZSHeDu.js +0 -1
- package/dist/web/client/assets/wardleyDiagram-VM6X3IG4-Qks2FmIn.js +0 -78
- package/dist/web/client/assets/xychartDiagram-S5SC5T6Z-BBBjRtiE.js +0 -7
- package/dist/web/client/index.html +0 -6
- package/dist/web/ops-worker.js +0 -37
- package/dist/web/reads-worker.js +0 -1726
- package/dist/web/server.js +0 -8499
- package/dist/web-EMGUGGEI.js +0 -13
- package/dist/web-fetch-6BRRVQON.js +0 -805
- package/dist/wiki-generate-XHSJTDOP.js +0 -627
- package/dist/with-panes-Z6BTEHMZ.js +0 -628
- package/evals/README.md +0 -9
- package/evals/behavioral-corpus-grader.mjs +0 -236
- package/evals/behavioral-machinery-baseline.json +0 -2276
- package/evals/behavioral-machinery-driver.ts +0 -250
- package/evals/behavioral-machinery-support.ts +0 -254
- package/evals/behavioral-machinery.yaml +0 -614
- package/evals/behavioral-model-negative-control.yaml +0 -69
- package/evals/behavioral-model.yaml +0 -482
- package/evals/fixtures/behavioral-facts.txt +0 -3
- package/evals/fixtures/behavioral-main.ts +0 -7
- package/evals/fixtures/decoy/note.txt +0 -2
- package/evals/fixtures/docs-retrieval.json +0 -102
- package/evals/fixtures/private/credentials.txt +0 -1
- package/evals/fixtures/scalar-decision.json +0 -17
- package/evals/fixtures/scout-citation-pipeline.json +0 -55
- package/evals/fixtures/source-explanation.json +0 -74
- package/evals/fixtures/tool-arguments.json +0 -18
- package/evals/fixtures/tool-surface/read.txt +0 -4
- package/evals/fixtures/tool-surface/subdir/keep.txt +0 -1
- package/evals/no-edit-memory-grader.mjs +0 -149
- package/evals/scalar-decision-grader.py +0 -41
- package/evals/scalar-decision-machinery.ts +0 -145
- package/evals/source-explanation-grader.mjs +0 -118
- package/evals/tool-surface-grader.mjs +0 -53
- package/evals/tool-surface-model.yaml +0 -274
- package/evals/tracked-metrics-baseline.yaml +0 -229
- package/evals/tracked-metrics-grader.mjs +0 -129
- package/src/cli/web.ts +0 -79
- package/src/domains/providers/runtimes/local-native/ollama-native.ts +0 -122
- /package/dist/assets/{web-notices → gui-notices}/@hono__node-server-LICENSE +0 -0
- /package/dist/assets/{web-notices → gui-notices}/hono-LICENSE +0 -0
- /package/dist/{web → gui}/client/THIRD_PARTY_LICENSES.md +0 -0
- /package/dist/{web → gui}/client/assets/arc-Pry-7G1_.js +0 -0
- /package/dist/{web → gui}/client/assets/array-BifhSqXX.js +0 -0
- /package/dist/{web → gui}/client/assets/atkinson-hyperlegible-next-latin-ext-wght-normal-C6vrW8VD.woff2 +0 -0
- /package/dist/{web → gui}/client/assets/atkinson-hyperlegible-next-latin-wght-normal-BcXVPD7q.woff2 +0 -0
- /package/dist/{web → gui}/client/assets/chunk-2Q5K7J3B-C1jixKkw.js +0 -0
- /package/dist/{web → gui}/client/assets/chunk-5VM5RSS4-ZNzvKenW.js +0 -0
- /package/dist/{web → gui}/client/assets/chunk-FOHPRMQF-CoA4358r.js +0 -0
- /package/dist/{web → gui}/client/assets/chunk-JWPE2WC7-DVXcaiue.js +0 -0
- /package/dist/{web → gui}/client/assets/chunk-XXDRQBXY-DqAYeljN.js +0 -0
- /package/dist/{web → gui}/client/assets/chunk-Y2CYZVJY-DsF7k-Jl.js +0 -0
- /package/dist/{web → gui}/client/assets/commit-mono-latin-400-normal-s0S3qwFW.woff +0 -0
- /package/dist/{web → gui}/client/assets/commit-mono-latin-400-normal-wzhe4RuD.woff2 +0 -0
- /package/dist/{web → gui}/client/assets/cose-bilkent-JH36ORCC-CVh1icwb.js +0 -0
- /package/dist/{web → gui}/client/assets/cytoscape.esm-c2aL46s-.js +0 -0
- /package/dist/{web → gui}/client/assets/dagre-C-rnJpZF.js +0 -0
- /package/dist/{web → gui}/client/assets/defaultLocale-BFoDCU3G.js +0 -0
- /package/dist/{web → gui}/client/assets/dist-v5Q1xZ2K.js +0 -0
- /package/dist/{web → gui}/client/assets/graphlib-DS17s2tU.js +0 -0
- /package/dist/{web → gui}/client/assets/init-C-OQMol4.js +0 -0
- /package/dist/{web → gui}/client/assets/katex-ZlcWpGUi.js +0 -0
- /package/dist/{web → gui}/client/assets/linear-SzVmGSw4.js +0 -0
- /package/dist/{web → gui}/client/assets/newsreader-latin-ext-wght-normal-C-3rgBeH.woff2 +0 -0
- /package/dist/{web → gui}/client/assets/newsreader-latin-wght-normal-CCVVNp6i.woff2 +0 -0
- /package/dist/{web → gui}/client/assets/newsreader-vietnamese-wght-normal-Czsa-EzN.woff2 +0 -0
- /package/dist/{web → gui}/client/assets/ordinal-BDEzSJ7C.js +0 -0
- /package/dist/{web → gui}/client/assets/path-fybaL0A-.js +0 -0
- /package/dist/{web → gui}/client/assets/prism-bash-D6zCJ74D.js +0 -0
- /package/dist/{web → gui}/client/assets/prism-c-04YixN25.js +0 -0
- /package/dist/{web → gui}/client/assets/prism-clike-DapgWyxx.js +0 -0
- /package/dist/{web → gui}/client/assets/prism-core-BtsZdCS6.js +0 -0
- /package/dist/{web → gui}/client/assets/prism-cpp-C-lJbC-6.js +0 -0
- /package/dist/{web → gui}/client/assets/prism-css-CPgOzxXp.js +0 -0
- /package/dist/{web → gui}/client/assets/prism-diff-BF8m0_mq.js +0 -0
- /package/dist/{web → gui}/client/assets/prism-docker-DkT6yOFj.js +0 -0
- /package/dist/{web → gui}/client/assets/prism-fortran-Be5x3y1V.js +0 -0
- /package/dist/{web → gui}/client/assets/prism-go-C_8qAH5n.js +0 -0
- /package/dist/{web → gui}/client/assets/prism-ini-BESK3y0r.js +0 -0
- /package/dist/{web → gui}/client/assets/prism-javascript-BnO-swvr.js +0 -0
- /package/dist/{web → gui}/client/assets/prism-json-Dp_-W-Hv.js +0 -0
- /package/dist/{web → gui}/client/assets/prism-jsx-D-D0NWtC.js +0 -0
- /package/dist/{web → gui}/client/assets/prism-julia-DIjOgiAV.js +0 -0
- /package/dist/{web → gui}/client/assets/prism-latex-DNMbqcH_.js +0 -0
- /package/dist/{web → gui}/client/assets/prism-makefile-CRKWLQ8l.js +0 -0
- /package/dist/{web → gui}/client/assets/prism-markdown-C0FPJ1Iz.js +0 -0
- /package/dist/{web → gui}/client/assets/prism-markup-Cp04rIa1.js +0 -0
- /package/dist/{web → gui}/client/assets/prism-matlab-D-nk08al.js +0 -0
- /package/dist/{web → gui}/client/assets/prism-python-CfiSVtM6.js +0 -0
- /package/dist/{web → gui}/client/assets/prism-r-QmNGR8LX.js +0 -0
- /package/dist/{web → gui}/client/assets/prism-rust-Bu9N8X3N.js +0 -0
- /package/dist/{web → gui}/client/assets/prism-shell-session-Be4UuYoM.js +0 -0
- /package/dist/{web → gui}/client/assets/prism-sql-CYhVDMEE.js +0 -0
- /package/dist/{web → gui}/client/assets/prism-toml-DKb54GAT.js +0 -0
- /package/dist/{web → gui}/client/assets/prism-tsx-p6J2Kc_4.js +0 -0
- /package/dist/{web → gui}/client/assets/prism-typescript-BMqONzxf.js +0 -0
- /package/dist/{web → gui}/client/assets/prism-yaml-C0JHu8gr.js +0 -0
- /package/dist/{web → gui}/client/assets/purify.es-ChwZkWde.js +0 -0
- /package/dist/{web → gui}/client/assets/rolldown-runtime-hePW80VL.js +0 -0
- /package/dist/{web → gui}/client/assets/rough.esm-Dy-Kn_BL.js +0 -0
- /package/dist/{web → gui}/client/assets/sizeCapture-INFHLROL-B0uUizjq.js +0 -0
- /package/dist/{web → gui}/client/assets/src-B6xuSHsQ.js +0 -0
- /package/dist/{web → gui}/client/clio-coder-logo.webp +0 -0
- /package/dist/{web → gui}/client/icon-192.png +0 -0
- /package/dist/{web → gui}/client/icon-512.png +0 -0
- /package/dist/{web → gui}/client/manifest.webmanifest +0 -0
- /package/dist/{web → gui}/client/offline.css +0 -0
- /package/dist/{web → gui}/client/offline.html +0 -0
- /package/dist/{web → gui}/client/offline.js +0 -0
- /package/dist/{web → gui}/client/sw.js +0 -0
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
# CLI surface inventory and GUI routing
|
|
2
|
+
|
|
3
|
+
> **Reference Design & Planning Blueprint**: This document is an architectural reference blueprint recovered from the deleted `apps/workbench` prototype. It specifies design doctrine, target parity, and inspection layouts for the early GUI preview (`apps/clio-coder-gui`), not verified runtime features of the core v0.5.0 terminal engine.
|
|
4
|
+
|
|
5
|
+
The promise this table makes, verbatim: *"Every currently registered user or harness command is accounted for here. 'No core GUI' means the capability is not forgotten; it is routed to a later bounded surface or an upstream interface request."*
|
|
6
|
+
|
|
7
|
+
Keep that promise. When a command family is added to `src/cli/index.ts`, add a row here.
|
|
8
|
+
|
|
9
|
+
## THE ORIGINAL TABLE (28 rows, verbatim)
|
|
10
|
+
|
|
11
|
+
| # | Command family | Subcommands / significant knobs | GUI routing |
|
|
12
|
+
| -: | --- | --- | --- |
|
|
13
|
+
| 1 | Bare interactive | `--api-key`, `--no-context-files`, hidden `--no-skills` / explicit skill paths | The GUI uses ACP instead; project-context and skill policy need typed settings, while **API keys must stay host-side**. |
|
|
14
|
+
| 2 | `acp` | One stdio agent process pinned to a cwd | Core transport; wired. |
|
|
15
|
+
| 3 | `run` | target/model/thinking/autonomy, sampler controls, context/KV controls, JSON modes, steering, resume, agent/profile/runtime/tool profile, capability requirements, skills | Later reproducible Run Lab. Interactive work remains the notebook. |
|
|
16
|
+
| 4 | `configure` | Runtime/URL/model/capability setup and default routing | Setup surface; needs typed secret-safe host operations. |
|
|
17
|
+
| 5 | `targets` | list/probe/add/use/fleet/profile list/set/remove/rename/bind/unbind/bindings, convert, remove, rename | List/probe, next-turn routing, profile inventory, and agent bindings wired; authoring remains absent. |
|
|
18
|
+
| 6 | `models` | List/search models for configured targets | Offline bounded inventory wired; online/global discovery and authoring remain absent. |
|
|
19
|
+
| 7 | `auth` | list/status/login/logout by target/runtime | Setup/security surface; upstream typed operation preferred. |
|
|
20
|
+
| 8 | `config inspect` | Effective customization graph, JSON | Effective Clio Coder provenance map wired. |
|
|
21
|
+
| 9 | `doctor`, `paths` | Diagnose/fix; resolve directories with JSON | Redacted Recovery check wired in Settings; repair remains separate. |
|
|
22
|
+
| 10 | `reset`, `uninstall`, `upgrade` | State/config reset, full removal, binary unlink, upgrade/migrations | Separate destructive/installation surface. |
|
|
23
|
+
| 11 | `context` | status, init, refresh, wiki, reset, index, replay, working-set | Context Observatory; read-only JSON adapters first, mutations after typed progress/events. |
|
|
24
|
+
| 12 | `agents` | User-facing/all recipes, JSON | Read-only catalog wired; addressable execution still needs typed dispatch operations and events. |
|
|
25
|
+
| 13 | `fleet` | list/new/validate/graph/commands init/run/status/drain/resume | Installation-wide read-only status aggregate wired; plans, runs, mutations, and live events remain absent. |
|
|
26
|
+
| 14 | `evidence` | build by run/session/eval, inspect, list | Evidence library after stable machine projection. |
|
|
27
|
+
| 15 | `eval` | validate/run/report/compare/gate | Experiment surface. |
|
|
28
|
+
| 16 | `memory` | list/propose/promote/approve/reject/prune | Memory review inbox. |
|
|
29
|
+
| 17 | `usage report` | repository/window filters, JSON facts and opportunities | Project-filtered 30-day Usage record wired; broader audit and evidence discovery remain absent. |
|
|
30
|
+
| 18 | `trace` | runs/phases/tail/procs/sql/ui | Bounded trace explorer; **never expose arbitrary SQL as the default non-engineer path.** |
|
|
31
|
+
| 19 | `extensions` | list/discover/install/enable/disable/remove, scopes, JSON | Installed inventory wired; reviewed lifecycle mutations remain absent. |
|
|
32
|
+
| 20 | `skills` | list/search/inspect/validate/install/update/sync/eval | Installed inventory wired; deeper inspection and reviewed lifecycle mutations remain absent. |
|
|
33
|
+
| 21 | `library` | list/search/add/use/sync/push/remote confirm | Inventory and the reviewed lifecycle (install, update, enable, disable, remove) are wired for catalog refs. Import, register, pin, drift, sync and push remain terminal operations. |
|
|
34
|
+
| 22 | `verifiers` | discover/author/validate/dry-run/add/edit/rename/remove | Typed discovery is absent; the GUI names this boundary and does not scrape formatted output. |
|
|
35
|
+
| 23 | `docs` | topic server, no-open | The desktop app carries its own searchable reference (views, keys, vocabulary); Clio Coder topic docs stay external. |
|
|
36
|
+
| 24 | `dev components` | list/snapshot/diff | Developer instrument, not core GUI. |
|
|
37
|
+
| 25 | `dev evolve` | manifest init/validate/summarize | Developer instrument. |
|
|
38
|
+
| 26 | `dev share`, `export`, `import` | inspect/export/import portable resources | Separate reviewed transfer surface. |
|
|
39
|
+
| 27 | `version` | Version fact | Shown: the About record and status bar carry the ACP initialize version beside the GUI's own and doctor's. |
|
|
40
|
+
| 28 | `worker` | Internal NDJSON worker server | **Never directly exposed as an operator control.** |
|
|
41
|
+
|
|
42
|
+
## DRIFT, verified against `src/cli/index.ts` COMMAND_HANDLERS (2026-09-20)
|
|
43
|
+
|
|
44
|
+
The live registry, in registration order: `acp, auth, config, configure, targets, models, agents, components, evidence, eval, memory, usage, trace, evolve, dev, extensions (alias ext), fleet, library, tasks, mcp, verifiers, gui, docs, share, export, import, context, run, tools, interop, panes, doctor, paths, reset, uninstall, upgrade, version, worker`.
|
|
45
|
+
|
|
46
|
+
Plus `dev` re-dispatches to `components`, `evolve`, `share`.
|
|
47
|
+
Plus three **retired subcommand tombstones** that are deliberately not dispatchable but stay command-shaped "so top-level value flags cannot consume them and accidentally boot another mode": `context-init`, `context-index`, `context-clear`.
|
|
48
|
+
|
|
49
|
+
### Removed
|
|
50
|
+
|
|
51
|
+
| Row | What happened |
|
|
52
|
+
| --- | --- |
|
|
53
|
+
| 20 `skills` | **Gone as a top-level family.** Absorbed into `library`. The reads are now `library skills [--all] [--json]` (discovered runtime skills, including unmanaged local files), `library inventory --json` (the fixed, body-free skill read **explicitly labelled "for GUI hosts"**), and `library validate <package-path\|SKILL.md> [--json]`. |
|
|
54
|
+
|
|
55
|
+
### Added — six rows the audit has no entry for
|
|
56
|
+
|
|
57
|
+
| Command family | Subcommands / knobs | Proposed GUI routing |
|
|
58
|
+
| --- | --- | --- |
|
|
59
|
+
| `tools` | list/status/install | **Already partly wired in the new app**: `/api/toolchain/tools`, `/install`, `/remove`, driven through `/api/operations/:id`. (The audit mentions `tools` in the parity matrix but omits it from this inventory.) |
|
|
60
|
+
| `interop` | detect/inspect (`interop inspect --json`), wire a peer | Settings; detection wired, wiring remains an explicit terminal review. (Same omission.) |
|
|
61
|
+
| `panes` | `panes install [--force] [--json]` | Separate toolchain mutation; runtime status still **blocked-on-phase4**. (Same omission.) |
|
|
62
|
+
| `tasks` | the user-task ledger (`src/cli/tasks.ts`, also `/tasks` add/hand/done/drop) | **No `--json` yet.** Route to a task-board surface once a typed read exists; this is the same blocker shape as `memory`. |
|
|
63
|
+
| `mcp` | list/trust/untrust (`/mcp` mirrors it); **7 `--json` call sites** | **Buildable today.** An MCP server panel with a closed-vocabulary trust toggle is one of the safest first write surfaces in the whole app. |
|
|
64
|
+
| `gui` | the GUI's own install/upgrade/uninstall/launch | This is the app's own lifecycle, replacing the workbench's `scripts/gui-lifecycle.ts`. Never expose it from inside the running GUI as anything but a version/About fact. |
|
|
65
|
+
|
|
66
|
+
### Rewritten — row 21 `library` is now the marketplace
|
|
67
|
+
|
|
68
|
+
The audit recorded seven subcommands. The live surface (`src/cli/library.ts` HELP, verbatim) is:
|
|
69
|
+
|
|
70
|
+
```
|
|
71
|
+
One library of packages: plugin, skill, agent, prompt, fleet.
|
|
72
|
+
|
|
73
|
+
library list [--kind <kind>] [--user|--project] [--json]
|
|
74
|
+
library search [query] [--kind <kind>] [--json]
|
|
75
|
+
library recipes [query] [--kind skill|agent|prompt|fleet]
|
|
76
|
+
[--source core|package|user|project|compat] [--all] [--json]
|
|
77
|
+
library register <path> [--user|--project] [--force] [--json]
|
|
78
|
+
library inspect <path|kind:name|name> [--user|--project] [--json]
|
|
79
|
+
library install <path|kind:name|name> [--user|--project] [--force]
|
|
80
|
+
[--with-requirements] [--dry-run] [--json]
|
|
81
|
+
library import <path|github-tree-url> [--user|--project]
|
|
82
|
+
[--format claude|codex] [--dry-run] [--json] [--yes]
|
|
83
|
+
library update <kind:name|name> [--user|--project] [--force] [--dry-run] [--json]
|
|
84
|
+
library enable <kind:name|name> [--user|--project] [--dry-run] [--json]
|
|
85
|
+
library disable <kind:name|name> [--user|--project] [--dry-run] [--json]
|
|
86
|
+
library remove <kind:name|name> [--user|--project] [--dry-run] [--json]
|
|
87
|
+
library pin <kind:name|name> [--user|--project] [--json]
|
|
88
|
+
library drift [kind:name|name] [--user|--project] [--json]
|
|
89
|
+
library reload [--json]
|
|
90
|
+
library skills [--all] [--json]
|
|
91
|
+
library inventory --json
|
|
92
|
+
library validate <package-path|SKILL.md> [--json]
|
|
93
|
+
library sync
|
|
94
|
+
library push
|
|
95
|
+
library remote confirm <url>
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
**The semantics that make this directly buildable as a GUI marketplace, verbatim from the HELP:**
|
|
99
|
+
|
|
100
|
+
> Install and register default to user scope. Other mutations select the project copy when present; an explicit scope selects exactly that copy. List includes both scopes and all installed states. `--from <index.yaml>` selects an index. **Every mutation builds one reviewed plan, rechecks it inside the package lock, refuses to break enabled dependents, and reports per-package outcomes with disk, recipe-admission and host-refresh facts separately; `--dry-run` prints the plan and writes nothing. A CLI never refreshes a running session.**
|
|
101
|
+
>
|
|
102
|
+
> Import reviews a portable, Claude Code or Codex plugin from a path or GitHub tree URL, normalizes supported recipes into a foreign-trust package, and **never activates hooks, MCP, LSP or scripts.**
|
|
103
|
+
>
|
|
104
|
+
> List and search are package-oriented; `--kind` and a query also match the recipes a bundle provides, **returning the owning package as the install target.**
|
|
105
|
+
>
|
|
106
|
+
> Recipes is the versioned, body-free read of actual discovered recipes across core, installed packages and loose user/project files, with owner, origin, availability and invocation; `--all` adds internal diagnostic agents. **Nothing in these reads fetches a remote source or activates a recipe.**
|
|
107
|
+
>
|
|
108
|
+
> Skills lists discovered runtime skills, including unmanaged local files. **Inventory is the fixed, body-free skill read for GUI hosts.**
|
|
109
|
+
>
|
|
110
|
+
> Package evals run with `clio-coder eval run --package <kind:name> --eval <name>`.
|
|
111
|
+
|
|
112
|
+
**Design consequences for the GUI marketplace page:**
|
|
113
|
+
|
|
114
|
+
1. **`--dry-run` is the preview stage the coverage table kept demanding.** Every mutation the audit called "needs preview, confirmation, progress, recovery" already has the preview half for free. Build: *plan → show the plan → confirm → apply → show per-package outcomes*. The plan is a first-class object, not a guess.
|
|
115
|
+
2. **The plan distinguishes three outcome facts** — disk, recipe-admission, and host-refresh — and reports them separately. Render all three; collapsing them into "installed ✓" throws away the distinction between "the bytes landed" and "the running session sees it".
|
|
116
|
+
3. **"A CLI never refreshes a running session."** So after a mutation the GUI must explicitly tell the operator whether the open session sees the change, and offer `library reload`. Do not silently imply it took effect.
|
|
117
|
+
4. **Scope is a real axis** (`--user` / `--project`) and list shows both scopes and all installed states. The page needs a scope column, not a scope filter that hides half the truth.
|
|
118
|
+
5. **`library drift`** is the "is my installed copy still what the catalog says" read — a natural per-row badge.
|
|
119
|
+
6. **`library import` from a GitHub tree URL is the one network-reaching read on this surface**, and it never activates hooks, MCP, LSP or scripts. Say so at the point of import; that sentence is the whole trust story.
|
|
120
|
+
7. The network kill switch is the setting `integrations.library.sync` (see the settings artifact), and sync additionally refuses until `integrations.library.confirmedRemote` equals `integrations.library.remote`.
|
|
121
|
+
|
|
122
|
+
**What the app ships (v0.5.0):**
|
|
123
|
+
|
|
124
|
+
The Library page opens on a Catalog collection built from `packages` in `GET /api/workspaces/:id/library`, which is `discoverLibrary` joined with every installed copy. The earlier page filtered that list to `kind === "plugin"`, so 34 of the 35 bundled rows never appeared. Both scopes show on every row with the copy's state, and an install is offered only for the scope that has no copy.
|
|
125
|
+
|
|
126
|
+
Mutations cross through three routes. `POST /api/workspaces/:id/library/plans` stages a plan and writes nothing. `POST …/plans/:planId/apply` commits that exact plan. `DELETE …/plans/:planId` releases it. The adapter `server/clio/adapters/library-lifecycle.ts` calls `planLibraryLifecycle` and `applyLibraryLifecycle` in the single ops lane and holds staged plans in memory for ten minutes, eight at most. A plan applies once; a second apply, an expired plan, or a plan from another workspace answers 404 and the page plans again.
|
|
127
|
+
|
|
128
|
+
The request body admits only `kind:name` refs. Root resolution tries a local path before the catalog, so the adapter also refuses a ref that names an existing path under the workspace. Paths and GitHub URLs therefore never originate in the browser, and `force` is accepted by the contract but has no control on the page yet.
|
|
129
|
+
|
|
130
|
+
The outcome view reports disk and recipe admission per package, and always states that open conversations have not reloaded. The web server holds no agent session, so `refresh` is `not-applicable` by construction; the page tells the operator to run `/library reload` or start a new conversation. Consuming `plugins.reloaded` to confirm the reload remains open.
|
|
131
|
+
|
|
132
|
+
`Dialog` now portals to `document.body`. The shell marks `.workspace` inert while any layer is claimed, which disabled the first dialog ever opened from inside a page.
|
|
133
|
+
|
|
134
|
+
### Expanded — rows whose subcommand lists grew
|
|
135
|
+
|
|
136
|
+
| Row | Additions verified in the HELP strings |
|
|
137
|
+
| --- | --- |
|
|
138
|
+
| 13 `fleet` | `inspect --json`, `decisions --json`, `verify <runId> --json`, `view <runId\|fleetRootId>`, `preflight`. Full list: list, new, validate, graph, commands init, run, status, inspect, decisions, view, verify, preflight, drain, resume. |
|
|
139
|
+
| 14 `evidence` | `evidence inventory --json` (plus `src/cli/evidence-detail.ts`). |
|
|
140
|
+
| 15 `eval` | `eval skill <name\|path>`, `--package <path\|kind:name>`, `--suite`, `--task-file`, `--trials/--repeat`, `--format text\|json\|md\|swe-jsonl\|junit`, `compare … [--allow-config-drift]`, `gate --baseline --thresholds`, `inventory --json`. |
|
|
141
|
+
| 18 `trace` | `inspect --json` ("a fixed bounded window with no request text"), `code-steps <rootId> --json` ("deterministic code steps of one fleet root"), `prune [--max-age-days N] [--max-bytes N] [--json]`. |
|
|
142
|
+
| 19 `extensions` | `extensions run <id> <command> [--json] -- [arguments]`. |
|
|
143
|
+
| 22 `verifiers` | `inspect --json`, `baseline <id>`. |
|
|
144
|
+
| 9 `doctor` | nine specialized modules: deep, hpc, naming, panes, slurm, state-size, task-worktrees, toolchain, validation-contract. |
|
|
145
|
+
|
|
146
|
+
### Row 23 `docs` — decision reversed
|
|
147
|
+
|
|
148
|
+
The audit routed docs out of the app: "Clio Coder topic docs stay external." The new app implements `/api/docs/tree`, `/api/docs/page`, `/api/docs/search` and ships `client/pages/docs.tsx`. This is a deliberate product change, not drift. The audit's underlying worry — don't turn the main shell into a documentation browser — should be answered with navigation (docs as a peer route, not the default view) rather than by removing the feature.
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# Delivery order
|
|
2
|
+
|
|
3
|
+
> **Reference Design & Planning Blueprint**: This document is an architectural reference blueprint recovered from the deleted `apps/workbench` prototype. It specifies design doctrine, target parity, and inspection layouts for the early GUI preview (`apps/clio-coder-gui`), not verified runtime features of the core v0.5.0 terminal engine.
|
|
4
|
+
|
|
5
|
+
Extracted from `apps/workbench/HARNESS_COVERAGE.md`. Items 1-8 are historical record with their constraints intact; items 9 and 10 are live policy for the new app.
|
|
6
|
+
|
|
7
|
+
## The ten items (verbatim, with current status)
|
|
8
|
+
|
|
9
|
+
1. **Reported token record — implemented.** Preserve terminal usage in the shared projection, render it per outcome, aggregate only visible terminal records, and **say explicitly that the GUI does not infer price.**
|
|
10
|
+
- *Live constraint:* "aggregate only visible terminal records" and "does not infer price" both still apply. Five exact fields, Clio's own cost with provenance, no rate-card multiplication.
|
|
11
|
+
|
|
12
|
+
2. **Effective Clio Coder map — implemented.** The GUI host adapts fixed, read-only `config inspect --json` output into bounded DTOs and visualizes loaded settings, context, prompts, rules, agents, skills, extensions, hooks, trust, precedence, reload timing, and context cost. It answers **"why is Clio Coder behaving this way?"** without asking the operator to read YAML or inspect directories, and without sending raw values to the browser.
|
|
13
|
+
- *Live:* `/api/workspaces/:id/config-graph`. The question it answers is the right framing for the whole settings area; keep it as the page's stated purpose.
|
|
14
|
+
|
|
15
|
+
3. **Capability atlas — partially implemented.** Fixed read-only adapters project Agents, installed Skills, installed Extensions, and Library resources into **independently fallible, bounded collections** with search, provenance, trust, precedence, and budget facts. The Verifiers tab deliberately remains an interface-boundary explanation until Clio Coder publishes a typed listing; **the GUI does not scrape its formatted authoring preview.**
|
|
16
|
+
- *Now:* the Library page opens on a Catalog of every package kind with both scopes per row, and install, update, enable, disable and remove run as plan, review, apply. See `cli-surface-routing.md`, "What the app ships".
|
|
17
|
+
- *Status:* `verifiers inspect --json` landed, so the Verifiers tab can become real. "Independently fallible" is the property to preserve.
|
|
18
|
+
|
|
19
|
+
4. **Offline model and worker routing inventory — implemented.** Settings can explicitly inspect bounded model capabilities, token limits, reported residency, worker profiles, and agent bindings. **The three fixed JSON reads run in parallel and fail independently.** The GUI does not probe endpoints, expose provider configuration, or **treat cached/offline facts as health**; authoring and live routing still require typed operations and events.
|
|
20
|
+
- *Live constraint:* offline residency is not health. Label it as reported/cached, with its age.
|
|
21
|
+
|
|
22
|
+
5. **Historical evidence and economics — Usage partially implemented.** A fixed project-filtered JSONL adapter powers the 30-day Usage record and discards the upstream report's global or raw rows. Evidence has no JSON listing, eval report lacks typed discovery, and trace runs are global and carry raw requests; **those boundaries remain visible in the GUI rather than being scraped around.** Never pass arbitrary CLI output to the browser.
|
|
23
|
+
- *Status:* all three named gaps are resolved (`evidence inventory --json`, `eval inventory --json`, `trace inspect --json`). The habit — make a boundary visible rather than scrape around it — is the part to keep.
|
|
24
|
+
|
|
25
|
+
6. **Installation dispatch status — implemented.** A fixed `fleet status --json` adapter projects global admission, heartbeat counts, the reported retry count, and exact cumulative totals into a **separate installation-scoped view.** Raw durable rows and identities never cross, **the snapshot survives browser reload**, and no run, drain, or resume operation is exposed.
|
|
26
|
+
- *Live constraint:* installation-scoped facts belong in their own view, not mixed into a project view. "Survives browser reload" is a real requirement for a GUI that wants to feel instant.
|
|
27
|
+
|
|
28
|
+
7. **Installation recovery check — implemented.** Settings can manually run the fixed machine-readable doctor and path commands. The host projects only severity counts, fixed categories, validated runtime versions, root-resolution count, timestamp, and whether the selected project supplied context. Raw findings and native identities stay host-side. **The GUI passes no `--fix` flag and exposes no repair control; it states that doctor may refresh durable fleet eligibility.**
|
|
29
|
+
- *Live constraint:* the side-effect disclosure. Per-check name/section/verdict now crosses (parity item 6), so the counts-only limit is superseded; the `--fix` abstention and the disclosure are not.
|
|
30
|
+
|
|
31
|
+
8. **Expand the ACP event extension upstream. Dispatch lifecycle and agent attribution implemented.** The `clio-coder/event` allowlist carries the five dispatch lifecycle kinds alongside `safety.loopBlocked`, and `session/update` carries a `clio-coder/agent` attribution **additively** in `_meta`. **The remaining priorities are context activity/warning/pruned/recalled, tool budget, safety block, agent status, runtime notice, budget alert, and config-reload classification.** Version and sanitize each DTO; **do not expose raw `unknown` worker events or full settings snapshots.**
|
|
32
|
+
- *Status:* allowlist is 7 kinds now (`accountability.evidenceReady` joined). The nine remaining priorities are unchanged and each has a typed payload waiting — see the event-bus artifact. The two "do not" clauses map to concrete hazards: `DispatchProgressPayload.event` is typed `unknown`, and `ConfigChangePayload.settings` is the whole credential-bearing snapshot.
|
|
33
|
+
|
|
34
|
+
9. **Expand safe settings upstream.** Add typed get/patch groups with **allowed values, effective source, apply timing, capability flags, and secret redaction. Build graphical forms only after each group is real.**
|
|
35
|
+
- *Live and now largely satisfiable:* `SETTING_CONTROLS` supplies allowed values (`choices`), kind, and optionality; `settingsChangeKind()` supplies apply timing; `config inspect --json` supplies effective source. What remains genuinely missing is **capability flags** (is this control dead in an ACP session? — the `safety.review.*` case) and **secret redaction** for `targets[]`. Ship those two before the settings page claims completeness.
|
|
36
|
+
|
|
37
|
+
10. **Consequential operations.** Target authoring/auth, fleet run/drain/resume, memory approval, resource installation, verifier authoring, share import, doctor fix, and reset require **preview, scope, confirmation, progress, terminal result, and recovery semantics** before they enter the GUI.
|
|
38
|
+
- *Live policy, and the single most quotable line in either document.* Treat those six stages as the acceptance checklist for every mutation the MVP ships. Note that `library`'s `--dry-run` plan already supplies preview + scope, and `/api/operations/:id` + `/cancel` already supplies progress + terminal result, so the pattern is mostly built — it needs applying uniformly.
|
|
39
|
+
|
|
40
|
+
## Coordination needed outside the GUI (verbatim)
|
|
41
|
+
|
|
42
|
+
> Two workstreams cannot be completed honestly inside `apps/workbench` alone:
|
|
43
|
+
>
|
|
44
|
+
> 1. A harness owner must continue extending the opt-in ACP event surface. **The dispatch lifecycle has landed; context, safety, agent status, runtime notice, budget, and config-reload facts have not.**
|
|
45
|
+
> 2. A harness owner must expand the safe settings/operation extensions for config groups and consequential commands; **the renderer must never receive credentials, raw environment values, arbitrary native paths, or unvalidated bus payloads.**
|
|
46
|
+
|
|
47
|
+
Both still stand. Item 1 is unchanged. Item 2 changes shape for the new app: the *server* may legitimately touch settings files directly, so the blocker is smaller than it was — but the four things the renderer must never receive are unchanged, and `integrations.externalAgents.entries[].env.*` plus `targets[]` credentials are exactly where that rule bites.
|
|
48
|
+
|
|
49
|
+
## The framing to carry forward
|
|
50
|
+
|
|
51
|
+
> Until those boundaries exist, the GUI can continue making substantial progress through public machine-readable interfaces.
|
|
52
|
+
|
|
53
|
+
That sentence is why both documents were worth the effort: they are an inventory of what can be built honestly *today*, separated from what needs someone else first. Any successor document should keep that separation as its organizing principle.
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
# Canonical event coverage
|
|
2
|
+
|
|
3
|
+
> **Reference Design & Planning Blueprint**: This document is an architectural reference blueprint recovered from the deleted `apps/workbench` prototype. It specifies design doctrine, target parity, and inspection layouts for the early GUI preview (`apps/clio-coder-gui`), not verified runtime features of the core v0.5.0 terminal engine.
|
|
4
|
+
|
|
5
|
+
## Framing (from the source, verbatim)
|
|
6
|
+
|
|
7
|
+
> The event bus is grouped below so new upstream work can expose a small, sanitized projection rather than dumping raw bus payloads across ACP.
|
|
8
|
+
|
|
9
|
+
The audit's architectural finding, also verbatim:
|
|
10
|
+
|
|
11
|
+
> The in-process harness bus has **41 canonical channels**, including dispatch, context, capacity, cost, safety, config, compaction, middleware, status, and shutdown facts. **Thirty-five of those channels are not public ACP events today.**
|
|
12
|
+
|
|
13
|
+
**Verified 2026-09-20: the bus now has 47 channels** (`BusChannels` in `src/core/bus-events.ts`), and the ACP forwardable allowlist has **11 kinds**, not 6 and no longer 7. So the correct sentence today is: *47 canonical channels, 36 of which are not public ACP events.*
|
|
14
|
+
|
|
15
|
+
## The ACP forwardable allowlist (authoritative, `ACP_FORWARDABLE_EVENT_KINDS` in `src/engine/acp/server.ts`)
|
|
16
|
+
|
|
17
|
+
```ts
|
|
18
|
+
const ACP_FORWARDABLE_EVENT_KINDS = [
|
|
19
|
+
"safety.loopBlocked",
|
|
20
|
+
"dispatch.enqueued",
|
|
21
|
+
"dispatch.started",
|
|
22
|
+
"dispatch.progress",
|
|
23
|
+
"dispatch.completed",
|
|
24
|
+
"dispatch.failed",
|
|
25
|
+
"accountability.evidenceReady",
|
|
26
|
+
"compaction.end",
|
|
27
|
+
"context.warning",
|
|
28
|
+
"safety.toolBudgetExceeded",
|
|
29
|
+
"provider.health",
|
|
30
|
+
] as const;
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
The mechanism, verbatim from the source comment: *"Nothing outside this list is forwardable: the list is the allowlist, and a client's requested kinds are intersected with it rather than trusted."* A client requests kinds at `initialize`; `ACP_MAX_REQUESTED_EVENT_KINDS = 16` and an over-long list **refuses the whole opt-in**. Eleven of sixteen are now spent, so the next addition is close to the ceiling. Every kind is the literal `BusChannels` value of the channel it forwards; a kind is never renamed on the way out, so a captured frame names its producer and a client's kind list cannot drift into a second vocabulary.
|
|
34
|
+
|
|
35
|
+
Dispatch frames are bound to the **session**, not to a turn, because a detached run settles after the turn that started it returns. `safety.loopBlocked` and `safety.toolBudgetExceeded` are the two that ARE turn-bound, because the budgets they name are per-turn and mean nothing outside one.
|
|
36
|
+
|
|
37
|
+
The four newest kinds close three parity rows. `compaction.end` (`{trigger}`) and `context.warning` (`{warning: string|null}`, transitions only, so the `null` is the clearing edge and crosses as itself) feed the context meter. `safety.toolBudgetExceeded` (`{tool, callsThisTurn, softBudget, hardCeiling, interrupted}`, `terminal` exactly when `interrupted`) feeds the footer status. `provider.health` (`{targetId, status, available, latencyMs}`) closes the retry-visibility row; `lastError` is provider prose that quotes URLs and response bodies and stays behind, exactly as `dispatch.failed`'s `outcomeDetail` does.
|
|
38
|
+
|
|
39
|
+
The GUI maps all four to its own `health.*` deltas and retains them in a separate 32-entry `health` strip rather than in `fleet`: they describe this conversation, not a dispatched run, and a board that mixed them would have to filter its own feed to draw either (`apps/clio-coder-gui/contracts/fleet-events.ts`). Its reader now **logs and drops** a `clio-coder/event` kind it does not recognize, and the supervisor does the same for an unrecognized `sessionUpdate` kind. A MALFORMED frame of a kind either one does claim to handle still fails loudly: the distinction is between a newer engine and a broken peer.
|
|
40
|
+
|
|
41
|
+
Sanitization constants on that path: `ACP_MAX_DISPATCH_TASK_PREVIEW_BYTES = 160` (control-character-stripped prefix with the standard truncation marker; the exact task never leaves the process), `ACP_MAX_DISPATCH_ID_BYTES = 128`, `ACP_MAX_LIVE_TOOL_CALLS = 128`, `ACP_MAX_REPLAY_TOOL_CALLS = 8192`.
|
|
42
|
+
|
|
43
|
+
## THE 14-FAMILY TABLE (verbatim, with a 2026-09-20 verification column)
|
|
44
|
+
|
|
45
|
+
| # | Bus group | Channels | GUI coverage | Verified against `src/core/bus-events.ts` |
|
|
46
|
+
| -: | --- | --- | --- | --- |
|
|
47
|
+
| 1 | Session | `session.start/end/parked/resumed/turn_switched` | Functional session operations are wired, but these lifecycle events are not public. Branch/turn switching has no GUI. | **Accurate.** All five exist. `SessionParkReason` = `create_new\|resume_other\|fork\|switch_branch\|close\|shutdown`; `SessionResumeVia` = `resume\|switch_branch`. `session.turn_switched` carries `{sessionId, turnId, at}` and exists specifically so caches keyed on session id alone know their fold is stale — a GUI that caches per session **must** subscribe to it if `/tree` ever lands. |
|
|
48
|
+
| 2 | Domain | `domain.loaded/failed` | **Upstream boundary**; useful in diagnostics, not the notebook. Never forward raw `error`. | **Accurate, and the warning is enforced by the type.** `DomainFailedPayload.error` is typed `unknown` — "the caught value as-is; loaders catch unknown and rethrow after emitting." Never serialize it. |
|
|
49
|
+
| 3 | Config | `config.hotReload/nextTurn/restartRequired/reloadFailed` | Safe patch response is wired; live change/reload classification is absent. Sanitize settings out of the event. | **Accurate, and the warning is load-bearing.** `ConfigChangePayload` is `{diff: ConfigDiff, settings: Readonly<ClioSettings>}` — **the whole settings snapshot, credentials included.** Forward only `diff` (`{hotReload[], nextTurn[], restartRequired[]}`), which is exactly the path list a GUI settings page needs to know what changed under it. `ConfigReloadFailedPayload.message` is already pre-formatted by `formatSettingsFailure` to one line, no stack, and is emitted on transitions only (`null` clears). |
|
|
50
|
+
| 4 | Permission | `permission.requested/resolved` | Standard ACP permission is partial; richer policy/escalation provenance is absent. | **Accurate and now fully specified.** `PermissionRequestedPayload` carries exactly the fields the parity matrix's "Permission overlay: **Partial**" row is missing: `tool, actionClass, origin, axis, reasons[], ruleId, posture, rejection{short,detail,hints[]}, policySource, reasonCode, requestedBy, requestId, agentId, summary, target (sanitized one-line preview), timeoutMs, fallback ('deny'\|'fail'), escalation`. `requestedBy` is the worker run id, present only when dispatch republishes an escalate-posture worker's parked ask. `PermissionResolvedPayload` = `{status: 'granted'\|'denied'\|'expired', requestId, origin, decidedBy, tool, actionClass, reason, requestedBy, fallback, at}` — only `status` is guaranteed. **This is the single highest-value unbuilt ACP extension for the GUI's approval UI.** |
|
|
51
|
+
| 5 | Safety | `safety.classified/blocked/allowed/loopBlocked/toolBudgetExceeded` | `loopBlocked` and `toolBudgetExceeded` are both public and wired; classified/blocked/allowed are not. | **Accurate.** `LoopBlockedPayload` = `{tool, repeatCount, blocksThisTurn, budget, interrupted, disposition, at, turnId?}` with `LoopBlockedDisposition = 'block'\|'lockout'\|'stop'`. The three dispositions mean different things and a GUI must not collapse them: `block` is a per-call block below budget (warn notice); `lockout` disables tools for the rest of the turn so the model answers from what it gathered, **and does not cancel the turn** (`interrupted: false`); `stop` cancels. `ToolBudgetExceededPayload` = `{tool, callsThisTurn, softBudget, hardCeiling, interrupted, at, turnId?}`. `SafetyBlockedPayload`/`SafetyClassifiedPayload`/`SafetyAllowedPayload` carry `{tool, actionClass, ruleId?, posture?, policySource, reasonCode}` (+`reasons[]` on classified, +`rejection` on blocked). |
|
|
52
|
+
| 6 | Provider | `provider.health` | Public and wired. The explicit GUI target probe and unsolicited health transitions both reach the client now. | **Accurate.** `{id, status: TargetStatus}` after every probe/disconnect. Trivially safe to forward; the cheapest win on this table. |
|
|
53
|
+
| 7 | Runtime/residency | `runtime.notice`, `residency.mutation` | **Upstream boundary**; capacity/VRAM/degradation facts must retain source and numeric detail. | **Accurate, and the kinds are a closed vocabulary now.** `RUNTIME_NOTICE_KINDS = ['will-not-fit','about-to-evict','swap','co-resident','stress','degraded','route-fallback']`, each with a declared producer enforced by a contract test "so no kind outlives the code that emits it". Payload `{kind, level: 'info'\|'warning'\|'error', targetId, runtimeId, model, message, detail?: Record<string, number\|string\|boolean>}`, branded `DeclaredRuntimeNotice` so a raw notice fails to typecheck. `degraded` reports a live turn whose token rate collapsed, i.e. a silent spill to CPU becoming visible while it happens — **that is the HPC-DNA fact the operator wants visible in the GUI.** `ResidencyMutationPayload` = `{targetKey, targetId, runtimeId, model, operation: 'load'\|'evict', at}`. |
|
|
54
|
+
| 8 | Dispatch | `dispatch.scopeNotice/enqueued/started/progress/completed/failed` | Enqueued/started/progress/completed/failed are public and wired to the fleet strip; `scopeNotice` is still absent. | **Accurate.** See the payload notes below — this family is where the dispatch board's data comes from. `DispatchScopeNoticePayload` is a discriminated union on `code`: `typed_scope_replaced_inferred_paths` (carries `omittedPaths[]`) or `legacy_scope_inferred\|legacy_scope_empty` (carries `paths[]` of `{path, policy: 'working-context'\|'write-boundary', provenance: 'declared'\|'derived'\|'inferred', source, confidence: 'certain'\|'high'\|'medium'\|'low'}`). It carries filesystem paths, which is why it is not in the allowlist. |
|
|
55
|
+
| 9 | Compaction | `compaction.begin/end` | `compaction.end` is public and wired; `begin` is not, because a client that drew a "compacting" state from it would have to guess when to clear it. Combine the end with token/pressure facts before visualizing. | **Accurate.** `CompactionPayload = {trigger, at}` — deliberately thin, which is why the row says combine it with token facts. |
|
|
56
|
+
| 10 | Middleware | `middleware.hookFailed` | **Upstream boundary**; diagnostics/inbox surface. | **Accurate, and richer than the row implies.** `{kind: 'hook_failed'\|'budget_exceeded'\|'registration_conflict', registrationId, hook, at, message?, elapsedMs?, budgetMs?, steadyStateWarn?, p50Ms?, p95Ms?, overCount?, windowSamples?}`. **`steadyStateWarn` is the field a GUI performance panel wants**: true only when an overrun is steady-state (≥N of the last M post-warmup calls over budget), not a lone spike. "Diagnostics only; nothing subscribing here may decide anything." |
|
|
57
|
+
| 11 | Context | `context.activity/warning/pruned/recalled` | `context.warning` is public and wired; activity/pruned/recalled are still an **upstream boundary**, and `pruned`'s `pressure` is the remaining piece of a scientific context instrument. | **Accurate but INCOMPLETE — a fifth channel exists**, `context.sourcesChanged` (`{cwd}`), an explicit boundary meaning descendant sessions must recapture disk sources. `ContextActivityPayload` = `{kind: 'context-init'\|'context-clear'\|'context-refresh'\|'context-wiki'\|'compaction', phase: 'scan'\|'codewiki'\|'generate'\|'clio-md'\|'state'\|'compact'\|'done', status: 'started'\|'running'\|'completed'\|'failed', message, at, current?, total?, detail?}` — **it already has `current`/`total`, so it is a ready-made progress bar.** `ContextPrunedPayload` = `{stage: 'mask_observations'\|'working_set'\|'llm_summary', tokensBefore, tokensAfter, trigger, snapshotIdBefore, snapshotIdAfter, at, pressure?, maskedObservations?, maskedThinkingBlocks?, maskedThinkingChars?, policyId?, evictedItems?}` — **`pressure` is the context meter the parity matrix calls Absent.** `ContextRecalledPayload` = `{ref, trigger: 'tool'\|'operator', tokensReadmitted, at}`. `ContextWarningPayload = {warning: string\|null}`, transitions only. |
|
|
58
|
+
| 12 | Agent | `agent.status.changed` | **Upstream boundary**. Run-level identity is public through the dispatch events, but per-phase status is not. | **Accurate, and this is the GUI's live status line.** `{runId: string\|null, phase: StatusPhase, prevPhase: StatusPhase, at, elapsedFromStart, watchdogTier: 0\|1\|2\|3\|4, metadata?: {toolName?, attempt?, reason?, agentName?}}`. `StatusPhase` = `idle\|preparing\|waiting_model\|thinking\|writing\|tool_running\|tool_blocked\|retrying\|compacting\|dispatching\|stuck\|ended`. The taxonomy is owned in `core/bus-events.ts` (not `src/interactive`) precisely because it rides the bus into the safety domain's audit trail. **This one channel would replace most of the GUI's inferred spinner state with reported fact.** |
|
|
59
|
+
| 13 | Run/budget | `run.aborted`, `budget.alert` | **Upstream boundary**; keep abort sources and cost provenance distinct. | **Accurate, and the distinctness rule is enforced.** `RunAbortSource = 'dispatch_abort'\|'dispatch_drain'\|'stream_cancel'\|'loop_guard'` with a runtime guard `isRunAbortedPayload`. "Subscribers must not collapse the sources: a drained dispatch run, a user-cancelled stream, and a guard-stopped loop are different operator situations." `BudgetAlertPayload = {level: 'at'\|'over', currentUsd, ceilingUsd}` — **informational in v0.x: scheduling never rejects the enqueue**, so the GUI notice is the operator's only signal and must not imply enforcement. |
|
|
60
|
+
| 14 | Shutdown | `shutdown.requested/drained/terminated/persisted` | The GUI observes child/process loss, not these structured phases. Diagnostics only. | **Accurate.** `ShutdownRequestedPayload = {phase: TerminationPhase}`; the other three carry `EmptyPayload = Record<string, never>`. |
|
|
61
|
+
|
|
62
|
+
## THREE FAMILIES WITH NO ROW (add them)
|
|
63
|
+
|
|
64
|
+
| Bus group | Channels | Payload | GUI verdict to assign |
|
|
65
|
+
| --- | --- | --- | --- |
|
|
66
|
+
| **Accountability** | `accountability.evidenceReady` | `AccountabilityEvidenceReadyPayload extends ObservabilityRunEvidence { runId }` | **PUBLIC AND WIRED — already in the ACP allowlist and the audit has no row for it.** From the source comment: it fires once a finalized run's evidence bundle and its sidecar index row have landed, so "the board can show first-pass success and a finding count without reading Clio's state tree." The fields are *exactly* `ObservabilityRunEvidence`, the same shape the projection attaches to the run summary, "so the bus and the snapshot cannot describe the same moment two ways." **A failed build publishes nothing here** — a client that never receives it has learned only that no bundle is ready, which is the truth. This is the backbone of the evidence-receipts surface the operator asked for. |
|
|
67
|
+
| **Extensions / plugins** | `extensions.reloaded`, `plugins.reloaded`, `extensions.loadIssue` | `ExtensionsReloadedPayload = {generation, previousGeneration, changed, digest}`; `PluginsReloadedPayload` is the same shape; `ExtensionsLoadIssuePayload = {message}` | **Upstream boundary → easy win.** `extensions.reloaded` is published only after *both* the new extension generation and its user-hook registrations have been committed, never between. `plugins.reloaded` is a separate, data-only generation for recipe and prompt consumers. **The library-marketplace page needs exactly this to know when to refetch after an install**, instead of polling. `digest` is a content identity, so the GUI can skip a refetch when `changed` is false. |
|
|
68
|
+
| **Memory** | `memory.stepCompleted` | `{endpointKey, targetId}` | **Diagnostics only.** Deliberately carries the endpoint a proactive-memory step called and *nothing about what it decided*. Its only consumer stamps an expected-cold reason when a step ran between turns on the endpoint the chat target streams against. Useful as the "observed memory steps" the settings table asks to pair with the `context.memory.*` controls. |
|
|
69
|
+
|
|
70
|
+
## Full channel roster (47), for the record
|
|
71
|
+
|
|
72
|
+
`session.start`, `session.end`, `session.parked`, `session.resumed`, `session.turn_switched`, `domain.loaded`, `domain.failed`, `config.hotReload`, `config.nextTurn`, `config.restartRequired`, `config.reloadFailed`, `permission.requested`, `permission.resolved`, `safety.classified`, `safety.blocked`, `safety.allowed`, `safety.loopBlocked`, `safety.toolBudgetExceeded`, `provider.health`, `runtime.notice`, `residency.mutation`, `dispatch.scopeNotice`, `dispatch.enqueued`, `dispatch.started`, `dispatch.progress`, `dispatch.completed`, `dispatch.failed`, `accountability.evidenceReady`, `compaction.begin`, `compaction.end`, `middleware.hookFailed`, `extensions.reloaded`, `plugins.reloaded`, `extensions.loadIssue`, `context.activity`, `context.sourcesChanged`, `context.warning`, `context.pruned`, `context.recalled`, `memory.stepCompleted`, `agent.status.changed`, `run.aborted`, `budget.alert`, `shutdown.requested`, `shutdown.drained`, `shutdown.terminated`, `shutdown.persisted`.
|
|
73
|
+
|
|
74
|
+
A compile-time tripwire (`BusPayloadMapCoversAllChannels`) means adding a channel without a payload fails to typecheck — so this roster can be regenerated mechanically and a GUI test should assert the GUI's own event union is a subset of it.
|
|
75
|
+
|
|
76
|
+
## Dispatch payload fields the board needs (verbatim from the types)
|
|
77
|
+
|
|
78
|
+
`DispatchRunIdentity` (shared by every dispatch event): `runId, agentId, task?, agentAudience?, requestOrigin?, targetId, wireModelId, runtimeId, runtimeKind, endpoint?{key,label,limit}, budget?, node?, gate?{role,cycle}, council?{group,label,color?,round}, rerouteCount?, contextWindow?`.
|
|
79
|
+
|
|
80
|
+
- `task` is the **exact** dispatched task; the comment says "UI projections must sanitize and bound it before rendering." Over ACP only the 160-byte stripped preview crosses.
|
|
81
|
+
- `gate` and `council` exist **for board badges** — the compete/council surfaces are meant to be driven from these, not reconstructed.
|
|
82
|
+
- `contextWindow` is there "for the per-worker context meter."
|
|
83
|
+
- `node` absent renders as the local node.
|
|
84
|
+
|
|
85
|
+
`DispatchStartedPayload` adds `pid, processCommand?, assignmentId, attempt, parentToolCallId?`. **`assignmentId` and `attempt` are required**: "a surface that draws one entry per logical work item has to key on the assignment, and a spawn path that forgot to send it would silently split a failover into two entries." **Key the GUI's run rows on `assignmentId`, not `runId`.** `parentToolCallId` is what lets a transcript nest a worker under the tool segment that started it instead of appending it wherever the turn happens to be — that is the nesting the operator wants in the agent viewport.
|
|
86
|
+
|
|
87
|
+
`DispatchProgressPayload.event` is **deliberately `unknown`**: it is the worker/ACP event stream crossing a process boundary. The workbench dropped it entirely in favour of a per-run progress count. Any GUI that renders it must validate it at runtime.
|
|
88
|
+
|
|
89
|
+
`DispatchTerminalStats` (required on completed, partial on failed): `lineage, tokenCount, inputTokenCount, outputTokenCount, cacheReadTokenCount, cacheWriteTokenCount, cacheWrite1hTokenCount?, reasoningTokenCount, staticShellHash, sessionShellHash, dynamicHash, costUsd, costProvenance?, durationMs, exitCode, toolActivity: ToolActivitySummary|null, hostVerification?: 'verified'|'rejected'|'skipped'|'not_implicated'`. Required on completed specifically so "dropping a field from one finalizer is a compile error."
|
|
90
|
+
|
|
91
|
+
`DispatchFailedPayload.reason: RunOutcome | 'retry_denied'` — "the board maps it to a presentation status, so emitters must not collapse the taxonomy."
|
|
92
|
+
|
|
93
|
+
Both terminal payloads may carry `skillActivations[]`, present only when the run activated a skill. "A run that loaded a skill and then failed is exactly when the operator needs to know which skill and which copy of it."
|
|
94
|
+
|
|
95
|
+
## Terminal token metadata (the one non-event fact on this boundary)
|
|
96
|
+
|
|
97
|
+
Terminal metadata carries **exactly five** token fields: `input`, `output`, `cacheRead`, `cacheWrite`, `reasoning`, under `_meta["clio-coder/usage"]`. The workbench rule, worth keeping: **never converted to price or context pressure by the GUI.** Show the five numbers and Clio's own reported cost with its provenance; do not multiply by a rate card.
|
|
98
|
+
|
|
99
|
+
## Agent attribution (already public, easy to miss)
|
|
100
|
+
|
|
101
|
+
Every live `session/update` carries a `clio-coder/agent` attribution in its `_meta`, and a tool call whose execution spawned a delegated run is **re-announced** carrying that worker's agent id, run id, and node. The main narrative is attributed to the orchestrator explicitly, "so the GUI states who produced a card instead of assuming it."
|
|
102
|
+
|
|
103
|
+
What does **not** cross, and must not be simulated: a sub-agent's own narrative or reasoning. A delegated run's output reaches the orchestrator as a tool result, so per-message worker attribution has nothing to attach to on the ACP session stream.
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# Inspector presentation atlas
|
|
2
|
+
|
|
3
|
+
> **Reference Design & Planning Blueprint**: This document is an architectural reference blueprint recovered from the deleted `apps/workbench` prototype. It specifies design doctrine, target parity, and inspection layouts for the early GUI preview (`apps/clio-coder-gui`), not verified runtime features of the core v0.5.0 terminal engine.
|
|
4
|
+
|
|
5
|
+
What each of the retired workbench's thirteen inspectors showed, in what order, and
|
|
6
|
+
which route in `apps/clio-coder-gui` now carries the same data. The data is
|
|
7
|
+
reproduced; the presentation decisions recorded here are what the new GUI still owes.
|
|
8
|
+
|
|
9
|
+
**Verification of the audit's data claim, per inspector → new route:**
|
|
10
|
+
|
|
11
|
+
| Inspector | Data reproduced by | Verdict |
|
|
12
|
+
| --- | --- | --- |
|
|
13
|
+
| catalog (26K) | `contracts/library.ts` | yes, with agents/skills/verifiers/extensions collapsed into one `Library` shape |
|
|
14
|
+
| config (16K) | `contracts/settings.ts` + `settings-safe.ts` | yes: `ConfigEntry.contextCostTokens` and `reloadClass` are on the wire |
|
|
15
|
+
| decisions (12K) | `contracts/evidence.ts` (`gate`) | yes, but shape is opaque (`JSON.stringify(gate)` at evidence.tsx:226) |
|
|
16
|
+
| dispatch (8K) | `contracts/fleet.ts` | yes |
|
|
17
|
+
| eval (24K) | `contracts/reports.ts` | yes |
|
|
18
|
+
| evidence (17K) | `contracts/evidence.ts` | yes |
|
|
19
|
+
| fleet (25K) | `contracts/fleet.ts` + `fleet-events.ts` | yes |
|
|
20
|
+
| interop (11K) | `contracts/system.ts` | yes: `wiring`, `decisionStale` and `decidedAt` are on the wire, derived by the core's own `interopProposals` |
|
|
21
|
+
| recovery (10K) | `contracts/system.ts` | yes |
|
|
22
|
+
| routing (12K) | `contracts/targets.ts` | yes |
|
|
23
|
+
| toolchain (9K) | `contracts/toolchain.ts` | yes |
|
|
24
|
+
| trace (15K) | `contracts/traces.ts` | yes |
|
|
25
|
+
| usage (16K) | `contracts/reports.ts` | yes: the token fields and the origin split are read out of `facts[].values` by `client/pages/usage-model.ts` |
|
|
26
|
+
|
|
27
|
+
**The empty-state grammar — the most reusable thing here.** Every panel distinguished four states and used different words for each. Reproduce this everywhere:
|
|
28
|
+
1. *Not read in this session* — `"The durable evidence inventory has not been read in this session."` / `"No diagnostic sweep has run in this desktop session. Nothing is inferred from a successful conversation."`
|
|
29
|
+
2. *Store missing* — `"This installation has never run an evaluation, so it has no eval store at all. That is a missing store, not an empty one."` A dash in a figure means the store was not found: `"A dash means Clio Coder could not find that local history store. It does not mean zero activity."`
|
|
30
|
+
3. *Store present, nothing in it* — `"Clio Coder has built no evidence bundles on this installation. This is an empty record, not a health claim."`
|
|
31
|
+
4. *Record predates the schema* — `"This bundle predates the canonical trust projection, so it records no axes to open."`
|
|
32
|
+
|
|
33
|
+
And a fifth, for every bounded list: `"Older evidence bundles are outside this bounded window."` / `"Later phases are outside this bounded index."` / `"rarer kinds not shown"`. Every truncation flag on the wire gets a sentence; none is silently dropped.
|
|
34
|
+
|
|
35
|
+
**Per-inspector fact order and grouping.**
|
|
36
|
+
|
|
37
|
+
- **config** → *Effective Clio Map*. Four summary figures first: effective setting facts, customization surfaces, estimated context cost (`~` + locale-formatted sum of `contextCostTokens`), needs-a-restart count. Then a three-stage "influence path" diagram: **01 Sources** (scope + setting-source counts, merged into one map, sorted by count descending then name, top 8) → **02 Loaded layers** (categories in `CUSTOMIZATION_CATEGORY_ORDER`, shown as a 3-4 letter code plus label) → **03 Behavior**. Then settings grouped by *family* (`key.split(/[.[]/, 1)[0]`), families sorted alphabetically. Entry source line: the project-relative path, or `"project root"` when the path is `/`, or `` `${scope} scope` `` when no path.
|
|
38
|
+
- **catalog** → tabbed (Agents / Skills / Verifiers / Library / Extensions) with arrow-key tab navigation. Agent card facts in order: capability, project context tier, tool-call budget (`min–max` or bare `min`), read reserve; bound skills as chips; declared tool surfaces behind `<details>` with the count on the summary; footer = result contract + `"Text synthesis at boundary"` / `"Stops at boundary"`. Skill card leads with the *reach sentence* — `"The model can load this by name"` / `"Its root is not trusted, so the model never sees it"` / `"Its frontmatter reserves it for you"` — then precedence, root trust, model invocation; footer counts issues and flags `installed by a dispatched worker` / `has an upstream`. Free-text query filters across all string fields, case-folded with `toLocaleLowerCase("en-US")`.
|
|
39
|
+
- **usage** → 30-day window, stated as `from … through …`. Summary: total tokens (+ API calls), Clio-reported cost (`"Recorded cost, never a GUI estimate"`), sessions, dispatch runs. Then token composition as five comparative bars — **`"Bars compare token fields with one another; they are not additive percentages. Provider accounting can overlap cache and reasoning fields."`** Then origin split (turns / side questions / handoffs), models sorted by tokens, skills split into activated vs dormant.
|
|
40
|
+
- **trace** → per run: status mark, four totals (tokens, cost, wall time, runtime), then an ordered phase list with name / `kind · owner` / `tokens · cost · duration · N retries` / status, then event-kind and process-kind histograms. Boundary line: `"Event payloads, event names, and process command lines stay on the host by design. What crosses is how many of each kind there were."`
|
|
41
|
+
- **toolchain** → one resolution label per item, with a deliberate three-way split: `!supported → "Platform unsupported"/neutral`; `source === "path" → "Using PATH"/success`; `source === "vendored" → "Using pinned copy"/success`; otherwise `"Not available"/warning`.
|
|
42
|
+
- **interop** → summary (detected of known kinds, wired as peers, would be offered, detected-at), then one row per agent with the wiring sentence. Boundary: detection reads files only, starts no agent, and the version shown is the last one Clio recorded — `"opening this panel cannot become 'execute every coding agent installed on this machine'"`.
|
|
43
|
+
- **routing** → target selector (targets derived client-side from the model rows, deduped and `localeCompare`-sorted), then a filtered model grid. Filter is a `useDeferredValue` over the lowercased query, matched against `[modelId, runtimeId, residency, ...capabilities]`. Zero values render `"Not reported"`, never `0`.
|
|
44
|
+
- **dispatch** → installation-wide, explicitly not project-scoped and not a live stream: `"This is global installation state, not a fact about the selected project and not a live event stream."`
|
|
45
|
+
- **recovery**, **evidence**, **fleet**, **eval**, **decisions** → see their own artifacts.
|
|
46
|
+
|
|
47
|
+
**Shared idioms worth extracting into `client/design/`:**
|
|
48
|
+
- `<StatusMark tone label>` — a glyph + label pair with tones `success | warning | error | neutral | info | action`. Used by every panel; there is no other status primitive.
|
|
49
|
+
- A `PanelHeading` with `eyebrow` (all-caps, wide-tracked), `title`, optional action slot. Every panel opens with an eyebrow that names the data's *scope and mutability*: `EVIDENCE BUNDLES · INSTALLATION-WIDE`, `DURABLE ACCOUNTING · TRACE DATABASE`, `EVAL REPORTS · INSTALLATION-WIDE · READ ONLY`, `INSTALLATION · REDACTED DIAGNOSTICS`, `MODELS · WORKER ROUTING`, `GATE DECISIONS · SEALED COORDINATOR VERDICTS`, `COUNCIL TOPOLOGY · SEATED VOICES AND ROUNDS`, `APPROVAL NEEDED · ONE USE`.
|
|
50
|
+
- A closing **boundary paragraph** on every panel naming exactly what stays on the host. These are not boilerplate; each one is specific and each should survive.
|
|
51
|
+
- Formatters: `formatTokens(v) = v === null ? "not recorded" : v.toLocaleString("en-US")`; `formatCostUsd(v) = v === null ? "not recorded" : "$" + v.toFixed(v > 0 && v < 0.01 ? 4 : 2)` — **exactly zero prints as `$0.00`, not "free", because a local runtime that prices at zero and a run whose cost was never recorded are different facts and only the second is null**. `client/api/clock.ts` already has `formatCost` and `formatTokens` matching this; keep them.
|
|
52
|
+
|
|
53
|
+
**Status against this atlas.** Every claim above is either built or listed here as a deliberate difference.
|
|
54
|
+
|
|
55
|
+
| Inspector | Where it lives now | Pure model and test |
|
|
56
|
+
| --- | --- | --- |
|
|
57
|
+
| config | `/settings/why` (four figures, influence path, inventory by category) and `/settings/effective` (settings grouped by family) | `client/pages/config-map-model.ts`, `tests/config-map-model.test.ts` |
|
|
58
|
+
| catalog | `/library`: a `tablist` with arrow, Home and End keys; agent cards in the fact order above; skill cards led by the reach sentence; free text across every string field | `client/pages/library-model.ts`, `tests/library-model.test.ts` |
|
|
59
|
+
| interop | `/system/interop`: summary, one card per kind with the wiring sentence | `client/pages/interop-model.ts`, `tests/interop-model.test.ts`, `tests/system-http.test.ts` |
|
|
60
|
+
| dispatch | `/fleet`, which carries the installation-wide sentence as `DISPATCH_SCOPE` | `client/design/panel-model.ts` |
|
|
61
|
+
| usage, trace, toolchain, routing, evidence, eval, decisions | unchanged since the previous sprint | `usage-model.ts`, `trace-model.ts`, `toolchain-model.ts` |
|
|
62
|
+
|
|
63
|
+
Every page now opens with a `PanelHeading` from the `PANELS` registry and closes with its own `Boundary`. An eyebrow ends in one word from `MUTABILITIES`, and `tests/panel-model.test.ts` holds the registry to that list.
|
|
64
|
+
|
|
65
|
+
Deliberate differences from the retired workbench:
|
|
66
|
+
|
|
67
|
+
- **The interop read probes versions only when asked.** Opening `/system/interop` reads files and runs nothing, as the workbench did, and shows the last version Clio Coder recorded. The "Detect again and probe versions" button sends `?probe=versions`, which runs one bounded `<bin> --version` per installed agent inside a scratch home. Each version says which of the two it is (`versionSource`), and `tests/system-http.test.ts` holds both halves.
|
|
68
|
+
- **Wiring has a fifth and a sixth word.** Besides configured, not-ACP, proposed and decided, the wire carries `not-offered` (an ACP kind with no executable to wire and no standing answer) and `unknown` (the settings that decide wiring could not be read). Neither may collapse into one of the four.
|
|
69
|
+
- **Two skill footer flags are not on the wire.** "Has an upstream" is derived from `origin.kind === "remote"`. "Installed by a dispatched worker" has no counterpart in `LibraryResource` and is not shown.
|
|
70
|
+
- **The entry source line shows the path as the wire gives it.** `ConfigEntry.sourcePath` is absolute in this application, which is local by construction, so there is no project-relative form to prefer. The `"project root"` and `` `${scope} scope` `` rules hold.
|
|
71
|
+
- **Wire vocabulary reads as words.** `scalarText` humanizes a lowercase wire token only under a vocabulary key (`kind`, `state`, `status`, `reason`, `outcome`, `verdict`, `level`, `tier`, `mode`, `phase`, `class`, `category`, alone or as a camel-case or snake-case suffix). The key decides, never the value, so an id, name or model is never rewritten.
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# GUI parity matrix — part 1: command-line surface
|
|
2
|
+
|
|
3
|
+
> **Reference Design & Planning Blueprint**: This document is an architectural reference blueprint recovered from the deleted `apps/workbench` prototype. It specifies design doctrine, target parity, and inspection layouts for the early GUI preview (`apps/clio-coder-gui`), not verified runtime features of the core v0.5.0 terminal engine.
|
|
4
|
+
|
|
5
|
+
Extracted verbatim from `apps/workbench/PARITY.md`. Original audit anchor: commit `d41e7dd1` (`v0.4.0`), 2026-08-31, comparing `src/cli/index.ts`, `src/interactive/slash-commands.ts`, and `src/entry/orchestrator.ts` against the protocol-v4 GUI at `apps/workbench`.
|
|
6
|
+
|
|
7
|
+
## Verdict vocabulary (load-bearing — do not soften)
|
|
8
|
+
|
|
9
|
+
- **Present** — the GUI renders or drives the same authoritative fact or operation.
|
|
10
|
+
- **Partial** — a useful, truthful subset crosses a typed boundary.
|
|
11
|
+
- **Absent** — there is no GUI surface, even when a formatted terminal command exists.
|
|
12
|
+
- A graphical substitute is NOT claimed for destructive administration, developer-only instruments, or terminal presentation that should deliberately stay outside the app.
|
|
13
|
+
|
|
14
|
+
## Marker vocabulary
|
|
15
|
+
|
|
16
|
+
- **host-only-by-design** — a payload the workbench would not carry in any form, as distinct from one it had not carried yet. Members at audit time: event payloads, event names, process command lines, a council's deliberation, a gate's reasoning, a verification check's argument vector, an eval report's runner attachments. Bounded aggregates, topologies, classifications, and verdicts over them cross; the rows and prose never do, and the panel says so on screen rather than leaving the absence to be inferred.
|
|
17
|
+
- **deferred-by-design** — the remaining gap is a *mutation*, not a missing read. The workbench was read-only by decision: every adapter ran a fixed, argument-free command and changed nothing. Rows whose gap mixes a missing read with a missing mutation are deliberately left unmarked so the read half stays visible as work the GUI can still do.
|
|
18
|
+
- **blocked-on-phase4** — the owning surface publishes no fixed typed read command, so parity cannot be claimed honestly.
|
|
19
|
+
|
|
20
|
+
## STALENESS NOTE FOR THE NEW APP (verified 2026-09-20 against `src/` and `apps/clio-coder-gui/`)
|
|
21
|
+
|
|
22
|
+
`host-only-by-design` is **workbench policy, not a universal rule**, and the replacement app has already decided otherwise on purpose. `apps/clio-coder-gui/contracts/traces.ts` carries `payload_json` on `TraceEvent` and `command` + `command_digest` on `TraceProcess`, served over `/api/traces/runs/:runId/events` and `/api/traces/runs/:runId/processes`. The threat model changed: the workbench shipped a browser talking to a bounded ACP child over a validated protocol, the new app is a localhost server the operator started against their own machine. Do not "restore" the exclusion rule. Keep the *reasoning* (§ the exclusion-vs-redaction doctrine artifact) and re-derive the verdict per field.
|
|
23
|
+
|
|
24
|
+
## Row-count correction
|
|
25
|
+
|
|
26
|
+
The file's own verdict summary claims Present 22 / Partial 61 / Absent 29 / **Total 112**. The four tables physically contain **113** rows (32 + 32 + 31 + 18). The discrepancy is the corrupt `Worker result and archive sharing` row (part 2), whose Gap cell was eaten by an unescaped pipe.
|
|
27
|
+
|
|
28
|
+
## The table (32 rows)
|
|
29
|
+
|
|
30
|
+
| # | Harness capability | Harness operation | GUI verdict | Gap | Obsolete for the new app? |
|
|
31
|
+
| -: | --- | --- | --- | --- | --- |
|
|
32
|
+
| 1 | Interactive repository chat | Bare `clio-coder` starts the full TUI | **Partial** | ACP conversation, tools, approvals, and session replay are present, but many TUI overlays and side workflows are not. | No — still the core parity target. |
|
|
33
|
+
| 2 | ACP agent server | `acp` serves Clio Coder over stdio | **Present** | The GUI launches and binds one real ACP child per open project. | No — `apps/clio-coder-gui/server/acp/` keeps this. |
|
|
34
|
+
| 3 | Headless turn | `run` with route, autonomy, session, sampling, output, and context flags | **Partial** | The GUI drives interactive ACP turns but has no headless job form or print, JSON, JSONL, and JSON-stream output modes. | No. A "Run Lab" remains unbuilt. |
|
|
35
|
+
| 4 | First-run configuration | `configure` interactive wizard | **Partial** | **deferred-by-design**: The GUI edits four safe settings and probes targets; it cannot author a complete installation. | Partly — the four-key limit is superseded; see the settings artifact. |
|
|
36
|
+
| 5 | Target management | `targets` list/add/use/profile/remove/rename and probe | **Partial** | **deferred-by-design**: Target listing, selection, offline models, worker profiles, bindings, and explicit probes are present; lifecycle mutations are absent. | **STALE** — the new app already exposes `POST /api/workspaces/:id/targets/:targetId/use` and `/remove` alongside `/probe`. |
|
|
37
|
+
| 6 | Model discovery | `models [search]`, online and offline JSON inventories | **Partial** | Offline model capability inventory is present; online discovery, selection breadth, favorites, and load controls are absent. | No — favorites now have a real settings home at `chat.modelPicker.favorites`. |
|
|
38
|
+
| 7 | Authentication | `auth list/status/login/logout` | **Absent** | **deferred-by-design**: No credential-status or reviewed login/logout operation crosses the GUI boundary. | No. Still the right call; never route secrets through the renderer. |
|
|
39
|
+
| 8 | Diagnostic sweep | `doctor [--fix]` | **Partial** | **deferred-by-design**: Every check reaches Settings by name, section, and verdict; finding details, repair preview, `--fix`, and focused checks are absent. | No. Note `src/cli/` now has nine doctor modules (deep/hpc/naming/panes/slurm/state-size/task-worktrees/toolchain/validation-contract) the audit predates. |
|
|
40
|
+
| 9 | Resolved installation paths | `paths [--json]` | **Partial** | Recovery reports a root-resolution count but intentionally withholds native paths and has no path reference surface. | Revisit — a localhost app that already shows the workspace path has no reason to withhold install roots. |
|
|
41
|
+
| 10 | State reset and recovery | `reset` | **Partial** | **deferred-by-design**: Read-only installation recovery inspection is present; previewed repair, selective reset, and wipe operations are absent. | No. |
|
|
42
|
+
| 11 | Project context | `context` status/init/refresh/wiki/reset/index/replay/working-set | **Partial** | Effective context sources and earlier replay are visible; authoring, indexing, working-set state, recall, and reset are absent. | No — but `context-init`/`context-index`/`context-clear` are now RETIRED subcommand tombstones (`src/cli/index.ts:333`); the live path is `context <sub>`. |
|
|
43
|
+
| 12 | Uninstall | `uninstall` | **Absent** | **deferred-by-design**: Destructive installation removal belongs in a separate confirmed lifecycle surface. | No. |
|
|
44
|
+
| 13 | Upgrade | `upgrade` | **Absent** | **deferred-by-design**: The GUI has no version comparison, migration preview, or upgrade operation. | No. |
|
|
45
|
+
| 14 | Agent reference | `agents [--json]` | **Present** | Capability atlas renders bounded discovered-agent recipes and provenance. | No — new app has `GET /api/workspaces/:id/library/agents`. |
|
|
46
|
+
| 15 | Fleet lifecycle | `fleet` list/new/validate/graph/commands/run/status/view/inspect/drain/resume | **Partial** | **deferred-by-design**: Recent run inspection, bounded journal follow, and the fleet-root step index are graphical; authoring, validation, admission control, and execution are absent. | No — and `fleet decisions --json` + `fleet verify` + `fleet preflight` now exist as separate modules. |
|
|
47
|
+
| 16 | Evidence artifacts | `evidence` build/list/inspect | **Present** | Runs lists recent bundles and opens one to its per-run trust axes. Building a bundle stays terminal, which is a mutation rather than a read. | **STALE** — the new app already has `POST /api/workspaces/:id/evidence/:runId/build`. Also `evidence inventory --json` exists now. |
|
|
48
|
+
| 17 | Evaluation | `eval` run/report/compare | **Partial** | Runs lists every stored report with its outcome, route, accounting, and per-scenario result. A report's runner attachments are the whole session transcript and are **host-only-by-design**. Running an eval is execution; comparison and per-trial metric distributions are absent. | Partly — `eval` now also has `skill`, `validate`, `gate`, `--package`, `--task-file`, `--format swe-jsonl\|junit`, and `eval inventory --json`. |
|
|
49
|
+
| 18 | Durable memory | `memory` list/propose/promote/approve/reject/prune | **Partial** | Effective configuration can report memory presence and the catalog can describe resources, but memory records and reviewed mutations are absent. | No. `src/cli/memory.ts` still has no `--json`; a typed read is still the blocker. |
|
|
50
|
+
| 19 | Historical usage | `usage report` | **Present** | The project-scoped 30-day Usage record projects bounded report rows and distinguishes a missing store from zero activity. | No — new app has `GET /api/workspaces/:id/usage`. |
|
|
51
|
+
| 20 | Durable trace | `trace` runs/phases/tail/procs/prune/sql/ui | **Partial** | Runs renders per-run and per-phase accounting plus event and process shapes. Row-level tails and process rows are **host-only-by-design**; pruning is deferred, and arbitrary SQL must never become the GUI boundary. | **STALE on host-only** — see the staleness note above. `trace code-steps <rootId> --json` is also new. The "never expose arbitrary SQL" clause still holds. |
|
|
52
|
+
| 21 | Extension packages | `extensions` list/discover/install/enable/disable/remove | **Partial** | Installed extension inventory, scope, precedence, resources, and diagnostics are present; lifecycle mutations are absent. | Partly — `extensions run <id> <command>` is new; `library` now overlaps this family heavily. |
|
|
53
|
+
| 22 | Skills | `skills` list/search/inspect/validate/install/update/sync/eval | **Present** | Every installed skill reaches the atlas with its trust, invocability, tool policy, provenance, and the loader's own validity verdict; installed search is the atlas filter and marketplace search is the library. Installing, updating, and evaluating are mutations rather than reads. | **STALE — the command family no longer exists.** `skills` was absorbed into `library`: the reads are `library skills [--all] [--json]`, `library inventory --json`, `library validate <SKILL.md> [--json]`; the mutations are `library install/update/enable/disable/remove/pin`. |
|
|
54
|
+
| 23 | Resource library | `library` list/search/add/use/sync/push/remote-confirm | **Partial** | Bounded available-resource inventory is present; search across remotes and reviewed lifecycle operations are absent. | **STALE — rewritten.** See the CLI-surface-inventory artifact for the current 20-subcommand surface. |
|
|
55
|
+
| 24 | Verifiers | `verifiers` discover/author/validate/dry-run/add/edit/rename/remove | **Partial** | **deferred-by-design**: The atlas renders the declared check plane and the catalog's parse verdict. Each check's argument vector is **host-only-by-design**; authoring, editing, and dry-run execution are absent. | Partly — `verifiers baseline <id>` is new. New app has `GET /api/workspaces/:id/library/verifiers`. |
|
|
56
|
+
| 25 | External toolchain | `tools` list/status/install | **Partial** | Settings renders a path-free pinned inventory with resolution and platform facts; per-tool status detail and reviewed installation are absent. | **STALE** — the new app already has `POST /api/toolchain/tools/:toolId/install` and `/remove`, driven through `/api/operations/:id`. |
|
|
57
|
+
| 26 | Pane installation | `panes install` | **Absent** | **deferred-by-design**: Installation is a consequential toolchain mutation and has no GUI operation. | No. `panes install [--force] [--json]` is still the only JSON on that family. |
|
|
58
|
+
| 27 | Documentation server | `docs [topic]` | **Absent** | There is no contextual documentation launcher or embedded operator reference. | **STALE** — the new app has `/api/docs/tree`, `/api/docs/page`, `/api/docs/search` and a `client/pages/docs.tsx`. |
|
|
59
|
+
| 28 | Effective configuration command | `config inspect --json` | **Present** | Effective Clio Coder uses its bounded projection for settings, sources, precedence, reload timing, and issues. | No — new app has `GET /api/workspaces/:id/config-graph`. |
|
|
60
|
+
| 29 | Portable sharing | `share`, `export`, and `import` | **Absent** | **deferred-by-design**: No archive inspection, export, dry-run import, confirmation, or conflict surface exists. | No. Note `share` is registered both top-level and under `dev`. |
|
|
61
|
+
| 30 | Component instrument | `dev components` list/snapshot/diff | **Absent** | This developer instrument is intentionally outside the core GUI and has no separate developer canvas. | No. |
|
|
62
|
+
| 31 | Evolution instrument | `dev evolve` init/validate/summarize | **Absent** | Change-manifest development remains a CLI workflow. | No. |
|
|
63
|
+
| 32 | Version | `--version` and `version` | **Present** | Settings opens with an About record: the version Clio Coder reported in the ACP handshake, the GUI's own version from an optional bootstrap field, the ten advertised capabilities in words, and doctor's Clio Coder, Node, and platform versions beside the handshake's, labelled by source and never reconciled. The status bar names the handshake version. | No — new app has `GET /api/meta`. Keep the "labelled by source and never reconciled" rule; it is the honest thing. |
|
|
64
|
+
|
|
65
|
+
## Missing rows the new app must add
|
|
66
|
+
|
|
67
|
+
The audit predates these command families entirely; each needs its own parity row:
|
|
68
|
+
|
|
69
|
+
| Harness capability | Harness operation | Starting verdict | Note |
|
|
70
|
+
| --- | --- | --- | --- |
|
|
71
|
+
| MCP servers | `mcp` (7 `--json` call sites in `src/cli/mcp.ts`) | **Absent** | Has machine-readable output already; a typed read is available today. |
|
|
72
|
+
| GUI lifecycle | `gui` (`src/cli/gui.ts`) | n/a | This is the launcher for the app itself; it replaces the workbench's `scripts/gui-lifecycle.ts`. |
|
|
73
|
+
| Task ledger (CLI) | `tasks` (`src/cli/tasks.ts`) | **Absent** | No `--json` yet — the typed read is the blocker, same shape as memory. |
|
|
74
|
+
| Fleet preflight | `fleet preflight` (`src/cli/fleet-preflight.ts`) | **Absent** | Admission dry-run; the natural first mutation-adjacent GUI surface. |
|