@iowarp/clio-coder 0.5.0 → 0.5.2
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 +4 -4
- package/CHANGELOG.md +35 -0
- package/CONTRIBUTING.md +9 -0
- package/README.md +12 -9
- package/ROADMAP.md +30 -5
- package/dist/{acp-KS7ARGV6.js → acp-F6PGOFZ4.js} +2 -2
- package/dist/{agents-YOGJ2YEJ.js → agents-ZHP4R6EX.js} +22 -21
- package/dist/assets/codewiki.json +1 -1
- package/dist/{auth-CEDCO6O6.js → auth-N75U2H3Z.js} +4 -4
- package/dist/{chunk-D3KWFOUT.js → chunk-23UIXH6Z.js} +3 -3
- package/dist/{chunk-ZR5YA6ZF.js → chunk-36XVK5P5.js} +5 -5
- package/dist/{chunk-AVSR2HKI.js → chunk-3DZ4LPLS.js} +6 -6
- package/dist/{chunk-LYJJ6546.js → chunk-3GSPCWFX.js} +12 -12
- package/dist/{chunk-CRHPCPZP.js → chunk-4KC4CHKJ.js} +2 -2
- package/dist/{chunk-4VDHLCF5.js → chunk-4WJBWKMI.js} +2 -2
- package/dist/{chunk-KBUTSJSR.js → chunk-4XBYHXGK.js} +2 -2
- package/dist/{chunk-6W75D37F.js → chunk-53P775GE.js} +6 -3
- package/dist/{chunk-XZWSP67B.js → chunk-5APYAXCB.js} +2 -2
- package/dist/{chunk-D65E25JG.js → chunk-67HPYNTJ.js} +2 -2
- package/dist/{chunk-5JQR5B4D.js → chunk-6KV4KCQZ.js} +4 -4
- package/dist/{chunk-V4XJWDHR.js → chunk-6UKFRTXI.js} +2 -1
- package/dist/{chunk-NDPF2N2L.js → chunk-7DW7CJW2.js} +2 -2
- package/dist/{chunk-5KQEUIWM.js → chunk-7LUEQODV.js} +4 -4
- package/dist/{chunk-LNOXCGN2.js → chunk-7UFDIOBT.js} +3 -3
- package/dist/{chunk-DXSETN72.js → chunk-7WUGNN43.js} +2 -2
- package/dist/{chunk-V35KZDUZ.js → chunk-AA3GRZWS.js} +2 -2
- package/dist/{chunk-X4CEFOSG.js → chunk-ADO3OQIC.js} +4 -4
- package/dist/{chunk-UX2L5CUD.js → chunk-AI36V3ON.js} +3 -3
- package/dist/{chunk-B7GY6QER.js → chunk-B26OUMJW.js} +2 -2
- package/dist/{chunk-LAR7DX5E.js → chunk-B5TASTCK.js} +153 -62
- package/dist/{chunk-TGWZXJ7L.js → chunk-BEMQK5Q7.js} +92 -84
- package/dist/{chunk-RNDCROSG.js → chunk-CNXU7TR2.js} +3 -3
- package/dist/{chunk-3JLTRPN7.js → chunk-CVMUXT64.js} +35 -66
- package/dist/{chunk-733ZBT5P.js → chunk-E74MJF6G.js} +4 -4
- package/dist/{chunk-T2MDZES3.js → chunk-EBMTBE76.js} +3 -3
- package/dist/{chunk-OZ76TLGU.js → chunk-EEITU7S6.js} +2 -2
- package/dist/{chunk-GRHOXDKB.js → chunk-ELDJWJKM.js} +97 -14
- package/dist/{chunk-GCQFN7YI.js → chunk-EMYEQLWO.js} +2 -2
- package/dist/{chunk-LTWH2ACR.js → chunk-EQPFEDFV.js} +222 -127
- package/dist/{chunk-TDGYTWM6.js → chunk-F4I3H56H.js} +2 -2
- package/dist/chunk-F6KCJO3U.js +523 -0
- package/dist/{chunk-FGSQHUCK.js → chunk-F6VKWTTY.js} +5 -5
- package/dist/{chunk-UJD5MPP6.js → chunk-FLNXQQ5B.js} +2 -2
- package/dist/{chunk-EX57VVWW.js → chunk-FOSRJ2VZ.js} +4 -4
- package/dist/{chunk-ZARZ4POR.js → chunk-G5ZDQQE3.js} +3 -3
- package/dist/{chunk-HQVN7G4F.js → chunk-G62JBPXN.js} +7 -7
- package/dist/{chunk-ZJPORZTC.js → chunk-GIAI7A2K.js} +2 -2
- package/dist/chunk-GPTR6OTU.js +2551 -0
- package/dist/{chunk-EZD2BXGP.js → chunk-GUFQPTQK.js} +2 -2
- package/dist/{chunk-OPD7GL6F.js → chunk-H6FQVNZC.js} +8 -7
- package/dist/chunk-H7REJ7L5.js +80 -0
- package/dist/{chunk-EYTLV3W3.js → chunk-HTWTORF7.js} +2 -2
- package/dist/{chunk-DF6PI6GN.js → chunk-I6UKQPGS.js} +3 -3
- package/dist/{chunk-ISHUS7HC.js → chunk-JRW236JT.js} +3 -3
- package/dist/{chunk-DE2LU267.js → chunk-KKAJGT3B.js} +3 -2
- package/dist/{chunk-OV62D6KO.js → chunk-KQMYL5GR.js} +3 -3
- package/dist/{chunk-QDUUOZ3S.js → chunk-KWMFC7FN.js} +3 -3
- package/dist/{chunk-R7FGRZNF.js → chunk-LXYHCCIZ.js} +9 -9
- package/dist/{chunk-NFSK2VNU.js → chunk-LZMTVVN4.js} +2 -2
- package/dist/{chunk-62UK7AGW.js → chunk-M5PMRZSR.js} +397 -44
- package/dist/chunk-MMZMM6SW.js +131 -0
- package/dist/{chunk-FFYTC2KQ.js → chunk-MNABNEBX.js} +2 -2
- package/dist/{chunk-XMDBTYCH.js → chunk-N3CWOGVF.js} +3 -3
- package/dist/{chunk-VYRQHORQ.js → chunk-NMQSO6Z6.js} +4 -3
- package/dist/{chunk-R2UUNSNQ.js → chunk-O3ZAF7UY.js} +18 -5
- package/dist/{chunk-4SYHGVDE.js → chunk-OQNCLZI4.js} +4 -4
- package/dist/{chunk-EG4ARXPC.js → chunk-OX6QTA4N.js} +3 -3
- package/dist/{chunk-P4GNZPXO.js → chunk-OYUS3UZP.js} +2 -2
- package/dist/{chunk-OQ2EOAHA.js → chunk-PF36KOGI.js} +291 -112
- package/dist/{chunk-55RMDDFM.js → chunk-PGQG7ZMW.js} +2 -2
- package/dist/{chunk-CBAQPTDU.js → chunk-PIU6BXXW.js} +2 -2
- package/dist/{chunk-EKV4UBCM.js → chunk-PZBQUJ2F.js} +2 -2
- package/dist/{chunk-7RET77VB.js → chunk-Q2HKY32Y.js} +2 -2
- package/dist/{chunk-U6YTUVOX.js → chunk-Q4RMNWMZ.js} +4 -4
- package/dist/chunk-Q6FRR3AQ.js +48 -0
- package/dist/{chunk-6RJMYYIE.js → chunk-QJSIAJBY.js} +3 -3
- package/dist/{chunk-DOUISWEE.js → chunk-QOJ4ERMU.js} +5 -5
- package/dist/{chunk-IFPDAD7R.js → chunk-RWSRKXLT.js} +3 -3
- package/dist/{chunk-T33IYTZM.js → chunk-SAASVMIY.js} +3 -3
- package/dist/{chunk-2DTIWSAW.js → chunk-SEQDH6JC.js} +3 -3
- package/dist/{chunk-BRCOSE7O.js → chunk-SZUO5BSE.js} +2 -2
- package/dist/{chunk-HOEDA42N.js → chunk-T7HZ7KJF.js} +2 -2
- package/dist/{chunk-OJXOA6YU.js → chunk-TL6LNERH.js} +2 -2
- package/dist/{chunk-UCINIRHW.js → chunk-TPCZXWLT.js} +3 -3
- package/dist/{chunk-ZUKUCZYZ.js → chunk-TQ2KTH4A.js} +2 -2
- package/dist/{chunk-4WOOTKFD.js → chunk-U3FETNQB.js} +341 -20
- package/dist/{chunk-5B3RTYAK.js → chunk-UGDSB4AN.js} +2 -2
- package/dist/{chunk-VKHLUZNO.js → chunk-UZ7YBL43.js} +3 -3
- package/dist/{chunk-QNUQ7K7D.js → chunk-VKMSEO7Y.js} +4 -4
- package/dist/{chunk-IN7DGBVS.js → chunk-VLX5VZ35.js} +5 -5
- package/dist/{chunk-SJGS3GDI.js → chunk-WAGBMMNX.js} +5 -5
- package/dist/{chunk-BFOSV5EZ.js → chunk-WX2YCH7F.js} +2 -2
- package/dist/{chunk-3LT34CAM.js → chunk-XBIGUILU.js} +32 -17
- package/dist/{chunk-XDHUDE5K.js → chunk-XKYBFRWR.js} +5 -5
- package/dist/{chunk-U5QU5ZOD.js → chunk-XYPWFSU5.js} +3 -3
- package/dist/{chunk-YBUECLAF.js → chunk-YEJQDODA.js} +2 -2
- package/dist/{chunk-YQ6XEFVK.js → chunk-Z74OGONW.js} +39 -7
- package/dist/{chunk-I4ELN5BX.js → chunk-ZTNOEJRI.js} +2 -2
- package/dist/cli/index.js +26 -26
- package/dist/{clio-K2PBVCEM.js → clio-4IKFE25F.js} +2 -2
- package/dist/{clio-context-tools-GR4OHFSO.js → clio-context-tools-OHJXYX4R.js} +25 -23
- package/dist/{code-nav-4X3OI6DK.js → code-nav-XPM3MY5I.js} +7 -7
- package/dist/{config-Q5J7UBAB.js → config-343YS25T.js} +43 -41
- package/dist/{config-graph-P3555574.js → config-graph-WI263KDX.js} +43 -41
- package/dist/{configure-KIJ32ZO6.js → configure-GZDG4HER.js} +21 -21
- package/dist/{context-LFBQOSXT.js → context-4OFO7N7Y.js} +12 -12
- package/dist/{context-WBH3KSVR.js → context-JLK2RLOG.js} +42 -40
- package/dist/{context-NNLBES2Y.js → context-O6DIWCF6.js} +23 -21
- package/dist/{context-clear-YOHMQ6SQ.js → context-clear-MR7KOGQI.js} +42 -40
- package/dist/{context-working-set-MRAEVDNV.js → context-working-set-YZAD3KWO.js} +14 -13
- package/dist/{data-tool-JJPBGMQJ.js → data-tool-EKD7DFHG.js} +7 -7
- package/dist/{detail-RHJOTGN4.js → detail-YZPHFEVJ.js} +43 -41
- package/dist/{dispatch-runner-NC7PYNIO.js → dispatch-runner-VKVXVTWJ.js} +44 -42
- package/dist/{doctor-S5KZ2GTN.js → doctor-53AVQXAO.js} +17 -16
- package/dist/{doctor-deep-2EJQSHIZ.js → doctor-deep-BLRB2NCG.js} +5 -5
- package/dist/{eval-3D6M36N7.js → eval-P3BQSLQE.js} +21 -20
- package/dist/{evidence-XNVPPLVK.js → evidence-6LLI6SZH.js} +44 -42
- package/dist/{evidence-6IYN52ET.js → evidence-HTN3JLUO.js} +42 -40
- package/dist/{evidence-JVECPI3F.js → evidence-NJRE3R5H.js} +42 -40
- package/dist/{evolve-TLPUDJDM.js → evolve-WWZHJVJP.js} +42 -40
- package/dist/{fleet-WKVBF5SZ.js → fleet-GGZ4BVJE.js} +64 -62
- package/dist/{fleet-6RJWIOEO.js → fleet-QG3IIWWM.js} +44 -42
- package/dist/{fleet-commands-L6WFT7KZ.js → fleet-commands-J2ZIKISQ.js} +7 -7
- package/dist/{fleet-decisions-BTQMWU5A.js → fleet-decisions-Y2Q7375Q.js} +8 -8
- package/dist/{fleet-graph-553DZ67Q.js → fleet-graph-TCBCCCBP.js} +11 -11
- package/dist/{fleet-inspect-236FZPRB.js → fleet-inspect-KOLKBC56.js} +44 -42
- package/dist/{fleet-preflight-NZQHABWO.js → fleet-preflight-44UNCC4Y.js} +27 -25
- package/dist/{fleet-validate-7NLAE26R.js → fleet-validate-K2FXRZVA.js} +13 -13
- package/dist/{fleet-verify-E3RO6A5W.js → fleet-verify-AS444WDW.js} +42 -40
- package/dist/{fleet-view-KMZQY7YJ.js → fleet-view-X4JU4J6O.js} +43 -41
- package/dist/gui/ops-worker.js +9 -9
- package/dist/gui/reads-worker.js +9 -8
- package/dist/{init-DV5B6HQG.js → init-VSOWFHVL.js} +54 -52
- package/dist/{interactive-OXGYZYAS.js → interactive-JRCBENLZ.js} +1733 -577
- package/dist/{interop-J7UOBOSF.js → interop-JR6BCY7R.js} +10 -10
- package/dist/{inventory-OEGIL6PY.js → inventory-3JUGLVJI.js} +43 -41
- package/dist/{library-ROZAMUIL.js → library-7BOH3Y7N.js} +15 -15
- package/dist/{library-B3UPGY4V.js → library-7PFONXUI.js} +9 -9
- package/dist/{library-MXQA5DLT.js → library-TUYZMFIA.js} +7 -7
- package/dist/{library-import-2LTWOVBD.js → library-import-TJVXKLDK.js} +10 -10
- package/dist/{library-inventory-LJ3XHLWO.js → library-inventory-MD3AYTP4.js} +9 -9
- package/dist/{library-validation-DARHHUNW.js → library-validation-ZDLITEA3.js} +7 -7
- package/dist/{mcp-2GSPYQ54.js → mcp-EFCWUPUR.js} +3 -3
- package/dist/{memory-J3STUUIK.js → memory-Q2YVOKK5.js} +42 -40
- package/dist/{models-Y3GMFJ2V.js → models-M7BOCW7F.js} +17 -16
- package/dist/{monitor-LHNH577J.js → monitor-2HD3MC67.js} +47 -45
- package/dist/{orchestrator-DTAPXULA.js → orchestrator-OUW3ZN6Y.js} +1894 -226
- package/dist/{panes-A743ONZ5.js → panes-TTPPSYCL.js} +3 -3
- package/dist/{preload-OJBMAIXF.js → preload-A47C2NUF.js} +42 -40
- package/dist/{providers-CMETPZNS.js → providers-T43W7EL4.js} +4 -4
- package/dist/{resources-FY6XYFN2.js → resources-TP6X2V6W.js} +20 -11
- package/dist/{run-H64MEVTA.js → run-LDSBPMCS.js} +61 -59
- package/dist/{share-CAFMMQLM.js → share-URHKKMHR.js} +9 -9
- package/dist/{skills-ERKQUC7L.js → skills-E477MOOO.js} +13 -11
- package/dist/{skills-eval-CQ23MYQK.js → skills-eval-AIBR2L7H.js} +583 -93
- package/dist/{skills-inventory-TVUYJDVN.js → skills-inventory-HLMKY3R5.js} +13 -11
- package/dist/{slash-commands-ROG3KIFJ.js → slash-commands-LIIZKA5Y.js} +28 -26
- package/dist/{startup-background-KDWCQMWT.js → startup-background-JR2KDK6R.js} +43 -41
- package/dist/{steer-KKYXJSH4.js → steer-D7RTAPCM.js} +3 -3
- package/dist/{system-ZDW44ZGX.js → system-X2P5N4IY.js} +14 -13
- package/dist/{targets-AJWA6E7Z.js → targets-VFFAKUFM.js} +25 -24
- package/dist/{tasks-6L2JJRC5.js → tasks-ERAWZA22.js} +6 -6
- package/dist/{terminal-lease-YFUSDPAD.js → terminal-lease-V2N2BIKQ.js} +2 -2
- package/dist/{trace-LA5MVR4Y.js → trace-MA5BT7XY.js} +3 -3
- package/dist/{usage-XSILDHKF.js → usage-WYFY2L6M.js} +50 -48
- package/dist/{verifiers-ECA5GIHL.js → verifiers-TYIW2XKF.js} +7 -7
- package/dist/{verify-R6QQCCEB.js → verify-242UFYTP.js} +6 -6
- package/dist/{web-fetch-PVZNMBOB.js → web-fetch-LRAGYU6Y.js} +3 -3
- package/dist/{wiki-generate-RP22WP5K.js → wiki-generate-OFKOX2T6.js} +53 -51
- package/dist/worker/entry.js +31 -29
- package/docs/architecture/architecture.md +1 -0
- package/docs/architecture/context-engine.md +4 -2
- package/docs/architecture/observability.md +6 -4
- package/docs/architecture/prompt-envelope-and-tools.md +1 -1
- package/docs/architecture/session-lifecycle.md +1 -1
- package/docs/architecture/tui-design.md +12 -9
- package/docs/gui/parity/02-slash-and-surfaces.md +1 -1
- package/docs/guide/commands-and-modes.md +91 -5
- package/docs/guide/configuration-and-targets.md +2 -2
- package/docs/guide/context-continuity.md +49 -0
- package/docs/guide/proactive-memory.md +6 -3
- package/library/registry.yaml +292 -32
- package/library/skills/README.md +27 -2
- package/library/skills/context/context-handoff/SKILL.md +10 -4
- package/library/skills/meta/clio-coder-dev/SKILL.md +92 -88
- package/library/skills/meta/clio-coder-dev/evals.md +51 -46
- package/library/skills/meta/clio-coder-dev/plugin.json +2 -2
- package/library/skills/meta/clio-coder-dev/references/change-map.md +49 -0
- package/library/skills/meta/clio-coder-test/SKILL.md +89 -142
- package/library/skills/meta/clio-coder-test/evals.md +58 -62
- package/library/skills/meta/clio-coder-test/plugin.json +2 -2
- package/library/skills/meta/clio-coder-test/references/harness.md +3 -3
- package/library/skills/meta/clio-coder-test/references/lifecycle-validation.md +30 -0
- package/library/skills/meta/clio-coder-test/references/test-map.md +60 -89
- package/library/skills/registry.yaml +5 -5
- package/library/skills/skill-marketplace.json +12 -14
- package/package.json +1 -1
- package/src/cli/skills-eval.ts +1064 -54
- package/src/cli/usage.ts +2 -2
- package/src/core/clio-repo.ts +3 -0
- package/src/core/tool-names.ts +1 -0
- package/src/domains/context/budget/inspection.ts +9 -0
- package/src/domains/context/budget/live-view.ts +418 -0
- package/src/domains/context/budget/pressure.ts +393 -0
- package/src/domains/context/budget/request-fit.ts +15 -0
- package/src/domains/evidence/build.ts +24 -0
- package/src/domains/gateway/mcp/client.ts +1 -1
- package/src/domains/memory/commit-state.ts +160 -0
- package/src/domains/memory/operations.ts +18 -10
- package/src/domains/memory/prompt-cache.ts +95 -0
- package/src/domains/memory/prompt-section.ts +50 -7
- package/src/domains/memory/relevance.ts +93 -0
- package/src/domains/memory/restoration.ts +78 -0
- package/src/domains/memory/store.ts +39 -1
- package/src/domains/middleware/memory-intervention.ts +116 -24
- package/src/domains/observability/background-memory-usage.ts +1 -1
- package/src/domains/observability/cost.ts +3 -3
- package/src/domains/observability/extension.ts +1 -1
- package/src/domains/observability/metrics.ts +1 -1
- package/src/domains/prompts/compiler.ts +1 -1
- package/src/domains/prompts/extension.ts +38 -1
- package/src/domains/quota/anthropic-max-provider.ts +134 -0
- package/src/domains/quota/anthropic-usage.ts +220 -0
- package/src/domains/quota/antigravity-provider.ts +339 -0
- package/src/domains/quota/cache.ts +87 -0
- package/src/domains/quota/claude-code-provider.ts +169 -0
- package/src/domains/quota/codex-provider.ts +237 -0
- package/src/domains/quota/presentation.ts +240 -0
- package/src/domains/quota/registry.ts +23 -0
- package/src/domains/quota/service.ts +93 -0
- package/src/domains/quota/summary-feed.ts +86 -0
- package/src/domains/quota/types.ts +84 -0
- package/src/domains/resources/index.ts +11 -0
- package/src/domains/resources/skills/catalog-view.ts +571 -0
- package/src/domains/resources/skills/lexical-match.ts +136 -0
- package/src/domains/resources/skills/loader.ts +38 -0
- package/src/domains/resources/skills/promotion.ts +1 -55
- package/src/domains/resources/skills/provenance-pin.ts +50 -20
- package/src/domains/safety/action-classifier.ts +1 -0
- package/src/domains/session/compaction/branch-summary.ts +4 -1
- package/src/domains/session/compaction/compact.ts +18 -2
- package/src/domains/session/compaction/cut-point.ts +20 -1
- package/src/domains/session/compaction/tokens.ts +48 -3
- package/src/domains/session/context-accounting.ts +8 -1
- package/src/domains/session/continuity/carry.ts +59 -0
- package/src/domains/session/continuity/contract.ts +592 -0
- package/src/domains/session/continuity/evidence.ts +290 -0
- package/src/domains/session/continuity/fold.ts +1075 -0
- package/src/domains/session/continuity/note.ts +79 -0
- package/src/domains/session/continuity/operator-request.ts +104 -0
- package/src/domains/session/continuity/persistence.ts +408 -0
- package/src/domains/session/continuity/ports.ts +231 -0
- package/src/domains/session/continuity/projection.ts +538 -0
- package/src/domains/session/continuity/validate.ts +352 -0
- package/src/domains/session/entries.ts +50 -3
- package/src/domains/session/index.ts +48 -0
- package/src/domains/session/migrations/index.ts +7 -3
- package/src/domains/session/tree/fork.ts +15 -1
- package/src/domains/session/usage.ts +2 -2
- package/src/engine/acp/commands.ts +1 -1
- package/src/engine/agent.ts +133 -9
- package/src/engine/session.ts +13 -6
- package/src/entry/orchestrator.ts +116 -33
- package/src/interactive/chat-loop-messages.ts +2 -2
- package/src/interactive/chat-loop.ts +219 -63
- package/src/interactive/chat-renderer.ts +99 -8
- package/src/interactive/context-overlay.ts +24 -3
- package/src/interactive/continuity-controller.ts +526 -0
- package/src/interactive/dispatch-board.ts +21 -3
- package/src/interactive/footer/dashboard.ts +25 -1
- package/src/interactive/footer/key-hints.ts +2 -2
- package/src/interactive/footer/pages.ts +70 -27
- package/src/interactive/footer/widgets.ts +32 -7
- package/src/interactive/footer-panel.ts +1 -1
- package/src/interactive/interactive-application.ts +7 -2
- package/src/interactive/interactive-input-runtime.ts +2 -2
- package/src/interactive/interactive-presentation.ts +15 -0
- package/src/interactive/interactive-slash-runtime.ts +45 -8
- package/src/interactive/interactive-tickers.ts +7 -1
- package/src/interactive/model-session-replay.ts +130 -3
- package/src/interactive/output-reserve.ts +35 -0
- package/src/interactive/overlay-general-openers.ts +12 -8
- package/src/interactive/overlay-key-routing.ts +6 -9
- package/src/interactive/overlay-lifecycle.ts +10 -6
- package/src/interactive/overlay-session-lifecycle.ts +21 -14
- package/src/interactive/quota-view.ts +229 -0
- package/src/interactive/session-last-turn.ts +1 -1
- package/src/interactive/session-transcript.ts +2 -1
- package/src/interactive/session-usage-reseed.ts +2 -2
- package/src/interactive/side-question.ts +2 -2
- package/src/interactive/slash-commands.ts +28 -9
- package/src/interactive/turn-context.ts +686 -63
- package/src/interactive/turn-middleware.ts +39 -6
- package/src/interactive/turn-persistence.ts +15 -2
- package/src/interactive/turn-prewarm.ts +1 -1
- package/src/interactive/turn-runtime.ts +48 -5
- package/src/interactive/{cost-overlay.ts → usage-overlay.ts} +121 -33
- package/src/interactive/welcome-dashboard.ts +26 -3
- package/src/tools/agent-tools.ts +3 -1
- package/src/tools/bootstrap.ts +6 -0
- package/src/tools/builtin-tool-catalog.ts +9 -0
- package/src/tools/context/index.ts +148 -113
- package/src/tools/context/surface.ts +11 -7
- package/src/tools/core-bootstrap.ts +4 -0
- package/src/tools/observation.ts +8 -2
- package/src/tools/policy.ts +3 -0
- package/src/tools/self-compact.ts +31 -0
- package/src/tools/surface.ts +1 -0
- package/src/tools/tasks.ts +1 -1
- package/dist/chunk-CTFPFW3H.js +0 -44
- package/dist/chunk-EOJPDNUP.js +0 -1325
- package/dist/chunk-I4Y4WKZR.js +0 -386
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
init_esm_shims
|
|
4
|
+
} from "./chunk-ECBHH7LU.js";
|
|
5
|
+
|
|
6
|
+
// src/core/skill-activation.ts
|
|
7
|
+
init_esm_shims();
|
|
8
|
+
var SKILL_SUGGESTION_ANCHOR = "Suggested skill: /skill <name>";
|
|
9
|
+
var SKILL_SUGGESTION_PREFIX = SKILL_SUGGESTION_ANCHOR.slice(0, SKILL_SUGGESTION_ANCHOR.indexOf("<name>"));
|
|
10
|
+
var SKILL_INSTALL_OFFER_OPTION_PROJECT = "Install for this project";
|
|
11
|
+
var SKILL_INSTALL_OFFER_OPTION_USER = "Install globally";
|
|
12
|
+
var SKILL_INSTALL_OFFER_OPTION_NOT_NOW = "Not now";
|
|
13
|
+
var SKILL_INSTALL_OFFER_OPTION_NEVER = "Never offer this skill";
|
|
14
|
+
function armedSkillSurface(policy) {
|
|
15
|
+
if (!policy) return void 0;
|
|
16
|
+
const declared = [...policy.loadedSkillPolicies.entries()].filter(
|
|
17
|
+
([, declaration]) => (declaration.allowedTools?.length ?? 0) > 0 || (declaration.disallowedTools?.length ?? 0) > 0
|
|
18
|
+
);
|
|
19
|
+
if (declared.length === 0) return void 0;
|
|
20
|
+
return {
|
|
21
|
+
allowedSkillNames: [...policy.allowedSkillNames],
|
|
22
|
+
requests: [...policy.requests],
|
|
23
|
+
loadedSkillNames: new Set(policy.loadedSkillNames),
|
|
24
|
+
loadedSkillPolicies: new Map(declared),
|
|
25
|
+
carriedSurface: true
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
function skillSurfaceNames(policy) {
|
|
29
|
+
return policy ? [...policy.loadedSkillPolicies.keys()] : [];
|
|
30
|
+
}
|
|
31
|
+
function skillSurfaceLabels(policy) {
|
|
32
|
+
if (!policy) return [];
|
|
33
|
+
return [...policy.loadedSkillPolicies.keys()].map(
|
|
34
|
+
(name) => policy.requests.some((request) => request.name === name) ? `${name} (operator)` : `${name} (model)`
|
|
35
|
+
);
|
|
36
|
+
}
|
|
37
|
+
function withModelSkillActivation(policy, enabled) {
|
|
38
|
+
if (policy) {
|
|
39
|
+
policy.modelActivation = enabled;
|
|
40
|
+
return policy;
|
|
41
|
+
}
|
|
42
|
+
if (!enabled) return void 0;
|
|
43
|
+
return {
|
|
44
|
+
allowedSkillNames: [],
|
|
45
|
+
requests: [],
|
|
46
|
+
loadedSkillNames: /* @__PURE__ */ new Set(),
|
|
47
|
+
loadedSkillPolicies: /* @__PURE__ */ new Map(),
|
|
48
|
+
modelActivation: true
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
var SKILL_SURFACE_EXEMPT_TOOLS = /* @__PURE__ */ new Set(["context", "ask_user", "gateway"]);
|
|
52
|
+
function evaluateSkillToolSurface(policy, tool) {
|
|
53
|
+
if (!policy || policy.loadedSkillPolicies.size === 0) return null;
|
|
54
|
+
if (SKILL_SURFACE_EXEMPT_TOOLS.has(tool)) return null;
|
|
55
|
+
const entries = [...policy.loadedSkillPolicies.entries()];
|
|
56
|
+
const skills = entries.map(([name]) => name);
|
|
57
|
+
const carriedSurface = policy.carriedSurface === true;
|
|
58
|
+
const disallowedBy = entries.filter(([, declared]) => declared.disallowedTools?.includes(tool) === true).map(([name]) => name);
|
|
59
|
+
if (disallowedBy.length > 0) return { skills, mergedAllowedTools: null, disallowedBy, carriedSurface };
|
|
60
|
+
if (tool === "limitation") return null;
|
|
61
|
+
const allowLists = entries.map(([, declared]) => declared.allowedTools);
|
|
62
|
+
if (allowLists.some((list) => list === void 0 || list.length === 0)) return null;
|
|
63
|
+
const merged = [...new Set(allowLists.flatMap((list) => [...list ?? []]))];
|
|
64
|
+
if (merged.includes(tool)) return null;
|
|
65
|
+
return { skills, mergedAllowedTools: merged, disallowedBy: [], carriedSurface };
|
|
66
|
+
}
|
|
67
|
+
function agentSkillToolPolicy(skillNames) {
|
|
68
|
+
const allowedSkillNames = [...new Set(skillNames.map((name) => name.trim()).filter((name) => name.length > 0))];
|
|
69
|
+
if (allowedSkillNames.length === 0) return void 0;
|
|
70
|
+
return {
|
|
71
|
+
allowedSkillNames,
|
|
72
|
+
requests: allowedSkillNames.map((name) => ({ name, args: "", source: "recipe", installed: true })),
|
|
73
|
+
loadedSkillNames: /* @__PURE__ */ new Set(),
|
|
74
|
+
loadedSkillPolicies: /* @__PURE__ */ new Map()
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
function trimmedString(value) {
|
|
78
|
+
return typeof value === "string" && value.trim().length > 0 ? value.trim() : null;
|
|
79
|
+
}
|
|
80
|
+
function skillActivationFromSource(source, triggeredBy, turnId) {
|
|
81
|
+
const sourceOrigin = trimmedString(source.sourceOrigin) ?? trimmedString(source.sourceInfo?.source);
|
|
82
|
+
return {
|
|
83
|
+
name: source.name,
|
|
84
|
+
filePath: source.filePath,
|
|
85
|
+
hash: source.hash,
|
|
86
|
+
source: source.source,
|
|
87
|
+
...sourceOrigin ? { sourceOrigin } : {},
|
|
88
|
+
triggeredBy,
|
|
89
|
+
...turnId ? { turnId } : {}
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
function skillActivationFromToolDetails(details, turnId) {
|
|
93
|
+
if (!details || typeof details !== "object" || Array.isArray(details)) return null;
|
|
94
|
+
const record = details;
|
|
95
|
+
const name = trimmedString(record.name);
|
|
96
|
+
const filePath = trimmedString(record.filePath) ?? trimmedString(record.path);
|
|
97
|
+
const hash = trimmedString(record.hash);
|
|
98
|
+
const source = trimmedString(record.source);
|
|
99
|
+
const sourceOrigin = trimmedString(record.sourceOrigin) ?? trimmedString(record.origin);
|
|
100
|
+
if (!name || !filePath || !hash || !source) return null;
|
|
101
|
+
const activation = skillActivationFromSource(
|
|
102
|
+
{ name, filePath, hash, source, ...sourceOrigin ? { sourceOrigin } : {} },
|
|
103
|
+
"tool",
|
|
104
|
+
turnId
|
|
105
|
+
);
|
|
106
|
+
if (record.drift === "match" || record.drift === "mismatch") activation.drift = record.drift;
|
|
107
|
+
return activation;
|
|
108
|
+
}
|
|
109
|
+
function isSkillActivation(value) {
|
|
110
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) return false;
|
|
111
|
+
const record = value;
|
|
112
|
+
return typeof record.name === "string" && typeof record.filePath === "string" && typeof record.hash === "string" && typeof record.source === "string" && (record.sourceOrigin === void 0 || typeof record.sourceOrigin === "string") && (record.triggeredBy === "slash-command" || record.triggeredBy === "tool") && (record.turnId === void 0 || typeof record.turnId === "string") && (record.runId === void 0 || typeof record.runId === "string");
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
export {
|
|
116
|
+
SKILL_SUGGESTION_ANCHOR,
|
|
117
|
+
SKILL_SUGGESTION_PREFIX,
|
|
118
|
+
SKILL_INSTALL_OFFER_OPTION_PROJECT,
|
|
119
|
+
SKILL_INSTALL_OFFER_OPTION_USER,
|
|
120
|
+
SKILL_INSTALL_OFFER_OPTION_NOT_NOW,
|
|
121
|
+
SKILL_INSTALL_OFFER_OPTION_NEVER,
|
|
122
|
+
armedSkillSurface,
|
|
123
|
+
skillSurfaceNames,
|
|
124
|
+
skillSurfaceLabels,
|
|
125
|
+
withModelSkillActivation,
|
|
126
|
+
evaluateSkillToolSurface,
|
|
127
|
+
agentSkillToolPolicy,
|
|
128
|
+
skillActivationFromToolDetails,
|
|
129
|
+
isSkillActivation
|
|
130
|
+
};
|
|
131
|
+
//# sourceMappingURL=chunk-MMZMM6SW.js.map
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
} from "./chunk-C2CPOIH2.js";
|
|
8
8
|
import {
|
|
9
9
|
ToolNames
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-6UKFRTXI.js";
|
|
11
11
|
import {
|
|
12
12
|
typebox_exports
|
|
13
13
|
} from "./chunk-GH5ZR6JP.js";
|
|
@@ -413,4 +413,4 @@ export {
|
|
|
413
413
|
prepareDataAdmissionArguments,
|
|
414
414
|
dataToolSurface
|
|
415
415
|
};
|
|
416
|
-
//# sourceMappingURL=chunk-
|
|
416
|
+
//# sourceMappingURL=chunk-MNABNEBX.js.map
|
|
@@ -13,10 +13,10 @@ import {
|
|
|
13
13
|
} from "./chunk-7QXCO3AF.js";
|
|
14
14
|
import {
|
|
15
15
|
createSafetyPolicyEngine
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-E74MJF6G.js";
|
|
17
17
|
import {
|
|
18
18
|
classify
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-NMQSO6Z6.js";
|
|
20
20
|
import {
|
|
21
21
|
clioStateDir,
|
|
22
22
|
stateRootRemoved
|
|
@@ -658,4 +658,4 @@ export {
|
|
|
658
658
|
parseRigorOverride,
|
|
659
659
|
SafetyDomainModule
|
|
660
660
|
};
|
|
661
|
-
//# sourceMappingURL=chunk-
|
|
661
|
+
//# sourceMappingURL=chunk-N3CWOGVF.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
extractCommandPathWalks
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-OYUS3UZP.js";
|
|
5
5
|
import {
|
|
6
6
|
artifactDefaultPath
|
|
7
7
|
} from "./chunk-NTTS3O53.js";
|
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
import {
|
|
17
17
|
ToolNames,
|
|
18
18
|
isHarnessExtensionToolName
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-6UKFRTXI.js";
|
|
20
20
|
import {
|
|
21
21
|
init_esm_shims
|
|
22
22
|
} from "./chunk-ECBHH7LU.js";
|
|
@@ -65,6 +65,7 @@ function baseClassify(tool) {
|
|
|
65
65
|
case ToolNames.WebFetch:
|
|
66
66
|
case ToolNames.Git:
|
|
67
67
|
case ToolNames.CodeNav:
|
|
68
|
+
case ToolNames.SelfCompact:
|
|
68
69
|
case ToolNames.Context:
|
|
69
70
|
// clio_docs and clio_library read Clio's bundled documentation and the
|
|
70
71
|
// recipe catalog; data streams structured files. None writes.
|
|
@@ -411,4 +412,4 @@ export {
|
|
|
411
412
|
normalizeCallPaths,
|
|
412
413
|
classify
|
|
413
414
|
};
|
|
414
|
-
//# sourceMappingURL=chunk-
|
|
415
|
+
//# sourceMappingURL=chunk-NMQSO6Z6.js.map
|
|
@@ -19,7 +19,8 @@ import {
|
|
|
19
19
|
getKeybindings,
|
|
20
20
|
stripTerminalSequences,
|
|
21
21
|
truncateToWidth,
|
|
22
|
-
visibleWidth
|
|
22
|
+
visibleWidth,
|
|
23
|
+
wrapTextWithAnsi
|
|
23
24
|
} from "./chunk-6OWUM2NC.js";
|
|
24
25
|
import {
|
|
25
26
|
sanitizeCallTargetText
|
|
@@ -1376,13 +1377,21 @@ function buildWelcomeDashboardLines(stats, version, width, mode, hintPage = 0, g
|
|
|
1376
1377
|
theme.fg("dim", "Ask Clio how to use or extend her."),
|
|
1377
1378
|
theme.fg("dim", "Targets"),
|
|
1378
1379
|
theme.fg("muted", stats.targets),
|
|
1380
|
+
// Keep the subscription field beside the wordmark, between Targets and
|
|
1381
|
+
// Fleet. Wrap at the actual detail-column width instead of clipping the
|
|
1382
|
+
// last accounts (especially Local) off a single concatenated line.
|
|
1383
|
+
...stats.quota === null ? [] : wrapTextWithAnsi(
|
|
1384
|
+
field("Subscriptions", theme.fg("muted", sanitizeCallTargetText(stats.quota))),
|
|
1385
|
+
Math.max(1, detailWidth)
|
|
1386
|
+
),
|
|
1379
1387
|
theme.fg("dim", "Fleet"),
|
|
1380
1388
|
theme.fg("muted", stats.fleet)
|
|
1381
1389
|
];
|
|
1382
1390
|
return [
|
|
1383
1391
|
heading,
|
|
1384
|
-
...
|
|
1385
|
-
const
|
|
1392
|
+
...Array.from({ length: Math.max(details.length, hints.length, sideBySide ? wordmark.length : 0) }, (_, index) => {
|
|
1393
|
+
const detail = details[index] ?? "";
|
|
1394
|
+
const art = sideBySide ? `${padAnsi(theme.fg("accent", wordmark[index] ?? ""), artWidth)} ` : "";
|
|
1386
1395
|
const content = `${art}${truncateToWidth(detail, detailWidth, GLYPH.ellipsis, false)}`;
|
|
1387
1396
|
return row(
|
|
1388
1397
|
showHints ? `${padAnsi(content, contentWidth)} ${frame("\u2502")} ${truncateToWidth(hints[index] ?? "", hintWidth, GLYPH.ellipsis, false)}` : content
|
|
@@ -1406,7 +1415,8 @@ function statsSignature(stats) {
|
|
|
1406
1415
|
stats.submitKeyLabel,
|
|
1407
1416
|
stats.autonomy,
|
|
1408
1417
|
stats.targets,
|
|
1409
|
-
stats.fleet
|
|
1418
|
+
stats.fleet,
|
|
1419
|
+
stats.quota
|
|
1410
1420
|
].join("\0");
|
|
1411
1421
|
}
|
|
1412
1422
|
var WelcomeDashboard = class {
|
|
@@ -1507,6 +1517,7 @@ var WelcomeDashboard = class {
|
|
|
1507
1517
|
projectContext: launchpad ? this.projectContext(cwd) : "checking",
|
|
1508
1518
|
submitKeyLabel: launchpad ? this.deps.getSubmitKeyLabel?.() ?? null : null,
|
|
1509
1519
|
autonomy: settings?.safety?.autonomy ?? "auto-edit",
|
|
1520
|
+
quota: launchpad ? this.deps.getQuotaSummary?.() ?? null : null,
|
|
1510
1521
|
...inventory(settings, statuses, this.deps.getAgentCount?.())
|
|
1511
1522
|
};
|
|
1512
1523
|
}
|
|
@@ -1582,6 +1593,8 @@ function createBootWelcome(settings, submitKeyLabel, getKeyLabel) {
|
|
|
1582
1593
|
routeReason: null,
|
|
1583
1594
|
projectContext: "checking",
|
|
1584
1595
|
submitKeyLabel,
|
|
1596
|
+
// Boot paints before any provider has been read, so the row stays hidden.
|
|
1597
|
+
quota: null,
|
|
1585
1598
|
autonomy: settings.safety.autonomy,
|
|
1586
1599
|
...inventory(settings)
|
|
1587
1600
|
};
|
|
@@ -1602,4 +1615,4 @@ export {
|
|
|
1602
1615
|
createWelcomeDashboard,
|
|
1603
1616
|
createBootWelcome
|
|
1604
1617
|
};
|
|
1605
|
-
//# sourceMappingURL=chunk-
|
|
1618
|
+
//# sourceMappingURL=chunk-O3ZAF7UY.js.map
|
|
@@ -4,17 +4,17 @@ import {
|
|
|
4
4
|
listChecks,
|
|
5
5
|
runProjectCheck,
|
|
6
6
|
runScriptCheck
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-Q2HKY32Y.js";
|
|
8
8
|
import {
|
|
9
9
|
BROWSER_MODES,
|
|
10
10
|
prepareBoundedImage,
|
|
11
11
|
prepareVerifyArguments,
|
|
12
12
|
verifyToolSurface
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-YEJQDODA.js";
|
|
14
14
|
import {
|
|
15
15
|
maxOutputArg,
|
|
16
16
|
timeoutArg
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-4KC4CHKJ.js";
|
|
18
18
|
import {
|
|
19
19
|
escapeRegExp
|
|
20
20
|
} from "./chunk-DZLR4UEH.js";
|
|
@@ -665,4 +665,4 @@ var verifyTool = {
|
|
|
665
665
|
export {
|
|
666
666
|
verifyTool
|
|
667
667
|
};
|
|
668
|
-
//# sourceMappingURL=chunk-
|
|
668
|
+
//# sourceMappingURL=chunk-OQNCLZI4.js.map
|
|
@@ -10,13 +10,13 @@ import {
|
|
|
10
10
|
refKey,
|
|
11
11
|
toolResultPayload,
|
|
12
12
|
toolResultText
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-GUFQPTQK.js";
|
|
14
14
|
import {
|
|
15
15
|
filterEntriesToActivePath
|
|
16
16
|
} from "./chunk-O5F25NIE.js";
|
|
17
17
|
import {
|
|
18
18
|
ceilChars
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-53P775GE.js";
|
|
20
20
|
import {
|
|
21
21
|
init_esm_shims
|
|
22
22
|
} from "./chunk-ECBHH7LU.js";
|
|
@@ -136,4 +136,4 @@ export {
|
|
|
136
136
|
recallableRefListing,
|
|
137
137
|
recallErrorMessage
|
|
138
138
|
};
|
|
139
|
-
//# sourceMappingURL=chunk-
|
|
139
|
+
//# sourceMappingURL=chunk-OX6QTA4N.js.map
|
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
} from "./chunk-M4KFUXS7.js";
|
|
12
12
|
import {
|
|
13
13
|
ToolNames
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-6UKFRTXI.js";
|
|
15
15
|
import {
|
|
16
16
|
init_esm_shims
|
|
17
17
|
} from "./chunk-ECBHH7LU.js";
|
|
@@ -1153,4 +1153,4 @@ export {
|
|
|
1153
1153
|
scanShellLike,
|
|
1154
1154
|
scanShellLikeDeep
|
|
1155
1155
|
};
|
|
1156
|
-
//# sourceMappingURL=chunk-
|
|
1156
|
+
//# sourceMappingURL=chunk-OYUS3UZP.js.map
|