@skaile/workspaces 6.1.0 → 6.3.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 +57 -0
- package/dist/ai-sdk.d.ts +2 -0
- package/dist/ai-sdk.js +111 -0
- package/dist/ai-sdk.js.map +1 -0
- package/dist/{asset-feeds-HJFV7UPW.js → asset-feeds-3YO2352Y.js} +26 -26
- package/dist/{asset-feeds-HJFV7UPW.js.map → asset-feeds-3YO2352Y.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 +16 -15
- package/dist/bridge/harnesses/claude-sdk.js.map +1 -1
- package/dist/bridge/harnesses/codex.js +25 -17
- package/dist/bridge/harnesses/codex.js.map +1 -1
- package/dist/bridge/harnesses/continue.js +15 -14
- package/dist/bridge/harnesses/continue.js.map +1 -1
- package/dist/bridge/harnesses/echo.js +5 -4
- package/dist/bridge/harnesses/echo.js.map +1 -1
- package/dist/bridge/harnesses/gemini.js +11 -10
- package/dist/bridge/harnesses/goose.js +15 -14
- package/dist/bridge/harnesses/goose.js.map +1 -1
- package/dist/bridge/harnesses/omp.js +16 -8
- package/dist/bridge/harnesses/omp.js.map +1 -1
- package/dist/bridge/harnesses/opencode.js +15 -14
- package/dist/bridge/harnesses/opencode.js.map +1 -1
- package/dist/bridge/harnesses/qwen.js +11 -10
- package/dist/bridge/harnesses/qwen.js.map +1 -1
- package/dist/bridge/index.js +21 -19
- package/dist/bridge/src/ai-sdk.d.ts +46 -0
- package/dist/bridge/src/ai-sdk.d.ts.map +1 -0
- 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 +2 -1
- package/dist/bridge/src/index.d.ts.map +1 -1
- package/dist/bridge/src/provider-registry-load.d.ts +30 -0
- package/dist/bridge/src/provider-registry-load.d.ts.map +1 -0
- 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-SVTMNSPI.js → chunk-2TFKXSB5.js} +5 -5
- package/dist/{chunk-SVTMNSPI.js.map → chunk-2TFKXSB5.js.map} +1 -1
- package/dist/{chunk-NB7SYQYP.js → chunk-32FYVSSW.js} +9 -28
- package/dist/chunk-32FYVSSW.js.map +1 -0
- package/dist/{chunk-QAKUD6QN.js → chunk-4QRJBY2P.js} +3 -3
- package/dist/{chunk-QAKUD6QN.js.map → chunk-4QRJBY2P.js.map} +1 -1
- package/dist/{chunk-XFIEVEU7.js → chunk-6OHZUUR7.js} +5 -4
- package/dist/chunk-6OHZUUR7.js.map +1 -0
- package/dist/{chunk-ILLTBKDJ.js → chunk-6UP2EDFN.js} +4 -313
- package/dist/chunk-6UP2EDFN.js.map +1 -0
- package/dist/{chunk-ZDLUQLI6.js → chunk-6WH2WE4B.js} +15 -5
- package/dist/chunk-6WH2WE4B.js.map +1 -0
- package/dist/{chunk-HPMQRAIF.js → chunk-72NT2TJU.js} +8 -7
- package/dist/chunk-72NT2TJU.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-5Y2KGB4H.js → chunk-7MV3NHPT.js} +35 -9
- package/dist/chunk-7MV3NHPT.js.map +1 -0
- package/dist/{chunk-QEULL4Q3.js → chunk-7QG2WRSN.js} +77 -18
- package/dist/chunk-7QG2WRSN.js.map +1 -0
- package/dist/{chunk-6YR4ALVX.js → chunk-7RH6E332.js} +7 -7
- package/dist/{chunk-6YR4ALVX.js.map → chunk-7RH6E332.js.map} +1 -1
- package/dist/{chunk-BBBCJSSU.js → chunk-7TSNR5H5.js} +4 -4
- package/dist/{chunk-BBBCJSSU.js.map → chunk-7TSNR5H5.js.map} +1 -1
- package/dist/{chunk-3GMOPFWH.js → chunk-AMJ6KEV7.js} +4 -4
- package/dist/{chunk-3GMOPFWH.js.map → chunk-AMJ6KEV7.js.map} +1 -1
- package/dist/{chunk-X3YGUKCG.js → chunk-BPTWWKGF.js} +3 -3
- package/dist/{chunk-X3YGUKCG.js.map → chunk-BPTWWKGF.js.map} +1 -1
- package/dist/{chunk-Z7ZEZZB6.js → chunk-C5HFK34M.js} +3 -3
- package/dist/chunk-C5HFK34M.js.map +1 -0
- package/dist/{chunk-EJPMNDTP.js → chunk-COUJOTAJ.js} +3 -3
- package/dist/{chunk-EJPMNDTP.js.map → chunk-COUJOTAJ.js.map} +1 -1
- package/dist/{chunk-J72MO2WA.js → chunk-DU26AVK2.js} +10 -9
- package/dist/chunk-DU26AVK2.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-XGULGQA3.js → chunk-ELSGFI3I.js} +5 -4
- package/dist/chunk-ELSGFI3I.js.map +1 -0
- package/dist/{chunk-IHFGPHCT.js → chunk-EQNIBBB6.js} +49 -25
- package/dist/chunk-EQNIBBB6.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-GNZBFSRB.js → chunk-H622YULS.js} +5 -4
- package/dist/chunk-H622YULS.js.map +1 -0
- package/dist/{chunk-FKQNBCDW.js → chunk-HDVLBEEX.js} +4 -4
- package/dist/{chunk-FKQNBCDW.js.map → chunk-HDVLBEEX.js.map} +1 -1
- package/dist/{chunk-AATHJRKL.js → chunk-HGOJEVHY.js} +4 -4
- package/dist/{chunk-AATHJRKL.js.map → chunk-HGOJEVHY.js.map} +1 -1
- package/dist/{chunk-CEKW3KXP.js → chunk-HH2H2ZV7.js} +18 -15
- package/dist/chunk-HH2H2ZV7.js.map +1 -0
- package/dist/{chunk-ZFUZ5AKM.js → chunk-HTGTNN2B.js} +3 -3
- package/dist/{chunk-ZFUZ5AKM.js.map → chunk-HTGTNN2B.js.map} +1 -1
- 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-VMVDAZLA.js → chunk-J5JRGBKK.js} +108 -19
- package/dist/chunk-J5JRGBKK.js.map +1 -0
- package/dist/{chunk-7LP7RCZI.js → chunk-JGH7NB47.js} +5 -5
- package/dist/{chunk-7LP7RCZI.js.map → chunk-JGH7NB47.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-HWNK3F3X.js → chunk-KGHYXXXV.js} +588 -76
- package/dist/chunk-KGHYXXXV.js.map +1 -0
- package/dist/{chunk-7HX6FNKL.js → chunk-KIPCBIFJ.js} +41 -56
- package/dist/chunk-KIPCBIFJ.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-ABFPSVIS.js → chunk-LD6O6QKU.js} +31 -7
- package/dist/chunk-LD6O6QKU.js.map +1 -0
- package/dist/{chunk-AZ2H6R5I.js → chunk-LEJQAX7G.js} +74 -39
- package/dist/chunk-LEJQAX7G.js.map +1 -0
- package/dist/{chunk-ZAELRYKS.js → chunk-MD3FUZS3.js} +3 -3
- package/dist/{chunk-ZAELRYKS.js.map → chunk-MD3FUZS3.js.map} +1 -1
- package/dist/{chunk-NUA33BYO.js → chunk-MYXFR27L.js} +42 -15
- package/dist/chunk-MYXFR27L.js.map +1 -0
- package/dist/{chunk-KUQAJVYT.js → chunk-PHAMYCZH.js} +142 -28
- package/dist/chunk-PHAMYCZH.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-RDTLPOPD.js → chunk-PL52CI4U.js} +4 -4
- package/dist/{chunk-RDTLPOPD.js.map → chunk-PL52CI4U.js.map} +1 -1
- 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-DIGFA7Z5.js → chunk-Q7CU5GQO.js} +13 -5
- package/dist/chunk-Q7CU5GQO.js.map +1 -0
- package/dist/chunk-QFFMFZIR.js +32 -0
- package/dist/chunk-QFFMFZIR.js.map +1 -0
- 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-2LAPHLDH.js → chunk-QTLUZUF2.js} +45 -35
- package/dist/chunk-QTLUZUF2.js.map +1 -0
- package/dist/{chunk-4MUDQCBP.js → chunk-RFQONXET.js} +3 -3
- package/dist/{chunk-4MUDQCBP.js.map → chunk-RFQONXET.js.map} +1 -1
- package/dist/{chunk-AITJ7ELM.js → chunk-ROVZCGTN.js} +59 -23
- package/dist/chunk-ROVZCGTN.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-S6KZHPR4.js +315 -0
- package/dist/chunk-S6KZHPR4.js.map +1 -0
- package/dist/{chunk-EX3GLAL6.js → chunk-TGV2EWGL.js} +5 -5
- package/dist/{chunk-EX3GLAL6.js.map → chunk-TGV2EWGL.js.map} +1 -1
- package/dist/{chunk-QSYQOTWN.js → chunk-TO5SSMRI.js} +58 -5
- package/dist/chunk-TO5SSMRI.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-U3SXCVR7.js} +5 -5
- package/dist/{chunk-5J4NPGFM.js.map → chunk-U3SXCVR7.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-ASWTQQ7E.js → chunk-V5BPDB4J.js} +3 -3
- package/dist/{chunk-ASWTQQ7E.js.map → chunk-V5BPDB4J.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-4FVIT5DI.js → chunk-VUWRGMT6.js} +3 -3
- package/dist/{chunk-4FVIT5DI.js.map → chunk-VUWRGMT6.js.map} +1 -1
- package/dist/{chunk-ZHGKAZJ7.js → chunk-XBQTXGY4.js} +56 -8
- package/dist/chunk-XBQTXGY4.js.map +1 -0
- package/dist/{chunk-UI745XC3.js → chunk-XEVFSDIF.js} +13 -7
- package/dist/chunk-XEVFSDIF.js.map +1 -0
- package/dist/{chunk-S2XHGWQC.js → chunk-Y3I4KGLX.js} +44 -15
- package/dist/chunk-Y3I4KGLX.js.map +1 -0
- package/dist/{chunk-COYF6IG2.js → chunk-YW4ASEUP.js} +5 -5
- package/dist/{chunk-COYF6IG2.js.map → chunk-YW4ASEUP.js.map} +1 -1
- package/dist/{chunk-DGTI65OC.js → chunk-ZEH4WFEG.js} +17 -11
- package/dist/chunk-ZEH4WFEG.js.map +1 -0
- package/dist/{claude-code-RE46FJXI.js → claude-code-EUKDGOOO.js} +5 -5
- package/dist/{claude-code-RE46FJXI.js.map → claude-code-EUKDGOOO.js.map} +1 -1
- package/dist/cli/index.js +350 -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/providers.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 +24 -22
- package/dist/connectors/src/connector-manager.d.ts.map +1 -1
- package/dist/connectors-XYPE2DCQ.js +50 -0
- package/dist/{connectors-7THEF7YA.js.map → connectors-XYPE2DCQ.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-IN3VKHUA.js} +37 -21
- package/dist/ensure-sources-IN3VKHUA.js.map +1 -0
- package/dist/factory-assets/connectors/box.js +24 -22
- package/dist/factory-assets/connectors/deploy.js +24 -22
- package/dist/factory-assets/connectors/devserver.js +24 -22
- package/dist/factory-assets/connectors/flow/adapter.js +24 -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 +26 -24
- package/dist/factory-assets/connectors/flow.js +24 -22
- package/dist/factory-assets/connectors/git.js +24 -22
- package/dist/factory-assets/connectors/gmail.js +24 -22
- package/dist/factory-assets/connectors/googledrive.js +24 -22
- package/dist/factory-assets/connectors/local.js +24 -22
- package/dist/factory-assets/connectors/mattermost.js +24 -22
- package/dist/factory-assets/connectors/memory.js +24 -22
- package/dist/factory-assets/connectors/minio.js +24 -22
- package/dist/factory-assets/connectors/postgres.js +24 -22
- package/dist/factory-assets/connectors/s3.js +24 -22
- package/dist/factory-assets/connectors/sharepoint.js +24 -22
- package/dist/factory-assets/connectors/sqlite.js +24 -22
- package/dist/factory-assets/connectors/static-server.js +24 -22
- package/dist/factory-assets/connectors/tunnel.js +24 -22
- package/dist/factory-assets/connectors/webdav.js +24 -22
- package/dist/factory-assets/connectors/xstate-store.js +24 -22
- package/dist/factory-assets/connectors/xstate.js +24 -22
- package/dist/flows-QAO63TDV.js +26 -0
- package/dist/{flows-4JZQ3XFK.js.map → flows-QAO63TDV.js.map} +1 -1
- package/dist/helpers-HDVGCF3M.js +54 -0
- package/dist/{helpers-JNMK3FC2.js.map → helpers-HDVGCF3M.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-62OWCNB5.js} +56 -55
- package/dist/library-publish-62OWCNB5.js.map +1 -0
- package/dist/model-endpoint/index.js +13 -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-TZ7OSDEJ.js +58 -0
- package/dist/{open-library-NKKUJLWA.js.map → open-library-TZ7OSDEJ.js.map} +1 -1
- package/dist/open-registry-RLZKTJG3.js +32 -0
- package/dist/{open-registry-BYAXSHUI.js.map → open-registry-RLZKTJG3.js.map} +1 -1
- package/dist/paths-D6LBQETQ.js +22 -0
- package/dist/{paths-UKWE35XS.js.map → paths-D6LBQETQ.js.map} +1 -1
- package/dist/plugin-store-A5J4TLCH.js +23 -0
- package/dist/{plugin-store-ABE35NRX.js.map → plugin-store-A5J4TLCH.js.map} +1 -1
- package/dist/project-4AVRES3M.js +88 -0
- package/dist/{project-BIPK47JK.js.map → project-4AVRES3M.js.map} +1 -1
- package/dist/resolver/index.js +10 -10
- package/dist/runner/index.js +41 -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 +21 -19
- package/dist/sdk/core.js +9 -9
- package/dist/sdk/flow.js +10 -10
- package/dist/sdk/index.js +41 -39
- package/dist/sdk/index.js.map +1 -1
- package/dist/sdk/resolver.js +10 -10
- package/dist/sdk/runner.js +41 -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-H2AYMGJ6.js} +65 -35
- package/dist/serve-preflight-H2AYMGJ6.js.map +1 -0
- package/dist/{setup-AG6NFHSN.js → setup-NSPQD4V4.js} +33 -31
- package/dist/setup-NSPQD4V4.js.map +1 -0
- package/dist/skills-B533SRVZ.js +26 -0
- package/dist/{skills-UQYUHVKO.js.map → skills-B533SRVZ.js.map} +1 -1
- package/dist/source-VTECABUO.js +87 -0
- package/dist/{source-ASEHI2XS.js.map → source-VTECABUO.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-YORI42MN.js} +56 -56
- package/dist/source-manifest-publish-YORI42MN.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 +49 -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 +31 -29
- package/dist/workspace-plugin/adapters/omp.js +15 -15
- package/dist/workspace-plugin/index.js +2 -2
- package/package.json +27 -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-GNZBFSRB.js.map +0 -1
- package/dist/chunk-HPMQRAIF.js.map +0 -1
- package/dist/chunk-HWNK3F3X.js.map +0 -1
- package/dist/chunk-IHFGPHCT.js.map +0 -1
- package/dist/chunk-ILLTBKDJ.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-NB7SYQYP.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-XGULGQA3.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/setup-AG6NFHSN.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,97 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
2
|
+
import { status, enable, disable, install, uninstall } from '../chunk-V5BPDB4J.js';
|
|
3
|
+
import { makeValidateCommand, scanIdentities } from '../chunk-EQNIBBB6.js';
|
|
4
|
+
import { storeNotInstallableReason, mcpNotRunnableHere } from '../chunk-TGV2EWGL.js';
|
|
5
|
+
import { makeProvidersCommand, loadRegistryView, addProviderEntry, ProviderRegistryWriteError, removeProviderEntry } from '../chunk-32FYVSSW.js';
|
|
6
|
+
import { makeInstallCommand, makeCheckCommand, makeCleanCommand, pinComposedAgents, reportRewritten, reportReplaced, reportRelocked, reportMoved, reportStoreNotChecked, globalProblems, editedConventionFiles, supportsInstallManifest, runYamlInstall, REF_HINT, reportInstalledSoftDeps } from '../chunk-HH2H2ZV7.js';
|
|
7
|
+
import { reportUnknownHarnesses, reportProjectConfig, agentInstanceErrorLines, isRecord } from '../chunk-KIPCBIFJ.js';
|
|
7
8
|
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 {
|
|
14
|
-
import {
|
|
15
|
-
import { logErr, S, logOk, logInfo, logWarn, TARGET_DEFAULT_HINT, parseHarnessFilter, requireProjectConfig, deferredWarnings, warnPlaceholderBodies, warnFilesOnlyDelegates, reportLegacyOmpCopies, logNoProject,
|
|
16
|
-
import { getKindRegistry, getKnownKinds } from '../chunk-COYF6IG2.js';
|
|
9
|
+
import { loadDeclaredPlugins } from '../chunk-TO5SSMRI.js';
|
|
10
|
+
import { getStoreConfig, storeFetch, isStoreAuthenticated, getStoreToken } from '../chunk-AMJ6KEV7.js';
|
|
11
|
+
import { makeSourceCommand, syncProjectSources, divergedSourceClones } from '../chunk-LEJQAX7G.js';
|
|
12
|
+
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-ROVZCGTN.js';
|
|
13
|
+
import { openCatalogSource, LocalCatalogDisabledError, openLibraryManager, openLibrary } from '../chunk-PL52CI4U.js';
|
|
14
|
+
import { getKindRegistry, getKnownKinds } from '../chunk-YW4ASEUP.js';
|
|
15
|
+
import { AI_RESOURCES } from '../chunk-HGOJEVHY.js';
|
|
16
|
+
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-7QG2WRSN.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-QTLUZUF2.js';
|
|
19
|
+
import '../chunk-4QRJBY2P.js';
|
|
20
|
+
import '../chunk-7RH6E332.js';
|
|
21
|
+
import '../chunk-MD3FUZS3.js';
|
|
22
|
+
import '../chunk-BPTWWKGF.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-PHAMYCZH.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-COUJOTAJ.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-HTGTNN2B.js';
|
|
36
|
+
import { runFlow, resumeFlow } from '../chunk-DU26AVK2.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-ZEH4WFEG.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-7TSNR5H5.js';
|
|
43
|
+
import { checkHarnessModel, checkModelProvider } from '../chunk-7MV3NHPT.js';
|
|
44
|
+
import '../chunk-JGH7NB47.js';
|
|
45
|
+
import '../chunk-2TFKXSB5.js';
|
|
46
|
+
import '../chunk-ELSGFI3I.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-U3SXCVR7.js';
|
|
50
|
+
import '../chunk-H622YULS.js';
|
|
51
|
+
import '../chunk-6OHZUUR7.js';
|
|
52
52
|
import '../chunk-7DN6JKP2.js';
|
|
53
|
-
import '../chunk-
|
|
54
|
-
import { listHarnesses
|
|
53
|
+
import '../chunk-HDVLBEEX.js';
|
|
54
|
+
import { listHarnesses } from '../chunk-S6KZHPR4.js';
|
|
55
55
|
import '../chunk-G5SUWZEU.js';
|
|
56
|
+
import '../chunk-QFFMFZIR.js';
|
|
57
|
+
import { getProviderPreset, AI_PROVIDER_PRESETS } from '../chunk-6UP2EDFN.js';
|
|
56
58
|
import '../chunk-IFGTRL2I.js';
|
|
57
|
-
import { loadFlow, flowLookupRoots, findFlowFileInRoots, loadAllFlowEntries } from '../chunk-
|
|
59
|
+
import { loadFlow, flowLookupRoots, findFlowFileInRoots, loadAllFlowEntries } from '../chunk-RFQONXET.js';
|
|
58
60
|
import '../chunk-WD3L5QSU.js';
|
|
59
|
-
import { nodeLabel, nodeSkillAsset, nodeIsInert, nodeIsOptional, nodeRunKind } from '../chunk-7RGTAEG6.js';
|
|
61
|
+
import { nodeLabel, nodeSkillAsset, nodeIsInert, nodeIsOptional, nodeRunKind, nodeAssets } from '../chunk-7RGTAEG6.js';
|
|
60
62
|
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-
|
|
63
|
+
import { setLibraryAssetCheck, setRenamedEntryLookup, LibraryEntryError, AssetManager, parseRefTolerant, MissingManifestError, parseCanonicalLockKey, normalizeRepoUrl } from '../chunk-KGHYXXXV.js';
|
|
64
|
+
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-Y3I4KGLX.js';
|
|
65
|
+
import { flowFileNameError, SEMVER_RE } from '../chunk-XEVFSDIF.js';
|
|
66
|
+
import '../chunk-E5NQRHEB.js';
|
|
67
|
+
import '../chunk-F3D25RGM.js';
|
|
66
68
|
import '../chunk-3TXEJN4W.js';
|
|
67
69
|
import '../chunk-ISHJITXJ.js';
|
|
68
70
|
import '../chunk-LNFKL23K.js';
|
|
69
71
|
import '../chunk-JRN5QF4C.js';
|
|
70
72
|
import '../chunk-NUELZWCF.js';
|
|
71
|
-
import { installTargetOf, SCAFFOLD_KINDS } from '../chunk-
|
|
72
|
-
import '../chunk-
|
|
73
|
+
import { installTargetOf, SCAFFOLD_KINDS } from '../chunk-MYXFR27L.js';
|
|
74
|
+
import '../chunk-PKE3PXOK.js';
|
|
73
75
|
import '../chunk-KTBKW2FI.js';
|
|
74
76
|
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-
|
|
77
|
+
import '../chunk-LD6O6QKU.js';
|
|
78
|
+
import { effectiveComposes, validatePreset, validateAgent, composeSlotDiagnostics, agentDeprecationDiagnostics, SLOT_ID_PATTERN } from '../chunk-76FLBODK.js';
|
|
79
|
+
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-J5JRGBKK.js';
|
|
78
80
|
import '../chunk-4GY63JU6.js';
|
|
79
|
-
import { factoryAssetRoots } from '../chunk-
|
|
81
|
+
import { factoryAssetRoots } from '../chunk-6WH2WE4B.js';
|
|
80
82
|
import { deployedDir } from '../chunk-5KRMNUL4.js';
|
|
81
|
-
import { DEFAULT_HARNESS_ID, HARNESS_DEFAULTS } from '../chunk-
|
|
83
|
+
import { DEFAULT_HARNESS_ID, HARNESS_DEFAULTS } from '../chunk-C5HFK34M.js';
|
|
82
84
|
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-
|
|
85
|
+
import { SourceEntryError, LegacyKeyError, resolveSkWorkspaceConfig, sourceCacheKey, getGlobalCacheDir, resolveAgentDir, AgentRefResolutionError, resolveAgentDefinitionDir, effectiveAgentInstances, matchPin, coerceVersion, loadSkWorkspaceConfig, findWorkspaceRoot, isWorkspaceConfigFilename, SKAILE_YAML_DEFAULT, AGENT_PROFILE_FIELDS } from '../chunk-XBQTXGY4.js';
|
|
84
86
|
import { globalCacheRoot, globalSkaileDir, userConfigPath } from '../chunk-L5VSIPQD.js';
|
|
85
87
|
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-
|
|
88
|
+
import { SKAILE_MANIFEST_FILENAME, loadSkPublishManifest, decodeSkaileManifest, LIBRARY_GITIGNORE, librarySymlinkMessage, isNonAssetPath, isNonAssetDir, encodeSkaileManifest } from '../chunk-KPKGWXUJ.js';
|
|
89
|
+
import { setWalkTruncationSink, dedupeRequirements, parseFrontmatter, scanDirectory, parseRequires } from '../chunk-JMIKGAUA.js';
|
|
87
90
|
import { pluginTitle } from '../chunk-RVRB27AN.js';
|
|
88
|
-
import {
|
|
89
|
-
import {
|
|
90
|
-
import {
|
|
91
|
+
import { parseAssetRef, isValidPublisher, PUBLISHER_HINT, isValidAssetName, ASSET_NAME_HINT, depToStr, assetRefToStr, slugifyAssetName, parseAssetRefLoose } from '../chunk-IZQOO6MN.js';
|
|
92
|
+
import { portableSpawn, portableSpawnSync } from '../chunk-VSX2G7LA.js';
|
|
93
|
+
import { parseModelRef, resolveEntryBaseUrl } from '../chunk-RXGPFAMN.js';
|
|
91
94
|
import { openSqlite } from '../chunk-DKXNKFKP.js';
|
|
92
|
-
import { parseModelRef, resolveEntryBaseUrl } from '../chunk-LSI2IVFT.js';
|
|
93
95
|
import '../chunk-C3CAXQMA.js';
|
|
94
96
|
import { registerLogStore, LogStore, StdoutSink } from '../chunk-BOFL7GIF.js';
|
|
95
97
|
import '../chunk-NSBPE2FW.js';
|
|
@@ -226,15 +228,17 @@ async function runSearch(kind, query, opts) {
|
|
|
226
228
|
const showStore = !opts.local;
|
|
227
229
|
const { resolveConfig } = await import('../library/index.js');
|
|
228
230
|
const airGapped = resolveConfig({ projectDir: path19__default.resolve(opts.projectDir) }).catalog.cache_ttl === 0;
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
231
|
+
const localHits = showLocal ? await searchLocal(query, kind, opts, showStore, airGapped) : false;
|
|
232
|
+
const store = showStore ? await searchStore(query, kind, opts, airGapped) : "skipped";
|
|
233
|
+
if (showLocal && showStore && !localHits && store !== "hits") {
|
|
234
|
+
const what = query ? ` for "${query}"` : kind ? ` for kind "${kind}"` : "";
|
|
235
|
+
logInfo(
|
|
236
|
+
store === "empty" ? `No results${what} (local and store).` : `No local results${what}; the store was not searched.`
|
|
237
|
+
);
|
|
234
238
|
}
|
|
235
239
|
}
|
|
236
240
|
async function searchIndex(query, kind, projectDir) {
|
|
237
|
-
const { openLibrary: openLibrary2 } = await import('../open-library-
|
|
241
|
+
const { openLibrary: openLibrary2 } = await import('../open-library-TZ7OSDEJ.js');
|
|
238
242
|
const library = await openLibrary2();
|
|
239
243
|
try {
|
|
240
244
|
const { libraryDirMissing: libraryDirMissing2 } = await import('../library/index.js');
|
|
@@ -409,14 +413,14 @@ async function withAddVersions(entries, projectDir) {
|
|
|
409
413
|
}
|
|
410
414
|
async function searchLocal(query, kind, opts, showStore, airGapped) {
|
|
411
415
|
const projectDir = path19__default.resolve(opts.projectDir);
|
|
412
|
-
const { restoreSourceReaders } = await import('../source-
|
|
416
|
+
const { restoreSourceReaders } = await import('../source-VTECABUO.js');
|
|
413
417
|
for (const name of await restoreSourceReaders(projectDir)) {
|
|
414
418
|
logInfo(`Re-registered source "${name}" (its library entry was removed elsewhere).`);
|
|
415
419
|
}
|
|
416
420
|
const factory = await searchFactory(projectDir, query, kind);
|
|
417
421
|
let entries = unionEntries(await searchIndex(query, kind, projectDir), factory);
|
|
418
422
|
if (entries.length === 0 && !query && !kind && !airGapped) {
|
|
419
|
-
const { autoSyncForSearch } = await import('../source-
|
|
423
|
+
const { autoSyncForSearch } = await import('../source-VTECABUO.js');
|
|
420
424
|
if (await autoSyncForSearch(projectDir)) {
|
|
421
425
|
entries = unionEntries(await searchIndex(query, kind, projectDir), factory);
|
|
422
426
|
}
|
|
@@ -427,7 +431,7 @@ async function searchLocal(query, kind, opts, showStore, airGapped) {
|
|
|
427
431
|
query ? `No entries matching "${query}".` : kind ? `No "${kind}" assets found in this project's sources.` : "No assets found. Run `skaile source sync` first."
|
|
428
432
|
);
|
|
429
433
|
}
|
|
430
|
-
return;
|
|
434
|
+
return false;
|
|
431
435
|
}
|
|
432
436
|
if (showStore) {
|
|
433
437
|
console.log(`
|
|
@@ -439,6 +443,7 @@ async function searchLocal(query, kind, opts, showStore, airGapped) {
|
|
|
439
443
|
projectDir
|
|
440
444
|
)
|
|
441
445
|
);
|
|
446
|
+
return true;
|
|
442
447
|
}
|
|
443
448
|
var MIN_LOCAL_DESCRIPTION_WIDTH = 10;
|
|
444
449
|
function layoutLocalTable(rows, width, style = {}) {
|
|
@@ -531,9 +536,9 @@ function formatStoreRows(assets, indent, width = terminalWidth()) {
|
|
|
531
536
|
async function searchStore(query, kind, opts, airGapped) {
|
|
532
537
|
if (airGapped && !opts.store) {
|
|
533
538
|
logInfo("air-gapped (cache_ttl: 0) \u2014 local sources only");
|
|
534
|
-
return;
|
|
539
|
+
return "skipped";
|
|
535
540
|
}
|
|
536
|
-
const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError: LocalCatalogDisabledError2 } = await import('../open-library-
|
|
541
|
+
const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError: LocalCatalogDisabledError2 } = await import('../open-library-TZ7OSDEJ.js');
|
|
537
542
|
try {
|
|
538
543
|
const remote = await openCatalogSource2({ projectDir: path19__default.resolve(opts.projectDir) });
|
|
539
544
|
const assets = await remote.listAssets(kind ? { kind } : {});
|
|
@@ -546,6 +551,7 @@ async function searchStore(query, kind, opts, airGapped) {
|
|
|
546
551
|
logInfo("No results in store");
|
|
547
552
|
}
|
|
548
553
|
for (const note of storeSelectionNotes(sel, " ")) console.log(note);
|
|
554
|
+
return sel.shown.length > 0 ? "hits" : "empty";
|
|
549
555
|
} catch (e) {
|
|
550
556
|
const local = e instanceof LocalCatalogDisabledError2;
|
|
551
557
|
if (opts.store) {
|
|
@@ -558,6 +564,7 @@ async function searchStore(query, kind, opts, airGapped) {
|
|
|
558
564
|
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
565
|
);
|
|
560
566
|
}
|
|
567
|
+
return "skipped";
|
|
561
568
|
}
|
|
562
569
|
}
|
|
563
570
|
async function describeStoreFailure(err, projectDir) {
|
|
@@ -642,6 +649,9 @@ function makeAddCommand() {
|
|
|
642
649
|
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
650
|
"--harness <ids>",
|
|
644
651
|
"Comma-separated global harnesses to deploy into (default: all resolved); implies --global"
|
|
652
|
+
).option(
|
|
653
|
+
"--only",
|
|
654
|
+
"with --harness on an asset that is already global: replace its harness set (default: add to it)"
|
|
645
655
|
).option("--target <agent>", `Harness target (${TARGET_DEFAULT_HINT})`).option(
|
|
646
656
|
"--link",
|
|
647
657
|
"symlink local-path assets instead of copying (dev loop; machine-local, not for committing)"
|
|
@@ -660,6 +670,10 @@ function makeAddCommand() {
|
|
|
660
670
|
process.exit(1);
|
|
661
671
|
}
|
|
662
672
|
const harnesses = parseHarnessFilter(opts.harness);
|
|
673
|
+
if (opts.only && harnesses === void 0) {
|
|
674
|
+
logErr("--only needs --harness: it replaces the set of harnesses the asset goes to.");
|
|
675
|
+
process.exit(1);
|
|
676
|
+
}
|
|
663
677
|
if (!opts.global && harnesses === void 0) requireProjectConfig(opts.projectDir);
|
|
664
678
|
const warnings = deferredWarnings();
|
|
665
679
|
const collisionKeys = [];
|
|
@@ -687,6 +701,12 @@ function makeAddCommand() {
|
|
|
687
701
|
const added = await am2.add(ref, {
|
|
688
702
|
link: opts.link,
|
|
689
703
|
force: opts.force,
|
|
704
|
+
only: opts.only === true,
|
|
705
|
+
onDroppedCopy: (droppedRef, harness, copy) => logInfo(
|
|
706
|
+
S.dim(
|
|
707
|
+
`${harness} is no longer in the set of ${droppedRef} but still holds ${copy.replace(homedir(), "~")} (delete it with skaile remove ${droppedRef} --global --harness ${harness})`
|
|
708
|
+
)
|
|
709
|
+
),
|
|
690
710
|
onLibraryOrigin: (deployedRef, library) => libraryOf.set(deployedRef, library),
|
|
691
711
|
onPlaceholderBody: (deployedRef) => placeholderBodies.push(deployedRef),
|
|
692
712
|
onPlaceholderDescription: (deployedRef) => placeholderDescriptions.push(deployedRef),
|
|
@@ -748,24 +768,24 @@ function makeAddCommand() {
|
|
|
748
768
|
logInfo(
|
|
749
769
|
`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
770
|
);
|
|
751
|
-
else
|
|
771
|
+
else {
|
|
772
|
+
logInfo("Nothing to deploy (already up to date).");
|
|
773
|
+
if (am2.global) reportGlobalPaths(am2, [parsedRef]);
|
|
774
|
+
}
|
|
752
775
|
} else {
|
|
753
776
|
for (const a of added) {
|
|
754
777
|
const library = libraryOf.get(a);
|
|
755
778
|
logOk(library ? `${a} (library ${library})` : a);
|
|
756
779
|
}
|
|
757
780
|
warnPlaceholderBodies(placeholderBodies, placeholderDescriptions);
|
|
758
|
-
if (!am2.global
|
|
781
|
+
if (!am2.global && added.some((a) => a.startsWith("agent:"))) {
|
|
782
|
+
warnFilesOnlyDelegates(am2.projectDir, am2.harness);
|
|
783
|
+
}
|
|
759
784
|
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
|
-
}
|
|
785
|
+
reportGlobalPaths(
|
|
786
|
+
am2,
|
|
787
|
+
added.map((a) => parseAssetRef(a))
|
|
788
|
+
);
|
|
769
789
|
reportLegacyOmpCopies(am2.takeLegacyCopiesRemoved(), am2.takeLegacyCopiesKept());
|
|
770
790
|
}
|
|
771
791
|
if (added.length > 1) {
|
|
@@ -794,12 +814,23 @@ function makeAddCommand() {
|
|
|
794
814
|
}
|
|
795
815
|
});
|
|
796
816
|
}
|
|
817
|
+
function reportGlobalPaths(am2, assets) {
|
|
818
|
+
for (const { kind, name } of assets) {
|
|
819
|
+
const component = installTargetOf(getKindRegistry(), kind);
|
|
820
|
+
if (!component) continue;
|
|
821
|
+
for (const harness of am2.deployTargets()) {
|
|
822
|
+
const dir = deployedDir(component, name, harness, true);
|
|
823
|
+
if (existsSync(dir)) logInfo(S.dim(`${harness}: ${dir.replace(homedir(), "~")}`));
|
|
824
|
+
}
|
|
825
|
+
}
|
|
826
|
+
}
|
|
797
827
|
function printAddPlan(plan) {
|
|
798
828
|
const line = (item, label) => {
|
|
799
829
|
logInfo(
|
|
800
830
|
`${label} ${colorRef(item.ref)}${item.version ? `#${item.version}` : ""} (${item.origin})`
|
|
801
831
|
);
|
|
802
832
|
for (const folder of item.folders) console.log(` folder: ${S.dim(folder)}`);
|
|
833
|
+
for (const file of item.renders) console.log(` writes: ${S.dim(file)}`);
|
|
803
834
|
if (item.files.length > 0) console.log(` files: ${S.dim(item.files.join(", "))}`);
|
|
804
835
|
};
|
|
805
836
|
for (const item of plan.filter((i) => i.requested)) line(item, "Would add");
|
|
@@ -853,7 +884,8 @@ function makeRemoveCommand() {
|
|
|
853
884
|
", "
|
|
854
885
|
)} (lock entry) \u2014 it was kept; remove that asset to delete it, or \`skaile remove ${ref} --force\`` : void 0;
|
|
855
886
|
if (!result.changed) {
|
|
856
|
-
|
|
887
|
+
const otherKind = await am2.otherKindHint(ref);
|
|
888
|
+
logErr(`Not deployed or declared: ${ref}${otherKind ? `. ${otherKind}` : ""}`);
|
|
857
889
|
if (keptNote) logInfo(keptNote);
|
|
858
890
|
if (ownerNote) logInfo(ownerNote);
|
|
859
891
|
process.exitCode = 1;
|
|
@@ -898,6 +930,7 @@ function makeListCommand() {
|
|
|
898
930
|
runGlobalList(kind, opts, harnesses);
|
|
899
931
|
return;
|
|
900
932
|
}
|
|
933
|
+
if (await reportUnknownHarnesses(path19__default.resolve(opts.projectDir)) > 0) process.exit(1);
|
|
901
934
|
const am2 = new AssetManager({
|
|
902
935
|
registry: getKindRegistry(),
|
|
903
936
|
projectDir: path19__default.resolve(opts.projectDir),
|
|
@@ -917,7 +950,7 @@ function makeListCommand() {
|
|
|
917
950
|
}
|
|
918
951
|
if (declared.length === 0) {
|
|
919
952
|
logInfo("No dependencies declared in skaile.yaml.");
|
|
920
|
-
|
|
953
|
+
warnStaleHarnessCopies(am2);
|
|
921
954
|
return;
|
|
922
955
|
}
|
|
923
956
|
const kindW = Math.max(4, ...declared.map((e) => e.kind.length));
|
|
@@ -943,7 +976,7 @@ function makeListCommand() {
|
|
|
943
976
|
const invalid = declared.filter((e) => e.state === "invalid").length;
|
|
944
977
|
if (invalid > 0)
|
|
945
978
|
logInfo(`${invalid} invalid \u2014 fix the ${S.cmd("skaile.yaml")} dependencies entry.`);
|
|
946
|
-
|
|
979
|
+
warnStaleHarnessCopies(am2);
|
|
947
980
|
console.log();
|
|
948
981
|
});
|
|
949
982
|
}
|
|
@@ -1069,7 +1102,7 @@ async function resolveInfoEntry(am2, ref, opts) {
|
|
|
1069
1102
|
return { entry: match ?? deployed };
|
|
1070
1103
|
}
|
|
1071
1104
|
const lookup = opts.storeLookup ?? (async (filter) => {
|
|
1072
|
-
const { resolveCatalogSource } = await import('../open-library-
|
|
1105
|
+
const { resolveCatalogSource } = await import('../open-library-TZ7OSDEJ.js');
|
|
1073
1106
|
const { source, close } = await resolveCatalogSource({ projectDir: opts.projectDir });
|
|
1074
1107
|
try {
|
|
1075
1108
|
return await source.listAssets(filter);
|
|
@@ -1085,7 +1118,7 @@ async function resolveInfoEntry(am2, ref, opts) {
|
|
|
1085
1118
|
);
|
|
1086
1119
|
return { entry: hit ? catalogAssetToEntry(hit) : null };
|
|
1087
1120
|
} catch (err) {
|
|
1088
|
-
const { LocalCatalogDisabledError: LocalCatalogDisabledError2 } = await import('../open-library-
|
|
1121
|
+
const { LocalCatalogDisabledError: LocalCatalogDisabledError2 } = await import('../open-library-TZ7OSDEJ.js');
|
|
1089
1122
|
const storeNote = err instanceof Error ? err.message : String(err);
|
|
1090
1123
|
const disabled = err instanceof LocalCatalogDisabledError2 || /catalog\.url/i.test(storeNote);
|
|
1091
1124
|
return { entry: null, storeNote, ...disabled ? { storeDisabled: true } : {} };
|
|
@@ -1113,7 +1146,8 @@ function makeInfoCommand() {
|
|
|
1113
1146
|
}
|
|
1114
1147
|
const entry = lookup.entry;
|
|
1115
1148
|
if (!entry) {
|
|
1116
|
-
|
|
1149
|
+
const otherKind = await am2.otherKindHint(ref);
|
|
1150
|
+
logErr(`${infoNotFoundHint(ref, lookup)}${otherKind ? ` ${otherKind}` : ""}`);
|
|
1117
1151
|
process.exit(1);
|
|
1118
1152
|
}
|
|
1119
1153
|
const softDeps = await am2.softDepsOf([ref]);
|
|
@@ -1440,10 +1474,11 @@ function makeAssetCommand() {
|
|
|
1440
1474
|
getKindRegistry(),
|
|
1441
1475
|
norm.content
|
|
1442
1476
|
);
|
|
1443
|
-
|
|
1444
|
-
|
|
1477
|
+
const refusals = [...checked.errors, ...checked.advisories.filter((f) => f.scaffoldBody)];
|
|
1478
|
+
if (refusals.length > 0) {
|
|
1479
|
+
for (const f of refusals) logErr(`${norm.name}/SKILL.md [${f.tag}] \u2014 ${f.text}`);
|
|
1445
1480
|
logErr(
|
|
1446
|
-
`Not imported: ${
|
|
1481
|
+
`Not imported: ${refusals.length} problem(s) in SKILL.md. Fix them in ${src.skillFile} (or drop --no-normalize) and run the import again.`
|
|
1447
1482
|
);
|
|
1448
1483
|
process.exit(1);
|
|
1449
1484
|
}
|
|
@@ -1807,7 +1842,7 @@ function makeCatalogCommand() {
|
|
|
1807
1842
|
return catalog;
|
|
1808
1843
|
}
|
|
1809
1844
|
async function runLocalCatalogTest(projectDir) {
|
|
1810
|
-
const { resolveCatalogSource } = await import('../open-library-
|
|
1845
|
+
const { resolveCatalogSource } = await import('../open-library-TZ7OSDEJ.js');
|
|
1811
1846
|
let resolved;
|
|
1812
1847
|
try {
|
|
1813
1848
|
resolved = await resolveCatalogSource({ projectDir });
|
|
@@ -1983,7 +2018,7 @@ async function scanLibraryFlowEntries() {
|
|
|
1983
2018
|
const { LocalIndex, resolveIndexPath, scanAuthoringLibraries } = await import('../library/index.js');
|
|
1984
2019
|
const indexPath = resolveIndexPath();
|
|
1985
2020
|
if (!existsSync(indexPath)) return entries;
|
|
1986
|
-
const { getKindRegistry: getKindRegistry2 } = await import('../open-registry-
|
|
2021
|
+
const { getKindRegistry: getKindRegistry2 } = await import('../open-registry-RLZKTJG3.js');
|
|
1987
2022
|
const index = new LocalIndex({ indexPath });
|
|
1988
2023
|
try {
|
|
1989
2024
|
for (const { library, assets } of await scanAuthoringLibraries(index, getKindRegistry2())) {
|
|
@@ -2248,6 +2283,12 @@ function printModelSelectionSection(config, projectDir) {
|
|
|
2248
2283
|
console.log(
|
|
2249
2284
|
` ${S.dim("no AI provider is configured \u2014 add one with")} ${S.cmd("skaile providers add <id> --preset <preset>")}`
|
|
2250
2285
|
);
|
|
2286
|
+
} else if (resolved.fallback) {
|
|
2287
|
+
console.log(` ${S.label("selector:".padEnd(16))} ${selector}`);
|
|
2288
|
+
console.log(
|
|
2289
|
+
` ${S.label("passed on as:".padEnd(16))} the model id ${resolved.modelId ?? selector} ${S.dim("(no provider selected)")}`
|
|
2290
|
+
);
|
|
2291
|
+
for (const warning of resolved.warnings) logWarn(warning);
|
|
2251
2292
|
} else {
|
|
2252
2293
|
const entry = registry.providers[resolved.providerId];
|
|
2253
2294
|
console.log(` ${S.label("selector:".padEnd(16))} ${selector}`);
|
|
@@ -2294,6 +2335,7 @@ async function showConfig(opts) {
|
|
|
2294
2335
|
logErr(error instanceof Error ? error.message : String(error));
|
|
2295
2336
|
process.exit(1);
|
|
2296
2337
|
}
|
|
2338
|
+
if (await reportUnknownHarnesses(projectDir) > 0) process.exit(1);
|
|
2297
2339
|
printEffectiveSection(config, sources);
|
|
2298
2340
|
printWorkspaceDefaultsSection(wsDefaults);
|
|
2299
2341
|
printModelSelectionSection(config, projectDir);
|
|
@@ -2432,6 +2474,13 @@ function makeConfigCommand() {
|
|
|
2432
2474
|
logWarn(
|
|
2433
2475
|
"no AI provider is configured yet \u2014 add one with `skaile providers add <id> --preset <preset>`"
|
|
2434
2476
|
);
|
|
2477
|
+
} else if (resolved.fallback) {
|
|
2478
|
+
console.log(
|
|
2479
|
+
S.dim(
|
|
2480
|
+
` \u2192 passed on as the model id ${resolved.modelId ?? value} (no provider selected)`
|
|
2481
|
+
)
|
|
2482
|
+
);
|
|
2483
|
+
for (const warning of resolved.warnings) logWarn(warning);
|
|
2435
2484
|
} else {
|
|
2436
2485
|
console.log(
|
|
2437
2486
|
S.dim(
|
|
@@ -3115,7 +3164,7 @@ async function ensureTargetsRegistered(projectDir) {
|
|
|
3115
3164
|
const { resolveSkWorkspaceConfig: resolveSkWorkspaceConfig2 } = await import('../core/index.js');
|
|
3116
3165
|
const config = resolveSkWorkspaceConfig2(projectDir);
|
|
3117
3166
|
if (config.plugins && config.plugins.length > 0) {
|
|
3118
|
-
const { ensurePluginsLoaded } = await import('../plugin-store-
|
|
3167
|
+
const { ensurePluginsLoaded } = await import('../plugin-store-A5J4TLCH.js');
|
|
3119
3168
|
const result = await ensurePluginsLoaded(projectDir, config.plugins, pluginRegistry);
|
|
3120
3169
|
for (const f of result.failed) logWarn(f.error);
|
|
3121
3170
|
}
|
|
@@ -3274,7 +3323,10 @@ function makeDiffCommand() {
|
|
|
3274
3323
|
);
|
|
3275
3324
|
switch (result.status) {
|
|
3276
3325
|
case "not-found":
|
|
3277
|
-
if (problems.length === 0)
|
|
3326
|
+
if (problems.length === 0) {
|
|
3327
|
+
const hint = await am2.otherKindHint(ref);
|
|
3328
|
+
logErr(`Asset not found: ${ref}${hint ? `. ${hint}` : ""}`);
|
|
3329
|
+
}
|
|
3278
3330
|
break;
|
|
3279
3331
|
case "not-deployed":
|
|
3280
3332
|
if (problems.length === 0) {
|
|
@@ -3395,7 +3447,7 @@ function makeHarnessCommand() {
|
|
|
3395
3447
|
async function runHarnessSet(name, projectDir) {
|
|
3396
3448
|
const target = parseHarnessTarget(name);
|
|
3397
3449
|
if (!target) {
|
|
3398
|
-
logErr(
|
|
3450
|
+
logErr(unknownHarnessTargetMessage(name));
|
|
3399
3451
|
process.exit(1);
|
|
3400
3452
|
}
|
|
3401
3453
|
requireProjectConfig(projectDir);
|
|
@@ -3746,7 +3798,7 @@ var TOGGLE_SUPPORTED = ["claude-code"];
|
|
|
3746
3798
|
function resolveHarness(harness) {
|
|
3747
3799
|
if (harness === "all") return [...ALL_HARNESSES];
|
|
3748
3800
|
if (harness === "claude-code" || harness === "omp" || harness === "codex") return [harness];
|
|
3749
|
-
logErr(
|
|
3801
|
+
logErr(unknownHarnessTargetMessage(harness, ["all"]));
|
|
3750
3802
|
return null;
|
|
3751
3803
|
}
|
|
3752
3804
|
function withHarness(raw, fallback) {
|
|
@@ -4350,6 +4402,16 @@ function warnUnlistedAssets(unlisted, name) {
|
|
|
4350
4402
|
);
|
|
4351
4403
|
}
|
|
4352
4404
|
}
|
|
4405
|
+
function warnManifestNeedsCommit(libPath, name) {
|
|
4406
|
+
const status4 = spawnSync("git", ["status", "--porcelain", "--", SKAILE_MANIFEST_FILENAME], {
|
|
4407
|
+
cwd: libPath,
|
|
4408
|
+
encoding: "utf-8"
|
|
4409
|
+
});
|
|
4410
|
+
if (status4.status !== 0 || status4.stdout.trim() === "") return;
|
|
4411
|
+
logInfo(
|
|
4412
|
+
`${SKAILE_MANIFEST_FILENAME} was changed in the clone. Commit it with \`skaile library commit ${name}\`; \`pull\` and \`sync\` stop until you do.`
|
|
4413
|
+
);
|
|
4414
|
+
}
|
|
4353
4415
|
function assertManifestEditableOrExit(libraryPath) {
|
|
4354
4416
|
try {
|
|
4355
4417
|
assertManifestEditable(libraryPath);
|
|
@@ -4603,7 +4665,7 @@ function remoteBranches(url) {
|
|
|
4603
4665
|
return r.stdout.split("\n").map((line) => line.split(" ")[1]?.replace(/^refs\/heads\//, "")).filter((b) => !!b);
|
|
4604
4666
|
}
|
|
4605
4667
|
async function warnIfNotGithubRemote(name, url) {
|
|
4606
|
-
const { isGithubRemote, notGithubRemoteMessage } = await import('../library-publish-
|
|
4668
|
+
const { isGithubRemote, notGithubRemoteMessage } = await import('../library-publish-62OWCNB5.js');
|
|
4607
4669
|
if (!isGithubRemote(url)) logWarn(notGithubRemoteMessage(name, url));
|
|
4608
4670
|
}
|
|
4609
4671
|
function scaffoldLibraryFiles(dir, name) {
|
|
@@ -4789,7 +4851,7 @@ function makeLibraryCommand() {
|
|
|
4789
4851
|
ownership,
|
|
4790
4852
|
isDefault
|
|
4791
4853
|
});
|
|
4792
|
-
const scaffolded = blank ? scaffoldLibraryFiles(libPath, name) : [];
|
|
4854
|
+
const scaffolded = blank && ownership !== "reader" ? scaffoldLibraryFiles(libPath, name) : [];
|
|
4793
4855
|
logOk(
|
|
4794
4856
|
`Library "${name}" ${blank ? "created" : "registered"} at ${libPath}${isDefault ? " (default)" : ""}`
|
|
4795
4857
|
);
|
|
@@ -4806,8 +4868,9 @@ function makeLibraryCommand() {
|
|
|
4806
4868
|
}
|
|
4807
4869
|
if (!blank) {
|
|
4808
4870
|
const lib = await manager.requireLibrary(name);
|
|
4809
|
-
if (adoptWritesManifest(libPath)) {
|
|
4871
|
+
if (ownership === "owner" && adoptWritesManifest(libPath)) {
|
|
4810
4872
|
await reindexLibrary(lib, library, name);
|
|
4873
|
+
warnManifestNeedsCommit(lib.path, name);
|
|
4811
4874
|
return;
|
|
4812
4875
|
}
|
|
4813
4876
|
const unlisted = await countUnlistedAssets(libPath);
|
|
@@ -4818,8 +4881,9 @@ function makeLibraryCommand() {
|
|
|
4818
4881
|
);
|
|
4819
4882
|
}
|
|
4820
4883
|
warnLibraryNameFallback(name, resolved);
|
|
4821
|
-
if (resolved.source !== "manifest") {
|
|
4884
|
+
if (ownership === "owner" && resolved.source !== "manifest") {
|
|
4822
4885
|
stampManifestPublisher(lib.path, resolved.publisher);
|
|
4886
|
+
warnManifestNeedsCommit(lib.path, name);
|
|
4823
4887
|
}
|
|
4824
4888
|
const res = await indexLibrary(lib, library);
|
|
4825
4889
|
for (const e of res.errors) logWarn(e);
|
|
@@ -5334,16 +5398,16 @@ function makeLibraryCommand() {
|
|
|
5334
5398
|
"With --create-repo: create the repo private (the store only accepts public repos)"
|
|
5335
5399
|
).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
5400
|
async (lib, opts) => {
|
|
5337
|
-
const { runLibraryPublish } = await import('../library-publish-
|
|
5401
|
+
const { runLibraryPublish } = await import('../library-publish-62OWCNB5.js');
|
|
5338
5402
|
await withStoreErrorHandling(() => runLibraryPublish(lib, opts));
|
|
5339
5403
|
}
|
|
5340
5404
|
);
|
|
5341
5405
|
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-
|
|
5406
|
+
const { runLibraryRegister } = await import('../library-publish-62OWCNB5.js');
|
|
5343
5407
|
await withStoreErrorHandling(() => runLibraryRegister(lib, opts));
|
|
5344
5408
|
});
|
|
5345
5409
|
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-
|
|
5410
|
+
const { runLibraryYank } = await import('../library-publish-62OWCNB5.js');
|
|
5347
5411
|
await withStoreErrorHandling(() => runLibraryYank(lib, opts));
|
|
5348
5412
|
});
|
|
5349
5413
|
return cmd;
|
|
@@ -6003,7 +6067,7 @@ function scheduleSoftDepPreview() {
|
|
|
6003
6067
|
}
|
|
6004
6068
|
async function loadAssets() {
|
|
6005
6069
|
softDepPreviewCache.clear();
|
|
6006
|
-
const { gatherAssetFeeds } = await import('../asset-feeds-
|
|
6070
|
+
const { gatherAssetFeeds } = await import('../asset-feeds-3YO2352Y.js');
|
|
6007
6071
|
const { entries, notes } = await gatherAssetFeeds(am, am.projectDir);
|
|
6008
6072
|
if (notes.length > 0) {
|
|
6009
6073
|
state.message = notes.map((n) => `[${n.feed}] ${n.message}`).join(" \u2022 ");
|
|
@@ -6207,7 +6271,7 @@ function reconcileCollapsedSets(rows) {
|
|
|
6207
6271
|
async function loadSourcesAndLibraries() {
|
|
6208
6272
|
try {
|
|
6209
6273
|
const [{ openLibraryManager: openLibraryManager2 }, { getGlobalCacheDir: getGlobalCacheDir2, globalSkaileDir: globalSkaileDir2 }] = await Promise.all([
|
|
6210
|
-
import('../open-library-
|
|
6274
|
+
import('../open-library-TZ7OSDEJ.js'),
|
|
6211
6275
|
import('../core/index.js')
|
|
6212
6276
|
]);
|
|
6213
6277
|
const { manager, library, close } = await openLibraryManager2();
|
|
@@ -8043,7 +8107,35 @@ function finalIdentity(kind, name) {
|
|
|
8043
8107
|
return `${kind}:${name}`;
|
|
8044
8108
|
}
|
|
8045
8109
|
}
|
|
8046
|
-
function
|
|
8110
|
+
function existingIdentities(root) {
|
|
8111
|
+
const found = /* @__PURE__ */ new Map();
|
|
8112
|
+
const note = (file, kind, fallback) => {
|
|
8113
|
+
let name = fallback;
|
|
8114
|
+
try {
|
|
8115
|
+
const text = readText(file);
|
|
8116
|
+
const body = file.endsWith(".yaml") ? text : FRONTMATTER.exec(text)?.[1] ?? "";
|
|
8117
|
+
const parsed = parse(body);
|
|
8118
|
+
if (isRecord(parsed) && typeof parsed.name === "string" && parsed.name !== "")
|
|
8119
|
+
name = parsed.name;
|
|
8120
|
+
} catch {
|
|
8121
|
+
}
|
|
8122
|
+
const identity = finalIdentity(kind, name);
|
|
8123
|
+
if (!found.has(identity)) found.set(identity, posix2(path19__default.relative(root, file)));
|
|
8124
|
+
};
|
|
8125
|
+
for (const file of walkFiles(root, (b) => b.endsWith(".preset.yaml"))) {
|
|
8126
|
+
note(file, "preset", path19__default.basename(file).replace(/\.preset\.yaml$/, ""));
|
|
8127
|
+
}
|
|
8128
|
+
for (const [base, kind] of [
|
|
8129
|
+
["RULESET.md", "ruleset"],
|
|
8130
|
+
["PERSONA.md", "persona"]
|
|
8131
|
+
]) {
|
|
8132
|
+
for (const file of walkFiles(root, (b) => b === base)) {
|
|
8133
|
+
note(file, kind, path19__default.basename(path19__default.dirname(file)));
|
|
8134
|
+
}
|
|
8135
|
+
}
|
|
8136
|
+
return found;
|
|
8137
|
+
}
|
|
8138
|
+
function planMarkdownMoves(root, knownKinds, manual, unknownTypes, identities, conflicts, existing) {
|
|
8047
8139
|
const moves = [];
|
|
8048
8140
|
const changes = [];
|
|
8049
8141
|
const targets = /* @__PURE__ */ new Set();
|
|
@@ -8071,6 +8163,13 @@ function planMarkdownMoves(root, knownKinds, manual, unknownTypes, identities, c
|
|
|
8071
8163
|
);
|
|
8072
8164
|
continue;
|
|
8073
8165
|
}
|
|
8166
|
+
const present = existing.get(identity);
|
|
8167
|
+
if (present !== void 0) {
|
|
8168
|
+
conflicts.push(
|
|
8169
|
+
`${present} already is ${identity}, and ${posix2(path19__default.relative(root, file))} would become it too: rename one first. Nothing was changed.`
|
|
8170
|
+
);
|
|
8171
|
+
continue;
|
|
8172
|
+
}
|
|
8074
8173
|
identities.set(identity, posix2(path19__default.relative(root, file)));
|
|
8075
8174
|
targets.add(to);
|
|
8076
8175
|
moves.push({ from: file, to, kind: found.type });
|
|
@@ -8155,7 +8254,7 @@ function repoPublisher(root) {
|
|
|
8155
8254
|
}
|
|
8156
8255
|
return DEFAULT_PUBLISHER;
|
|
8157
8256
|
}
|
|
8158
|
-
function planBundles(root, skaileYamls, publisher, notes, manual, conflicts, identities) {
|
|
8257
|
+
function planBundles(root, skaileYamls, publisher, notes, manual, conflicts, identities, existing) {
|
|
8159
8258
|
const changes = [];
|
|
8160
8259
|
const presets = [];
|
|
8161
8260
|
const handled = /* @__PURE__ */ new Set();
|
|
@@ -8183,6 +8282,13 @@ function planBundles(root, skaileYamls, publisher, notes, manual, conflicts, ide
|
|
|
8183
8282
|
manual.push(`${rel(target)} already exists; bundle ${name} not converted`);
|
|
8184
8283
|
return;
|
|
8185
8284
|
}
|
|
8285
|
+
const present = existing.get(identity);
|
|
8286
|
+
if (present !== void 0) {
|
|
8287
|
+
conflicts.push(
|
|
8288
|
+
`${present} already is ${identity}, and ${origin} would become it too: rename the bundle first. Nothing was changed.`
|
|
8289
|
+
);
|
|
8290
|
+
return;
|
|
8291
|
+
}
|
|
8186
8292
|
let description;
|
|
8187
8293
|
let refs = [];
|
|
8188
8294
|
let before;
|
|
@@ -8348,13 +8454,15 @@ function planAssetMigration(options) {
|
|
|
8348
8454
|
const conflicts = [];
|
|
8349
8455
|
const unknownTypes = [];
|
|
8350
8456
|
const identities = /* @__PURE__ */ new Map();
|
|
8457
|
+
const existing = existingIdentities(root);
|
|
8351
8458
|
const { moves, changes: moveChanges } = planMarkdownMoves(
|
|
8352
8459
|
root,
|
|
8353
8460
|
knownKinds,
|
|
8354
8461
|
manual,
|
|
8355
8462
|
unknownTypes,
|
|
8356
8463
|
identities,
|
|
8357
|
-
conflicts
|
|
8464
|
+
conflicts,
|
|
8465
|
+
existing
|
|
8358
8466
|
);
|
|
8359
8467
|
for (const move of moves) {
|
|
8360
8468
|
notes.push(
|
|
@@ -8381,7 +8489,8 @@ function planAssetMigration(options) {
|
|
|
8381
8489
|
notes,
|
|
8382
8490
|
manual,
|
|
8383
8491
|
conflicts,
|
|
8384
|
-
identities
|
|
8492
|
+
identities,
|
|
8493
|
+
existing
|
|
8385
8494
|
);
|
|
8386
8495
|
const skaileChanges = skaileYamls.flatMap(
|
|
8387
8496
|
({ file, source }) => planSkaileYaml(root, file, source, notes, manual)
|
|
@@ -9165,8 +9274,15 @@ function makeOutdatedCommand() {
|
|
|
9165
9274
|
);
|
|
9166
9275
|
}
|
|
9167
9276
|
console.log();
|
|
9168
|
-
|
|
9169
|
-
|
|
9277
|
+
const needsUpdate = filtered.some(
|
|
9278
|
+
(e) => e.problem === void 0 && !e.pinned && !e.contentChanged
|
|
9279
|
+
);
|
|
9280
|
+
const needsRelock = filtered.some(
|
|
9281
|
+
(e) => e.problem === void 0 && !e.pinned && e.contentChanged
|
|
9282
|
+
);
|
|
9283
|
+
if (needsUpdate) logWarn(`Run ${S.cmd("skaile update")} to re-lock and re-deploy.`);
|
|
9284
|
+
if (needsRelock) {
|
|
9285
|
+
logWarn(`Run ${S.cmd("skaile install")} to re-lock the changed library assets.`);
|
|
9170
9286
|
}
|
|
9171
9287
|
if (filtered.some((e) => e.problem !== void 0 && !e.manualFix)) {
|
|
9172
9288
|
logWarn(`Run ${S.cmd("skaile install")} to restore or re-lock the broken assets.`);
|
|
@@ -9247,7 +9363,7 @@ function action2(fn) {
|
|
|
9247
9363
|
};
|
|
9248
9364
|
}
|
|
9249
9365
|
async function reconcileAndReport(projectDir, plugins, opts = {}) {
|
|
9250
|
-
const { reconcilePlugins } = await import('../plugin-store-
|
|
9366
|
+
const { reconcilePlugins } = await import('../plugin-store-A5J4TLCH.js');
|
|
9251
9367
|
if (plugins.length === 0) {
|
|
9252
9368
|
logInfo("No plugins declared \u2014 nothing to reconcile.");
|
|
9253
9369
|
return;
|
|
@@ -9262,7 +9378,7 @@ async function reconcileAndReport(projectDir, plugins, opts = {}) {
|
|
|
9262
9378
|
}
|
|
9263
9379
|
}
|
|
9264
9380
|
async function verifyPluginLoads(projectDir, spec) {
|
|
9265
|
-
const { loadPlugins } = await import('../plugin-store-
|
|
9381
|
+
const { loadPlugins } = await import('../plugin-store-A5J4TLCH.js');
|
|
9266
9382
|
const { createPluginRegistry } = await import('../plugin-registry/index.js');
|
|
9267
9383
|
const registry = createPluginRegistry();
|
|
9268
9384
|
const result = await loadPlugins(projectDir, [spec], registry);
|
|
@@ -9276,7 +9392,9 @@ async function verifyPluginLoads(projectDir, spec) {
|
|
|
9276
9392
|
async function runInstall2(spec, opts) {
|
|
9277
9393
|
const projectDir = path19__default.resolve(opts.projectDir);
|
|
9278
9394
|
const { WorkspaceYamlEditor: WorkspaceYamlEditor2 } = await import('../core/index.js');
|
|
9279
|
-
const { specName, rollbackPluginStore } = await import('../plugin-store-
|
|
9395
|
+
const { specName, rollbackPluginStore, npmSpecError } = await import('../plugin-store-A5J4TLCH.js');
|
|
9396
|
+
const specError = npmSpecError(spec);
|
|
9397
|
+
if (specError) throw new Error(specError);
|
|
9280
9398
|
const yamlPath = path19__default.join(projectDir, "skaile.yaml");
|
|
9281
9399
|
if (!existsSync(yamlPath)) {
|
|
9282
9400
|
throw new Error(`no skaile.yaml in ${projectDir}; run \`skaile init\` first`);
|
|
@@ -9305,7 +9423,7 @@ async function runInstall2(spec, opts) {
|
|
|
9305
9423
|
async function runRemove(name, opts) {
|
|
9306
9424
|
const projectDir = path19__default.resolve(opts.projectDir);
|
|
9307
9425
|
const { WorkspaceYamlEditor: WorkspaceYamlEditor2 } = await import('../core/index.js');
|
|
9308
|
-
const { specName } = await import('../plugin-store-
|
|
9426
|
+
const { specName } = await import('../plugin-store-A5J4TLCH.js');
|
|
9309
9427
|
const yamlPath = path19__default.join(projectDir, "skaile.yaml");
|
|
9310
9428
|
if (!existsSync(yamlPath)) {
|
|
9311
9429
|
logInfo(`No plugin matching ${S.cmd(name)}: there is no skaile.yaml in ${projectDir}.`);
|
|
@@ -9337,7 +9455,7 @@ async function runList(opts) {
|
|
|
9337
9455
|
const registry = createPluginRegistry();
|
|
9338
9456
|
if (declared.length > 0) {
|
|
9339
9457
|
try {
|
|
9340
|
-
const { loadPlugins } = await import('../plugin-store-
|
|
9458
|
+
const { loadPlugins } = await import('../plugin-store-A5J4TLCH.js');
|
|
9341
9459
|
const result = await loadPlugins(projectDir, declared, registry);
|
|
9342
9460
|
for (const f of result.failed) logWarn(f.error);
|
|
9343
9461
|
} catch (err) {
|
|
@@ -10133,6 +10251,11 @@ function makeRebuildCommand() {
|
|
|
10133
10251
|
).option("--project-dir <dir>", "Project directory", process.cwd()).action(async (agentArg, opts) => {
|
|
10134
10252
|
const projectDir = path19__default.resolve(opts.projectDir);
|
|
10135
10253
|
requireProjectConfig(projectDir, { allowMissing: true });
|
|
10254
|
+
const instanceErrors = agentInstanceErrorLines(projectDir);
|
|
10255
|
+
if (instanceErrors.length > 0) {
|
|
10256
|
+
for (const line of instanceErrors) logErr(line);
|
|
10257
|
+
process.exit(1);
|
|
10258
|
+
}
|
|
10136
10259
|
let agentDir;
|
|
10137
10260
|
if (agentArg) {
|
|
10138
10261
|
agentDir = resolveNamedAgent(projectDir, agentArg);
|
|
@@ -10373,6 +10496,34 @@ function isNearFlowId(typed, id) {
|
|
|
10373
10496
|
function harnessOptionDescription() {
|
|
10374
10497
|
return `Harness to run (${listHarnesses().map((d) => d.id).join(", ")})`;
|
|
10375
10498
|
}
|
|
10499
|
+
function nodeSkillRefs(flow) {
|
|
10500
|
+
const refs = /* @__PURE__ */ new Map();
|
|
10501
|
+
for (const node of flow.nodes) {
|
|
10502
|
+
for (const asset of nodeAssets(node)) {
|
|
10503
|
+
if (asset.startsWith("skill:") && !refs.has(asset)) refs.set(asset, node.id);
|
|
10504
|
+
}
|
|
10505
|
+
}
|
|
10506
|
+
return refs;
|
|
10507
|
+
}
|
|
10508
|
+
async function reportMissingNodeSkills(projectDir, flow) {
|
|
10509
|
+
const refs = nodeSkillRefs(flow);
|
|
10510
|
+
if (refs.size === 0) return;
|
|
10511
|
+
let missing;
|
|
10512
|
+
try {
|
|
10513
|
+
missing = new AssetManager({
|
|
10514
|
+
registry: getKindRegistry(),
|
|
10515
|
+
projectDir
|
|
10516
|
+
}).undeployedSkills([...refs.keys()]);
|
|
10517
|
+
} catch {
|
|
10518
|
+
return;
|
|
10519
|
+
}
|
|
10520
|
+
for (const ref of missing) {
|
|
10521
|
+
const bare = ref.replace(/#.*$/, "");
|
|
10522
|
+
logWarn(
|
|
10523
|
+
`Node ${refs.get(ref)} needs ${S.cmd(bare)}, which is not deployed. Run ${S.cmd(`skaile add ${bare}`)}.`
|
|
10524
|
+
);
|
|
10525
|
+
}
|
|
10526
|
+
}
|
|
10376
10527
|
function makeRunCommand() {
|
|
10377
10528
|
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
10529
|
"--agent-definition <ref|path>",
|
|
@@ -10383,7 +10534,9 @@ function makeRunCommand() {
|
|
|
10383
10534
|
).option("--skill <name>", "Skill name (for single-shot mode)").action(async (positional, opts) => {
|
|
10384
10535
|
const projectDir = path19__default.resolve(opts.projectDir);
|
|
10385
10536
|
await loadDeclaredPlugins(projectDir);
|
|
10386
|
-
await reportProjectConfig(projectDir, { harness: false })
|
|
10537
|
+
if (await reportProjectConfig(projectDir, { harness: false, instances: true }) > 0) {
|
|
10538
|
+
process.exit(1);
|
|
10539
|
+
}
|
|
10387
10540
|
const cliHarness = foldDriverFlag(opts).harness;
|
|
10388
10541
|
const dryRun = opts.dryRun ?? false;
|
|
10389
10542
|
const agentDefinition = opts.agentDefinition?.trim() || void 0;
|
|
@@ -10539,6 +10692,7 @@ function makeRunCommand() {
|
|
|
10539
10692
|
onEvent: makeFlowEventHandler(),
|
|
10540
10693
|
onLog: (line) => console.log(line)
|
|
10541
10694
|
});
|
|
10695
|
+
if (dryRun) await reportMissingNodeSkills(projectDir, flow);
|
|
10542
10696
|
} catch (err) {
|
|
10543
10697
|
const friendly = friendlyHarnessError(err);
|
|
10544
10698
|
logErr(friendly ?? (err instanceof Error ? err.message : String(err)));
|
|
@@ -10678,7 +10832,9 @@ function makeReplCommand() {
|
|
|
10678
10832
|
console.log();
|
|
10679
10833
|
}
|
|
10680
10834
|
await loadDeclaredPlugins(projectDir);
|
|
10681
|
-
await reportProjectConfig(projectDir, { harness: false })
|
|
10835
|
+
if (await reportProjectConfig(projectDir, { harness: false, instances: true }) > 0) {
|
|
10836
|
+
process.exit(1);
|
|
10837
|
+
}
|
|
10682
10838
|
const effective = await resolveSettings(projectDir, {
|
|
10683
10839
|
harness: harnessOverride,
|
|
10684
10840
|
model: opts.model
|
|
@@ -10714,6 +10870,15 @@ function makeReplCommand() {
|
|
|
10714
10870
|
}
|
|
10715
10871
|
});
|
|
10716
10872
|
}
|
|
10873
|
+
function valueNotFlag(flag) {
|
|
10874
|
+
return (value) => {
|
|
10875
|
+
if (value.startsWith("--")) {
|
|
10876
|
+
logErr(`${flag} needs a value, got '${value}'`);
|
|
10877
|
+
process.exit(1);
|
|
10878
|
+
}
|
|
10879
|
+
return value;
|
|
10880
|
+
};
|
|
10881
|
+
}
|
|
10717
10882
|
function parseProviderIds(raw) {
|
|
10718
10883
|
return (raw ?? "").split(",").map((id) => id.trim()).filter((id) => id.length > 0);
|
|
10719
10884
|
}
|
|
@@ -10760,21 +10925,31 @@ function describeBindError(err, host, port) {
|
|
|
10760
10925
|
}
|
|
10761
10926
|
}
|
|
10762
10927
|
function makeServeCommand() {
|
|
10763
|
-
return new Command("serve").description("Start a WebSocket agent server (for platform integration)").option("--port <port>", "WebSocket server port", "8080").option(
|
|
10928
|
+
return new Command("serve").description("Start a WebSocket agent server (for platform integration)").option("--port <port>", "WebSocket server port", valueNotFlag("--port"), "8080").option(
|
|
10764
10929
|
"--host <address>",
|
|
10765
|
-
"Address to bind (default: all interfaces; use 127.0.0.1 for local clients only)"
|
|
10766
|
-
|
|
10930
|
+
"Address to bind (default: all interfaces; use 127.0.0.1 for local clients only)",
|
|
10931
|
+
valueNotFlag("--host")
|
|
10932
|
+
).option(
|
|
10933
|
+
"--project-dir <path>",
|
|
10934
|
+
"Project directory",
|
|
10935
|
+
valueNotFlag("--project-dir"),
|
|
10936
|
+
process.cwd()
|
|
10937
|
+
).option(
|
|
10767
10938
|
"--managed-codex-config <path>",
|
|
10768
|
-
"Explicit private host configuration for managed Codex"
|
|
10769
|
-
|
|
10939
|
+
"Explicit private host configuration for managed Codex",
|
|
10940
|
+
valueNotFlag("--managed-codex-config")
|
|
10941
|
+
).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
10942
|
"--session-id <id>",
|
|
10771
|
-
"Label for the session; does not restore the conversation (use --resume-session-id)"
|
|
10943
|
+
"Label for the session; does not restore the conversation (use --resume-session-id)",
|
|
10944
|
+
valueNotFlag("--session-id")
|
|
10772
10945
|
).option(
|
|
10773
10946
|
"--resume-session-id <id>",
|
|
10774
|
-
"harnessSessionId of an earlier session (from its session_info event); restores that conversation"
|
|
10947
|
+
"harnessSessionId of an earlier session (from its session_info event); restores that conversation",
|
|
10948
|
+
valueNotFlag("--resume-session-id")
|
|
10775
10949
|
).option(
|
|
10776
10950
|
"--providers <ids>",
|
|
10777
|
-
"Restrict the AI provider registry to these entry ids (comma-separated)"
|
|
10951
|
+
"Restrict the AI provider registry to these entry ids (comma-separated)",
|
|
10952
|
+
valueNotFlag("--providers")
|
|
10778
10953
|
).option(
|
|
10779
10954
|
"--model-endpoint [port]",
|
|
10780
10955
|
"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 +10983,14 @@ function makeServeCommand() {
|
|
|
10808
10983
|
process.exitCode = 1;
|
|
10809
10984
|
return;
|
|
10810
10985
|
}
|
|
10986
|
+
const dirProblem = (await import('../serve-preflight-H2AYMGJ6.js')).checkServeProjectDir(
|
|
10987
|
+
opts.projectDir
|
|
10988
|
+
);
|
|
10989
|
+
if (dirProblem) {
|
|
10990
|
+
logErr(dirProblem);
|
|
10991
|
+
process.exitCode = 1;
|
|
10992
|
+
return;
|
|
10993
|
+
}
|
|
10811
10994
|
let managedCodex;
|
|
10812
10995
|
if (opts.managedCodexConfig) {
|
|
10813
10996
|
try {
|
|
@@ -10829,7 +11012,14 @@ function makeServeCommand() {
|
|
|
10829
11012
|
}
|
|
10830
11013
|
const providers = parseProviderIds(opts.providers);
|
|
10831
11014
|
const modelEndpoint = parseModelEndpointFlag(opts.modelEndpoint);
|
|
10832
|
-
const { checkHarnessSdk, checkModelEndpointPeer, checkServeModel } = await import('../serve-preflight-
|
|
11015
|
+
const { checkHarnessSdk, checkModelEndpointPeer, checkServeModel } = await import('../serve-preflight-H2AYMGJ6.js');
|
|
11016
|
+
const { checkServeHarness, checkServeAgentDefinition } = await import('../serve-preflight-H2AYMGJ6.js');
|
|
11017
|
+
const startProblem = managedCodex ? null : await checkServeHarness(opts.projectDir, opts.harness) ?? checkServeAgentDefinition(opts.projectDir);
|
|
11018
|
+
if (startProblem) {
|
|
11019
|
+
logErr(startProblem);
|
|
11020
|
+
process.exitCode = 1;
|
|
11021
|
+
return;
|
|
11022
|
+
}
|
|
10833
11023
|
const harnessProblem = managedCodex ? null : await checkHarnessSdk(opts.projectDir, opts.harness);
|
|
10834
11024
|
if (harnessProblem) {
|
|
10835
11025
|
logErr(harnessProblem);
|
|
@@ -10890,12 +11080,12 @@ function makeServeCommand() {
|
|
|
10890
11080
|
);
|
|
10891
11081
|
}
|
|
10892
11082
|
async function ensurePluginsLoadedForServe(projectDir) {
|
|
10893
|
-
const { logInfo: logInfo2, logWarn: logWarn2 } = await import('../helpers-
|
|
11083
|
+
const { logInfo: logInfo2, logWarn: logWarn2 } = await import('../helpers-HDVGCF3M.js');
|
|
10894
11084
|
try {
|
|
10895
11085
|
const { resolveSkWorkspaceConfig: resolveSkWorkspaceConfig2 } = await import('../core/index.js');
|
|
10896
11086
|
const config = resolveSkWorkspaceConfig2(projectDir);
|
|
10897
11087
|
if (!config.plugins || config.plugins.length === 0) return;
|
|
10898
|
-
const { ensurePluginsLoaded } = await import('../plugin-store-
|
|
11088
|
+
const { ensurePluginsLoaded } = await import('../plugin-store-A5J4TLCH.js');
|
|
10899
11089
|
const { pluginRegistry } = await import('../plugin-registry/index.js');
|
|
10900
11090
|
const result = await ensurePluginsLoaded(projectDir, config.plugins, pluginRegistry);
|
|
10901
11091
|
if (result.loaded.length > 0) {
|
|
@@ -10909,14 +11099,14 @@ async function ensurePluginsLoadedForServe(projectDir) {
|
|
|
10909
11099
|
}
|
|
10910
11100
|
}
|
|
10911
11101
|
async function runCompileTest(opts) {
|
|
10912
|
-
const { logOk: logOk2, logErr: logErr2, logInfo: logInfo2, S: S2 } = await import('../helpers-
|
|
11102
|
+
const { logOk: logOk2, logErr: logErr2, logInfo: logInfo2, S: S2 } = await import('../helpers-HDVGCF3M.js');
|
|
10913
11103
|
const { tmpdir } = await import('os');
|
|
10914
11104
|
const { dirname: dirname3, join: join6, resolve: resolve4 } = await import('path');
|
|
10915
11105
|
const { fileURLToPath: fileURLToPath2 } = await import('url');
|
|
10916
11106
|
const { unlinkSync, existsSync: existsSync22 } = await import('fs');
|
|
10917
11107
|
const { spawn } = await import('child_process');
|
|
10918
11108
|
const { portableSpawnSync: portableSpawnSync2 } = await import('../core/index.js');
|
|
10919
|
-
const { MONOREPO_ROOT } = await import('../paths-
|
|
11109
|
+
const { MONOREPO_ROOT } = await import('../paths-D6LBQETQ.js');
|
|
10920
11110
|
if (MONOREPO_ROOT === null) {
|
|
10921
11111
|
logErr2("--compile-test is only available inside the skaile-dev workspace.");
|
|
10922
11112
|
logInfo2("Run it from a checkout of skaile-ai/skaile-dev (the monorepo shell).");
|
|
@@ -11874,8 +12064,8 @@ function makeStoreCommand() {
|
|
|
11874
12064
|
"--all",
|
|
11875
12065
|
`List every match (default: ${STORE_ROW_LIMIT} rows, only what \`skaile add\` can install)`
|
|
11876
12066
|
).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-
|
|
12067
|
+
const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError: LocalCatalogDisabledError2 } = await import('../open-library-TZ7OSDEJ.js');
|
|
12068
|
+
const { getKnownKinds: getKnownKinds2 } = await import('../open-registry-RLZKTJG3.js');
|
|
11879
12069
|
const projectDir = path19__default.resolve(opts.projectDir);
|
|
11880
12070
|
if (opts.kind && !getKnownKinds2().has(opts.kind)) {
|
|
11881
12071
|
logErr(
|
|
@@ -11933,8 +12123,8 @@ function makeStoreCommand() {
|
|
|
11933
12123
|
}
|
|
11934
12124
|
});
|
|
11935
12125
|
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-
|
|
12126
|
+
const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError: LocalCatalogDisabledError2 } = await import('../open-library-TZ7OSDEJ.js');
|
|
12127
|
+
const { supportsInstallManifest: supportsInstallManifest2 } = await import('../project-4AVRES3M.js');
|
|
11938
12128
|
try {
|
|
11939
12129
|
parseAssetRef(ref);
|
|
11940
12130
|
} catch (e) {
|
|
@@ -12176,7 +12366,7 @@ function makeUpdateCommand() {
|
|
|
12176
12366
|
}
|
|
12177
12367
|
}
|
|
12178
12368
|
if (target) {
|
|
12179
|
-
await updateOne(am2, projectDir, target);
|
|
12369
|
+
await updateOne(am2, projectDir, target, opts.force);
|
|
12180
12370
|
return;
|
|
12181
12371
|
}
|
|
12182
12372
|
const spinner = createSpinner();
|
|
@@ -12270,7 +12460,8 @@ async function resolveUpdateTarget(am2, name) {
|
|
|
12270
12460
|
);
|
|
12271
12461
|
process.exit(1);
|
|
12272
12462
|
}
|
|
12273
|
-
|
|
12463
|
+
const otherKind = await am2.otherKindHint(name);
|
|
12464
|
+
logErr(`No declared asset matches "${name}".${otherKind ? ` ${otherKind}` : ""}`);
|
|
12274
12465
|
if (declared.length > 0) logInfo(`Declared: ${declared.map((d) => d.ref).join(", ")}`);
|
|
12275
12466
|
process.exit(1);
|
|
12276
12467
|
}
|
|
@@ -12318,7 +12509,7 @@ function readText2(file) {
|
|
|
12318
12509
|
return "";
|
|
12319
12510
|
}
|
|
12320
12511
|
}
|
|
12321
|
-
async function updateOne(am2, projectDir, target) {
|
|
12512
|
+
async function updateOne(am2, projectDir, target, force) {
|
|
12322
12513
|
const lockPath = path19__default.join(projectDir, "skaile.lock.yaml");
|
|
12323
12514
|
const before = readText2(lockPath);
|
|
12324
12515
|
const spinner = createSpinner();
|
|
@@ -12327,6 +12518,7 @@ async function updateOne(am2, projectDir, target) {
|
|
|
12327
12518
|
try {
|
|
12328
12519
|
deployed = await am2.add(target.ref, {
|
|
12329
12520
|
preferLockedLibrary: true,
|
|
12521
|
+
force,
|
|
12330
12522
|
onLibraryMoved: (m) => reportMoved([m])
|
|
12331
12523
|
});
|
|
12332
12524
|
} catch (err) {
|
|
@@ -12525,6 +12717,12 @@ function makeWhyCommand() {
|
|
|
12525
12717
|
process.exitCode = 1;
|
|
12526
12718
|
return;
|
|
12527
12719
|
}
|
|
12720
|
+
const otherKind = await am2.otherKindHint(ref);
|
|
12721
|
+
if (otherKind) {
|
|
12722
|
+
logErr(`${ref} is not a locked skill. ${otherKind}`);
|
|
12723
|
+
process.exitCode = 1;
|
|
12724
|
+
return;
|
|
12725
|
+
}
|
|
12528
12726
|
let declared;
|
|
12529
12727
|
try {
|
|
12530
12728
|
declared = await am2.listDeclared();
|
|
@@ -12727,7 +12925,7 @@ async function runInit(projectDir, opts) {
|
|
|
12727
12925
|
const { HARNESS_TARGETS: HARNESS_TARGETS2, SUPPORTED_HARNESSES: SUPPORTED_HARNESSES2, resolveConfiguredHarnessName: resolveConfiguredHarnessName2 } = await import('../core/index.js');
|
|
12728
12926
|
const harness = opts.harness ?? "claude-code";
|
|
12729
12927
|
if (!SUPPORTED_HARNESSES2.includes(harness)) {
|
|
12730
|
-
logErr(
|
|
12928
|
+
logErr(unknownHarnessTargetMessage(opts.harness ?? ""));
|
|
12731
12929
|
process.exitCode = 1;
|
|
12732
12930
|
return;
|
|
12733
12931
|
}
|
|
@@ -12871,7 +13069,7 @@ async function bootstrapUserConfig() {
|
|
|
12871
13069
|
}
|
|
12872
13070
|
async function hydrateInitSources(resolved, created) {
|
|
12873
13071
|
try {
|
|
12874
|
-
const { ensureSourcesCloned } = await import('../ensure-sources-
|
|
13072
|
+
const { ensureSourcesCloned } = await import('../ensure-sources-IN3VKHUA.js');
|
|
12875
13073
|
const hydrate = ensureSourcesCloned(resolved, { quiet: true });
|
|
12876
13074
|
for (const n of hydrate.cloned) created.push(`~/.skaile/cache/sources/${n}/`);
|
|
12877
13075
|
if (hydrate.failed.length > 0) {
|
|
@@ -12911,7 +13109,7 @@ function printInitSummary(resolved, projectDir, created) {
|
|
|
12911
13109
|
console.log();
|
|
12912
13110
|
}
|
|
12913
13111
|
program.command("setup").description("Interactive provider setup wizard").action(async () => {
|
|
12914
|
-
const { cmdSetup } = await import('../setup-
|
|
13112
|
+
const { cmdSetup } = await import('../setup-NSPQD4V4.js');
|
|
12915
13113
|
await cmdSetup([], { projectDir: process.cwd() });
|
|
12916
13114
|
});
|
|
12917
13115
|
program.addCommand(makeInstallCommand());
|
|
@@ -12992,7 +13190,7 @@ program.hook("postAction", async (_thisCommand, actionCommand) => {
|
|
|
12992
13190
|
const opts = actionCommand.opts();
|
|
12993
13191
|
if (opts.global || opts.dryRun) return;
|
|
12994
13192
|
const projectDir = path19__default.resolve(opts.projectDir ?? process.cwd());
|
|
12995
|
-
const { refreshPluginSkills } = await import('../claude-code-
|
|
13193
|
+
const { refreshPluginSkills } = await import('../claude-code-EUKDGOOO.js');
|
|
12996
13194
|
try {
|
|
12997
13195
|
if (await refreshPluginSkills(projectDir)) {
|
|
12998
13196
|
logInfo(`Updated ${S.cmd(".claude/plugins/skaile/skills")} (the --full plugin copy)`);
|
|
@@ -13013,6 +13211,17 @@ process.once("beforeExit", () => {
|
|
|
13013
13211
|
setLibraryAssetCheck(
|
|
13014
13212
|
(asset, libraryPath) => libraryAssetRefusals(asset, libraryPath, getKindRegistry())
|
|
13015
13213
|
);
|
|
13214
|
+
setRenamedEntryLookup(manifestEntryRenames);
|
|
13215
|
+
setWalkTruncationSink((info, root) => {
|
|
13216
|
+
const where = path19__default.basename(root);
|
|
13217
|
+
if (info.reason === "cycle") {
|
|
13218
|
+
logWarnErr(
|
|
13219
|
+
`${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.`
|
|
13220
|
+
);
|
|
13221
|
+
return;
|
|
13222
|
+
}
|
|
13223
|
+
logWarnErr(`${where}: asset scan truncated (${info.reason}) - the result is incomplete.`);
|
|
13224
|
+
});
|
|
13016
13225
|
try {
|
|
13017
13226
|
await program.parseAsync();
|
|
13018
13227
|
commandSettled = true;
|