@skaile/workspaces 5.19.0 → 6.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +56 -0
- package/README.md +8 -8
- package/dist/app-sdk/index.js +1 -1
- package/dist/{asset-feeds-QGLI3AXI.js → asset-feeds-HJFV7UPW.js} +32 -24
- package/dist/asset-feeds-HJFV7UPW.js.map +1 -0
- package/dist/asset-manager/catalog-deployer.js +12 -12
- package/dist/asset-manager/index.js +19 -19
- package/dist/asset-manager/installer.js +14 -14
- package/dist/asset-manager/renderers.js +13 -13
- package/dist/asset-manager/src/index.d.ts +214 -27
- package/dist/asset-manager/src/index.d.ts.map +1 -1
- package/dist/asset-manager/src/install-agent.d.ts +2 -2
- package/dist/asset-manager/src/install-agent.d.ts.map +1 -1
- package/dist/asset-manager/src/install-instances.d.ts +8 -8
- package/dist/asset-manager/src/install-instances.d.ts.map +1 -1
- package/dist/asset-manager/src/installer.d.ts +34 -3
- package/dist/asset-manager/src/installer.d.ts.map +1 -1
- package/dist/asset-manager/src/mcp-config.d.ts +35 -14
- package/dist/asset-manager/src/mcp-config.d.ts.map +1 -1
- package/dist/asset-manager/src/renderers.d.ts +12 -12
- package/dist/asset-manager/src/renderers.d.ts.map +1 -1
- package/dist/bridge/codex-app-server.js +2 -2
- package/dist/bridge/harnesses/claude-sdk.d.ts +2 -0
- package/dist/bridge/{drivers → harnesses}/claude-sdk.js +69 -73
- package/dist/bridge/harnesses/claude-sdk.js.map +1 -0
- package/dist/bridge/{drivers/gemini.d.ts → harnesses/codex.d.ts} +1 -1
- package/dist/bridge/{drivers → harnesses}/codex.js +53 -53
- package/dist/bridge/harnesses/codex.js.map +1 -0
- package/dist/bridge/{drivers/claude-sdk.d.ts → harnesses/continue.d.ts} +1 -1
- package/dist/bridge/{drivers → harnesses}/continue.js +30 -30
- package/dist/bridge/harnesses/continue.js.map +1 -0
- package/dist/bridge/{drivers → harnesses}/echo.d.ts +1 -1
- package/dist/bridge/{drivers → harnesses}/echo.js +27 -27
- package/dist/bridge/harnesses/echo.js.map +1 -0
- package/dist/bridge/{drivers/continue.d.ts → harnesses/gemini.d.ts} +1 -1
- package/dist/bridge/harnesses/gemini.js +18 -0
- package/dist/bridge/{drivers → harnesses}/goose.d.ts +1 -1
- package/dist/bridge/{drivers → harnesses}/goose.js +30 -30
- package/dist/bridge/harnesses/goose.js.map +1 -0
- package/dist/bridge/{drivers → harnesses}/omp.d.ts +1 -1
- package/dist/bridge/{drivers → harnesses}/omp.js +31 -31
- package/dist/bridge/harnesses/omp.js.map +1 -0
- package/dist/bridge/{drivers → harnesses}/opencode.d.ts +1 -1
- package/dist/bridge/{drivers → harnesses}/opencode.js +31 -31
- package/dist/bridge/harnesses/opencode.js.map +1 -0
- package/dist/bridge/{drivers → harnesses}/qwen.d.ts +1 -1
- package/dist/bridge/{drivers → harnesses}/qwen.js +20 -20
- package/dist/bridge/harnesses/qwen.js.map +1 -0
- package/dist/bridge/index.js +25 -25
- package/dist/bridge/src/agent-exec.d.ts +2 -2
- package/dist/bridge/src/agent-transcript.d.ts +1 -1
- package/dist/bridge/src/agent-transcript.d.ts.map +1 -1
- package/dist/bridge/src/approval-card.d.ts +3 -3
- package/dist/bridge/src/capability-dispatch.d.ts +5 -5
- package/dist/bridge/src/claude-sdk-surface.d.ts +17 -0
- package/dist/bridge/src/claude-sdk-surface.d.ts.map +1 -0
- package/dist/bridge/src/cloud.d.ts +4 -4
- package/dist/bridge/src/codex/config-toml.d.ts +3 -3
- package/dist/bridge/src/codex/friendly-error.d.ts +1 -1
- package/dist/bridge/src/codex/friendly-error.d.ts.map +1 -1
- package/dist/bridge/src/codex/{managed-driver.d.ts → managed-harness.d.ts} +5 -5
- package/dist/bridge/src/codex/managed-harness.d.ts.map +1 -0
- package/dist/bridge/src/codex/native-approvals.d.ts +1 -1
- package/dist/bridge/src/codex/native-approvals.d.ts.map +1 -1
- package/dist/bridge/src/error-classifier.d.ts +7 -7
- package/dist/bridge/src/{driver-capabilities.d.ts → harness-capabilities.d.ts} +18 -18
- package/dist/bridge/src/harness-capabilities.d.ts.map +1 -0
- package/dist/bridge/src/harness-model-check.d.ts +40 -0
- package/dist/bridge/src/harness-model-check.d.ts.map +1 -0
- package/dist/bridge/src/{drivers → harnesses}/_subprocess-cli.d.ts +8 -8
- package/dist/bridge/src/harnesses/_subprocess-cli.d.ts.map +1 -0
- package/dist/bridge/src/{drivers → harnesses}/claude-context-usage.d.ts +5 -5
- package/dist/bridge/src/harnesses/claude-context-usage.d.ts.map +1 -0
- package/dist/bridge/src/{drivers → harnesses}/claude-sdk.d.ts +27 -27
- package/dist/bridge/src/harnesses/claude-sdk.d.ts.map +1 -0
- package/dist/bridge/src/{drivers → harnesses}/claude-self-turns.d.ts +5 -5
- package/dist/bridge/src/harnesses/claude-self-turns.d.ts.map +1 -0
- package/dist/bridge/src/{drivers → harnesses}/claude-tool-allowlist.d.ts +4 -4
- package/dist/bridge/src/harnesses/claude-tool-allowlist.d.ts.map +1 -0
- package/dist/bridge/src/{drivers → harnesses}/codex.d.ts +14 -14
- package/dist/bridge/src/harnesses/codex.d.ts.map +1 -0
- package/dist/bridge/src/{drivers → harnesses}/continue.d.ts +12 -12
- package/dist/bridge/src/harnesses/continue.d.ts.map +1 -0
- package/dist/bridge/src/{drivers → harnesses}/echo.d.ts +16 -16
- package/dist/bridge/src/harnesses/echo.d.ts.map +1 -0
- package/dist/bridge/src/{drivers → harnesses}/flow-script.d.ts +9 -9
- package/dist/bridge/src/harnesses/flow-script.d.ts.map +1 -0
- package/dist/bridge/src/{drivers → harnesses}/gemini.d.ts +15 -15
- package/dist/bridge/src/harnesses/gemini.d.ts.map +1 -0
- package/dist/bridge/src/{drivers → harnesses}/goose.d.ts +10 -10
- package/dist/bridge/src/harnesses/goose.d.ts.map +1 -0
- package/dist/bridge/src/{drivers → harnesses}/omp-models-yml.d.ts +12 -12
- package/dist/bridge/src/harnesses/omp-models-yml.d.ts.map +1 -0
- package/dist/bridge/src/{drivers → harnesses}/omp.d.ts +23 -23
- package/dist/bridge/src/harnesses/omp.d.ts.map +1 -0
- package/dist/bridge/src/{drivers → harnesses}/opencode.d.ts +11 -11
- package/dist/bridge/src/harnesses/opencode.d.ts.map +1 -0
- package/dist/bridge/src/{drivers → harnesses}/qwen.d.ts +12 -12
- package/dist/bridge/src/harnesses/qwen.d.ts.map +1 -0
- package/dist/bridge/src/{drivers → harnesses}/recovery-policy.d.ts +4 -4
- package/dist/bridge/src/harnesses/recovery-policy.d.ts.map +1 -0
- package/dist/bridge/src/{drivers → harnesses}/resume-probe.d.ts +3 -3
- package/dist/bridge/src/harnesses/resume-probe.d.ts.map +1 -0
- package/dist/bridge/src/{drivers → harnesses}/sanitize-assistant-text.d.ts +1 -1
- package/dist/bridge/src/harnesses/sanitize-assistant-text.d.ts.map +1 -0
- package/dist/bridge/src/{drivers → harnesses}/scrub-transcript.d.ts +1 -1
- package/dist/bridge/src/harnesses/scrub-transcript.d.ts.map +1 -0
- package/dist/bridge/src/index.d.ts +5 -4
- package/dist/bridge/src/index.d.ts.map +1 -1
- package/dist/bridge/src/logger.d.ts +4 -4
- package/dist/bridge/src/models.d.ts +1 -1
- package/dist/bridge/src/normalizer.d.ts +5 -3
- package/dist/bridge/src/normalizer.d.ts.map +1 -1
- package/dist/bridge/src/provider-materialize/continue-config-yaml.d.ts +5 -5
- package/dist/bridge/src/provider-materialize/continue-config-yaml.d.ts.map +1 -1
- package/dist/bridge/src/provider-materialize/credential-env.d.ts +3 -3
- package/dist/bridge/src/provider-materialize/{env-drivers.d.ts → env-harnesses.d.ts} +19 -19
- package/dist/bridge/src/provider-materialize/env-harnesses.d.ts.map +1 -0
- package/dist/bridge/src/provider-materialize/goose-custom-providers.d.ts +5 -5
- package/dist/bridge/src/provider-materialize/goose-custom-providers.d.ts.map +1 -1
- package/dist/bridge/src/provider-materialize/opencode-config.d.ts +7 -7
- package/dist/bridge/src/provider-materialize/opencode-config.d.ts.map +1 -1
- package/dist/bridge/src/provider-materialize/session-config-home.d.ts +5 -5
- package/dist/bridge/src/provider-materialize/session-config-home.d.ts.map +1 -1
- package/dist/bridge/src/provider-registry-derive.d.ts +4 -4
- package/dist/bridge/src/provider-registry-derive.d.ts.map +1 -1
- package/dist/bridge/src/reconfigure-ledger.d.ts +8 -8
- package/dist/bridge/src/reconfigure-ledger.d.ts.map +1 -1
- package/dist/bridge/src/registry.d.ts +34 -41
- package/dist/bridge/src/registry.d.ts.map +1 -1
- package/dist/bridge/src/runner-private-env.d.ts +2 -2
- package/dist/bridge/src/runtime.d.ts +11 -11
- package/dist/bridge/src/runtime.d.ts.map +1 -1
- package/dist/bridge/src/types.d.ts +158 -158
- package/dist/bridge/src/types.d.ts.map +1 -1
- package/dist/{chunk-7NT4F6SR.js → chunk-2LAPHLDH.js} +587 -521
- package/dist/chunk-2LAPHLDH.js.map +1 -0
- package/dist/{chunk-25ZVWL2R.js → chunk-3GMOPFWH.js} +4 -4
- package/dist/{chunk-25ZVWL2R.js.map → chunk-3GMOPFWH.js.map} +1 -1
- package/dist/{chunk-X5YPJV4N.js → chunk-3MWQKQUB.js} +2 -2
- package/dist/{chunk-X5YPJV4N.js.map → chunk-3MWQKQUB.js.map} +1 -1
- package/dist/{chunk-EPBKISS5.js → chunk-3TG2NV2F.js} +2 -2
- package/dist/chunk-3TG2NV2F.js.map +1 -0
- package/dist/{chunk-L2AMXONH.js → chunk-3X7VTCPG.js} +2 -2
- package/dist/chunk-3X7VTCPG.js.map +1 -0
- package/dist/{chunk-VIM3PWZM.js → chunk-4FVIT5DI.js} +3 -3
- package/dist/{chunk-VIM3PWZM.js.map → chunk-4FVIT5DI.js.map} +1 -1
- package/dist/{chunk-IF6IA3PZ.js → chunk-4MUDQCBP.js} +4 -4
- package/dist/{chunk-IF6IA3PZ.js.map → chunk-4MUDQCBP.js.map} +1 -1
- package/dist/{chunk-MKRWN7XP.js → chunk-5J4NPGFM.js} +5 -5
- package/dist/chunk-5J4NPGFM.js.map +1 -0
- package/dist/{chunk-5TBFN46Z.js → chunk-5KRMNUL4.js} +4 -4
- package/dist/chunk-5KRMNUL4.js.map +1 -0
- package/dist/{chunk-7SCS64BG.js → chunk-5Y2KGB4H.js} +109 -74
- package/dist/chunk-5Y2KGB4H.js.map +1 -0
- package/dist/{chunk-YIF2IJUA.js → chunk-6GWSDPBP.js} +3 -3
- package/dist/{chunk-YIF2IJUA.js.map → chunk-6GWSDPBP.js.map} +1 -1
- package/dist/{chunk-WST6UITC.js → chunk-6YR4ALVX.js} +17 -17
- package/dist/chunk-6YR4ALVX.js.map +1 -0
- package/dist/{chunk-YROR332M.js → chunk-7DN6JKP2.js} +2 -2
- package/dist/chunk-7DN6JKP2.js.map +1 -0
- package/dist/{chunk-IZCR27MU.js → chunk-7EKQDY2T.js} +3 -3
- package/dist/chunk-7EKQDY2T.js.map +1 -0
- package/dist/chunk-7HX6FNKL.js +317 -0
- package/dist/chunk-7HX6FNKL.js.map +1 -0
- package/dist/{chunk-COJIL7G4.js → chunk-7LP7RCZI.js} +7 -7
- package/dist/chunk-7LP7RCZI.js.map +1 -0
- package/dist/{chunk-2PBSAH3Z.js → chunk-AATHJRKL.js} +4 -4
- package/dist/{chunk-2PBSAH3Z.js.map → chunk-AATHJRKL.js.map} +1 -1
- package/dist/{chunk-C7WBGSBV.js → chunk-ABFPSVIS.js} +10 -10
- package/dist/chunk-ABFPSVIS.js.map +1 -0
- package/dist/{chunk-ICSCSM5D.js → chunk-ADPM6AYF.js} +3 -3
- package/dist/{chunk-ICSCSM5D.js.map → chunk-ADPM6AYF.js.map} +1 -1
- package/dist/{chunk-WOIRYY5L.js → chunk-AITJ7ELM.js} +141 -27
- package/dist/chunk-AITJ7ELM.js.map +1 -0
- package/dist/{chunk-HU5HVKY7.js → chunk-ASWTQQ7E.js} +4 -4
- package/dist/{chunk-HU5HVKY7.js.map → chunk-ASWTQQ7E.js.map} +1 -1
- package/dist/{chunk-RO6VOM6Z.js → chunk-AZ2H6R5I.js} +51 -25
- package/dist/chunk-AZ2H6R5I.js.map +1 -0
- package/dist/{chunk-I7TWVK6N.js → chunk-BBBCJSSU.js} +4 -4
- package/dist/{chunk-I7TWVK6N.js.map → chunk-BBBCJSSU.js.map} +1 -1
- package/dist/{chunk-AJ7EGIFR.js → chunk-BIRW3HOG.js} +3 -3
- package/dist/chunk-BIRW3HOG.js.map +1 -0
- package/dist/{chunk-FPHNJE4M.js → chunk-CEKW3KXP.js} +91 -30
- package/dist/chunk-CEKW3KXP.js.map +1 -0
- package/dist/{chunk-F6AA42GW.js → chunk-COYF6IG2.js} +5 -5
- package/dist/{chunk-F6AA42GW.js.map → chunk-COYF6IG2.js.map} +1 -1
- package/dist/{chunk-HT35SQZD.js → chunk-DGTI65OC.js} +30 -30
- package/dist/chunk-DGTI65OC.js.map +1 -0
- package/dist/{chunk-W4Q6CKJ5.js → chunk-DIGFA7Z5.js} +11 -11
- package/dist/chunk-DIGFA7Z5.js.map +1 -0
- package/dist/{chunk-335ENCCS.js → chunk-E572OHGY.js} +2 -2
- package/dist/{chunk-335ENCCS.js.map → chunk-E572OHGY.js.map} +1 -1
- package/dist/{chunk-Y5MBW5EU.js → chunk-EJPMNDTP.js} +3 -3
- package/dist/{chunk-Y5MBW5EU.js.map → chunk-EJPMNDTP.js.map} +1 -1
- package/dist/chunk-EX3GLAL6.js +31 -0
- package/dist/chunk-EX3GLAL6.js.map +1 -0
- package/dist/{chunk-XWOPZW26.js → chunk-FKQNBCDW.js} +38 -38
- package/dist/chunk-FKQNBCDW.js.map +1 -0
- package/dist/{chunk-6E6PKKAD.js → chunk-G5SUWZEU.js} +18 -8
- package/dist/chunk-G5SUWZEU.js.map +1 -0
- package/dist/{chunk-2GXSSZAM.js → chunk-GNZBFSRB.js} +12 -12
- package/dist/chunk-GNZBFSRB.js.map +1 -0
- package/dist/{chunk-PYJS5K7V.js → chunk-HMISULVD.js} +5 -5
- package/dist/{chunk-PYJS5K7V.js.map → chunk-HMISULVD.js.map} +1 -1
- package/dist/{chunk-IP2IPMEH.js → chunk-HPMQRAIF.js} +18 -18
- package/dist/chunk-HPMQRAIF.js.map +1 -0
- package/dist/{chunk-MRHVPQNO.js → chunk-HWNK3F3X.js} +1015 -189
- package/dist/chunk-HWNK3F3X.js.map +1 -0
- package/dist/{chunk-ZQSOJH6I.js → chunk-IHFGPHCT.js} +141 -341
- package/dist/chunk-IHFGPHCT.js.map +1 -0
- package/dist/{chunk-CQJH4G2K.js → chunk-ILLTBKDJ.js} +101 -102
- package/dist/chunk-ILLTBKDJ.js.map +1 -0
- package/dist/{chunk-FKU57Q5Q.js → chunk-IRYKRKVQ.js} +3 -3
- package/dist/{chunk-FKU57Q5Q.js.map → chunk-IRYKRKVQ.js.map} +1 -1
- package/dist/{chunk-J24CY3PF.js → chunk-J72MO2WA.js} +39 -39
- package/dist/chunk-J72MO2WA.js.map +1 -0
- package/dist/{chunk-Y56YIT6J.js → chunk-JCPD4QRM.js} +4 -4
- package/dist/chunk-JCPD4QRM.js.map +1 -0
- package/dist/{chunk-X3RMRJNR.js → chunk-JRN5QF4C.js} +8 -3
- package/dist/chunk-JRN5QF4C.js.map +1 -0
- package/dist/{chunk-K4O6L3WH.js → chunk-KNY356I3.js} +3 -3
- package/dist/{chunk-K4O6L3WH.js.map → chunk-KNY356I3.js.map} +1 -1
- package/dist/{chunk-XJVBUDDJ.js → chunk-KUQAJVYT.js} +8 -8
- package/dist/chunk-KUQAJVYT.js.map +1 -0
- package/dist/{chunk-4ZTPYIBE.js → chunk-KW37WNXY.js} +12 -12
- package/dist/chunk-KW37WNXY.js.map +1 -0
- package/dist/{chunk-MJHSLODD.js → chunk-LSI2IVFT.js} +2 -2
- package/dist/chunk-LSI2IVFT.js.map +1 -0
- package/dist/{chunk-WDXZA7QW.js → chunk-LSSYC5IC.js} +2 -2
- package/dist/{chunk-WDXZA7QW.js.map → chunk-LSSYC5IC.js.map} +1 -1
- package/dist/{chunk-WG6V4ISA.js → chunk-NB7SYQYP.js} +7 -7
- package/dist/{chunk-WG6V4ISA.js.map → chunk-NB7SYQYP.js.map} +1 -1
- package/dist/{chunk-EAZECHPM.js → chunk-NBAGV6L2.js} +5 -5
- package/dist/chunk-NBAGV6L2.js.map +1 -0
- package/dist/{chunk-JTOWA6RS.js → chunk-NUA33BYO.js} +181 -64
- package/dist/chunk-NUA33BYO.js.map +1 -0
- package/dist/{chunk-A6SMCEEE.js → chunk-QAKUD6QN.js} +11 -11
- package/dist/{chunk-A6SMCEEE.js.map → chunk-QAKUD6QN.js.map} +1 -1
- package/dist/{chunk-QG6GHTRM.js → chunk-QEULL4Q3.js} +8 -8
- package/dist/chunk-QEULL4Q3.js.map +1 -0
- package/dist/{chunk-ZX4KRWRB.js → chunk-QSYQOTWN.js} +4 -4
- package/dist/{chunk-ZX4KRWRB.js.map → chunk-QSYQOTWN.js.map} +1 -1
- package/dist/{chunk-X4ZZTHU3.js → chunk-RDTLPOPD.js} +4 -4
- package/dist/{chunk-X4ZZTHU3.js.map → chunk-RDTLPOPD.js.map} +1 -1
- package/dist/{chunk-GOCWM7FN.js → chunk-RHN5MRQO.js} +21 -4
- package/dist/chunk-RHN5MRQO.js.map +1 -0
- package/dist/{chunk-XM6T2AZ2.js → chunk-S2XHGWQC.js} +162 -124
- package/dist/chunk-S2XHGWQC.js.map +1 -0
- package/dist/{chunk-VJ7NU7GD.js → chunk-SVTMNSPI.js} +23 -6
- package/dist/chunk-SVTMNSPI.js.map +1 -0
- package/dist/{chunk-I37INEWE.js → chunk-UI745XC3.js} +10 -23
- package/dist/chunk-UI745XC3.js.map +1 -0
- package/dist/{chunk-N46LQR46.js → chunk-VMVDAZLA.js} +53 -30
- package/dist/chunk-VMVDAZLA.js.map +1 -0
- package/dist/{chunk-IG5LZ3WU.js → chunk-VTETQCR6.js} +10 -10
- package/dist/chunk-VTETQCR6.js.map +1 -0
- package/dist/{chunk-EFLKSMCO.js → chunk-VUJXZDCY.js} +5 -5
- package/dist/{chunk-EFLKSMCO.js.map → chunk-VUJXZDCY.js.map} +1 -1
- package/dist/{chunk-H6UVIKQ2.js → chunk-VYVTEMAW.js} +3 -3
- package/dist/{chunk-H6UVIKQ2.js.map → chunk-VYVTEMAW.js.map} +1 -1
- package/dist/{chunk-M3WPBTGJ.js → chunk-WD3L5QSU.js} +2 -2
- package/dist/{chunk-M3WPBTGJ.js.map → chunk-WD3L5QSU.js.map} +1 -1
- package/dist/{chunk-R6O6YWU7.js → chunk-WYZXSJBK.js} +3 -3
- package/dist/{chunk-R6O6YWU7.js.map → chunk-WYZXSJBK.js.map} +1 -1
- package/dist/{chunk-R4I3VBSS.js → chunk-X3YGUKCG.js} +5 -5
- package/dist/{chunk-R4I3VBSS.js.map → chunk-X3YGUKCG.js.map} +1 -1
- package/dist/{chunk-RPZVHXQ3.js → chunk-XFIEVEU7.js} +4 -4
- package/dist/chunk-XFIEVEU7.js.map +1 -0
- package/dist/{chunk-VSZWNUZC.js → chunk-XGULGQA3.js} +4 -4
- package/dist/chunk-XGULGQA3.js.map +1 -0
- package/dist/{chunk-Q6E6FM7P.js → chunk-XKNXPLKR.js} +6 -6
- package/dist/{chunk-Q6E6FM7P.js.map → chunk-XKNXPLKR.js.map} +1 -1
- package/dist/{chunk-7XSAW5OC.js → chunk-YLLVSR2U.js} +4 -4
- package/dist/{chunk-7XSAW5OC.js.map → chunk-YLLVSR2U.js.map} +1 -1
- package/dist/{chunk-6Z5KTFJT.js → chunk-Z3VKUWAX.js} +3 -3
- package/dist/{chunk-6Z5KTFJT.js.map → chunk-Z3VKUWAX.js.map} +1 -1
- package/dist/{chunk-5BEFNLOR.js → chunk-Z7ZEZZB6.js} +8 -8
- package/dist/chunk-Z7ZEZZB6.js.map +1 -0
- package/dist/{chunk-2LSDMJI2.js → chunk-ZAELRYKS.js} +4 -4
- package/dist/{chunk-2LSDMJI2.js.map → chunk-ZAELRYKS.js.map} +1 -1
- package/dist/{chunk-UQ33Y4DM.js → chunk-ZBHZLWV3.js} +4 -4
- package/dist/{chunk-UQ33Y4DM.js.map → chunk-ZBHZLWV3.js.map} +1 -1
- package/dist/{chunk-TIIXG3PN.js → chunk-ZDLUQLI6.js} +4 -4
- package/dist/{chunk-TIIXG3PN.js.map → chunk-ZDLUQLI6.js.map} +1 -1
- package/dist/{chunk-PHRNUTSG.js → chunk-ZFUZ5AKM.js} +4 -4
- package/dist/{chunk-PHRNUTSG.js.map → chunk-ZFUZ5AKM.js.map} +1 -1
- package/dist/{chunk-V257LUBM.js → chunk-ZHGKAZJ7.js} +251 -26
- package/dist/chunk-ZHGKAZJ7.js.map +1 -0
- package/dist/claude-code-RE46FJXI.js +10 -0
- package/dist/{claude-code-2PU7TITZ.js.map → claude-code-RE46FJXI.js.map} +1 -1
- package/dist/cli/index.js +1066 -647
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/src/agent-pins.d.ts +11 -0
- package/dist/cli/src/agent-pins.d.ts.map +1 -1
- package/dist/cli/src/commands/catalog.d.ts +4 -4
- package/dist/cli/src/commands/catalog.d.ts.map +1 -1
- package/dist/cli/src/commands/complete-resolvers.d.ts.map +1 -1
- package/dist/cli/src/commands/config.d.ts +2 -2
- package/dist/cli/src/commands/config.d.ts.map +1 -1
- package/dist/cli/src/commands/diff.d.ts.map +1 -1
- package/dist/cli/src/commands/harness.d.ts +24 -0
- package/dist/cli/src/commands/harness.d.ts.map +1 -0
- package/dist/cli/src/commands/integration.d.ts +1 -1
- package/dist/cli/src/commands/integration.d.ts.map +1 -1
- package/dist/cli/src/commands/library-cmd.d.ts.map +1 -1
- package/dist/cli/src/commands/library-index.d.ts +20 -2
- package/dist/cli/src/commands/library-index.d.ts.map +1 -1
- package/dist/cli/src/commands/library-publish.d.ts.map +1 -1
- package/dist/cli/src/commands/migrate-assets.d.ts.map +1 -1
- package/dist/cli/src/commands/migrate-files.d.ts +14 -0
- package/dist/cli/src/commands/migrate-files.d.ts.map +1 -1
- package/dist/cli/src/commands/migrate-harness.d.ts +49 -0
- package/dist/cli/src/commands/migrate-harness.d.ts.map +1 -0
- package/dist/cli/src/commands/migrate.d.ts +4 -2
- package/dist/cli/src/commands/migrate.d.ts.map +1 -1
- package/dist/cli/src/commands/plugin/types.d.ts +1 -6
- package/dist/cli/src/commands/plugin/types.d.ts.map +1 -1
- package/dist/cli/src/commands/plugin-registry-cmd.d.ts +1 -1
- package/dist/cli/src/commands/preset-export.d.ts +1 -1
- package/dist/cli/src/commands/project.d.ts +20 -2
- package/dist/cli/src/commands/project.d.ts.map +1 -1
- package/dist/cli/src/commands/run.d.ts +2 -2
- package/dist/cli/src/commands/run.d.ts.map +1 -1
- package/dist/cli/src/commands/serve-preflight.d.ts +11 -11
- package/dist/cli/src/commands/serve-preflight.d.ts.map +1 -1
- package/dist/cli/src/commands/serve.d.ts +1 -1
- package/dist/cli/src/commands/serve.d.ts.map +1 -1
- package/dist/cli/src/commands/session-logs/local-query.d.ts +2 -0
- package/dist/cli/src/commands/session-logs/local-query.d.ts.map +1 -1
- package/dist/cli/src/commands/source.d.ts +9 -2
- package/dist/cli/src/commands/source.d.ts.map +1 -1
- package/dist/cli/src/commands/store.d.ts.map +1 -1
- package/dist/cli/src/commands/update.d.ts.map +1 -1
- package/dist/cli/src/commands/validate.d.ts.map +1 -1
- package/dist/cli/src/config-checks.d.ts +37 -0
- package/dist/cli/src/config-checks.d.ts.map +1 -0
- package/dist/cli/src/harness-error.d.ts +47 -0
- package/dist/cli/src/harness-error.d.ts.map +1 -0
- package/dist/cli/src/helpers.d.ts +5 -5
- package/dist/cli/src/helpers.d.ts.map +1 -1
- package/dist/cli/src/plugin-store/index.d.ts +2 -2
- package/dist/cli/src/setup.d.ts +3 -3
- package/dist/cli/src/setup.d.ts.map +1 -1
- package/dist/cli/src/skill-checks.d.ts +27 -0
- package/dist/cli/src/skill-checks.d.ts.map +1 -1
- package/dist/cli/src/store-addable.d.ts +11 -0
- package/dist/cli/src/store-addable.d.ts.map +1 -1
- package/dist/connectors/config.js +6 -6
- package/dist/connectors/index.js +31 -31
- package/dist/connectors/src/connector-prompt.d.ts +5 -5
- package/dist/connectors/src/connector-registry.d.ts +1 -1
- package/dist/connectors-7THEF7YA.js +48 -0
- package/dist/{connectors-RBGZ3M7G.js.map → connectors-7THEF7YA.js.map} +1 -1
- package/dist/connectors-shared/index.js +2 -2
- package/dist/core/framework.js +1 -1
- package/dist/{bridge/drivers/codex.d.ts → core/harness-targets.d.ts} +1 -1
- package/dist/core/harness-targets.js +4 -0
- package/dist/core/harness-targets.js.map +1 -0
- package/dist/core/index.js +11 -11
- package/dist/core/manifest.js +2 -2
- package/dist/core/models.js +1 -1
- package/dist/core/provider-registry-credentials.js +2 -2
- package/dist/core/provider-registry.js +1 -1
- package/dist/core/publish-manifest.js +3 -3
- package/dist/core/ref.js +1 -1
- package/dist/core/runtime-assets.js +6 -6
- package/dist/core/src/agent-instances.d.ts.map +1 -1
- package/dist/core/src/asset-roots.d.ts +2 -2
- package/dist/core/src/config-key-diagnostics.d.ts +9 -0
- package/dist/core/src/config-key-diagnostics.d.ts.map +1 -0
- package/dist/core/src/framework.d.ts +21 -21
- package/dist/core/src/framework.d.ts.map +1 -1
- package/dist/core/src/{driver-sdk.d.ts → harness-sdk.d.ts} +9 -9
- package/dist/core/src/harness-sdk.d.ts.map +1 -0
- package/dist/core/src/harness-targets.d.ts +71 -0
- package/dist/core/src/harness-targets.d.ts.map +1 -0
- package/dist/core/src/index.d.ts +8 -8
- package/dist/core/src/index.d.ts.map +1 -1
- package/dist/core/src/manifest.d.ts +10 -0
- package/dist/core/src/manifest.d.ts.map +1 -1
- package/dist/core/src/models.d.ts +8 -0
- package/dist/core/src/models.d.ts.map +1 -1
- package/dist/core/src/provider-registry.d.ts +2 -2
- package/dist/core/src/settings.d.ts +17 -16
- package/dist/core/src/settings.d.ts.map +1 -1
- package/dist/core/src/store.d.ts +12 -12
- package/dist/core/src/store.d.ts.map +1 -1
- package/dist/core/src/workspace-config.d.ts +39 -21
- package/dist/core/src/workspace-config.d.ts.map +1 -1
- package/dist/core/src/workspace-yaml-editor.d.ts +10 -3
- package/dist/core/src/workspace-yaml-editor.d.ts.map +1 -1
- package/dist/core/store.js +2 -2
- package/dist/core/workspace-config.js +5 -5
- package/dist/deploy/index.js +12 -12
- package/dist/discovery/index.js +5 -5
- package/dist/discovery/src/builtin-providers.d.ts.map +1 -1
- package/dist/discovery/src/parse-manifest.d.ts.map +1 -1
- package/dist/{ensure-sources-GKVLE6L5.js → ensure-sources-IH7CHSJF.js} +22 -22
- package/dist/{ensure-sources-GKVLE6L5.js.map → ensure-sources-IH7CHSJF.js.map} +1 -1
- package/dist/factory-assets/connectors/box.js +31 -31
- package/dist/factory-assets/connectors/deploy.js +31 -31
- package/dist/factory-assets/connectors/devserver.js +31 -31
- package/dist/factory-assets/connectors/flow/CONNECTOR.md +5 -5
- package/dist/factory-assets/connectors/flow/adapter.d.ts +3 -3
- package/dist/factory-assets/connectors/flow/adapter.d.ts.map +1 -1
- package/dist/factory-assets/connectors/flow/adapter.js +31 -31
- package/dist/factory-assets/connectors/flow/contract/normalize.d.ts.map +1 -1
- package/dist/factory-assets/connectors/flow/contract.js +1 -1
- package/dist/factory-assets/connectors/flow/engine/types.d.ts +1 -1
- package/dist/factory-assets/connectors/flow/engine.js +13 -13
- package/dist/factory-assets/connectors/flow/inline-sub-flow-host.d.ts +2 -2
- package/dist/factory-assets/connectors/flow/inline-sub-flow-host.d.ts.map +1 -1
- package/dist/factory-assets/connectors/flow/orchestrator-turn.d.ts +4 -4
- package/dist/factory-assets/connectors/flow/orchestrator-turn.d.ts.map +1 -1
- package/dist/factory-assets/connectors/flow/prompt-fragments.d.ts +1 -1
- package/dist/factory-assets/connectors/flow/prompt-fragments.js +1 -1
- package/dist/factory-assets/connectors/flow/run-flow.d.ts +12 -12
- package/dist/factory-assets/connectors/flow/run-flow.d.ts.map +1 -1
- package/dist/factory-assets/connectors/flow/run-flow.js +33 -33
- package/dist/factory-assets/connectors/flow/sub-flow-runner.d.ts +1 -1
- package/dist/factory-assets/connectors/flow/sub-flow-runner.d.ts.map +1 -1
- package/dist/factory-assets/connectors/flow/subprompt-runner.d.ts +22 -22
- package/dist/factory-assets/connectors/flow/subprompt-runner.d.ts.map +1 -1
- package/dist/factory-assets/connectors/flow.js +31 -31
- package/dist/factory-assets/connectors/git.js +31 -31
- package/dist/factory-assets/connectors/gmail.js +31 -31
- package/dist/factory-assets/connectors/googledrive.js +31 -31
- package/dist/factory-assets/connectors/local.js +31 -31
- package/dist/factory-assets/connectors/mattermost.js +31 -31
- package/dist/factory-assets/connectors/memory.js +31 -31
- package/dist/factory-assets/connectors/minio.js +31 -31
- package/dist/factory-assets/connectors/postgres.js +31 -31
- package/dist/factory-assets/connectors/s3.js +31 -31
- package/dist/factory-assets/connectors/sharepoint.js +31 -31
- package/dist/factory-assets/connectors/sqlite.js +31 -31
- package/dist/factory-assets/connectors/static-server.js +31 -31
- package/dist/factory-assets/connectors/tunnel.js +31 -31
- package/dist/factory-assets/connectors/webdav.js +31 -31
- package/dist/factory-assets/connectors/xstate-store.js +31 -31
- package/dist/factory-assets/connectors/xstate.js +31 -31
- package/dist/factory-assets/skills/authoring-skaile-assets/SKILL.md +1 -1
- package/dist/factory-assets/skills/authoring-skaile-manifests/SKILL.md +2 -2
- package/dist/factory-assets/skills/authoring-skaile-manifests/references/dependency-standard.md +3 -3
- package/dist/factory-assets/skills/skaile-manage-workspace/SKILL.md +1 -1
- package/dist/flows-4JZQ3XFK.js +26 -0
- package/dist/{flows-W2FB7WIM.js.map → flows-4JZQ3XFK.js.map} +1 -1
- package/dist/{helpers-34QNVIGB.js → helpers-JNMK3FC2.js} +22 -22
- package/dist/{helpers-34QNVIGB.js.map → helpers-JNMK3FC2.js.map} +1 -1
- package/dist/library/index.js +15 -15
- package/dist/library/install.js +4 -4
- package/dist/library/src/index.d.ts +1 -1
- package/dist/library/src/index.d.ts.map +1 -1
- package/dist/library/src/local/library-dir.d.ts +22 -5
- package/dist/library/src/local/library-dir.d.ts.map +1 -1
- package/dist/library/src/local/local-catalog-source.d.ts.map +1 -1
- package/dist/library/src/remote/remote-catalog-source.d.ts +6 -0
- package/dist/library/src/remote/remote-catalog-source.d.ts.map +1 -1
- package/dist/{library-publish-RUQTKTJU.js → library-publish-I3UWXAHI.js} +69 -67
- package/dist/library-publish-I3UWXAHI.js.map +1 -0
- package/dist/model-endpoint/index.js +15 -15
- package/dist/model-endpoint/src/resolve.d.ts +1 -1
- package/dist/open-library-NKKUJLWA.js +42 -0
- package/dist/{open-library-PVTIUQUF.js.map → open-library-NKKUJLWA.js.map} +1 -1
- package/dist/open-registry-BYAXSHUI.js +32 -0
- package/dist/{open-registry-SOIS3TA2.js.map → open-registry-BYAXSHUI.js.map} +1 -1
- package/dist/paths-UKWE35XS.js +22 -0
- package/dist/{paths-JLNX7Y4X.js.map → paths-UKWE35XS.js.map} +1 -1
- package/dist/plugin-registry/index.js +1 -1
- package/dist/plugin-registry/src/context.d.ts +3 -3
- package/dist/plugin-registry/src/context.d.ts.map +1 -1
- package/dist/plugin-registry/src/deploy-handle.d.ts +1 -1
- package/dist/plugin-registry/src/index.d.ts +2 -2
- package/dist/plugin-registry/src/index.d.ts.map +1 -1
- package/dist/plugin-registry/src/internal.d.ts.map +1 -1
- package/dist/plugin-registry/src/registry.d.ts +3 -3
- package/dist/plugin-registry/src/registry.d.ts.map +1 -1
- package/dist/plugin-registry/src/targets.d.ts +9 -9
- package/dist/plugin-registry/src/targets.d.ts.map +1 -1
- package/dist/plugin-store-ABE35NRX.js +23 -0
- package/dist/{plugin-store-G2GWAHSD.js.map → plugin-store-ABE35NRX.js.map} +1 -1
- package/dist/plugins/src/asset-kind-provider.d.ts +1 -1
- package/dist/project-BIPK47JK.js +86 -0
- package/dist/{project-EX47PUBN.js.map → project-BIPK47JK.js.map} +1 -1
- package/dist/resolver/index.js +12 -12
- package/dist/runner/index.js +50 -50
- package/dist/runner/src/agent.d.ts +3 -3
- package/dist/runner/src/agent.d.ts.map +1 -1
- package/dist/runner/src/agents/in-process-host.d.ts +1 -1
- package/dist/runner/src/agents/instances.d.ts +1 -1
- package/dist/runner/src/agents/instances.d.ts.map +1 -1
- package/dist/runner/src/agents/run-controller.d.ts +7 -7
- package/dist/runner/src/agents/run-controller.d.ts.map +1 -1
- package/dist/runner/src/agents/standalone-surface.d.ts +2 -2
- package/dist/runner/src/agents/standalone-surface.d.ts.map +1 -1
- package/dist/runner/src/ai-provider-switch.d.ts +7 -7
- package/dist/runner/src/assistant-home.d.ts +1 -1
- package/dist/runner/src/capability-registry.d.ts +2 -2
- package/dist/runner/src/coalesced-restart.d.ts +2 -2
- package/dist/runner/src/compaction/context-window.d.ts +8 -8
- package/dist/runner/src/compaction/context-window.d.ts.map +1 -1
- package/dist/runner/src/compaction/orchestrator.d.ts +24 -24
- package/dist/runner/src/compaction/orchestrator.d.ts.map +1 -1
- package/dist/runner/src/compaction-gate.d.ts +30 -30
- package/dist/runner/src/compaction-gate.d.ts.map +1 -1
- package/dist/runner/src/composition/content-source.d.ts.map +1 -1
- package/dist/runner/src/composition/dry-run.d.ts +2 -2
- package/dist/runner/src/composition/dry-run.d.ts.map +1 -1
- package/dist/runner/src/composition/errors.d.ts +16 -1
- package/dist/runner/src/composition/errors.d.ts.map +1 -1
- package/dist/runner/src/composition/resolve-instance.d.ts +2 -2
- package/dist/runner/src/composition/resolve.d.ts +1 -1
- package/dist/runner/src/config.d.ts +3 -3
- package/dist/runner/src/config.d.ts.map +1 -1
- package/dist/runner/src/context-usage/collector.d.ts +15 -15
- package/dist/runner/src/context-usage/collector.d.ts.map +1 -1
- package/dist/runner/src/context-usage/compose.d.ts +6 -6
- package/dist/runner/src/context-usage/compose.d.ts.map +1 -1
- package/dist/runner/src/context-usage/estimator.d.ts +1 -1
- package/dist/runner/src/context-usage/index.d.ts +1 -1
- package/dist/runner/src/context-usage/index.d.ts.map +1 -1
- package/dist/runner/src/context-usage/transcript-tracker.d.ts +2 -2
- package/dist/runner/src/context-usage/transcript-tracker.d.ts.map +1 -1
- package/dist/runner/src/credential-notice.d.ts +4 -4
- package/dist/runner/src/credential-notice.d.ts.map +1 -1
- package/dist/runner/src/credential-rotated.d.ts +1 -1
- package/dist/runner/src/final-text.d.ts +1 -1
- package/dist/runner/src/{driver-swap-gate.d.ts → harness-swap-gate.d.ts} +21 -21
- package/dist/runner/src/harness-swap-gate.d.ts.map +1 -0
- package/dist/runner/src/late-mcp-rebuild.d.ts +6 -6
- package/dist/runner/src/late-mcp-rebuild.d.ts.map +1 -1
- package/dist/runner/src/lifecycle-handler.d.ts +1 -1
- package/dist/runner/src/lifecycle-handler.d.ts.map +1 -1
- package/dist/runner/src/manifest.d.ts +1 -1
- package/dist/runner/src/mcp-runtime-handlers.d.ts +6 -6
- package/dist/runner/src/mcp-runtime-handlers.d.ts.map +1 -1
- package/dist/runner/src/model-endpoint-discovery.d.ts +1 -1
- package/dist/runner/src/pending-turns.d.ts +3 -3
- package/dist/runner/src/platform-blocks.d.ts +5 -5
- package/dist/runner/src/platform-blocks.d.ts.map +1 -1
- package/dist/runner/src/prompt-turn-queue.d.ts +1 -1
- package/dist/runner/src/provider-quota-forwarder.d.ts +1 -1
- package/dist/runner/src/provider-quota-forwarder.d.ts.map +1 -1
- package/dist/runner/src/reconfigure-handler.d.ts +14 -14
- package/dist/runner/src/reconfigure-handler.d.ts.map +1 -1
- package/dist/runner/src/resource-handler.d.ts +1 -1
- package/dist/runner/src/resources.d.ts +5 -5
- package/dist/runner/src/resources.d.ts.map +1 -1
- package/dist/runner/src/runner-capabilities.d.ts +7 -7
- package/dist/runner/src/runtime-session-emit.d.ts +5 -5
- package/dist/runner/src/runtime-session-emit.d.ts.map +1 -1
- package/dist/runner/src/s3-presign-client.d.ts +1 -1
- package/dist/runner/src/serve-credentials.d.ts +7 -7
- package/dist/runner/src/serve-credentials.d.ts.map +1 -1
- package/dist/runner/src/serve.d.ts +46 -34
- package/dist/runner/src/serve.d.ts.map +1 -1
- package/dist/runner/src/session-builder.d.ts +41 -41
- package/dist/runner/src/session-builder.d.ts.map +1 -1
- package/dist/runner/src/session-capability-wiring.d.ts +9 -9
- package/dist/runner/src/session-capability-wiring.d.ts.map +1 -1
- package/dist/runner/src/session-stimulus.d.ts +1 -1
- package/dist/runner/src/session.d.ts +5 -5
- package/dist/runner/src/session.d.ts.map +1 -1
- package/dist/runner/src/skill-staging.d.ts +16 -16
- package/dist/runner/src/skill-staging.d.ts.map +1 -1
- package/dist/runner/src/turn-end-contract.d.ts +5 -5
- package/dist/runner/src/turn-end-contract.d.ts.map +1 -1
- package/dist/runner/src/turn-scheduler.d.ts +22 -22
- package/dist/runner/src/turn-scheduler.d.ts.map +1 -1
- package/dist/runner/src/turn-status-replay.d.ts +1 -1
- package/dist/runner/src/usage-limit-turn-hold.d.ts +1 -1
- package/dist/sdk/asset-manager.js +19 -19
- package/dist/sdk/bridge.js +25 -25
- package/dist/sdk/core.js +11 -11
- package/dist/sdk/flow.js +13 -13
- package/dist/sdk/index.js +54 -54
- package/dist/sdk/index.js.map +1 -1
- package/dist/sdk/resolver.js +12 -12
- package/dist/sdk/runner.js +50 -50
- package/dist/sdk/session.js +2 -2
- package/dist/sdk/src/agent-session.d.ts +1 -1
- package/dist/sdk/src/local-runtime.d.ts +1 -1
- package/dist/sdk/src/local-runtime.d.ts.map +1 -1
- package/dist/sdk/src/types.d.ts +1 -1
- package/dist/sdk/src/types.d.ts.map +1 -1
- package/dist/sdk/store.js +2 -2
- package/dist/sdk/transport/ws/server.js +12 -12
- package/dist/sdk/transport/ws.js +12 -12
- package/dist/sdk/transport.js +12 -12
- package/dist/sdk/types.js +1 -1
- package/dist/serve-preflight-FLTIBTEX.js +107 -0
- package/dist/serve-preflight-FLTIBTEX.js.map +1 -0
- package/dist/session/index.js +2 -2
- package/dist/session/src/dispatcher.d.ts +2 -2
- package/dist/sessions-2Q7SSYPT.js +5 -0
- package/dist/{sessions-DICDEONJ.js.map → sessions-2Q7SSYPT.js.map} +1 -1
- package/dist/{setup-AFZQNGKA.js → setup-AG6NFHSN.js} +52 -52
- package/dist/setup-AG6NFHSN.js.map +1 -0
- package/dist/skills-UQYUHVKO.js +26 -0
- package/dist/{skills-YYYC6D5X.js.map → skills-UQYUHVKO.js.map} +1 -1
- package/dist/source-ASEHI2XS.js +85 -0
- package/dist/{source-DGPCT5IC.js.map → source-ASEHI2XS.js.map} +1 -1
- package/dist/{source-manifest-publish-AGJ63JF2.js → source-manifest-publish-IEVV3W6J.js} +62 -62
- package/dist/{source-manifest-publish-AGJ63JF2.js.map → source-manifest-publish-IEVV3W6J.js.map} +1 -1
- package/dist/store/index.js +2 -2
- package/dist/store/src/store.d.ts +3 -3
- package/dist/store/src/store.d.ts.map +1 -1
- package/dist/transport/index.js +12 -12
- package/dist/transport/ws/server.js +12 -12
- package/dist/transport/ws.js +12 -12
- package/dist/tui/index.js +70 -70
- package/dist/tui/index.js.map +1 -1
- package/dist/tui/src/repl-session.d.ts +5 -5
- package/dist/tui/src/repl.d.ts +5 -5
- package/dist/tui/src/repl.d.ts.map +1 -1
- package/dist/types/index.js +1 -1
- package/dist/types/manifests.js +1 -1
- package/dist/types/src/agent-lifecycle.d.ts +1 -1
- package/dist/types/src/agent-lifecycle.d.ts.map +1 -1
- package/dist/types/src/ask-slots.d.ts +1 -1
- package/dist/types/src/capabilities.d.ts +1 -1
- package/dist/types/src/context-usage.d.ts +22 -22
- package/dist/types/src/context-usage.d.ts.map +1 -1
- package/dist/types/src/events.d.ts +49 -49
- package/dist/types/src/events.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +2 -2
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/install-manifest.d.ts +1 -1
- package/dist/types/src/install-manifest.d.ts.map +1 -1
- package/dist/types/src/lifecycle.d.ts +6 -6
- package/dist/types/src/lifecycle.d.ts.map +1 -1
- package/dist/types/src/logging.d.ts +1 -1
- package/dist/types/src/manifests/agent.d.ts +3 -3
- package/dist/types/src/protocol.d.ts +4 -4
- package/dist/types/src/runtime.d.ts +38 -38
- package/dist/types/src/runtime.d.ts.map +1 -1
- package/dist/types/src/version.d.ts +22 -11
- package/dist/types/src/version.d.ts.map +1 -1
- package/dist/validator-DRHMJ457.js +5 -0
- package/dist/{validator-FA2PFW6N.js.map → validator-DRHMJ457.js.map} +1 -1
- package/dist/workspace-plugin/adapters/mcp.js +41 -41
- package/dist/workspace-plugin/adapters/omp.js +26 -26
- package/dist/workspace-plugin/adapters/omp.js.map +1 -1
- package/dist/workspace-plugin/index.js +3 -3
- package/dist/workspace-plugin/src/plugin.d.ts +5 -5
- package/dist/workspace-plugin/src/plugin.d.ts.map +1 -1
- package/dist/workspace-plugin/src/tools/flows.d.ts +1 -1
- package/dist/workspace-plugin/src/tools/validator.d.ts +6 -6
- package/dist/workspace-plugin/src/tools/validator.d.ts.map +1 -1
- package/dist/workspace-plugin/src/types.d.ts +2 -2
- package/dist/workspace-plugin/src/types.d.ts.map +1 -1
- package/package.json +59 -59
- package/dist/asset-feeds-QGLI3AXI.js.map +0 -1
- package/dist/bridge/drivers/claude-sdk.js.map +0 -1
- package/dist/bridge/drivers/codex.js.map +0 -1
- package/dist/bridge/drivers/continue.js.map +0 -1
- package/dist/bridge/drivers/echo.js.map +0 -1
- package/dist/bridge/drivers/gemini.js +0 -18
- package/dist/bridge/drivers/goose.js.map +0 -1
- package/dist/bridge/drivers/omp.js.map +0 -1
- package/dist/bridge/drivers/opencode.js.map +0 -1
- package/dist/bridge/drivers/qwen.js.map +0 -1
- package/dist/bridge/src/codex/managed-driver.d.ts.map +0 -1
- package/dist/bridge/src/driver-capabilities.d.ts.map +0 -1
- package/dist/bridge/src/driver-model-check.d.ts +0 -25
- package/dist/bridge/src/driver-model-check.d.ts.map +0 -1
- package/dist/bridge/src/drivers/_subprocess-cli.d.ts.map +0 -1
- package/dist/bridge/src/drivers/claude-context-usage.d.ts.map +0 -1
- package/dist/bridge/src/drivers/claude-sdk.d.ts.map +0 -1
- package/dist/bridge/src/drivers/claude-self-turns.d.ts.map +0 -1
- package/dist/bridge/src/drivers/claude-tool-allowlist.d.ts.map +0 -1
- package/dist/bridge/src/drivers/codex.d.ts.map +0 -1
- package/dist/bridge/src/drivers/continue.d.ts.map +0 -1
- package/dist/bridge/src/drivers/echo.d.ts.map +0 -1
- package/dist/bridge/src/drivers/flow-script.d.ts.map +0 -1
- package/dist/bridge/src/drivers/gemini.d.ts.map +0 -1
- package/dist/bridge/src/drivers/goose.d.ts.map +0 -1
- package/dist/bridge/src/drivers/omp-models-yml.d.ts.map +0 -1
- package/dist/bridge/src/drivers/omp.d.ts.map +0 -1
- package/dist/bridge/src/drivers/opencode.d.ts.map +0 -1
- package/dist/bridge/src/drivers/qwen.d.ts.map +0 -1
- package/dist/bridge/src/drivers/recovery-policy.d.ts.map +0 -1
- package/dist/bridge/src/drivers/resume-probe.d.ts.map +0 -1
- package/dist/bridge/src/drivers/sanitize-assistant-text.d.ts.map +0 -1
- package/dist/bridge/src/drivers/scrub-transcript.d.ts.map +0 -1
- package/dist/bridge/src/provider-materialize/env-drivers.d.ts.map +0 -1
- package/dist/chunk-2GXSSZAM.js.map +0 -1
- package/dist/chunk-4ZTPYIBE.js.map +0 -1
- package/dist/chunk-5BEFNLOR.js.map +0 -1
- package/dist/chunk-5TBFN46Z.js.map +0 -1
- package/dist/chunk-6E6PKKAD.js.map +0 -1
- package/dist/chunk-7NT4F6SR.js.map +0 -1
- package/dist/chunk-7SCS64BG.js.map +0 -1
- package/dist/chunk-AJ7EGIFR.js.map +0 -1
- package/dist/chunk-C7WBGSBV.js.map +0 -1
- package/dist/chunk-COJIL7G4.js.map +0 -1
- package/dist/chunk-CQJH4G2K.js.map +0 -1
- package/dist/chunk-EAZECHPM.js.map +0 -1
- package/dist/chunk-EPBKISS5.js.map +0 -1
- package/dist/chunk-FPHNJE4M.js.map +0 -1
- package/dist/chunk-GOCWM7FN.js.map +0 -1
- package/dist/chunk-HT35SQZD.js.map +0 -1
- package/dist/chunk-I37INEWE.js.map +0 -1
- package/dist/chunk-IG5LZ3WU.js.map +0 -1
- package/dist/chunk-IP2IPMEH.js.map +0 -1
- package/dist/chunk-IZCR27MU.js.map +0 -1
- package/dist/chunk-J24CY3PF.js.map +0 -1
- package/dist/chunk-JTOWA6RS.js.map +0 -1
- package/dist/chunk-L2AMXONH.js.map +0 -1
- package/dist/chunk-MJHSLODD.js.map +0 -1
- package/dist/chunk-MKRWN7XP.js.map +0 -1
- package/dist/chunk-MRHVPQNO.js.map +0 -1
- package/dist/chunk-N46LQR46.js.map +0 -1
- package/dist/chunk-PUK7TQT4.js +0 -13
- package/dist/chunk-PUK7TQT4.js.map +0 -1
- package/dist/chunk-QG6GHTRM.js.map +0 -1
- package/dist/chunk-RO6VOM6Z.js.map +0 -1
- package/dist/chunk-RPZVHXQ3.js.map +0 -1
- package/dist/chunk-V257LUBM.js.map +0 -1
- package/dist/chunk-VJ7NU7GD.js.map +0 -1
- package/dist/chunk-VSZWNUZC.js.map +0 -1
- package/dist/chunk-W4Q6CKJ5.js.map +0 -1
- package/dist/chunk-WOIRYY5L.js.map +0 -1
- package/dist/chunk-WST6UITC.js.map +0 -1
- package/dist/chunk-X3RMRJNR.js.map +0 -1
- package/dist/chunk-XJVBUDDJ.js.map +0 -1
- package/dist/chunk-XM6T2AZ2.js.map +0 -1
- package/dist/chunk-XWOPZW26.js.map +0 -1
- package/dist/chunk-Y56YIT6J.js.map +0 -1
- package/dist/chunk-YROR332M.js.map +0 -1
- package/dist/chunk-ZQSOJH6I.js.map +0 -1
- package/dist/claude-code-2PU7TITZ.js +0 -10
- package/dist/cli/src/driver-error.d.ts +0 -28
- package/dist/cli/src/driver-error.d.ts.map +0 -1
- package/dist/connectors-RBGZ3M7G.js +0 -48
- package/dist/core/driver-targets.d.ts +0 -2
- package/dist/core/driver-targets.js +0 -4
- package/dist/core/driver-targets.js.map +0 -1
- package/dist/core/src/driver-sdk.d.ts.map +0 -1
- package/dist/core/src/driver-targets.d.ts +0 -71
- package/dist/core/src/driver-targets.d.ts.map +0 -1
- package/dist/flows-W2FB7WIM.js +0 -26
- package/dist/library-publish-RUQTKTJU.js.map +0 -1
- package/dist/open-library-PVTIUQUF.js +0 -42
- package/dist/open-registry-SOIS3TA2.js +0 -32
- package/dist/paths-JLNX7Y4X.js +0 -22
- package/dist/plugin-store-G2GWAHSD.js +0 -23
- package/dist/project-EX47PUBN.js +0 -84
- package/dist/runner/src/driver-swap-gate.d.ts.map +0 -1
- package/dist/serve-preflight-QXRKGOI5.js +0 -108
- package/dist/serve-preflight-QXRKGOI5.js.map +0 -1
- package/dist/sessions-DICDEONJ.js +0 -5
- package/dist/setup-AFZQNGKA.js.map +0 -1
- package/dist/skills-YYYC6D5X.js +0 -26
- package/dist/source-DGPCT5IC.js +0 -85
- package/dist/validator-FA2PFW6N.js +0 -5
- /package/dist/bridge/{drivers → harnesses}/gemini.js.map +0 -0
|
@@ -1,256 +1,24 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
1
|
+
import { checkAgentInstances, unknownKeyWarnings, unknownHarnessErrors } from './chunk-7HX6FNKL.js';
|
|
2
|
+
import { registeredAssetKeys, unresolvedManifestDependencies, warnIgnoredDomainFiles, warnLegacyBundleFiles, removedDomainOption, rejectRemovedDomainOption, reportLibrarySymlinks, composeRefContext, assetEntryRef, manifestPublisherProblems, manifestRootProblems, manifestFilesProblems, manifestEntryNameProblems, manifestRequiresProblems, checkAssetFile, findEntryManifestFile, declaredVersion, manifestVersionMismatchMessage, MANIFEST_GLOBS, manifestParseErrorText, checkAsset, invalidPublisherMessage, invalidSemverText } from './chunk-AITJ7ELM.js';
|
|
3
|
+
import { AI_RESOURCES } from './chunk-AATHJRKL.js';
|
|
4
|
+
import { logErr, logInfo, logWarn, logOk } from './chunk-QEULL4Q3.js';
|
|
5
|
+
import { getKindRegistry } from './chunk-COYF6IG2.js';
|
|
6
|
+
import { validateFlowVersions } from './chunk-IRYKRKVQ.js';
|
|
7
|
+
import { loadFlow } from './chunk-4MUDQCBP.js';
|
|
7
8
|
import { flowSkillVersionPins } from './chunk-7RGTAEG6.js';
|
|
8
|
-
import { missingRootAssets, assertManifestEditable, scanUnlistedAssets, UNLISTED_SCAN_SKIP_DIRS } from './chunk-
|
|
9
|
-
import { parseManifestFile } from './chunk-
|
|
10
|
-
import { resolveRuntimeAssets } from './chunk-
|
|
11
|
-
import { decodeSkaileYaml,
|
|
12
|
-
import { SKAILE_MANIFEST_FILENAME, loadSkPublishManifest,
|
|
13
|
-
import { readAssetBody } from './chunk-
|
|
14
|
-
import { parseAssetRef, isValidPublisher, isValidAssetName, ASSET_NAME_HINT } from './chunk-
|
|
9
|
+
import { missingRootAssets, assertManifestEditable, scanUnlistedAssets, UNLISTED_SCAN_SKIP_DIRS } from './chunk-S2XHGWQC.js';
|
|
10
|
+
import { parseManifestFile } from './chunk-UI745XC3.js';
|
|
11
|
+
import { resolveRuntimeAssets } from './chunk-ZDLUQLI6.js';
|
|
12
|
+
import { decodeSkaileYaml, localConnectorMountDir, symlinkEscapeOfProject, isInsideProject } from './chunk-ZHGKAZJ7.js';
|
|
13
|
+
import { SKAILE_MANIFEST_FILENAME, loadSkPublishManifest, isNonAssetPath } from './chunk-ZBHZLWV3.js';
|
|
14
|
+
import { readAssetBody } from './chunk-RHN5MRQO.js';
|
|
15
|
+
import { parseAssetRef, isValidPublisher, isValidAssetName, ASSET_NAME_HINT } from './chunk-LSSYC5IC.js';
|
|
15
16
|
import { execFileSync } from 'child_process';
|
|
16
|
-
import
|
|
17
|
-
import
|
|
17
|
+
import fs from 'fs';
|
|
18
|
+
import path from 'path';
|
|
18
19
|
import { Command } from 'commander';
|
|
19
20
|
import { parse } from 'yaml';
|
|
20
21
|
|
|
21
|
-
// cli/src/type-guards.ts
|
|
22
|
-
function isRecord(value) {
|
|
23
|
-
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
// cli/src/commands/validate-instances.ts
|
|
27
|
-
var AGENT_MANIFEST_FILE = "agent.yaml";
|
|
28
|
-
var TRIGGER_REQUIRED_FIELDS = {
|
|
29
|
-
schedule: ["cron", "prompt"],
|
|
30
|
-
webhook: ["prompt"],
|
|
31
|
-
channel: ["when"],
|
|
32
|
-
event: ["event"]
|
|
33
|
-
};
|
|
34
|
-
var err = (code, message, at) => ({
|
|
35
|
-
code,
|
|
36
|
-
severity: "error",
|
|
37
|
-
message,
|
|
38
|
-
path: at
|
|
39
|
-
});
|
|
40
|
-
function readAssetFacts(manifest) {
|
|
41
|
-
const facts = {
|
|
42
|
-
lifecycle: manifest.lifecycle,
|
|
43
|
-
hasIo: manifest.io !== void 0 && manifest.io !== null,
|
|
44
|
-
connectorSlots: [],
|
|
45
|
-
otherSlots: [],
|
|
46
|
-
triggerIds: []
|
|
47
|
-
};
|
|
48
|
-
for (const item of Array.isArray(manifest.composes) ? manifest.composes : []) {
|
|
49
|
-
if (!isRecord(item) || typeof item.id !== "string") continue;
|
|
50
|
-
(item.kind === "connector" ? facts.connectorSlots : facts.otherSlots).push(item.id);
|
|
51
|
-
}
|
|
52
|
-
for (const t of Array.isArray(manifest.triggers) ? manifest.triggers : []) {
|
|
53
|
-
if (isRecord(t) && typeof t.id === "string") facts.triggerIds.push(t.id);
|
|
54
|
-
}
|
|
55
|
-
return facts;
|
|
56
|
-
}
|
|
57
|
-
function loadAsset(projectDir, id, ref) {
|
|
58
|
-
const at = `agents.${id}.ref`;
|
|
59
|
-
let dir;
|
|
60
|
-
try {
|
|
61
|
-
dir = resolveAgentDefinitionDir(projectDir, ref);
|
|
62
|
-
} catch (e) {
|
|
63
|
-
if (!(e instanceof AgentRefResolutionError)) throw e;
|
|
64
|
-
return { diagnostic: err("agent_ref_unresolved", `agents.${id}: ${e.message}`, at) };
|
|
65
|
-
}
|
|
66
|
-
if (dir === void 0) {
|
|
67
|
-
return {
|
|
68
|
-
diagnostic: err(
|
|
69
|
-
"agent_ref_unresolved",
|
|
70
|
-
`agents.${id}: ref "${ref}" cannot be resolved \u2014 no ai-assets/ directory above the project`,
|
|
71
|
-
at
|
|
72
|
-
)
|
|
73
|
-
};
|
|
74
|
-
}
|
|
75
|
-
const manifestPath = path2.join(dir, AGENT_MANIFEST_FILE);
|
|
76
|
-
let text;
|
|
77
|
-
try {
|
|
78
|
-
text = fs2.readFileSync(manifestPath, "utf-8");
|
|
79
|
-
} catch {
|
|
80
|
-
return {
|
|
81
|
-
diagnostic: err(
|
|
82
|
-
"agent_ref_unresolved",
|
|
83
|
-
`agents.${id}: ref "${ref}" resolves to ${dir}, which has no ${AGENT_MANIFEST_FILE}`,
|
|
84
|
-
at
|
|
85
|
-
)
|
|
86
|
-
};
|
|
87
|
-
}
|
|
88
|
-
let manifest;
|
|
89
|
-
try {
|
|
90
|
-
manifest = parse(text);
|
|
91
|
-
} catch (e) {
|
|
92
|
-
return {
|
|
93
|
-
diagnostic: err(
|
|
94
|
-
"agent_manifest_invalid",
|
|
95
|
-
`agents.${id}: ${manifestPath} is not valid YAML: ${e instanceof Error ? e.message : String(e)}`,
|
|
96
|
-
at
|
|
97
|
-
)
|
|
98
|
-
};
|
|
99
|
-
}
|
|
100
|
-
if (!isRecord(manifest)) {
|
|
101
|
-
return {
|
|
102
|
-
diagnostic: err(
|
|
103
|
-
"agent_manifest_invalid",
|
|
104
|
-
`agents.${id}: ${manifestPath} is not a mapping`,
|
|
105
|
-
at
|
|
106
|
-
)
|
|
107
|
-
};
|
|
108
|
-
}
|
|
109
|
-
return { facts: readAssetFacts(manifest) };
|
|
110
|
-
}
|
|
111
|
-
function checkTriggers(id, triggers, assetTriggerIds) {
|
|
112
|
-
const out = [];
|
|
113
|
-
const seen = /* @__PURE__ */ new Set();
|
|
114
|
-
triggers.forEach((trigger, i) => {
|
|
115
|
-
const at = `agents.${id}.triggers[${i}]`;
|
|
116
|
-
if (seen.has(trigger.id)) {
|
|
117
|
-
out.push(
|
|
118
|
-
err(
|
|
119
|
-
"agent_trigger_duplicate",
|
|
120
|
-
`agents.${id}: trigger id "${trigger.id}" is declared twice`,
|
|
121
|
-
`${at}.id`
|
|
122
|
-
)
|
|
123
|
-
);
|
|
124
|
-
return;
|
|
125
|
-
}
|
|
126
|
-
seen.add(trigger.id);
|
|
127
|
-
if (!assetTriggerIds || assetTriggerIds.includes(trigger.id)) return;
|
|
128
|
-
if (!trigger.kind) {
|
|
129
|
-
out.push(
|
|
130
|
-
err(
|
|
131
|
-
"agent_trigger_unknown",
|
|
132
|
-
`agents.${id}: trigger "${trigger.id}" is not declared by the agent asset (${assetTriggerIds.length > 0 ? `has: ${assetTriggerIds.join(", ")}` : "it declares no triggers"}) \u2014 add \`kind\` and the trigger's fields to declare a new one`,
|
|
133
|
-
`${at}.id`
|
|
134
|
-
)
|
|
135
|
-
);
|
|
136
|
-
return;
|
|
137
|
-
}
|
|
138
|
-
const missing = TRIGGER_REQUIRED_FIELDS[trigger.kind].filter(
|
|
139
|
-
(field) => trigger[field] === void 0
|
|
140
|
-
);
|
|
141
|
-
if (missing.length > 0) {
|
|
142
|
-
out.push(
|
|
143
|
-
err(
|
|
144
|
-
"agent_trigger_incomplete",
|
|
145
|
-
`agents.${id}: trigger "${trigger.id}" (kind ${trigger.kind}) is not in the asset, so it must declare ${missing.join(", ")}`,
|
|
146
|
-
at
|
|
147
|
-
)
|
|
148
|
-
);
|
|
149
|
-
}
|
|
150
|
-
});
|
|
151
|
-
return out;
|
|
152
|
-
}
|
|
153
|
-
function checkConnectors(id, instance, facts, connectorIds) {
|
|
154
|
-
const out = [];
|
|
155
|
-
for (const [slot, connectorId] of Object.entries(instance.connectors ?? {})) {
|
|
156
|
-
const at = `agents.${id}.connectors.${slot}`;
|
|
157
|
-
if (!facts.connectorSlots.includes(slot)) {
|
|
158
|
-
const hint = facts.otherSlots.includes(slot) ? `"${slot}" is a slot of a non-connector item` : facts.connectorSlots.length > 0 ? `the asset's connector slots are: ${facts.connectorSlots.join(", ")}` : "the asset declares no connector slots";
|
|
159
|
-
out.push(
|
|
160
|
-
err(
|
|
161
|
-
"agent_connector_slot_unknown",
|
|
162
|
-
`agents.${id}: connectors.${slot} is not a connector slot id of the agent asset (${hint})`,
|
|
163
|
-
at
|
|
164
|
-
)
|
|
165
|
-
);
|
|
166
|
-
}
|
|
167
|
-
if (!connectorIds.includes(connectorId)) {
|
|
168
|
-
out.push(
|
|
169
|
-
err(
|
|
170
|
-
"agent_connector_unknown",
|
|
171
|
-
`agents.${id}: connectors.${slot} points at "${connectorId}", which is not in skaile.yaml connectors[]${connectorIds.length > 0 ? ` (has: ${connectorIds.join(", ")})` : ""}`,
|
|
172
|
-
at
|
|
173
|
-
)
|
|
174
|
-
);
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
return out;
|
|
178
|
-
}
|
|
179
|
-
function checkAgentInstances(projectDir, parsed) {
|
|
180
|
-
const diagnostics = [];
|
|
181
|
-
const instances = normalizeAgentInstances(parsed.agents, diagnostics);
|
|
182
|
-
const agent = isRecord(parsed.agent) ? parsed.agent : void 0;
|
|
183
|
-
diagnostics.push(...agentBlockKeyDiagnostics(parsed.agent));
|
|
184
|
-
if (agent?.subagents !== void 0) {
|
|
185
|
-
diagnostics.push(
|
|
186
|
-
err(
|
|
187
|
-
"agent_subagents_removed",
|
|
188
|
-
"`agent.subagents` was removed \u2014 declare each subagent as an agent asset and bind it under `agents:` with `lifecycle: role`",
|
|
189
|
-
"agent.subagents"
|
|
190
|
-
)
|
|
191
|
-
);
|
|
192
|
-
}
|
|
193
|
-
if (agent?.instances !== void 0) {
|
|
194
|
-
diagnostics.push(
|
|
195
|
-
err(
|
|
196
|
-
"misplaced_agent_instances",
|
|
197
|
-
"`agent.instances` is not a skaile.yaml key \u2014 declare instances under root `agents:`",
|
|
198
|
-
"agent.instances"
|
|
199
|
-
)
|
|
200
|
-
);
|
|
201
|
-
}
|
|
202
|
-
diagnostics.push(
|
|
203
|
-
...agentInstanceDiagnostics({
|
|
204
|
-
agent: {
|
|
205
|
-
definition: typeof agent?.definition === "string" ? agent.definition : void 0,
|
|
206
|
-
instances
|
|
207
|
-
}
|
|
208
|
-
})
|
|
209
|
-
);
|
|
210
|
-
if (!instances) return diagnostics;
|
|
211
|
-
const connectorIds = (Array.isArray(parsed.connectors) ? parsed.connectors : []).flatMap(
|
|
212
|
-
(c) => isRecord(c) && typeof c.id === "string" ? [c.id] : []
|
|
213
|
-
);
|
|
214
|
-
for (const [id, instance] of Object.entries(instances)) {
|
|
215
|
-
const loaded = loadAsset(projectDir, id, instance.ref);
|
|
216
|
-
if ("diagnostic" in loaded) {
|
|
217
|
-
diagnostics.push(loaded.diagnostic, ...checkTriggers(id, instance.triggers ?? [], void 0));
|
|
218
|
-
continue;
|
|
219
|
-
}
|
|
220
|
-
const { facts } = loaded;
|
|
221
|
-
const lifecycle = instance.lifecycle ?? facts.lifecycle ?? "standing";
|
|
222
|
-
if (lifecycle === "role" && !facts.hasIo) {
|
|
223
|
-
diagnostics.push(
|
|
224
|
-
err(
|
|
225
|
-
"agent_role_missing_io",
|
|
226
|
-
`agents.${id}: lifecycle "role" needs the agent asset to declare \`io\` ({ input, output } JSON Schemas)`,
|
|
227
|
-
`agents.${id}.lifecycle`
|
|
228
|
-
)
|
|
229
|
-
);
|
|
230
|
-
}
|
|
231
|
-
diagnostics.push(...checkConnectors(id, instance, facts, connectorIds));
|
|
232
|
-
diagnostics.push(...checkTriggers(id, instance.triggers ?? [], facts.triggerIds));
|
|
233
|
-
}
|
|
234
|
-
return diagnostics;
|
|
235
|
-
}
|
|
236
|
-
|
|
237
|
-
// cli/src/commands/validate.ts
|
|
238
|
-
var MANIFEST_GLOBS = [
|
|
239
|
-
{ pattern: /\/SKILL\.md$/, kind: "skill" },
|
|
240
|
-
{ pattern: /\/agent\.yaml$/, kind: "agent" },
|
|
241
|
-
{ pattern: /\/AGENT\.md$/, kind: "agent" },
|
|
242
|
-
{ pattern: /\/CONTRACT\.md$/, kind: "contract" },
|
|
243
|
-
{ pattern: /\/PERSONA\.md$/, kind: "persona" },
|
|
244
|
-
{ pattern: /\/RULESET\.md$/, kind: "ruleset" },
|
|
245
|
-
{ pattern: /\.flow\.yaml$/, kind: "flow" },
|
|
246
|
-
{ pattern: /\.flow\.json$/, kind: "flow" },
|
|
247
|
-
{ pattern: /\/CONNECTOR\.md$/, kind: "connector" },
|
|
248
|
-
{ pattern: /\.prompt\.md$/, kind: "prompt" },
|
|
249
|
-
{ pattern: /\/MCP\.md$/, kind: "mcp-server" },
|
|
250
|
-
{ pattern: /\/knowledge\.yaml$/, kind: "knowledge" },
|
|
251
|
-
{ pattern: /\/knowledge\/index\.yaml$/, kind: "knowledge" },
|
|
252
|
-
{ pattern: /\.preset\.yaml$/, kind: "preset" }
|
|
253
|
-
];
|
|
254
22
|
var HARNESS_DIRS = /* @__PURE__ */ new Set([".claude", ".codex", ".omp"]);
|
|
255
23
|
var SKIP_DIRS = /* @__PURE__ */ new Set([
|
|
256
24
|
"node_modules",
|
|
@@ -265,12 +33,12 @@ function findManifestCandidates(rootPath) {
|
|
|
265
33
|
function walk(dir) {
|
|
266
34
|
let entries;
|
|
267
35
|
try {
|
|
268
|
-
entries =
|
|
36
|
+
entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
269
37
|
} catch {
|
|
270
38
|
return;
|
|
271
39
|
}
|
|
272
40
|
for (const entry of entries) {
|
|
273
|
-
const fullPath =
|
|
41
|
+
const fullPath = path.join(dir, entry.name);
|
|
274
42
|
if (entry.isDirectory()) {
|
|
275
43
|
if (!SKIP_DIRS.has(entry.name)) walk(fullPath);
|
|
276
44
|
} else if (entry.isFile()) {
|
|
@@ -287,10 +55,12 @@ function findManifestCandidates(rootPath) {
|
|
|
287
55
|
return candidates;
|
|
288
56
|
}
|
|
289
57
|
function parseManifestCandidate(c, absRoot) {
|
|
290
|
-
const content =
|
|
58
|
+
const content = fs.readFileSync(c.filePath, "utf-8");
|
|
291
59
|
const res = parseManifestFile(c.filePath, content);
|
|
292
60
|
if (!res.ok) {
|
|
293
|
-
logErr(
|
|
61
|
+
logErr(
|
|
62
|
+
`${path.relative(absRoot, c.filePath)} [${c.kind}] \u2014 ${manifestParseErrorText(res.reason)}`
|
|
63
|
+
);
|
|
294
64
|
return { kind: "error" };
|
|
295
65
|
}
|
|
296
66
|
return {
|
|
@@ -300,25 +70,25 @@ function parseManifestCandidate(c, absRoot) {
|
|
|
300
70
|
};
|
|
301
71
|
}
|
|
302
72
|
function libraryRootOf(absRoot) {
|
|
303
|
-
for (let dir = absRoot; ; dir =
|
|
304
|
-
if (
|
|
305
|
-
if (
|
|
73
|
+
for (let dir = absRoot; ; dir = path.dirname(dir)) {
|
|
74
|
+
if (fs.existsSync(path.join(dir, SKAILE_MANIFEST_FILENAME))) return dir;
|
|
75
|
+
if (path.dirname(dir) === dir) return absRoot;
|
|
306
76
|
}
|
|
307
77
|
}
|
|
308
78
|
function validateManifestCandidate(c, parsed, body, absRoot, registry, strictConformance, composeRefs) {
|
|
309
|
-
const relPath =
|
|
79
|
+
const relPath = path.relative(absRoot, c.filePath);
|
|
310
80
|
let errors = 0;
|
|
311
81
|
let warnings = 0;
|
|
312
|
-
const dirName =
|
|
82
|
+
const dirName = path.basename(path.dirname(c.filePath));
|
|
313
83
|
const checked = checkAsset(
|
|
314
84
|
c.kind,
|
|
315
85
|
parsed ?? {},
|
|
316
86
|
body,
|
|
317
87
|
dirName,
|
|
318
88
|
registry,
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
{ dir:
|
|
89
|
+
fs.readFileSync(c.filePath, "utf-8"),
|
|
90
|
+
path.basename(c.filePath),
|
|
91
|
+
{ dir: path.dirname(c.filePath), libraryRoot: libraryRootOf(absRoot), composeRefs }
|
|
322
92
|
);
|
|
323
93
|
for (const f of checked.errors) {
|
|
324
94
|
logErr(`${relPath} [${f.tag}] \u2014 ${f.text}`);
|
|
@@ -341,7 +111,7 @@ function scanIdentities(root) {
|
|
|
341
111
|
for (const c of findManifestCandidates(root)) {
|
|
342
112
|
let parsed;
|
|
343
113
|
try {
|
|
344
|
-
const res = parseManifestFile(c.filePath,
|
|
114
|
+
const res = parseManifestFile(c.filePath, fs.readFileSync(c.filePath, "utf-8"));
|
|
345
115
|
if (!res.ok) continue;
|
|
346
116
|
parsed = res.data;
|
|
347
117
|
} catch {
|
|
@@ -355,14 +125,14 @@ function scanIdentities(root) {
|
|
|
355
125
|
return identities;
|
|
356
126
|
}
|
|
357
127
|
function validateManifests(rootPath, strictConformance, registeredAssets = /* @__PURE__ */ new Set()) {
|
|
358
|
-
const absRoot =
|
|
359
|
-
if (!
|
|
128
|
+
const absRoot = path.resolve(rootPath);
|
|
129
|
+
if (!fs.existsSync(absRoot)) {
|
|
360
130
|
logErr(`Path does not exist: ${absRoot}`);
|
|
361
131
|
return { total: 0, errors: 1, warnings: 0 };
|
|
362
132
|
}
|
|
363
133
|
const registry = getKindRegistry();
|
|
364
134
|
const candidates = findManifestCandidates(absRoot);
|
|
365
|
-
const isLibrary =
|
|
135
|
+
const isLibrary = fs.existsSync(path.join(absRoot, SKAILE_MANIFEST_FILENAME));
|
|
366
136
|
let errors = reportLibrarySymlinks(absRoot, {
|
|
367
137
|
wholeTree: isLibrary,
|
|
368
138
|
skipDirs: isLibrary ? void 0 : HARNESS_DIRS
|
|
@@ -395,14 +165,14 @@ function validateManifests(rootPath, strictConformance, registeredAssets = /* @_
|
|
|
395
165
|
const obj = parseResult.parsed;
|
|
396
166
|
const identity = obj && typeof obj === "object" ? obj[c.kind === "flow" ? "id" : "name"] : null;
|
|
397
167
|
if (typeof identity === "string" && identity.length > 0) {
|
|
398
|
-
const dir =
|
|
168
|
+
const dir = path.dirname(c.filePath);
|
|
399
169
|
const key = `${c.kind}:${identity}`;
|
|
400
170
|
const first = seenIdentity.get(key);
|
|
401
171
|
if (first === void 0) {
|
|
402
172
|
seenIdentity.set(key, dir);
|
|
403
173
|
} else if (first !== dir) {
|
|
404
174
|
logErr(
|
|
405
|
-
`${
|
|
175
|
+
`${path.relative(absRoot, c.filePath)} [${c.kind}] \u2014 ${key} is also defined in ${path.relative(absRoot, first) || "."}; two directories cannot share a kind and name (\`skaile library index\` keeps only the first).`
|
|
406
176
|
);
|
|
407
177
|
errors++;
|
|
408
178
|
}
|
|
@@ -415,12 +185,12 @@ function findWorkspaceManifests(rootPath) {
|
|
|
415
185
|
function walk(dir) {
|
|
416
186
|
let entries;
|
|
417
187
|
try {
|
|
418
|
-
entries =
|
|
188
|
+
entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
419
189
|
} catch {
|
|
420
190
|
return;
|
|
421
191
|
}
|
|
422
192
|
for (const entry of entries) {
|
|
423
|
-
const full =
|
|
193
|
+
const full = path.join(dir, entry.name);
|
|
424
194
|
if (entry.isDirectory()) {
|
|
425
195
|
if (!SKIP_DIRS.has(entry.name)) walk(full);
|
|
426
196
|
} else if (entry.isFile() && /(^|\.)skaile\.yaml$/.test(entry.name)) {
|
|
@@ -500,7 +270,7 @@ function validateLocalConnectorMountPaths(projectDir, relPath, connectors) {
|
|
|
500
270
|
const dir = localConnectorMountDir(c, projectDir);
|
|
501
271
|
if (!dir) continue;
|
|
502
272
|
const escapesTo = symlinkEscapeOfProject(dir, projectDir);
|
|
503
|
-
if (!
|
|
273
|
+
if (!fs.existsSync(dir)) {
|
|
504
274
|
logErr(
|
|
505
275
|
`${relPath} [connectors] \u2014 connector_mount_path_missing: connectors.${c.id}.mountPath: ${dir} does not exist; create the directory or fix the path`
|
|
506
276
|
);
|
|
@@ -519,14 +289,14 @@ function validateLocalConnectorMountPaths(projectDir, relPath, connectors) {
|
|
|
519
289
|
return errors;
|
|
520
290
|
}
|
|
521
291
|
async function validateWorkspaceManifests(rootPath) {
|
|
522
|
-
const absRoot =
|
|
292
|
+
const absRoot = path.resolve(rootPath);
|
|
523
293
|
const files = findWorkspaceManifests(absRoot);
|
|
524
294
|
let errors = 0;
|
|
525
295
|
for (const file of files) {
|
|
526
|
-
const relPath =
|
|
296
|
+
const relPath = path.relative(absRoot, file);
|
|
527
297
|
let parsed;
|
|
528
298
|
try {
|
|
529
|
-
parsed = parse(
|
|
299
|
+
parsed = parse(fs.readFileSync(file, "utf-8")) ?? {};
|
|
530
300
|
} catch (e) {
|
|
531
301
|
logErr(`${relPath} \u2014 parse error: ${e instanceof Error ? e.message : String(e)}`);
|
|
532
302
|
errors++;
|
|
@@ -534,7 +304,7 @@ async function validateWorkspaceManifests(rootPath) {
|
|
|
534
304
|
}
|
|
535
305
|
errors += validateWorkspaceRefs(collectWorkspaceRefFields(parsed), relPath);
|
|
536
306
|
errors += validateWorkspaceAssets(parsed, relPath);
|
|
537
|
-
for (const d of checkAgentInstances(
|
|
307
|
+
for (const d of checkAgentInstances(path.dirname(file), parsed)) {
|
|
538
308
|
const line = `${relPath} [agents] \u2014 ${d.code}: ${d.path ? `${d.path}: ` : ""}${d.message}`;
|
|
539
309
|
if (d.severity === "error") {
|
|
540
310
|
logErr(line);
|
|
@@ -543,7 +313,7 @@ async function validateWorkspaceManifests(rootPath) {
|
|
|
543
313
|
logWarn(line);
|
|
544
314
|
}
|
|
545
315
|
}
|
|
546
|
-
const decoded = decodeSkaileYaml(
|
|
316
|
+
const decoded = decodeSkaileYaml(fs.readFileSync(file, "utf-8"));
|
|
547
317
|
for (const d of decoded.diagnostics) {
|
|
548
318
|
if (!CONNECTOR_ERROR_CODES.includes(d.code)) continue;
|
|
549
319
|
logErr(`${relPath} [connectors] \u2014 ${d.code}: ${d.path ? `${d.path}: ` : ""}${d.message}`);
|
|
@@ -554,13 +324,28 @@ async function validateWorkspaceManifests(rootPath) {
|
|
|
554
324
|
logErr(relPath === "skaile.yaml" ? d.message : `${relPath} \u2014 ${d.message}`);
|
|
555
325
|
errors++;
|
|
556
326
|
}
|
|
327
|
+
for (const d of decoded.diagnostics) {
|
|
328
|
+
if (d.code !== "deprecated_harness_key" && d.code !== "harness_key_conflict") continue;
|
|
329
|
+
const line = `${relPath} [agent-config] \u2014 ${d.code}: ${d.message}`;
|
|
330
|
+
if (d.severity === "error") {
|
|
331
|
+
logErr(line);
|
|
332
|
+
errors++;
|
|
333
|
+
} else {
|
|
334
|
+
logWarn(line);
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
for (const line of unknownKeyWarnings(decoded.diagnostics, relPath)) logWarn(line);
|
|
338
|
+
for (const line of await unknownHarnessErrors(path.dirname(file), decoded.config, relPath)) {
|
|
339
|
+
logErr(line);
|
|
340
|
+
errors++;
|
|
341
|
+
}
|
|
557
342
|
errors += validateLocalConnectorMountPaths(
|
|
558
|
-
|
|
343
|
+
path.dirname(file),
|
|
559
344
|
relPath,
|
|
560
345
|
decoded.config?.connectors ?? []
|
|
561
346
|
);
|
|
562
347
|
if ((decoded.config?.connectors ?? []).length > 0) {
|
|
563
|
-
const assets = await resolveRuntimeAssets(
|
|
348
|
+
const assets = await resolveRuntimeAssets(path.dirname(file));
|
|
564
349
|
if (!assets.warnings.some((w) => w.code === "repo_unavailable")) {
|
|
565
350
|
for (const w of assets.warnings) {
|
|
566
351
|
if (w.code !== "missing_driver" || !w.name) continue;
|
|
@@ -573,7 +358,7 @@ async function validateWorkspaceManifests(rootPath) {
|
|
|
573
358
|
return { total: files.length, errors };
|
|
574
359
|
}
|
|
575
360
|
function validatePublishManifestRoots(rootPath) {
|
|
576
|
-
const absRoot =
|
|
361
|
+
const absRoot = path.resolve(rootPath);
|
|
577
362
|
const manifest = loadSkPublishManifest(absRoot);
|
|
578
363
|
if (!manifest) return 0;
|
|
579
364
|
const missing = missingRootAssets(absRoot, manifest);
|
|
@@ -582,40 +367,37 @@ function validatePublishManifestRoots(rootPath) {
|
|
|
582
367
|
`${SKAILE_MANIFEST_FILENAME} [assets] \u2014 ${assetEntryRef(a, manifest)}: root "${a.root}" does not exist. Run \`skaile library index <library>\` to drop the entry, or restore the directory.`
|
|
583
368
|
);
|
|
584
369
|
}
|
|
585
|
-
|
|
586
|
-
if (!manifest.source) {
|
|
587
|
-
for (const a of manifest.assets ?? []) {
|
|
588
|
-
if (a.root || a.source || !Array.isArray(a.files) || a.files.length === 0) continue;
|
|
589
|
-
const patterns = a.files.map((f) => typeof f === "string" ? f : f.path).filter(Boolean);
|
|
590
|
-
const { unmatched } = expandManifestFiles(absRoot, patterns);
|
|
591
|
-
if (unmatched.length === 0) continue;
|
|
592
|
-
unmatchedEntries++;
|
|
593
|
-
logErr(
|
|
594
|
-
`${SKAILE_MANIFEST_FILENAME} [assets] \u2014 ${assetEntryRef(a, manifest)}: files: ${unmatched.join(", ")} not found. Fix the \`files:\` list or drop the entry.`
|
|
595
|
-
);
|
|
596
|
-
}
|
|
597
|
-
}
|
|
598
|
-
return missing.length + unmatchedEntries;
|
|
370
|
+
return missing.length;
|
|
599
371
|
}
|
|
600
372
|
async function validatePublishManifestUnlisted(rootPath) {
|
|
601
|
-
const absRoot =
|
|
373
|
+
const absRoot = path.resolve(rootPath);
|
|
602
374
|
const manifest = loadSkPublishManifest(absRoot);
|
|
603
375
|
if (!manifest) return 0;
|
|
376
|
+
const registry = getKindRegistry();
|
|
377
|
+
const libraryRoot = libraryRootOf(absRoot);
|
|
378
|
+
const composeRefs = composeRefContext(
|
|
379
|
+
scanIdentities(libraryRoot),
|
|
380
|
+
await registeredAssetKeys(libraryRoot),
|
|
381
|
+
manifest.publisher
|
|
382
|
+
);
|
|
604
383
|
const unlisted = (await scanUnlistedAssets(
|
|
605
384
|
absRoot,
|
|
606
|
-
manifest.publisher ??
|
|
607
|
-
|
|
385
|
+
manifest.publisher ?? path.basename(absRoot),
|
|
386
|
+
registry,
|
|
608
387
|
UNLISTED_SCAN_SKIP_DIRS
|
|
609
|
-
)).filter(
|
|
388
|
+
)).filter(
|
|
389
|
+
(u) => !u.registeredAt && !u.parseFailure && // a file that does not parse has its own parse error
|
|
390
|
+
checkAssetFile(u.entry.source, u.entry.kind, registry, absRoot, composeRefs).length === 0
|
|
391
|
+
);
|
|
610
392
|
for (const u of unlisted) {
|
|
611
393
|
logErr(
|
|
612
|
-
`${
|
|
394
|
+
`${path.relative(absRoot, u.entry.source)} [${u.entry.kind}] \u2014 ${u.entry.kind}:${u.entry.name} is on disk but not in ${SKAILE_MANIFEST_FILENAME}, so it is not published. Run \`skaile library index <library>\` to list it, or delete the directory.`
|
|
613
395
|
);
|
|
614
396
|
}
|
|
615
397
|
return unlisted.length;
|
|
616
398
|
}
|
|
617
399
|
function validatePublishManifestRequires(rootPath) {
|
|
618
|
-
const problems = manifestRequiresProblems(
|
|
400
|
+
const problems = manifestRequiresProblems(path.resolve(rootPath));
|
|
619
401
|
for (const p of problems) {
|
|
620
402
|
logErr(
|
|
621
403
|
`${SKAILE_MANIFEST_FILENAME} [assets] \u2014 ${p.asset}: ${p.message}. Use the \`kind:@<publisher>/name[#version]\` form.`
|
|
@@ -624,29 +406,30 @@ function validatePublishManifestRequires(rootPath) {
|
|
|
624
406
|
return problems.length;
|
|
625
407
|
}
|
|
626
408
|
function validatePublishManifestPublisherSlugs(rootPath) {
|
|
627
|
-
const problems = manifestPublisherProblems(
|
|
409
|
+
const problems = manifestPublisherProblems(path.resolve(rootPath));
|
|
628
410
|
for (const message of problems) logErr(message);
|
|
629
411
|
return problems.length;
|
|
630
412
|
}
|
|
631
413
|
function validatePublishManifestRootPaths(rootPath) {
|
|
632
414
|
const problems = [
|
|
633
|
-
...manifestRootProblems(
|
|
634
|
-
...
|
|
415
|
+
...manifestRootProblems(path.resolve(rootPath)),
|
|
416
|
+
...manifestFilesProblems(path.resolve(rootPath)),
|
|
417
|
+
...manifestEntryNameProblems(path.resolve(rootPath))
|
|
635
418
|
];
|
|
636
419
|
for (const message of problems) logErr(message);
|
|
637
420
|
return problems.length;
|
|
638
421
|
}
|
|
639
422
|
function validatePublishManifestParses(rootPath) {
|
|
640
423
|
try {
|
|
641
|
-
assertManifestEditable(
|
|
424
|
+
assertManifestEditable(path.resolve(rootPath));
|
|
642
425
|
return 0;
|
|
643
|
-
} catch (
|
|
644
|
-
logErr(
|
|
426
|
+
} catch (err) {
|
|
427
|
+
logErr(err instanceof Error ? err.message : String(err));
|
|
645
428
|
return 1;
|
|
646
429
|
}
|
|
647
430
|
}
|
|
648
431
|
function validatePublishManifestVersions(rootPath) {
|
|
649
|
-
const absRoot =
|
|
432
|
+
const absRoot = path.resolve(rootPath);
|
|
650
433
|
const manifest = loadSkPublishManifest(absRoot);
|
|
651
434
|
if (!manifest || manifest.source) return 0;
|
|
652
435
|
let warnings = 0;
|
|
@@ -654,7 +437,7 @@ function validatePublishManifestVersions(rootPath) {
|
|
|
654
437
|
if (a.source || !a.version) continue;
|
|
655
438
|
const file = findEntryManifestFile(absRoot, a);
|
|
656
439
|
if (!file) continue;
|
|
657
|
-
const res = parseManifestFile(file,
|
|
440
|
+
const res = parseManifestFile(file, fs.readFileSync(file, "utf-8"));
|
|
658
441
|
if (!res.ok) continue;
|
|
659
442
|
const fileVersion = declaredVersion(res.data);
|
|
660
443
|
if (fileVersion === void 0 || fileVersion === a.version) continue;
|
|
@@ -662,7 +445,7 @@ function validatePublishManifestVersions(rootPath) {
|
|
|
662
445
|
manifestVersionMismatchMessage(
|
|
663
446
|
assetEntryRef(a, manifest),
|
|
664
447
|
a.version,
|
|
665
|
-
toPosix(
|
|
448
|
+
toPosix(path.relative(absRoot, file)),
|
|
666
449
|
fileVersion
|
|
667
450
|
)
|
|
668
451
|
);
|
|
@@ -671,7 +454,7 @@ function validatePublishManifestVersions(rootPath) {
|
|
|
671
454
|
return warnings;
|
|
672
455
|
}
|
|
673
456
|
function validatePublishManifestPublishers(rootPath) {
|
|
674
|
-
const absRoot =
|
|
457
|
+
const absRoot = path.resolve(rootPath);
|
|
675
458
|
const manifest = loadSkPublishManifest(absRoot);
|
|
676
459
|
if (!manifest || manifest.source) return 0;
|
|
677
460
|
const bare = (p) => p.trim().replace(/^@/, "");
|
|
@@ -681,13 +464,13 @@ function validatePublishManifestPublishers(rootPath) {
|
|
|
681
464
|
if (a.source || !resolved) continue;
|
|
682
465
|
const file = findEntryManifestFile(absRoot, a);
|
|
683
466
|
if (!file) continue;
|
|
684
|
-
const res = parseManifestFile(file,
|
|
467
|
+
const res = parseManifestFile(file, fs.readFileSync(file, "utf-8"));
|
|
685
468
|
if (!res.ok) continue;
|
|
686
469
|
const meta = res.data.metadata;
|
|
687
470
|
const declared = meta !== null && typeof meta === "object" ? meta.publisher : null;
|
|
688
471
|
if (typeof declared !== "string" || bare(declared) === bare(resolved)) continue;
|
|
689
472
|
logWarn(
|
|
690
|
-
`${toPosix(
|
|
473
|
+
`${toPosix(path.relative(absRoot, file))} [publisher] \u2014 metadata.publisher "${bare(declared)}" differs from the manifest publisher "${bare(resolved)}" for ${assetEntryRef(a, manifest)}. The manifest wins and the file value is ignored: delete \`metadata.publisher\` from the file, or set the publisher in ${SKAILE_MANIFEST_FILENAME}.`
|
|
691
474
|
);
|
|
692
475
|
warnings++;
|
|
693
476
|
}
|
|
@@ -695,7 +478,7 @@ function validatePublishManifestPublishers(rootPath) {
|
|
|
695
478
|
}
|
|
696
479
|
var EXCLUDED_PATHS = ["skaileup-shared/", "external/", "docs/"];
|
|
697
480
|
function toPosix(p) {
|
|
698
|
-
return p.split(
|
|
481
|
+
return p.split(path.sep).join("/");
|
|
699
482
|
}
|
|
700
483
|
function isExcludedPath(relPath) {
|
|
701
484
|
const rel = toPosix(relPath);
|
|
@@ -711,9 +494,9 @@ var VERSIONED_KINDS = {
|
|
|
711
494
|
};
|
|
712
495
|
function readAssetVersion(c) {
|
|
713
496
|
const kind = c.kind;
|
|
714
|
-
const fileName =
|
|
715
|
-
const dirName =
|
|
716
|
-
const content =
|
|
497
|
+
const fileName = path.basename(c.filePath);
|
|
498
|
+
const dirName = path.basename(path.dirname(c.filePath));
|
|
499
|
+
const content = fs.readFileSync(c.filePath, "utf-8");
|
|
717
500
|
if (c.filePath.endsWith(".md")) {
|
|
718
501
|
const res = parseManifestFile(c.filePath, content);
|
|
719
502
|
const data = res.ok ? res.data : {};
|
|
@@ -746,26 +529,26 @@ function readAssetVersion(c) {
|
|
|
746
529
|
};
|
|
747
530
|
}
|
|
748
531
|
function collectAssetVersions(root) {
|
|
749
|
-
if (!
|
|
532
|
+
if (!fs.existsSync(root)) return [];
|
|
750
533
|
const assets = [];
|
|
751
534
|
for (const c of findManifestCandidates(root)) {
|
|
752
535
|
if (!VERSIONED_KINDS[c.kind]) continue;
|
|
753
536
|
if (c.filePath.endsWith(".flow.json")) continue;
|
|
754
|
-
if (isExcludedPath(
|
|
537
|
+
if (isExcludedPath(path.relative(root, c.filePath))) continue;
|
|
755
538
|
assets.push(readAssetVersion(c));
|
|
756
539
|
}
|
|
757
540
|
return assets;
|
|
758
541
|
}
|
|
759
542
|
function assetLocation(a, root) {
|
|
760
|
-
return toPosix(
|
|
543
|
+
return toPosix(path.relative(root, a.filePath));
|
|
761
544
|
}
|
|
762
545
|
function findChangelogUnit(assetRelPath, root) {
|
|
763
|
-
let dir =
|
|
546
|
+
let dir = path.posix.dirname(toPosix(assetRelPath));
|
|
764
547
|
for (; ; ) {
|
|
765
548
|
const candidate = dir === "." ? "CHANGELOG.md" : `${dir}/CHANGELOG.md`;
|
|
766
|
-
if (
|
|
549
|
+
if (fs.existsSync(path.join(root, candidate))) return candidate;
|
|
767
550
|
if (dir === ".") return null;
|
|
768
|
-
dir =
|
|
551
|
+
dir = path.posix.dirname(dir);
|
|
769
552
|
}
|
|
770
553
|
}
|
|
771
554
|
function checkChangelogUnits(modifiedFiles, root) {
|
|
@@ -815,7 +598,7 @@ function checkVersionBumps(assets, root) {
|
|
|
815
598
|
let warnings = 0;
|
|
816
599
|
for (const a of assets) {
|
|
817
600
|
if (!a.version) continue;
|
|
818
|
-
const relPath = toPosix(
|
|
601
|
+
const relPath = toPosix(path.relative(root, a.filePath));
|
|
819
602
|
try {
|
|
820
603
|
const headContent = execFileSync("git", ["show", `HEAD:./${relPath}`], {
|
|
821
604
|
cwd: root,
|
|
@@ -846,9 +629,9 @@ function checkFlowVersionPins(assets, root) {
|
|
|
846
629
|
let pins;
|
|
847
630
|
try {
|
|
848
631
|
pins = flowSkillVersionPins(loadFlow(f.filePath));
|
|
849
|
-
} catch (
|
|
632
|
+
} catch (err) {
|
|
850
633
|
logWarn(
|
|
851
|
-
`flow:${f.name} (${
|
|
634
|
+
`flow:${f.name} (${path.relative(root, f.filePath)}) \u2014 could not be read: ${err instanceof Error ? err.message : err}`
|
|
852
635
|
);
|
|
853
636
|
warnings++;
|
|
854
637
|
continue;
|
|
@@ -866,16 +649,16 @@ function checkFlowVersionPins(assets, root) {
|
|
|
866
649
|
}
|
|
867
650
|
function resolveCheckRoot(pathArg) {
|
|
868
651
|
if (pathArg) {
|
|
869
|
-
const abs =
|
|
870
|
-
if (!
|
|
652
|
+
const abs = path.resolve(pathArg);
|
|
653
|
+
if (!fs.existsSync(abs)) {
|
|
871
654
|
logErr(`Path does not exist: ${abs}`);
|
|
872
655
|
return null;
|
|
873
656
|
}
|
|
874
657
|
return abs;
|
|
875
658
|
}
|
|
876
|
-
for (let dir = process.cwd(); ; dir =
|
|
877
|
-
if (
|
|
878
|
-
if (
|
|
659
|
+
for (let dir = process.cwd(); ; dir = path.dirname(dir)) {
|
|
660
|
+
if (fs.existsSync(path.join(dir, SKAILE_MANIFEST_FILENAME))) return dir;
|
|
661
|
+
if (path.dirname(dir) === dir) return AI_RESOURCES;
|
|
879
662
|
}
|
|
880
663
|
}
|
|
881
664
|
function isInGitWorkTree(root) {
|
|
@@ -889,11 +672,28 @@ function isInGitWorkTree(root) {
|
|
|
889
672
|
return false;
|
|
890
673
|
}
|
|
891
674
|
}
|
|
675
|
+
function hasCommit(root) {
|
|
676
|
+
try {
|
|
677
|
+
execFileSync("git", ["rev-parse", "--verify", "--quiet", "HEAD"], {
|
|
678
|
+
cwd: root,
|
|
679
|
+
stdio: ["ignore", "ignore", "ignore"]
|
|
680
|
+
});
|
|
681
|
+
return true;
|
|
682
|
+
} catch {
|
|
683
|
+
return false;
|
|
684
|
+
}
|
|
685
|
+
}
|
|
892
686
|
function changedFiles(root, ref, what, opts = {}) {
|
|
893
687
|
if (!isInGitWorkTree(root)) {
|
|
894
688
|
logErr(`${what} needs a git repository: ${root} is not inside a git work tree.`);
|
|
895
689
|
return null;
|
|
896
690
|
}
|
|
691
|
+
if (ref === "HEAD" && !hasCommit(root)) {
|
|
692
|
+
logErr(
|
|
693
|
+
`${what} compares with the last commit, and ${root} has no commit yet. Commit the library first (\`skaile library commit <name>\`), then run it again.`
|
|
694
|
+
);
|
|
695
|
+
return null;
|
|
696
|
+
}
|
|
897
697
|
try {
|
|
898
698
|
const out = execFileSync(
|
|
899
699
|
"git",
|
|
@@ -914,16 +714,16 @@ function changedFiles(root, ref, what, opts = {}) {
|
|
|
914
714
|
changed.push(...fresh.trim().split("\n").filter(Boolean));
|
|
915
715
|
}
|
|
916
716
|
return changed;
|
|
917
|
-
} catch (
|
|
918
|
-
const stderr =
|
|
919
|
-
const reason = (stderr || (
|
|
717
|
+
} catch (err) {
|
|
718
|
+
const stderr = err instanceof Error && "stderr" in err ? String(err.stderr).trim() : "";
|
|
719
|
+
const reason = (stderr || (err instanceof Error ? err.message : String(err))).split("\n")[0];
|
|
920
720
|
logErr(`git diff failed in ${root}: ${reason}`);
|
|
921
721
|
return null;
|
|
922
722
|
}
|
|
923
723
|
}
|
|
924
724
|
function assetOwnDir(a) {
|
|
925
|
-
const dir =
|
|
926
|
-
if (["skill", "agent", "contract"].includes(a.kind) ||
|
|
725
|
+
const dir = path.dirname(a.filePath);
|
|
726
|
+
if (["skill", "agent", "contract"].includes(a.kind) || path.basename(dir) === a.name) return dir;
|
|
927
727
|
return null;
|
|
928
728
|
}
|
|
929
729
|
function assetChanged(a, changedAbs) {
|
|
@@ -931,8 +731,8 @@ function assetChanged(a, changedAbs) {
|
|
|
931
731
|
const dir = assetOwnDir(a);
|
|
932
732
|
if (dir === null) return false;
|
|
933
733
|
for (const f of changedAbs) {
|
|
934
|
-
const rel =
|
|
935
|
-
if (rel.startsWith("..") ||
|
|
734
|
+
const rel = path.relative(dir, f);
|
|
735
|
+
if (rel.startsWith("..") || path.isAbsolute(rel)) continue;
|
|
936
736
|
if (!isNonAssetPath(toPosix(rel))) return true;
|
|
937
737
|
}
|
|
938
738
|
return false;
|
|
@@ -957,7 +757,7 @@ function runVersionsCheck(pathArg, opts) {
|
|
|
957
757
|
process.exit(1);
|
|
958
758
|
return;
|
|
959
759
|
}
|
|
960
|
-
const changedAbs = new Set(changed.map((f) =>
|
|
760
|
+
const changedAbs = new Set(changed.map((f) => path.resolve(root, f)));
|
|
961
761
|
assets = assets.filter((a) => assetChanged(a, changedAbs));
|
|
962
762
|
}
|
|
963
763
|
logInfo(`Checking versions in ${root}`);
|
|
@@ -990,8 +790,8 @@ function makeValidateCommand() {
|
|
|
990
790
|
"--strict-conformance",
|
|
991
791
|
"Treat Agent Skills (agentskills.io) standard findings as errors"
|
|
992
792
|
).action(async (targetPath, opts) => {
|
|
993
|
-
const absPath =
|
|
994
|
-
if (
|
|
793
|
+
const absPath = path.resolve(targetPath);
|
|
794
|
+
if (fs.existsSync(absPath) && !fs.statSync(absPath).isDirectory()) {
|
|
995
795
|
logErr(`${absPath} is not a directory: nothing to validate. Pass the library directory.`);
|
|
996
796
|
process.exit(1);
|
|
997
797
|
return;
|
|
@@ -1019,7 +819,7 @@ function makeValidateCommand() {
|
|
|
1019
819
|
warnIgnoredDomainFiles(absPath);
|
|
1020
820
|
warnLegacyBundleFiles(absPath);
|
|
1021
821
|
logInfo(`Scanned ${total} asset manifest(s) and ${ws.total} skaile.yaml file(s)`);
|
|
1022
|
-
if (total === 0 && ws.total === 0 && totalErrors === 0 && !
|
|
822
|
+
if (total === 0 && ws.total === 0 && totalErrors === 0 && !fs.existsSync(path.join(absPath, SKAILE_MANIFEST_FILENAME))) {
|
|
1023
823
|
logErr(
|
|
1024
824
|
`Nothing to validate in ${absPath}: no asset manifest, skaile.yaml or ${SKAILE_MANIFEST_FILENAME} found.`
|
|
1025
825
|
);
|
|
@@ -1067,6 +867,6 @@ function makeValidateCommand() {
|
|
|
1067
867
|
return cmd;
|
|
1068
868
|
}
|
|
1069
869
|
|
|
1070
|
-
export {
|
|
1071
|
-
//# sourceMappingURL=chunk-
|
|
1072
|
-
//# sourceMappingURL=chunk-
|
|
870
|
+
export { makeValidateCommand, scanIdentities };
|
|
871
|
+
//# sourceMappingURL=chunk-IHFGPHCT.js.map
|
|
872
|
+
//# sourceMappingURL=chunk-IHFGPHCT.js.map
|