@skaile/workspaces 6.9.1 → 6.11.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 +34 -0
- package/dist/ai-sdk.js +8 -8
- package/dist/app-sdk/index.js +1 -1
- package/dist/{asset-feeds-PANNQPEE.js → asset-feeds-PO2WC75V.js} +23 -23
- package/dist/{asset-feeds-PANNQPEE.js.map → asset-feeds-PO2WC75V.js.map} +1 -1
- package/dist/asset-manager/catalog-deployer.js +8 -8
- package/dist/asset-manager/history.js +8 -8
- package/dist/asset-manager/index.js +15 -15
- package/dist/asset-manager/installer.js +10 -10
- package/dist/asset-manager/renderers.js +9 -9
- package/dist/asset-manager/src/harness-switch-state.d.ts +30 -0
- package/dist/asset-manager/src/harness-switch-state.d.ts.map +1 -0
- package/dist/asset-manager/src/index.d.ts +49 -12
- package/dist/asset-manager/src/index.d.ts.map +1 -1
- package/dist/asset-manager/src/mcp-config.d.ts +6 -0
- package/dist/asset-manager/src/mcp-config.d.ts.map +1 -1
- package/dist/bridge/codex-app-server.js +1 -2
- package/dist/bridge/harnesses/claude-sdk.js +15 -15
- package/dist/bridge/harnesses/codex.js +16 -1927
- package/dist/bridge/harnesses/codex.js.map +1 -1
- package/dist/bridge/harnesses/continue.js +11 -11
- package/dist/bridge/harnesses/echo.js +5 -5
- package/dist/bridge/harnesses/gemini.js +8 -8
- package/dist/bridge/harnesses/goose.js +11 -11
- package/dist/bridge/harnesses/omp.js +62 -14
- package/dist/bridge/harnesses/omp.js.map +1 -1
- package/dist/bridge/harnesses/opencode.js +11 -11
- package/dist/bridge/harnesses/qwen.js +8 -8
- package/dist/bridge/index.js +21 -20
- package/dist/bridge/src/harness-model-check.d.ts +5 -4
- package/dist/bridge/src/harness-model-check.d.ts.map +1 -1
- package/dist/bridge/src/harnesses/codex.d.ts +13 -0
- package/dist/bridge/src/harnesses/codex.d.ts.map +1 -1
- package/dist/bridge/src/harnesses/omp.d.ts +24 -1
- package/dist/bridge/src/harnesses/omp.d.ts.map +1 -1
- package/dist/bridge/src/index.d.ts +1 -0
- package/dist/bridge/src/index.d.ts.map +1 -1
- package/dist/bridge/src/types.d.ts +7 -0
- package/dist/bridge/src/types.d.ts.map +1 -1
- package/dist/{chunk-TMQFOJ6F.js → chunk-2PVYDAFN.js} +3 -3
- package/dist/{chunk-TMQFOJ6F.js.map → chunk-2PVYDAFN.js.map} +1 -1
- package/dist/{chunk-7NN3P6VF.js → chunk-342UX2MG.js} +10 -5
- package/dist/chunk-342UX2MG.js.map +1 -0
- package/dist/{chunk-7UCPGQCW.js → chunk-45XL75RO.js} +11 -11
- package/dist/chunk-45XL75RO.js.map +1 -0
- package/dist/{chunk-CPMLMNI5.js → chunk-4NJVF3DV.js} +4 -4
- package/dist/{chunk-CPMLMNI5.js.map → chunk-4NJVF3DV.js.map} +1 -1
- package/dist/{chunk-KNY356I3.js → chunk-5KSGZP3E.js} +11 -4
- package/dist/chunk-5KSGZP3E.js.map +1 -0
- package/dist/{chunk-J45JCYS4.js → chunk-5M3S6DLV.js} +4 -4
- package/dist/{chunk-J45JCYS4.js.map → chunk-5M3S6DLV.js.map} +1 -1
- package/dist/{chunk-RZRJTCP2.js → chunk-5XYZNMMC.js} +4 -4
- package/dist/{chunk-RZRJTCP2.js.map → chunk-5XYZNMMC.js.map} +1 -1
- package/dist/{chunk-S47KU4YB.js → chunk-6NNXBXYI.js} +3 -3
- package/dist/{chunk-S47KU4YB.js.map → chunk-6NNXBXYI.js.map} +1 -1
- package/dist/{chunk-GZL6RN4Z.js → chunk-7FXOOUOC.js} +170 -50
- package/dist/chunk-7FXOOUOC.js.map +1 -0
- package/dist/{chunk-V5KG6CCV.js → chunk-7HRZACI4.js} +7 -2
- package/dist/chunk-7HRZACI4.js.map +1 -0
- package/dist/{chunk-U3FI4DVT.js → chunk-7K73MCI6.js} +7 -5
- package/dist/chunk-7K73MCI6.js.map +1 -0
- package/dist/{chunk-NDBHEOIA.js → chunk-7LJUK5JK.js} +9 -9
- package/dist/{chunk-NDBHEOIA.js.map → chunk-7LJUK5JK.js.map} +1 -1
- package/dist/{chunk-Q5SSRVD5.js → chunk-7O6SCI7B.js} +16 -14
- package/dist/chunk-7O6SCI7B.js.map +1 -0
- package/dist/{chunk-QBUJTVMY.js → chunk-7VBD5XUM.js} +4 -4
- package/dist/{chunk-QBUJTVMY.js.map → chunk-7VBD5XUM.js.map} +1 -1
- package/dist/{chunk-YEOG7CWQ.js → chunk-7ZL23M3X.js} +3 -3
- package/dist/{chunk-YEOG7CWQ.js.map → chunk-7ZL23M3X.js.map} +1 -1
- package/dist/{chunk-FZO64PLQ.js → chunk-BNLXZXZN.js} +81 -8
- package/dist/chunk-BNLXZXZN.js.map +1 -0
- package/dist/{chunk-LYVLDGML.js → chunk-CG63XGVV.js} +3 -3
- package/dist/{chunk-LYVLDGML.js.map → chunk-CG63XGVV.js.map} +1 -1
- package/dist/{chunk-PLVM6OIV.js → chunk-CH6UVEM5.js} +19 -15
- package/dist/chunk-CH6UVEM5.js.map +1 -0
- package/dist/{chunk-WEPTGUR4.js → chunk-CI4I34F4.js} +27 -56
- package/dist/chunk-CI4I34F4.js.map +1 -0
- package/dist/{chunk-4ROXSQEG.js → chunk-CJO3XKO7.js} +4 -4
- package/dist/{chunk-4ROXSQEG.js.map → chunk-CJO3XKO7.js.map} +1 -1
- package/dist/{chunk-RP3ML3QD.js → chunk-CLMIZ4N6.js} +3 -3
- package/dist/{chunk-RP3ML3QD.js.map → chunk-CLMIZ4N6.js.map} +1 -1
- package/dist/{chunk-OSABUEWA.js → chunk-CVUMZTNO.js} +4 -4
- package/dist/{chunk-OSABUEWA.js.map → chunk-CVUMZTNO.js.map} +1 -1
- package/dist/{chunk-X5SGUBUV.js → chunk-DKRD6CZL.js} +3 -3
- package/dist/{chunk-X5SGUBUV.js.map → chunk-DKRD6CZL.js.map} +1 -1
- package/dist/{chunk-5KWQMCH7.js → chunk-DRUAQ7IY.js} +6 -6
- package/dist/{chunk-5KWQMCH7.js.map → chunk-DRUAQ7IY.js.map} +1 -1
- package/dist/{chunk-GTAHU4N4.js → chunk-EB2LKPI6.js} +4 -4
- package/dist/{chunk-GTAHU4N4.js.map → chunk-EB2LKPI6.js.map} +1 -1
- package/dist/{chunk-3AIEJSQR.js → chunk-ESUF2ZYT.js} +3 -3
- package/dist/{chunk-3AIEJSQR.js.map → chunk-ESUF2ZYT.js.map} +1 -1
- package/dist/{chunk-ZUROGXJM.js → chunk-FECB7RI7.js} +14 -24
- package/dist/chunk-FECB7RI7.js.map +1 -0
- package/dist/{chunk-PBEDRYHP.js → chunk-FO2GU5L7.js} +230 -49
- package/dist/chunk-FO2GU5L7.js.map +1 -0
- package/dist/{chunk-SME3PK4L.js → chunk-FVOQPTK2.js} +8 -8
- package/dist/{chunk-SME3PK4L.js.map → chunk-FVOQPTK2.js.map} +1 -1
- package/dist/{chunk-MPO5CQUZ.js → chunk-GODUKPGD.js} +3 -3
- package/dist/{chunk-MPO5CQUZ.js.map → chunk-GODUKPGD.js.map} +1 -1
- package/dist/{chunk-FZTHL6SK.js → chunk-GQQIMKEP.js} +27 -33
- package/dist/chunk-GQQIMKEP.js.map +1 -0
- package/dist/{chunk-BRPEW3UL.js → chunk-GYRIO6RA.js} +3 -3
- package/dist/{chunk-BRPEW3UL.js.map → chunk-GYRIO6RA.js.map} +1 -1
- package/dist/{chunk-E675QKFG.js → chunk-HPQ2WDYC.js} +5 -5
- package/dist/{chunk-E675QKFG.js.map → chunk-HPQ2WDYC.js.map} +1 -1
- package/dist/{chunk-VEIWFS7Z.js → chunk-IIELRGIZ.js} +346 -89
- package/dist/chunk-IIELRGIZ.js.map +1 -0
- package/dist/{chunk-TUOHA6BM.js → chunk-IOXFT5D7.js} +3 -3
- package/dist/{chunk-TUOHA6BM.js.map → chunk-IOXFT5D7.js.map} +1 -1
- package/dist/{chunk-6PVRP3LW.js → chunk-IPCRQWNC.js} +17 -6
- package/dist/chunk-IPCRQWNC.js.map +1 -0
- package/dist/{chunk-PTJTOPE5.js → chunk-KOI7QFDH.js} +3 -3
- package/dist/{chunk-PTJTOPE5.js.map → chunk-KOI7QFDH.js.map} +1 -1
- package/dist/{chunk-EMSU6L7K.js → chunk-L74W5TVC.js} +7 -7
- package/dist/{chunk-EMSU6L7K.js.map → chunk-L74W5TVC.js.map} +1 -1
- package/dist/{chunk-WS3BOCAT.js → chunk-LCXQ4LVP.js} +16 -3
- package/dist/chunk-LCXQ4LVP.js.map +1 -0
- package/dist/{chunk-7QYBKUAS.js → chunk-LKBRBVVS.js} +3 -3
- package/dist/{chunk-7QYBKUAS.js.map → chunk-LKBRBVVS.js.map} +1 -1
- package/dist/{chunk-USSP43U3.js → chunk-LQWOU7S2.js} +3 -3
- package/dist/{chunk-USSP43U3.js.map → chunk-LQWOU7S2.js.map} +1 -1
- package/dist/chunk-LXD37LHF.js +688 -0
- package/dist/chunk-LXD37LHF.js.map +1 -0
- package/dist/{chunk-4KPQ6ILH.js → chunk-MEU2HHGV.js} +18 -9
- package/dist/chunk-MEU2HHGV.js.map +1 -0
- package/dist/{chunk-KVTV4LT2.js → chunk-MRTOKIEJ.js} +4 -4
- package/dist/{chunk-KVTV4LT2.js.map → chunk-MRTOKIEJ.js.map} +1 -1
- package/dist/{chunk-QC5BYUED.js → chunk-MS2IXLTC.js} +4 -4
- package/dist/{chunk-QC5BYUED.js.map → chunk-MS2IXLTC.js.map} +1 -1
- package/dist/{chunk-5J6N6LHL.js → chunk-PZS55HOX.js} +3 -3
- package/dist/{chunk-5J6N6LHL.js.map → chunk-PZS55HOX.js.map} +1 -1
- package/dist/{chunk-XDVR7QIT.js → chunk-QC4Q7PMQ.js} +6 -3
- package/dist/chunk-QC4Q7PMQ.js.map +1 -0
- package/dist/{chunk-IISEBVMA.js → chunk-RRKJHADP.js} +5 -5
- package/dist/{chunk-IISEBVMA.js.map → chunk-RRKJHADP.js.map} +1 -1
- package/dist/{chunk-MDCI4RSG.js → chunk-RZL4TOK3.js} +20 -6
- package/dist/chunk-RZL4TOK3.js.map +1 -0
- package/dist/{chunk-2UKNI2HJ.js → chunk-RZQCBFIU.js} +2 -2
- package/dist/{chunk-2UKNI2HJ.js.map → chunk-RZQCBFIU.js.map} +1 -1
- package/dist/{chunk-7TF5MNFK.js → chunk-S6NS3I3P.js} +2 -2
- package/dist/{chunk-7TF5MNFK.js.map → chunk-S6NS3I3P.js.map} +1 -1
- package/dist/{chunk-LMADWO4Q.js → chunk-SBAUZ7XH.js} +4 -4
- package/dist/{chunk-LMADWO4Q.js.map → chunk-SBAUZ7XH.js.map} +1 -1
- package/dist/{chunk-XB4XHGIE.js → chunk-SZ3XCZHC.js} +4 -4
- package/dist/{chunk-XB4XHGIE.js.map → chunk-SZ3XCZHC.js.map} +1 -1
- package/dist/{chunk-AQTAULXT.js → chunk-UHTCOYFJ.js} +111 -47
- package/dist/chunk-UHTCOYFJ.js.map +1 -0
- package/dist/{chunk-HQAPUPBE.js → chunk-V2VDTQ7A.js} +3 -3
- package/dist/{chunk-HQAPUPBE.js.map → chunk-V2VDTQ7A.js.map} +1 -1
- package/dist/{chunk-GNUA7XT2.js → chunk-VS6XC5JE.js} +3 -3
- package/dist/{chunk-GNUA7XT2.js.map → chunk-VS6XC5JE.js.map} +1 -1
- package/dist/chunk-WCHGUS7X.js +2443 -0
- package/dist/chunk-WCHGUS7X.js.map +1 -0
- package/dist/{chunk-5J6JWGY4.js → chunk-WDG5IVEA.js} +3 -3
- package/dist/{chunk-5J6JWGY4.js.map → chunk-WDG5IVEA.js.map} +1 -1
- package/dist/{chunk-QIV7H3GJ.js → chunk-WPTNYDDS.js} +5 -5
- package/dist/{chunk-QIV7H3GJ.js.map → chunk-WPTNYDDS.js.map} +1 -1
- package/dist/{chunk-BDAXHJC5.js → chunk-YPX7LQSW.js} +7 -7
- package/dist/{chunk-BDAXHJC5.js.map → chunk-YPX7LQSW.js.map} +1 -1
- package/dist/{chunk-UWD7YBDR.js → chunk-ZLDAPZIX.js} +4 -4
- package/dist/{chunk-UWD7YBDR.js.map → chunk-ZLDAPZIX.js.map} +1 -1
- package/dist/{chunk-YPTDPN2B.js → chunk-ZRKU7BRI.js} +3 -3
- package/dist/{chunk-YPTDPN2B.js.map → chunk-ZRKU7BRI.js.map} +1 -1
- package/dist/{claude-code-ILZ46SLO.js → claude-code-TDMSETH6.js} +5 -5
- package/dist/{claude-code-ILZ46SLO.js.map → claude-code-TDMSETH6.js.map} +1 -1
- package/dist/cli/index.js +327 -201
- 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/connector.d.ts.map +1 -1
- package/dist/cli/src/commands/harness-preflight.d.ts +3 -1
- package/dist/cli/src/commands/harness-preflight.d.ts.map +1 -1
- package/dist/cli/src/commands/harness.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 +3 -3
- package/dist/cli/src/commands/library-index.d.ts.map +1 -1
- package/dist/cli/src/commands/migrate-files.d.ts +8 -0
- package/dist/cli/src/commands/migrate-files.d.ts.map +1 -1
- package/dist/cli/src/commands/migrate-harness.d.ts.map +1 -1
- package/dist/cli/src/commands/migrate-providers.d.ts.map +1 -1
- package/dist/cli/src/commands/migrate.d.ts.map +1 -1
- package/dist/cli/src/commands/outdated.d.ts.map +1 -1
- package/dist/cli/src/commands/project.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 +7 -5
- package/dist/cli/src/commands/serve-preflight.d.ts.map +1 -1
- package/dist/cli/src/commands/serve.d.ts.map +1 -1
- package/dist/cli/src/commands/source.d.ts.map +1 -1
- package/dist/cli/src/commands/validate.d.ts.map +1 -1
- package/dist/cli/src/config-checks.d.ts +50 -12
- package/dist/cli/src/config-checks.d.ts.map +1 -1
- package/dist/cli/src/ensure-sources.d.ts.map +1 -1
- package/dist/cli/src/harness-error.d.ts +7 -0
- package/dist/cli/src/harness-error.d.ts.map +1 -1
- package/dist/cli/src/helpers.d.ts.map +1 -1
- package/dist/client/index.js +1 -1
- package/dist/client/src/client.d.ts +3 -0
- package/dist/client/src/client.d.ts.map +1 -1
- package/dist/connectors/config.js +5 -5
- package/dist/connectors/index.js +25 -24
- package/dist/connectors/src/index.d.ts +1 -1
- package/dist/connectors/src/index.d.ts.map +1 -1
- package/dist/connectors/src/managed-gitconfig.d.ts +12 -0
- package/dist/connectors/src/managed-gitconfig.d.ts.map +1 -1
- package/dist/connectors-IUJRBTCW.js +52 -0
- package/dist/{connectors-KTRUUKWG.js.map → connectors-IUJRBTCW.js.map} +1 -1
- package/dist/connectors-shared/index.js +2 -2
- package/dist/core/index.js +7 -7
- package/dist/core/logging.js +1 -1
- package/dist/core/manifest.js +2 -2
- package/dist/core/models.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/index.d.ts +2 -2
- package/dist/core/src/index.d.ts.map +1 -1
- package/dist/core/src/lock.d.ts +7 -1
- package/dist/core/src/lock.d.ts.map +1 -1
- package/dist/core/src/models.d.ts.map +1 -1
- package/dist/core/src/repo-manager.d.ts +28 -0
- package/dist/core/src/repo-manager.d.ts.map +1 -1
- package/dist/core/src/run-state-ignore.d.ts +5 -3
- package/dist/core/src/run-state-ignore.d.ts.map +1 -1
- package/dist/core/src/workspace-config.d.ts.map +1 -1
- package/dist/core/workspace-config.js +4 -4
- package/dist/deploy/index.js +7 -7
- package/dist/discovery/index.js +5 -5
- package/dist/{ensure-sources-5QWKUIUD.js → ensure-sources-Q2TTZVLX.js} +35 -33
- package/dist/ensure-sources-Q2TTZVLX.js.map +1 -0
- package/dist/factory-assets/connectors/box.js +25 -24
- package/dist/factory-assets/connectors/deploy.js +25 -24
- package/dist/factory-assets/connectors/devserver.js +25 -24
- package/dist/factory-assets/connectors/flow/adapter.js +25 -24
- package/dist/factory-assets/connectors/flow/engine.js +8 -8
- package/dist/factory-assets/connectors/flow/run-flow.js +27 -26
- package/dist/factory-assets/connectors/flow.js +25 -24
- package/dist/factory-assets/connectors/git/exec.d.ts +7 -0
- package/dist/factory-assets/connectors/git/exec.d.ts.map +1 -1
- package/dist/factory-assets/connectors/git/repo.d.ts.map +1 -1
- package/dist/factory-assets/connectors/git.js +25 -24
- package/dist/factory-assets/connectors/gmail/adapter.d.ts.map +1 -1
- package/dist/factory-assets/connectors/gmail.js +25 -24
- package/dist/factory-assets/connectors/googledrive.js +25 -24
- package/dist/factory-assets/connectors/local.js +25 -24
- package/dist/factory-assets/connectors/mattermost.js +25 -24
- package/dist/factory-assets/connectors/memory.js +25 -24
- package/dist/factory-assets/connectors/minio/adapter.d.ts.map +1 -1
- package/dist/factory-assets/connectors/minio.js +25 -24
- package/dist/factory-assets/connectors/postgres/adapter.d.ts.map +1 -1
- package/dist/factory-assets/connectors/postgres.js +25 -24
- package/dist/factory-assets/connectors/s3/driver.d.ts.map +1 -1
- package/dist/factory-assets/connectors/s3.js +25 -24
- package/dist/factory-assets/connectors/sharepoint.js +25 -24
- package/dist/factory-assets/connectors/sqlite/adapter.d.ts.map +1 -1
- package/dist/factory-assets/connectors/sqlite.js +25 -24
- package/dist/factory-assets/connectors/static-server.js +25 -24
- package/dist/factory-assets/connectors/tunnel.js +25 -24
- package/dist/factory-assets/connectors/webdav.js +25 -24
- package/dist/factory-assets/connectors/xstate-store.js +25 -24
- package/dist/factory-assets/connectors/xstate.js +25 -24
- package/dist/{flows-UCP6ZUYS.js → flows-J64L5MGJ.js} +12 -12
- package/dist/{flows-UCP6ZUYS.js.map → flows-J64L5MGJ.js.map} +1 -1
- package/dist/{helpers-INS4B7OQ.js → helpers-S6AQGXRH.js} +32 -30
- package/dist/{helpers-INS4B7OQ.js.map → helpers-S6AQGXRH.js.map} +1 -1
- package/dist/library/index.js +11 -11
- package/dist/library/install.js +4 -4
- package/dist/library/src/index.d.ts +2 -2
- package/dist/library/src/index.d.ts.map +1 -1
- package/dist/library/src/library.d.ts +6 -2
- package/dist/library/src/library.d.ts.map +1 -1
- package/dist/library/src/local/db.d.ts.map +1 -1
- package/dist/library/src/local/library.d.ts +10 -3
- package/dist/library/src/local/library.d.ts.map +1 -1
- package/dist/library/src/local/local-catalog-source.d.ts +0 -9
- package/dist/library/src/local/local-catalog-source.d.ts.map +1 -1
- package/dist/library/src/local/schema.d.ts +27 -20
- package/dist/library/src/local/schema.d.ts.map +1 -1
- package/dist/library/src/manifest-writer.d.ts +13 -0
- package/dist/library/src/manifest-writer.d.ts.map +1 -1
- package/dist/library/src/remote/index.d.ts +1 -1
- package/dist/library/src/remote/index.d.ts.map +1 -1
- package/dist/library/src/remote/remote-catalog-source.d.ts +6 -0
- package/dist/library/src/remote/remote-catalog-source.d.ts.map +1 -1
- package/dist/library/src/sync/git-driver.d.ts.map +1 -1
- package/dist/{library-publish-AZTYRASL.js → library-publish-7U4TJNQX.js} +54 -55
- package/dist/library-publish-7U4TJNQX.js.map +1 -0
- package/dist/model-endpoint/index.js +10 -10
- package/dist/open-library-K6O6OVW5.js +61 -0
- package/dist/{open-library-3HMXYGUF.js.map → open-library-K6O6OVW5.js.map} +1 -1
- package/dist/open-registry-4HNCWOCN.js +32 -0
- package/dist/{open-registry-BHBHQMBA.js.map → open-registry-4HNCWOCN.js.map} +1 -1
- package/dist/paths-PXBWY532.js +22 -0
- package/dist/{paths-77PXOXZY.js.map → paths-PXBWY532.js.map} +1 -1
- package/dist/{plugin-store-XQP2CRYH.js → plugin-store-ZC3EGZ3D.js} +10 -10
- package/dist/{plugin-store-XQP2CRYH.js.map → plugin-store-ZC3EGZ3D.js.map} +1 -1
- package/dist/project-ZWIZZIUT.js +88 -0
- package/dist/{project-HVNPK2ZF.js.map → project-ZWIZZIUT.js.map} +1 -1
- package/dist/resolver/index.js +8 -8
- package/dist/runner/index.js +40 -40
- package/dist/runner/src/serve.d.ts.map +1 -1
- package/dist/runner/src/turn-ids.d.ts +70 -0
- package/dist/runner/src/turn-ids.d.ts.map +1 -0
- package/dist/runner/src/turn-scheduler.d.ts +7 -0
- package/dist/runner/src/turn-scheduler.d.ts.map +1 -1
- package/dist/sdk/asset-manager.js +15 -15
- package/dist/sdk/bridge.js +21 -20
- package/dist/sdk/client.js +1 -1
- package/dist/sdk/core.js +7 -7
- package/dist/sdk/flow.js +8 -8
- package/dist/sdk/index.js +41 -41
- package/dist/sdk/resolver.js +8 -8
- package/dist/sdk/runner.js +40 -40
- package/dist/sdk/session.js +2 -2
- package/dist/sdk/transport/ws/server.js +8 -8
- package/dist/sdk/transport/ws.js +8 -8
- package/dist/sdk/transport.js +8 -8
- package/dist/sdk/types.js +1 -1
- package/dist/serve-preflight-E3IEZTTF.js +59 -0
- package/dist/{serve-preflight-NHZOKHIC.js.map → serve-preflight-E3IEZTTF.js.map} +1 -1
- package/dist/session/index.js +2 -2
- package/dist/session/src/dispatcher.d.ts +4 -1
- package/dist/session/src/dispatcher.d.ts.map +1 -1
- package/dist/{setup-EX7Z7XRN.js → setup-V4EXOMVQ.js} +33 -31
- package/dist/setup-V4EXOMVQ.js.map +1 -0
- package/dist/{skills-DE2BDQ6G.js → skills-5D4KDVPJ.js} +13 -13
- package/dist/{skills-DE2BDQ6G.js.map → skills-5D4KDVPJ.js.map} +1 -1
- package/dist/source-O7XXDX55.js +89 -0
- package/dist/{source-URRPRGMZ.js.map → source-O7XXDX55.js.map} +1 -1
- package/dist/{source-manifest-publish-ZWRYRJ2U.js → source-manifest-publish-GUU4LX2S.js} +54 -53
- package/dist/source-manifest-publish-GUU4LX2S.js.map +1 -0
- package/dist/transport/index.js +8 -8
- package/dist/transport/src/ws/server.d.ts.map +1 -1
- package/dist/transport/ws/server.js +8 -8
- package/dist/transport/ws.js +8 -8
- package/dist/tui/index.js +40 -40
- package/dist/types/index.js +1 -1
- package/dist/types/manifests.js +1 -1
- package/dist/types/src/capabilities.d.ts +2 -1
- package/dist/types/src/capabilities.d.ts.map +1 -1
- package/dist/types/src/events.d.ts +2 -1
- package/dist/types/src/events.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +2 -0
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/manifests/agent.d.ts +2 -0
- package/dist/types/src/manifests/agent.d.ts.map +1 -1
- package/dist/types/src/protocol.d.ts +2 -0
- package/dist/types/src/protocol.d.ts.map +1 -1
- package/dist/types/src/turn-ids.d.ts +62 -0
- package/dist/types/src/turn-ids.d.ts.map +1 -0
- package/dist/types/src/version.d.ts +12 -1
- package/dist/types/src/version.d.ts.map +1 -1
- package/dist/workspace-plugin/adapters/mcp.js +32 -31
- package/dist/workspace-plugin/adapters/omp.js +14 -14
- package/dist/workspace-plugin/index.js +2 -2
- package/package.json +1 -1
- package/dist/chunk-4KPQ6ILH.js.map +0 -1
- package/dist/chunk-6PVRP3LW.js.map +0 -1
- package/dist/chunk-7NN3P6VF.js.map +0 -1
- package/dist/chunk-7UCPGQCW.js.map +0 -1
- package/dist/chunk-AQTAULXT.js.map +0 -1
- package/dist/chunk-BLBXOG5Q.js +0 -299
- package/dist/chunk-BLBXOG5Q.js.map +0 -1
- package/dist/chunk-C324IAXI.js +0 -160
- package/dist/chunk-C324IAXI.js.map +0 -1
- package/dist/chunk-DJSGQW2Q.js +0 -334
- package/dist/chunk-DJSGQW2Q.js.map +0 -1
- package/dist/chunk-FZO64PLQ.js.map +0 -1
- package/dist/chunk-FZTHL6SK.js.map +0 -1
- package/dist/chunk-GYPPVANR.js +0 -357
- package/dist/chunk-GYPPVANR.js.map +0 -1
- package/dist/chunk-GZL6RN4Z.js.map +0 -1
- package/dist/chunk-KNY356I3.js.map +0 -1
- package/dist/chunk-LOO5CB5M.js +0 -12
- package/dist/chunk-LOO5CB5M.js.map +0 -1
- package/dist/chunk-MDCI4RSG.js.map +0 -1
- package/dist/chunk-PBEDRYHP.js.map +0 -1
- package/dist/chunk-PLVM6OIV.js.map +0 -1
- package/dist/chunk-Q5SSRVD5.js.map +0 -1
- package/dist/chunk-U3FI4DVT.js.map +0 -1
- package/dist/chunk-V5KG6CCV.js.map +0 -1
- package/dist/chunk-VEIWFS7Z.js.map +0 -1
- package/dist/chunk-WEPTGUR4.js.map +0 -1
- package/dist/chunk-WS3BOCAT.js.map +0 -1
- package/dist/chunk-XDVR7QIT.js.map +0 -1
- package/dist/chunk-ZUROGXJM.js.map +0 -1
- package/dist/connectors-KTRUUKWG.js +0 -51
- package/dist/ensure-sources-5QWKUIUD.js.map +0 -1
- package/dist/library-publish-AZTYRASL.js.map +0 -1
- package/dist/open-library-3HMXYGUF.js +0 -59
- package/dist/open-registry-BHBHQMBA.js +0 -32
- package/dist/paths-77PXOXZY.js +0 -22
- package/dist/project-HVNPK2ZF.js +0 -89
- package/dist/serve-preflight-NHZOKHIC.js +0 -59
- package/dist/setup-EX7Z7XRN.js.map +0 -1
- package/dist/source-URRPRGMZ.js +0 -88
- package/dist/source-manifest-publish-ZWRYRJ2U.js.map +0 -1
package/dist/cli/index.js
CHANGED
|
@@ -1,104 +1,103 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { status, enable, disable, install, uninstall } from '../chunk-
|
|
3
|
-
import { makeValidateCommand, scanIdentities } from '../chunk-
|
|
4
|
-
import { storeNotInstallableReason, mcpNotRunnableHere } from '../chunk-
|
|
5
|
-
import { checkHarnessSdk } from '../chunk-
|
|
6
|
-
import { makeProvidersCommand, loadRegistryView, addProviderEntry, ProviderRegistryWriteError, removeProviderEntry } from '../chunk-
|
|
7
|
-
import { makeInstallCommand, makeCheckCommand, makeCleanCommand, pinComposedAgents, reportRewritten, reportReplaced, reportRelocked, reportMoved, reportStoreNotChecked, reportStoreNotCheckedForUpdates, globalProblems, editedConventionFiles, supportsInstallManifest, runYamlInstall, REF_HINT, reportInstalledSoftDeps } from '../chunk-
|
|
8
|
-
import { reportUnknownHarnesses, reportProjectConfig, agentInstanceErrorLines, isRecord } from '../chunk-DJSGQW2Q.js';
|
|
2
|
+
import { status, enable, disable, install, uninstall } from '../chunk-DKRD6CZL.js';
|
|
3
|
+
import { makeValidateCommand, scanIdentities } from '../chunk-CI4I34F4.js';
|
|
4
|
+
import { storeNotInstallableReason, mcpNotRunnableHere } from '../chunk-SZ3XCZHC.js';
|
|
5
|
+
import { checkHarnessSdk } from '../chunk-7O6SCI7B.js';
|
|
6
|
+
import { makeProvidersCommand, loadRegistryView, addProviderEntry, ProviderRegistryWriteError, removeProviderEntry } from '../chunk-RRKJHADP.js';
|
|
7
|
+
import { makeInstallCommand, makeCheckCommand, makeCleanCommand, pinComposedAgents, reportRewritten, reportReplaced, reportRelocked, reportMoved, reportStoreNotChecked, reportStoreNotCheckedForUpdates, globalProblems, editedConventionFiles, supportsInstallManifest, runYamlInstall, REF_HINT, reportInstalledSoftDeps } from '../chunk-CH6UVEM5.js';
|
|
9
8
|
import { createSpinner } from '../chunk-NESV47MF.js';
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import { AI_RESOURCES } from '../chunk-
|
|
17
|
-
import {
|
|
9
|
+
import { getStoreConfig, storeFetch, isStoreAuthenticated, getStoreToken } from '../chunk-5M3S6DLV.js';
|
|
10
|
+
import { makeSourceCommand, dropVanishedSourceRows, syncProjectSources, divergedSourceClones, uncachedSources } from '../chunk-GQQIMKEP.js';
|
|
11
|
+
import { manifestEntryRootRefusals, manifestEntryFilesRefusals, libraryAssetRefusals, manifestEntryRenames, deviceLogin, loadStoreAuthConfig, logout, hasStoredAuth, exitOnLibrarySymlinks, resolveLibraryPublisherDetailed, getStoreIdentity, warnLibraryNameFallback, indexLibrary, warnIgnoredDomainFiles, removedDomainOption, rejectRemovedDomainOption, requireValidPublisherOrExit, exitOnManifestPublisherProblems, exitOnRootSkillLibrary, findAssetManifestFile, checkAssetFile, registerLibraryAsset, DOMAIN_REMOVED_HINT, reportLibrarySymlinks, checkAsset, rootLevelAssetFileProblem, manifestPublisherProblems, assetEntryRef, exitOnManifestPathProblems, exitOnRootSkillExtraAssets, manifestRequiresProblems, composeRefContext, registeredAssetKeys, duplicateAssetMessage, manifestParseFailureLine, manifestParseErrorText, unresolvedManifestDependencies, findEntryManifestFile, unheldRequiresOfFile, warnLegacyBundleFiles, warnUntrackedAssetFiles, checkComposeKinds } from '../chunk-FECB7RI7.js';
|
|
12
|
+
import { openCatalogSource, LocalCatalogDisabledError, openLibraryManager, openLibrary } from '../chunk-5XYZNMMC.js';
|
|
13
|
+
import { getKindRegistry, getKnownKinds } from '../chunk-HPQ2WDYC.js';
|
|
14
|
+
import { logErr, unknownHarnessTargetMessage, S, logOk, setActiveCommand, logInfo, logWarnErr, canonicalHarnessId, unknownHarnessMessage, logWarn, TARGET_DEFAULT_HINT, parseHarnessFilter, requireProjectConfig, deferredWarnings, warnPlaceholderBodies, warnFilesOnlyDelegates, reportLegacyOmpCopies, reportUnknownHarnesses, warnProjectConfig, logNoProject, warnStaleHarnessCopies, kindColorPad, kindColor, colorRef, formatSoftDepSection, bareSoftDepName, reportProjectConfig, driverAliasOption, foldDriverFlag, friendlyHarnessError, harnessErrorNotes, agentInstanceErrorLines, formatSoftDepHint, formatRelativeTime, isRecord, formatSoftDepRemovePreview, formatSoftDepAddPreview, fitWidth, KIND_COL_WIDTH } from '../chunk-LXD37LHF.js';
|
|
15
|
+
import { AI_RESOURCES } from '../chunk-ZLDAPZIX.js';
|
|
16
|
+
import { loadDeclaredPlugins } from '../chunk-2PVYDAFN.js';
|
|
18
17
|
import { LocalSecretsProvider } from '../chunk-ILFGVSTJ.js';
|
|
19
|
-
import { resolveInstanceAgentDir, instanceSessionOverrides, modelForHarness, loadAgentManifest, manifestModelForHarness, runAgentChat, isCompositionError, resolveSessionId, loadSessionById, loadSession, listSessions, setCurrentSession, deleteSession, clearSession, hashAgentFiles, createCompositionContentSource, compileComposition, MarkdownStreamer, createFinalTextFallback, instanceForSession, resolveAgentInstance, describeComposition } from '../chunk-
|
|
20
|
-
import '../chunk-
|
|
21
|
-
import '../chunk-
|
|
22
|
-
import '../chunk-
|
|
23
|
-
import '../chunk-
|
|
18
|
+
import { resolveInstanceAgentDir, instanceSessionOverrides, modelForHarness, loadAgentManifest, manifestModelForHarness, runAgentChat, isCompositionError, resolveSessionId, loadSessionById, loadSession, listSessions, setCurrentSession, deleteSession, clearSession, hashAgentFiles, createCompositionContentSource, compileComposition, MarkdownStreamer, createFinalTextFallback, instanceForSession, resolveAgentInstance, describeComposition } from '../chunk-FO2GU5L7.js';
|
|
19
|
+
import '../chunk-RZQCBFIU.js';
|
|
20
|
+
import '../chunk-L74W5TVC.js';
|
|
21
|
+
import '../chunk-6NNXBXYI.js';
|
|
22
|
+
import '../chunk-IOXFT5D7.js';
|
|
24
23
|
import '../chunk-WYZXSJBK.js';
|
|
25
|
-
import '../chunk-
|
|
26
|
-
import '../chunk-
|
|
24
|
+
import '../chunk-EB2LKPI6.js';
|
|
25
|
+
import '../chunk-V2VDTQ7A.js';
|
|
27
26
|
import '../chunk-KW37WNXY.js';
|
|
28
27
|
import '../chunk-3MWQKQUB.js';
|
|
29
|
-
import '../chunk-
|
|
28
|
+
import '../chunk-WPTNYDDS.js';
|
|
30
29
|
import '../chunk-O7SG5PC2.js';
|
|
31
30
|
import '../chunk-7QBNJTTQ.js';
|
|
32
31
|
import '../chunk-O2SYFJWP.js';
|
|
33
|
-
import '../chunk-
|
|
32
|
+
import '../chunk-7K73MCI6.js';
|
|
34
33
|
import '../chunk-32NA4TVC.js';
|
|
35
34
|
import '../chunk-W3UDISS2.js';
|
|
36
|
-
import '../chunk-
|
|
37
|
-
import { runFlow, resumeFlow } from '../chunk-SME3PK4L.js';
|
|
35
|
+
import { runFlow, resumeFlow } from '../chunk-FVOQPTK2.js';
|
|
38
36
|
import '../chunk-4R6DROGN.js';
|
|
39
|
-
import { parseSkillRequirements, validateRequirements } from '../chunk-
|
|
40
|
-
import '../chunk-
|
|
41
|
-
import '../chunk-
|
|
42
|
-
import '../chunk-
|
|
43
|
-
import '../chunk-
|
|
44
|
-
import { checkHarnessModel, checkOmpListedModel, isUnlistedModel, checkModelSurface } from '../chunk-
|
|
45
|
-
import '../chunk-
|
|
46
|
-
import '../chunk-
|
|
47
|
-
import '../chunk-
|
|
48
|
-
import '../chunk-
|
|
49
|
-
import '../chunk-
|
|
50
|
-
import '../chunk-
|
|
37
|
+
import { parseSkillRequirements, validateRequirements } from '../chunk-KOI7QFDH.js';
|
|
38
|
+
import '../chunk-LQWOU7S2.js';
|
|
39
|
+
import '../chunk-UHTCOYFJ.js';
|
|
40
|
+
import '../chunk-GYRIO6RA.js';
|
|
41
|
+
import '../chunk-SBAUZ7XH.js';
|
|
42
|
+
import { checkHarnessModel, checkOmpListedModel, isUnlistedModel, checkModelSurface } from '../chunk-45XL75RO.js';
|
|
43
|
+
import '../chunk-4NJVF3DV.js';
|
|
44
|
+
import '../chunk-MRTOKIEJ.js';
|
|
45
|
+
import { checkCodexCredential } from '../chunk-WCHGUS7X.js';
|
|
46
|
+
import '../chunk-5KSGZP3E.js';
|
|
47
|
+
import '../chunk-7EKQDY2T.js';
|
|
48
|
+
import '../chunk-7ZL23M3X.js';
|
|
49
|
+
import '../chunk-ESUF2ZYT.js';
|
|
51
50
|
import { findHarnessBinary, HARNESS_BINARIES } from '../chunk-WWSRIT3J.js';
|
|
52
|
-
import '../chunk-
|
|
51
|
+
import '../chunk-CLMIZ4N6.js';
|
|
53
52
|
import '../chunk-5DE3DGVR.js';
|
|
54
53
|
import '../chunk-7DN6JKP2.js';
|
|
55
|
-
import '../chunk-
|
|
56
|
-
import { listHarnesses } from '../chunk-
|
|
54
|
+
import '../chunk-PZS55HOX.js';
|
|
55
|
+
import { listHarnesses } from '../chunk-S6NS3I3P.js';
|
|
57
56
|
import '../chunk-G5SUWZEU.js';
|
|
58
|
-
import '../chunk-
|
|
57
|
+
import '../chunk-CG63XGVV.js';
|
|
59
58
|
import { getProviderPreset, AI_PROVIDER_PRESETS } from '../chunk-6UP2EDFN.js';
|
|
60
59
|
import '../chunk-IFGTRL2I.js';
|
|
61
|
-
import { loadFlow, flowLookupRoots, findFlowFileInRoots, loadAllFlowEntries } from '../chunk-
|
|
60
|
+
import { loadFlow, flowLookupRoots, findFlowFileInRoots, loadAllFlowEntries } from '../chunk-WDG5IVEA.js';
|
|
62
61
|
import '../chunk-WD3L5QSU.js';
|
|
63
62
|
import { nodeLabel, nodeSkillAsset, nodeIsInert, nodeIsOptional, nodeRunKind, nodeAssets } from '../chunk-7RGTAEG6.js';
|
|
64
|
-
import '../chunk-
|
|
65
|
-
import { setLibraryAssetCheck, setRenamedEntryLookup, LibraryEntryError, AssetManager, parseRefTolerant, MissingManifestError, parseCanonicalLockKey, normalizeRepoUrl } from '../chunk-
|
|
66
|
-
import { CatalogHttpError, OfflineError, libraryDirMissing, missingLibraryDirMessage, cloneOrInitGitRepo, trackOriginBranch, stampManifestPublisher, isGitRepo, ensureGitRepo, conflictingAssetRoot, scanUnlistedAssets, setManifestPublisher, LIBRARY_OWNERSHIPS, assertManifestEditable, installLibraryAsset, getStoreManifestsDir, assertValidLibraryName, unparsableAssetFiles, missingRootAssets, syncManifestWithDisk, renamedLibraryName, storeManifestFile, getDefaultValue, isSecretPlaceholder } from '../chunk-
|
|
67
|
-
import { flowFileNameError, SEMVER_RE } from '../chunk-
|
|
68
|
-
import '../chunk-
|
|
63
|
+
import '../chunk-342UX2MG.js';
|
|
64
|
+
import { setLibraryAssetCheck, setRenamedEntryLookup, LibraryEntryError, AssetManager, parseRefTolerant, MissingManifestError, writeHarnessSwitchState, harnessSwitchKeptKey, parseCanonicalLockKey, normalizeRepoUrl, readHarnessSwitchState } from '../chunk-IIELRGIZ.js';
|
|
65
|
+
import { CatalogHttpError, OfflineError, libraryDirMissing, missingLibraryDirMessage, cloneOrInitGitRepo, trackOriginBranch, stampManifestPublisher, addMissingEntryVersions, isGitRepo, ensureGitRepo, conflictingAssetRoot, scanUnlistedAssets, setManifestPublisher, LIBRARY_OWNERSHIPS, assertManifestEditable, installLibraryAsset, getStoreManifestsDir, assertValidLibraryName, unparsableAssetFiles, missingRootAssets, syncManifestWithDisk, renamedLibraryName, storeManifestFile, getDefaultValue, isSecretPlaceholder } from '../chunk-7FXOOUOC.js';
|
|
66
|
+
import { flowFileNameError, SEMVER_RE } from '../chunk-DRUAQ7IY.js';
|
|
67
|
+
import '../chunk-CVUMZTNO.js';
|
|
69
68
|
import '../chunk-F3D25RGM.js';
|
|
70
69
|
import '../chunk-3TXEJN4W.js';
|
|
71
70
|
import '../chunk-ISHJITXJ.js';
|
|
72
71
|
import '../chunk-LNFKL23K.js';
|
|
73
72
|
import '../chunk-JRN5QF4C.js';
|
|
74
73
|
import '../chunk-NUELZWCF.js';
|
|
75
|
-
import { installTargetOf, SCAFFOLD_KINDS } from '../chunk-
|
|
74
|
+
import { installTargetOf, SCAFFOLD_KINDS } from '../chunk-7LJUK5JK.js';
|
|
76
75
|
import '../chunk-PKE3PXOK.js';
|
|
77
|
-
import '../chunk-
|
|
76
|
+
import '../chunk-LKBRBVVS.js';
|
|
78
77
|
import '../chunk-UQ6LFBPZ.js';
|
|
79
|
-
import { CODEX_IDENTITY_DIR } from '../chunk-
|
|
80
|
-
import { effectiveComposes, validatePreset, validateAgent, composeSlotDiagnostics, agentDeprecationDiagnostics, SLOT_ID_PATTERN } from '../chunk-
|
|
81
|
-
import { LockParseError, loadSettings, globalSettingsPath, resolveSettings, projectSettingsPath, saveSettings, WorkspaceYamlEditor, readLock, resolveLibraryDir, checkAgentSkillConformance, resolveSettingsWithSources, resolveConfiguredHarnessName, FACTORY_SOURCE_URL, globalInstallDir, GLOBAL_INSTALL_DIR_NAME, workspaceProviderRegistryPath, userProviderRegistryPath, loadProviderRegistryFile, aiResourceRoots } from '../chunk-
|
|
78
|
+
import { CODEX_IDENTITY_DIR } from '../chunk-7VBD5XUM.js';
|
|
79
|
+
import { effectiveComposes, validatePreset, validateAgent, composeSlotDiagnostics, agentDeprecationDiagnostics, SLOT_ID_PATTERN } from '../chunk-LCXQ4LVP.js';
|
|
80
|
+
import { LockParseError, loadSettings, globalSettingsPath, resolveSettings, projectSettingsPath, saveSettings, WorkspaceYamlEditor, readLock, resolveLibraryDir, checkAgentSkillConformance, resolveSettingsWithSources, resolveConfiguredHarnessName, FACTORY_SOURCE_URL, globalInstallDir, GLOBAL_INSTALL_DIR_NAME, workspaceProviderRegistryPath, userProviderRegistryPath, loadProviderRegistryFile, aiResourceRoots } from '../chunk-MEU2HHGV.js';
|
|
82
81
|
import '../chunk-4GY63JU6.js';
|
|
83
|
-
import { factoryAssetRoots } from '../chunk-
|
|
82
|
+
import { factoryAssetRoots } from '../chunk-CJO3XKO7.js';
|
|
84
83
|
import { deployedPaths, deployedBase, deployedDir } from '../chunk-5KRMNUL4.js';
|
|
85
84
|
import { DEFAULT_HARNESS_ID, HARNESS_DEFAULTS } from '../chunk-C5HFK34M.js';
|
|
86
85
|
import { findKindDirs } from '../chunk-MWXYN6NY.js';
|
|
87
|
-
import { SourceEntryError, LegacyKeyError, ConfigParseError, resolveSkWorkspaceConfig, unselectedInstanceIds, instanceChoiceText, sourceCacheKey, getGlobalCacheDir, resolveAgentDir, AgentRefResolutionError, resolveAgentDefinitionDir, effectiveAgentInstances, isSameRemote, matchPin, coerceVersion, loadSkWorkspaceConfig, configParseErrorOf, findWorkspaceRoot, isWorkspaceConfigFilename, SKAILE_YAML_DEFAULT, AGENT_PROFILE_FIELDS } from '../chunk-
|
|
86
|
+
import { SourceEntryError, LegacyKeyError, ConfigParseError, resolveSkWorkspaceConfig, unselectedInstanceIds, instanceChoiceText, sourceCacheKey, getGlobalCacheDir, resolveAgentDir, AgentRefResolutionError, resolveAgentDefinitionDir, effectiveAgentInstances, isSameRemote, matchPin, coerceVersion, loadSkWorkspaceConfig, configParseErrorOf, findWorkspaceRoot, isWorkspaceConfigFilename, SKAILE_YAML_DEFAULT, AGENT_PROFILE_FIELDS } from '../chunk-BNLXZXZN.js';
|
|
88
87
|
import { globalCacheRoot, globalSkaileDir, userConfigPath } from '../chunk-L5VSIPQD.js';
|
|
89
88
|
import { HARNESS_TARGETS, SUPPORTED_HARNESSES, harnessNameForHarnessId } from '../chunk-VTETQCR6.js';
|
|
90
|
-
import {
|
|
91
|
-
import { setWalkTruncationSink, dedupeRequirements, parseFrontmatter, scanDirectory, parseRequires } from '../chunk-
|
|
89
|
+
import { loadSkPublishManifest, SKAILE_MANIFEST_FILENAME, decodeSkaileManifest, LIBRARY_GITIGNORE, librarySymlinkMessage, isNonAssetPath, isNonAssetDir, encodeSkaileManifest } from '../chunk-MS2IXLTC.js';
|
|
90
|
+
import { setWalkTruncationSink, dedupeRequirements, parseFrontmatter, scanDirectory, parseRequires } from '../chunk-VS6XC5JE.js';
|
|
92
91
|
import { pluginTitle } from '../chunk-RVRB27AN.js';
|
|
93
|
-
import { parseAssetRef,
|
|
92
|
+
import { parseAssetRef, isValidAssetName, ASSET_NAME_HINT, depToStr, assetRefToStr, slugifyAssetName, parseAssetRefLoose } from '../chunk-7HRZACI4.js';
|
|
94
93
|
import { portableSpawn, portableSpawnSync } from '../chunk-VSX2G7LA.js';
|
|
95
94
|
import { parseModelRef, resolveEntryBaseUrl } from '../chunk-RXGPFAMN.js';
|
|
96
|
-
import { RUN_STATE_GITIGNORE_ENTRIES, openSqlite } from '../chunk-
|
|
95
|
+
import { RUN_STATE_GITIGNORE_ENTRIES, openSqlite } from '../chunk-RZL4TOK3.js';
|
|
97
96
|
import '../chunk-C3CAXQMA.js';
|
|
98
97
|
import { registerLogStore, LogStore, StdoutSink } from '../chunk-BOFL7GIF.js';
|
|
99
98
|
import '../chunk-NSBPE2FW.js';
|
|
100
99
|
import * as fs8 from 'fs';
|
|
101
|
-
import fs8__default, { readFileSync, existsSync, mkdirSync, writeFileSync, lstatSync, rmSync, readdirSync, statSync } from 'fs';
|
|
100
|
+
import fs8__default, { readFileSync, existsSync, mkdirSync, writeFileSync, lstatSync, rmSync, readdirSync, statSync, rmdirSync } from 'fs';
|
|
102
101
|
import * as path19 from 'path';
|
|
103
102
|
import path19__default, { resolve, join } from 'path';
|
|
104
103
|
import { fileURLToPath } from 'url';
|
|
@@ -240,7 +239,7 @@ async function runSearch(kind, query, opts) {
|
|
|
240
239
|
}
|
|
241
240
|
}
|
|
242
241
|
async function searchIndex(query, kind, projectDir) {
|
|
243
|
-
const { openLibrary: openLibrary2 } = await import('../open-library-
|
|
242
|
+
const { openLibrary: openLibrary2 } = await import('../open-library-K6O6OVW5.js');
|
|
244
243
|
const library = await openLibrary2();
|
|
245
244
|
try {
|
|
246
245
|
const { libraryDirMissing: libraryDirMissing2 } = await import('../library/index.js');
|
|
@@ -416,14 +415,14 @@ async function withAddVersions(entries, projectDir) {
|
|
|
416
415
|
}
|
|
417
416
|
async function searchLocal(query, kind, opts, showStore, airGapped) {
|
|
418
417
|
const projectDir = path19__default.resolve(opts.projectDir);
|
|
419
|
-
const { restoreSourceReaders } = await import('../source-
|
|
418
|
+
const { restoreSourceReaders } = await import('../source-O7XXDX55.js');
|
|
420
419
|
for (const name of await restoreSourceReaders(projectDir)) {
|
|
421
420
|
logInfo(`Re-registered source "${name}" (its library entry was removed elsewhere).`);
|
|
422
421
|
}
|
|
423
422
|
const factory = await searchFactory(projectDir, query, kind);
|
|
424
423
|
let entries = unionEntries(await searchIndex(query, kind, projectDir), factory);
|
|
425
424
|
if (entries.length === 0 && !query && !kind && !airGapped) {
|
|
426
|
-
const { autoSyncForSearch } = await import('../source-
|
|
425
|
+
const { autoSyncForSearch } = await import('../source-O7XXDX55.js');
|
|
427
426
|
if (await autoSyncForSearch(projectDir)) {
|
|
428
427
|
entries = unionEntries(await searchIndex(query, kind, projectDir), factory);
|
|
429
428
|
}
|
|
@@ -543,7 +542,7 @@ async function searchStore(query, kind, opts, airGapped) {
|
|
|
543
542
|
logInfo("air-gapped (cache_ttl: 0) \u2014 local sources only");
|
|
544
543
|
return "skipped";
|
|
545
544
|
}
|
|
546
|
-
const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError: LocalCatalogDisabledError2 } = await import('../open-library-
|
|
545
|
+
const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError: LocalCatalogDisabledError2 } = await import('../open-library-K6O6OVW5.js');
|
|
547
546
|
try {
|
|
548
547
|
const remote = await openCatalogSource2({ projectDir: path19__default.resolve(opts.projectDir) });
|
|
549
548
|
const assets = await remote.listAssets(kind ? { kind } : {});
|
|
@@ -962,6 +961,7 @@ function makeListCommand() {
|
|
|
962
961
|
return;
|
|
963
962
|
}
|
|
964
963
|
if (await reportUnknownHarnesses(path19__default.resolve(opts.projectDir)) > 0) process.exit(1);
|
|
964
|
+
warnProjectConfig(path19__default.resolve(opts.projectDir), { stderr: opts.json });
|
|
965
965
|
const am2 = new AssetManager({
|
|
966
966
|
registry: getKindRegistry(),
|
|
967
967
|
projectDir: path19__default.resolve(opts.projectDir),
|
|
@@ -1152,7 +1152,7 @@ async function resolveInfoEntry(am2, ref, opts) {
|
|
|
1152
1152
|
return { entry: match ?? deployed, deployed: true };
|
|
1153
1153
|
}
|
|
1154
1154
|
const lookup = opts.storeLookup ?? (async (filter) => {
|
|
1155
|
-
const { resolveCatalogSource } = await import('../open-library-
|
|
1155
|
+
const { resolveCatalogSource } = await import('../open-library-K6O6OVW5.js');
|
|
1156
1156
|
const { source, close } = await resolveCatalogSource({ projectDir: opts.projectDir });
|
|
1157
1157
|
try {
|
|
1158
1158
|
return await source.listAssets(filter);
|
|
@@ -1168,7 +1168,7 @@ async function resolveInfoEntry(am2, ref, opts) {
|
|
|
1168
1168
|
);
|
|
1169
1169
|
return { entry: hit ? catalogAssetToEntry(hit) : null };
|
|
1170
1170
|
} catch (err) {
|
|
1171
|
-
const { LocalCatalogDisabledError: LocalCatalogDisabledError2 } = await import('../open-library-
|
|
1171
|
+
const { LocalCatalogDisabledError: LocalCatalogDisabledError2 } = await import('../open-library-K6O6OVW5.js');
|
|
1172
1172
|
const storeNote = err instanceof Error ? err.message : String(err);
|
|
1173
1173
|
const disabled = err instanceof LocalCatalogDisabledError2 || /catalog\.url/i.test(storeNote);
|
|
1174
1174
|
return { entry: null, storeNote, ...disabled ? { storeDisabled: true } : {} };
|
|
@@ -1307,7 +1307,9 @@ function makeDoctorCommand() {
|
|
|
1307
1307
|
const notices = [
|
|
1308
1308
|
...(await am2.mcpNotices()).map((n) => n.text),
|
|
1309
1309
|
// A library that went back past the lock is no drift either (p1257).
|
|
1310
|
-
...await am2.libraryOlderNotices()
|
|
1310
|
+
...await am2.libraryOlderNotices(),
|
|
1311
|
+
// An asset-named agent file an instance's file replaced: the next install removes it.
|
|
1312
|
+
...am2.leftoverAgentFileNotices()
|
|
1311
1313
|
];
|
|
1312
1314
|
await am2.probeStoreOrigins();
|
|
1313
1315
|
const notChecked = am2.takeStoreNotChecked();
|
|
@@ -1434,13 +1436,25 @@ async function resolveDefByRef(library, ref, opts) {
|
|
|
1434
1436
|
}
|
|
1435
1437
|
const inScope = (d) => !opts?.fromLibraryId || d.libraryId === opts.fromLibraryId;
|
|
1436
1438
|
const wantPublisher = parsed.publisher?.replace(/^@/, "");
|
|
1437
|
-
const
|
|
1439
|
+
const sources = await library.listSources();
|
|
1440
|
+
const { libraries, defs } = new AssetManager({
|
|
1441
|
+
registry: getKindRegistry(),
|
|
1442
|
+
projectDir: opts?.projectDir ?? process.cwd()
|
|
1443
|
+
}).scopeLibraryIndex(
|
|
1444
|
+
sources,
|
|
1445
|
+
await library.listAssetDefs({ kind: parsed.kind })
|
|
1446
|
+
);
|
|
1447
|
+
const rank = new Map(
|
|
1448
|
+
[...libraries].sort((a, b) => Number(b.isDefault) - Number(a.isDefault) || a.name.localeCompare(b.name)).map((l, i) => [l.id, i])
|
|
1449
|
+
);
|
|
1438
1450
|
const matches = defs.filter(
|
|
1439
1451
|
(d) => d.name === parsed.name && inScope(d) && (wantPublisher === void 0 || d.publisher.replace(/^@/, "") === wantPublisher) && matchPin(parsed.pin, d.version)
|
|
1440
1452
|
);
|
|
1441
1453
|
if (matches.length === 0) return null;
|
|
1442
|
-
matches.sort(
|
|
1443
|
-
|
|
1454
|
+
matches.sort(
|
|
1455
|
+
(a, b) => rcompare(coerceVersion(a.version), coerceVersion(b.version)) || (rank.get(a.libraryId ?? "") ?? Number.MAX_SAFE_INTEGER) - (rank.get(b.libraryId ?? "") ?? Number.MAX_SAFE_INTEGER)
|
|
1456
|
+
);
|
|
1457
|
+
return { def: matches[0], libraries };
|
|
1444
1458
|
}
|
|
1445
1459
|
function withCanonicalRef(def) {
|
|
1446
1460
|
const { id: _storageId, ...rest } = def;
|
|
@@ -1645,10 +1659,15 @@ function makeAssetCommand() {
|
|
|
1645
1659
|
}
|
|
1646
1660
|
}
|
|
1647
1661
|
logOk(`Migrated ${basename3} \u2192 ${target.name} (${opts.mode})`);
|
|
1648
|
-
const publisher = loadSkPublishManifest(target.path)?.publisher ?? "<publisher>";
|
|
1649
|
-
const
|
|
1662
|
+
const publisher = (loadSkPublishManifest(target.path)?.publisher ?? "<publisher>").replace(/^@/, "");
|
|
1663
|
+
const migrated = await scanDirectory(destPath, publisher, {
|
|
1664
|
+
knownKinds: new Set(getKindRegistry().getAllKinds()),
|
|
1665
|
+
onDiagnostic: () => {
|
|
1666
|
+
}
|
|
1667
|
+
});
|
|
1668
|
+
const refs = migrated.length ? migrated.map((e) => `${e.kind}:@${publisher}/${e.name}`) : [`<kind>:@${publisher}/${basename3}`];
|
|
1650
1669
|
logInfo(
|
|
1651
|
-
`Not addable yet: run ${S.cmd(`skaile library index ${target.name}`)}, then ${S.cmd(`skaile add ${
|
|
1670
|
+
`Not addable yet: run ${S.cmd(`skaile library index ${target.name}`)}, then ${refs.map((r) => S.cmd(`skaile add ${r}`)).join(" or ")}`
|
|
1652
1671
|
);
|
|
1653
1672
|
if (opts.mode === "move") {
|
|
1654
1673
|
logInfo("Source moved into the library \u2014 future edits modify the library copy.");
|
|
@@ -1677,12 +1696,17 @@ function makeAssetCommand() {
|
|
|
1677
1696
|
}
|
|
1678
1697
|
fromLibraryId = match.id;
|
|
1679
1698
|
}
|
|
1680
|
-
const
|
|
1681
|
-
|
|
1699
|
+
const targetDir = opts.target ?? process.cwd();
|
|
1700
|
+
const found = await resolveDefByRef(library, ref, {
|
|
1701
|
+
fromLibraryId,
|
|
1702
|
+
projectDir: targetDir
|
|
1703
|
+
});
|
|
1704
|
+
if (!found) {
|
|
1682
1705
|
logErr(`No asset found for ref "${ref}". Try \`skaile search\`.`);
|
|
1683
1706
|
process.exit(1);
|
|
1684
1707
|
}
|
|
1685
|
-
const
|
|
1708
|
+
const { def } = found;
|
|
1709
|
+
const lib = def.libraryId ? found.libraries.find((l) => l.id === def.libraryId) : void 0;
|
|
1686
1710
|
if (!lib) {
|
|
1687
1711
|
logErr(`Asset has no associated library; install path unknown.`);
|
|
1688
1712
|
process.exit(1);
|
|
@@ -1692,7 +1716,7 @@ function makeAssetCommand() {
|
|
|
1692
1716
|
installed = installLibraryAsset({
|
|
1693
1717
|
def,
|
|
1694
1718
|
library: lib,
|
|
1695
|
-
targetDir
|
|
1719
|
+
targetDir,
|
|
1696
1720
|
mode: opts.mode,
|
|
1697
1721
|
registry: getKindRegistry()
|
|
1698
1722
|
});
|
|
@@ -1710,7 +1734,7 @@ function makeAssetCommand() {
|
|
|
1710
1734
|
cmd.command("show <ref>").description("Show details for an asset by canonical ref (prints JSON)").option("--json", "Print JSON (the default and only output format)").action(async (ref, _opts) => {
|
|
1711
1735
|
const { library, close } = await openLibraryManager();
|
|
1712
1736
|
try {
|
|
1713
|
-
const def = await resolveDefByRef(library, ref);
|
|
1737
|
+
const def = (await resolveDefByRef(library, ref))?.def;
|
|
1714
1738
|
if (!def) {
|
|
1715
1739
|
try {
|
|
1716
1740
|
await new AssetManager({
|
|
@@ -1906,7 +1930,7 @@ function makeCatalogCommand() {
|
|
|
1906
1930
|
return catalog;
|
|
1907
1931
|
}
|
|
1908
1932
|
async function runLocalCatalogTest(projectDir) {
|
|
1909
|
-
const { resolveCatalogSource } = await import('../open-library-
|
|
1933
|
+
const { resolveCatalogSource } = await import('../open-library-K6O6OVW5.js');
|
|
1910
1934
|
let resolved;
|
|
1911
1935
|
try {
|
|
1912
1936
|
resolved = await resolveCatalogSource({ projectDir });
|
|
@@ -2082,7 +2106,7 @@ async function scanLibraryFlowEntries() {
|
|
|
2082
2106
|
const { LocalIndex, resolveIndexPath, scanAuthoringLibraries } = await import('../library/index.js');
|
|
2083
2107
|
const indexPath = resolveIndexPath();
|
|
2084
2108
|
if (!existsSync(indexPath)) return entries;
|
|
2085
|
-
const { getKindRegistry: getKindRegistry2 } = await import('../open-registry-
|
|
2109
|
+
const { getKindRegistry: getKindRegistry2 } = await import('../open-registry-4HNCWOCN.js');
|
|
2086
2110
|
const index = new LocalIndex({ indexPath });
|
|
2087
2111
|
try {
|
|
2088
2112
|
for (const { library, assets } of await scanAuthoringLibraries(index, getKindRegistry2())) {
|
|
@@ -2508,6 +2532,7 @@ function makeConfigCommand() {
|
|
|
2508
2532
|
return;
|
|
2509
2533
|
}
|
|
2510
2534
|
if (key === "harness") {
|
|
2535
|
+
value = canonicalHarnessId(value);
|
|
2511
2536
|
await loadDeclaredPlugins(projectDir);
|
|
2512
2537
|
const unknown = unknownHarnessMessage(value);
|
|
2513
2538
|
if (unknown) {
|
|
@@ -2953,7 +2978,8 @@ Installing npm deps: ${allDeps.join(", ")}...`);
|
|
|
2953
2978
|
if (!installResult.success) {
|
|
2954
2979
|
logErr(
|
|
2955
2980
|
`Failed to install dependencies:
|
|
2956
|
-
${installResult.output.trim() || "the package manager gave no output"}
|
|
2981
|
+
${installResult.output.trim() || "the package manager gave no output"}
|
|
2982
|
+
Fix that and run again, or use --no-install and install ${allDeps.join(" ")} in ${projectDir} yourself.`
|
|
2957
2983
|
);
|
|
2958
2984
|
process.exit(1);
|
|
2959
2985
|
}
|
|
@@ -3019,6 +3045,7 @@ ${installResult.output.trim() || "the package manager gave no output"}`
|
|
|
3019
3045
|
console.log(` ${symbol} ${r.id.padEnd(20)} driver: ${decl?.driver ?? "?"}${detail}`);
|
|
3020
3046
|
}
|
|
3021
3047
|
await manager.disconnectAll();
|
|
3048
|
+
if (report.results.some((r) => !r.connected)) process.exit(1);
|
|
3022
3049
|
});
|
|
3023
3050
|
cmd.command("list").description("List all configured connectors").option("--project-dir <path>", "Workspace directory", process.cwd()).action(async (opts) => {
|
|
3024
3051
|
const projectDir = path19__default.resolve(opts.projectDir);
|
|
@@ -3268,7 +3295,7 @@ async function ensureTargetsRegistered(projectDir) {
|
|
|
3268
3295
|
const { resolveSkWorkspaceConfig: resolveSkWorkspaceConfig2 } = await import('../core/index.js');
|
|
3269
3296
|
const config = resolveSkWorkspaceConfig2(projectDir);
|
|
3270
3297
|
if (config.plugins && config.plugins.length > 0) {
|
|
3271
|
-
const { ensurePluginsLoaded } = await import('../plugin-store-
|
|
3298
|
+
const { ensurePluginsLoaded } = await import('../plugin-store-ZC3EGZ3D.js');
|
|
3272
3299
|
const result = await ensurePluginsLoaded(projectDir, config.plugins, pluginRegistry);
|
|
3273
3300
|
for (const f of result.failed) logWarn(f.error);
|
|
3274
3301
|
}
|
|
@@ -3588,45 +3615,40 @@ async function runHarnessSet(name, projectDir, opts) {
|
|
|
3588
3615
|
`model ${profile.model} is kept. Check it fits ${target}: skaile run "hi there" --dry-run`
|
|
3589
3616
|
);
|
|
3590
3617
|
}
|
|
3591
|
-
const
|
|
3618
|
+
const switchState = rememberRenderedHashes(
|
|
3592
3619
|
projectDir,
|
|
3593
|
-
new AssetManager({ registry: getKindRegistry(), projectDir }).lockedRenderedHashes()
|
|
3620
|
+
new AssetManager({ registry: getKindRegistry(), projectDir }).lockedRenderedHashes(),
|
|
3621
|
+
target
|
|
3594
3622
|
);
|
|
3595
3623
|
logInfo(`Installing for ${target} (${HARNESS_TARGETS[target].local.skill})`);
|
|
3596
3624
|
await runYamlInstall({ projectDir });
|
|
3597
3625
|
if (opts.clean) {
|
|
3598
|
-
removeOldHarnessCopies(projectDir,
|
|
3599
|
-
|
|
3626
|
+
const kept = removeOldHarnessCopies(projectDir, switchState.hashes);
|
|
3627
|
+
removeEmptyHarnessFolders(projectDir, target);
|
|
3628
|
+
writeHarnessSwitchState(projectDir, {
|
|
3629
|
+
hashes: /* @__PURE__ */ new Map(),
|
|
3630
|
+
kept: /* @__PURE__ */ new Set([...switchState.kept, ...kept.map((c) => harnessSwitchKeptKey(projectDir, c))])
|
|
3631
|
+
});
|
|
3600
3632
|
}
|
|
3601
3633
|
}
|
|
3602
|
-
function
|
|
3603
|
-
|
|
3604
|
-
|
|
3605
|
-
|
|
3606
|
-
const
|
|
3607
|
-
|
|
3608
|
-
|
|
3609
|
-
const kept = JSON.parse(readFileSync(file, "utf-8"));
|
|
3610
|
-
for (const [p6, sha] of Object.entries(kept)) if (typeof sha === "string") merged.set(p6, sha);
|
|
3611
|
-
} catch {
|
|
3612
|
-
}
|
|
3613
|
-
for (const [p6, sha] of current) merged.set(p6, sha);
|
|
3614
|
-
if (merged.size > 0) {
|
|
3615
|
-
try {
|
|
3616
|
-
mkdirSync(path19__default.dirname(file), { recursive: true });
|
|
3617
|
-
writeFileSync(file, `${JSON.stringify(Object.fromEntries(merged), null, 2)}
|
|
3618
|
-
`);
|
|
3619
|
-
} catch {
|
|
3634
|
+
function rememberRenderedHashes(projectDir, current, active) {
|
|
3635
|
+
const state2 = readHarnessSwitchState(projectDir);
|
|
3636
|
+
for (const [p6, sha] of current) state2.hashes.set(p6, sha);
|
|
3637
|
+
const activeRoot = `${HARNESS_TARGETS[active].local.skill.split("/")[0]}/`;
|
|
3638
|
+
for (const key of state2.kept) {
|
|
3639
|
+
if (key.startsWith(activeRoot) || !existsSync(path19__default.join(projectDir, key))) {
|
|
3640
|
+
state2.kept.delete(key);
|
|
3620
3641
|
}
|
|
3621
3642
|
}
|
|
3622
|
-
|
|
3643
|
+
writeHarnessSwitchState(projectDir, state2);
|
|
3644
|
+
return state2;
|
|
3623
3645
|
}
|
|
3624
3646
|
function removeOldHarnessCopies(projectDir, renderedBefore) {
|
|
3625
3647
|
const am2 = new AssetManager({ registry: getKindRegistry(), projectDir });
|
|
3626
3648
|
const stale = am2.listStaleHarnessCopies({ renderedBefore });
|
|
3627
3649
|
if (stale.length === 0) {
|
|
3628
3650
|
logInfo("No old harness copies to remove.");
|
|
3629
|
-
return;
|
|
3651
|
+
return [];
|
|
3630
3652
|
}
|
|
3631
3653
|
const rel = (copies) => copies.map((c) => path19__default.relative(projectDir, c.path)).join(", ");
|
|
3632
3654
|
const owned = stale.filter((c) => c.skaileWrote);
|
|
@@ -3642,6 +3664,50 @@ function removeOldHarnessCopies(projectDir, renderedBefore) {
|
|
|
3642
3664
|
`Kept ${foreign.length} cop${foreign.length === 1 ? "y" : "ies"} skaile did not write (the bytes differ from the new harness's copy or, for an agent file, from what the lock recorded, or it is not in the lock): ${rel(foreign)}. Delete ${foreign.length === 1 ? "it" : "them"} by hand if you do not need ${foreign.length === 1 ? "it" : "them"}.`
|
|
3643
3665
|
);
|
|
3644
3666
|
}
|
|
3667
|
+
return foreign.map((c) => c.path);
|
|
3668
|
+
}
|
|
3669
|
+
function managedFolderNames(harness) {
|
|
3670
|
+
const local = HARNESS_TARGETS[harness].local;
|
|
3671
|
+
const names = [local.skill, local.agent, local.prompt, local.contract].filter((dir) => !dir.startsWith(".skaile/")).map((dir) => dir.split("/").slice(1).join("/"));
|
|
3672
|
+
return [...names, CODEX_IDENTITY_DIR, "extensions"];
|
|
3673
|
+
}
|
|
3674
|
+
function removeEmptyTree(dir) {
|
|
3675
|
+
let entries;
|
|
3676
|
+
try {
|
|
3677
|
+
entries = readdirSync(dir, { withFileTypes: true });
|
|
3678
|
+
} catch {
|
|
3679
|
+
return false;
|
|
3680
|
+
}
|
|
3681
|
+
let empty = true;
|
|
3682
|
+
for (const entry of entries) {
|
|
3683
|
+
if (entry.isDirectory() && removeEmptyTree(path19__default.join(dir, entry.name))) continue;
|
|
3684
|
+
empty = false;
|
|
3685
|
+
}
|
|
3686
|
+
if (!empty) return false;
|
|
3687
|
+
try {
|
|
3688
|
+
rmdirSync(dir);
|
|
3689
|
+
return true;
|
|
3690
|
+
} catch {
|
|
3691
|
+
return false;
|
|
3692
|
+
}
|
|
3693
|
+
}
|
|
3694
|
+
function removeEmptyHarnessFolders(projectDir, active) {
|
|
3695
|
+
const removed = [];
|
|
3696
|
+
for (const harness of SUPPORTED_HARNESSES) {
|
|
3697
|
+
if (harness === active) continue;
|
|
3698
|
+
const root = path19__default.join(projectDir, HARNESS_TARGETS[harness].local.skill.split("/")[0] ?? "");
|
|
3699
|
+
if (!existsSync(root) || root === projectDir) continue;
|
|
3700
|
+
for (const name of new Set(managedFolderNames(harness))) {
|
|
3701
|
+
const dir = path19__default.join(root, name);
|
|
3702
|
+
if (existsSync(dir) && removeEmptyTree(dir)) removed.push(path19__default.relative(projectDir, dir));
|
|
3703
|
+
}
|
|
3704
|
+
if (removeEmptyTree(root)) removed.push(path19__default.relative(projectDir, root));
|
|
3705
|
+
}
|
|
3706
|
+
if (removed.length > 0) {
|
|
3707
|
+
logOk(
|
|
3708
|
+
`Removed ${removed.length} empty old harness folder${removed.length === 1 ? "" : "s"}: ${removed.join(", ")}`
|
|
3709
|
+
);
|
|
3710
|
+
}
|
|
3645
3711
|
}
|
|
3646
3712
|
function makeHistoryCommand() {
|
|
3647
3713
|
const cmd = new Command("history").description("Show recent add/remove/update actions");
|
|
@@ -4438,16 +4504,11 @@ async function reindexLibrary(lib, library, name) {
|
|
|
4438
4504
|
await registeredAssetKeys(lib.path),
|
|
4439
4505
|
resolved.publisher
|
|
4440
4506
|
);
|
|
4441
|
-
const { removed, unknownKind, skipped, failed, renamed, superseded } = await syncManifestWithDisk(
|
|
4442
|
-
lib.path,
|
|
4443
|
-
|
|
4444
|
-
|
|
4445
|
-
|
|
4446
|
-
check: (e) => checkAssetFile(e.source, e.kind, registry, lib.path, composeRefs),
|
|
4447
|
-
// A flow the engine would never load under its id (p871): keep it out of the manifest and the index.
|
|
4448
|
-
refuse: (e) => e.kind === "flow" && flowFileNameError({ id: e.name }, path19.basename(e.source)) !== void 0
|
|
4449
|
-
}
|
|
4450
|
-
);
|
|
4507
|
+
const { removed, unknownKind, skipped, failed, renamed, superseded, versionAdded } = await syncManifestWithDisk(lib.path, resolved.publisher, registry, {
|
|
4508
|
+
check: (e) => checkAssetFile(e.source, e.kind, registry, lib.path, composeRefs),
|
|
4509
|
+
// A flow the engine would never load under its id (p871): keep it out of the manifest and the index.
|
|
4510
|
+
refuse: (e) => e.kind === "flow" && flowFileNameError({ id: e.name }, path19.basename(e.source)) !== void 0
|
|
4511
|
+
});
|
|
4451
4512
|
const manifest = loadSkPublishManifest(lib.path);
|
|
4452
4513
|
for (const a of unknownKind) {
|
|
4453
4514
|
logWarn(
|
|
@@ -4464,6 +4525,7 @@ async function reindexLibrary(lib, library, name) {
|
|
|
4464
4525
|
for (const a of superseded) {
|
|
4465
4526
|
logInfo(`Removed manifest entry ${a.kind}:${a.name} (root ${a.root} now holds another asset)`);
|
|
4466
4527
|
}
|
|
4528
|
+
reportVersionsAdded(versionAdded, manifest);
|
|
4467
4529
|
const invalidVersion = skipped.filter((x) => x.reason === "invalid-version");
|
|
4468
4530
|
for (const s of invalidVersion) {
|
|
4469
4531
|
const found = checkAssetFile(path19.join(lib.path, s.file), s.kind, registry).find(
|
|
@@ -4558,15 +4620,13 @@ async function indexPulledLibrary(lib, library, name) {
|
|
|
4558
4620
|
const res = await indexLibrary(lib, library);
|
|
4559
4621
|
for (const e of res.errors) logWarn(e);
|
|
4560
4622
|
logOk(`Indexed ${res.assetsUpdated} asset(s) from ${name}.`);
|
|
4561
|
-
warnUnlistedAssets(await countUnlistedAssets(lib.path), name);
|
|
4623
|
+
warnUnlistedAssets(await countUnlistedAssets(lib.path), name, lib.ownership);
|
|
4562
4624
|
warnIgnoredDomainFiles(lib.path);
|
|
4563
4625
|
}
|
|
4564
|
-
function warnUnlistedAssets(unlisted, name) {
|
|
4565
|
-
if (unlisted
|
|
4566
|
-
|
|
4567
|
-
|
|
4568
|
-
);
|
|
4569
|
-
}
|
|
4626
|
+
function warnUnlistedAssets(unlisted, name, ownership) {
|
|
4627
|
+
if (unlisted === 0) return;
|
|
4628
|
+
const fix = ownership !== "reader" ? `run \`skaile library index ${name}\`.` : `add them to ${SKAILE_MANIFEST_FILENAME} in the source repo and pull, or, for your own repo, run \`skaile library set ${name} ownership=owner\` and then \`skaile library index ${name}\`.`;
|
|
4629
|
+
logWarn(`${unlisted} asset(s) on disk are not in the manifest; ${fix}`);
|
|
4570
4630
|
}
|
|
4571
4631
|
function warnManifestNeedsCommit(libPath, name) {
|
|
4572
4632
|
const status4 = spawnSync("git", ["status", "--porcelain", "--", SKAILE_MANIFEST_FILENAME], {
|
|
@@ -4578,6 +4638,12 @@ function warnManifestNeedsCommit(libPath, name) {
|
|
|
4578
4638
|
`${SKAILE_MANIFEST_FILENAME} was changed in the clone. Commit it with \`skaile library commit ${name}\`; a \`pull\` or \`sync\` stops only when a tracked file has uncommitted changes.`
|
|
4579
4639
|
);
|
|
4580
4640
|
}
|
|
4641
|
+
function reportVersionsAdded(added, manifest) {
|
|
4642
|
+
for (const a of added) {
|
|
4643
|
+
const ref = manifest ? assetEntryRef(a, manifest) : `${a.kind}:${a.name}`;
|
|
4644
|
+
logInfo(`${SKAILE_MANIFEST_FILENAME} changed: version ${a.version} added to ${ref}`);
|
|
4645
|
+
}
|
|
4646
|
+
}
|
|
4581
4647
|
function assertManifestEditableOrExit(libraryPath) {
|
|
4582
4648
|
try {
|
|
4583
4649
|
assertManifestEditable(libraryPath);
|
|
@@ -4654,6 +4720,14 @@ async function refuseUnusableLibraryDir(dir, force = false, ownership = "owner")
|
|
|
4654
4720
|
logErr(rootFile);
|
|
4655
4721
|
process.exit(1);
|
|
4656
4722
|
}
|
|
4723
|
+
const publisherProblems = manifestPublisherProblems(dir);
|
|
4724
|
+
if (publisherProblems.length > 0) {
|
|
4725
|
+
for (const message of publisherProblems) logErr(message);
|
|
4726
|
+
logErr(
|
|
4727
|
+
`Fix the publisher in ${SKAILE_MANIFEST_FILENAME}, then run \`skaile library init\` again; nothing was registered.`
|
|
4728
|
+
);
|
|
4729
|
+
process.exit(1);
|
|
4730
|
+
}
|
|
4657
4731
|
const manifest = loadSkPublishManifest(dir);
|
|
4658
4732
|
const missing = manifest ? missingRootAssets(dir, manifest) : [];
|
|
4659
4733
|
if (manifest && missing.length > 0) {
|
|
@@ -4797,8 +4871,7 @@ function assertCreateDirInsideLibrary(libRoot, destDir, given) {
|
|
|
4797
4871
|
function adoptWritesManifest(libPath) {
|
|
4798
4872
|
if (!fs8.existsSync(path19.join(libPath, SKAILE_MANIFEST_FILENAME))) return true;
|
|
4799
4873
|
const manifest = loadSkPublishManifest(libPath);
|
|
4800
|
-
|
|
4801
|
-
return manifestPublisherProblems(libPath).length === 0;
|
|
4874
|
+
return !!manifest && !manifest.source && (manifest.assets ?? []).length === 0;
|
|
4802
4875
|
}
|
|
4803
4876
|
async function countUnlistedAssets(libPath) {
|
|
4804
4877
|
const manifest = loadSkPublishManifest(libPath);
|
|
@@ -4822,7 +4895,7 @@ function readOriginTracking(dir) {
|
|
|
4822
4895
|
});
|
|
4823
4896
|
return { url, branch: head.status === 0 && head.stdout.trim() || "main" };
|
|
4824
4897
|
}
|
|
4825
|
-
function exitOnCloneWithoutCheckout(dir, name, fresh) {
|
|
4898
|
+
function exitOnCloneWithoutCheckout(dir, name, fresh, ownershipFlag) {
|
|
4826
4899
|
const head = spawnSync("git", ["rev-parse", "--verify", "-q", "HEAD"], {
|
|
4827
4900
|
cwd: dir,
|
|
4828
4901
|
encoding: "utf-8"
|
|
@@ -4834,6 +4907,7 @@ function exitOnCloneWithoutCheckout(dir, name, fresh) {
|
|
|
4834
4907
|
});
|
|
4835
4908
|
const branches = (refs.stdout ?? "").split("\n").map((ref) => ref.trim().replace(/^refs\/remotes\/origin\//, "")).filter((branch) => branch !== "" && branch !== "HEAD" && !branch.startsWith("refs/"));
|
|
4836
4909
|
if (branches.length === 0) return;
|
|
4910
|
+
const ownerArg = ownershipFlag ? ` ${ownershipFlag}` : "";
|
|
4837
4911
|
if (fresh) {
|
|
4838
4912
|
if (fresh.existed) fs8.rmSync(path19.join(dir, ".git"), { recursive: true, force: true });
|
|
4839
4913
|
else {
|
|
@@ -4841,12 +4915,12 @@ function exitOnCloneWithoutCheckout(dir, name, fresh) {
|
|
|
4841
4915
|
pruneEmptyLibraryParents(dir);
|
|
4842
4916
|
}
|
|
4843
4917
|
logErr(
|
|
4844
|
-
`${fresh.url}: its remote HEAD names a branch that does not exist (remote branches: ${branches.join(", ")}); nothing was cloned or registered. Clone the branch you want, then adopt it: \`git clone --branch ${branches[0]} ${fresh.url} ${dir}\` and \`skaile library init ${name} --path ${dir}\`.`
|
|
4918
|
+
`${fresh.url}: its remote HEAD names a branch that does not exist (remote branches: ${branches.join(", ")}); nothing was cloned or registered. Clone the branch you want, then adopt it: \`git clone --branch ${branches[0]} ${fresh.url} ${dir}\` and \`skaile library init ${name} --path ${dir}${ownerArg}\`.`
|
|
4845
4919
|
);
|
|
4846
4920
|
process.exit(1);
|
|
4847
4921
|
}
|
|
4848
4922
|
logErr(
|
|
4849
|
-
`${dir} is a git clone with no branch checked out (its remote HEAD names a branch that does not exist): run \`git -C ${dir} checkout ${branches[0]}\` (remote branches: ${branches.join(", ")}), then re-run \`skaile library init ${name} --path ${dir}\`.`
|
|
4923
|
+
`${dir} is a git clone with no branch checked out (its remote HEAD names a branch that does not exist): run \`git -C ${dir} checkout ${branches[0]}\` (remote branches: ${branches.join(", ")}), then re-run \`skaile library init ${name} --path ${dir}${ownerArg}\`.`
|
|
4850
4924
|
);
|
|
4851
4925
|
process.exit(1);
|
|
4852
4926
|
}
|
|
@@ -4896,7 +4970,7 @@ function remoteBranches(url) {
|
|
|
4896
4970
|
return r.stdout.split("\n").map((line) => line.split(" ")[1]?.replace(/^refs\/heads\//, "")).filter((b) => !!b);
|
|
4897
4971
|
}
|
|
4898
4972
|
async function warnIfNotGithubRemote(name, url) {
|
|
4899
|
-
const { isGithubRemote, notGithubRemoteMessage } = await import('../library-publish-
|
|
4973
|
+
const { isGithubRemote, notGithubRemoteMessage } = await import('../library-publish-7U4TJNQX.js');
|
|
4900
4974
|
if (!isGithubRemote(url)) logWarn(notGithubRemoteMessage(name, url));
|
|
4901
4975
|
}
|
|
4902
4976
|
function scaffoldLibraryFiles(dir, name) {
|
|
@@ -5045,7 +5119,13 @@ function makeLibraryCommand() {
|
|
|
5045
5119
|
cmd.command("init <name>").description("Create (or adopt) a library \u2014 default location ~/.skaile/libraries/<name>").option("--git <url>", "Initialize as a git library tracking <url>").option("--path <dir>", "Register the library at <dir> (created if missing) instead").option(
|
|
5046
5120
|
"--force",
|
|
5047
5121
|
"Adopt a folder that holds deployed copies (.claude/, .skaile/, .codex/, .omp/) as a library"
|
|
5048
|
-
).option(
|
|
5122
|
+
).option(
|
|
5123
|
+
"--owner",
|
|
5124
|
+
"Mark as owner (the default; an existing git clone with an origin is a reader unless you pass --owner)"
|
|
5125
|
+
).option("--contributor", "Mark as contributor (needs --git or an existing git clone)").option(
|
|
5126
|
+
"--reader",
|
|
5127
|
+
"Mark as reader (needs --git or an existing git clone; the default for a clone with an origin)"
|
|
5128
|
+
).action(
|
|
5049
5129
|
async (name, opts) => {
|
|
5050
5130
|
requireValidLibraryName(name);
|
|
5051
5131
|
const flagged = ["owner", "contributor", "reader"].filter((o) => opts[o]);
|
|
@@ -5058,7 +5138,6 @@ function makeLibraryCommand() {
|
|
|
5058
5138
|
if (gone.backend === "git") opts.git ??= gone.backendConfig.url;
|
|
5059
5139
|
opts.path ??= gone.path;
|
|
5060
5140
|
}
|
|
5061
|
-
const ownership = flagged[0] ?? gone?.ownership ?? "owner";
|
|
5062
5141
|
const libPath = opts.path ? path19.resolve(opts.path) : path19.join(resolveLibraryDir(), name);
|
|
5063
5142
|
refuseGlobalInstallFolder(name, libPath);
|
|
5064
5143
|
if (fs8.existsSync(libPath) && !fs8.statSync(libPath).isDirectory()) {
|
|
@@ -5066,7 +5145,15 @@ function makeLibraryCommand() {
|
|
|
5066
5145
|
process.exit(1);
|
|
5067
5146
|
}
|
|
5068
5147
|
const adopted = opts.git ? null : readOriginTracking(libPath);
|
|
5069
|
-
if (adopted)
|
|
5148
|
+
if (adopted) {
|
|
5149
|
+
exitOnCloneWithoutCheckout(
|
|
5150
|
+
libPath,
|
|
5151
|
+
name,
|
|
5152
|
+
void 0,
|
|
5153
|
+
flagged[0] ? `--${flagged[0]}` : void 0
|
|
5154
|
+
);
|
|
5155
|
+
}
|
|
5156
|
+
const ownership = flagged[0] ?? gone?.ownership ?? (adopted ? "reader" : "owner");
|
|
5070
5157
|
if (ownership !== "owner" && !opts.git && !adopted) {
|
|
5071
5158
|
logErr(
|
|
5072
5159
|
`--${ownership} needs --git <url> or an existing git clone: ${LOCAL_OWNERSHIP_REASON}`
|
|
@@ -5096,7 +5183,14 @@ function makeLibraryCommand() {
|
|
|
5096
5183
|
if (opts.git) {
|
|
5097
5184
|
const existed = fs8.existsSync(libPath);
|
|
5098
5185
|
const { branch, reason, cloned } = cloneOrInitGitRepo(libPath, opts.git, "main");
|
|
5099
|
-
if (cloned)
|
|
5186
|
+
if (cloned) {
|
|
5187
|
+
exitOnCloneWithoutCheckout(
|
|
5188
|
+
libPath,
|
|
5189
|
+
name,
|
|
5190
|
+
{ url: opts.git, existed },
|
|
5191
|
+
`--${flagged[0] ?? "owner"}`
|
|
5192
|
+
);
|
|
5193
|
+
}
|
|
5100
5194
|
if (reason) {
|
|
5101
5195
|
logWarn(
|
|
5102
5196
|
`Could not clone ${opts.git}; initialised an empty repo with that origin instead. git said: ${reason}`
|
|
@@ -5146,6 +5240,10 @@ function makeLibraryCommand() {
|
|
|
5146
5240
|
logInfo(
|
|
5147
5241
|
`\`library push\` / \`sync\` push to that origin. Not your library? Run \`skaile library set ${name} ownership=reader\` (or \`contributor\` to propose changes).`
|
|
5148
5242
|
);
|
|
5243
|
+
} else if (ownership === "reader") {
|
|
5244
|
+
logInfo(
|
|
5245
|
+
`A reader never changes the clone and never pushes. Your own repo? Run \`skaile library set ${name} ownership=owner\`.`
|
|
5246
|
+
);
|
|
5149
5247
|
}
|
|
5150
5248
|
}
|
|
5151
5249
|
if (!blank) {
|
|
@@ -5157,16 +5255,18 @@ function makeLibraryCommand() {
|
|
|
5157
5255
|
}
|
|
5158
5256
|
const unlisted = await countUnlistedAssets(libPath);
|
|
5159
5257
|
const resolved = resolveLibraryPublisherDetailed(lib, {}, getStoreIdentity());
|
|
5160
|
-
if (resolved.source === "manifest" && !isValidPublisher(resolved.publisher)) {
|
|
5161
|
-
logWarn(
|
|
5162
|
-
`${SKAILE_MANIFEST_FILENAME} declares publisher "${resolved.publisher}": ${PUBLISHER_HINT}. Fix it with \`skaile library set ${name} publisher=<name>\`.`
|
|
5163
|
-
);
|
|
5164
|
-
}
|
|
5165
5258
|
warnLibraryNameFallback(name, resolved);
|
|
5259
|
+
let manifestChanged = false;
|
|
5166
5260
|
if (ownership === "owner" && resolved.source !== "manifest") {
|
|
5167
5261
|
stampManifestPublisher(lib.path, resolved.publisher);
|
|
5168
|
-
|
|
5262
|
+
manifestChanged = true;
|
|
5169
5263
|
}
|
|
5264
|
+
if (ownership === "owner") {
|
|
5265
|
+
const added = await addMissingEntryVersions(lib.path, getKindRegistry());
|
|
5266
|
+
reportVersionsAdded(added, loadSkPublishManifest(lib.path));
|
|
5267
|
+
if (added.length > 0) manifestChanged = true;
|
|
5268
|
+
}
|
|
5269
|
+
if (manifestChanged) warnManifestNeedsCommit(lib.path, name);
|
|
5170
5270
|
let toIndex = lib;
|
|
5171
5271
|
if (ownership !== "owner" && resolved.source !== "manifest" && backendConfig) {
|
|
5172
5272
|
await manager.updateLibrary(name, {
|
|
@@ -5177,7 +5277,7 @@ function makeLibraryCommand() {
|
|
|
5177
5277
|
const res = await indexLibrary(toIndex, library);
|
|
5178
5278
|
for (const e of res.errors) logWarn(e);
|
|
5179
5279
|
logOk(`Indexed ${res.assetsUpdated} asset(s) from ${name}.`);
|
|
5180
|
-
warnUnlistedAssets(unlisted, name);
|
|
5280
|
+
warnUnlistedAssets(unlisted, name, ownership);
|
|
5181
5281
|
warnIgnoredDomainFiles(libPath);
|
|
5182
5282
|
}
|
|
5183
5283
|
} catch (err) {
|
|
@@ -5714,16 +5814,16 @@ function makeLibraryCommand() {
|
|
|
5714
5814
|
"With --create-repo: create the repo private (the store only accepts public repos)"
|
|
5715
5815
|
).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(
|
|
5716
5816
|
async (lib, opts) => {
|
|
5717
|
-
const { runLibraryPublish } = await import('../library-publish-
|
|
5817
|
+
const { runLibraryPublish } = await import('../library-publish-7U4TJNQX.js');
|
|
5718
5818
|
await withStoreErrorHandling(() => runLibraryPublish(lib, opts));
|
|
5719
5819
|
}
|
|
5720
5820
|
);
|
|
5721
5821
|
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) => {
|
|
5722
|
-
const { runLibraryRegister } = await import('../library-publish-
|
|
5822
|
+
const { runLibraryRegister } = await import('../library-publish-7U4TJNQX.js');
|
|
5723
5823
|
await withStoreErrorHandling(() => runLibraryRegister(lib, opts));
|
|
5724
5824
|
});
|
|
5725
5825
|
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) => {
|
|
5726
|
-
const { runLibraryYank } = await import('../library-publish-
|
|
5826
|
+
const { runLibraryYank } = await import('../library-publish-7U4TJNQX.js');
|
|
5727
5827
|
await withStoreErrorHandling(() => runLibraryYank(lib, opts));
|
|
5728
5828
|
});
|
|
5729
5829
|
return cmd;
|
|
@@ -6383,7 +6483,7 @@ function scheduleSoftDepPreview() {
|
|
|
6383
6483
|
}
|
|
6384
6484
|
async function loadAssets() {
|
|
6385
6485
|
softDepPreviewCache.clear();
|
|
6386
|
-
const { gatherAssetFeeds } = await import('../asset-feeds-
|
|
6486
|
+
const { gatherAssetFeeds } = await import('../asset-feeds-PO2WC75V.js');
|
|
6387
6487
|
const { entries, notes } = await gatherAssetFeeds(am, am.projectDir);
|
|
6388
6488
|
if (notes.length > 0) {
|
|
6389
6489
|
state.message = notes.map((n) => `[${n.feed}] ${n.message}`).join(" \u2022 ");
|
|
@@ -6587,7 +6687,7 @@ function reconcileCollapsedSets(rows) {
|
|
|
6587
6687
|
async function loadSourcesAndLibraries() {
|
|
6588
6688
|
try {
|
|
6589
6689
|
const [{ openLibraryManager: openLibraryManager2 }, { getGlobalCacheDir: getGlobalCacheDir2, globalSkaileDir: globalSkaileDir2 }] = await Promise.all([
|
|
6590
|
-
import('../open-library-
|
|
6690
|
+
import('../open-library-K6O6OVW5.js'),
|
|
6591
6691
|
import('../core/index.js')
|
|
6592
6692
|
]);
|
|
6593
6693
|
const { manager, library, close } = await openLibraryManager2();
|
|
@@ -7779,6 +7879,18 @@ function resolveMode(opts) {
|
|
|
7779
7879
|
}
|
|
7780
7880
|
return opts.write === true;
|
|
7781
7881
|
}
|
|
7882
|
+
function requirePath(target, opts = {}) {
|
|
7883
|
+
const abs = path19__default.resolve(target);
|
|
7884
|
+
if (!existsSync(abs)) {
|
|
7885
|
+
logErr(`Path does not exist: ${abs}`);
|
|
7886
|
+
process.exit(1);
|
|
7887
|
+
}
|
|
7888
|
+
if (opts.dir !== void 0 && !statSync(abs).isDirectory()) {
|
|
7889
|
+
logErr(`${abs} is not a directory: nothing to migrate. Pass ${opts.dir}.`);
|
|
7890
|
+
process.exit(1);
|
|
7891
|
+
}
|
|
7892
|
+
return abs;
|
|
7893
|
+
}
|
|
7782
7894
|
function printChanges(changes, base) {
|
|
7783
7895
|
for (const change of changes) {
|
|
7784
7896
|
console.log();
|
|
@@ -8962,7 +9074,7 @@ function planHarnessMigration(opts) {
|
|
|
8962
9074
|
}
|
|
8963
9075
|
function runMigrateHarness(opts) {
|
|
8964
9076
|
const cwd = process.cwd();
|
|
8965
|
-
const projectDir =
|
|
9077
|
+
const projectDir = opts.projectDir ? requirePath(opts.projectDir, { dir: "the project directory" }) : path19__default.resolve(findWorkspaceRoot(cwd) ?? cwd);
|
|
8966
9078
|
const plan = planHarnessMigration({ projectDir, user: opts.user === true });
|
|
8967
9079
|
for (const note of plan.notes) console.log(` ${note}`);
|
|
8968
9080
|
printChanges(plan.changes, projectDir);
|
|
@@ -9291,7 +9403,7 @@ function printPlan(plan) {
|
|
|
9291
9403
|
console.log();
|
|
9292
9404
|
}
|
|
9293
9405
|
async function runMigrateProviders(opts) {
|
|
9294
|
-
const projectDir = opts.projectDir ?
|
|
9406
|
+
const projectDir = opts.projectDir ? requirePath(opts.projectDir, { dir: "the project directory" }) : process.cwd();
|
|
9295
9407
|
const plan = planProviderMigration({ projectDir, workspace: opts.workspace });
|
|
9296
9408
|
for (const warning of plan.warnings) logWarn(warning);
|
|
9297
9409
|
if (plan.entries.length === 0 && Object.keys(plan.providers).length === 0) {
|
|
@@ -9389,7 +9501,7 @@ async function runMigrateAgents(paths, opts) {
|
|
|
9389
9501
|
const write = resolveMode(opts);
|
|
9390
9502
|
const base = process.cwd();
|
|
9391
9503
|
const plan = planAgentMigration({
|
|
9392
|
-
paths: paths.length > 0 ? paths : [base],
|
|
9504
|
+
paths: paths.length > 0 ? paths.map((p6) => requirePath(p6)) : [base],
|
|
9393
9505
|
registry: getKindRegistry()
|
|
9394
9506
|
});
|
|
9395
9507
|
let failures = 0;
|
|
@@ -9422,7 +9534,7 @@ async function runMigrateAssets(root, opts) {
|
|
|
9422
9534
|
const write = resolveMode(opts);
|
|
9423
9535
|
const base = process.cwd();
|
|
9424
9536
|
const plan = planAssetMigration({
|
|
9425
|
-
root:
|
|
9537
|
+
root: requirePath(root ?? base, { dir: "the repo root" }),
|
|
9426
9538
|
registry: getKindRegistry()
|
|
9427
9539
|
});
|
|
9428
9540
|
if (plan.conflicts.length > 0) {
|
|
@@ -9600,16 +9712,17 @@ function outdatedStatus(e) {
|
|
|
9600
9712
|
return `${e.behind} commit(s) behind`;
|
|
9601
9713
|
}
|
|
9602
9714
|
function makeOutdatedCommand() {
|
|
9603
|
-
return new Command("outdated").description("Check for assets behind their repo or library").argument("[ref]", "Check a specific asset (kind:@publisher/name)").option("--project-dir <path>", "Project directory", process.cwd()).addOption(
|
|
9715
|
+
return new Command("outdated").description("Check for assets behind their repo or library").argument("[ref]", "Check a specific asset (kind:@publisher/name)").option("--project-dir <path>", "Project directory", process.cwd()).option("--global", "Check the global install (~/.skaile) instead of the project").addOption(
|
|
9604
9716
|
new Option("--target <agent>", `Harness target (${TARGET_DEFAULT_HINT})`).choices(
|
|
9605
9717
|
SUPPORTED_HARNESSES
|
|
9606
9718
|
)
|
|
9607
9719
|
).action(async (filter, opts) => {
|
|
9608
|
-
requireProjectConfig(opts.projectDir);
|
|
9720
|
+
if (!opts.global) requireProjectConfig(opts.projectDir);
|
|
9609
9721
|
const am2 = new AssetManager({
|
|
9610
9722
|
registry: getKindRegistry(),
|
|
9611
9723
|
projectDir: path19__default.resolve(opts.projectDir),
|
|
9612
|
-
harness: opts.target
|
|
9724
|
+
harness: opts.target,
|
|
9725
|
+
...opts.global ? { global: true } : {}
|
|
9613
9726
|
});
|
|
9614
9727
|
const entries = await am2.outdated();
|
|
9615
9728
|
const unreachable = am2.takeUnreachableSources();
|
|
@@ -9651,9 +9764,15 @@ function makeOutdatedCommand() {
|
|
|
9651
9764
|
}
|
|
9652
9765
|
console.log();
|
|
9653
9766
|
const needsUpdate = filtered.some((e) => e.problem === void 0 && !e.pinned);
|
|
9654
|
-
if (needsUpdate
|
|
9767
|
+
if (needsUpdate && opts.global)
|
|
9768
|
+
logWarn(
|
|
9769
|
+
`Run ${S.cmd("skaile add <ref> --global")} to re-lock and re-deploy a listed asset.`
|
|
9770
|
+
);
|
|
9771
|
+
else if (needsUpdate) logWarn(`Run ${S.cmd("skaile update")} to re-lock and re-deploy.`);
|
|
9655
9772
|
if (filtered.some((e) => e.problem !== void 0 && !e.manualFix)) {
|
|
9656
|
-
logWarn(
|
|
9773
|
+
logWarn(
|
|
9774
|
+
`Run ${S.cmd(opts.global ? "skaile install --global" : "skaile install")} to restore or re-lock the broken assets.`
|
|
9775
|
+
);
|
|
9657
9776
|
}
|
|
9658
9777
|
for (const e of filtered) {
|
|
9659
9778
|
if (e.problem !== void 0 || (await am2.gapsOf(outdatedRef(e))).length > 0) {
|
|
@@ -9725,14 +9844,14 @@ function action2(fn) {
|
|
|
9725
9844
|
try {
|
|
9726
9845
|
await fn(...args);
|
|
9727
9846
|
} catch (err) {
|
|
9728
|
-
const { condensePluginFailure } = await import('../plugin-store-
|
|
9847
|
+
const { condensePluginFailure } = await import('../plugin-store-ZC3EGZ3D.js');
|
|
9729
9848
|
logErr(condensePluginFailure(err instanceof Error ? err.message : String(err)));
|
|
9730
9849
|
process.exitCode = 1;
|
|
9731
9850
|
}
|
|
9732
9851
|
};
|
|
9733
9852
|
}
|
|
9734
9853
|
async function reconcileAndReport(projectDir, plugins, opts = {}) {
|
|
9735
|
-
const { reconcilePlugins } = await import('../plugin-store-
|
|
9854
|
+
const { reconcilePlugins } = await import('../plugin-store-ZC3EGZ3D.js');
|
|
9736
9855
|
if (plugins.length === 0) {
|
|
9737
9856
|
logInfo("No plugins declared \u2014 nothing to reconcile.");
|
|
9738
9857
|
return;
|
|
@@ -9743,14 +9862,14 @@ async function reconcileAndReport(projectDir, plugins, opts = {}) {
|
|
|
9743
9862
|
else logInfo(`Plugin store ${result.reason}.`);
|
|
9744
9863
|
} catch (err) {
|
|
9745
9864
|
if (opts.strict) throw err;
|
|
9746
|
-
const { condensePluginFailure } = await import('../plugin-store-
|
|
9865
|
+
const { condensePluginFailure } = await import('../plugin-store-ZC3EGZ3D.js');
|
|
9747
9866
|
logWarn(
|
|
9748
9867
|
`reconcile skipped: ${condensePluginFailure(err instanceof Error ? err.message : String(err))}`
|
|
9749
9868
|
);
|
|
9750
9869
|
}
|
|
9751
9870
|
}
|
|
9752
9871
|
async function verifyPluginLoads(projectDir, spec, declared) {
|
|
9753
|
-
const { loadPlugins } = await import('../plugin-store-
|
|
9872
|
+
const { loadPlugins } = await import('../plugin-store-ZC3EGZ3D.js');
|
|
9754
9873
|
const { createPluginRegistry } = await import('../plugin-registry/index.js');
|
|
9755
9874
|
const registry = createPluginRegistry();
|
|
9756
9875
|
await loadPlugins(
|
|
@@ -9773,7 +9892,7 @@ async function runInstall2(typedSpec, opts) {
|
|
|
9773
9892
|
const rawSpec = typedSpec.trim();
|
|
9774
9893
|
const projectDir = path19__default.resolve(opts.projectDir);
|
|
9775
9894
|
const { WorkspaceYamlEditor: WorkspaceYamlEditor2 } = await import('../core/index.js');
|
|
9776
|
-
const { specName, rollbackPluginStore, npmSpecError, projectRelativeFileSpec } = await import('../plugin-store-
|
|
9895
|
+
const { specName, rollbackPluginStore, npmSpecError, projectRelativeFileSpec } = await import('../plugin-store-ZC3EGZ3D.js');
|
|
9777
9896
|
const specError = npmSpecError(rawSpec);
|
|
9778
9897
|
if (specError) throw new Error(specError);
|
|
9779
9898
|
const spec = projectRelativeFileSpec(rawSpec, process.cwd(), projectDir);
|
|
@@ -9810,7 +9929,7 @@ async function runInstall2(typedSpec, opts) {
|
|
|
9810
9929
|
async function runRemove(name, opts) {
|
|
9811
9930
|
const projectDir = path19__default.resolve(opts.projectDir);
|
|
9812
9931
|
const { WorkspaceYamlEditor: WorkspaceYamlEditor2 } = await import('../core/index.js');
|
|
9813
|
-
const { specName } = await import('../plugin-store-
|
|
9932
|
+
const { specName } = await import('../plugin-store-ZC3EGZ3D.js');
|
|
9814
9933
|
const yamlPath = path19__default.join(projectDir, "skaile.yaml");
|
|
9815
9934
|
if (!existsSync(yamlPath)) {
|
|
9816
9935
|
logInfo(`No plugin matching ${S.cmd(name)}: there is no skaile.yaml in ${projectDir}.`);
|
|
@@ -9826,7 +9945,7 @@ async function runRemove(name, opts) {
|
|
|
9826
9945
|
logOk(`Removed ${S.cmd(name)} from skaile.yaml plugins`);
|
|
9827
9946
|
const remaining = editor.getPlugins();
|
|
9828
9947
|
if (remaining.length === 0) {
|
|
9829
|
-
const { rollbackPluginStore } = await import('../plugin-store-
|
|
9948
|
+
const { rollbackPluginStore } = await import('../plugin-store-ZC3EGZ3D.js');
|
|
9830
9949
|
await rollbackPluginStore(projectDir, []);
|
|
9831
9950
|
logInfo("No plugins declared; removed .skaile/plugins/.");
|
|
9832
9951
|
return;
|
|
@@ -9849,7 +9968,7 @@ async function runList(opts) {
|
|
|
9849
9968
|
const registry = createPluginRegistry();
|
|
9850
9969
|
if (declared.length > 0) {
|
|
9851
9970
|
try {
|
|
9852
|
-
const { loadPlugins } = await import('../plugin-store-
|
|
9971
|
+
const { loadPlugins } = await import('../plugin-store-ZC3EGZ3D.js');
|
|
9853
9972
|
const result = await loadPlugins(projectDir, declared, registry);
|
|
9854
9973
|
for (const f of result.failed) logWarn(f.error);
|
|
9855
9974
|
} catch (err) {
|
|
@@ -10730,7 +10849,8 @@ var claudeSdk = async (input, deps) => present(
|
|
|
10730
10849
|
);
|
|
10731
10850
|
var codex = async (input, deps) => present(
|
|
10732
10851
|
await deps.sdkProblem(input.projectDir, input.harness),
|
|
10733
|
-
checkHarnessModel("codex", input)
|
|
10852
|
+
checkHarnessModel("codex", input),
|
|
10853
|
+
deps.codexCredential(input)
|
|
10734
10854
|
);
|
|
10735
10855
|
var omp = async (input, deps) => {
|
|
10736
10856
|
if (!deps.hasBinary("omp")) return [missingBinary("omp")];
|
|
@@ -10764,7 +10884,8 @@ async function preflightHarness(input, deps = {}) {
|
|
|
10764
10884
|
{
|
|
10765
10885
|
hasBinary: deps.hasBinary ?? ((id) => findHarnessBinary(HARNESS_BINARIES[id])),
|
|
10766
10886
|
sdkProblem: deps.sdkProblem ?? checkHarnessSdk,
|
|
10767
|
-
ompListed: deps.ompListed ?? checkOmpListedModel
|
|
10887
|
+
ompListed: deps.ompListed ?? checkOmpListedModel,
|
|
10888
|
+
codexCredential: deps.codexCredential ?? checkCodexCredential
|
|
10768
10889
|
}
|
|
10769
10890
|
);
|
|
10770
10891
|
}
|
|
@@ -11011,7 +11132,9 @@ function makeRunCommand() {
|
|
|
11011
11132
|
if (await reportProjectConfig(projectDir, { harness: false, instances: true }) > 0) {
|
|
11012
11133
|
process.exit(1);
|
|
11013
11134
|
}
|
|
11014
|
-
const cliHarness2 =
|
|
11135
|
+
const cliHarness2 = canonicalHarnessId(
|
|
11136
|
+
foldDriverFlag(opts).harness
|
|
11137
|
+
);
|
|
11015
11138
|
const dryRun = opts.dryRun ?? false;
|
|
11016
11139
|
const agentDefinition = opts.agentDefinition?.trim() || void 0;
|
|
11017
11140
|
const instanceId2 = opts.instance?.trim() || void 0;
|
|
@@ -11298,7 +11421,9 @@ function makeReplCommand() {
|
|
|
11298
11421
|
const instanceId2 = opts.instance?.trim() || void 0;
|
|
11299
11422
|
let projectDir;
|
|
11300
11423
|
let agentCwd;
|
|
11301
|
-
let harnessOverride =
|
|
11424
|
+
let harnessOverride = canonicalHarnessId(
|
|
11425
|
+
foldDriverFlag(opts).harness
|
|
11426
|
+
);
|
|
11302
11427
|
if (workspaceRoot) {
|
|
11303
11428
|
projectDir = workspaceRoot;
|
|
11304
11429
|
agentCwd = userCwd;
|
|
@@ -11475,7 +11600,8 @@ function makeServeCommand() {
|
|
|
11475
11600
|
"Include the Codex harness in the compiled binary (used with --compile-test)"
|
|
11476
11601
|
).action(
|
|
11477
11602
|
async (rawOpts) => {
|
|
11478
|
-
const
|
|
11603
|
+
const folded = foldDriverFlag(rawOpts);
|
|
11604
|
+
const opts = { ...folded, harness: canonicalHarnessId(folded.harness) };
|
|
11479
11605
|
if (opts.compileTest && opts.managedCodexConfig)
|
|
11480
11606
|
throw new Error("Managed Codex configuration is unsupported with --compile-test");
|
|
11481
11607
|
if (opts.compileTest) {
|
|
@@ -11500,7 +11626,7 @@ function makeServeCommand() {
|
|
|
11500
11626
|
process.exitCode = 1;
|
|
11501
11627
|
return;
|
|
11502
11628
|
}
|
|
11503
|
-
const dirProblem = (await import('../serve-preflight-
|
|
11629
|
+
const dirProblem = (await import('../serve-preflight-E3IEZTTF.js')).checkServeProjectDir(
|
|
11504
11630
|
opts.projectDir
|
|
11505
11631
|
);
|
|
11506
11632
|
if (dirProblem) {
|
|
@@ -11529,7 +11655,7 @@ function makeServeCommand() {
|
|
|
11529
11655
|
}
|
|
11530
11656
|
let providers = parseProviderIds(opts.providers);
|
|
11531
11657
|
if (!managedCodex) {
|
|
11532
|
-
const { resolveServeProvider } = await import('../serve-preflight-
|
|
11658
|
+
const { resolveServeProvider } = await import('../serve-preflight-E3IEZTTF.js');
|
|
11533
11659
|
const picked = resolveServeProvider(opts.projectDir, opts.provider, providers);
|
|
11534
11660
|
if ("problem" in picked) {
|
|
11535
11661
|
logErr(picked.problem);
|
|
@@ -11539,9 +11665,9 @@ function makeServeCommand() {
|
|
|
11539
11665
|
providers = [...picked.providers];
|
|
11540
11666
|
}
|
|
11541
11667
|
const modelEndpoint = parseModelEndpointFlag(opts.modelEndpoint, opts.modelEndpointAgent);
|
|
11542
|
-
const { checkHarnessSdk: checkHarnessSdk2, checkModelEndpointPeer, checkServeModel } = await import('../serve-preflight-
|
|
11543
|
-
const { checkServeHarness, checkServeAgents, checkServeConnectors } = await import('../serve-preflight-
|
|
11544
|
-
const startProblem = managedCodex ? null : await checkServeHarness(opts.projectDir, opts.harness) ?? checkServeAgents(opts.projectDir) ?? checkServeConnectors(opts.projectDir);
|
|
11668
|
+
const { checkHarnessSdk: checkHarnessSdk2, checkModelEndpointPeer, checkServeModel } = await import('../serve-preflight-E3IEZTTF.js');
|
|
11669
|
+
const { checkServeHarness, checkServeAgents, checkServeConnectors } = await import('../serve-preflight-E3IEZTTF.js');
|
|
11670
|
+
const startProblem = managedCodex ? null : await checkServeHarness(opts.projectDir, opts.harness) ?? checkServeAgents(opts.projectDir) ?? await checkServeConnectors(opts.projectDir);
|
|
11545
11671
|
if (startProblem) {
|
|
11546
11672
|
logErr(startProblem);
|
|
11547
11673
|
process.exitCode = 1;
|
|
@@ -11607,12 +11733,12 @@ function makeServeCommand() {
|
|
|
11607
11733
|
);
|
|
11608
11734
|
}
|
|
11609
11735
|
async function ensurePluginsLoadedForServe(projectDir) {
|
|
11610
|
-
const { logInfo: logInfo2, logWarn: logWarn2 } = await import('../helpers-
|
|
11736
|
+
const { logInfo: logInfo2, logWarn: logWarn2 } = await import('../helpers-S6AQGXRH.js');
|
|
11611
11737
|
try {
|
|
11612
11738
|
const { resolveSkWorkspaceConfig: resolveSkWorkspaceConfig2 } = await import('../core/index.js');
|
|
11613
11739
|
const config = resolveSkWorkspaceConfig2(projectDir);
|
|
11614
11740
|
if (!config.plugins || config.plugins.length === 0) return;
|
|
11615
|
-
const { ensurePluginsLoaded } = await import('../plugin-store-
|
|
11741
|
+
const { ensurePluginsLoaded } = await import('../plugin-store-ZC3EGZ3D.js');
|
|
11616
11742
|
const { pluginRegistry } = await import('../plugin-registry/index.js');
|
|
11617
11743
|
const result = await ensurePluginsLoaded(projectDir, config.plugins, pluginRegistry);
|
|
11618
11744
|
if (result.loaded.length > 0) {
|
|
@@ -11626,14 +11752,14 @@ async function ensurePluginsLoadedForServe(projectDir) {
|
|
|
11626
11752
|
}
|
|
11627
11753
|
}
|
|
11628
11754
|
async function runCompileTest(opts) {
|
|
11629
|
-
const { logOk: logOk2, logErr: logErr2, logInfo: logInfo2, S: S2 } = await import('../helpers-
|
|
11755
|
+
const { logOk: logOk2, logErr: logErr2, logInfo: logInfo2, S: S2 } = await import('../helpers-S6AQGXRH.js');
|
|
11630
11756
|
const { tmpdir } = await import('os');
|
|
11631
11757
|
const { dirname: dirname3, join: join6, resolve: resolve4 } = await import('path');
|
|
11632
11758
|
const { fileURLToPath: fileURLToPath2 } = await import('url');
|
|
11633
|
-
const { unlinkSync, existsSync:
|
|
11759
|
+
const { unlinkSync, existsSync: existsSync24 } = await import('fs');
|
|
11634
11760
|
const { spawn } = await import('child_process');
|
|
11635
11761
|
const { portableSpawnSync: portableSpawnSync2 } = await import('../core/index.js');
|
|
11636
|
-
const { MONOREPO_ROOT } = await import('../paths-
|
|
11762
|
+
const { MONOREPO_ROOT } = await import('../paths-PXBWY532.js');
|
|
11637
11763
|
if (MONOREPO_ROOT === null) {
|
|
11638
11764
|
logErr2("--compile-test is only available inside the skaile-dev workspace.");
|
|
11639
11765
|
logInfo2("Run it from a checkout of skaile-ai/skaile-dev (the monorepo shell).");
|
|
@@ -11695,7 +11821,7 @@ async function runCompileTest(opts) {
|
|
|
11695
11821
|
} catch {
|
|
11696
11822
|
}
|
|
11697
11823
|
try {
|
|
11698
|
-
if (
|
|
11824
|
+
if (existsSync24(outfile)) unlinkSync(outfile);
|
|
11699
11825
|
} catch {
|
|
11700
11826
|
}
|
|
11701
11827
|
}
|
|
@@ -12593,8 +12719,8 @@ function makeStoreCommand() {
|
|
|
12593
12719
|
"--all",
|
|
12594
12720
|
`List every match (default: ${STORE_ROW_LIMIT} rows, only what \`skaile add\` can install)`
|
|
12595
12721
|
).option("-C, --project-dir <dir>", "Project directory (catalog config overlay)", process.cwd()).action(async (query, opts) => {
|
|
12596
|
-
const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError: LocalCatalogDisabledError2 } = await import('../open-library-
|
|
12597
|
-
const { getKnownKinds: getKnownKinds2 } = await import('../open-registry-
|
|
12722
|
+
const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError: LocalCatalogDisabledError2 } = await import('../open-library-K6O6OVW5.js');
|
|
12723
|
+
const { getKnownKinds: getKnownKinds2 } = await import('../open-registry-4HNCWOCN.js');
|
|
12598
12724
|
const projectDir = path19__default.resolve(opts.projectDir);
|
|
12599
12725
|
if (opts.kind && !getKnownKinds2().has(opts.kind)) {
|
|
12600
12726
|
logErr(
|
|
@@ -12652,8 +12778,8 @@ function makeStoreCommand() {
|
|
|
12652
12778
|
}
|
|
12653
12779
|
});
|
|
12654
12780
|
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) => {
|
|
12655
|
-
const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError: LocalCatalogDisabledError2 } = await import('../open-library-
|
|
12656
|
-
const { supportsInstallManifest: supportsInstallManifest2 } = await import('../project-
|
|
12781
|
+
const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError: LocalCatalogDisabledError2 } = await import('../open-library-K6O6OVW5.js');
|
|
12782
|
+
const { supportsInstallManifest: supportsInstallManifest2 } = await import('../project-ZWIZZIUT.js');
|
|
12657
12783
|
try {
|
|
12658
12784
|
parseAssetRef(ref);
|
|
12659
12785
|
} catch (e) {
|
|
@@ -13487,7 +13613,7 @@ program.command("init [project-dir]").description("Initialize a project director
|
|
|
13487
13613
|
(projectDir, opts) => runInit(projectDir, opts)
|
|
13488
13614
|
);
|
|
13489
13615
|
async function runInit(projectDir, opts) {
|
|
13490
|
-
const { mkdirSync:
|
|
13616
|
+
const { mkdirSync: mkdirSync5, writeFileSync: writeFileSync7 } = await import('fs');
|
|
13491
13617
|
const { stringify: stringify2 } = await import('yaml');
|
|
13492
13618
|
const { HARNESS_TARGETS: HARNESS_TARGETS2, SUPPORTED_HARNESSES: SUPPORTED_HARNESSES2, resolveConfiguredHarnessName: resolveConfiguredHarnessName2 } = await import('../core/index.js');
|
|
13493
13619
|
const harness = opts.harness ?? "claude-code";
|
|
@@ -13509,30 +13635,30 @@ async function runInit(projectDir, opts) {
|
|
|
13509
13635
|
}
|
|
13510
13636
|
const projectName = path19__default.basename(resolved);
|
|
13511
13637
|
const created = [];
|
|
13512
|
-
const { existsSync:
|
|
13513
|
-
if (!
|
|
13514
|
-
|
|
13638
|
+
const { existsSync: existsSync24 } = await import('fs');
|
|
13639
|
+
if (!existsSync24(resolved)) {
|
|
13640
|
+
mkdirSync5(resolved, { recursive: true });
|
|
13515
13641
|
created.push(".");
|
|
13516
13642
|
}
|
|
13517
13643
|
const skaileDir = path19__default.join(resolved, ".skaile");
|
|
13518
|
-
if (!
|
|
13519
|
-
|
|
13644
|
+
if (!existsSync24(skaileDir)) {
|
|
13645
|
+
mkdirSync5(path19__default.join(skaileDir, "sessions"), { recursive: true });
|
|
13520
13646
|
created.push(".skaile/");
|
|
13521
13647
|
}
|
|
13522
13648
|
const settingsPath = path19__default.join(skaileDir, "settings.json");
|
|
13523
|
-
if (!
|
|
13524
|
-
|
|
13649
|
+
if (!existsSync24(settingsPath)) {
|
|
13650
|
+
writeFileSync7(settingsPath, "{}\n");
|
|
13525
13651
|
created.push(".skaile/settings.json");
|
|
13526
13652
|
}
|
|
13527
13653
|
const wsConfigPath = path19__default.join(resolved, "skaile.yaml");
|
|
13528
|
-
if (!
|
|
13529
|
-
|
|
13654
|
+
if (!existsSync24(wsConfigPath)) {
|
|
13655
|
+
writeFileSync7(wsConfigPath, stringify2(buildInitWorkspaceConfig(projectName, harness)));
|
|
13530
13656
|
created.push("skaile.yaml");
|
|
13531
13657
|
}
|
|
13532
13658
|
for (const dir of new Set(Object.values(HARNESS_TARGETS2[harness].local))) {
|
|
13533
13659
|
const full = path19__default.join(resolved, dir);
|
|
13534
|
-
if (!
|
|
13535
|
-
|
|
13660
|
+
if (!existsSync24(full)) {
|
|
13661
|
+
mkdirSync5(full, { recursive: true });
|
|
13536
13662
|
created.push(`${dir}/`);
|
|
13537
13663
|
}
|
|
13538
13664
|
}
|
|
@@ -13560,7 +13686,7 @@ function buildInitWorkspaceConfig(projectName, harness) {
|
|
|
13560
13686
|
}
|
|
13561
13687
|
async function initGitScaffold(resolved, created) {
|
|
13562
13688
|
const { execSync: execSync2 } = await import('child_process');
|
|
13563
|
-
const { existsSync:
|
|
13689
|
+
const { existsSync: existsSync24, readFileSync: readFileSync13, writeFileSync: writeFileSync7 } = await import('fs');
|
|
13564
13690
|
const gitignorePath = path19__default.join(resolved, ".gitignore");
|
|
13565
13691
|
const entries = [
|
|
13566
13692
|
"node_modules/",
|
|
@@ -13597,16 +13723,16 @@ async function initGitScaffold(resolved, created) {
|
|
|
13597
13723
|
".env",
|
|
13598
13724
|
".env.local"
|
|
13599
13725
|
];
|
|
13600
|
-
const existing =
|
|
13726
|
+
const existing = existsSync24(gitignorePath) ? readFileSync13(gitignorePath, "utf-8") : "";
|
|
13601
13727
|
const have = new Set(existing.split("\n").map((l) => l.trim()));
|
|
13602
13728
|
const append = entries.filter((e) => !have.has(e));
|
|
13603
13729
|
if (append.length > 0) {
|
|
13604
13730
|
const prefix = existing && !existing.endsWith("\n") ? "\n" : "";
|
|
13605
|
-
|
|
13731
|
+
writeFileSync7(gitignorePath, `${existing + prefix}${append.join("\n")}
|
|
13606
13732
|
`);
|
|
13607
13733
|
if (!existing) created.push(".gitignore");
|
|
13608
13734
|
}
|
|
13609
|
-
if (!
|
|
13735
|
+
if (!existsSync24(path19__default.join(resolved, ".git"))) {
|
|
13610
13736
|
try {
|
|
13611
13737
|
execSync2("git init", { cwd: resolved, stdio: "pipe" });
|
|
13612
13738
|
created.push(".git/");
|
|
@@ -13636,7 +13762,7 @@ async function bootstrapUserConfig() {
|
|
|
13636
13762
|
}
|
|
13637
13763
|
async function hydrateInitSources(resolved, created) {
|
|
13638
13764
|
try {
|
|
13639
|
-
const { ensureSourcesCloned } = await import('../ensure-sources-
|
|
13765
|
+
const { ensureSourcesCloned } = await import('../ensure-sources-Q2TTZVLX.js');
|
|
13640
13766
|
const hydrate = ensureSourcesCloned(resolved, { quiet: true });
|
|
13641
13767
|
for (const n of hydrate.cloned) created.push(`~/.skaile/cache/sources/${n}/`);
|
|
13642
13768
|
if (hydrate.failed.length > 0) {
|
|
@@ -13677,7 +13803,7 @@ function printInitSummary(resolved, projectDir, created) {
|
|
|
13677
13803
|
}
|
|
13678
13804
|
program.hook("preAction", (_program, actionCommand) => setActiveCommand(actionCommand));
|
|
13679
13805
|
program.command("setup").description("Interactive provider setup wizard").action(async () => {
|
|
13680
|
-
const { cmdSetup } = await import('../setup-
|
|
13806
|
+
const { cmdSetup } = await import('../setup-V4EXOMVQ.js');
|
|
13681
13807
|
await cmdSetup([], { projectDir: process.cwd() });
|
|
13682
13808
|
});
|
|
13683
13809
|
program.addCommand(makeInstallCommand());
|
|
@@ -13758,7 +13884,7 @@ program.hook("postAction", async (_thisCommand, actionCommand) => {
|
|
|
13758
13884
|
const opts = actionCommand.opts();
|
|
13759
13885
|
if (opts.global || opts.dryRun) return;
|
|
13760
13886
|
const projectDir = path19__default.resolve(opts.projectDir ?? process.cwd());
|
|
13761
|
-
const { refreshPluginSkills } = await import('../claude-code-
|
|
13887
|
+
const { refreshPluginSkills } = await import('../claude-code-TDMSETH6.js');
|
|
13762
13888
|
try {
|
|
13763
13889
|
if (await refreshPluginSkills(projectDir)) {
|
|
13764
13890
|
logInfo(`Updated ${S.cmd(".claude/plugins/skaile/skills")} (the --full plugin copy)`);
|