@iowarp/clio-coder 0.3.4 → 0.3.7
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/CHANGELOG.md +65 -2
- package/CONTRIBUTING.md +6 -6
- package/README.md +16 -5
- package/dist/{acp-S5R4RR5B.js → acp-SK4MD6MM.js} +11 -11
- package/dist/{agents-P6DMMVZY.js → agents-2FN2K6ME.js} +33 -26
- package/dist/assets/codewiki.json +1 -1
- package/dist/{auth-2XCZLPKS.js → auth-QIYZWM5I.js} +15 -15
- package/dist/{chunk-EKMEHE4H.js → chunk-33YXPOE3.js} +2 -3
- package/dist/{chunk-VAWWTKDP.js → chunk-3HAPLH5M.js} +11 -11
- package/dist/{chunk-YCWGATWI.js → chunk-465YSENW.js} +3 -3
- package/dist/{chunk-4OC57DA6.js → chunk-4DGYLA73.js} +53 -2
- package/dist/{chunk-UZHIZC5S.js → chunk-4DWFMQDR.js} +61 -76
- package/dist/{chunk-ZWMF7253.js → chunk-5C3AQNDW.js} +328 -9
- package/dist/{chunk-22NAGB7X.js → chunk-5C77SEEY.js} +5 -94
- package/dist/{chunk-WPQLXFOZ.js → chunk-5FR74PWO.js} +3 -2
- package/dist/{chunk-35MKKU5R.js → chunk-5UJ6ECTS.js} +18 -10
- package/dist/{chunk-BRXQQJFP.js → chunk-6M7VS3J3.js} +571 -50
- package/dist/{chunk-QQK64KLB.js → chunk-6TUKSZVF.js} +141 -23
- package/dist/{chunk-N4CZJQRK.js → chunk-AB4XIIVB.js} +8 -6
- package/dist/{chunk-KRPY7NTG.js → chunk-BMWK7ZIZ.js} +14 -20
- package/dist/{chunk-4BPJXDWC.js → chunk-C4JBQ5SR.js} +30 -14
- package/dist/{chunk-ZYKPLLNQ.js → chunk-CEYBNUGC.js} +821 -83
- package/dist/{chunk-VEZEGCGW.js → chunk-D4MDIG46.js} +20 -18
- package/dist/chunk-DJNLUABN.js +843 -0
- package/dist/{chunk-BP4OYD6A.js → chunk-DMD2AGVS.js} +21 -2
- package/dist/{chunk-KOHPCX4K.js → chunk-DOOEX22V.js} +2 -2
- package/dist/chunk-DQA7QLMD.js +123 -0
- package/dist/chunk-DR52UMZW.js +21 -0
- package/dist/{chunk-3HZ5RWN2.js → chunk-EBEFWSGL.js} +9 -7
- package/dist/{chunk-EDRHSCIE.js → chunk-EELBMBT6.js} +128 -13
- package/dist/{chunk-HV5X7OR2.js → chunk-EOOQZZDE.js} +16 -14
- package/dist/{chunk-WR67VIZY.js → chunk-FOT2FX5J.js} +63 -5
- package/dist/{chunk-BPGS2WCQ.js → chunk-GEYXPTRF.js} +2 -1
- package/dist/{chunk-FYYLNIL5.js → chunk-GH5622CP.js} +2 -2
- package/dist/{chunk-BEY543CS.js → chunk-GOXNB3AO.js} +5 -2
- package/dist/chunk-GWS3VEIW.js +195 -0
- package/dist/{chunk-G4BMMOKF.js → chunk-HVDIIIQW.js} +2 -2
- package/dist/chunk-HWUFFB6L.js +83 -0
- package/dist/{chunk-X6COSD2O.js → chunk-J7PIKKWC.js} +8 -436
- package/dist/{chunk-NILBFAPG.js → chunk-JNXPYBB4.js} +2 -2
- package/dist/{chunk-4VP4KH3K.js → chunk-JRIO5UD2.js} +4 -4
- package/dist/{chunk-K6WL7QZT.js → chunk-JTSEDYVQ.js} +7 -7
- package/dist/{chunk-QKMUKYO7.js → chunk-KCMKRQX4.js} +236 -84
- package/dist/chunk-KZ2H5X4G.js +1026 -0
- package/dist/{chunk-A2GZF7DC.js → chunk-LADCF22A.js} +13 -13
- package/dist/chunk-LCGCVYZ4.js +57 -0
- package/dist/chunk-M4AKACEO.js +382 -0
- package/dist/{chunk-POHLU5DW.js → chunk-M6L6IDJG.js} +3 -3
- package/dist/{chunk-4JUF2NNX.js → chunk-MXI6J5JF.js} +7 -7
- package/dist/{chunk-X4RCMKVQ.js → chunk-NDINPTJ4.js} +2 -2
- package/dist/{chunk-TTNYS3EA.js → chunk-OB5HIGJY.js} +1 -1
- package/dist/{chunk-7RXG6QRZ.js → chunk-OBMAI2DP.js} +61 -840
- package/dist/{chunk-5M54SPOL.js → chunk-ODFEOB4F.js} +161 -5
- package/dist/chunk-PD3MESLB.js +242 -0
- package/dist/{chunk-ED4KHGC3.js → chunk-PPAMZ32Z.js} +9 -2
- package/dist/{chunk-VMNQ6OZA.js → chunk-QCTRSGHQ.js} +963 -786
- package/dist/chunk-RVG5JXAL.js +41 -0
- package/dist/{chunk-RD5U66HV.js → chunk-SROCI7ZU.js} +7 -7
- package/dist/{chunk-MFFY33HR.js → chunk-THKY7CD7.js} +466 -205
- package/dist/{chunk-34475P3I.js → chunk-TSHXZTOQ.js} +5 -4
- package/dist/{chunk-PCZJO5TI.js → chunk-UFQ3F4FW.js} +13 -178
- package/dist/{chunk-AD2SYQYC.js → chunk-UHXRNZ2J.js} +121 -3
- package/dist/chunk-UND3GU2L.js +103 -0
- package/dist/{chunk-QQL5RT5M.js → chunk-UUANF5CR.js} +2323 -2114
- package/dist/{chunk-VJWL6YS5.js → chunk-UUVG37B4.js} +2 -2
- package/dist/chunk-UVDSQ6LW.js +472 -0
- package/dist/{chunk-QWU7ZBO7.js → chunk-VQNODYQ4.js} +215 -56
- package/dist/chunk-VREKEFLL.js +37 -0
- package/dist/{chunk-2TZWSW76.js → chunk-WHGPSPT5.js} +2 -2
- package/dist/{chunk-TW3WDMVS.js → chunk-WHJYKASB.js} +2 -2
- package/dist/{chunk-MEQ45TQ4.js → chunk-WJHBC77E.js} +21 -7
- package/dist/{chunk-HXG4IURW.js → chunk-X2KV5FXT.js} +2 -2
- package/dist/{chunk-YHZX5GEU.js → chunk-XAKHZX5N.js} +2 -2
- package/dist/{chunk-2LZI5CAG.js → chunk-XEGB6BCN.js} +228 -36
- package/dist/{chunk-E25LMLRW.js → chunk-YD734TPH.js} +2 -2
- package/dist/{verifiers-4UUM6TEE.js → chunk-YTYFXUI3.js} +121 -372
- package/dist/{chunk-3JLKSKD7.js → chunk-ZGH7FGS5.js} +17 -7
- package/dist/{chunk-VSNATDE6.js → chunk-ZZMN5OM4.js} +2 -2
- package/dist/cli/index.js +34 -32
- package/dist/{clio-J5JIOIDS.js → clio-WBVQEBKO.js} +7 -7
- package/dist/{code-nav-AXCXSBHX.js → code-nav-FGGFIE7L.js} +7 -7
- package/dist/codewiki/build-worker.js +4 -4
- package/dist/{components-KELWS457.js → components-F7OEATSO.js} +5 -5
- package/dist/{config-OEBMIN2U.js → config-TRBL3RCF.js} +48 -41
- package/dist/{configure-PUQOSIXQ.js → configure-OLCVPHNM.js} +17 -17
- package/dist/{context-URSXPBCK.js → context-MJIJ6GOX.js} +12 -12
- package/dist/{context-EKDCKUUZ.js → context-WFPKQSM6.js} +26 -9
- package/dist/{context-MGSE4Z2T.js → context-XEWE3MOJ.js} +44 -37
- package/dist/{context-clear-KDAJRNUK.js → context-clear-KNOS2JPB.js} +44 -37
- package/dist/{context-index-BZ4UYMTC.js → context-index-SSR5ECNE.js} +3 -3
- package/dist/{context-working-set-SBKMPPI2.js → context-working-set-EUXAZI6N.js} +14 -13
- package/dist/{dispatch-runner-MSWN72NK.js → dispatch-runner-B7MTOVKL.js} +321 -60
- package/dist/{docs-2C2LTVT2.js → docs-FLJTIDSE.js} +5 -5
- package/dist/{doctor-7BSE27PJ.js → doctor-RN4YKO2X.js} +15 -15
- package/dist/{eval-IZGDOO4H.js → eval-RUBJVSNQ.js} +52 -236
- package/dist/{evidence-SR7WXB5B.js → evidence-JZNBUOQZ.js} +39 -33
- package/dist/{evolve-K7VE2CBX.js → evolve-FJVC4KKI.js} +39 -33
- package/dist/{extensions-QVDOHDGJ.js → extensions-IQL36S7K.js} +5 -5
- package/dist/{fleet-7XMJNQNF.js → fleet-BDKYJFCP.js} +243 -370
- package/dist/fleet-commands-ZFIWZSB3.js +70 -0
- package/dist/fleet-graph-Y6HPXIVF.js +125 -0
- package/dist/fleet-new-RDVJLHHH.js +48 -0
- package/dist/{fleet-preflight-AQNAH644.js → fleet-preflight-BHSNPBMH.js} +2 -2
- package/dist/fleet-validate-BIYREGIK.js +79 -0
- package/dist/{init-JGNPAYXT.js → init-LQUB5COQ.js} +57 -48
- package/dist/library-NJAHIGG4.js +217 -0
- package/dist/memory-OG6HOYKM.js +472 -0
- package/dist/{models-ZMMLFJNN.js → models-5ZG5XY7J.js} +23 -22
- package/dist/{monitor-2F3T5KHP.js → monitor-TJ7AMTGB.js} +69 -35
- package/dist/{orchestrator-ORHT43JB.js → orchestrator-WZYB54DM.js} +4868 -1189
- package/dist/{paths-UXLN5YYZ.js → paths-XUC7GS6E.js} +5 -5
- package/dist/{reset-NXGTYNUO.js → reset-PXQT45IY.js} +8 -8
- package/dist/{run-RF4WJGMT.js → run-FQ74YF62.js} +82 -62
- package/dist/{share-UT3W6E4M.js → share-FW7SVCL3.js} +34 -10
- package/dist/{skills-PSACKC5Q.js → skills-7E7IRB3R.js} +25 -9
- package/dist/{skills-eval-WJSI55RZ.js → skills-eval-LI75W6OK.js} +43 -35
- package/dist/{targets-PIIRAOYS.js → targets-4CIFKCTW.js} +27 -24
- package/dist/{terminal-lease-ULWXWNVY.js → terminal-lease-WUZY7ZV5.js} +5 -4
- package/dist/{uninstall-FZCQCDKC.js → uninstall-7FV7IP4E.js} +5 -5
- package/dist/{upgrade-346TZ6AV.js → upgrade-K2HVIVMQ.js} +21 -20
- package/dist/{usage-6KKXR32N.js → usage-GTZELZQX.js} +159 -59
- package/dist/verifiers-RLAHT27O.js +336 -0
- package/dist/{verify-X5HDROLA.js → verify-BX3BRKH5.js} +7 -6
- package/dist/{wiki-generate-7STOCIFZ.js → wiki-generate-ASIFASCN.js} +58 -48
- package/dist/worker/entry.js +98 -84
- package/dist/{workspace-G4ZWUIPR.js → workspace-ZJ6BFM3Q.js} +4 -4
- package/docs/README.md +4 -3
- package/docs/acp.md +1 -1
- package/docs/alcf-provider.md +1 -1
- package/docs/architecture.md +2 -2
- package/docs/artifact-placement.md +1 -2
- package/docs/artifact-versions.md +10 -6
- package/docs/built-in-agents.md +26 -2
- package/docs/capacity-and-scheduling.md +1 -1
- package/docs/commands-and-modes.md +90 -8
- package/docs/configuration-and-targets.md +90 -2
- package/docs/context-engine.md +4 -2
- package/docs/context-working-set.md +4 -4
- package/docs/development-pipeline.md +1 -1
- package/docs/dispatch-architecture-rationale.md +1 -1
- package/docs/documentation-coverage.md +4 -4
- package/docs/documentation-guide.md +4 -4
- package/docs/eval-runner.md +1 -1
- package/docs/evals-internal.md +4 -45
- package/docs/evidence-and-memory.md +70 -10
- package/docs/evolution.md +1 -1
- package/docs/exit-codes-and-output.md +4 -1
- package/docs/extensions-and-sharing.md +6 -2
- package/docs/fleet-demo-runbook.md +2 -2
- package/docs/fleet-dispatch.md +224 -11
- package/docs/git-commit-provenance.md +2 -2
- package/docs/glossary.md +1 -1
- package/docs/installation-and-lifecycle.md +2 -2
- package/docs/middleware-and-components.md +20 -2
- package/docs/model-catalog.md +1 -1
- package/docs/observability.md +55 -8
- package/docs/proactive-memory.md +26 -16
- package/docs/prompt-envelope-and-tools.md +4 -2
- package/docs/provider-adapter-cookbook.md +1 -1
- package/docs/release-cut-checklist.md +83 -65
- package/docs/resource-library.md +59 -0
- package/docs/safety-model.md +29 -7
- package/docs/scientific-validation.md +3 -3
- package/docs/session-lifecycle.md +37 -1
- package/docs/skills-marketplace.md +16 -3
- package/docs/tool-usage.md +14 -7
- package/docs/trace-store.md +1 -1
- package/docs/troubleshooting.md +1 -1
- package/docs/tui-design.md +38 -4
- package/docs/worker-dispatch-mechanics.md +3 -3
- package/package.json +7 -4
- package/src/cli/agents.ts +2 -3
- package/src/cli/argv.ts +14 -1
- package/src/cli/fleet-commands.ts +37 -0
- package/src/cli/fleet-graph.ts +102 -0
- package/src/cli/fleet-new.ts +36 -0
- package/src/cli/fleet-preflight.ts +121 -0
- package/src/cli/fleet-validate.ts +30 -0
- package/src/cli/fleet.ts +188 -335
- package/src/cli/index.ts +4 -2
- package/src/cli/library.ts +190 -0
- package/src/cli/memory.ts +272 -10
- package/src/cli/modes/json-stream.ts +2 -2
- package/src/cli/modes/print.ts +12 -1
- package/src/cli/run.ts +22 -2
- package/src/cli/share.ts +13 -1
- package/src/cli/targets.ts +12 -3
- package/src/cli/usage.ts +160 -20
- package/src/core/bus-events.ts +7 -0
- package/src/core/commit-attribution.ts +4 -4
- package/src/core/config.ts +130 -0
- package/src/core/defaults.ts +81 -0
- package/src/core/response-model-id.ts +134 -0
- package/src/core/toml.ts +62 -0
- package/src/core/workspace-files.ts +0 -1
- package/src/domains/agents/builtins/architect.md +2 -1
- package/src/domains/agents/builtins/oracle.md +33 -0
- package/src/domains/agents/catalog.ts +18 -5
- package/src/domains/agents/fleet-contract.ts +278 -16
- package/src/domains/agents/index.ts +14 -0
- package/src/domains/agents/recipe.ts +54 -14
- package/src/domains/agents/result-contract.ts +242 -5
- package/src/domains/config/classify.ts +4 -0
- package/src/domains/context/bootstrap.ts +36 -27
- package/src/domains/context/project-metadata.ts +19 -63
- package/src/domains/context/prompt-context.ts +8 -0
- package/src/domains/context/working-set/policies/index.ts +3 -4
- package/src/domains/dispatch/active-route-planner.ts +14 -0
- package/src/domains/dispatch/backoff.ts +2 -1
- package/src/domains/dispatch/budget-envelope.ts +396 -0
- package/src/domains/dispatch/capability-match.ts +1 -0
- package/src/domains/dispatch/checkout-writer-lease.ts +175 -0
- package/src/domains/dispatch/contract.ts +36 -0
- package/src/domains/dispatch/delegation-plan.ts +167 -0
- package/src/domains/dispatch/execution-plan.ts +76 -5
- package/src/domains/dispatch/execution-role.ts +3 -1
- package/src/domains/dispatch/execution-scheduler.ts +183 -67
- package/src/domains/dispatch/extension.ts +339 -36
- package/src/domains/dispatch/fleet-gate.ts +14 -0
- package/src/domains/dispatch/fleet-plan.ts +63 -3
- package/src/domains/dispatch/fleet-run.ts +737 -0
- package/src/domains/dispatch/gate-role-prompts.ts +9 -0
- package/src/domains/dispatch/host-verification.ts +178 -0
- package/src/domains/dispatch/index.ts +38 -0
- package/src/domains/dispatch/intent.ts +159 -0
- package/src/domains/dispatch/orphan-recovery.ts +1 -0
- package/src/domains/dispatch/receipt-integrity.ts +12 -4
- package/src/domains/dispatch/state.ts +37 -3
- package/src/domains/dispatch/types.ts +61 -9
- package/src/domains/dispatch/validation.ts +80 -6
- package/src/domains/dispatch/worker-spawn.ts +14 -3
- package/src/domains/eval/metrics/evidence.ts +0 -116
- package/src/domains/eval/metrics/invariants.ts +1 -1
- package/src/domains/eval/runners/clio-run.ts +1 -10
- package/src/domains/eval/runners/external-command.ts +2 -29
- package/src/domains/eval/schema/suite.ts +0 -7
- package/src/domains/eval/suites/run.ts +1 -7
- package/src/domains/evidence/trust-status.ts +10 -1
- package/src/domains/memory/index.ts +22 -0
- package/src/domains/memory/operations.ts +58 -1
- package/src/domains/memory/promotion.ts +281 -0
- package/src/domains/memory/prompt-section.ts +25 -5
- package/src/domains/memory/proposal.ts +51 -7
- package/src/domains/memory/task-bank.ts +3 -2
- package/src/domains/memory/task-memory-handoff.ts +181 -24
- package/src/domains/memory/task-memory-policy.ts +3 -1
- package/src/domains/memory/types.ts +37 -0
- package/src/domains/memory/validate.ts +178 -0
- package/src/domains/middleware/index.ts +15 -0
- package/src/domains/middleware/memory-intervention.ts +35 -25
- package/src/domains/middleware/runtime.ts +6 -0
- package/src/domains/middleware/skills-reminder.ts +19 -4
- package/src/domains/middleware/stalled-turn.ts +43 -1
- package/src/domains/middleware/types.ts +10 -0
- package/src/domains/middleware/watchdog.ts +281 -0
- package/src/domains/observability/contract.ts +9 -2
- package/src/domains/observability/cost.ts +31 -4
- package/src/domains/observability/extension.ts +2 -2
- package/src/domains/observability/index.ts +10 -0
- package/src/domains/observability/out-of-turn-usage.ts +223 -0
- package/src/domains/providers/index.ts +3 -0
- package/src/domains/providers/model-discovery.ts +9 -0
- package/src/domains/providers/runtime-resolution.ts +38 -1
- package/src/domains/providers/runtimes/common/probe-helpers.ts +97 -16
- package/src/domains/providers/types/context-window-slots.ts +18 -0
- package/src/domains/providers/types/runtime-descriptor.ts +3 -1
- package/src/domains/resources/index.ts +20 -0
- package/src/domains/resources/library.ts +326 -0
- package/src/domains/resources/skills/marketplace.ts +37 -12
- package/src/domains/safety/call-target.ts +211 -14
- package/src/domains/safety/decision-presentation.ts +268 -0
- package/src/domains/safety/redaction.ts +73 -0
- package/src/domains/session/context-ledger.ts +10 -1
- package/src/domains/session/decision-board.ts +4 -0
- package/src/domains/session/entries.ts +3 -0
- package/src/domains/session/handoff.ts +629 -0
- package/src/domains/session/history.ts +68 -19
- package/src/domains/session/usage.ts +24 -7
- package/src/domains/share/archive.ts +67 -2
- package/src/engine/acp/event-mapper.ts +7 -0
- package/src/engine/acp/server.ts +29 -2
- package/src/engine/apis/lmstudio.ts +25 -4
- package/src/engine/apis/openai-completions.ts +147 -22
- package/src/engine/claude/sdk-runtime.ts +8 -2
- package/src/engine/claude/tool-safety.ts +13 -0
- package/src/engine/loop-guard.ts +27 -3
- package/src/engine/worker-events.ts +4 -3
- package/src/engine/worker-runtime.ts +59 -54
- package/src/entry/orchestrator.ts +55 -1
- package/src/interactive/bus-notices.ts +26 -0
- package/src/interactive/chat-loop-messages.ts +22 -0
- package/src/interactive/chat-loop.ts +248 -1
- package/src/interactive/chat-renderer.ts +41 -3
- package/src/interactive/clio-editor.ts +44 -7
- package/src/interactive/context-overlay.ts +43 -5
- package/src/interactive/cost-overlay.ts +70 -11
- package/src/interactive/council-dispatch.ts +30 -0
- package/src/interactive/council-grid.ts +213 -0
- package/src/interactive/council.ts +99 -0
- package/src/interactive/dispatch-board.ts +471 -50
- package/src/interactive/fleet-run-preview.ts +307 -0
- package/src/interactive/footer/notifications.ts +219 -0
- package/src/interactive/footer/widgets.ts +13 -0
- package/src/interactive/handoff-round.ts +56 -0
- package/src/interactive/interactive-application.ts +49 -2
- package/src/interactive/interactive-event-projection.ts +9 -1
- package/src/interactive/interactive-input-runtime.ts +11 -1
- package/src/interactive/interactive-presentation.ts +11 -1
- package/src/interactive/interactive-slash-runtime.ts +52 -2
- package/src/interactive/interactive-subscriptions.ts +14 -2
- package/src/interactive/memory-overlay.ts +89 -4
- package/src/interactive/oracle.ts +179 -0
- package/src/interactive/overlay-ask-user-lifecycle.ts +7 -1
- package/src/interactive/overlay-frame.ts +5 -2
- package/src/interactive/overlay-general-openers.ts +230 -2
- package/src/interactive/overlay-key-routing.ts +58 -2
- package/src/interactive/overlay-lifecycle.ts +52 -5
- package/src/interactive/overlay-permission-lifecycle.ts +33 -8
- package/src/interactive/overlay-resource-openers.ts +11 -3
- package/src/interactive/overlay-session-lifecycle.ts +234 -2
- package/src/interactive/overlay-transitions.ts +11 -0
- package/src/interactive/overlays/ask-user.ts +74 -30
- package/src/interactive/overlays/decisions.ts +3 -1
- package/src/interactive/overlays/fleet-run-approval.ts +208 -0
- package/src/interactive/overlays/handoff-review.ts +185 -0
- package/src/interactive/overlays/library-install-confirm.ts +151 -0
- package/src/interactive/overlays/list-overlay.ts +168 -2
- package/src/interactive/overlays/settings.ts +101 -4
- package/src/interactive/overlays/side-question.ts +139 -0
- package/src/interactive/overlays/skills-hub.ts +401 -15
- package/src/interactive/permission-hint.ts +35 -0
- package/src/interactive/permission-overlay.ts +95 -45
- package/src/interactive/renderers/tool-execution.ts +19 -49
- package/src/interactive/session-last-turn.ts +8 -1
- package/src/interactive/session-usage-reseed.ts +36 -10
- package/src/interactive/side-question.ts +171 -0
- package/src/interactive/slash-commands.ts +434 -7
- package/src/interactive/slash-spec.ts +19 -6
- package/src/interactive/status/summary.ts +5 -0
- package/src/interactive/status/types.ts +5 -0
- package/src/interactive/terminal-lease.ts +1 -0
- package/src/interactive/theme/tokens.ts +30 -0
- package/src/interactive/turn-context.ts +96 -23
- package/src/interactive/turn-middleware.ts +16 -1
- package/src/interactive/turn-runtime.ts +37 -8
- package/src/interactive/turn-state.ts +3 -0
- package/src/interactive/watchdog-run.ts +75 -0
- package/src/interactive/worker-progress.ts +440 -0
- package/src/interactive/worker-share.ts +56 -1
- package/src/interactive/worker-stream.ts +58 -110
- package/src/tools/agent-tools.ts +28 -3
- package/src/tools/ask-user.ts +21 -1
- package/src/tools/bootstrap.ts +3 -0
- package/src/tools/compete-worktrees.ts +13 -79
- package/src/tools/context/index.ts +2 -2
- package/src/tools/dispatch-admission.ts +242 -8
- package/src/tools/dispatch-arguments.ts +65 -1
- package/src/tools/dispatch-event-text.ts +19 -0
- package/src/tools/dispatch-plan.ts +136 -6
- package/src/tools/dispatch-runner.ts +319 -13
- package/src/tools/dispatch-types.ts +20 -1
- package/src/tools/dispatch.ts +96 -3
- package/src/tools/monitor.ts +31 -0
- package/src/tools/profiles.ts +18 -4
- package/src/tools/registry.ts +15 -5
- package/src/tools/result-disposition.ts +156 -0
- package/src/tools/result-shaping.ts +59 -1
- package/src/tools/task-worktree.ts +238 -0
- package/src/tools/verify/authoring.ts +116 -55
- package/src/tools/verify/scripts.ts +62 -0
- package/src/tools/worker-evidence.ts +21 -1
- package/src/worker/spec-contract.ts +44 -3
- package/dist/chunk-EFADSJET.js +0 -18
- package/dist/chunk-HC4CLZ2Y.js +0 -68
- package/dist/memory-4ALKDJ4Q.js +0 -246
- package/src/domains/eval/metrics/chaos-stream.ts +0 -93
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
probeWorkspace
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-HVDIIIQW.js";
|
|
5
5
|
import {
|
|
6
6
|
entryBelongsToPath
|
|
7
7
|
} from "./chunk-W6GROXXM.js";
|
|
8
|
-
import {
|
|
9
|
-
protectArtifact
|
|
10
|
-
} from "./chunk-MV3K5QF2.js";
|
|
11
8
|
import {
|
|
12
9
|
isSessionEntry,
|
|
13
10
|
isSessionHeader
|
|
14
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-GOXNB3AO.js";
|
|
12
|
+
import {
|
|
13
|
+
protectArtifact
|
|
14
|
+
} from "./chunk-MV3K5QF2.js";
|
|
15
15
|
import {
|
|
16
16
|
stripTokenizerSentinels
|
|
17
17
|
} from "./chunk-CFGTUFWB.js";
|
|
@@ -33,11 +33,90 @@ import {
|
|
|
33
33
|
} from "./chunk-BNAZZHFG.js";
|
|
34
34
|
import {
|
|
35
35
|
BusChannels
|
|
36
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-OB5HIGJY.js";
|
|
37
37
|
import {
|
|
38
38
|
init_esm_shims
|
|
39
39
|
} from "./chunk-3R73A4XB.js";
|
|
40
40
|
|
|
41
|
+
// src/core/response-model-id.ts
|
|
42
|
+
init_esm_shims();
|
|
43
|
+
function emptyResponseModelIdObservationCounts() {
|
|
44
|
+
return { reportedCalls: 0, notReportedCalls: 0, notObservedCalls: 0, legacyDifferenceOnlyCalls: 0 };
|
|
45
|
+
}
|
|
46
|
+
function addResponseModelIdObservationCount(counts, observation, calls = 1) {
|
|
47
|
+
switch (observation.state) {
|
|
48
|
+
case "reported":
|
|
49
|
+
counts.reportedCalls += calls;
|
|
50
|
+
break;
|
|
51
|
+
case "not-reported":
|
|
52
|
+
counts.notReportedCalls += calls;
|
|
53
|
+
break;
|
|
54
|
+
case "not-observed":
|
|
55
|
+
counts.notObservedCalls += calls;
|
|
56
|
+
break;
|
|
57
|
+
case "legacy-difference-only":
|
|
58
|
+
counts.legacyDifferenceOnlyCalls += calls;
|
|
59
|
+
break;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
function addResponseModelIdObservationCounts(counts, additional) {
|
|
63
|
+
counts.reportedCalls += additional.reportedCalls;
|
|
64
|
+
counts.notReportedCalls += additional.notReportedCalls;
|
|
65
|
+
counts.notObservedCalls += additional.notObservedCalls;
|
|
66
|
+
counts.legacyDifferenceOnlyCalls += additional.legacyDifferenceOnlyCalls;
|
|
67
|
+
}
|
|
68
|
+
function responseModelIdObservationCountsLabel(counts) {
|
|
69
|
+
const parts = [];
|
|
70
|
+
if (counts.reportedCalls > 0) parts.push(`reported ${counts.reportedCalls}`);
|
|
71
|
+
if (counts.notReportedCalls > 0) parts.push(`not reported ${counts.notReportedCalls}`);
|
|
72
|
+
if (counts.notObservedCalls > 0) parts.push(`not observed ${counts.notObservedCalls}`);
|
|
73
|
+
if (counts.legacyDifferenceOnlyCalls > 0) parts.push(`legacy difference-only ${counts.legacyDifferenceOnlyCalls}`);
|
|
74
|
+
return parts.join(", ");
|
|
75
|
+
}
|
|
76
|
+
function nonEmptyString(value) {
|
|
77
|
+
return typeof value === "string" && value.trim().length > 0 ? value.trim() : null;
|
|
78
|
+
}
|
|
79
|
+
function parsedObservation(value) {
|
|
80
|
+
if (value === null || typeof value !== "object" || Array.isArray(value)) return null;
|
|
81
|
+
const record = value;
|
|
82
|
+
switch (record.state) {
|
|
83
|
+
case "reported": {
|
|
84
|
+
const reportedModelId = nonEmptyString(record.reportedModelId);
|
|
85
|
+
return reportedModelId === null ? null : { state: "reported", reportedModelId };
|
|
86
|
+
}
|
|
87
|
+
case "not-reported":
|
|
88
|
+
return { state: "not-reported" };
|
|
89
|
+
case "not-observed":
|
|
90
|
+
return { state: "not-observed" };
|
|
91
|
+
case "legacy-difference-only":
|
|
92
|
+
return { state: "legacy-difference-only", differingModelId: nonEmptyString(record.differingModelId) };
|
|
93
|
+
default:
|
|
94
|
+
return null;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
function responseModelIdObservationFromRecord(record, missing) {
|
|
98
|
+
const current = parsedObservation(record.responseModelIdObservation);
|
|
99
|
+
if (current !== null) return current;
|
|
100
|
+
if (Object.hasOwn(record, "servedModel")) {
|
|
101
|
+
const reportedModelId = nonEmptyString(record.servedModel);
|
|
102
|
+
return reportedModelId === null ? { state: "not-reported" } : { state: "reported", reportedModelId };
|
|
103
|
+
}
|
|
104
|
+
if (missing === "not-observed") return { state: "not-observed" };
|
|
105
|
+
return { state: "legacy-difference-only", differingModelId: nonEmptyString(record.responseModel) };
|
|
106
|
+
}
|
|
107
|
+
function attributedModelId(observation, requestedModelId, differingResponseModelId) {
|
|
108
|
+
switch (observation.state) {
|
|
109
|
+
case "reported":
|
|
110
|
+
return observation.reportedModelId;
|
|
111
|
+
case "not-reported":
|
|
112
|
+
return "unknown";
|
|
113
|
+
case "not-observed":
|
|
114
|
+
return differingResponseModelId ?? requestedModelId;
|
|
115
|
+
case "legacy-difference-only":
|
|
116
|
+
return observation.differingModelId ?? requestedModelId;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
|
|
41
120
|
// src/domains/session/compaction/session-entries.ts
|
|
42
121
|
init_esm_shims();
|
|
43
122
|
function collectSessionEntries(turns, filePath) {
|
|
@@ -116,17 +195,11 @@ var PREVIEW_MAX_CHARS = 240;
|
|
|
116
195
|
function collapseWhitespace(text) {
|
|
117
196
|
return text.replace(/\s+/g, " ").trim();
|
|
118
197
|
}
|
|
119
|
-
function
|
|
120
|
-
if (typeof payload === "string")
|
|
121
|
-
const collapsed = collapseWhitespace(payload);
|
|
122
|
-
return collapsed.length > 0 ? collapsed : null;
|
|
123
|
-
}
|
|
198
|
+
function rawMessageText(payload) {
|
|
199
|
+
if (typeof payload === "string") return payload.trim().length > 0 ? payload : null;
|
|
124
200
|
if (!payload || typeof payload !== "object") return null;
|
|
125
201
|
const obj = payload;
|
|
126
|
-
if (typeof obj.text === "string")
|
|
127
|
-
const collapsed = collapseWhitespace(obj.text);
|
|
128
|
-
if (collapsed.length > 0) return collapsed;
|
|
129
|
-
}
|
|
202
|
+
if (typeof obj.text === "string" && obj.text.trim().length > 0) return obj.text;
|
|
130
203
|
if (Array.isArray(obj.content)) {
|
|
131
204
|
const parts = [];
|
|
132
205
|
for (const part of obj.content) {
|
|
@@ -134,14 +207,41 @@ function extractUserText(payload) {
|
|
|
134
207
|
parts.push(part.text);
|
|
135
208
|
}
|
|
136
209
|
}
|
|
137
|
-
const joined =
|
|
138
|
-
if (joined.length > 0) return joined;
|
|
210
|
+
const joined = parts.join("\n");
|
|
211
|
+
if (joined.trim().length > 0) return joined;
|
|
139
212
|
}
|
|
140
213
|
return null;
|
|
141
214
|
}
|
|
215
|
+
function extractMessageText(payload) {
|
|
216
|
+
const raw = rawMessageText(payload);
|
|
217
|
+
if (raw === null) return null;
|
|
218
|
+
const collapsed = collapseWhitespace(raw);
|
|
219
|
+
return collapsed.length > 0 ? collapsed : null;
|
|
220
|
+
}
|
|
221
|
+
function operatorTextOfUserPayload(payload) {
|
|
222
|
+
if (payload && typeof payload === "object" && typeof payload.operatorText === "string") {
|
|
223
|
+
const collapsed = collapseWhitespace(payload.operatorText);
|
|
224
|
+
return collapsed.length > 0 ? collapsed : null;
|
|
225
|
+
}
|
|
226
|
+
const text = rawMessageText(payload);
|
|
227
|
+
if (text === null) return null;
|
|
228
|
+
const stripped = collapseWhitespace(stripInjectedPreamble(text));
|
|
229
|
+
return stripped.length > 0 ? stripped : null;
|
|
230
|
+
}
|
|
231
|
+
var LEADING_SYSTEM_REMINDER = /^\s*<system-reminder>[\s\S]*?<\/system-reminder>\s*/u;
|
|
232
|
+
var LEADING_SKILL_REQUEST = /^\s*\[Skill request\][\s\S]*?Only these pending skill names are allowed this turn\.[^\n]*\s*/u;
|
|
233
|
+
function stripInjectedPreamble(text) {
|
|
234
|
+
let current = text;
|
|
235
|
+
for (; ; ) {
|
|
236
|
+
const next = current.replace(LEADING_SYSTEM_REMINDER, "").replace(LEADING_SKILL_REQUEST, "");
|
|
237
|
+
if (next === current) return current;
|
|
238
|
+
current = next;
|
|
239
|
+
}
|
|
240
|
+
}
|
|
142
241
|
function scanCurrentJsonl(currentPath) {
|
|
143
242
|
const result = {
|
|
144
243
|
firstUserMessage: null,
|
|
244
|
+
firstAssistantMessage: null,
|
|
145
245
|
messageCount: 0,
|
|
146
246
|
lastTimestamp: null,
|
|
147
247
|
name: null,
|
|
@@ -156,10 +256,14 @@ function scanCurrentJsonl(currentPath) {
|
|
|
156
256
|
if (parsed.kind === "message" && parsed.role === "user") {
|
|
157
257
|
result.messageCount += 1;
|
|
158
258
|
if (result.firstUserMessage === null) {
|
|
159
|
-
const text =
|
|
259
|
+
const text = operatorTextOfUserPayload(parsed.payload);
|
|
160
260
|
if (text !== null) result.firstUserMessage = text;
|
|
161
261
|
}
|
|
162
262
|
}
|
|
263
|
+
if (parsed.kind === "message" && parsed.role === "assistant" && result.firstAssistantMessage === null) {
|
|
264
|
+
const text = extractMessageText(parsed.payload);
|
|
265
|
+
if (text !== null) result.firstAssistantMessage = text;
|
|
266
|
+
}
|
|
163
267
|
if (parsed.kind === "sessionInfo") {
|
|
164
268
|
const info = parsed;
|
|
165
269
|
if (info.name !== void 0) {
|
|
@@ -188,8 +292,9 @@ function enrichMetaForListing(meta, currentPath) {
|
|
|
188
292
|
if (scan.name) meta.name = scan.name;
|
|
189
293
|
const labelValues = [...scan.labels.values()].map((entry) => entry.label.trim()).filter((label) => label.length > 0);
|
|
190
294
|
if (labelValues.length > 0) meta.labels = labelValues;
|
|
191
|
-
|
|
192
|
-
|
|
295
|
+
const preview = scan.firstUserMessage ?? scan.firstAssistantMessage;
|
|
296
|
+
if (preview) {
|
|
297
|
+
meta.firstMessagePreview = preview.length > PREVIEW_MAX_CHARS ? `${preview.slice(0, PREVIEW_MAX_CHARS - 1)}\u2026` : preview;
|
|
193
298
|
}
|
|
194
299
|
if (scan.messageCount > 0) meta.messageCount = scan.messageCount;
|
|
195
300
|
const fallbackMtime = readMtimeIso(currentPath);
|
|
@@ -1139,7 +1244,9 @@ function ledgerUsageCalls(entries, defaults = {}) {
|
|
|
1139
1244
|
if (!usage2 || usage2.totalTokens <= 0) continue;
|
|
1140
1245
|
calls.push({
|
|
1141
1246
|
providerId: currentTarget ?? "unknown",
|
|
1142
|
-
|
|
1247
|
+
attributedModelId: currentModel ?? "unknown",
|
|
1248
|
+
requestedModelId: currentModel ?? "unknown",
|
|
1249
|
+
responseModelIdObservation: { state: "not-observed" },
|
|
1143
1250
|
input: usage2.input,
|
|
1144
1251
|
output: usage2.output,
|
|
1145
1252
|
cacheRead: usage2.cacheRead,
|
|
@@ -1177,9 +1284,14 @@ function ledgerUsageCalls(entries, defaults = {}) {
|
|
|
1177
1284
|
if (totalTokens === 0) continue;
|
|
1178
1285
|
const cost = usage.cost;
|
|
1179
1286
|
const costUsd = cost && typeof cost === "object" ? numberAt(cost, "total") : 0;
|
|
1287
|
+
const requestedModelId = currentModel ?? stringAt(record, "model") ?? "unknown";
|
|
1288
|
+
const differingResponseModelId = stringAt(record, "responseModel");
|
|
1289
|
+
const responseModelIdObservation = responseModelIdObservationFromRecord(record, "legacy-difference-only");
|
|
1180
1290
|
calls.push({
|
|
1181
1291
|
providerId: currentTarget ?? stringAt(record, "provider", "api") ?? "unknown",
|
|
1182
|
-
|
|
1292
|
+
attributedModelId: attributedModelId(responseModelIdObservation, requestedModelId, differingResponseModelId),
|
|
1293
|
+
requestedModelId,
|
|
1294
|
+
responseModelIdObservation,
|
|
1183
1295
|
input,
|
|
1184
1296
|
output,
|
|
1185
1297
|
cacheRead,
|
|
@@ -1346,6 +1458,12 @@ function compareStrings2(a, b) {
|
|
|
1346
1458
|
}
|
|
1347
1459
|
|
|
1348
1460
|
export {
|
|
1461
|
+
emptyResponseModelIdObservationCounts,
|
|
1462
|
+
addResponseModelIdObservationCount,
|
|
1463
|
+
addResponseModelIdObservationCounts,
|
|
1464
|
+
responseModelIdObservationCountsLabel,
|
|
1465
|
+
responseModelIdObservationFromRecord,
|
|
1466
|
+
attributedModelId,
|
|
1349
1467
|
collectSessionEntries,
|
|
1350
1468
|
readAuditRows,
|
|
1351
1469
|
readSessionEntriesForId,
|
|
@@ -1357,4 +1475,4 @@ export {
|
|
|
1357
1475
|
ledgerUsageCalls,
|
|
1358
1476
|
SessionDomainModule
|
|
1359
1477
|
};
|
|
1360
|
-
//# sourceMappingURL=chunk-
|
|
1478
|
+
//# sourceMappingURL=chunk-6TUKSZVF.js.map
|
|
@@ -1,20 +1,22 @@
|
|
|
1
1
|
import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
assistantTextFromEvent
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-VREKEFLL.js";
|
|
5
5
|
import {
|
|
6
|
-
compileExecutionPlan,
|
|
7
6
|
durableAssistantTextFromEvent
|
|
8
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-UUANF5CR.js";
|
|
8
|
+
import {
|
|
9
|
+
compileExecutionPlan
|
|
10
|
+
} from "./chunk-M4AKACEO.js";
|
|
9
11
|
import {
|
|
10
12
|
deriveExecutionRole
|
|
11
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-UND3GU2L.js";
|
|
12
14
|
import {
|
|
13
15
|
truncateUtf8
|
|
14
16
|
} from "./chunk-6XLNIQDB.js";
|
|
15
17
|
import {
|
|
16
18
|
BusChannels
|
|
17
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-OB5HIGJY.js";
|
|
18
20
|
import {
|
|
19
21
|
init_esm_shims
|
|
20
22
|
} from "./chunk-3R73A4XB.js";
|
|
@@ -274,4 +276,4 @@ export {
|
|
|
274
276
|
compileScoutTransition,
|
|
275
277
|
createDispatchRunEventRegistry
|
|
276
278
|
};
|
|
277
|
-
//# sourceMappingURL=chunk-
|
|
279
|
+
//# sourceMappingURL=chunk-AB4XIIVB.js.map
|
|
@@ -2,25 +2,28 @@ import { createRequire as __clioCreateRequire } from "node:module"; const requir
|
|
|
2
2
|
import {
|
|
3
3
|
readStrictLayeredSettings,
|
|
4
4
|
updateLayeredSettings
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-YD734TPH.js";
|
|
6
|
+
import {
|
|
7
|
+
assertAgentIdNamespace
|
|
8
|
+
} from "./chunk-DR52UMZW.js";
|
|
6
9
|
import {
|
|
7
10
|
formatSettingsFailure,
|
|
8
11
|
settingsPath
|
|
9
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-UHXRNZ2J.js";
|
|
10
13
|
import {
|
|
11
14
|
setGitCommitAttributionEnabled
|
|
12
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-D4MDIG46.js";
|
|
13
16
|
import {
|
|
14
17
|
resolveShutdownHookBudgetMs,
|
|
15
18
|
runWithBudget,
|
|
16
19
|
writeShutdownNotice
|
|
17
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-X2KV5FXT.js";
|
|
18
21
|
import {
|
|
19
22
|
getSharedBus
|
|
20
23
|
} from "./chunk-ZGVHUX3M.js";
|
|
21
24
|
import {
|
|
22
25
|
BusChannels
|
|
23
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-OB5HIGJY.js";
|
|
24
27
|
import {
|
|
25
28
|
init_esm_shims
|
|
26
29
|
} from "./chunk-3R73A4XB.js";
|
|
@@ -138,18 +141,6 @@ init_esm_shims();
|
|
|
138
141
|
// src/domains/config/extension.ts
|
|
139
142
|
init_esm_shims();
|
|
140
143
|
|
|
141
|
-
// src/domains/config/agent-namespace.ts
|
|
142
|
-
init_esm_shims();
|
|
143
|
-
function assertAgentIdNamespace(nativeRecipes, acpDelegates) {
|
|
144
|
-
const native = new Set(nativeRecipes.map((recipe) => recipe.id));
|
|
145
|
-
const collision = acpDelegates.find((delegate) => native.has(delegate.id));
|
|
146
|
-
if (collision !== void 0) {
|
|
147
|
-
throw new Error(
|
|
148
|
-
`agent id collision: native recipe '${collision.id}' and ACP delegation agent '${collision.id}' share one namespace`
|
|
149
|
-
);
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
|
|
153
144
|
// src/domains/config/classify.ts
|
|
154
145
|
init_esm_shims();
|
|
155
146
|
var HOT_RELOAD_FIELDS = /* @__PURE__ */ new Set([
|
|
@@ -158,7 +149,11 @@ var HOT_RELOAD_FIELDS = /* @__PURE__ */ new Set([
|
|
|
158
149
|
"autonomy",
|
|
159
150
|
"modelSelector",
|
|
160
151
|
"terminal.smoothStreaming",
|
|
161
|
-
"attribution.gitCommits"
|
|
152
|
+
"attribution.gitCommits",
|
|
153
|
+
// The watchdog registration reads its settings live on every trigger, so
|
|
154
|
+
// enabling it, retargeting it, or changing its cadence takes effect on the
|
|
155
|
+
// next turn boundary without a restart or a session-routing patch.
|
|
156
|
+
"watchdog"
|
|
162
157
|
]);
|
|
163
158
|
var NEXT_TURN_FIELDS = /* @__PURE__ */ new Set([
|
|
164
159
|
"identity",
|
|
@@ -380,8 +375,7 @@ function createConfigDomainModule(initialSettings) {
|
|
|
380
375
|
|
|
381
376
|
export {
|
|
382
377
|
loadDomains,
|
|
383
|
-
assertAgentIdNamespace,
|
|
384
378
|
ConfigDomainModule,
|
|
385
379
|
createConfigDomainModule
|
|
386
380
|
};
|
|
387
|
-
//# sourceMappingURL=chunk-
|
|
381
|
+
//# sourceMappingURL=chunk-BMWK7ZIZ.js.map
|
|
@@ -159,24 +159,38 @@ function optionalString(value) {
|
|
|
159
159
|
function indexAudit(value) {
|
|
160
160
|
return value === "pass" || value === "warn" || value === "fail" || value === "unknown" ? value : void 0;
|
|
161
161
|
}
|
|
162
|
-
function
|
|
162
|
+
function parseMarketplaceIndex(indexPath, diagnostics = []) {
|
|
163
163
|
try {
|
|
164
164
|
const parsed = JSON.parse(readFileSync(indexPath, "utf8"));
|
|
165
165
|
const rawSkills = Array.isArray(parsed) ? parsed : parsed && typeof parsed === "object" && Array.isArray(parsed.skills) ? parsed.skills : [];
|
|
166
|
-
return rawSkills.filter(isIndexSkill).
|
|
166
|
+
return rawSkills.filter(isIndexSkill).flatMap((skill) => {
|
|
167
167
|
const record = skill;
|
|
168
168
|
const version = optionalString(record.version);
|
|
169
169
|
const audit = indexAudit(record.audit);
|
|
170
170
|
const category = optionalString(record.category);
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
171
|
+
if (record.kind !== void 0 && !["skill", "agent", "prompt", "fleet"].includes(String(record.kind))) {
|
|
172
|
+
diagnostics.push(`skill marketplace index entry has unsupported kind: ${skill.name}`);
|
|
173
|
+
return [];
|
|
174
|
+
}
|
|
175
|
+
if (record.requires !== void 0 && (!Array.isArray(record.requires) || record.requires.some((entry) => typeof entry !== "string"))) {
|
|
176
|
+
diagnostics.push(`library_requirement_malformed: ${skill.name}`);
|
|
177
|
+
return [];
|
|
178
|
+
}
|
|
179
|
+
const kind = record.kind === "agent" || record.kind === "prompt" || record.kind === "fleet" ? record.kind : "skill";
|
|
180
|
+
const requires = Array.isArray(record.requires) ? record.requires.filter((entry) => typeof entry === "string") : void 0;
|
|
181
|
+
return [
|
|
182
|
+
{
|
|
183
|
+
kind,
|
|
184
|
+
name: skill.name.trim(),
|
|
185
|
+
description: skill.description.trim(),
|
|
186
|
+
sourceUrl: skill.sourceUrl.trim(),
|
|
187
|
+
...version ? { version } : {},
|
|
188
|
+
...audit ? { audit } : {},
|
|
189
|
+
...category ? { category } : {},
|
|
190
|
+
...requires ? { requires } : {},
|
|
191
|
+
origin: "index"
|
|
192
|
+
}
|
|
193
|
+
];
|
|
180
194
|
});
|
|
181
195
|
} catch (err) {
|
|
182
196
|
diagnostics.push(`skill marketplace index unreadable: ${err instanceof Error ? err.message : String(err)}`);
|
|
@@ -228,7 +242,8 @@ function catalogEntry(skill, catalogDir) {
|
|
|
228
242
|
...version ? { version } : {},
|
|
229
243
|
...skill.provenance?.audit ? { audit: skill.provenance.audit } : {},
|
|
230
244
|
...category ? { category } : {},
|
|
231
|
-
origin: "catalog"
|
|
245
|
+
origin: "catalog",
|
|
246
|
+
kind: "skill"
|
|
232
247
|
};
|
|
233
248
|
}
|
|
234
249
|
function catalogSkills(dir, diagnostics) {
|
|
@@ -253,7 +268,7 @@ function discoverMarketplaceSkills(options = {}) {
|
|
|
253
268
|
const indexPath = options.indexPath === null ? null : options.indexPath ?? process.env.CLIO_CODER_SKILL_MARKETPLACE_INDEX ?? null;
|
|
254
269
|
const resolvedIndexPath = indexPath ?? defaultIndexPath();
|
|
255
270
|
if (options.indexPath !== null && resolvedIndexPath && existsSync(resolvedIndexPath)) {
|
|
256
|
-
for (const skill of
|
|
271
|
+
for (const skill of parseMarketplaceIndex(resolvedIndexPath, diagnostics)) {
|
|
257
272
|
if (seen.has(skill.name)) continue;
|
|
258
273
|
seen.add(skill.name);
|
|
259
274
|
skills.push(skill);
|
|
@@ -1167,6 +1182,7 @@ function updateSkills(input = {}) {
|
|
|
1167
1182
|
}
|
|
1168
1183
|
|
|
1169
1184
|
export {
|
|
1185
|
+
normalizedSkillHash,
|
|
1170
1186
|
updateSkills,
|
|
1171
1187
|
MARKETPLACE_UNCONFIGURED,
|
|
1172
1188
|
discoverMarketplaceSkills,
|
|
@@ -1179,4 +1195,4 @@ export {
|
|
|
1179
1195
|
expandSkillInvocationInput,
|
|
1180
1196
|
parsePendingSkillRequests
|
|
1181
1197
|
};
|
|
1182
|
-
//# sourceMappingURL=chunk-
|
|
1198
|
+
//# sourceMappingURL=chunk-C4JBQ5SR.js.map
|