@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
|
@@ -8,10 +8,10 @@ import {
|
|
|
8
8
|
recallParentTurnId,
|
|
9
9
|
recallableRefListing,
|
|
10
10
|
resolveRecall
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-OX6QTA4N.js";
|
|
12
12
|
import {
|
|
13
13
|
foldWorkingSet
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-GUFQPTQK.js";
|
|
15
15
|
import {
|
|
16
16
|
getAtPath
|
|
17
17
|
} from "./chunk-GGWI3OVM.js";
|
|
@@ -20,37 +20,35 @@ import {
|
|
|
20
20
|
settingsSectionForPath
|
|
21
21
|
} from "./chunk-LJRBX7QR.js";
|
|
22
22
|
import {
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
buildSkillCatalogView,
|
|
24
|
+
checkSkillDrift,
|
|
25
|
+
checkSkillDriftBatch
|
|
26
|
+
} from "./chunk-U3FETNQB.js";
|
|
25
27
|
import {
|
|
26
28
|
discoverMarketplaceSkills,
|
|
27
29
|
installedSkillNames,
|
|
28
30
|
installedSkillPackages,
|
|
29
31
|
loadSkills,
|
|
30
32
|
modelVisibleSkills
|
|
31
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-B5TASTCK.js";
|
|
32
34
|
import {
|
|
33
35
|
contextToolSurface
|
|
34
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-Q6FRR3AQ.js";
|
|
35
37
|
import {
|
|
36
38
|
OBSERVE_SELF_CAPS,
|
|
37
39
|
finalizeObservation,
|
|
38
40
|
observationBudgetExhausted,
|
|
39
41
|
reserveObservation
|
|
40
|
-
} from "./chunk-
|
|
42
|
+
} from "./chunk-H6FQVNZC.js";
|
|
41
43
|
import {
|
|
42
44
|
truncateHead
|
|
43
45
|
} from "./chunk-GHXGMFQ5.js";
|
|
44
46
|
import {
|
|
45
|
-
SKILL_INSTALL_OFFER_OPTION_NEVER,
|
|
46
|
-
SKILL_INSTALL_OFFER_OPTION_NOT_NOW,
|
|
47
|
-
SKILL_INSTALL_OFFER_OPTION_PROJECT,
|
|
48
|
-
SKILL_INSTALL_OFFER_OPTION_USER,
|
|
49
47
|
SKILL_SUGGESTION_ANCHOR
|
|
50
|
-
} from "./chunk-
|
|
48
|
+
} from "./chunk-MMZMM6SW.js";
|
|
51
49
|
import {
|
|
52
50
|
ToolNames
|
|
53
|
-
} from "./chunk-
|
|
51
|
+
} from "./chunk-6UKFRTXI.js";
|
|
54
52
|
import {
|
|
55
53
|
resolvePackageRoot
|
|
56
54
|
} from "./chunk-ZPST2KQO.js";
|
|
@@ -771,57 +769,13 @@ function marketplaceRowsFor(deps, installed, options) {
|
|
|
771
769
|
return [];
|
|
772
770
|
}
|
|
773
771
|
}
|
|
774
|
-
function
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
const discovered = skills.filter((skill) => skill.source !== "clio-coder" && skill.source !== "plugin");
|
|
781
|
-
lines.push(`Ready skills in Clio (${native.length}):`);
|
|
782
|
-
if (native.length === 0) lines.push("- none");
|
|
783
|
-
for (const skill of native) {
|
|
784
|
-
lines.push(`- ${skill.name} (source: ${skill.source}; scope: ${skill.scope}): ${skill.description}`);
|
|
785
|
-
}
|
|
786
|
-
if (discovered.length > 0) {
|
|
787
|
-
lines.push("", "Explicitly supplied session skills (not installed packages):");
|
|
788
|
-
for (const skill of discovered) {
|
|
789
|
-
lines.push(
|
|
790
|
-
`- ${skill.name} (source: ${skill.source}; scope: ${skill.scope}; file: ${skill.filePath}): ${skill.description}`
|
|
791
|
-
);
|
|
792
|
-
}
|
|
793
|
-
lines.push(
|
|
794
|
-
"These skills were explicitly supplied for this session. Preserve their source; session availability does not mean Clio installed or copied them."
|
|
795
|
-
);
|
|
796
|
-
}
|
|
797
|
-
if (packages.length > 0) {
|
|
798
|
-
lines.push("", `Installed packages providing skills (${packages.length}):`);
|
|
799
|
-
for (const pkg of packages)
|
|
800
|
-
lines.push(
|
|
801
|
-
`- ${pkg.name} (scope: ${pkg.scope}; origin: ${pkg.origin === "catalog" ? "marketplace catalog" : pkg.origin}; state: ${pkg.state}; path: ${pkg.path})`
|
|
802
|
-
);
|
|
803
|
-
}
|
|
804
|
-
lines.push(
|
|
805
|
-
"",
|
|
806
|
-
"Other-agent skill folders are discovery-only. Explicitly import into Clio before use; the trust-imports setting does not install or activate loose files."
|
|
807
|
-
);
|
|
808
|
-
if (marketplace.length > 0) {
|
|
809
|
-
lines.push("", "Marketplace (additional skills available to install; /skill <name> offers to install):");
|
|
810
|
-
for (const entry of marketplace) {
|
|
811
|
-
const category = entry.category ? ` [${entry.category}]` : "";
|
|
812
|
-
lines.push(`- ${entry.name}${category}: ${entry.description}`);
|
|
813
|
-
}
|
|
814
|
-
}
|
|
815
|
-
lines.push(
|
|
816
|
-
"",
|
|
817
|
-
modelActivation ? `If one skill above matches the current task, load it now with context(scope="skills", name="<name>") and continue in the same turn; at this autonomy level you activate installed skills yourself and do not wait for the operator. Marketplace additions still require operator approval. If none match, do not mention skills.` : `If one skill above matches the current task, begin your reply with the line \`${SKILL_SUGGESTION_ANCHOR}\` (a comma-separated sequence, in order, when several compose), then continue the task in the same turn without it; only the operator can run it. If none match, do not mention skills.`
|
|
818
|
-
);
|
|
819
|
-
if (marketplace.length > 0) {
|
|
820
|
-
lines.push(
|
|
821
|
-
`When no installed skill serves the task but a marketplace skill above genuinely does, you may instead ask the operator with ask_user (mode=single_question, header "Install skill") whether to install it, offering exactly: "${SKILL_INSTALL_OFFER_OPTION_PROJECT}", "${SKILL_INSTALL_OFFER_OPTION_USER}", "${SKILL_INSTALL_OFFER_OPTION_NOT_NOW}", "${SKILL_INSTALL_OFFER_OPTION_NEVER}". The harness handles those exact offer options. An explicit operator request or approval also authorizes the documented library install CLI. After installation, refresh the inventory; distinguish installed from ready and report /library reload when required.`
|
|
822
|
-
);
|
|
772
|
+
function driftedSkillNames(skills, cwd) {
|
|
773
|
+
try {
|
|
774
|
+
const reports = checkSkillDriftBatch(skills, cwd);
|
|
775
|
+
return new Set([...reports].filter(([, report]) => report.verdict === "mismatch").map(([name]) => name));
|
|
776
|
+
} catch {
|
|
777
|
+
return /* @__PURE__ */ new Set();
|
|
823
778
|
}
|
|
824
|
-
return lines.join("\n");
|
|
825
779
|
}
|
|
826
780
|
function runWorkspaceScope(deps, reservation, options) {
|
|
827
781
|
const workspace = deps.workspace;
|
|
@@ -909,35 +863,54 @@ function runSkillsScope(deps, args, reservation, options) {
|
|
|
909
863
|
cwdFromDeps(deps),
|
|
910
864
|
deps.getSkillLoaderOptions?.().trustProjectCompatRoots === true
|
|
911
865
|
);
|
|
912
|
-
const
|
|
913
|
-
visible2,
|
|
866
|
+
const view = buildSkillCatalogView({
|
|
867
|
+
skills: visible2,
|
|
868
|
+
packages,
|
|
914
869
|
marketplace,
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
870
|
+
drifted: driftedSkillNames(visible2, cwdFromDeps(deps)),
|
|
871
|
+
marketplaceOffered: deps.skillMarketplace !== false,
|
|
872
|
+
modelActivation: options?.pendingSkillPolicy?.modelActivation === true,
|
|
873
|
+
query: typeof args.query === "string" ? args.query : "",
|
|
874
|
+
limit: typeof args.limit === "number" ? args.limit : void 0,
|
|
875
|
+
offset: typeof args.offset === "number" ? args.offset : 0,
|
|
876
|
+
capBytes: reservation.callCapBytes
|
|
877
|
+
});
|
|
878
|
+
const shownKeys = new Set(view.rows.map((row) => row.key));
|
|
879
|
+
const shown = (kind, identity) => shownKeys.has(`${kind}:${identity}`);
|
|
921
880
|
return finalizeObservation({
|
|
922
881
|
tool: ToolNames.Context,
|
|
923
882
|
unit: "entries",
|
|
924
|
-
output:
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
883
|
+
output: view.text,
|
|
884
|
+
shownCount: view.shown,
|
|
885
|
+
totalCount: view.total,
|
|
886
|
+
truncated: view.nextOffset !== void 0 || view.shown < view.total,
|
|
887
|
+
// Offsets index the filtered result set. A continuation carrying only
|
|
888
|
+
// the offset would be applied to the unfiltered catalog, which repeats
|
|
889
|
+
// rows and skips matches, so the envelope says the query is part of it.
|
|
890
|
+
...view.nextOffset !== void 0 ? {
|
|
891
|
+
next: view.filtered ? `offset=${view.nextOffset} with the same query` : `offset=${view.nextOffset}`
|
|
892
|
+
} : {},
|
|
929
893
|
details: {
|
|
930
|
-
|
|
894
|
+
// Rows on this page, so a caller reading `details` sees the same
|
|
895
|
+
// listing the text carries. The totals beside them are how a
|
|
896
|
+
// filtered or paged view is told apart from a complete one.
|
|
897
|
+
skills: visible2.filter((skill2) => shown("ready", skill2.filePath) || shown("session", skill2.filePath)).map((skill2) => ({
|
|
931
898
|
name: skill2.name,
|
|
932
899
|
scope: skill2.scope,
|
|
933
900
|
source: skill2.source,
|
|
934
|
-
path: skill2.filePath
|
|
901
|
+
path: skill2.filePath,
|
|
902
|
+
...view.driftedNames.includes(skill2.name) ? { drift: "mismatch" } : {}
|
|
935
903
|
})),
|
|
936
|
-
installedPackages: packages,
|
|
937
|
-
marketplace: marketplace.map((entry) => ({
|
|
904
|
+
installedPackages: packages.filter((pkg) => shown("package", `${pkg.scope}:${pkg.path}`)),
|
|
905
|
+
marketplace: marketplace.filter((entry) => shown("marketplace", entry.sourceUrl)).map((entry) => ({
|
|
938
906
|
name: entry.name,
|
|
939
907
|
...entry.category ? { category: entry.category } : {}
|
|
940
|
-
}))
|
|
908
|
+
})),
|
|
909
|
+
totalSkills: visible2.length,
|
|
910
|
+
totalPackages: packages.length,
|
|
911
|
+
totalMarketplace: marketplace.length,
|
|
912
|
+
...view.filtered ? { query: args.query.trim(), matchMode: view.matchMode } : {},
|
|
913
|
+
...view.driftedNames.length > 0 ? { drifted: view.driftedNames } : {}
|
|
941
914
|
},
|
|
942
915
|
reservation,
|
|
943
916
|
...options ? { options } : {}
|
|
@@ -1134,6 +1107,36 @@ function runRecallScope(deps, args, reservation, options) {
|
|
|
1134
1107
|
...options ? { options } : {}
|
|
1135
1108
|
});
|
|
1136
1109
|
}
|
|
1110
|
+
function runBudgetScope(deps, reservation, options) {
|
|
1111
|
+
const inspection = deps.getContextBudget?.() ?? {
|
|
1112
|
+
status: "unavailable",
|
|
1113
|
+
reason: "This run has no native session budget port. Worker and external-agent budgets are not the parent session's budget."
|
|
1114
|
+
};
|
|
1115
|
+
const payload = inspection.status === "available" ? {
|
|
1116
|
+
...inspection,
|
|
1117
|
+
mode: "enforced",
|
|
1118
|
+
admissionNote: "Submission and continuation enforce input plus reserved output against the effective window. Counts are estimates unless provider-attested; pressure advice remains advisory."
|
|
1119
|
+
} : inspection;
|
|
1120
|
+
const full = JSON.stringify(payload);
|
|
1121
|
+
const fits = Buffer.byteLength(full, "utf8") <= reservation.callCapBytes;
|
|
1122
|
+
const output = fits ? full : JSON.stringify({
|
|
1123
|
+
status: "unavailable",
|
|
1124
|
+
reason: "observation-limit",
|
|
1125
|
+
message: "The budget view exceeds the available observation bytes. Continue in a follow-up turn; do not retry this turn."
|
|
1126
|
+
});
|
|
1127
|
+
return finalizeObservation({
|
|
1128
|
+
tool: ToolNames.Context,
|
|
1129
|
+
unit: "results",
|
|
1130
|
+
format: "json",
|
|
1131
|
+
output,
|
|
1132
|
+
shownCount: fits ? 1 : 0,
|
|
1133
|
+
totalCount: 1,
|
|
1134
|
+
totalBytes: Buffer.byteLength(full, "utf8"),
|
|
1135
|
+
truncated: !fits,
|
|
1136
|
+
reservation,
|
|
1137
|
+
...options ? { options } : {}
|
|
1138
|
+
});
|
|
1139
|
+
}
|
|
1137
1140
|
function createContextTool(deps = {}) {
|
|
1138
1141
|
return {
|
|
1139
1142
|
...contextToolSurface,
|
|
@@ -1146,18 +1149,22 @@ function createContextTool(deps = {}) {
|
|
|
1146
1149
|
message: `context: scope "${scope}" is a gateway capability now: call gateway(op="call", capability="${capability}", args={...}) or gateway(op="describe", capability="${capability}") for its arguments.`
|
|
1147
1150
|
};
|
|
1148
1151
|
}
|
|
1149
|
-
if (scope !== "workspace" && scope !== "settings" && scope !== "skills" && scope !== "recall") {
|
|
1152
|
+
if (scope !== "workspace" && scope !== "settings" && scope !== "skills" && scope !== "recall" && scope !== "budget") {
|
|
1150
1153
|
return {
|
|
1151
1154
|
kind: "error",
|
|
1152
|
-
message: `context: scope must be workspace, settings, skills, or
|
|
1155
|
+
message: `context: scope must be workspace, settings, skills, recall, or budget; got '${scope}'`
|
|
1153
1156
|
};
|
|
1154
1157
|
}
|
|
1158
|
+
if (scope === "budget" && Object.keys(args).some((key) => key !== "scope")) {
|
|
1159
|
+
return { kind: "error", message: 'context: scope="budget" accepts only scope; it inspects the current request.' };
|
|
1160
|
+
}
|
|
1155
1161
|
const selfCap = scope === "skills" ? OBSERVE_SELF_CAPS.contextSkills : OBSERVE_SELF_CAPS.contextWorkspace;
|
|
1156
1162
|
const reservation = reserveObservation(selfCap, options);
|
|
1157
1163
|
if (reservation.exhausted) {
|
|
1158
1164
|
return observationBudgetExhausted({
|
|
1159
1165
|
tool: ToolNames.Context,
|
|
1160
1166
|
unit: scope === "skills" ? "entries" : "results",
|
|
1167
|
+
...scope === "budget" ? { format: "json" } : {},
|
|
1161
1168
|
reservation,
|
|
1162
1169
|
subject: `scope=${scope}`,
|
|
1163
1170
|
hint: "Continue in a follow-up turn."
|
|
@@ -1191,6 +1198,7 @@ function createContextTool(deps = {}) {
|
|
|
1191
1198
|
...options ? { options } : {}
|
|
1192
1199
|
});
|
|
1193
1200
|
}
|
|
1201
|
+
if (scope === "budget") return runBudgetScope(deps, reservation, options);
|
|
1194
1202
|
if (scope === "workspace") return runWorkspaceScope(deps, reservation, options);
|
|
1195
1203
|
if (scope === "recall") return runRecallScope(deps, args, reservation, options);
|
|
1196
1204
|
return runSkillsScope(deps, args, reservation, options);
|
|
@@ -1202,4 +1210,4 @@ export {
|
|
|
1202
1210
|
runDocsScope,
|
|
1203
1211
|
createContextTool
|
|
1204
1212
|
};
|
|
1205
|
-
//# sourceMappingURL=chunk-
|
|
1213
|
+
//# sourceMappingURL=chunk-BEMQK5Q7.js.map
|
|
@@ -2,13 +2,13 @@ import { createRequire as __clioCreateRequire } from "node:module"; const requir
|
|
|
2
2
|
import {
|
|
3
3
|
isSessionEntry,
|
|
4
4
|
isSessionHeader
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-F6KCJO3U.js";
|
|
6
6
|
import {
|
|
7
7
|
atomicWrite,
|
|
8
8
|
cwdHash,
|
|
9
9
|
readSessionFileEntries,
|
|
10
10
|
sessionPaths
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-PZBQUJ2F.js";
|
|
12
12
|
import {
|
|
13
13
|
clioStateDir
|
|
14
14
|
} from "./chunk-CTTI7G3T.js";
|
|
@@ -196,4 +196,4 @@ export {
|
|
|
196
196
|
operatorTextOfUserPayload,
|
|
197
197
|
enrichForkMeta
|
|
198
198
|
};
|
|
199
|
-
//# sourceMappingURL=chunk-
|
|
199
|
+
//# sourceMappingURL=chunk-CNXU7TR2.js.map
|
|
@@ -7,19 +7,27 @@ import {
|
|
|
7
7
|
loadProjectRules,
|
|
8
8
|
renderOperatorProfile,
|
|
9
9
|
selectActiveRules,
|
|
10
|
-
selectProjectPreload
|
|
11
|
-
|
|
10
|
+
selectProjectPreload,
|
|
11
|
+
sessionCanUseSkills
|
|
12
|
+
} from "./chunk-EQPFEDFV.js";
|
|
12
13
|
import {
|
|
13
14
|
loadFragments,
|
|
14
15
|
sha256
|
|
15
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-EEITU7S6.js";
|
|
16
17
|
import {
|
|
17
18
|
createLocalCapacitySampler,
|
|
18
19
|
resolveGlobalConcurrency
|
|
19
20
|
} from "./chunk-E6IPKW2E.js";
|
|
21
|
+
import {
|
|
22
|
+
detectClioCoderRepo
|
|
23
|
+
} from "./chunk-B5TASTCK.js";
|
|
24
|
+
import {
|
|
25
|
+
isAutonomyLevel,
|
|
26
|
+
modelMayActivateSkills
|
|
27
|
+
} from "./chunk-UZVYEF57.js";
|
|
20
28
|
import {
|
|
21
29
|
isUserVisibleAgent
|
|
22
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-7UFDIOBT.js";
|
|
23
31
|
import {
|
|
24
32
|
BusChannels
|
|
25
33
|
} from "./chunk-PS6JAWJZ.js";
|
|
@@ -134,67 +142,6 @@ init_esm_shims();
|
|
|
134
142
|
// src/domains/prompts/extension.ts
|
|
135
143
|
init_esm_shims();
|
|
136
144
|
import { isAbsolute, relative, resolve, sep } from "node:path";
|
|
137
|
-
|
|
138
|
-
// src/core/clio-repo.ts
|
|
139
|
-
init_esm_shims();
|
|
140
|
-
import { existsSync, readFileSync, statSync } from "node:fs";
|
|
141
|
-
import path from "node:path";
|
|
142
|
-
var CLIO_PACKAGE_NAME = "@iowarp/clio-coder";
|
|
143
|
-
var SOURCE_MARKERS = [
|
|
144
|
-
"src/entry/orchestrator.ts",
|
|
145
|
-
"src/worker/entry.ts",
|
|
146
|
-
"src/domains/prompts/fragments/identity/clio.md"
|
|
147
|
-
];
|
|
148
|
-
function isFile(filePath) {
|
|
149
|
-
try {
|
|
150
|
-
return statSync(filePath).isFile();
|
|
151
|
-
} catch {
|
|
152
|
-
return false;
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
function readPackageJson(root) {
|
|
156
|
-
try {
|
|
157
|
-
const raw = readFileSync(path.join(root, "package.json"), "utf8");
|
|
158
|
-
const parsed = JSON.parse(raw);
|
|
159
|
-
return parsed && typeof parsed === "object" ? parsed : null;
|
|
160
|
-
} catch {
|
|
161
|
-
return null;
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
function repositoryMatches(value) {
|
|
165
|
-
if (typeof value === "string") return value.includes("iowarp/clio-coder");
|
|
166
|
-
if (!value || typeof value !== "object") return false;
|
|
167
|
-
const url = value.url;
|
|
168
|
-
return typeof url === "string" && url.includes("iowarp/clio-coder");
|
|
169
|
-
}
|
|
170
|
-
function hasGitMarker(root) {
|
|
171
|
-
return existsSync(path.join(root, ".git"));
|
|
172
|
-
}
|
|
173
|
-
function hasSourceMarkers(root) {
|
|
174
|
-
return SOURCE_MARKERS.every((marker) => isFile(path.join(root, marker)));
|
|
175
|
-
}
|
|
176
|
-
function isClioCoderRepoRoot(root) {
|
|
177
|
-
const pkg = readPackageJson(root);
|
|
178
|
-
if (pkg?.name !== CLIO_PACKAGE_NAME) return false;
|
|
179
|
-
if (!repositoryMatches(pkg.repository)) return false;
|
|
180
|
-
if (!hasGitMarker(root)) return false;
|
|
181
|
-
return hasSourceMarkers(root);
|
|
182
|
-
}
|
|
183
|
-
function detectClioCoderRepo(cwd = process.cwd()) {
|
|
184
|
-
let current = path.resolve(cwd);
|
|
185
|
-
for (; ; ) {
|
|
186
|
-
if (isClioCoderRepoRoot(current)) {
|
|
187
|
-
return { isClioCoderRepo: true, repoRoot: current };
|
|
188
|
-
}
|
|
189
|
-
if (hasGitMarker(current)) break;
|
|
190
|
-
const parent = path.dirname(current);
|
|
191
|
-
if (parent === current) break;
|
|
192
|
-
current = parent;
|
|
193
|
-
}
|
|
194
|
-
return { isClioCoderRepo: false, repoRoot: null };
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
// src/domains/prompts/extension.ts
|
|
198
145
|
var CLIO_REPO_AWARENESS_ID = "context.clio-repo-awareness";
|
|
199
146
|
var WORKSPACE_ROOT_ID = "context.workspace-root";
|
|
200
147
|
function createPromptsBundle(context, options = {}) {
|
|
@@ -313,6 +260,7 @@ function createPromptsBundle(context, options = {}) {
|
|
|
313
260
|
additionalFragments: [
|
|
314
261
|
...sources.workspaceRoot,
|
|
315
262
|
...sources.clioRepoAwareness,
|
|
263
|
+
...selfDevelopmentSkillFragments(sources.clioRepoAwareness.length > 0, sessionInputs, safety),
|
|
316
264
|
...renderCustomizationFragments(sources.customization, cwd, input.workingContextPaths ?? []).fragments
|
|
317
265
|
]
|
|
318
266
|
});
|
|
@@ -461,6 +409,7 @@ function clioRepoAwarenessFragments(cwd) {
|
|
|
461
409
|
const body = [
|
|
462
410
|
"# Clio Source Tree",
|
|
463
411
|
"This workspace is Clio Coder's own source tree.",
|
|
412
|
+
`Source repository root: ${JSON.stringify(awareness.repoRoot)}.`,
|
|
464
413
|
"When running inside this repo, Clio can modify her own TUI, skills, agents, tools, prompts, context/bootstrap, and harness as ordinary local source work when the user asks.",
|
|
465
414
|
"Shared contribution/publishing/push/PR/release requires explicit user intent and normal Git/GitHub etiquette. Do not imply autonomous publishing."
|
|
466
415
|
].join("\n");
|
|
@@ -474,6 +423,26 @@ function clioRepoAwarenessFragments(cwd) {
|
|
|
474
423
|
}
|
|
475
424
|
];
|
|
476
425
|
}
|
|
426
|
+
function selfDevelopmentSkillFragments(selfRepo, inputs, autonomy) {
|
|
427
|
+
if (!selfRepo || !sessionCanUseSkills(inputs) || inputs.turnConstraints?.mode === "proposal") return [];
|
|
428
|
+
const activation = isAutonomyLevel(autonomy) && modelMayActivateSkills(autonomy);
|
|
429
|
+
const body = [
|
|
430
|
+
"# Self-development skills",
|
|
431
|
+
"For a task that changes Clio's source, harness, prompts, or library, use clio-coder-dev before editing and clio-coder-test when choosing validation. Skip this workflow for unrelated or self-contained questions.",
|
|
432
|
+
`These two skills are discoverable from this checkout's library/skills/meta when no installed package owns their names. Check context(scope="skills") for current readiness; disabled, damaged, or hidden skills stay unavailable.`,
|
|
433
|
+
activation ? 'Load each relevant ready skill with context(scope="skills", name="clio-coder-dev") or context(scope="skills", name="clio-coder-test") as needed, without waiting for a separate skill request. Reuse already loaded guidance; do not load every reference or the whole catalog.' : "Only the operator activates skills at this autonomy level. Suggest /skill clio-coder-dev or /skill clio-coder-test when relevant, then continue permitted work without waiting or bypassing the activation gate.",
|
|
434
|
+
"Read CONTRIBUTING.md and the assigned sprint packet from the detected repository root. A plan or skill does not launch an unapproved implementation sprint or authorize publication."
|
|
435
|
+
].join("\n");
|
|
436
|
+
return [
|
|
437
|
+
{
|
|
438
|
+
id: "context.self-development-skills",
|
|
439
|
+
relPath: "inline/self-development-skills",
|
|
440
|
+
body,
|
|
441
|
+
contentHash: sha256(body),
|
|
442
|
+
dynamic: true
|
|
443
|
+
}
|
|
444
|
+
];
|
|
445
|
+
}
|
|
477
446
|
|
|
478
447
|
// src/domains/prompts/manifest.ts
|
|
479
448
|
init_esm_shims();
|
|
@@ -708,4 +677,4 @@ export {
|
|
|
708
677
|
createPromptsDomainModule,
|
|
709
678
|
SchedulingDomainModule
|
|
710
679
|
};
|
|
711
|
-
//# sourceMappingURL=chunk-
|
|
680
|
+
//# sourceMappingURL=chunk-CVMUXT64.js.map
|
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
import {
|
|
15
15
|
classify,
|
|
16
16
|
normalizeCallPaths
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-NMQSO6Z6.js";
|
|
18
18
|
import {
|
|
19
19
|
commandArgumentSegments,
|
|
20
20
|
extractCommandCdTargets,
|
|
@@ -24,7 +24,7 @@ import {
|
|
|
24
24
|
invokesClioSkillMutation,
|
|
25
25
|
scanShellLike,
|
|
26
26
|
scanShellLikeDeep
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-OYUS3UZP.js";
|
|
28
28
|
import {
|
|
29
29
|
pathBoundaryCovers,
|
|
30
30
|
resolvePathBoundary
|
|
@@ -44,7 +44,7 @@ import {
|
|
|
44
44
|
} from "./chunk-MGLRTOCK.js";
|
|
45
45
|
import {
|
|
46
46
|
ToolNames
|
|
47
|
-
} from "./chunk-
|
|
47
|
+
} from "./chunk-6UKFRTXI.js";
|
|
48
48
|
import {
|
|
49
49
|
require_dist
|
|
50
50
|
} from "./chunk-B5GGDIHT.js";
|
|
@@ -1718,4 +1718,4 @@ export {
|
|
|
1718
1718
|
WRITE_ROOT_REFUSED_TOOLS,
|
|
1719
1719
|
createSafetyPolicyEngine
|
|
1720
1720
|
};
|
|
1721
|
-
//# sourceMappingURL=chunk-
|
|
1721
|
+
//# sourceMappingURL=chunk-E74MJF6G.js.map
|
|
@@ -9,14 +9,14 @@ import {
|
|
|
9
9
|
import {
|
|
10
10
|
loadPromptTemplates,
|
|
11
11
|
validateLibraryPackage
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-AI36V3ON.js";
|
|
13
13
|
import {
|
|
14
14
|
fetchPluginSource,
|
|
15
15
|
loadSkills,
|
|
16
16
|
parseAgentRecipeSchema,
|
|
17
17
|
parsePluginGithubSource,
|
|
18
18
|
pluginLocalPath
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-B5TASTCK.js";
|
|
20
20
|
import {
|
|
21
21
|
normalizedSkillHash
|
|
22
22
|
} from "./chunk-DNCE23JJ.js";
|
|
@@ -1574,4 +1574,4 @@ export {
|
|
|
1574
1574
|
renderLibraryImportPlan,
|
|
1575
1575
|
InteropDomainModule
|
|
1576
1576
|
};
|
|
1577
|
-
//# sourceMappingURL=chunk-
|
|
1577
|
+
//# sourceMappingURL=chunk-EBMTBE76.js.map
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
RUN_RECEIPT_INTEGRITY_VERSION,
|
|
4
4
|
TRUST_STATUS_AXES,
|
|
5
5
|
retiredIntegrityVersionOf
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-UZ7YBL43.js";
|
|
7
7
|
import {
|
|
8
8
|
readSettings
|
|
9
9
|
} from "./chunk-56XP4FJU.js";
|
|
@@ -737,4 +737,4 @@ export {
|
|
|
737
737
|
EvalTaskFileError,
|
|
738
738
|
loadFragments
|
|
739
739
|
};
|
|
740
|
-
//# sourceMappingURL=chunk-
|
|
740
|
+
//# sourceMappingURL=chunk-EEITU7S6.js.map
|