@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
package/dist/chunk-I4Y4WKZR.js
DELETED
|
@@ -1,386 +0,0 @@
|
|
|
1
|
-
import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
|
|
2
|
-
import {
|
|
3
|
-
AUTONOMY_EXPOSURES
|
|
4
|
-
} from "./chunk-UZVYEF57.js";
|
|
5
|
-
import {
|
|
6
|
-
init_esm_shims
|
|
7
|
-
} from "./chunk-ECBHH7LU.js";
|
|
8
|
-
|
|
9
|
-
// src/core/skill-activation.ts
|
|
10
|
-
init_esm_shims();
|
|
11
|
-
var SKILL_SUGGESTION_ANCHOR = "Suggested skill: /skill <name>";
|
|
12
|
-
var SKILL_SUGGESTION_PREFIX = SKILL_SUGGESTION_ANCHOR.slice(0, SKILL_SUGGESTION_ANCHOR.indexOf("<name>"));
|
|
13
|
-
var SKILL_INSTALL_OFFER_OPTION_PROJECT = "Install for this project";
|
|
14
|
-
var SKILL_INSTALL_OFFER_OPTION_USER = "Install globally";
|
|
15
|
-
var SKILL_INSTALL_OFFER_OPTION_NOT_NOW = "Not now";
|
|
16
|
-
var SKILL_INSTALL_OFFER_OPTION_NEVER = "Never offer this skill";
|
|
17
|
-
function armedSkillSurface(policy) {
|
|
18
|
-
if (!policy) return void 0;
|
|
19
|
-
const declared = [...policy.loadedSkillPolicies.entries()].filter(
|
|
20
|
-
([, declaration]) => (declaration.allowedTools?.length ?? 0) > 0 || (declaration.disallowedTools?.length ?? 0) > 0
|
|
21
|
-
);
|
|
22
|
-
if (declared.length === 0) return void 0;
|
|
23
|
-
return {
|
|
24
|
-
allowedSkillNames: [...policy.allowedSkillNames],
|
|
25
|
-
requests: [...policy.requests],
|
|
26
|
-
loadedSkillNames: new Set(policy.loadedSkillNames),
|
|
27
|
-
loadedSkillPolicies: new Map(declared),
|
|
28
|
-
carriedSurface: true
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
function skillSurfaceNames(policy) {
|
|
32
|
-
return policy ? [...policy.loadedSkillPolicies.keys()] : [];
|
|
33
|
-
}
|
|
34
|
-
function skillSurfaceLabels(policy) {
|
|
35
|
-
if (!policy) return [];
|
|
36
|
-
return [...policy.loadedSkillPolicies.keys()].map(
|
|
37
|
-
(name) => policy.requests.some((request) => request.name === name) ? `${name} (operator)` : `${name} (model)`
|
|
38
|
-
);
|
|
39
|
-
}
|
|
40
|
-
function withModelSkillActivation(policy, enabled) {
|
|
41
|
-
if (policy) {
|
|
42
|
-
policy.modelActivation = enabled;
|
|
43
|
-
return policy;
|
|
44
|
-
}
|
|
45
|
-
if (!enabled) return void 0;
|
|
46
|
-
return {
|
|
47
|
-
allowedSkillNames: [],
|
|
48
|
-
requests: [],
|
|
49
|
-
loadedSkillNames: /* @__PURE__ */ new Set(),
|
|
50
|
-
loadedSkillPolicies: /* @__PURE__ */ new Map(),
|
|
51
|
-
modelActivation: true
|
|
52
|
-
};
|
|
53
|
-
}
|
|
54
|
-
var SKILL_SURFACE_EXEMPT_TOOLS = /* @__PURE__ */ new Set(["context", "ask_user", "gateway"]);
|
|
55
|
-
function evaluateSkillToolSurface(policy, tool) {
|
|
56
|
-
if (!policy || policy.loadedSkillPolicies.size === 0) return null;
|
|
57
|
-
if (SKILL_SURFACE_EXEMPT_TOOLS.has(tool)) return null;
|
|
58
|
-
const entries = [...policy.loadedSkillPolicies.entries()];
|
|
59
|
-
const skills = entries.map(([name]) => name);
|
|
60
|
-
const carriedSurface = policy.carriedSurface === true;
|
|
61
|
-
const disallowedBy = entries.filter(([, declared]) => declared.disallowedTools?.includes(tool) === true).map(([name]) => name);
|
|
62
|
-
if (disallowedBy.length > 0) return { skills, mergedAllowedTools: null, disallowedBy, carriedSurface };
|
|
63
|
-
if (tool === "limitation") return null;
|
|
64
|
-
const allowLists = entries.map(([, declared]) => declared.allowedTools);
|
|
65
|
-
if (allowLists.some((list) => list === void 0 || list.length === 0)) return null;
|
|
66
|
-
const merged = [...new Set(allowLists.flatMap((list) => [...list ?? []]))];
|
|
67
|
-
if (merged.includes(tool)) return null;
|
|
68
|
-
return { skills, mergedAllowedTools: merged, disallowedBy: [], carriedSurface };
|
|
69
|
-
}
|
|
70
|
-
function agentSkillToolPolicy(skillNames) {
|
|
71
|
-
const allowedSkillNames = [...new Set(skillNames.map((name) => name.trim()).filter((name) => name.length > 0))];
|
|
72
|
-
if (allowedSkillNames.length === 0) return void 0;
|
|
73
|
-
return {
|
|
74
|
-
allowedSkillNames,
|
|
75
|
-
requests: allowedSkillNames.map((name) => ({ name, args: "", source: "recipe", installed: true })),
|
|
76
|
-
loadedSkillNames: /* @__PURE__ */ new Set(),
|
|
77
|
-
loadedSkillPolicies: /* @__PURE__ */ new Map()
|
|
78
|
-
};
|
|
79
|
-
}
|
|
80
|
-
function trimmedString(value) {
|
|
81
|
-
return typeof value === "string" && value.trim().length > 0 ? value.trim() : null;
|
|
82
|
-
}
|
|
83
|
-
function skillActivationFromSource(source, triggeredBy, turnId) {
|
|
84
|
-
const sourceOrigin = trimmedString(source.sourceOrigin) ?? trimmedString(source.sourceInfo?.source);
|
|
85
|
-
return {
|
|
86
|
-
name: source.name,
|
|
87
|
-
filePath: source.filePath,
|
|
88
|
-
hash: source.hash,
|
|
89
|
-
source: source.source,
|
|
90
|
-
...sourceOrigin ? { sourceOrigin } : {},
|
|
91
|
-
triggeredBy,
|
|
92
|
-
...turnId ? { turnId } : {}
|
|
93
|
-
};
|
|
94
|
-
}
|
|
95
|
-
function skillActivationFromToolDetails(details, turnId) {
|
|
96
|
-
if (!details || typeof details !== "object" || Array.isArray(details)) return null;
|
|
97
|
-
const record = details;
|
|
98
|
-
const name = trimmedString(record.name);
|
|
99
|
-
const filePath = trimmedString(record.filePath) ?? trimmedString(record.path);
|
|
100
|
-
const hash = trimmedString(record.hash);
|
|
101
|
-
const source = trimmedString(record.source);
|
|
102
|
-
const sourceOrigin = trimmedString(record.sourceOrigin) ?? trimmedString(record.origin);
|
|
103
|
-
if (!name || !filePath || !hash || !source) return null;
|
|
104
|
-
const activation = skillActivationFromSource(
|
|
105
|
-
{ name, filePath, hash, source, ...sourceOrigin ? { sourceOrigin } : {} },
|
|
106
|
-
"tool",
|
|
107
|
-
turnId
|
|
108
|
-
);
|
|
109
|
-
if (record.drift === "match" || record.drift === "mismatch") activation.drift = record.drift;
|
|
110
|
-
return activation;
|
|
111
|
-
}
|
|
112
|
-
function isSkillActivation(value) {
|
|
113
|
-
if (!value || typeof value !== "object" || Array.isArray(value)) return false;
|
|
114
|
-
const record = value;
|
|
115
|
-
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");
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
// src/domains/session/entries.ts
|
|
119
|
-
init_esm_shims();
|
|
120
|
-
import { createHash } from "node:crypto";
|
|
121
|
-
var SKILL_CONTEXT_STATE = "skillContextState";
|
|
122
|
-
function skillContextContentHash(content) {
|
|
123
|
-
return createHash("sha256").update(JSON.stringify(content)).digest("hex");
|
|
124
|
-
}
|
|
125
|
-
function isSkillContextState(value) {
|
|
126
|
-
return isRecord(value) && value.version === 1 && (value.unknown === void 0 || value.unknown === true) && Array.isArray(value.activationRefs) && value.activationRefs.every((ref) => typeof ref === "string");
|
|
127
|
-
}
|
|
128
|
-
function isSkillContextCheckpoint(value) {
|
|
129
|
-
return isRecord(value) && value.version === 1 && Array.isArray(value.skills) && value.skills.every(
|
|
130
|
-
(skill) => isRecord(skill) && [skill.activationRef, skill.requestRef, skill.callRef, skill.resultRef, skill.requestText, skill.contentHash].every(
|
|
131
|
-
isString
|
|
132
|
-
) && isSkillActivation(skill.activation) && Array.isArray(skill.content) && skill.content.every((block) => isRecord(block) && block.type === "text" && typeof block.text === "string")
|
|
133
|
-
);
|
|
134
|
-
}
|
|
135
|
-
function verifiedSkillContextCheckpoint(value) {
|
|
136
|
-
if (!isSkillContextCheckpoint(value)) return false;
|
|
137
|
-
const refs = /* @__PURE__ */ new Set();
|
|
138
|
-
const names = /* @__PURE__ */ new Set();
|
|
139
|
-
return value.skills.every((skill) => {
|
|
140
|
-
const activation = skill.activation;
|
|
141
|
-
if (![skill.activationRef, skill.requestRef, skill.callRef, skill.resultRef].every((ref) => ref.length > 0) || activation.runId !== void 0 || activation.triggeredBy !== "tool" || activation.turnId !== skill.requestRef || !activation.name || !activation.filePath || !activation.source || !activation.sourceOrigin || !/^[a-f0-9]{64}$/.test(activation.hash) || activation.drift !== void 0 && activation.drift !== "match" || skill.content.length === 0 || skill.content.every((block) => block.text.length === 0) || skill.contentHash !== skillContextContentHash(skill.content) || refs.has(skill.activationRef) || names.has(activation.name))
|
|
142
|
-
return false;
|
|
143
|
-
refs.add(skill.activationRef);
|
|
144
|
-
names.add(activation.name);
|
|
145
|
-
return true;
|
|
146
|
-
});
|
|
147
|
-
}
|
|
148
|
-
function isPreservedUserContext(value) {
|
|
149
|
-
return isRecord(value) && isString(value.turnId) && isString(value.text);
|
|
150
|
-
}
|
|
151
|
-
function mainSkillContextState(entries, policy) {
|
|
152
|
-
if (!policy) return latestSkillContextState(entries);
|
|
153
|
-
if (policy.modelActivation === true && policy.carriedSurface !== true && policy.requests.length === 0 && policy.loadedSkillNames.size === 0 && policy.loadedSkillPolicies.size === 0)
|
|
154
|
-
return latestSkillContextState(entries);
|
|
155
|
-
if (policy.requests.some((request) => !policy.loadedSkillNames.has(request.name))) return null;
|
|
156
|
-
const names = [...policy.loadedSkillNames];
|
|
157
|
-
if (names.length === 0) return null;
|
|
158
|
-
const activationRefs = [];
|
|
159
|
-
for (const name of names) {
|
|
160
|
-
const entry = [...entries].reverse().find(
|
|
161
|
-
(candidate) => candidate.kind === "skillActivation" && candidate.activation.runId === void 0 && candidate.activation.name === name
|
|
162
|
-
);
|
|
163
|
-
if (!entry) return null;
|
|
164
|
-
activationRefs.push(entry.turnId);
|
|
165
|
-
}
|
|
166
|
-
return { version: 1, activationRefs };
|
|
167
|
-
}
|
|
168
|
-
function latestSkillContextState(entries) {
|
|
169
|
-
for (let index = entries.length - 1; index >= 0; index--) {
|
|
170
|
-
const entry = entries[index];
|
|
171
|
-
if (entry?.kind === "custom" && entry.customType === SKILL_CONTEXT_STATE) {
|
|
172
|
-
return isSkillContextState(entry.data) ? entry.data : void 0;
|
|
173
|
-
}
|
|
174
|
-
if (entry?.kind === "compactionSummary" && entry.skillContext !== void 0) {
|
|
175
|
-
return verifiedSkillContextCheckpoint(entry.skillContext) ? { version: 1, activationRefs: entry.skillContext.skills.map((skill) => skill.activationRef) } : void 0;
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
return void 0;
|
|
179
|
-
}
|
|
180
|
-
function decisionRef(interviewId, key) {
|
|
181
|
-
return `${interviewId}/${key}`;
|
|
182
|
-
}
|
|
183
|
-
var EVICTION_REASONS = [
|
|
184
|
-
"superseded_read",
|
|
185
|
-
"stale_after_mutation",
|
|
186
|
-
"listing_consumed",
|
|
187
|
-
"failure_resolved",
|
|
188
|
-
"thinking_turn_closed",
|
|
189
|
-
"age_horizon",
|
|
190
|
-
"operator"
|
|
191
|
-
];
|
|
192
|
-
var EVICTION_TRIGGERS = ["pressure", "operator"];
|
|
193
|
-
var RECALL_TRIGGERS = ["tool", "operator"];
|
|
194
|
-
var SESSION_ENTRY_KINDS = [
|
|
195
|
-
"message",
|
|
196
|
-
"bashExecution",
|
|
197
|
-
"custom",
|
|
198
|
-
"modelChange",
|
|
199
|
-
"thinkingLevelChange",
|
|
200
|
-
"fileEntry",
|
|
201
|
-
"branchSummary",
|
|
202
|
-
"compactionSummary",
|
|
203
|
-
"sessionInfo",
|
|
204
|
-
"label",
|
|
205
|
-
"protectedArtifact",
|
|
206
|
-
"skillActivation",
|
|
207
|
-
"taskLedger",
|
|
208
|
-
"decisionLedger",
|
|
209
|
-
"workerRun",
|
|
210
|
-
"contextEviction",
|
|
211
|
-
"contextRecall"
|
|
212
|
-
];
|
|
213
|
-
function isRecord(value) {
|
|
214
|
-
return !!value && typeof value === "object";
|
|
215
|
-
}
|
|
216
|
-
function isString(value) {
|
|
217
|
-
return typeof value === "string";
|
|
218
|
-
}
|
|
219
|
-
function isOptionalString(value) {
|
|
220
|
-
return value === void 0 || typeof value === "string";
|
|
221
|
-
}
|
|
222
|
-
function isOptionalBoolean(value) {
|
|
223
|
-
return value === void 0 || typeof value === "boolean";
|
|
224
|
-
}
|
|
225
|
-
function isNumber(value) {
|
|
226
|
-
return typeof value === "number" && Number.isFinite(value);
|
|
227
|
-
}
|
|
228
|
-
function isPositiveInteger(value) {
|
|
229
|
-
return isNumber(value) && Number.isInteger(value) && value > 0;
|
|
230
|
-
}
|
|
231
|
-
function isOptionalNumber(value) {
|
|
232
|
-
return value === void 0 || isNumber(value);
|
|
233
|
-
}
|
|
234
|
-
function isNullableString(value) {
|
|
235
|
-
return value === null || typeof value === "string";
|
|
236
|
-
}
|
|
237
|
-
function isOneOf(value, allowed) {
|
|
238
|
-
return typeof value === "string" && allowed.includes(value);
|
|
239
|
-
}
|
|
240
|
-
function isStringArray(value) {
|
|
241
|
-
return Array.isArray(value) && value.every((item) => typeof item === "string");
|
|
242
|
-
}
|
|
243
|
-
function hasBaseSessionEntryFields(v) {
|
|
244
|
-
return isString(v.turnId) && isNullableString(v.parentTurnId) && isString(v.timestamp);
|
|
245
|
-
}
|
|
246
|
-
var MESSAGE_ROLES = ["user", "assistant", "tool_call", "tool_result", "system", "checkpoint"];
|
|
247
|
-
var FILE_OPERATIONS = ["read", "write", "edit", "create", "delete"];
|
|
248
|
-
var COMPACTION_TRIGGERS = ["auto", "force", "overflow"];
|
|
249
|
-
var PROTECTED_ARTIFACT_SOURCES = [
|
|
250
|
-
"validation",
|
|
251
|
-
"middleware",
|
|
252
|
-
"user",
|
|
253
|
-
"session"
|
|
254
|
-
];
|
|
255
|
-
var TASK_LEDGER_STATUSES = ["pending", "active", "completed", "blocked", "cancelled"];
|
|
256
|
-
var TASK_LEDGER_EVIDENCE_STATUSES = [
|
|
257
|
-
"required",
|
|
258
|
-
"pending",
|
|
259
|
-
"passed",
|
|
260
|
-
"failed",
|
|
261
|
-
"missing"
|
|
262
|
-
];
|
|
263
|
-
var DECISION_STATUSES = ["active", "superseded"];
|
|
264
|
-
var DECISION_INTERVIEW_STATUSES = ["complete", "cancelled"];
|
|
265
|
-
var WORKER_RUN_ORIGINS = ["user", "agent"];
|
|
266
|
-
var WORKER_RUN_RUNTIME_KINDS = ["clio", "acp", "claude-sdk", "claude-code"];
|
|
267
|
-
function isWorkerRunRuntime(value) {
|
|
268
|
-
if (!isRecord(value)) return false;
|
|
269
|
-
return isOneOf(value.kind, WORKER_RUN_RUNTIME_KINDS) && isOptionalString(value.targetId) && isOptionalString(value.wireModelId) && isOptionalString(value.peerId);
|
|
270
|
-
}
|
|
271
|
-
function isTaskLedgerGoal(value) {
|
|
272
|
-
if (!isRecord(value)) return false;
|
|
273
|
-
if (!isString(value.id) || !isString(value.title)) return false;
|
|
274
|
-
if (!isOneOf(value.status, TASK_LEDGER_STATUSES)) return false;
|
|
275
|
-
if (value.parentGoalId !== void 0 && !isNullableString(value.parentGoalId)) return false;
|
|
276
|
-
const hasPairedProvenance = value.origin === "user" ? isString(value.userTaskId) && /^u[1-9]\d*$/.test(value.userTaskId) : (value.origin === void 0 || value.origin === "agent") && value.userTaskId === void 0;
|
|
277
|
-
return isOptionalString(value.description) && hasPairedProvenance;
|
|
278
|
-
}
|
|
279
|
-
function isTaskLedgerEvidence(value) {
|
|
280
|
-
if (!isRecord(value)) return false;
|
|
281
|
-
if (!isString(value.id) || !isString(value.description)) return false;
|
|
282
|
-
if (!isOneOf(value.status, TASK_LEDGER_EVIDENCE_STATUSES)) return false;
|
|
283
|
-
return isOptionalString(value.command) && isOptionalString(value.artifactPath) && isOptionalString(value.observedAt) && isOptionalString(value.notes);
|
|
284
|
-
}
|
|
285
|
-
function isDecisionRecord(value) {
|
|
286
|
-
if (!isRecord(value)) return false;
|
|
287
|
-
if (!isString(value.key) || !/^[a-z0-9]+(?:[_-][a-z0-9]+)*$/.test(value.key)) return false;
|
|
288
|
-
if (!isString(value.value) || !isOneOf(value.status, DECISION_STATUSES) || !isString(value.decidedAt)) return false;
|
|
289
|
-
if (!isOptionalString(value.label) || !isOptionalString(value.source_question)) return false;
|
|
290
|
-
if (value.source !== void 0 && !isOneOf(value.source, ["operator", "agent"])) return false;
|
|
291
|
-
if (value.revisionSource !== void 0 && !isOneOf(value.revisionSource, ["operator", "agent"])) return false;
|
|
292
|
-
if (value.alternatives !== void 0 && !isStringArray(value.alternatives)) return false;
|
|
293
|
-
if (!isOptionalString(value.rationale)) return false;
|
|
294
|
-
if (!isOptionalString(value.revisedAt) || !isOptionalString(value.correction)) return false;
|
|
295
|
-
return value.status === "superseded" ? isString(value.revisedAt) : value.revisedAt === void 0 && value.revisionSource === void 0 && value.correction === void 0;
|
|
296
|
-
}
|
|
297
|
-
function isOptionalCompactionUsage(value) {
|
|
298
|
-
if (value === void 0) return true;
|
|
299
|
-
if (!isRecord(value)) return false;
|
|
300
|
-
const cost = value.cost;
|
|
301
|
-
return isOptionalString(value.targetId) && isOptionalString(value.modelId) && isNumber(value.input) && isNumber(value.output) && isNumber(value.cacheRead) && isNumber(value.cacheWrite) && isNumber(value.reasoning) && isNumber(value.totalTokens) && isNumber(value.apiCalls) && isRecord(cost) && isNumber(cost.total);
|
|
302
|
-
}
|
|
303
|
-
function isProtectedArtifact(value) {
|
|
304
|
-
if (!isRecord(value)) return false;
|
|
305
|
-
return isString(value.path) && isString(value.protectedAt) && isString(value.reason) && isOneOf(value.source, PROTECTED_ARTIFACT_SOURCES) && isOptionalString(value.validationCommand) && isOptionalNumber(value.validationExitCode);
|
|
306
|
-
}
|
|
307
|
-
function isSessionHeader(value) {
|
|
308
|
-
if (!isRecord(value)) return false;
|
|
309
|
-
return value.type === "session" && isPositiveInteger(value.version) && isString(value.id) && isString(value.timestamp) && isString(value.cwd) && isOptionalString(value.parentSession) && isOptionalString(value.parentTurnId);
|
|
310
|
-
}
|
|
311
|
-
function isWorkingSetRef(value) {
|
|
312
|
-
return isRecord(value) && isString(value.entry);
|
|
313
|
-
}
|
|
314
|
-
function isEvictedItem(value) {
|
|
315
|
-
return isRecord(value) && isWorkingSetRef(value.ref) && isOneOf(value.reason, EVICTION_REASONS) && isNumber(value.tokensFreed) && isString(value.marker) && (value.alias === void 0 || typeof value.alias === "string" && /^r[1-9]\d*$/.test(value.alias)) && isOptionalString(value.by);
|
|
316
|
-
}
|
|
317
|
-
function isSessionEntry(value) {
|
|
318
|
-
if (!value || typeof value !== "object") return false;
|
|
319
|
-
const v = value;
|
|
320
|
-
if (!hasBaseSessionEntryFields(v)) return false;
|
|
321
|
-
if (!isOneOf(v.kind, SESSION_ENTRY_KINDS)) return false;
|
|
322
|
-
switch (v.kind) {
|
|
323
|
-
case "message":
|
|
324
|
-
return Object.hasOwn(v, "payload") && isOneOf(v.role, MESSAGE_ROLES);
|
|
325
|
-
case "bashExecution":
|
|
326
|
-
return isString(v.command) && isString(v.output) && (v.exitCode === null || isNumber(v.exitCode)) && typeof v.cancelled === "boolean" && typeof v.truncated === "boolean" && isOptionalString(v.fullOutputPath) && isOptionalBoolean(v.excludeFromContext);
|
|
327
|
-
case "custom":
|
|
328
|
-
return isString(v.customType) && isOptionalBoolean(v.display) && (v.customType !== SKILL_CONTEXT_STATE || isSkillContextState(v.data));
|
|
329
|
-
case "modelChange":
|
|
330
|
-
return isString(v.provider) && isString(v.modelId) && isOptionalString(v.target);
|
|
331
|
-
case "thinkingLevelChange":
|
|
332
|
-
return isString(v.thinkingLevel);
|
|
333
|
-
case "fileEntry":
|
|
334
|
-
return isString(v.path) && isOneOf(v.operation, FILE_OPERATIONS) && isOptionalNumber(v.bytes) && isOptionalString(v.hash);
|
|
335
|
-
case "branchSummary":
|
|
336
|
-
return isString(v.fromTurnId) && isString(v.summary);
|
|
337
|
-
case "compactionSummary":
|
|
338
|
-
return isString(v.summary) && isNumber(v.tokensBefore) && isString(v.firstKeptTurnId) && isOptionalCompactionUsage(v.usage) && (v.trigger === void 0 || isOneOf(v.trigger, COMPACTION_TRIGGERS)) && isOptionalNumber(v.tokensAfter) && isOptionalNumber(v.messagesSummarized) && isOptionalBoolean(v.isSplitTurn) && (v.skillContext === void 0 || isSkillContextCheckpoint(v.skillContext)) && (v.userContext === void 0 || isPreservedUserContext(v.userContext));
|
|
339
|
-
case "sessionInfo":
|
|
340
|
-
return isOptionalString(v.name) && isOptionalString(v.targetTurnId) && isOptionalString(v.label);
|
|
341
|
-
case "label":
|
|
342
|
-
return isString(v.targetTurnId) && isOptionalString(v.label);
|
|
343
|
-
case "protectedArtifact":
|
|
344
|
-
return v.action === "protect" && isProtectedArtifact(v.artifact) && isOptionalString(v.toolName) && isOptionalString(v.toolCallId) && isOptionalString(v.runId) && isOptionalString(v.correlationId);
|
|
345
|
-
case "skillActivation":
|
|
346
|
-
return isSkillActivation(v.activation);
|
|
347
|
-
case "taskLedger":
|
|
348
|
-
return isOptionalString(v.boardId) && Array.isArray(v.goals) && v.goals.every(isTaskLedgerGoal) && Array.isArray(v.subgoals) && v.subgoals.every(isTaskLedgerGoal) && isStringArray(v.activeRunIds) && Array.isArray(v.requiredValidationEvidence) && v.requiredValidationEvidence.every(isTaskLedgerEvidence);
|
|
349
|
-
case "decisionLedger":
|
|
350
|
-
return (v.origin === void 0 || isOneOf(v.origin, ["interview", "agent"])) && isString(v.interviewId) && isOneOf(v.interviewStatus, DECISION_INTERVIEW_STATUSES) && isString(v.startedAt) && isString(v.endedAt) && isNumber(v.roundCount) && Number.isInteger(v.roundCount) && v.roundCount >= 0 && isOptionalString(v.summary) && isOptionalString(v.transcriptPath) && (v.exposure === void 0 || isOneOf(v.exposure, AUTONOMY_EXPOSURES)) && Array.isArray(v.decisions) && v.decisions.every(isDecisionRecord);
|
|
351
|
-
case "workerRun":
|
|
352
|
-
return (v.helper === void 0 || v.helper === true) && isOptionalString(v.task) && isString(v.assignmentId) && isString(v.runId) && isOneOf(v.origin, WORKER_RUN_ORIGINS) && isString(v.agentId) && isWorkerRunRuntime(v.runtime) && isOptionalString(v.parentToolCallId);
|
|
353
|
-
case "contextEviction":
|
|
354
|
-
return isString(v.policyId) && isOneOf(v.trigger, EVICTION_TRIGGERS) && Array.isArray(v.evicted) && v.evicted.every(isEvictedItem) && isNumber(v.tokensBefore) && isNumber(v.tokensAfter) && (v.pressureBefore === null || isNumber(v.pressureBefore)) && (v.snapshotIdBefore === null || isString(v.snapshotIdBefore));
|
|
355
|
-
case "contextRecall":
|
|
356
|
-
return isWorkingSetRef(v.ref) && isOneOf(v.trigger, RECALL_TRIGGERS) && isNumber(v.tokensReadmitted) && isOptionalString(v.toolCallId);
|
|
357
|
-
}
|
|
358
|
-
return false;
|
|
359
|
-
}
|
|
360
|
-
|
|
361
|
-
export {
|
|
362
|
-
SKILL_SUGGESTION_ANCHOR,
|
|
363
|
-
SKILL_SUGGESTION_PREFIX,
|
|
364
|
-
SKILL_INSTALL_OFFER_OPTION_PROJECT,
|
|
365
|
-
SKILL_INSTALL_OFFER_OPTION_USER,
|
|
366
|
-
SKILL_INSTALL_OFFER_OPTION_NOT_NOW,
|
|
367
|
-
SKILL_INSTALL_OFFER_OPTION_NEVER,
|
|
368
|
-
armedSkillSurface,
|
|
369
|
-
skillSurfaceNames,
|
|
370
|
-
skillSurfaceLabels,
|
|
371
|
-
withModelSkillActivation,
|
|
372
|
-
evaluateSkillToolSurface,
|
|
373
|
-
agentSkillToolPolicy,
|
|
374
|
-
skillActivationFromToolDetails,
|
|
375
|
-
isSkillActivation,
|
|
376
|
-
SKILL_CONTEXT_STATE,
|
|
377
|
-
skillContextContentHash,
|
|
378
|
-
verifiedSkillContextCheckpoint,
|
|
379
|
-
mainSkillContextState,
|
|
380
|
-
latestSkillContextState,
|
|
381
|
-
decisionRef,
|
|
382
|
-
isDecisionRecord,
|
|
383
|
-
isSessionHeader,
|
|
384
|
-
isSessionEntry
|
|
385
|
-
};
|
|
386
|
-
//# sourceMappingURL=chunk-I4Y4WKZR.js.map
|