@skaile/workspaces 6.1.0 → 6.2.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 +48 -0
- package/dist/{asset-feeds-HJFV7UPW.js → asset-feeds-KPKCE64E.js} +26 -26
- package/dist/{asset-feeds-HJFV7UPW.js.map → asset-feeds-KPKCE64E.js.map} +1 -1
- package/dist/asset-manager/catalog-deployer.js +10 -10
- package/dist/asset-manager/fragments.js +1 -1
- package/dist/asset-manager/index.js +18 -18
- package/dist/asset-manager/installer.js +13 -13
- package/dist/asset-manager/renderers.js +11 -11
- package/dist/asset-manager/src/index.d.ts +149 -16
- package/dist/asset-manager/src/index.d.ts.map +1 -1
- package/dist/asset-manager/src/installer.d.ts +9 -0
- package/dist/asset-manager/src/installer.d.ts.map +1 -1
- package/dist/asset-manager/src/renderers.d.ts +7 -0
- package/dist/asset-manager/src/renderers.d.ts.map +1 -1
- package/dist/bridge/harnesses/claude-sdk.js +15 -15
- package/dist/bridge/harnesses/codex.js +24 -17
- package/dist/bridge/harnesses/codex.js.map +1 -1
- package/dist/bridge/harnesses/continue.js +14 -14
- package/dist/bridge/harnesses/echo.js +4 -4
- package/dist/bridge/harnesses/gemini.js +10 -10
- package/dist/bridge/harnesses/goose.js +14 -14
- package/dist/bridge/harnesses/omp.js +15 -8
- package/dist/bridge/harnesses/omp.js.map +1 -1
- package/dist/bridge/harnesses/opencode.js +14 -14
- package/dist/bridge/harnesses/qwen.js +10 -10
- package/dist/bridge/index.js +19 -19
- package/dist/bridge/src/harness-model-check.d.ts +15 -0
- package/dist/bridge/src/harness-model-check.d.ts.map +1 -1
- package/dist/bridge/src/harnesses/_subprocess-cli.d.ts.map +1 -1
- package/dist/bridge/src/harnesses/codex.d.ts.map +1 -1
- package/dist/bridge/src/harnesses/omp.d.ts.map +1 -1
- package/dist/bridge/src/index.d.ts +1 -1
- package/dist/bridge/src/index.d.ts.map +1 -1
- package/dist/bridge/src/runner-private-env.d.ts +7 -0
- package/dist/bridge/src/runner-private-env.d.ts.map +1 -1
- package/dist/{chunk-DIGFA7Z5.js → chunk-27SXN33H.js} +13 -5
- package/dist/chunk-27SXN33H.js.map +1 -0
- package/dist/{chunk-AITJ7ELM.js → chunk-2XM3ZH36.js} +59 -23
- package/dist/chunk-2XM3ZH36.js.map +1 -0
- package/dist/{chunk-KUQAJVYT.js → chunk-3HACK2Z7.js} +142 -28
- package/dist/chunk-3HACK2Z7.js.map +1 -0
- package/dist/{chunk-J72MO2WA.js → chunk-5JPW27BI.js} +10 -9
- package/dist/chunk-5JPW27BI.js.map +1 -0
- package/dist/{chunk-AATHJRKL.js → chunk-5LQ62LNT.js} +4 -4
- package/dist/{chunk-AATHJRKL.js.map → chunk-5LQ62LNT.js.map} +1 -1
- package/dist/{chunk-S2XHGWQC.js → chunk-6CYKTHNT.js} +44 -15
- package/dist/chunk-6CYKTHNT.js.map +1 -0
- package/dist/{chunk-XFIEVEU7.js → chunk-6OHZUUR7.js} +5 -4
- package/dist/chunk-6OHZUUR7.js.map +1 -0
- package/dist/{chunk-E572OHGY.js → chunk-76FLBODK.js} +4 -3
- package/dist/chunk-76FLBODK.js.map +1 -0
- package/dist/{chunk-HPMQRAIF.js → chunk-7DRFKAJZ.js} +7 -7
- package/dist/{chunk-HPMQRAIF.js.map → chunk-7DRFKAJZ.js.map} +1 -1
- package/dist/{chunk-EX3GLAL6.js → chunk-7H6XRCPG.js} +5 -5
- package/dist/{chunk-EX3GLAL6.js.map → chunk-7H6XRCPG.js.map} +1 -1
- package/dist/{chunk-4FVIT5DI.js → chunk-7Y6S4XLL.js} +3 -3
- package/dist/{chunk-4FVIT5DI.js.map → chunk-7Y6S4XLL.js.map} +1 -1
- package/dist/{chunk-RDTLPOPD.js → chunk-BEYNH2LS.js} +4 -4
- package/dist/{chunk-RDTLPOPD.js.map → chunk-BEYNH2LS.js.map} +1 -1
- package/dist/{chunk-GNZBFSRB.js → chunk-BOT64P3U.js} +4 -4
- package/dist/{chunk-GNZBFSRB.js.map → chunk-BOT64P3U.js.map} +1 -1
- package/dist/{chunk-VMVDAZLA.js → chunk-BRK5QZKI.js} +108 -19
- package/dist/chunk-BRK5QZKI.js.map +1 -0
- package/dist/{chunk-QSYQOTWN.js → chunk-BY5WIRCU.js} +58 -5
- package/dist/chunk-BY5WIRCU.js.map +1 -0
- package/dist/{chunk-Z7ZEZZB6.js → chunk-C5HFK34M.js} +3 -3
- package/dist/chunk-C5HFK34M.js.map +1 -0
- package/dist/{chunk-ABFPSVIS.js → chunk-COAFAYBS.js} +31 -7
- package/dist/chunk-COAFAYBS.js.map +1 -0
- package/dist/{chunk-YLLVSR2U.js → chunk-E5NQRHEB.js} +30 -7
- package/dist/chunk-E5NQRHEB.js.map +1 -0
- package/dist/{chunk-BFMYYNDT.js → chunk-F3D25RGM.js} +11 -3
- package/dist/chunk-F3D25RGM.js.map +1 -0
- package/dist/{chunk-QAKUD6QN.js → chunk-GF5JXQIZ.js} +3 -3
- package/dist/{chunk-QAKUD6QN.js.map → chunk-GF5JXQIZ.js.map} +1 -1
- package/dist/{chunk-ZFUZ5AKM.js → chunk-I7LC5TDY.js} +3 -3
- package/dist/{chunk-ZFUZ5AKM.js.map → chunk-I7LC5TDY.js.map} +1 -1
- package/dist/{chunk-NB7SYQYP.js → chunk-ICSGNT5P.js} +7 -7
- package/dist/{chunk-NB7SYQYP.js.map → chunk-ICSGNT5P.js.map} +1 -1
- package/dist/{chunk-CEKW3KXP.js → chunk-ITFCWMOY.js} +18 -15
- package/dist/chunk-ITFCWMOY.js.map +1 -0
- package/dist/{chunk-LSSYC5IC.js → chunk-IZQOO6MN.js} +2 -2
- package/dist/{chunk-LSSYC5IC.js.map → chunk-IZQOO6MN.js.map} +1 -1
- package/dist/{chunk-7LP7RCZI.js → chunk-JFLQICIU.js} +5 -5
- package/dist/{chunk-7LP7RCZI.js.map → chunk-JFLQICIU.js.map} +1 -1
- package/dist/{chunk-COYF6IG2.js → chunk-JJJ2G4K2.js} +5 -5
- package/dist/{chunk-COYF6IG2.js.map → chunk-JJJ2G4K2.js.map} +1 -1
- package/dist/{chunk-RHN5MRQO.js → chunk-JMIKGAUA.js} +27 -5
- package/dist/chunk-JMIKGAUA.js.map +1 -0
- package/dist/{chunk-DGTI65OC.js → chunk-K3R2UKG7.js} +17 -11
- package/dist/chunk-K3R2UKG7.js.map +1 -0
- package/dist/{chunk-3GMOPFWH.js → chunk-KB56WBQ3.js} +4 -4
- package/dist/{chunk-3GMOPFWH.js.map → chunk-KB56WBQ3.js.map} +1 -1
- package/dist/{chunk-ZHGKAZJ7.js → chunk-KJSC2ZD6.js} +56 -8
- package/dist/chunk-KJSC2ZD6.js.map +1 -0
- package/dist/{chunk-ZBHZLWV3.js → chunk-KPKGWXUJ.js} +4 -4
- package/dist/{chunk-ZBHZLWV3.js.map → chunk-KPKGWXUJ.js.map} +1 -1
- package/dist/{chunk-EJPMNDTP.js → chunk-KXJMQTOU.js} +3 -3
- package/dist/{chunk-EJPMNDTP.js.map → chunk-KXJMQTOU.js.map} +1 -1
- package/dist/{chunk-7HX6FNKL.js → chunk-LRBP3234.js} +41 -56
- package/dist/chunk-LRBP3234.js.map +1 -0
- package/dist/{chunk-FKQNBCDW.js → chunk-M4OG2YN4.js} +4 -4
- package/dist/{chunk-FKQNBCDW.js.map → chunk-M4OG2YN4.js.map} +1 -1
- package/dist/{chunk-UI745XC3.js → chunk-MAZ3UXJK.js} +13 -7
- package/dist/chunk-MAZ3UXJK.js.map +1 -0
- package/dist/{chunk-ASWTQQ7E.js → chunk-MM4YO3EL.js} +3 -3
- package/dist/{chunk-ASWTQQ7E.js.map → chunk-MM4YO3EL.js.map} +1 -1
- package/dist/{chunk-6YR4ALVX.js → chunk-OCQNUV4T.js} +7 -7
- package/dist/{chunk-6YR4ALVX.js.map → chunk-OCQNUV4T.js.map} +1 -1
- package/dist/{chunk-4MUDQCBP.js → chunk-PJJSBZZP.js} +3 -3
- package/dist/{chunk-4MUDQCBP.js.map → chunk-PJJSBZZP.js.map} +1 -1
- package/dist/{chunk-HWNK3F3X.js → chunk-PKBLJI23.js} +588 -76
- package/dist/chunk-PKBLJI23.js.map +1 -0
- package/dist/{chunk-NOA6EJXE.js → chunk-PKE3PXOK.js} +3 -3
- package/dist/{chunk-NOA6EJXE.js.map → chunk-PKE3PXOK.js.map} +1 -1
- package/dist/{chunk-AZ2H6R5I.js → chunk-PMWRM4EJ.js} +74 -39
- package/dist/chunk-PMWRM4EJ.js.map +1 -0
- package/dist/{chunk-VYVTEMAW.js → chunk-PNUM7GUY.js} +3 -3
- package/dist/{chunk-VYVTEMAW.js.map → chunk-PNUM7GUY.js.map} +1 -1
- package/dist/{chunk-X3YGUKCG.js → chunk-Q5RN4PWV.js} +3 -3
- package/dist/{chunk-X3YGUKCG.js.map → chunk-Q5RN4PWV.js.map} +1 -1
- package/dist/{chunk-BBBCJSSU.js → chunk-QIHL3YPL.js} +4 -4
- package/dist/{chunk-BBBCJSSU.js.map → chunk-QIHL3YPL.js.map} +1 -1
- package/dist/{chunk-HMISULVD.js → chunk-QK7AG5AV.js} +4 -4
- package/dist/{chunk-HMISULVD.js.map → chunk-QK7AG5AV.js.map} +1 -1
- package/dist/{chunk-ZDLUQLI6.js → chunk-QPWR3YMY.js} +15 -5
- package/dist/chunk-QPWR3YMY.js.map +1 -0
- package/dist/{chunk-SVTMNSPI.js → chunk-QXKUFROW.js} +5 -5
- package/dist/{chunk-SVTMNSPI.js.map → chunk-QXKUFROW.js.map} +1 -1
- package/dist/{chunk-5Y2KGB4H.js → chunk-RQMIZONH.js} +34 -9
- package/dist/chunk-RQMIZONH.js.map +1 -0
- package/dist/{chunk-LSI2IVFT.js → chunk-RXGPFAMN.js} +4 -3
- package/dist/chunk-RXGPFAMN.js.map +1 -0
- package/dist/{chunk-NUA33BYO.js → chunk-S2H3RBK7.js} +42 -15
- package/dist/chunk-S2H3RBK7.js.map +1 -0
- package/dist/{chunk-2LAPHLDH.js → chunk-SJNZ4WPA.js} +44 -35
- package/dist/chunk-SJNZ4WPA.js.map +1 -0
- package/dist/{chunk-QEULL4Q3.js → chunk-T2VBPVWZ.js} +77 -18
- package/dist/chunk-T2VBPVWZ.js.map +1 -0
- package/dist/{chunk-Z3VKUWAX.js → chunk-TSTRH4SM.js} +3 -3
- package/dist/{chunk-Z3VKUWAX.js.map → chunk-TSTRH4SM.js.map} +1 -1
- package/dist/{chunk-5J4NPGFM.js → chunk-TZERN27L.js} +5 -5
- package/dist/{chunk-5J4NPGFM.js.map → chunk-TZERN27L.js.map} +1 -1
- package/dist/{chunk-XGULGQA3.js → chunk-U673DB5U.js} +4 -4
- package/dist/{chunk-XGULGQA3.js.map → chunk-U673DB5U.js.map} +1 -1
- package/dist/{chunk-IRYKRKVQ.js → chunk-URCJIV7T.js} +3 -3
- package/dist/{chunk-IRYKRKVQ.js.map → chunk-URCJIV7T.js.map} +1 -1
- package/dist/{chunk-ADPM6AYF.js → chunk-VSX2G7LA.js} +3 -3
- package/dist/{chunk-ADPM6AYF.js.map → chunk-VSX2G7LA.js.map} +1 -1
- package/dist/{chunk-ILLTBKDJ.js → chunk-X37JUNEW.js} +4 -4
- package/dist/{chunk-ILLTBKDJ.js.map → chunk-X37JUNEW.js.map} +1 -1
- package/dist/{chunk-IHFGPHCT.js → chunk-Z3IRZBXB.js} +49 -25
- package/dist/chunk-Z3IRZBXB.js.map +1 -0
- package/dist/{chunk-ZAELRYKS.js → chunk-ZWJCRHP3.js} +3 -3
- package/dist/{chunk-ZAELRYKS.js.map → chunk-ZWJCRHP3.js.map} +1 -1
- package/dist/{claude-code-RE46FJXI.js → claude-code-BBMNVH2J.js} +5 -5
- package/dist/{claude-code-RE46FJXI.js.map → claude-code-BBMNVH2J.js.map} +1 -1
- package/dist/cli/index.js +348 -141
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/src/commands/asset-cmd.d.ts.map +1 -1
- package/dist/cli/src/commands/catalog.d.ts.map +1 -1
- 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.map +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 +8 -1
- package/dist/cli/src/commands/library-index.d.ts.map +1 -1
- package/dist/cli/src/commands/migrate-assets.d.ts.map +1 -1
- package/dist/cli/src/commands/outdated.d.ts.map +1 -1
- package/dist/cli/src/commands/plugin-registry-cmd.d.ts.map +1 -1
- package/dist/cli/src/commands/project.d.ts.map +1 -1
- package/dist/cli/src/commands/rebuild.d.ts.map +1 -1
- package/dist/cli/src/commands/run.d.ts.map +1 -1
- package/dist/cli/src/commands/serve-preflight.d.ts +31 -1
- package/dist/cli/src/commands/serve-preflight.d.ts.map +1 -1
- package/dist/cli/src/commands/serve.d.ts +10 -0
- package/dist/cli/src/commands/serve.d.ts.map +1 -1
- package/dist/cli/src/commands/source-manifest-publish.d.ts.map +1 -1
- package/dist/cli/src/commands/source-manifest.d.ts +19 -7
- package/dist/cli/src/commands/source-manifest.d.ts.map +1 -1
- package/dist/cli/src/commands/validate-instances.d.ts.map +1 -1
- package/dist/cli/src/commands/validate.d.ts.map +1 -1
- package/dist/cli/src/commands/why.d.ts.map +1 -1
- package/dist/cli/src/config-checks.d.ts +23 -5
- package/dist/cli/src/config-checks.d.ts.map +1 -1
- package/dist/cli/src/harness-error.d.ts +12 -1
- package/dist/cli/src/harness-error.d.ts.map +1 -1
- package/dist/cli/src/helpers.d.ts +18 -8
- package/dist/cli/src/helpers.d.ts.map +1 -1
- package/dist/cli/src/plugin-store/index.d.ts +10 -1
- package/dist/cli/src/plugin-store/index.d.ts.map +1 -1
- package/dist/cli/src/plugin-store/spec.d.ts +8 -0
- package/dist/cli/src/plugin-store/spec.d.ts.map +1 -1
- package/dist/cli/src/skill-checks.d.ts +2 -2
- package/dist/cli/src/skill-checks.d.ts.map +1 -1
- package/dist/connectors/config.js +5 -5
- package/dist/connectors/index.js +22 -22
- package/dist/connectors/src/connector-manager.d.ts.map +1 -1
- package/dist/connectors-47EM6C2P.js +48 -0
- package/dist/{connectors-7THEF7YA.js.map → connectors-47EM6C2P.js.map} +1 -1
- package/dist/core/framework.js +1 -1
- package/dist/core/index.js +9 -9
- 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 +5 -5
- package/dist/core/src/framework.d.ts +5 -3
- package/dist/core/src/framework.d.ts.map +1 -1
- package/dist/core/src/index.d.ts +2 -1
- package/dist/core/src/index.d.ts.map +1 -1
- package/dist/core/src/lock.d.ts +12 -0
- package/dist/core/src/lock.d.ts.map +1 -1
- package/dist/core/src/manifest.d.ts +15 -0
- package/dist/core/src/manifest.d.ts.map +1 -1
- package/dist/core/src/models.d.ts +7 -0
- package/dist/core/src/models.d.ts.map +1 -1
- package/dist/core/src/provider-registry.d.ts +6 -0
- package/dist/core/src/provider-registry.d.ts.map +1 -1
- package/dist/core/src/workspace-config.d.ts +10 -1
- package/dist/core/src/workspace-config.d.ts.map +1 -1
- package/dist/core/src/workspace-yaml-editor.d.ts.map +1 -1
- package/dist/core/workspace-config.js +4 -4
- package/dist/deploy/index.js +9 -9
- package/dist/discovery/index.js +5 -5
- package/dist/discovery/src/parse-manifest.d.ts.map +1 -1
- package/dist/{ensure-sources-IH7CHSJF.js → ensure-sources-K5EFNC3L.js} +35 -21
- package/dist/ensure-sources-K5EFNC3L.js.map +1 -0
- package/dist/factory-assets/connectors/box.js +22 -22
- package/dist/factory-assets/connectors/deploy.js +22 -22
- package/dist/factory-assets/connectors/devserver.js +22 -22
- package/dist/factory-assets/connectors/flow/adapter.js +22 -22
- package/dist/factory-assets/connectors/flow/engine.js +10 -10
- package/dist/factory-assets/connectors/flow/run-flow.d.ts.map +1 -1
- package/dist/factory-assets/connectors/flow/run-flow.js +24 -24
- package/dist/factory-assets/connectors/flow.js +22 -22
- package/dist/factory-assets/connectors/git.js +22 -22
- package/dist/factory-assets/connectors/gmail.js +22 -22
- package/dist/factory-assets/connectors/googledrive.js +22 -22
- package/dist/factory-assets/connectors/local.js +22 -22
- package/dist/factory-assets/connectors/mattermost.js +22 -22
- package/dist/factory-assets/connectors/memory.js +22 -22
- package/dist/factory-assets/connectors/minio.js +22 -22
- package/dist/factory-assets/connectors/postgres.js +22 -22
- package/dist/factory-assets/connectors/s3.js +22 -22
- package/dist/factory-assets/connectors/sharepoint.js +22 -22
- package/dist/factory-assets/connectors/sqlite.js +22 -22
- package/dist/factory-assets/connectors/static-server.js +22 -22
- package/dist/factory-assets/connectors/tunnel.js +22 -22
- package/dist/factory-assets/connectors/webdav.js +22 -22
- package/dist/factory-assets/connectors/xstate-store.js +22 -22
- package/dist/factory-assets/connectors/xstate.js +22 -22
- package/dist/flows-KLBNSKLO.js +26 -0
- package/dist/{flows-4JZQ3XFK.js.map → flows-KLBNSKLO.js.map} +1 -1
- package/dist/helpers-LUSV2ICC.js +52 -0
- package/dist/{helpers-JNMK3FC2.js.map → helpers-LUSV2ICC.js.map} +1 -1
- package/dist/library/index.js +14 -14
- package/dist/library/install.js +5 -5
- package/dist/library/src/index.d.ts +1 -1
- package/dist/library/src/index.d.ts.map +1 -1
- package/dist/library/src/install/index.d.ts +1 -1
- package/dist/library/src/install/index.d.ts.map +1 -1
- package/dist/library/src/install/install-from-manifest.d.ts +13 -0
- package/dist/library/src/install/install-from-manifest.d.ts.map +1 -1
- package/dist/library/src/install/source-fetch-github.d.ts.map +1 -1
- package/dist/library/src/manifest-writer.d.ts.map +1 -1
- package/dist/library/src/remote/remote-catalog-source.d.ts +3 -1
- package/dist/library/src/remote/remote-catalog-source.d.ts.map +1 -1
- package/dist/library/src/remote/rest-catalog-source.d.ts +3 -2
- package/dist/library/src/remote/rest-catalog-source.d.ts.map +1 -1
- package/dist/{library-publish-I3UWXAHI.js → library-publish-XMRCKRNR.js} +54 -55
- package/dist/library-publish-XMRCKRNR.js.map +1 -0
- package/dist/model-endpoint/index.js +12 -12
- package/dist/model-endpoint/src/openai-chat.d.ts +7 -2
- package/dist/model-endpoint/src/openai-chat.d.ts.map +1 -1
- package/dist/model-endpoint/src/openai-shared.d.ts +8 -0
- package/dist/model-endpoint/src/openai-shared.d.ts.map +1 -1
- package/dist/model-endpoint/src/server.d.ts.map +1 -1
- package/dist/model-endpoint/src/types.d.ts +1 -1
- package/dist/model-endpoint/src/types.d.ts.map +1 -1
- package/dist/model-endpoint/src/usage-cost.d.ts +23 -0
- package/dist/model-endpoint/src/usage-cost.d.ts.map +1 -0
- package/dist/open-library-XBR46DJL.js +56 -0
- package/dist/{open-library-NKKUJLWA.js.map → open-library-XBR46DJL.js.map} +1 -1
- package/dist/open-registry-W562DCDL.js +32 -0
- package/dist/{open-registry-BYAXSHUI.js.map → open-registry-W562DCDL.js.map} +1 -1
- package/dist/paths-2AZXB3QL.js +22 -0
- package/dist/{paths-UKWE35XS.js.map → paths-2AZXB3QL.js.map} +1 -1
- package/dist/plugin-store-36SIL4TV.js +23 -0
- package/dist/{plugin-store-ABE35NRX.js.map → plugin-store-36SIL4TV.js.map} +1 -1
- package/dist/project-D7GN7WLS.js +86 -0
- package/dist/{project-BIPK47JK.js.map → project-D7GN7WLS.js.map} +1 -1
- package/dist/resolver/index.js +10 -10
- package/dist/runner/index.js +39 -39
- package/dist/runner/src/capability-roundtrip.d.ts +7 -6
- package/dist/runner/src/capability-roundtrip.d.ts.map +1 -1
- package/dist/runner/src/serve.d.ts +6 -5
- package/dist/runner/src/serve.d.ts.map +1 -1
- package/dist/sdk/asset-manager.js +18 -18
- package/dist/sdk/bridge.js +19 -19
- package/dist/sdk/core.js +9 -9
- package/dist/sdk/flow.js +10 -10
- package/dist/sdk/index.js +39 -39
- package/dist/sdk/resolver.js +10 -10
- package/dist/sdk/runner.js +39 -39
- package/dist/sdk/transport/ws/server.js +10 -10
- package/dist/sdk/transport/ws.js +10 -10
- package/dist/sdk/transport.js +10 -10
- package/dist/{serve-preflight-FLTIBTEX.js → serve-preflight-CGA5G3AE.js} +63 -35
- package/dist/serve-preflight-CGA5G3AE.js.map +1 -0
- package/dist/{setup-AG6NFHSN.js → setup-IBDNJAOU.js} +31 -31
- package/dist/{setup-AG6NFHSN.js.map → setup-IBDNJAOU.js.map} +1 -1
- package/dist/skills-CTTO7SZK.js +26 -0
- package/dist/{skills-UQYUHVKO.js.map → skills-CTTO7SZK.js.map} +1 -1
- package/dist/source-2DJ5KNOI.js +85 -0
- package/dist/{source-ASEHI2XS.js.map → source-2DJ5KNOI.js.map} +1 -1
- package/dist/source-fetch-github-RWHV4I5Z.js +4 -0
- package/dist/{source-fetch-github-ST4MFL3D.js.map → source-fetch-github-RWHV4I5Z.js.map} +1 -1
- package/dist/{source-manifest-publish-IEVV3W6J.js → source-manifest-publish-IYWUMUCY.js} +54 -56
- package/dist/source-manifest-publish-IYWUMUCY.js.map +1 -0
- package/dist/transport/index.js +10 -10
- package/dist/transport/ws/server.js +10 -10
- package/dist/transport/ws.js +10 -10
- package/dist/tui/index.js +47 -40
- package/dist/tui/index.js.map +1 -1
- package/dist/tui/src/repl.d.ts.map +1 -1
- package/dist/types/manifests.js +1 -1
- package/dist/types/src/manifests/index.d.ts +1 -1
- package/dist/types/src/manifests/index.d.ts.map +1 -1
- package/dist/types/src/manifests/scaffold-body.d.ts +2 -0
- package/dist/types/src/manifests/scaffold-body.d.ts.map +1 -1
- package/dist/workspace-plugin/adapters/mcp.js +29 -29
- package/dist/workspace-plugin/adapters/omp.js +15 -15
- package/dist/workspace-plugin/index.js +2 -2
- package/package.json +1 -1
- package/dist/chunk-2LAPHLDH.js.map +0 -1
- package/dist/chunk-5Y2KGB4H.js.map +0 -1
- package/dist/chunk-7HX6FNKL.js.map +0 -1
- package/dist/chunk-ABFPSVIS.js.map +0 -1
- package/dist/chunk-AITJ7ELM.js.map +0 -1
- package/dist/chunk-AZ2H6R5I.js.map +0 -1
- package/dist/chunk-BFMYYNDT.js.map +0 -1
- package/dist/chunk-CEKW3KXP.js.map +0 -1
- package/dist/chunk-DGTI65OC.js.map +0 -1
- package/dist/chunk-DIGFA7Z5.js.map +0 -1
- package/dist/chunk-E572OHGY.js.map +0 -1
- package/dist/chunk-HWNK3F3X.js.map +0 -1
- package/dist/chunk-IHFGPHCT.js.map +0 -1
- package/dist/chunk-J72MO2WA.js.map +0 -1
- package/dist/chunk-KUQAJVYT.js.map +0 -1
- package/dist/chunk-LSI2IVFT.js.map +0 -1
- package/dist/chunk-NUA33BYO.js.map +0 -1
- package/dist/chunk-QEULL4Q3.js.map +0 -1
- package/dist/chunk-QSYQOTWN.js.map +0 -1
- package/dist/chunk-RHN5MRQO.js.map +0 -1
- package/dist/chunk-S2XHGWQC.js.map +0 -1
- package/dist/chunk-UI745XC3.js.map +0 -1
- package/dist/chunk-VMVDAZLA.js.map +0 -1
- package/dist/chunk-XFIEVEU7.js.map +0 -1
- package/dist/chunk-YLLVSR2U.js.map +0 -1
- package/dist/chunk-Z7ZEZZB6.js.map +0 -1
- package/dist/chunk-ZDLUQLI6.js.map +0 -1
- package/dist/chunk-ZHGKAZJ7.js.map +0 -1
- package/dist/connectors-7THEF7YA.js +0 -48
- package/dist/ensure-sources-IH7CHSJF.js.map +0 -1
- package/dist/flows-4JZQ3XFK.js +0 -26
- package/dist/helpers-JNMK3FC2.js +0 -38
- package/dist/library-publish-I3UWXAHI.js.map +0 -1
- package/dist/open-library-NKKUJLWA.js +0 -42
- package/dist/open-registry-BYAXSHUI.js +0 -32
- package/dist/paths-UKWE35XS.js +0 -22
- package/dist/plugin-store-ABE35NRX.js +0 -23
- package/dist/project-BIPK47JK.js +0 -86
- package/dist/serve-preflight-FLTIBTEX.js.map +0 -1
- package/dist/skills-UQYUHVKO.js +0 -26
- package/dist/source-ASEHI2XS.js +0 -85
- package/dist/source-fetch-github-ST4MFL3D.js +0 -4
- package/dist/source-manifest-publish-IEVV3W6J.js.map +0 -1
package/dist/cli/index.js
CHANGED
|
@@ -1,95 +1,95 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { makeValidateCommand, scanIdentities } from '../chunk-
|
|
3
|
-
import { storeNotInstallableReason, mcpNotRunnableHere } from '../chunk-
|
|
4
|
-
import { makeProvidersCommand, loadRegistryView, addProviderEntry, ProviderRegistryWriteError, removeProviderEntry } from '../chunk-
|
|
5
|
-
import { makeInstallCommand, makeCheckCommand, makeCleanCommand, pinComposedAgents, reportRewritten, reportReplaced, reportRelocked, reportMoved, reportStoreNotChecked, globalProblems, editedConventionFiles, supportsInstallManifest, runYamlInstall, REF_HINT, reportInstalledSoftDeps } from '../chunk-
|
|
6
|
-
import {
|
|
2
|
+
import { makeValidateCommand, scanIdentities } from '../chunk-Z3IRZBXB.js';
|
|
3
|
+
import { storeNotInstallableReason, mcpNotRunnableHere } from '../chunk-7H6XRCPG.js';
|
|
4
|
+
import { makeProvidersCommand, loadRegistryView, addProviderEntry, ProviderRegistryWriteError, removeProviderEntry } from '../chunk-ICSGNT5P.js';
|
|
5
|
+
import { makeInstallCommand, makeCheckCommand, makeCleanCommand, pinComposedAgents, reportRewritten, reportReplaced, reportRelocked, reportMoved, reportStoreNotChecked, globalProblems, editedConventionFiles, supportsInstallManifest, runYamlInstall, REF_HINT, reportInstalledSoftDeps } from '../chunk-ITFCWMOY.js';
|
|
6
|
+
import { reportUnknownHarnesses, reportProjectConfig, agentInstanceErrorLines, isRecord } from '../chunk-LRBP3234.js';
|
|
7
7
|
import { createSpinner } from '../chunk-NESV47MF.js';
|
|
8
|
-
import { loadDeclaredPlugins } from '../chunk-
|
|
9
|
-
import { getStoreConfig, storeFetch, isStoreAuthenticated, getStoreToken } from '../chunk-
|
|
10
|
-
import { makeSourceCommand, syncProjectSources, divergedSourceClones } from '../chunk-
|
|
11
|
-
import { libraryAssetRefusals, deviceLogin, loadStoreAuthConfig, logout, hasStoredAuth, exitOnLibrarySymlinks, resolveLibraryPublisherDetailed, getStoreIdentity, warnLibraryNameFallback, indexLibrary, warnIgnoredDomainFiles, removedDomainOption, rejectRemovedDomainOption, requireValidPublisherOrExit, exitOnManifestPublisherProblems, findAssetManifestFile, checkAssetFile, registerLibraryAsset, DOMAIN_REMOVED_HINT, reportLibrarySymlinks, checkAsset, manifestPublisherProblems, exitOnManifestPathProblems, manifestRequiresProblems, composeRefContext, registeredAssetKeys, assetEntryRef, duplicateAssetMessage, manifestParseFailureLine, manifestParseErrorText, unresolvedManifestDependencies, findEntryManifestFile, unheldRequiresOfFile, warnLegacyBundleFiles, checkComposeKinds } from '../chunk-
|
|
12
|
-
import { openCatalogSource, LocalCatalogDisabledError, openLibraryManager, openLibrary } from '../chunk-
|
|
13
|
-
import { AI_RESOURCES } from '../chunk-
|
|
14
|
-
import { status, enable, disable, install, uninstall } from '../chunk-
|
|
15
|
-
import { logErr, S, logOk, logInfo, logWarn, TARGET_DEFAULT_HINT, parseHarnessFilter, requireProjectConfig, deferredWarnings, warnPlaceholderBodies, warnFilesOnlyDelegates, reportLegacyOmpCopies, logNoProject,
|
|
16
|
-
import { getKindRegistry, getKnownKinds } from '../chunk-
|
|
8
|
+
import { loadDeclaredPlugins } from '../chunk-BY5WIRCU.js';
|
|
9
|
+
import { getStoreConfig, storeFetch, isStoreAuthenticated, getStoreToken } from '../chunk-KB56WBQ3.js';
|
|
10
|
+
import { makeSourceCommand, syncProjectSources, divergedSourceClones } from '../chunk-PMWRM4EJ.js';
|
|
11
|
+
import { libraryAssetRefusals, manifestEntryRenames, deviceLogin, loadStoreAuthConfig, logout, hasStoredAuth, exitOnLibrarySymlinks, resolveLibraryPublisherDetailed, getStoreIdentity, warnLibraryNameFallback, indexLibrary, warnIgnoredDomainFiles, removedDomainOption, rejectRemovedDomainOption, requireValidPublisherOrExit, exitOnManifestPublisherProblems, findAssetManifestFile, checkAssetFile, registerLibraryAsset, DOMAIN_REMOVED_HINT, reportLibrarySymlinks, checkAsset, manifestPublisherProblems, exitOnManifestPathProblems, manifestRequiresProblems, composeRefContext, registeredAssetKeys, assetEntryRef, duplicateAssetMessage, manifestParseFailureLine, manifestParseErrorText, unresolvedManifestDependencies, findEntryManifestFile, unheldRequiresOfFile, warnLegacyBundleFiles, checkComposeKinds } from '../chunk-2XM3ZH36.js';
|
|
12
|
+
import { openCatalogSource, LocalCatalogDisabledError, openLibraryManager, openLibrary } from '../chunk-BEYNH2LS.js';
|
|
13
|
+
import { AI_RESOURCES } from '../chunk-5LQ62LNT.js';
|
|
14
|
+
import { status, enable, disable, install, uninstall } from '../chunk-MM4YO3EL.js';
|
|
15
|
+
import { logErr, unknownHarnessTargetMessage, S, logOk, logInfo, logWarnErr, unknownHarnessMessage, logWarn, TARGET_DEFAULT_HINT, parseHarnessFilter, requireProjectConfig, deferredWarnings, warnPlaceholderBodies, warnFilesOnlyDelegates, reportLegacyOmpCopies, logNoProject, warnStaleHarnessCopies, kindColorPad, kindColor, colorRef, formatSoftDepSection, bareSoftDepName, driverAliasOption, foldDriverFlag, friendlyHarnessError, harnessErrorNotes, formatSoftDepHint, formatRelativeTime, formatSoftDepRemovePreview, formatSoftDepAddPreview, fitWidth, KIND_COL_WIDTH } from '../chunk-T2VBPVWZ.js';
|
|
16
|
+
import { getKindRegistry, getKnownKinds } from '../chunk-JJJ2G4K2.js';
|
|
17
17
|
import { LocalSecretsProvider } from '../chunk-ILFGVSTJ.js';
|
|
18
|
-
import { resolveInstanceAgentDir, instanceSessionOverrides, runAgentChat, isCompositionError, resolveSessionId, loadSessionById, loadSession, listSessions, setCurrentSession, deleteSession, clearSession, loadAgentManifest, hashAgentFiles, createCompositionContentSource, compileComposition, manifestModelForHarness, instanceForSession, resolveAgentInstance, describeComposition, MarkdownStreamer, createFinalTextFallback } from '../chunk-
|
|
19
|
-
import '../chunk-
|
|
20
|
-
import '../chunk-
|
|
21
|
-
import '../chunk-
|
|
22
|
-
import '../chunk-
|
|
18
|
+
import { resolveInstanceAgentDir, instanceSessionOverrides, runAgentChat, isCompositionError, resolveSessionId, loadSessionById, loadSession, listSessions, setCurrentSession, deleteSession, clearSession, loadAgentManifest, hashAgentFiles, createCompositionContentSource, compileComposition, manifestModelForHarness, instanceForSession, resolveAgentInstance, describeComposition, MarkdownStreamer, createFinalTextFallback } from '../chunk-SJNZ4WPA.js';
|
|
19
|
+
import '../chunk-GF5JXQIZ.js';
|
|
20
|
+
import '../chunk-OCQNUV4T.js';
|
|
21
|
+
import '../chunk-ZWJCRHP3.js';
|
|
22
|
+
import '../chunk-Q5RN4PWV.js';
|
|
23
23
|
import '../chunk-WYZXSJBK.js';
|
|
24
|
-
import '../chunk-
|
|
25
|
-
import '../chunk-
|
|
24
|
+
import '../chunk-QK7AG5AV.js';
|
|
25
|
+
import '../chunk-TSTRH4SM.js';
|
|
26
26
|
import '../chunk-KW37WNXY.js';
|
|
27
27
|
import '../chunk-3MWQKQUB.js';
|
|
28
|
-
import '../chunk-
|
|
28
|
+
import '../chunk-3HACK2Z7.js';
|
|
29
29
|
import '../chunk-O7SG5PC2.js';
|
|
30
30
|
import '../chunk-7QBNJTTQ.js';
|
|
31
31
|
import '../chunk-O2SYFJWP.js';
|
|
32
|
-
import '../chunk-
|
|
32
|
+
import '../chunk-KXJMQTOU.js';
|
|
33
33
|
import '../chunk-32NA4TVC.js';
|
|
34
34
|
import '../chunk-W3UDISS2.js';
|
|
35
|
-
import '../chunk-
|
|
36
|
-
import { runFlow, resumeFlow } from '../chunk-
|
|
35
|
+
import '../chunk-I7LC5TDY.js';
|
|
36
|
+
import { runFlow, resumeFlow } from '../chunk-5JPW27BI.js';
|
|
37
37
|
import '../chunk-4R6DROGN.js';
|
|
38
|
-
import { parseSkillRequirements, validateRequirements } from '../chunk-
|
|
39
|
-
import '../chunk-
|
|
40
|
-
import '../chunk-
|
|
38
|
+
import { parseSkillRequirements, validateRequirements } from '../chunk-URCJIV7T.js';
|
|
39
|
+
import '../chunk-PNUM7GUY.js';
|
|
40
|
+
import '../chunk-K3R2UKG7.js';
|
|
41
41
|
import '../chunk-6GWSDPBP.js';
|
|
42
|
-
import '../chunk-
|
|
43
|
-
import { checkHarnessModel, checkModelProvider } from '../chunk-
|
|
44
|
-
import '../chunk-
|
|
45
|
-
import '../chunk-
|
|
46
|
-
import '../chunk-
|
|
42
|
+
import '../chunk-QIHL3YPL.js';
|
|
43
|
+
import { checkHarnessModel, checkModelProvider } from '../chunk-RQMIZONH.js';
|
|
44
|
+
import '../chunk-JFLQICIU.js';
|
|
45
|
+
import '../chunk-QXKUFROW.js';
|
|
46
|
+
import '../chunk-U673DB5U.js';
|
|
47
47
|
import '../chunk-LOO5CB5M.js';
|
|
48
48
|
import '../chunk-BIRW3HOG.js';
|
|
49
|
-
import '../chunk-
|
|
50
|
-
import '../chunk-
|
|
51
|
-
import '../chunk-
|
|
49
|
+
import '../chunk-TZERN27L.js';
|
|
50
|
+
import '../chunk-BOT64P3U.js';
|
|
51
|
+
import '../chunk-6OHZUUR7.js';
|
|
52
52
|
import '../chunk-7DN6JKP2.js';
|
|
53
|
-
import '../chunk-
|
|
54
|
-
import { listHarnesses, getProviderPreset, AI_PROVIDER_PRESETS } from '../chunk-
|
|
53
|
+
import '../chunk-M4OG2YN4.js';
|
|
54
|
+
import { listHarnesses, getProviderPreset, AI_PROVIDER_PRESETS } from '../chunk-X37JUNEW.js';
|
|
55
55
|
import '../chunk-G5SUWZEU.js';
|
|
56
56
|
import '../chunk-IFGTRL2I.js';
|
|
57
|
-
import { loadFlow, flowLookupRoots, findFlowFileInRoots, loadAllFlowEntries } from '../chunk-
|
|
57
|
+
import { loadFlow, flowLookupRoots, findFlowFileInRoots, loadAllFlowEntries } from '../chunk-PJJSBZZP.js';
|
|
58
58
|
import '../chunk-WD3L5QSU.js';
|
|
59
|
-
import { nodeLabel, nodeSkillAsset, nodeIsInert, nodeIsOptional, nodeRunKind } from '../chunk-7RGTAEG6.js';
|
|
59
|
+
import { nodeLabel, nodeSkillAsset, nodeIsInert, nodeIsOptional, nodeRunKind, nodeAssets } from '../chunk-7RGTAEG6.js';
|
|
60
60
|
import '../chunk-JCPD4QRM.js';
|
|
61
|
-
import { setLibraryAssetCheck, LibraryEntryError, AssetManager, parseRefTolerant, MissingManifestError, parseCanonicalLockKey, normalizeRepoUrl
|
|
62
|
-
import { CatalogHttpError, libraryDirMissing, missingLibraryDirMessage, cloneOrInitGitRepo, trackOriginBranch, stampManifestPublisher, isGitRepo, ensureGitRepo, conflictingAssetRoot, scanUnlistedAssets, setManifestPublisher, LIBRARY_OWNERSHIPS, assertManifestEditable, installLibraryAsset, getStoreManifestsDir, assertValidLibraryName, unparsableAssetFiles, syncManifestWithDisk, renamedLibraryName, storeManifestFile, getDefaultValue, isSecretPlaceholder } from '../chunk-
|
|
63
|
-
import { flowFileNameError, SEMVER_RE } from '../chunk-
|
|
64
|
-
import '../chunk-
|
|
65
|
-
import '../chunk-
|
|
61
|
+
import { setLibraryAssetCheck, setRenamedEntryLookup, LibraryEntryError, AssetManager, parseRefTolerant, MissingManifestError, parseCanonicalLockKey, normalizeRepoUrl } from '../chunk-PKBLJI23.js';
|
|
62
|
+
import { CatalogHttpError, libraryDirMissing, missingLibraryDirMessage, cloneOrInitGitRepo, trackOriginBranch, stampManifestPublisher, isGitRepo, ensureGitRepo, conflictingAssetRoot, scanUnlistedAssets, setManifestPublisher, LIBRARY_OWNERSHIPS, assertManifestEditable, installLibraryAsset, getStoreManifestsDir, assertValidLibraryName, unparsableAssetFiles, syncManifestWithDisk, renamedLibraryName, storeManifestFile, getDefaultValue, isSecretPlaceholder } from '../chunk-6CYKTHNT.js';
|
|
63
|
+
import { flowFileNameError, SEMVER_RE } from '../chunk-MAZ3UXJK.js';
|
|
64
|
+
import '../chunk-E5NQRHEB.js';
|
|
65
|
+
import '../chunk-F3D25RGM.js';
|
|
66
66
|
import '../chunk-3TXEJN4W.js';
|
|
67
67
|
import '../chunk-ISHJITXJ.js';
|
|
68
68
|
import '../chunk-LNFKL23K.js';
|
|
69
69
|
import '../chunk-JRN5QF4C.js';
|
|
70
70
|
import '../chunk-NUELZWCF.js';
|
|
71
|
-
import { installTargetOf, SCAFFOLD_KINDS } from '../chunk-
|
|
72
|
-
import '../chunk-
|
|
71
|
+
import { installTargetOf, SCAFFOLD_KINDS } from '../chunk-S2H3RBK7.js';
|
|
72
|
+
import '../chunk-PKE3PXOK.js';
|
|
73
73
|
import '../chunk-KTBKW2FI.js';
|
|
74
74
|
import '../chunk-UQ6LFBPZ.js';
|
|
75
|
-
import '../chunk-
|
|
76
|
-
import { effectiveComposes, validatePreset, validateAgent, composeSlotDiagnostics, agentDeprecationDiagnostics, SLOT_ID_PATTERN } from '../chunk-
|
|
77
|
-
import { loadSettings, globalSettingsPath, resolveSettings, projectSettingsPath, saveSettings, WorkspaceYamlEditor, resolveLibraryDir, checkAgentSkillConformance, resolveSettingsWithSources, resolveConfiguredHarnessName, readLock, globalInstallDir, GLOBAL_INSTALL_DIR_NAME, workspaceProviderRegistryPath, userProviderRegistryPath, loadProviderRegistryFile, aiResourceRoots } from '../chunk-
|
|
75
|
+
import '../chunk-COAFAYBS.js';
|
|
76
|
+
import { effectiveComposes, validatePreset, validateAgent, composeSlotDiagnostics, agentDeprecationDiagnostics, SLOT_ID_PATTERN } from '../chunk-76FLBODK.js';
|
|
77
|
+
import { loadSettings, globalSettingsPath, resolveSettings, projectSettingsPath, saveSettings, WorkspaceYamlEditor, resolveLibraryDir, checkAgentSkillConformance, resolveSettingsWithSources, resolveConfiguredHarnessName, readLock, FACTORY_SOURCE_URL, globalInstallDir, GLOBAL_INSTALL_DIR_NAME, workspaceProviderRegistryPath, userProviderRegistryPath, loadProviderRegistryFile, aiResourceRoots } from '../chunk-BRK5QZKI.js';
|
|
78
78
|
import '../chunk-4GY63JU6.js';
|
|
79
|
-
import { factoryAssetRoots } from '../chunk-
|
|
79
|
+
import { factoryAssetRoots } from '../chunk-QPWR3YMY.js';
|
|
80
80
|
import { deployedDir } from '../chunk-5KRMNUL4.js';
|
|
81
|
-
import { DEFAULT_HARNESS_ID, HARNESS_DEFAULTS } from '../chunk-
|
|
81
|
+
import { DEFAULT_HARNESS_ID, HARNESS_DEFAULTS } from '../chunk-C5HFK34M.js';
|
|
82
82
|
import { findKindDirs } from '../chunk-MWXYN6NY.js';
|
|
83
|
-
import { SourceEntryError, LegacyKeyError, resolveSkWorkspaceConfig, sourceCacheKey, getGlobalCacheDir, resolveAgentDir, AgentRefResolutionError, resolveAgentDefinitionDir, effectiveAgentInstances, matchPin, coerceVersion, loadSkWorkspaceConfig, findWorkspaceRoot, isWorkspaceConfigFilename, SKAILE_YAML_DEFAULT, AGENT_PROFILE_FIELDS } from '../chunk-
|
|
83
|
+
import { SourceEntryError, LegacyKeyError, resolveSkWorkspaceConfig, sourceCacheKey, getGlobalCacheDir, resolveAgentDir, AgentRefResolutionError, resolveAgentDefinitionDir, effectiveAgentInstances, matchPin, coerceVersion, loadSkWorkspaceConfig, findWorkspaceRoot, isWorkspaceConfigFilename, SKAILE_YAML_DEFAULT, AGENT_PROFILE_FIELDS } from '../chunk-KJSC2ZD6.js';
|
|
84
84
|
import { globalCacheRoot, globalSkaileDir, userConfigPath } from '../chunk-L5VSIPQD.js';
|
|
85
85
|
import { HARNESS_TARGETS, SUPPORTED_HARNESSES, harnessNameForHarnessId } from '../chunk-VTETQCR6.js';
|
|
86
|
-
import { SKAILE_MANIFEST_FILENAME, loadSkPublishManifest, decodeSkaileManifest, LIBRARY_GITIGNORE, librarySymlinkMessage, isNonAssetPath, isNonAssetDir, encodeSkaileManifest } from '../chunk-
|
|
86
|
+
import { SKAILE_MANIFEST_FILENAME, loadSkPublishManifest, decodeSkaileManifest, LIBRARY_GITIGNORE, librarySymlinkMessage, isNonAssetPath, isNonAssetDir, encodeSkaileManifest } from '../chunk-KPKGWXUJ.js';
|
|
87
87
|
import { pluginTitle } from '../chunk-RVRB27AN.js';
|
|
88
|
-
import { dedupeRequirements, parseFrontmatter, scanDirectory, parseRequires } from '../chunk-
|
|
89
|
-
import { parseAssetRef, isValidPublisher, PUBLISHER_HINT, isValidAssetName, ASSET_NAME_HINT, depToStr, assetRefToStr, slugifyAssetName, parseAssetRefLoose } from '../chunk-
|
|
90
|
-
import { portableSpawn, portableSpawnSync } from '../chunk-
|
|
88
|
+
import { setWalkTruncationSink, dedupeRequirements, parseFrontmatter, scanDirectory, parseRequires } from '../chunk-JMIKGAUA.js';
|
|
89
|
+
import { parseAssetRef, isValidPublisher, PUBLISHER_HINT, isValidAssetName, ASSET_NAME_HINT, depToStr, assetRefToStr, slugifyAssetName, parseAssetRefLoose } from '../chunk-IZQOO6MN.js';
|
|
90
|
+
import { portableSpawn, portableSpawnSync } from '../chunk-VSX2G7LA.js';
|
|
91
91
|
import { openSqlite } from '../chunk-DKXNKFKP.js';
|
|
92
|
-
import { parseModelRef, resolveEntryBaseUrl } from '../chunk-
|
|
92
|
+
import { parseModelRef, resolveEntryBaseUrl } from '../chunk-RXGPFAMN.js';
|
|
93
93
|
import '../chunk-C3CAXQMA.js';
|
|
94
94
|
import { registerLogStore, LogStore, StdoutSink } from '../chunk-BOFL7GIF.js';
|
|
95
95
|
import '../chunk-NSBPE2FW.js';
|
|
@@ -226,15 +226,17 @@ async function runSearch(kind, query, opts) {
|
|
|
226
226
|
const showStore = !opts.local;
|
|
227
227
|
const { resolveConfig } = await import('../library/index.js');
|
|
228
228
|
const airGapped = resolveConfig({ projectDir: path19__default.resolve(opts.projectDir) }).catalog.cache_ttl === 0;
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
229
|
+
const localHits = showLocal ? await searchLocal(query, kind, opts, showStore, airGapped) : false;
|
|
230
|
+
const store = showStore ? await searchStore(query, kind, opts, airGapped) : "skipped";
|
|
231
|
+
if (showLocal && showStore && !localHits && store !== "hits") {
|
|
232
|
+
const what = query ? ` for "${query}"` : kind ? ` for kind "${kind}"` : "";
|
|
233
|
+
logInfo(
|
|
234
|
+
store === "empty" ? `No results${what} (local and store).` : `No local results${what}; the store was not searched.`
|
|
235
|
+
);
|
|
234
236
|
}
|
|
235
237
|
}
|
|
236
238
|
async function searchIndex(query, kind, projectDir) {
|
|
237
|
-
const { openLibrary: openLibrary2 } = await import('../open-library-
|
|
239
|
+
const { openLibrary: openLibrary2 } = await import('../open-library-XBR46DJL.js');
|
|
238
240
|
const library = await openLibrary2();
|
|
239
241
|
try {
|
|
240
242
|
const { libraryDirMissing: libraryDirMissing2 } = await import('../library/index.js');
|
|
@@ -409,14 +411,14 @@ async function withAddVersions(entries, projectDir) {
|
|
|
409
411
|
}
|
|
410
412
|
async function searchLocal(query, kind, opts, showStore, airGapped) {
|
|
411
413
|
const projectDir = path19__default.resolve(opts.projectDir);
|
|
412
|
-
const { restoreSourceReaders } = await import('../source-
|
|
414
|
+
const { restoreSourceReaders } = await import('../source-2DJ5KNOI.js');
|
|
413
415
|
for (const name of await restoreSourceReaders(projectDir)) {
|
|
414
416
|
logInfo(`Re-registered source "${name}" (its library entry was removed elsewhere).`);
|
|
415
417
|
}
|
|
416
418
|
const factory = await searchFactory(projectDir, query, kind);
|
|
417
419
|
let entries = unionEntries(await searchIndex(query, kind, projectDir), factory);
|
|
418
420
|
if (entries.length === 0 && !query && !kind && !airGapped) {
|
|
419
|
-
const { autoSyncForSearch } = await import('../source-
|
|
421
|
+
const { autoSyncForSearch } = await import('../source-2DJ5KNOI.js');
|
|
420
422
|
if (await autoSyncForSearch(projectDir)) {
|
|
421
423
|
entries = unionEntries(await searchIndex(query, kind, projectDir), factory);
|
|
422
424
|
}
|
|
@@ -427,7 +429,7 @@ async function searchLocal(query, kind, opts, showStore, airGapped) {
|
|
|
427
429
|
query ? `No entries matching "${query}".` : kind ? `No "${kind}" assets found in this project's sources.` : "No assets found. Run `skaile source sync` first."
|
|
428
430
|
);
|
|
429
431
|
}
|
|
430
|
-
return;
|
|
432
|
+
return false;
|
|
431
433
|
}
|
|
432
434
|
if (showStore) {
|
|
433
435
|
console.log(`
|
|
@@ -439,6 +441,7 @@ async function searchLocal(query, kind, opts, showStore, airGapped) {
|
|
|
439
441
|
projectDir
|
|
440
442
|
)
|
|
441
443
|
);
|
|
444
|
+
return true;
|
|
442
445
|
}
|
|
443
446
|
var MIN_LOCAL_DESCRIPTION_WIDTH = 10;
|
|
444
447
|
function layoutLocalTable(rows, width, style = {}) {
|
|
@@ -531,9 +534,9 @@ function formatStoreRows(assets, indent, width = terminalWidth()) {
|
|
|
531
534
|
async function searchStore(query, kind, opts, airGapped) {
|
|
532
535
|
if (airGapped && !opts.store) {
|
|
533
536
|
logInfo("air-gapped (cache_ttl: 0) \u2014 local sources only");
|
|
534
|
-
return;
|
|
537
|
+
return "skipped";
|
|
535
538
|
}
|
|
536
|
-
const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError: LocalCatalogDisabledError2 } = await import('../open-library-
|
|
539
|
+
const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError: LocalCatalogDisabledError2 } = await import('../open-library-XBR46DJL.js');
|
|
537
540
|
try {
|
|
538
541
|
const remote = await openCatalogSource2({ projectDir: path19__default.resolve(opts.projectDir) });
|
|
539
542
|
const assets = await remote.listAssets(kind ? { kind } : {});
|
|
@@ -546,6 +549,7 @@ async function searchStore(query, kind, opts, airGapped) {
|
|
|
546
549
|
logInfo("No results in store");
|
|
547
550
|
}
|
|
548
551
|
for (const note of storeSelectionNotes(sel, " ")) console.log(note);
|
|
552
|
+
return sel.shown.length > 0 ? "hits" : "empty";
|
|
549
553
|
} catch (e) {
|
|
550
554
|
const local = e instanceof LocalCatalogDisabledError2;
|
|
551
555
|
if (opts.store) {
|
|
@@ -558,6 +562,7 @@ async function searchStore(query, kind, opts, airGapped) {
|
|
|
558
562
|
local ? "remote catalog disabled (catalog.url: local) \u2014 showing local results only" : "store unavailable \u2014 showing local results only (run with --store to see the error)"
|
|
559
563
|
);
|
|
560
564
|
}
|
|
565
|
+
return "skipped";
|
|
561
566
|
}
|
|
562
567
|
}
|
|
563
568
|
async function describeStoreFailure(err, projectDir) {
|
|
@@ -642,6 +647,9 @@ function makeAddCommand() {
|
|
|
642
647
|
return new Command("add").description("Add to skaile.yaml + deploy").argument("<ref>", "Asset reference (kind:@<publisher>/name#<version>)").option("--project-dir <path>", "Project directory", process.cwd()).option("--global", "Record in ~/.skaile/skaile.yaml + deploy to every global harness").option(
|
|
643
648
|
"--harness <ids>",
|
|
644
649
|
"Comma-separated global harnesses to deploy into (default: all resolved); implies --global"
|
|
650
|
+
).option(
|
|
651
|
+
"--only",
|
|
652
|
+
"with --harness on an asset that is already global: replace its harness set (default: add to it)"
|
|
645
653
|
).option("--target <agent>", `Harness target (${TARGET_DEFAULT_HINT})`).option(
|
|
646
654
|
"--link",
|
|
647
655
|
"symlink local-path assets instead of copying (dev loop; machine-local, not for committing)"
|
|
@@ -660,6 +668,10 @@ function makeAddCommand() {
|
|
|
660
668
|
process.exit(1);
|
|
661
669
|
}
|
|
662
670
|
const harnesses = parseHarnessFilter(opts.harness);
|
|
671
|
+
if (opts.only && harnesses === void 0) {
|
|
672
|
+
logErr("--only needs --harness: it replaces the set of harnesses the asset goes to.");
|
|
673
|
+
process.exit(1);
|
|
674
|
+
}
|
|
663
675
|
if (!opts.global && harnesses === void 0) requireProjectConfig(opts.projectDir);
|
|
664
676
|
const warnings = deferredWarnings();
|
|
665
677
|
const collisionKeys = [];
|
|
@@ -687,6 +699,12 @@ function makeAddCommand() {
|
|
|
687
699
|
const added = await am2.add(ref, {
|
|
688
700
|
link: opts.link,
|
|
689
701
|
force: opts.force,
|
|
702
|
+
only: opts.only === true,
|
|
703
|
+
onDroppedCopy: (droppedRef, harness, copy) => logInfo(
|
|
704
|
+
S.dim(
|
|
705
|
+
`${harness} is no longer in the set of ${droppedRef} but still holds ${copy.replace(homedir(), "~")} (delete it with skaile remove ${droppedRef} --global --harness ${harness})`
|
|
706
|
+
)
|
|
707
|
+
),
|
|
690
708
|
onLibraryOrigin: (deployedRef, library) => libraryOf.set(deployedRef, library),
|
|
691
709
|
onPlaceholderBody: (deployedRef) => placeholderBodies.push(deployedRef),
|
|
692
710
|
onPlaceholderDescription: (deployedRef) => placeholderDescriptions.push(deployedRef),
|
|
@@ -748,24 +766,24 @@ function makeAddCommand() {
|
|
|
748
766
|
logInfo(
|
|
749
767
|
`Recorded in skaile.yaml (store bytes are fetched + verified into .skaile/cache/store). ${kind} assets are not deployed into the harness target \u2014 they are composed when skaile runs the agent.`
|
|
750
768
|
);
|
|
751
|
-
else
|
|
769
|
+
else {
|
|
770
|
+
logInfo("Nothing to deploy (already up to date).");
|
|
771
|
+
if (am2.global) reportGlobalPaths(am2, [parsedRef]);
|
|
772
|
+
}
|
|
752
773
|
} else {
|
|
753
774
|
for (const a of added) {
|
|
754
775
|
const library = libraryOf.get(a);
|
|
755
776
|
logOk(library ? `${a} (library ${library})` : a);
|
|
756
777
|
}
|
|
757
778
|
warnPlaceholderBodies(placeholderBodies, placeholderDescriptions);
|
|
758
|
-
if (!am2.global
|
|
779
|
+
if (!am2.global && added.some((a) => a.startsWith("agent:"))) {
|
|
780
|
+
warnFilesOnlyDelegates(am2.projectDir, am2.harness);
|
|
781
|
+
}
|
|
759
782
|
if (am2.global) {
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
for (const harness of am2.deployTargets()) {
|
|
765
|
-
const dir = deployedDir(component, name, harness, true);
|
|
766
|
-
if (existsSync(dir)) logInfo(S.dim(`${harness}: ${dir.replace(homedir(), "~")}`));
|
|
767
|
-
}
|
|
768
|
-
}
|
|
783
|
+
reportGlobalPaths(
|
|
784
|
+
am2,
|
|
785
|
+
added.map((a) => parseAssetRef(a))
|
|
786
|
+
);
|
|
769
787
|
reportLegacyOmpCopies(am2.takeLegacyCopiesRemoved(), am2.takeLegacyCopiesKept());
|
|
770
788
|
}
|
|
771
789
|
if (added.length > 1) {
|
|
@@ -794,12 +812,23 @@ function makeAddCommand() {
|
|
|
794
812
|
}
|
|
795
813
|
});
|
|
796
814
|
}
|
|
815
|
+
function reportGlobalPaths(am2, assets) {
|
|
816
|
+
for (const { kind, name } of assets) {
|
|
817
|
+
const component = installTargetOf(getKindRegistry(), kind);
|
|
818
|
+
if (!component) continue;
|
|
819
|
+
for (const harness of am2.deployTargets()) {
|
|
820
|
+
const dir = deployedDir(component, name, harness, true);
|
|
821
|
+
if (existsSync(dir)) logInfo(S.dim(`${harness}: ${dir.replace(homedir(), "~")}`));
|
|
822
|
+
}
|
|
823
|
+
}
|
|
824
|
+
}
|
|
797
825
|
function printAddPlan(plan) {
|
|
798
826
|
const line = (item, label) => {
|
|
799
827
|
logInfo(
|
|
800
828
|
`${label} ${colorRef(item.ref)}${item.version ? `#${item.version}` : ""} (${item.origin})`
|
|
801
829
|
);
|
|
802
830
|
for (const folder of item.folders) console.log(` folder: ${S.dim(folder)}`);
|
|
831
|
+
for (const file of item.renders) console.log(` writes: ${S.dim(file)}`);
|
|
803
832
|
if (item.files.length > 0) console.log(` files: ${S.dim(item.files.join(", "))}`);
|
|
804
833
|
};
|
|
805
834
|
for (const item of plan.filter((i) => i.requested)) line(item, "Would add");
|
|
@@ -853,7 +882,8 @@ function makeRemoveCommand() {
|
|
|
853
882
|
", "
|
|
854
883
|
)} (lock entry) \u2014 it was kept; remove that asset to delete it, or \`skaile remove ${ref} --force\`` : void 0;
|
|
855
884
|
if (!result.changed) {
|
|
856
|
-
|
|
885
|
+
const otherKind = await am2.otherKindHint(ref);
|
|
886
|
+
logErr(`Not deployed or declared: ${ref}${otherKind ? `. ${otherKind}` : ""}`);
|
|
857
887
|
if (keptNote) logInfo(keptNote);
|
|
858
888
|
if (ownerNote) logInfo(ownerNote);
|
|
859
889
|
process.exitCode = 1;
|
|
@@ -898,6 +928,7 @@ function makeListCommand() {
|
|
|
898
928
|
runGlobalList(kind, opts, harnesses);
|
|
899
929
|
return;
|
|
900
930
|
}
|
|
931
|
+
if (await reportUnknownHarnesses(path19__default.resolve(opts.projectDir)) > 0) process.exit(1);
|
|
901
932
|
const am2 = new AssetManager({
|
|
902
933
|
registry: getKindRegistry(),
|
|
903
934
|
projectDir: path19__default.resolve(opts.projectDir),
|
|
@@ -917,7 +948,7 @@ function makeListCommand() {
|
|
|
917
948
|
}
|
|
918
949
|
if (declared.length === 0) {
|
|
919
950
|
logInfo("No dependencies declared in skaile.yaml.");
|
|
920
|
-
|
|
951
|
+
warnStaleHarnessCopies(am2);
|
|
921
952
|
return;
|
|
922
953
|
}
|
|
923
954
|
const kindW = Math.max(4, ...declared.map((e) => e.kind.length));
|
|
@@ -943,7 +974,7 @@ function makeListCommand() {
|
|
|
943
974
|
const invalid = declared.filter((e) => e.state === "invalid").length;
|
|
944
975
|
if (invalid > 0)
|
|
945
976
|
logInfo(`${invalid} invalid \u2014 fix the ${S.cmd("skaile.yaml")} dependencies entry.`);
|
|
946
|
-
|
|
977
|
+
warnStaleHarnessCopies(am2);
|
|
947
978
|
console.log();
|
|
948
979
|
});
|
|
949
980
|
}
|
|
@@ -1069,7 +1100,7 @@ async function resolveInfoEntry(am2, ref, opts) {
|
|
|
1069
1100
|
return { entry: match ?? deployed };
|
|
1070
1101
|
}
|
|
1071
1102
|
const lookup = opts.storeLookup ?? (async (filter) => {
|
|
1072
|
-
const { resolveCatalogSource } = await import('../open-library-
|
|
1103
|
+
const { resolveCatalogSource } = await import('../open-library-XBR46DJL.js');
|
|
1073
1104
|
const { source, close } = await resolveCatalogSource({ projectDir: opts.projectDir });
|
|
1074
1105
|
try {
|
|
1075
1106
|
return await source.listAssets(filter);
|
|
@@ -1085,7 +1116,7 @@ async function resolveInfoEntry(am2, ref, opts) {
|
|
|
1085
1116
|
);
|
|
1086
1117
|
return { entry: hit ? catalogAssetToEntry(hit) : null };
|
|
1087
1118
|
} catch (err) {
|
|
1088
|
-
const { LocalCatalogDisabledError: LocalCatalogDisabledError2 } = await import('../open-library-
|
|
1119
|
+
const { LocalCatalogDisabledError: LocalCatalogDisabledError2 } = await import('../open-library-XBR46DJL.js');
|
|
1089
1120
|
const storeNote = err instanceof Error ? err.message : String(err);
|
|
1090
1121
|
const disabled = err instanceof LocalCatalogDisabledError2 || /catalog\.url/i.test(storeNote);
|
|
1091
1122
|
return { entry: null, storeNote, ...disabled ? { storeDisabled: true } : {} };
|
|
@@ -1113,7 +1144,8 @@ function makeInfoCommand() {
|
|
|
1113
1144
|
}
|
|
1114
1145
|
const entry = lookup.entry;
|
|
1115
1146
|
if (!entry) {
|
|
1116
|
-
|
|
1147
|
+
const otherKind = await am2.otherKindHint(ref);
|
|
1148
|
+
logErr(`${infoNotFoundHint(ref, lookup)}${otherKind ? ` ${otherKind}` : ""}`);
|
|
1117
1149
|
process.exit(1);
|
|
1118
1150
|
}
|
|
1119
1151
|
const softDeps = await am2.softDepsOf([ref]);
|
|
@@ -1440,10 +1472,11 @@ function makeAssetCommand() {
|
|
|
1440
1472
|
getKindRegistry(),
|
|
1441
1473
|
norm.content
|
|
1442
1474
|
);
|
|
1443
|
-
|
|
1444
|
-
|
|
1475
|
+
const refusals = [...checked.errors, ...checked.advisories.filter((f) => f.scaffoldBody)];
|
|
1476
|
+
if (refusals.length > 0) {
|
|
1477
|
+
for (const f of refusals) logErr(`${norm.name}/SKILL.md [${f.tag}] \u2014 ${f.text}`);
|
|
1445
1478
|
logErr(
|
|
1446
|
-
`Not imported: ${
|
|
1479
|
+
`Not imported: ${refusals.length} problem(s) in SKILL.md. Fix them in ${src.skillFile} (or drop --no-normalize) and run the import again.`
|
|
1447
1480
|
);
|
|
1448
1481
|
process.exit(1);
|
|
1449
1482
|
}
|
|
@@ -1807,7 +1840,7 @@ function makeCatalogCommand() {
|
|
|
1807
1840
|
return catalog;
|
|
1808
1841
|
}
|
|
1809
1842
|
async function runLocalCatalogTest(projectDir) {
|
|
1810
|
-
const { resolveCatalogSource } = await import('../open-library-
|
|
1843
|
+
const { resolveCatalogSource } = await import('../open-library-XBR46DJL.js');
|
|
1811
1844
|
let resolved;
|
|
1812
1845
|
try {
|
|
1813
1846
|
resolved = await resolveCatalogSource({ projectDir });
|
|
@@ -1983,7 +2016,7 @@ async function scanLibraryFlowEntries() {
|
|
|
1983
2016
|
const { LocalIndex, resolveIndexPath, scanAuthoringLibraries } = await import('../library/index.js');
|
|
1984
2017
|
const indexPath = resolveIndexPath();
|
|
1985
2018
|
if (!existsSync(indexPath)) return entries;
|
|
1986
|
-
const { getKindRegistry: getKindRegistry2 } = await import('../open-registry-
|
|
2019
|
+
const { getKindRegistry: getKindRegistry2 } = await import('../open-registry-W562DCDL.js');
|
|
1987
2020
|
const index = new LocalIndex({ indexPath });
|
|
1988
2021
|
try {
|
|
1989
2022
|
for (const { library, assets } of await scanAuthoringLibraries(index, getKindRegistry2())) {
|
|
@@ -2248,6 +2281,12 @@ function printModelSelectionSection(config, projectDir) {
|
|
|
2248
2281
|
console.log(
|
|
2249
2282
|
` ${S.dim("no AI provider is configured \u2014 add one with")} ${S.cmd("skaile providers add <id> --preset <preset>")}`
|
|
2250
2283
|
);
|
|
2284
|
+
} else if (resolved.fallback) {
|
|
2285
|
+
console.log(` ${S.label("selector:".padEnd(16))} ${selector}`);
|
|
2286
|
+
console.log(
|
|
2287
|
+
` ${S.label("passed on as:".padEnd(16))} the model id ${resolved.modelId ?? selector} ${S.dim("(no provider selected)")}`
|
|
2288
|
+
);
|
|
2289
|
+
for (const warning of resolved.warnings) logWarn(warning);
|
|
2251
2290
|
} else {
|
|
2252
2291
|
const entry = registry.providers[resolved.providerId];
|
|
2253
2292
|
console.log(` ${S.label("selector:".padEnd(16))} ${selector}`);
|
|
@@ -2294,6 +2333,7 @@ async function showConfig(opts) {
|
|
|
2294
2333
|
logErr(error instanceof Error ? error.message : String(error));
|
|
2295
2334
|
process.exit(1);
|
|
2296
2335
|
}
|
|
2336
|
+
if (await reportUnknownHarnesses(projectDir) > 0) process.exit(1);
|
|
2297
2337
|
printEffectiveSection(config, sources);
|
|
2298
2338
|
printWorkspaceDefaultsSection(wsDefaults);
|
|
2299
2339
|
printModelSelectionSection(config, projectDir);
|
|
@@ -2432,6 +2472,13 @@ function makeConfigCommand() {
|
|
|
2432
2472
|
logWarn(
|
|
2433
2473
|
"no AI provider is configured yet \u2014 add one with `skaile providers add <id> --preset <preset>`"
|
|
2434
2474
|
);
|
|
2475
|
+
} else if (resolved.fallback) {
|
|
2476
|
+
console.log(
|
|
2477
|
+
S.dim(
|
|
2478
|
+
` \u2192 passed on as the model id ${resolved.modelId ?? value} (no provider selected)`
|
|
2479
|
+
)
|
|
2480
|
+
);
|
|
2481
|
+
for (const warning of resolved.warnings) logWarn(warning);
|
|
2435
2482
|
} else {
|
|
2436
2483
|
console.log(
|
|
2437
2484
|
S.dim(
|
|
@@ -3115,7 +3162,7 @@ async function ensureTargetsRegistered(projectDir) {
|
|
|
3115
3162
|
const { resolveSkWorkspaceConfig: resolveSkWorkspaceConfig2 } = await import('../core/index.js');
|
|
3116
3163
|
const config = resolveSkWorkspaceConfig2(projectDir);
|
|
3117
3164
|
if (config.plugins && config.plugins.length > 0) {
|
|
3118
|
-
const { ensurePluginsLoaded } = await import('../plugin-store-
|
|
3165
|
+
const { ensurePluginsLoaded } = await import('../plugin-store-36SIL4TV.js');
|
|
3119
3166
|
const result = await ensurePluginsLoaded(projectDir, config.plugins, pluginRegistry);
|
|
3120
3167
|
for (const f of result.failed) logWarn(f.error);
|
|
3121
3168
|
}
|
|
@@ -3274,7 +3321,10 @@ function makeDiffCommand() {
|
|
|
3274
3321
|
);
|
|
3275
3322
|
switch (result.status) {
|
|
3276
3323
|
case "not-found":
|
|
3277
|
-
if (problems.length === 0)
|
|
3324
|
+
if (problems.length === 0) {
|
|
3325
|
+
const hint = await am2.otherKindHint(ref);
|
|
3326
|
+
logErr(`Asset not found: ${ref}${hint ? `. ${hint}` : ""}`);
|
|
3327
|
+
}
|
|
3278
3328
|
break;
|
|
3279
3329
|
case "not-deployed":
|
|
3280
3330
|
if (problems.length === 0) {
|
|
@@ -3395,7 +3445,7 @@ function makeHarnessCommand() {
|
|
|
3395
3445
|
async function runHarnessSet(name, projectDir) {
|
|
3396
3446
|
const target = parseHarnessTarget(name);
|
|
3397
3447
|
if (!target) {
|
|
3398
|
-
logErr(
|
|
3448
|
+
logErr(unknownHarnessTargetMessage(name));
|
|
3399
3449
|
process.exit(1);
|
|
3400
3450
|
}
|
|
3401
3451
|
requireProjectConfig(projectDir);
|
|
@@ -3746,7 +3796,7 @@ var TOGGLE_SUPPORTED = ["claude-code"];
|
|
|
3746
3796
|
function resolveHarness(harness) {
|
|
3747
3797
|
if (harness === "all") return [...ALL_HARNESSES];
|
|
3748
3798
|
if (harness === "claude-code" || harness === "omp" || harness === "codex") return [harness];
|
|
3749
|
-
logErr(
|
|
3799
|
+
logErr(unknownHarnessTargetMessage(harness, ["all"]));
|
|
3750
3800
|
return null;
|
|
3751
3801
|
}
|
|
3752
3802
|
function withHarness(raw, fallback) {
|
|
@@ -4350,6 +4400,16 @@ function warnUnlistedAssets(unlisted, name) {
|
|
|
4350
4400
|
);
|
|
4351
4401
|
}
|
|
4352
4402
|
}
|
|
4403
|
+
function warnManifestNeedsCommit(libPath, name) {
|
|
4404
|
+
const status4 = spawnSync("git", ["status", "--porcelain", "--", SKAILE_MANIFEST_FILENAME], {
|
|
4405
|
+
cwd: libPath,
|
|
4406
|
+
encoding: "utf-8"
|
|
4407
|
+
});
|
|
4408
|
+
if (status4.status !== 0 || status4.stdout.trim() === "") return;
|
|
4409
|
+
logInfo(
|
|
4410
|
+
`${SKAILE_MANIFEST_FILENAME} was changed in the clone. Commit it with \`skaile library commit ${name}\`; \`pull\` and \`sync\` stop until you do.`
|
|
4411
|
+
);
|
|
4412
|
+
}
|
|
4353
4413
|
function assertManifestEditableOrExit(libraryPath) {
|
|
4354
4414
|
try {
|
|
4355
4415
|
assertManifestEditable(libraryPath);
|
|
@@ -4603,7 +4663,7 @@ function remoteBranches(url) {
|
|
|
4603
4663
|
return r.stdout.split("\n").map((line) => line.split(" ")[1]?.replace(/^refs\/heads\//, "")).filter((b) => !!b);
|
|
4604
4664
|
}
|
|
4605
4665
|
async function warnIfNotGithubRemote(name, url) {
|
|
4606
|
-
const { isGithubRemote, notGithubRemoteMessage } = await import('../library-publish-
|
|
4666
|
+
const { isGithubRemote, notGithubRemoteMessage } = await import('../library-publish-XMRCKRNR.js');
|
|
4607
4667
|
if (!isGithubRemote(url)) logWarn(notGithubRemoteMessage(name, url));
|
|
4608
4668
|
}
|
|
4609
4669
|
function scaffoldLibraryFiles(dir, name) {
|
|
@@ -4789,7 +4849,7 @@ function makeLibraryCommand() {
|
|
|
4789
4849
|
ownership,
|
|
4790
4850
|
isDefault
|
|
4791
4851
|
});
|
|
4792
|
-
const scaffolded = blank ? scaffoldLibraryFiles(libPath, name) : [];
|
|
4852
|
+
const scaffolded = blank && ownership !== "reader" ? scaffoldLibraryFiles(libPath, name) : [];
|
|
4793
4853
|
logOk(
|
|
4794
4854
|
`Library "${name}" ${blank ? "created" : "registered"} at ${libPath}${isDefault ? " (default)" : ""}`
|
|
4795
4855
|
);
|
|
@@ -4806,8 +4866,9 @@ function makeLibraryCommand() {
|
|
|
4806
4866
|
}
|
|
4807
4867
|
if (!blank) {
|
|
4808
4868
|
const lib = await manager.requireLibrary(name);
|
|
4809
|
-
if (adoptWritesManifest(libPath)) {
|
|
4869
|
+
if (ownership === "owner" && adoptWritesManifest(libPath)) {
|
|
4810
4870
|
await reindexLibrary(lib, library, name);
|
|
4871
|
+
warnManifestNeedsCommit(lib.path, name);
|
|
4811
4872
|
return;
|
|
4812
4873
|
}
|
|
4813
4874
|
const unlisted = await countUnlistedAssets(libPath);
|
|
@@ -4818,8 +4879,9 @@ function makeLibraryCommand() {
|
|
|
4818
4879
|
);
|
|
4819
4880
|
}
|
|
4820
4881
|
warnLibraryNameFallback(name, resolved);
|
|
4821
|
-
if (resolved.source !== "manifest") {
|
|
4882
|
+
if (ownership === "owner" && resolved.source !== "manifest") {
|
|
4822
4883
|
stampManifestPublisher(lib.path, resolved.publisher);
|
|
4884
|
+
warnManifestNeedsCommit(lib.path, name);
|
|
4823
4885
|
}
|
|
4824
4886
|
const res = await indexLibrary(lib, library);
|
|
4825
4887
|
for (const e of res.errors) logWarn(e);
|
|
@@ -5334,16 +5396,16 @@ function makeLibraryCommand() {
|
|
|
5334
5396
|
"With --create-repo: create the repo private (the store only accepts public repos)"
|
|
5335
5397
|
).option("--ref <gitref>", "Git ref to ingest (default: the library branch or main)").option("--dry-run", "Print the plan; push nothing and call no store endpoint").action(
|
|
5336
5398
|
async (lib, opts) => {
|
|
5337
|
-
const { runLibraryPublish } = await import('../library-publish-
|
|
5399
|
+
const { runLibraryPublish } = await import('../library-publish-XMRCKRNR.js');
|
|
5338
5400
|
await withStoreErrorHandling(() => runLibraryPublish(lib, opts));
|
|
5339
5401
|
}
|
|
5340
5402
|
);
|
|
5341
5403
|
cmd.command("register <lib>").description("Register the library's manifest without pushing (bytes already on github)").option("--asset <ref>", "Publish only the single asset matching this ref/name").option("--ref <gitref>", "Git ref to ingest (default: the library branch or main)").option("--dry-run", "Print the plan; call no store endpoint").action(async (lib, opts) => {
|
|
5342
|
-
const { runLibraryRegister } = await import('../library-publish-
|
|
5404
|
+
const { runLibraryRegister } = await import('../library-publish-XMRCKRNR.js');
|
|
5343
5405
|
await withStoreErrorHandling(() => runLibraryRegister(lib, opts));
|
|
5344
5406
|
});
|
|
5345
5407
|
cmd.command("yank <lib>").description("Retract the library's published assets from the store").option("--asset <ref>", "Yank only the single asset matching this ref/name").action(async (lib, opts) => {
|
|
5346
|
-
const { runLibraryYank } = await import('../library-publish-
|
|
5408
|
+
const { runLibraryYank } = await import('../library-publish-XMRCKRNR.js');
|
|
5347
5409
|
await withStoreErrorHandling(() => runLibraryYank(lib, opts));
|
|
5348
5410
|
});
|
|
5349
5411
|
return cmd;
|
|
@@ -6003,7 +6065,7 @@ function scheduleSoftDepPreview() {
|
|
|
6003
6065
|
}
|
|
6004
6066
|
async function loadAssets() {
|
|
6005
6067
|
softDepPreviewCache.clear();
|
|
6006
|
-
const { gatherAssetFeeds } = await import('../asset-feeds-
|
|
6068
|
+
const { gatherAssetFeeds } = await import('../asset-feeds-KPKCE64E.js');
|
|
6007
6069
|
const { entries, notes } = await gatherAssetFeeds(am, am.projectDir);
|
|
6008
6070
|
if (notes.length > 0) {
|
|
6009
6071
|
state.message = notes.map((n) => `[${n.feed}] ${n.message}`).join(" \u2022 ");
|
|
@@ -6207,7 +6269,7 @@ function reconcileCollapsedSets(rows) {
|
|
|
6207
6269
|
async function loadSourcesAndLibraries() {
|
|
6208
6270
|
try {
|
|
6209
6271
|
const [{ openLibraryManager: openLibraryManager2 }, { getGlobalCacheDir: getGlobalCacheDir2, globalSkaileDir: globalSkaileDir2 }] = await Promise.all([
|
|
6210
|
-
import('../open-library-
|
|
6272
|
+
import('../open-library-XBR46DJL.js'),
|
|
6211
6273
|
import('../core/index.js')
|
|
6212
6274
|
]);
|
|
6213
6275
|
const { manager, library, close } = await openLibraryManager2();
|
|
@@ -8043,7 +8105,35 @@ function finalIdentity(kind, name) {
|
|
|
8043
8105
|
return `${kind}:${name}`;
|
|
8044
8106
|
}
|
|
8045
8107
|
}
|
|
8046
|
-
function
|
|
8108
|
+
function existingIdentities(root) {
|
|
8109
|
+
const found = /* @__PURE__ */ new Map();
|
|
8110
|
+
const note = (file, kind, fallback) => {
|
|
8111
|
+
let name = fallback;
|
|
8112
|
+
try {
|
|
8113
|
+
const text = readText(file);
|
|
8114
|
+
const body = file.endsWith(".yaml") ? text : FRONTMATTER.exec(text)?.[1] ?? "";
|
|
8115
|
+
const parsed = parse(body);
|
|
8116
|
+
if (isRecord(parsed) && typeof parsed.name === "string" && parsed.name !== "")
|
|
8117
|
+
name = parsed.name;
|
|
8118
|
+
} catch {
|
|
8119
|
+
}
|
|
8120
|
+
const identity = finalIdentity(kind, name);
|
|
8121
|
+
if (!found.has(identity)) found.set(identity, posix2(path19__default.relative(root, file)));
|
|
8122
|
+
};
|
|
8123
|
+
for (const file of walkFiles(root, (b) => b.endsWith(".preset.yaml"))) {
|
|
8124
|
+
note(file, "preset", path19__default.basename(file).replace(/\.preset\.yaml$/, ""));
|
|
8125
|
+
}
|
|
8126
|
+
for (const [base, kind] of [
|
|
8127
|
+
["RULESET.md", "ruleset"],
|
|
8128
|
+
["PERSONA.md", "persona"]
|
|
8129
|
+
]) {
|
|
8130
|
+
for (const file of walkFiles(root, (b) => b === base)) {
|
|
8131
|
+
note(file, kind, path19__default.basename(path19__default.dirname(file)));
|
|
8132
|
+
}
|
|
8133
|
+
}
|
|
8134
|
+
return found;
|
|
8135
|
+
}
|
|
8136
|
+
function planMarkdownMoves(root, knownKinds, manual, unknownTypes, identities, conflicts, existing) {
|
|
8047
8137
|
const moves = [];
|
|
8048
8138
|
const changes = [];
|
|
8049
8139
|
const targets = /* @__PURE__ */ new Set();
|
|
@@ -8071,6 +8161,13 @@ function planMarkdownMoves(root, knownKinds, manual, unknownTypes, identities, c
|
|
|
8071
8161
|
);
|
|
8072
8162
|
continue;
|
|
8073
8163
|
}
|
|
8164
|
+
const present = existing.get(identity);
|
|
8165
|
+
if (present !== void 0) {
|
|
8166
|
+
conflicts.push(
|
|
8167
|
+
`${present} already is ${identity}, and ${posix2(path19__default.relative(root, file))} would become it too: rename one first. Nothing was changed.`
|
|
8168
|
+
);
|
|
8169
|
+
continue;
|
|
8170
|
+
}
|
|
8074
8171
|
identities.set(identity, posix2(path19__default.relative(root, file)));
|
|
8075
8172
|
targets.add(to);
|
|
8076
8173
|
moves.push({ from: file, to, kind: found.type });
|
|
@@ -8155,7 +8252,7 @@ function repoPublisher(root) {
|
|
|
8155
8252
|
}
|
|
8156
8253
|
return DEFAULT_PUBLISHER;
|
|
8157
8254
|
}
|
|
8158
|
-
function planBundles(root, skaileYamls, publisher, notes, manual, conflicts, identities) {
|
|
8255
|
+
function planBundles(root, skaileYamls, publisher, notes, manual, conflicts, identities, existing) {
|
|
8159
8256
|
const changes = [];
|
|
8160
8257
|
const presets = [];
|
|
8161
8258
|
const handled = /* @__PURE__ */ new Set();
|
|
@@ -8183,6 +8280,13 @@ function planBundles(root, skaileYamls, publisher, notes, manual, conflicts, ide
|
|
|
8183
8280
|
manual.push(`${rel(target)} already exists; bundle ${name} not converted`);
|
|
8184
8281
|
return;
|
|
8185
8282
|
}
|
|
8283
|
+
const present = existing.get(identity);
|
|
8284
|
+
if (present !== void 0) {
|
|
8285
|
+
conflicts.push(
|
|
8286
|
+
`${present} already is ${identity}, and ${origin} would become it too: rename the bundle first. Nothing was changed.`
|
|
8287
|
+
);
|
|
8288
|
+
return;
|
|
8289
|
+
}
|
|
8186
8290
|
let description;
|
|
8187
8291
|
let refs = [];
|
|
8188
8292
|
let before;
|
|
@@ -8348,13 +8452,15 @@ function planAssetMigration(options) {
|
|
|
8348
8452
|
const conflicts = [];
|
|
8349
8453
|
const unknownTypes = [];
|
|
8350
8454
|
const identities = /* @__PURE__ */ new Map();
|
|
8455
|
+
const existing = existingIdentities(root);
|
|
8351
8456
|
const { moves, changes: moveChanges } = planMarkdownMoves(
|
|
8352
8457
|
root,
|
|
8353
8458
|
knownKinds,
|
|
8354
8459
|
manual,
|
|
8355
8460
|
unknownTypes,
|
|
8356
8461
|
identities,
|
|
8357
|
-
conflicts
|
|
8462
|
+
conflicts,
|
|
8463
|
+
existing
|
|
8358
8464
|
);
|
|
8359
8465
|
for (const move of moves) {
|
|
8360
8466
|
notes.push(
|
|
@@ -8381,7 +8487,8 @@ function planAssetMigration(options) {
|
|
|
8381
8487
|
notes,
|
|
8382
8488
|
manual,
|
|
8383
8489
|
conflicts,
|
|
8384
|
-
identities
|
|
8490
|
+
identities,
|
|
8491
|
+
existing
|
|
8385
8492
|
);
|
|
8386
8493
|
const skaileChanges = skaileYamls.flatMap(
|
|
8387
8494
|
({ file, source }) => planSkaileYaml(root, file, source, notes, manual)
|
|
@@ -9165,8 +9272,15 @@ function makeOutdatedCommand() {
|
|
|
9165
9272
|
);
|
|
9166
9273
|
}
|
|
9167
9274
|
console.log();
|
|
9168
|
-
|
|
9169
|
-
|
|
9275
|
+
const needsUpdate = filtered.some(
|
|
9276
|
+
(e) => e.problem === void 0 && !e.pinned && !e.contentChanged
|
|
9277
|
+
);
|
|
9278
|
+
const needsRelock = filtered.some(
|
|
9279
|
+
(e) => e.problem === void 0 && !e.pinned && e.contentChanged
|
|
9280
|
+
);
|
|
9281
|
+
if (needsUpdate) logWarn(`Run ${S.cmd("skaile update")} to re-lock and re-deploy.`);
|
|
9282
|
+
if (needsRelock) {
|
|
9283
|
+
logWarn(`Run ${S.cmd("skaile install")} to re-lock the changed library assets.`);
|
|
9170
9284
|
}
|
|
9171
9285
|
if (filtered.some((e) => e.problem !== void 0 && !e.manualFix)) {
|
|
9172
9286
|
logWarn(`Run ${S.cmd("skaile install")} to restore or re-lock the broken assets.`);
|
|
@@ -9247,7 +9361,7 @@ function action2(fn) {
|
|
|
9247
9361
|
};
|
|
9248
9362
|
}
|
|
9249
9363
|
async function reconcileAndReport(projectDir, plugins, opts = {}) {
|
|
9250
|
-
const { reconcilePlugins } = await import('../plugin-store-
|
|
9364
|
+
const { reconcilePlugins } = await import('../plugin-store-36SIL4TV.js');
|
|
9251
9365
|
if (plugins.length === 0) {
|
|
9252
9366
|
logInfo("No plugins declared \u2014 nothing to reconcile.");
|
|
9253
9367
|
return;
|
|
@@ -9262,7 +9376,7 @@ async function reconcileAndReport(projectDir, plugins, opts = {}) {
|
|
|
9262
9376
|
}
|
|
9263
9377
|
}
|
|
9264
9378
|
async function verifyPluginLoads(projectDir, spec) {
|
|
9265
|
-
const { loadPlugins } = await import('../plugin-store-
|
|
9379
|
+
const { loadPlugins } = await import('../plugin-store-36SIL4TV.js');
|
|
9266
9380
|
const { createPluginRegistry } = await import('../plugin-registry/index.js');
|
|
9267
9381
|
const registry = createPluginRegistry();
|
|
9268
9382
|
const result = await loadPlugins(projectDir, [spec], registry);
|
|
@@ -9276,7 +9390,9 @@ async function verifyPluginLoads(projectDir, spec) {
|
|
|
9276
9390
|
async function runInstall2(spec, opts) {
|
|
9277
9391
|
const projectDir = path19__default.resolve(opts.projectDir);
|
|
9278
9392
|
const { WorkspaceYamlEditor: WorkspaceYamlEditor2 } = await import('../core/index.js');
|
|
9279
|
-
const { specName, rollbackPluginStore } = await import('../plugin-store-
|
|
9393
|
+
const { specName, rollbackPluginStore, npmSpecError } = await import('../plugin-store-36SIL4TV.js');
|
|
9394
|
+
const specError = npmSpecError(spec);
|
|
9395
|
+
if (specError) throw new Error(specError);
|
|
9280
9396
|
const yamlPath = path19__default.join(projectDir, "skaile.yaml");
|
|
9281
9397
|
if (!existsSync(yamlPath)) {
|
|
9282
9398
|
throw new Error(`no skaile.yaml in ${projectDir}; run \`skaile init\` first`);
|
|
@@ -9305,7 +9421,7 @@ async function runInstall2(spec, opts) {
|
|
|
9305
9421
|
async function runRemove(name, opts) {
|
|
9306
9422
|
const projectDir = path19__default.resolve(opts.projectDir);
|
|
9307
9423
|
const { WorkspaceYamlEditor: WorkspaceYamlEditor2 } = await import('../core/index.js');
|
|
9308
|
-
const { specName } = await import('../plugin-store-
|
|
9424
|
+
const { specName } = await import('../plugin-store-36SIL4TV.js');
|
|
9309
9425
|
const yamlPath = path19__default.join(projectDir, "skaile.yaml");
|
|
9310
9426
|
if (!existsSync(yamlPath)) {
|
|
9311
9427
|
logInfo(`No plugin matching ${S.cmd(name)}: there is no skaile.yaml in ${projectDir}.`);
|
|
@@ -9337,7 +9453,7 @@ async function runList(opts) {
|
|
|
9337
9453
|
const registry = createPluginRegistry();
|
|
9338
9454
|
if (declared.length > 0) {
|
|
9339
9455
|
try {
|
|
9340
|
-
const { loadPlugins } = await import('../plugin-store-
|
|
9456
|
+
const { loadPlugins } = await import('../plugin-store-36SIL4TV.js');
|
|
9341
9457
|
const result = await loadPlugins(projectDir, declared, registry);
|
|
9342
9458
|
for (const f of result.failed) logWarn(f.error);
|
|
9343
9459
|
} catch (err) {
|
|
@@ -10133,6 +10249,11 @@ function makeRebuildCommand() {
|
|
|
10133
10249
|
).option("--project-dir <dir>", "Project directory", process.cwd()).action(async (agentArg, opts) => {
|
|
10134
10250
|
const projectDir = path19__default.resolve(opts.projectDir);
|
|
10135
10251
|
requireProjectConfig(projectDir, { allowMissing: true });
|
|
10252
|
+
const instanceErrors = agentInstanceErrorLines(projectDir);
|
|
10253
|
+
if (instanceErrors.length > 0) {
|
|
10254
|
+
for (const line of instanceErrors) logErr(line);
|
|
10255
|
+
process.exit(1);
|
|
10256
|
+
}
|
|
10136
10257
|
let agentDir;
|
|
10137
10258
|
if (agentArg) {
|
|
10138
10259
|
agentDir = resolveNamedAgent(projectDir, agentArg);
|
|
@@ -10373,6 +10494,34 @@ function isNearFlowId(typed, id) {
|
|
|
10373
10494
|
function harnessOptionDescription() {
|
|
10374
10495
|
return `Harness to run (${listHarnesses().map((d) => d.id).join(", ")})`;
|
|
10375
10496
|
}
|
|
10497
|
+
function nodeSkillRefs(flow) {
|
|
10498
|
+
const refs = /* @__PURE__ */ new Map();
|
|
10499
|
+
for (const node of flow.nodes) {
|
|
10500
|
+
for (const asset of nodeAssets(node)) {
|
|
10501
|
+
if (asset.startsWith("skill:") && !refs.has(asset)) refs.set(asset, node.id);
|
|
10502
|
+
}
|
|
10503
|
+
}
|
|
10504
|
+
return refs;
|
|
10505
|
+
}
|
|
10506
|
+
async function reportMissingNodeSkills(projectDir, flow) {
|
|
10507
|
+
const refs = nodeSkillRefs(flow);
|
|
10508
|
+
if (refs.size === 0) return;
|
|
10509
|
+
let missing;
|
|
10510
|
+
try {
|
|
10511
|
+
missing = new AssetManager({
|
|
10512
|
+
registry: getKindRegistry(),
|
|
10513
|
+
projectDir
|
|
10514
|
+
}).undeployedSkills([...refs.keys()]);
|
|
10515
|
+
} catch {
|
|
10516
|
+
return;
|
|
10517
|
+
}
|
|
10518
|
+
for (const ref of missing) {
|
|
10519
|
+
const bare = ref.replace(/#.*$/, "");
|
|
10520
|
+
logWarn(
|
|
10521
|
+
`Node ${refs.get(ref)} needs ${S.cmd(bare)}, which is not deployed. Run ${S.cmd(`skaile add ${bare}`)}.`
|
|
10522
|
+
);
|
|
10523
|
+
}
|
|
10524
|
+
}
|
|
10376
10525
|
function makeRunCommand() {
|
|
10377
10526
|
const cmd = new Command("run").description("Start a flow or run a single-shot text prompt").argument("[flow-id-or-text...]", "Flow ID or text prompt").option("--project-dir <path>", "Project directory", process.cwd()).option("--harness <name>", harnessOptionDescription()).addOption(driverAliasOption()).option("--model <name>", "Model override").option("--label <label>", "Human-readable session label").option("--dry-run", "Print plan without executing (single-shot: resolved composition items)").option(
|
|
10378
10527
|
"--agent-definition <ref|path>",
|
|
@@ -10383,7 +10532,9 @@ function makeRunCommand() {
|
|
|
10383
10532
|
).option("--skill <name>", "Skill name (for single-shot mode)").action(async (positional, opts) => {
|
|
10384
10533
|
const projectDir = path19__default.resolve(opts.projectDir);
|
|
10385
10534
|
await loadDeclaredPlugins(projectDir);
|
|
10386
|
-
await reportProjectConfig(projectDir, { harness: false })
|
|
10535
|
+
if (await reportProjectConfig(projectDir, { harness: false, instances: true }) > 0) {
|
|
10536
|
+
process.exit(1);
|
|
10537
|
+
}
|
|
10387
10538
|
const cliHarness = foldDriverFlag(opts).harness;
|
|
10388
10539
|
const dryRun = opts.dryRun ?? false;
|
|
10389
10540
|
const agentDefinition = opts.agentDefinition?.trim() || void 0;
|
|
@@ -10539,6 +10690,7 @@ function makeRunCommand() {
|
|
|
10539
10690
|
onEvent: makeFlowEventHandler(),
|
|
10540
10691
|
onLog: (line) => console.log(line)
|
|
10541
10692
|
});
|
|
10693
|
+
if (dryRun) await reportMissingNodeSkills(projectDir, flow);
|
|
10542
10694
|
} catch (err) {
|
|
10543
10695
|
const friendly = friendlyHarnessError(err);
|
|
10544
10696
|
logErr(friendly ?? (err instanceof Error ? err.message : String(err)));
|
|
@@ -10678,7 +10830,9 @@ function makeReplCommand() {
|
|
|
10678
10830
|
console.log();
|
|
10679
10831
|
}
|
|
10680
10832
|
await loadDeclaredPlugins(projectDir);
|
|
10681
|
-
await reportProjectConfig(projectDir, { harness: false })
|
|
10833
|
+
if (await reportProjectConfig(projectDir, { harness: false, instances: true }) > 0) {
|
|
10834
|
+
process.exit(1);
|
|
10835
|
+
}
|
|
10682
10836
|
const effective = await resolveSettings(projectDir, {
|
|
10683
10837
|
harness: harnessOverride,
|
|
10684
10838
|
model: opts.model
|
|
@@ -10714,6 +10868,15 @@ function makeReplCommand() {
|
|
|
10714
10868
|
}
|
|
10715
10869
|
});
|
|
10716
10870
|
}
|
|
10871
|
+
function valueNotFlag(flag) {
|
|
10872
|
+
return (value) => {
|
|
10873
|
+
if (value.startsWith("--")) {
|
|
10874
|
+
logErr(`${flag} needs a value, got '${value}'`);
|
|
10875
|
+
process.exit(1);
|
|
10876
|
+
}
|
|
10877
|
+
return value;
|
|
10878
|
+
};
|
|
10879
|
+
}
|
|
10717
10880
|
function parseProviderIds(raw) {
|
|
10718
10881
|
return (raw ?? "").split(",").map((id) => id.trim()).filter((id) => id.length > 0);
|
|
10719
10882
|
}
|
|
@@ -10760,21 +10923,31 @@ function describeBindError(err, host, port) {
|
|
|
10760
10923
|
}
|
|
10761
10924
|
}
|
|
10762
10925
|
function makeServeCommand() {
|
|
10763
|
-
return new Command("serve").description("Start a WebSocket agent server (for platform integration)").option("--port <port>", "WebSocket server port", "8080").option(
|
|
10926
|
+
return new Command("serve").description("Start a WebSocket agent server (for platform integration)").option("--port <port>", "WebSocket server port", valueNotFlag("--port"), "8080").option(
|
|
10764
10927
|
"--host <address>",
|
|
10765
|
-
"Address to bind (default: all interfaces; use 127.0.0.1 for local clients only)"
|
|
10766
|
-
|
|
10928
|
+
"Address to bind (default: all interfaces; use 127.0.0.1 for local clients only)",
|
|
10929
|
+
valueNotFlag("--host")
|
|
10930
|
+
).option(
|
|
10931
|
+
"--project-dir <path>",
|
|
10932
|
+
"Project directory",
|
|
10933
|
+
valueNotFlag("--project-dir"),
|
|
10934
|
+
process.cwd()
|
|
10935
|
+
).option(
|
|
10767
10936
|
"--managed-codex-config <path>",
|
|
10768
|
-
"Explicit private host configuration for managed Codex"
|
|
10769
|
-
|
|
10937
|
+
"Explicit private host configuration for managed Codex",
|
|
10938
|
+
valueNotFlag("--managed-codex-config")
|
|
10939
|
+
).option("--harness <name>", "Override harness", valueNotFlag("--harness")).addOption(driverAliasOption().argParser(valueNotFlag("--driver"))).option("--model <name>", "Override model", valueNotFlag("--model")).option("--provider <name>", "Override provider", valueNotFlag("--provider")).option(
|
|
10770
10940
|
"--session-id <id>",
|
|
10771
|
-
"Label for the session; does not restore the conversation (use --resume-session-id)"
|
|
10941
|
+
"Label for the session; does not restore the conversation (use --resume-session-id)",
|
|
10942
|
+
valueNotFlag("--session-id")
|
|
10772
10943
|
).option(
|
|
10773
10944
|
"--resume-session-id <id>",
|
|
10774
|
-
"harnessSessionId of an earlier session (from its session_info event); restores that conversation"
|
|
10945
|
+
"harnessSessionId of an earlier session (from its session_info event); restores that conversation",
|
|
10946
|
+
valueNotFlag("--resume-session-id")
|
|
10775
10947
|
).option(
|
|
10776
10948
|
"--providers <ids>",
|
|
10777
|
-
"Restrict the AI provider registry to these entry ids (comma-separated)"
|
|
10949
|
+
"Restrict the AI provider registry to these entry ids (comma-separated)",
|
|
10950
|
+
valueNotFlag("--providers")
|
|
10778
10951
|
).option(
|
|
10779
10952
|
"--model-endpoint [port]",
|
|
10780
10953
|
"Serve an OpenAI-compatible model endpoint on loopback for apps next to the session (optional port; default from skaile.yaml model_endpoint.port, else ephemeral)"
|
|
@@ -10808,6 +10981,14 @@ function makeServeCommand() {
|
|
|
10808
10981
|
process.exitCode = 1;
|
|
10809
10982
|
return;
|
|
10810
10983
|
}
|
|
10984
|
+
const dirProblem = (await import('../serve-preflight-CGA5G3AE.js')).checkServeProjectDir(
|
|
10985
|
+
opts.projectDir
|
|
10986
|
+
);
|
|
10987
|
+
if (dirProblem) {
|
|
10988
|
+
logErr(dirProblem);
|
|
10989
|
+
process.exitCode = 1;
|
|
10990
|
+
return;
|
|
10991
|
+
}
|
|
10811
10992
|
let managedCodex;
|
|
10812
10993
|
if (opts.managedCodexConfig) {
|
|
10813
10994
|
try {
|
|
@@ -10829,7 +11010,14 @@ function makeServeCommand() {
|
|
|
10829
11010
|
}
|
|
10830
11011
|
const providers = parseProviderIds(opts.providers);
|
|
10831
11012
|
const modelEndpoint = parseModelEndpointFlag(opts.modelEndpoint);
|
|
10832
|
-
const { checkHarnessSdk, checkModelEndpointPeer, checkServeModel } = await import('../serve-preflight-
|
|
11013
|
+
const { checkHarnessSdk, checkModelEndpointPeer, checkServeModel } = await import('../serve-preflight-CGA5G3AE.js');
|
|
11014
|
+
const { checkServeHarness, checkServeAgentDefinition } = await import('../serve-preflight-CGA5G3AE.js');
|
|
11015
|
+
const startProblem = managedCodex ? null : await checkServeHarness(opts.projectDir, opts.harness) ?? checkServeAgentDefinition(opts.projectDir);
|
|
11016
|
+
if (startProblem) {
|
|
11017
|
+
logErr(startProblem);
|
|
11018
|
+
process.exitCode = 1;
|
|
11019
|
+
return;
|
|
11020
|
+
}
|
|
10833
11021
|
const harnessProblem = managedCodex ? null : await checkHarnessSdk(opts.projectDir, opts.harness);
|
|
10834
11022
|
if (harnessProblem) {
|
|
10835
11023
|
logErr(harnessProblem);
|
|
@@ -10890,12 +11078,12 @@ function makeServeCommand() {
|
|
|
10890
11078
|
);
|
|
10891
11079
|
}
|
|
10892
11080
|
async function ensurePluginsLoadedForServe(projectDir) {
|
|
10893
|
-
const { logInfo: logInfo2, logWarn: logWarn2 } = await import('../helpers-
|
|
11081
|
+
const { logInfo: logInfo2, logWarn: logWarn2 } = await import('../helpers-LUSV2ICC.js');
|
|
10894
11082
|
try {
|
|
10895
11083
|
const { resolveSkWorkspaceConfig: resolveSkWorkspaceConfig2 } = await import('../core/index.js');
|
|
10896
11084
|
const config = resolveSkWorkspaceConfig2(projectDir);
|
|
10897
11085
|
if (!config.plugins || config.plugins.length === 0) return;
|
|
10898
|
-
const { ensurePluginsLoaded } = await import('../plugin-store-
|
|
11086
|
+
const { ensurePluginsLoaded } = await import('../plugin-store-36SIL4TV.js');
|
|
10899
11087
|
const { pluginRegistry } = await import('../plugin-registry/index.js');
|
|
10900
11088
|
const result = await ensurePluginsLoaded(projectDir, config.plugins, pluginRegistry);
|
|
10901
11089
|
if (result.loaded.length > 0) {
|
|
@@ -10909,14 +11097,14 @@ async function ensurePluginsLoadedForServe(projectDir) {
|
|
|
10909
11097
|
}
|
|
10910
11098
|
}
|
|
10911
11099
|
async function runCompileTest(opts) {
|
|
10912
|
-
const { logOk: logOk2, logErr: logErr2, logInfo: logInfo2, S: S2 } = await import('../helpers-
|
|
11100
|
+
const { logOk: logOk2, logErr: logErr2, logInfo: logInfo2, S: S2 } = await import('../helpers-LUSV2ICC.js');
|
|
10913
11101
|
const { tmpdir } = await import('os');
|
|
10914
11102
|
const { dirname: dirname3, join: join6, resolve: resolve4 } = await import('path');
|
|
10915
11103
|
const { fileURLToPath: fileURLToPath2 } = await import('url');
|
|
10916
11104
|
const { unlinkSync, existsSync: existsSync22 } = await import('fs');
|
|
10917
11105
|
const { spawn } = await import('child_process');
|
|
10918
11106
|
const { portableSpawnSync: portableSpawnSync2 } = await import('../core/index.js');
|
|
10919
|
-
const { MONOREPO_ROOT } = await import('../paths-
|
|
11107
|
+
const { MONOREPO_ROOT } = await import('../paths-2AZXB3QL.js');
|
|
10920
11108
|
if (MONOREPO_ROOT === null) {
|
|
10921
11109
|
logErr2("--compile-test is only available inside the skaile-dev workspace.");
|
|
10922
11110
|
logInfo2("Run it from a checkout of skaile-ai/skaile-dev (the monorepo shell).");
|
|
@@ -11874,8 +12062,8 @@ function makeStoreCommand() {
|
|
|
11874
12062
|
"--all",
|
|
11875
12063
|
`List every match (default: ${STORE_ROW_LIMIT} rows, only what \`skaile add\` can install)`
|
|
11876
12064
|
).option("-C, --project-dir <dir>", "Project directory (catalog config overlay)", process.cwd()).action(async (query, opts) => {
|
|
11877
|
-
const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError: LocalCatalogDisabledError2 } = await import('../open-library-
|
|
11878
|
-
const { getKnownKinds: getKnownKinds2 } = await import('../open-registry-
|
|
12065
|
+
const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError: LocalCatalogDisabledError2 } = await import('../open-library-XBR46DJL.js');
|
|
12066
|
+
const { getKnownKinds: getKnownKinds2 } = await import('../open-registry-W562DCDL.js');
|
|
11879
12067
|
const projectDir = path19__default.resolve(opts.projectDir);
|
|
11880
12068
|
if (opts.kind && !getKnownKinds2().has(opts.kind)) {
|
|
11881
12069
|
logErr(
|
|
@@ -11933,8 +12121,8 @@ function makeStoreCommand() {
|
|
|
11933
12121
|
}
|
|
11934
12122
|
});
|
|
11935
12123
|
store.command("show <ref>").description("Show a store asset's details + provenance (source, files, integrity)").option("-C, --project-dir <dir>", "Project directory (catalog config overlay)", process.cwd()).action(async (ref, opts) => {
|
|
11936
|
-
const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError: LocalCatalogDisabledError2 } = await import('../open-library-
|
|
11937
|
-
const { supportsInstallManifest: supportsInstallManifest2 } = await import('../project-
|
|
12124
|
+
const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError: LocalCatalogDisabledError2 } = await import('../open-library-XBR46DJL.js');
|
|
12125
|
+
const { supportsInstallManifest: supportsInstallManifest2 } = await import('../project-D7GN7WLS.js');
|
|
11938
12126
|
try {
|
|
11939
12127
|
parseAssetRef(ref);
|
|
11940
12128
|
} catch (e) {
|
|
@@ -12176,7 +12364,7 @@ function makeUpdateCommand() {
|
|
|
12176
12364
|
}
|
|
12177
12365
|
}
|
|
12178
12366
|
if (target) {
|
|
12179
|
-
await updateOne(am2, projectDir, target);
|
|
12367
|
+
await updateOne(am2, projectDir, target, opts.force);
|
|
12180
12368
|
return;
|
|
12181
12369
|
}
|
|
12182
12370
|
const spinner = createSpinner();
|
|
@@ -12270,7 +12458,8 @@ async function resolveUpdateTarget(am2, name) {
|
|
|
12270
12458
|
);
|
|
12271
12459
|
process.exit(1);
|
|
12272
12460
|
}
|
|
12273
|
-
|
|
12461
|
+
const otherKind = await am2.otherKindHint(name);
|
|
12462
|
+
logErr(`No declared asset matches "${name}".${otherKind ? ` ${otherKind}` : ""}`);
|
|
12274
12463
|
if (declared.length > 0) logInfo(`Declared: ${declared.map((d) => d.ref).join(", ")}`);
|
|
12275
12464
|
process.exit(1);
|
|
12276
12465
|
}
|
|
@@ -12318,7 +12507,7 @@ function readText2(file) {
|
|
|
12318
12507
|
return "";
|
|
12319
12508
|
}
|
|
12320
12509
|
}
|
|
12321
|
-
async function updateOne(am2, projectDir, target) {
|
|
12510
|
+
async function updateOne(am2, projectDir, target, force) {
|
|
12322
12511
|
const lockPath = path19__default.join(projectDir, "skaile.lock.yaml");
|
|
12323
12512
|
const before = readText2(lockPath);
|
|
12324
12513
|
const spinner = createSpinner();
|
|
@@ -12327,6 +12516,7 @@ async function updateOne(am2, projectDir, target) {
|
|
|
12327
12516
|
try {
|
|
12328
12517
|
deployed = await am2.add(target.ref, {
|
|
12329
12518
|
preferLockedLibrary: true,
|
|
12519
|
+
force,
|
|
12330
12520
|
onLibraryMoved: (m) => reportMoved([m])
|
|
12331
12521
|
});
|
|
12332
12522
|
} catch (err) {
|
|
@@ -12525,6 +12715,12 @@ function makeWhyCommand() {
|
|
|
12525
12715
|
process.exitCode = 1;
|
|
12526
12716
|
return;
|
|
12527
12717
|
}
|
|
12718
|
+
const otherKind = await am2.otherKindHint(ref);
|
|
12719
|
+
if (otherKind) {
|
|
12720
|
+
logErr(`${ref} is not a locked skill. ${otherKind}`);
|
|
12721
|
+
process.exitCode = 1;
|
|
12722
|
+
return;
|
|
12723
|
+
}
|
|
12528
12724
|
let declared;
|
|
12529
12725
|
try {
|
|
12530
12726
|
declared = await am2.listDeclared();
|
|
@@ -12727,7 +12923,7 @@ async function runInit(projectDir, opts) {
|
|
|
12727
12923
|
const { HARNESS_TARGETS: HARNESS_TARGETS2, SUPPORTED_HARNESSES: SUPPORTED_HARNESSES2, resolveConfiguredHarnessName: resolveConfiguredHarnessName2 } = await import('../core/index.js');
|
|
12728
12924
|
const harness = opts.harness ?? "claude-code";
|
|
12729
12925
|
if (!SUPPORTED_HARNESSES2.includes(harness)) {
|
|
12730
|
-
logErr(
|
|
12926
|
+
logErr(unknownHarnessTargetMessage(opts.harness ?? ""));
|
|
12731
12927
|
process.exitCode = 1;
|
|
12732
12928
|
return;
|
|
12733
12929
|
}
|
|
@@ -12871,7 +13067,7 @@ async function bootstrapUserConfig() {
|
|
|
12871
13067
|
}
|
|
12872
13068
|
async function hydrateInitSources(resolved, created) {
|
|
12873
13069
|
try {
|
|
12874
|
-
const { ensureSourcesCloned } = await import('../ensure-sources-
|
|
13070
|
+
const { ensureSourcesCloned } = await import('../ensure-sources-K5EFNC3L.js');
|
|
12875
13071
|
const hydrate = ensureSourcesCloned(resolved, { quiet: true });
|
|
12876
13072
|
for (const n of hydrate.cloned) created.push(`~/.skaile/cache/sources/${n}/`);
|
|
12877
13073
|
if (hydrate.failed.length > 0) {
|
|
@@ -12911,7 +13107,7 @@ function printInitSummary(resolved, projectDir, created) {
|
|
|
12911
13107
|
console.log();
|
|
12912
13108
|
}
|
|
12913
13109
|
program.command("setup").description("Interactive provider setup wizard").action(async () => {
|
|
12914
|
-
const { cmdSetup } = await import('../setup-
|
|
13110
|
+
const { cmdSetup } = await import('../setup-IBDNJAOU.js');
|
|
12915
13111
|
await cmdSetup([], { projectDir: process.cwd() });
|
|
12916
13112
|
});
|
|
12917
13113
|
program.addCommand(makeInstallCommand());
|
|
@@ -12992,7 +13188,7 @@ program.hook("postAction", async (_thisCommand, actionCommand) => {
|
|
|
12992
13188
|
const opts = actionCommand.opts();
|
|
12993
13189
|
if (opts.global || opts.dryRun) return;
|
|
12994
13190
|
const projectDir = path19__default.resolve(opts.projectDir ?? process.cwd());
|
|
12995
|
-
const { refreshPluginSkills } = await import('../claude-code-
|
|
13191
|
+
const { refreshPluginSkills } = await import('../claude-code-BBMNVH2J.js');
|
|
12996
13192
|
try {
|
|
12997
13193
|
if (await refreshPluginSkills(projectDir)) {
|
|
12998
13194
|
logInfo(`Updated ${S.cmd(".claude/plugins/skaile/skills")} (the --full plugin copy)`);
|
|
@@ -13013,6 +13209,17 @@ process.once("beforeExit", () => {
|
|
|
13013
13209
|
setLibraryAssetCheck(
|
|
13014
13210
|
(asset, libraryPath) => libraryAssetRefusals(asset, libraryPath, getKindRegistry())
|
|
13015
13211
|
);
|
|
13212
|
+
setRenamedEntryLookup(manifestEntryRenames);
|
|
13213
|
+
setWalkTruncationSink((info, root) => {
|
|
13214
|
+
const where = path19__default.basename(root);
|
|
13215
|
+
if (info.reason === "cycle") {
|
|
13216
|
+
logWarnErr(
|
|
13217
|
+
`${where}: asset scan truncated (cycle) - the symlink ${info.path} points back into the tree, so the result is incomplete. Remove the symlink; \`skaile library index ${where}\` lists every one.`
|
|
13218
|
+
);
|
|
13219
|
+
return;
|
|
13220
|
+
}
|
|
13221
|
+
logWarnErr(`${where}: asset scan truncated (${info.reason}) - the result is incomplete.`);
|
|
13222
|
+
});
|
|
13016
13223
|
try {
|
|
13017
13224
|
await program.parseAsync();
|
|
13018
13225
|
commandSettled = true;
|