@skaile/workspaces 0.25.0 → 0.27.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 +271 -0
- package/README.md +2 -2
- package/dist/{asset-feeds-77KLWCBP.js → asset-feeds-DGZO27M7.js} +20 -12
- package/dist/asset-feeds-DGZO27M7.js.map +1 -0
- package/dist/asset-manager/index.js +12 -11
- package/dist/asset-manager/installer.js +11 -10
- package/dist/asset-manager/renderers.js +2 -2
- package/dist/asset-manager/src/index.d.ts +6 -7
- package/dist/asset-manager/src/index.d.ts.map +1 -1
- package/dist/asset-manager/src/installer.d.ts.map +1 -1
- package/dist/bridge/drivers/claude-sdk.js +14 -7
- package/dist/bridge/drivers/claude-sdk.js.map +1 -1
- package/dist/bridge/drivers/codex.js +8 -34
- package/dist/bridge/drivers/codex.js.map +1 -1
- package/dist/bridge/drivers/continue.d.ts +2 -0
- package/dist/bridge/drivers/continue.js +103 -0
- package/dist/bridge/drivers/continue.js.map +1 -0
- package/dist/bridge/drivers/echo.js +1 -1
- package/dist/bridge/drivers/gemini.d.ts +2 -0
- package/dist/bridge/drivers/gemini.js +10 -0
- package/dist/bridge/drivers/gemini.js.map +1 -0
- package/dist/bridge/drivers/goose.d.ts +2 -0
- package/dist/bridge/drivers/goose.js +88 -0
- package/dist/bridge/drivers/goose.js.map +1 -0
- package/dist/bridge/drivers/omp.js +64 -50
- package/dist/bridge/drivers/omp.js.map +1 -1
- package/dist/bridge/drivers/opencode.d.ts +2 -0
- package/dist/bridge/drivers/opencode.js +99 -0
- package/dist/bridge/drivers/opencode.js.map +1 -0
- package/dist/bridge/drivers/qwen.d.ts +2 -0
- package/dist/bridge/drivers/qwen.js +57 -0
- package/dist/bridge/drivers/qwen.js.map +1 -0
- package/dist/bridge/index.js +4 -4
- package/dist/bridge/src/drivers/_subprocess-cli.d.ts +136 -0
- package/dist/bridge/src/drivers/_subprocess-cli.d.ts.map +1 -0
- package/dist/bridge/src/drivers/claude-sdk.d.ts.map +1 -1
- package/dist/bridge/src/drivers/codex.d.ts.map +1 -1
- package/dist/bridge/src/drivers/continue.d.ts +43 -0
- package/dist/bridge/src/drivers/continue.d.ts.map +1 -0
- package/dist/bridge/src/drivers/gemini.d.ts +55 -0
- package/dist/bridge/src/drivers/gemini.d.ts.map +1 -0
- package/dist/bridge/src/drivers/goose.d.ts +42 -0
- package/dist/bridge/src/drivers/goose.d.ts.map +1 -0
- package/dist/bridge/src/drivers/omp.d.ts +20 -4
- package/dist/bridge/src/drivers/omp.d.ts.map +1 -1
- package/dist/bridge/src/drivers/opencode.d.ts +43 -0
- package/dist/bridge/src/drivers/opencode.d.ts.map +1 -0
- package/dist/bridge/src/drivers/qwen.d.ts +39 -0
- package/dist/bridge/src/drivers/qwen.d.ts.map +1 -0
- package/dist/bridge/src/error-classifier.d.ts +17 -0
- package/dist/bridge/src/error-classifier.d.ts.map +1 -1
- package/dist/bridge/src/models.d.ts +1 -1
- package/dist/bridge/src/models.d.ts.map +1 -1
- package/dist/bridge/src/provider-endpoints.d.ts +16 -0
- package/dist/bridge/src/provider-endpoints.d.ts.map +1 -0
- package/dist/bridge/src/registry.d.ts.map +1 -1
- package/dist/bridge/src/validation.d.ts +1 -1
- package/dist/bridge/src/validation.d.ts.map +1 -1
- package/dist/{chunk-GL45UNVS.js → chunk-2FS4FPZ7.js} +3 -3
- package/dist/{chunk-GL45UNVS.js.map → chunk-2FS4FPZ7.js.map} +1 -1
- package/dist/{chunk-4FJE6BI6.js → chunk-2NOE4AGD.js} +3 -3
- package/dist/{chunk-4FJE6BI6.js.map → chunk-2NOE4AGD.js.map} +1 -1
- package/dist/{chunk-3QTZWPGH.js → chunk-3QQSSRYN.js} +168 -90
- package/dist/chunk-3QQSSRYN.js.map +1 -0
- package/dist/{chunk-4FADEVBN.js → chunk-3ZER5DST.js} +6 -6
- package/dist/chunk-3ZER5DST.js.map +1 -0
- package/dist/chunk-5RBPPBEK.js +110 -0
- package/dist/chunk-5RBPPBEK.js.map +1 -0
- package/dist/chunk-5V5KZQIC.js +445 -0
- package/dist/chunk-5V5KZQIC.js.map +1 -0
- package/dist/{chunk-LSGAYQ2E.js → chunk-5YO3H5Q4.js} +3 -3
- package/dist/{chunk-LSGAYQ2E.js.map → chunk-5YO3H5Q4.js.map} +1 -1
- package/dist/{chunk-JDX54X4Y.js → chunk-7GWYRVAX.js} +12 -9
- package/dist/chunk-7GWYRVAX.js.map +1 -0
- package/dist/{chunk-B4ZXBH57.js → chunk-A4ASAIKK.js} +59 -13
- package/dist/chunk-A4ASAIKK.js.map +1 -0
- package/dist/{chunk-M5TE6YI5.js → chunk-AKSR434V.js} +10 -52
- package/dist/chunk-AKSR434V.js.map +1 -0
- package/dist/{chunk-KOVLSBXK.js → chunk-BMQKMOQY.js} +81 -79
- package/dist/chunk-BMQKMOQY.js.map +1 -0
- package/dist/{chunk-FJFHJBGS.js → chunk-BUL5H6J7.js} +9 -9
- package/dist/chunk-BUL5H6J7.js.map +1 -0
- package/dist/{chunk-GZWJGNNN.js → chunk-DEYYRFQU.js} +3 -3
- package/dist/chunk-DEYYRFQU.js.map +1 -0
- package/dist/{chunk-SETTLPBD.js → chunk-DGM74UP4.js} +3 -3
- package/dist/{chunk-SETTLPBD.js.map → chunk-DGM74UP4.js.map} +1 -1
- package/dist/{chunk-UD4ZLXGS.js → chunk-FWHOU3CX.js} +67 -35
- package/dist/chunk-FWHOU3CX.js.map +1 -0
- package/dist/{chunk-WSZAFRQL.js → chunk-GYPA2Q7F.js} +6 -5
- package/dist/chunk-GYPA2Q7F.js.map +1 -0
- package/dist/{chunk-WIAHJOMG.js → chunk-IEJ5IOC3.js} +10 -2
- package/dist/chunk-IEJ5IOC3.js.map +1 -0
- package/dist/chunk-IERB3UXJ.js +215 -0
- package/dist/chunk-IERB3UXJ.js.map +1 -0
- package/dist/{chunk-FVTV7M76.js → chunk-IFGTRL2I.js} +3 -3
- package/dist/chunk-IFGTRL2I.js.map +1 -0
- package/dist/{chunk-KT3CK26V.js → chunk-JIQLLZ65.js} +203 -39
- package/dist/chunk-JIQLLZ65.js.map +1 -0
- package/dist/{chunk-XVL22AWE.js → chunk-M4KLIEIJ.js} +114 -63
- package/dist/chunk-M4KLIEIJ.js.map +1 -0
- package/dist/{chunk-6FNCZYJY.js → chunk-MBOR7D65.js} +3 -3
- package/dist/{chunk-6FNCZYJY.js.map → chunk-MBOR7D65.js.map} +1 -1
- package/dist/{chunk-BJWUSHC4.js → chunk-MZDXEFXF.js} +30 -20
- package/dist/chunk-MZDXEFXF.js.map +1 -0
- package/dist/{chunk-QAVZOJCV.js → chunk-OVRSNIKJ.js} +2 -2
- package/dist/chunk-OVRSNIKJ.js.map +1 -0
- package/dist/{chunk-DQWREFRQ.js → chunk-PAYAFNXG.js} +22 -3
- package/dist/chunk-PAYAFNXG.js.map +1 -0
- package/dist/{chunk-D3VO6WNC.js → chunk-PRLD7EXG.js} +3 -3
- package/dist/chunk-PRLD7EXG.js.map +1 -0
- package/dist/{chunk-NELZIQ2E.js → chunk-QDJKE557.js} +20 -3
- package/dist/chunk-QDJKE557.js.map +1 -0
- package/dist/{chunk-QXC62DOF.js → chunk-SF4GWVR5.js} +21 -9
- package/dist/chunk-SF4GWVR5.js.map +1 -0
- package/dist/{chunk-IPUYL6TD.js → chunk-TV72ZJYN.js} +8 -5
- package/dist/{chunk-IPUYL6TD.js.map → chunk-TV72ZJYN.js.map} +1 -1
- package/dist/{chunk-4QVFQEY2.js → chunk-UAW7VRAL.js} +2 -2
- package/dist/{chunk-4QVFQEY2.js.map → chunk-UAW7VRAL.js.map} +1 -1
- package/dist/chunk-UBCZVONU.js +28 -0
- package/dist/chunk-UBCZVONU.js.map +1 -0
- package/dist/{chunk-2XY6732A.js → chunk-UIZKIUC6.js} +6 -6
- package/dist/chunk-UIZKIUC6.js.map +1 -0
- package/dist/{chunk-ICS76R4T.js → chunk-W7W66MDZ.js} +10 -8
- package/dist/chunk-W7W66MDZ.js.map +1 -0
- package/dist/{chunk-DCAWIRD6.js → chunk-WRRYESHC.js} +152 -187
- package/dist/chunk-WRRYESHC.js.map +1 -0
- package/dist/{chunk-XMP6XTMF.js → chunk-XHBPQ7QP.js} +450 -207
- package/dist/chunk-XHBPQ7QP.js.map +1 -0
- package/dist/chunk-Z3XXKR5E.js +88 -0
- package/dist/chunk-Z3XXKR5E.js.map +1 -0
- package/dist/{chunk-KLNL7QHN.js → chunk-ZAP2BDHG.js} +30 -5
- package/dist/chunk-ZAP2BDHG.js.map +1 -0
- package/dist/{chunk-6VTG73UY.js → chunk-ZEKWHJBB.js} +52 -2
- package/dist/chunk-ZEKWHJBB.js.map +1 -0
- package/dist/{chunk-GCJXPUHG.js → chunk-ZONCCO5N.js} +9 -4
- package/dist/chunk-ZONCCO5N.js.map +1 -0
- package/dist/cli/index.js +618 -482
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/src/asset-feeds.d.ts +14 -1
- package/dist/cli/src/asset-feeds.d.ts.map +1 -1
- package/dist/cli/src/commands/complete-resolvers.d.ts.map +1 -1
- package/dist/cli/src/commands/config.d.ts.map +1 -1
- package/dist/cli/src/commands/connector.d.ts +7 -0
- package/dist/cli/src/commands/connector.d.ts.map +1 -1
- package/dist/cli/src/commands/flow.d.ts +3 -2
- package/dist/cli/src/commands/flow.d.ts.map +1 -1
- package/dist/cli/src/commands/manage.d.ts +46 -23
- package/dist/cli/src/commands/manage.d.ts.map +1 -1
- package/dist/cli/src/commands/npx.d.ts.map +1 -1
- package/dist/cli/src/commands/run.d.ts.map +1 -1
- package/dist/cli/src/flow-discovery.d.ts +24 -0
- package/dist/cli/src/flow-discovery.d.ts.map +1 -0
- package/dist/cli/src/helpers.d.ts +10 -1
- package/dist/cli/src/helpers.d.ts.map +1 -1
- package/dist/cli/src/open-registry.d.ts +2 -2
- package/dist/cli/src/paths.d.ts +26 -9
- package/dist/cli/src/paths.d.ts.map +1 -1
- package/dist/cli/src/skill-walker.d.ts +9 -5
- package/dist/cli/src/skill-walker.d.ts.map +1 -1
- package/dist/connectors/config.js +9 -8
- package/dist/connectors/index.js +14 -13
- package/dist/connectors/rclone-config.js +1 -1
- package/dist/connectors/src/connector-manager.d.ts +24 -2
- package/dist/connectors/src/connector-manager.d.ts.map +1 -1
- package/dist/connectors/src/connector-prompt.d.ts.map +1 -1
- package/dist/connectors/src/connector-registry.d.ts +3 -3
- package/dist/connectors/src/credential-helper-script.d.ts.map +1 -1
- package/dist/connectors/src/index.d.ts +4 -2
- package/dist/connectors/src/index.d.ts.map +1 -1
- package/dist/connectors/src/managed-gitconfig.d.ts.map +1 -1
- package/dist/connectors/src/mount-placeholder.d.ts +68 -0
- package/dist/connectors/src/mount-placeholder.d.ts.map +1 -0
- package/dist/connectors/src/rclone-config/googledrive.d.ts +1 -1
- package/dist/core/discovery.js +1 -1
- package/dist/core/index.js +8 -7
- package/dist/core/manifest.js +2 -2
- package/dist/core/models.js +1 -1
- package/dist/core/publish-manifest.d.ts +2 -0
- package/dist/core/publish-manifest.js +5 -0
- package/dist/core/publish-manifest.js.map +1 -0
- package/dist/core/runtime-assets.js +5 -4
- package/dist/core/src/discovery.d.ts +27 -0
- package/dist/core/src/discovery.d.ts.map +1 -1
- package/dist/core/src/index.d.ts +8 -5
- package/dist/core/src/index.d.ts.map +1 -1
- package/dist/core/src/lock.d.ts.map +1 -1
- package/dist/core/src/manifest-yaml-editor.d.ts +62 -0
- package/dist/core/src/manifest-yaml-editor.d.ts.map +1 -0
- package/dist/core/src/models.d.ts +6 -0
- package/dist/core/src/models.d.ts.map +1 -1
- package/dist/core/src/publish-manifest.d.ts +160 -0
- package/dist/core/src/publish-manifest.d.ts.map +1 -0
- package/dist/core/src/repo-manager.d.ts +9 -1
- package/dist/core/src/repo-manager.d.ts.map +1 -1
- package/dist/core/src/runtime-assets.d.ts +80 -29
- package/dist/core/src/runtime-assets.d.ts.map +1 -1
- package/dist/core/src/walker.d.ts +19 -6
- package/dist/core/src/walker.d.ts.map +1 -1
- package/dist/core/src/workspace-config.d.ts +19 -37
- package/dist/core/src/workspace-config.d.ts.map +1 -1
- package/dist/core/src/workspace-yaml-editor.d.ts +1 -15
- package/dist/core/src/workspace-yaml-editor.d.ts.map +1 -1
- package/dist/core/workspace-config.js +4 -3
- package/dist/deploy/index.js +51 -80
- package/dist/deploy/index.js.map +1 -1
- package/dist/deploy/src/targets/container-runtime.d.ts +1 -1
- package/dist/deploy/src/targets/container-runtime.d.ts.map +1 -1
- package/dist/deploy/src/targets/local.d.ts.map +1 -1
- package/dist/deploy/src/targets/nix.d.ts.map +1 -1
- package/dist/deploy/src/targets/process-handle.d.ts +7 -5
- package/dist/deploy/src/targets/process-handle.d.ts.map +1 -1
- package/dist/discovery/index.js +5 -4
- package/dist/discovery/src/discover-manifest.d.ts +3 -2
- package/dist/discovery/src/discover-manifest.d.ts.map +1 -1
- package/dist/discovery/src/discover.d.ts +2 -2
- package/dist/discovery/src/discover.d.ts.map +1 -1
- package/dist/discovery/src/index.d.ts +1 -1
- package/dist/discovery/src/index.d.ts.map +1 -1
- package/dist/discovery/src/source-config.d.ts +53 -12
- package/dist/discovery/src/source-config.d.ts.map +1 -1
- package/dist/discovery/src/tree-entries.d.ts +2 -2
- package/dist/discovery/src/tree-entries.d.ts.map +1 -1
- package/dist/{ensure-sources-7MOOKY3K.js → ensure-sources-KQQEUDKM.js} +15 -13
- package/dist/ensure-sources-KQQEUDKM.js.map +1 -0
- package/dist/factory-assets/.skaile-source.yaml +6 -0
- package/dist/factory-assets/README.md +36 -0
- package/dist/factory-assets/bundles/workspaces-authoring/workspaces-authoring.bundle.yaml +9 -0
- package/dist/factory-assets/connectors/deploy/CONNECTOR.md +41 -0
- package/dist/{base-assets → factory-assets}/connectors/deploy/adapter.d.ts +2 -2
- package/dist/factory-assets/connectors/deploy/adapter.d.ts.map +1 -0
- package/dist/factory-assets/connectors/deploy.js +22 -0
- package/dist/factory-assets/connectors/devserver/CONNECTOR.md +44 -0
- package/dist/{base-assets → factory-assets}/connectors/devserver/adapter.d.ts +2 -2
- package/dist/factory-assets/connectors/devserver/adapter.d.ts.map +1 -0
- package/dist/factory-assets/connectors/devserver.js +22 -0
- package/dist/factory-assets/connectors/flow/CONNECTOR.md +47 -0
- package/dist/{base-assets → factory-assets}/connectors/flow/adapter.d.ts +2 -2
- package/dist/factory-assets/connectors/flow/adapter.d.ts.map +1 -0
- package/dist/factory-assets/connectors/flow/adapter.js +22 -0
- package/dist/factory-assets/connectors/flow/engine/engine.d.ts.map +1 -0
- package/dist/{base-assets → factory-assets}/connectors/flow/engine/flow-kind-provider.d.ts +1 -1
- package/dist/factory-assets/connectors/flow/engine/flow-kind-provider.d.ts.map +1 -0
- package/dist/factory-assets/connectors/flow/engine/flow-manifest.d.ts.map +1 -0
- package/dist/factory-assets/connectors/flow/engine/index.d.ts.map +1 -0
- package/dist/factory-assets/connectors/flow/engine/loader.d.ts.map +1 -0
- package/dist/factory-assets/connectors/flow/engine/types.d.ts.map +1 -0
- package/dist/factory-assets/connectors/flow/engine.js +15 -0
- package/dist/factory-assets/connectors/flow/index.d.ts.map +1 -0
- package/dist/{base-assets → factory-assets}/connectors/flow/prompt-fragments.d.ts +5 -5
- package/dist/factory-assets/connectors/flow/prompt-fragments.d.ts.map +1 -0
- package/dist/{base-assets → factory-assets}/connectors/flow/prompt-fragments.js +1 -1
- package/dist/{base-assets → factory-assets}/connectors/flow/run-flow.d.ts +8 -8
- package/dist/factory-assets/connectors/flow/run-flow.d.ts.map +1 -0
- package/dist/factory-assets/connectors/flow/run-flow.js +25 -0
- package/dist/{base-assets → factory-assets}/connectors/flow/stimulus-driver.d.ts +2 -2
- package/dist/factory-assets/connectors/flow/stimulus-driver.d.ts.map +1 -0
- package/dist/factory-assets/connectors/flow/stimulus-driver.js +4 -0
- package/dist/factory-assets/connectors/flow.js +22 -0
- package/dist/factory-assets/connectors/git/CONNECTOR.md +145 -0
- package/dist/{base-assets → factory-assets}/connectors/git/driver.d.ts +2 -2
- package/dist/factory-assets/connectors/git/driver.d.ts.map +1 -0
- package/dist/factory-assets/connectors/git.js +22 -0
- package/dist/factory-assets/connectors/gmail/CONNECTOR.md +50 -0
- package/dist/{base-assets → factory-assets}/connectors/gmail/adapter.d.ts +2 -2
- package/dist/factory-assets/connectors/gmail/adapter.d.ts.map +1 -0
- package/dist/factory-assets/connectors/gmail.js +22 -0
- package/dist/factory-assets/connectors/googledrive/CONNECTOR.md +150 -0
- package/dist/{base-assets → factory-assets}/connectors/googledrive/driver.d.ts +2 -2
- package/dist/factory-assets/connectors/googledrive/driver.d.ts.map +1 -0
- package/dist/factory-assets/connectors/googledrive.js +22 -0
- package/dist/factory-assets/connectors/local/CONNECTOR.md +40 -0
- package/dist/{base-assets → factory-assets}/connectors/local/driver.d.ts +2 -2
- package/dist/factory-assets/connectors/local/driver.d.ts.map +1 -0
- package/dist/factory-assets/connectors/local.js +22 -0
- package/dist/factory-assets/connectors/mattermost/CONNECTOR.md +65 -0
- package/dist/{base-assets → factory-assets}/connectors/mattermost/adapter.d.ts +2 -2
- package/dist/factory-assets/connectors/mattermost/adapter.d.ts.map +1 -0
- package/dist/factory-assets/connectors/mattermost.js +22 -0
- package/dist/factory-assets/connectors/memory/CONNECTOR.md +40 -0
- package/dist/{base-assets → factory-assets}/connectors/memory/adapter.d.ts +2 -2
- package/dist/factory-assets/connectors/memory/adapter.d.ts.map +1 -0
- package/dist/factory-assets/connectors/memory.js +22 -0
- package/dist/factory-assets/connectors/minio/CONNECTOR.md +68 -0
- package/dist/{base-assets → factory-assets}/connectors/minio/adapter.d.ts +2 -2
- package/dist/factory-assets/connectors/minio/adapter.d.ts.map +1 -0
- package/dist/factory-assets/connectors/minio.js +22 -0
- package/dist/factory-assets/connectors/postgres/CONNECTOR.md +46 -0
- package/dist/{base-assets → factory-assets}/connectors/postgres/adapter.d.ts +2 -2
- package/dist/factory-assets/connectors/postgres/adapter.d.ts.map +1 -0
- package/dist/factory-assets/connectors/postgres.js +22 -0
- package/dist/factory-assets/connectors/s3/CONNECTOR.md +76 -0
- package/dist/{base-assets → factory-assets}/connectors/s3/driver.d.ts +2 -2
- package/dist/factory-assets/connectors/s3/driver.d.ts.map +1 -0
- package/dist/factory-assets/connectors/s3.js +22 -0
- package/dist/factory-assets/connectors/sharepoint/CONNECTOR.md +181 -0
- package/dist/{base-assets → factory-assets}/connectors/sharepoint/driver.d.ts +2 -2
- package/dist/factory-assets/connectors/sharepoint/driver.d.ts.map +1 -0
- package/dist/factory-assets/connectors/sharepoint.js +22 -0
- package/dist/factory-assets/connectors/sqlite/CONNECTOR.md +44 -0
- package/dist/{base-assets → factory-assets}/connectors/sqlite/adapter.d.ts +2 -2
- package/dist/factory-assets/connectors/sqlite/adapter.d.ts.map +1 -0
- package/dist/factory-assets/connectors/sqlite.js +22 -0
- package/dist/factory-assets/connectors/static-server/CONNECTOR.md +41 -0
- package/dist/{base-assets → factory-assets}/connectors/static-server/adapter.d.ts +2 -2
- package/dist/factory-assets/connectors/static-server/adapter.d.ts.map +1 -0
- package/dist/factory-assets/connectors/static-server.js +22 -0
- package/dist/factory-assets/connectors/tunnel/CONNECTOR.md +40 -0
- package/dist/{base-assets → factory-assets}/connectors/tunnel/adapter.d.ts +2 -2
- package/dist/factory-assets/connectors/tunnel/adapter.d.ts.map +1 -0
- package/dist/factory-assets/connectors/tunnel.js +22 -0
- package/dist/factory-assets/connectors/webdav/CONNECTOR.md +139 -0
- package/dist/{base-assets → factory-assets}/connectors/webdav/driver.d.ts +2 -2
- package/dist/factory-assets/connectors/webdav/driver.d.ts.map +1 -0
- package/dist/factory-assets/connectors/webdav.js +22 -0
- package/dist/factory-assets/connectors/xstate/CONNECTOR.md +57 -0
- package/dist/{base-assets → factory-assets}/connectors/xstate/adapter.d.ts +2 -2
- package/dist/factory-assets/connectors/xstate/adapter.d.ts.map +1 -0
- package/dist/factory-assets/connectors/xstate-store/CONNECTOR.md +48 -0
- package/dist/{base-assets → factory-assets}/connectors/xstate-store/adapter.d.ts +2 -2
- package/dist/factory-assets/connectors/xstate-store/adapter.d.ts.map +1 -0
- package/dist/factory-assets/connectors/xstate-store.js +22 -0
- package/dist/factory-assets/connectors/xstate.js +22 -0
- package/dist/{base-assets → factory-assets}/index.d.ts +1 -1
- package/dist/factory-assets/index.d.ts.map +1 -0
- package/dist/{base-assets → factory-assets}/index.js +1 -1
- package/dist/factory-assets/index.js.map +1 -0
- package/dist/factory-assets/skaile.manifest.yaml +25 -0
- package/dist/factory-assets/skills/authoring-skaile-assets/SKILL.md +176 -0
- package/dist/factory-assets/skills/authoring-skaile-manifests/SKILL.md +243 -0
- package/dist/factory-assets/skills/authoring-skaile-manifests/references/dependency-standard.md +197 -0
- package/dist/factory-assets/skills/manifest-compliance/SKILL.md +140 -0
- package/dist/factory-assets/skills/skaile-author-asset/SKILL.md +239 -0
- package/dist/factory-assets/skills/skaile-manage-workspace/SKILL.md +168 -0
- package/dist/{flows-DYFTPCPM.js → flows-L3GHQD7F.js} +4 -4
- package/dist/{flows-DYFTPCPM.js.map → flows-L3GHQD7F.js.map} +1 -1
- package/dist/helpers-F4NZ66VD.js +4 -0
- package/dist/{helpers-LTN3HMD3.js.map → helpers-F4NZ66VD.js.map} +1 -1
- package/dist/library/index.js +12 -10
- package/dist/library/install.d.ts +2 -0
- package/dist/library/install.js +16 -0
- package/dist/library/install.js.map +1 -0
- package/dist/library/src/install/index.d.ts +3 -0
- package/dist/library/src/install/index.d.ts.map +1 -0
- package/dist/library/src/library.d.ts +2 -0
- package/dist/library/src/library.d.ts.map +1 -1
- package/dist/library/src/local/library.d.ts +2 -0
- package/dist/library/src/local/library.d.ts.map +1 -1
- package/dist/library/src/local/local-catalog-source.d.ts +2 -1
- package/dist/library/src/local/local-catalog-source.d.ts.map +1 -1
- package/dist/library/src/local/sidecar-paths.d.ts +4 -4
- package/dist/library/src/local/sidecar-paths.d.ts.map +1 -1
- package/dist/library/src/local/store-paths.d.ts +4 -3
- package/dist/library/src/local/store-paths.d.ts.map +1 -1
- package/dist/library/src/pin-resolver.d.ts.map +1 -1
- package/dist/library/src/preset/apply.d.ts.map +1 -1
- package/dist/library/src/preset/placeholders.d.ts.map +1 -1
- package/dist/library/src/remote/remote-catalog-source.d.ts +7 -0
- package/dist/library/src/remote/remote-catalog-source.d.ts.map +1 -1
- package/dist/library/src/remote/rest-catalog-source.d.ts +7 -0
- package/dist/library/src/remote/rest-catalog-source.d.ts.map +1 -1
- package/dist/library/src/sync/manifest-writeback.d.ts +1 -1
- package/dist/library/src/sync/manifest-writeback.d.ts.map +1 -1
- package/dist/open-library-I7YTADMD.js +23 -0
- package/dist/{open-library-GW7DWWNZ.js.map → open-library-I7YTADMD.js.map} +1 -1
- package/dist/paths-CE66L3AL.js +15 -0
- package/dist/{paths-FKKGS6BA.js.map → paths-CE66L3AL.js.map} +1 -1
- package/dist/{plugin-store-R32NH7JE.js → plugin-store-GL5VKYUA.js} +10 -9
- package/dist/plugin-store-GL5VKYUA.js.map +1 -0
- package/dist/plugins/src/asset-kind-provider.d.ts +1 -1
- package/dist/plugins/src/catalog-source.d.ts +13 -0
- package/dist/plugins/src/catalog-source.d.ts.map +1 -1
- package/dist/resolver/index.js +1 -1
- package/dist/resolver/src/parser.d.ts.map +1 -1
- package/dist/runner/index.js +20 -19
- package/dist/runner/src/capability-registry.d.ts +1 -1
- package/dist/runner/src/capability-registry.d.ts.map +1 -1
- package/dist/runner/src/resource-handler.d.ts.map +1 -1
- package/dist/runner/src/resources.d.ts +1 -1
- package/dist/runner/src/serve.d.ts.map +1 -1
- package/dist/runner/src/workspace-migration.d.ts.map +1 -1
- package/dist/sdk/asset-manager.js +12 -11
- package/dist/sdk/bridge.js +4 -4
- package/dist/sdk/core.js +8 -7
- package/dist/sdk/flow.js +12 -1
- package/dist/sdk/index.js +23 -22
- package/dist/sdk/index.js.map +1 -1
- package/dist/sdk/resolver.js +1 -1
- package/dist/sdk/runner.js +20 -19
- package/dist/sdk/session.js +1 -1
- package/dist/sdk/src/flow/index.d.ts +1 -1
- package/dist/sdk/src/flow/index.d.ts.map +1 -1
- package/dist/sdk/src/workspace.d.ts +3 -2
- package/dist/sdk/src/workspace.d.ts.map +1 -1
- package/dist/sdk/telemetry.js +1 -1
- package/dist/secrets/index.js +1 -1
- package/dist/secrets/src/providers/env.d.ts.map +1 -1
- package/dist/secrets/src/providers/local.d.ts.map +1 -1
- package/dist/session/index.js +1 -1
- package/dist/session/src/mentions.d.ts.map +1 -1
- package/dist/{setup-SRPBQOHY.js → setup-4YMN2BDU.js} +14 -13
- package/dist/setup-4YMN2BDU.js.map +1 -0
- package/dist/skills-6HJ3WINN.js +7 -0
- package/dist/{skills-CRL3VJNN.js.map → skills-6HJ3WINN.js.map} +1 -1
- package/dist/store-client-BCP5LCAZ.js +15 -0
- package/dist/{store-client-INZD2RYD.js.map → store-client-BCP5LCAZ.js.map} +1 -1
- package/dist/telemetry/index.js +1 -1
- package/dist/telemetry/src/config.d.ts +0 -16
- package/dist/telemetry/src/config.d.ts.map +1 -1
- package/dist/tui/index.js +20 -19
- package/dist/tui/index.js.map +1 -1
- package/dist/types/manifests.js +1 -1
- package/dist/types/src/flow.d.ts +2 -2
- package/dist/types/src/manifests/index.d.ts +1 -1
- package/dist/types/src/manifests/skill.d.ts +21 -0
- package/dist/types/src/manifests/skill.d.ts.map +1 -1
- package/dist/workspace-plugin/adapters/mcp.js +4 -4
- package/dist/workspace-plugin/adapters/omp.js +7 -7
- package/dist/workspace-plugin/index.js +1 -1
- package/dist/workspace-plugin/src/tools/flows.d.ts.map +1 -1
- package/package.json +194 -151
- package/dist/asset-feeds-77KLWCBP.js.map +0 -1
- package/dist/base-assets/connectors/deploy/adapter.d.ts.map +0 -1
- package/dist/base-assets/connectors/deploy.js +0 -21
- package/dist/base-assets/connectors/devserver/adapter.d.ts.map +0 -1
- package/dist/base-assets/connectors/devserver.js +0 -21
- package/dist/base-assets/connectors/flow/adapter.d.ts.map +0 -1
- package/dist/base-assets/connectors/flow/adapter.js +0 -21
- package/dist/base-assets/connectors/flow/engine/engine.d.ts.map +0 -1
- package/dist/base-assets/connectors/flow/engine/flow-kind-provider.d.ts.map +0 -1
- package/dist/base-assets/connectors/flow/engine/flow-manifest.d.ts.map +0 -1
- package/dist/base-assets/connectors/flow/engine/index.d.ts.map +0 -1
- package/dist/base-assets/connectors/flow/engine/loader.d.ts.map +0 -1
- package/dist/base-assets/connectors/flow/engine/types.d.ts.map +0 -1
- package/dist/base-assets/connectors/flow/engine.js +0 -4
- package/dist/base-assets/connectors/flow/index.d.ts.map +0 -1
- package/dist/base-assets/connectors/flow/prompt-fragments.d.ts.map +0 -1
- package/dist/base-assets/connectors/flow/run-flow.d.ts.map +0 -1
- package/dist/base-assets/connectors/flow/run-flow.js +0 -24
- package/dist/base-assets/connectors/flow/stimulus-driver.d.ts.map +0 -1
- package/dist/base-assets/connectors/flow/stimulus-driver.js +0 -4
- package/dist/base-assets/connectors/flow.js +0 -21
- package/dist/base-assets/connectors/git/driver.d.ts.map +0 -1
- package/dist/base-assets/connectors/git.js +0 -21
- package/dist/base-assets/connectors/gmail/adapter.d.ts.map +0 -1
- package/dist/base-assets/connectors/gmail.js +0 -21
- package/dist/base-assets/connectors/googledrive/driver.d.ts.map +0 -1
- package/dist/base-assets/connectors/googledrive.js +0 -21
- package/dist/base-assets/connectors/local/driver.d.ts.map +0 -1
- package/dist/base-assets/connectors/local.js +0 -21
- package/dist/base-assets/connectors/mattermost/adapter.d.ts.map +0 -1
- package/dist/base-assets/connectors/mattermost.js +0 -21
- package/dist/base-assets/connectors/memory/adapter.d.ts.map +0 -1
- package/dist/base-assets/connectors/memory.js +0 -21
- package/dist/base-assets/connectors/minio/adapter.d.ts.map +0 -1
- package/dist/base-assets/connectors/minio.js +0 -21
- package/dist/base-assets/connectors/postgres/adapter.d.ts.map +0 -1
- package/dist/base-assets/connectors/postgres.js +0 -21
- package/dist/base-assets/connectors/s3/driver.d.ts.map +0 -1
- package/dist/base-assets/connectors/s3.js +0 -21
- package/dist/base-assets/connectors/sharepoint/driver.d.ts.map +0 -1
- package/dist/base-assets/connectors/sharepoint.js +0 -21
- package/dist/base-assets/connectors/sqlite/adapter.d.ts.map +0 -1
- package/dist/base-assets/connectors/sqlite.js +0 -21
- package/dist/base-assets/connectors/static-server/adapter.d.ts.map +0 -1
- package/dist/base-assets/connectors/static-server.js +0 -21
- package/dist/base-assets/connectors/tunnel/adapter.d.ts.map +0 -1
- package/dist/base-assets/connectors/tunnel.js +0 -21
- package/dist/base-assets/connectors/webdav/driver.d.ts.map +0 -1
- package/dist/base-assets/connectors/webdav.js +0 -21
- package/dist/base-assets/connectors/xstate/adapter.d.ts.map +0 -1
- package/dist/base-assets/connectors/xstate-store/adapter.d.ts.map +0 -1
- package/dist/base-assets/connectors/xstate-store.js +0 -21
- package/dist/base-assets/connectors/xstate.js +0 -21
- package/dist/base-assets/index.d.ts.map +0 -1
- package/dist/base-assets/index.js.map +0 -1
- package/dist/chunk-2M3XTMOL.js +0 -23
- package/dist/chunk-2M3XTMOL.js.map +0 -1
- package/dist/chunk-2XY6732A.js.map +0 -1
- package/dist/chunk-3QTZWPGH.js.map +0 -1
- package/dist/chunk-4FADEVBN.js.map +0 -1
- package/dist/chunk-6VTG73UY.js.map +0 -1
- package/dist/chunk-B4ZXBH57.js.map +0 -1
- package/dist/chunk-BJWUSHC4.js.map +0 -1
- package/dist/chunk-D3VO6WNC.js.map +0 -1
- package/dist/chunk-DCAWIRD6.js.map +0 -1
- package/dist/chunk-DQWREFRQ.js.map +0 -1
- package/dist/chunk-FJFHJBGS.js.map +0 -1
- package/dist/chunk-FVTV7M76.js.map +0 -1
- package/dist/chunk-GCJXPUHG.js.map +0 -1
- package/dist/chunk-GZWJGNNN.js.map +0 -1
- package/dist/chunk-ICS76R4T.js.map +0 -1
- package/dist/chunk-JDX54X4Y.js.map +0 -1
- package/dist/chunk-KLNL7QHN.js.map +0 -1
- package/dist/chunk-KOVLSBXK.js.map +0 -1
- package/dist/chunk-KT3CK26V.js.map +0 -1
- package/dist/chunk-M5TE6YI5.js.map +0 -1
- package/dist/chunk-NELZIQ2E.js.map +0 -1
- package/dist/chunk-QAVZOJCV.js.map +0 -1
- package/dist/chunk-QXC62DOF.js.map +0 -1
- package/dist/chunk-UD4ZLXGS.js.map +0 -1
- package/dist/chunk-WIAHJOMG.js.map +0 -1
- package/dist/chunk-WSZAFRQL.js.map +0 -1
- package/dist/chunk-XMP6XTMF.js.map +0 -1
- package/dist/chunk-XVL22AWE.js.map +0 -1
- package/dist/ensure-sources-7MOOKY3K.js.map +0 -1
- package/dist/helpers-LTN3HMD3.js +0 -4
- package/dist/open-library-GW7DWWNZ.js +0 -21
- package/dist/paths-FKKGS6BA.js +0 -4
- package/dist/plugin-store-R32NH7JE.js.map +0 -1
- package/dist/setup-SRPBQOHY.js.map +0 -1
- package/dist/skills-CRL3VJNN.js +0 -7
- package/dist/store-client-INZD2RYD.js +0 -14
- /package/dist/{base-assets → factory-assets}/connectors/deploy.d.ts +0 -0
- /package/dist/{base-assets → factory-assets}/connectors/deploy.js.map +0 -0
- /package/dist/{base-assets → factory-assets}/connectors/devserver.d.ts +0 -0
- /package/dist/{base-assets → factory-assets}/connectors/devserver.js.map +0 -0
- /package/dist/{base-assets → factory-assets}/connectors/flow/adapter.js.map +0 -0
- /package/dist/{base-assets → factory-assets}/connectors/flow/engine/engine.d.ts +0 -0
- /package/dist/{base-assets → factory-assets}/connectors/flow/engine/flow-manifest.d.ts +0 -0
- /package/dist/{base-assets → factory-assets}/connectors/flow/engine/index.d.ts +0 -0
- /package/dist/{base-assets → factory-assets}/connectors/flow/engine/loader.d.ts +0 -0
- /package/dist/{base-assets → factory-assets}/connectors/flow/engine/types.d.ts +0 -0
- /package/dist/{base-assets → factory-assets}/connectors/flow/engine.d.ts +0 -0
- /package/dist/{base-assets → factory-assets}/connectors/flow/engine.js.map +0 -0
- /package/dist/{base-assets → factory-assets}/connectors/flow/index.d.ts +0 -0
- /package/dist/{base-assets → factory-assets}/connectors/flow/prompt-fragments.js.map +0 -0
- /package/dist/{base-assets → factory-assets}/connectors/flow/run-flow.js.map +0 -0
- /package/dist/{base-assets → factory-assets}/connectors/flow/stimulus-driver.js.map +0 -0
- /package/dist/{base-assets → factory-assets}/connectors/flow.d.ts +0 -0
- /package/dist/{base-assets → factory-assets}/connectors/flow.js.map +0 -0
- /package/dist/{base-assets → factory-assets}/connectors/git.d.ts +0 -0
- /package/dist/{base-assets → factory-assets}/connectors/git.js.map +0 -0
- /package/dist/{base-assets → factory-assets}/connectors/gmail.d.ts +0 -0
- /package/dist/{base-assets → factory-assets}/connectors/gmail.js.map +0 -0
- /package/dist/{base-assets → factory-assets}/connectors/googledrive.d.ts +0 -0
- /package/dist/{base-assets → factory-assets}/connectors/googledrive.js.map +0 -0
- /package/dist/{base-assets → factory-assets}/connectors/local.d.ts +0 -0
- /package/dist/{base-assets → factory-assets}/connectors/local.js.map +0 -0
- /package/dist/{base-assets → factory-assets}/connectors/mattermost.d.ts +0 -0
- /package/dist/{base-assets → factory-assets}/connectors/mattermost.js.map +0 -0
- /package/dist/{base-assets → factory-assets}/connectors/memory.d.ts +0 -0
- /package/dist/{base-assets → factory-assets}/connectors/memory.js.map +0 -0
- /package/dist/{base-assets → factory-assets}/connectors/minio.d.ts +0 -0
- /package/dist/{base-assets → factory-assets}/connectors/minio.js.map +0 -0
- /package/dist/{base-assets → factory-assets}/connectors/postgres.d.ts +0 -0
- /package/dist/{base-assets → factory-assets}/connectors/postgres.js.map +0 -0
- /package/dist/{base-assets → factory-assets}/connectors/s3.d.ts +0 -0
- /package/dist/{base-assets → factory-assets}/connectors/s3.js.map +0 -0
- /package/dist/{base-assets → factory-assets}/connectors/sharepoint.d.ts +0 -0
- /package/dist/{base-assets → factory-assets}/connectors/sharepoint.js.map +0 -0
- /package/dist/{base-assets → factory-assets}/connectors/sqlite.d.ts +0 -0
- /package/dist/{base-assets → factory-assets}/connectors/sqlite.js.map +0 -0
- /package/dist/{base-assets → factory-assets}/connectors/static-server.d.ts +0 -0
- /package/dist/{base-assets → factory-assets}/connectors/static-server.js.map +0 -0
- /package/dist/{base-assets → factory-assets}/connectors/tunnel.d.ts +0 -0
- /package/dist/{base-assets → factory-assets}/connectors/tunnel.js.map +0 -0
- /package/dist/{base-assets → factory-assets}/connectors/webdav.d.ts +0 -0
- /package/dist/{base-assets → factory-assets}/connectors/webdav.js.map +0 -0
- /package/dist/{base-assets → factory-assets}/connectors/xstate-store.d.ts +0 -0
- /package/dist/{base-assets → factory-assets}/connectors/xstate-store.js.map +0 -0
- /package/dist/{base-assets → factory-assets}/connectors/xstate.d.ts +0 -0
- /package/dist/{base-assets → factory-assets}/connectors/xstate.js.map +0 -0
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { readManifestSourceConfig, discoverAssetsInTree } from './chunk-JIQLLZ65.js';
|
|
2
|
+
import { installFromManifest } from './chunk-Z3XXKR5E.js';
|
|
3
|
+
import { parseAssetRef } from './chunk-IEJ5IOC3.js';
|
|
4
|
+
import { PresetManifestSchema } from './chunk-QDJKE557.js';
|
|
4
5
|
import { __export } from './chunk-NSBPE2FW.js';
|
|
5
6
|
import * as crypto from 'crypto';
|
|
6
|
-
import
|
|
7
|
-
import * as fs12 from 'fs';
|
|
7
|
+
import * as fs11 from 'fs';
|
|
8
8
|
import * as path4 from 'path';
|
|
9
|
-
import { resolve, join, sep, dirname, isAbsolute } from 'path';
|
|
10
9
|
import { eq, like, and } from 'drizzle-orm';
|
|
11
10
|
import * as z2 from 'zod';
|
|
12
11
|
import * as os from 'os';
|
|
@@ -15,7 +14,6 @@ import { createClient } from '@libsql/client';
|
|
|
15
14
|
import { drizzle } from 'drizzle-orm/libsql';
|
|
16
15
|
import { sqliteTable, text, integer } from 'drizzle-orm/sqlite-core';
|
|
17
16
|
import { spawnSync } from 'child_process';
|
|
18
|
-
import { rm, mkdir, writeFile } from 'fs/promises';
|
|
19
17
|
|
|
20
18
|
// library/src/library.ts
|
|
21
19
|
var KNOWN_ASSET_KINDS = [
|
|
@@ -139,9 +137,9 @@ function projectConfigPath(projectDir) {
|
|
|
139
137
|
return path4.join(projectDir, ".skaile", CONFIG_FILENAME);
|
|
140
138
|
}
|
|
141
139
|
function loadConfigFile(filePath) {
|
|
142
|
-
if (!
|
|
140
|
+
if (!fs11.existsSync(filePath)) return null;
|
|
143
141
|
try {
|
|
144
|
-
const content =
|
|
142
|
+
const content = fs11.readFileSync(filePath, "utf-8");
|
|
145
143
|
const raw = parse(content);
|
|
146
144
|
if (!raw || typeof raw !== "object") return null;
|
|
147
145
|
return SkaileConfigSchema.partial().parse(raw);
|
|
@@ -190,10 +188,10 @@ function resolveConfig(opts) {
|
|
|
190
188
|
}
|
|
191
189
|
function saveConfig(filePath, config) {
|
|
192
190
|
const dir = path4.dirname(filePath);
|
|
193
|
-
if (!
|
|
194
|
-
|
|
191
|
+
if (!fs11.existsSync(dir)) {
|
|
192
|
+
fs11.mkdirSync(dir, { recursive: true });
|
|
195
193
|
}
|
|
196
|
-
|
|
194
|
+
fs11.writeFileSync(filePath, stringify(config, { indent: 2 }), "utf-8");
|
|
197
195
|
}
|
|
198
196
|
|
|
199
197
|
// library/src/local/schema.ts
|
|
@@ -276,9 +274,9 @@ function resolveSidecarPaths(slug) {
|
|
|
276
274
|
return {
|
|
277
275
|
rootDir,
|
|
278
276
|
sidecarDir,
|
|
279
|
-
manifestFile: path4.join(sidecarDir, "
|
|
277
|
+
manifestFile: path4.join(sidecarDir, "skaile.manifest.yaml"),
|
|
280
278
|
readmeFile: path4.join(sidecarDir, "README.md"),
|
|
281
|
-
lockFile: path4.join(sidecarDir, "
|
|
279
|
+
lockFile: path4.join(sidecarDir, "skaile.manifest.lock.json")
|
|
282
280
|
};
|
|
283
281
|
}
|
|
284
282
|
function deriveSlug(sourceConfig, sourcePath, existingSlugs) {
|
|
@@ -294,9 +292,9 @@ function deriveSlug(sourceConfig, sourcePath, existingSlugs) {
|
|
|
294
292
|
}
|
|
295
293
|
function listSidecarSlugsOnDisk() {
|
|
296
294
|
const root = getSidecarRoot();
|
|
297
|
-
if (!
|
|
295
|
+
if (!fs11.existsSync(root)) return [];
|
|
298
296
|
const out = [];
|
|
299
|
-
for (const entry of
|
|
297
|
+
for (const entry of fs11.readdirSync(root, { withFileTypes: true })) {
|
|
300
298
|
if (!entry.isDirectory()) continue;
|
|
301
299
|
if (entry.name.startsWith(".")) continue;
|
|
302
300
|
out.push(entry.name);
|
|
@@ -321,25 +319,28 @@ function migratedMarkerPath() {
|
|
|
321
319
|
function migrateSidecarsToStoreIfNeeded() {
|
|
322
320
|
const storeRoot = getStoreRoot();
|
|
323
321
|
const marker = migratedMarkerPath();
|
|
324
|
-
if (
|
|
322
|
+
if (fs11.existsSync(marker)) return { migrated: 0, storeRoot };
|
|
325
323
|
const sidecarRoot = getSidecarRoot();
|
|
326
324
|
const manifestsDir = getStoreManifestsDir();
|
|
327
325
|
const candidates = [];
|
|
328
|
-
if (
|
|
329
|
-
for (const entry of
|
|
326
|
+
if (fs11.existsSync(sidecarRoot)) {
|
|
327
|
+
for (const entry of fs11.readdirSync(sidecarRoot, { withFileTypes: true })) {
|
|
330
328
|
if (!entry.isDirectory()) continue;
|
|
331
329
|
if (entry.name.startsWith(".")) continue;
|
|
332
|
-
const
|
|
333
|
-
|
|
330
|
+
const sidecarDir = path4.join(sidecarRoot, entry.name);
|
|
331
|
+
const current = path4.join(sidecarDir, "skaile.manifest.yaml");
|
|
332
|
+
const legacy = path4.join(sidecarDir, ".skaile-source.yaml");
|
|
333
|
+
const src = fs11.existsSync(current) ? current : fs11.existsSync(legacy) ? legacy : void 0;
|
|
334
|
+
if (src) candidates.push({ src, slug: entry.name });
|
|
334
335
|
}
|
|
335
336
|
}
|
|
336
|
-
|
|
337
|
+
fs11.mkdirSync(manifestsDir, { recursive: true });
|
|
337
338
|
let migrated = 0;
|
|
338
339
|
for (const { src, slug } of candidates) {
|
|
339
340
|
const dest = path4.join(manifestsDir, `${slug}.yaml`);
|
|
340
|
-
if (
|
|
341
|
+
if (fs11.existsSync(dest)) continue;
|
|
341
342
|
try {
|
|
342
|
-
|
|
343
|
+
fs11.renameSync(src, dest);
|
|
343
344
|
migrated++;
|
|
344
345
|
} catch (err) {
|
|
345
346
|
process.stderr.write(
|
|
@@ -348,10 +349,10 @@ function migrateSidecarsToStoreIfNeeded() {
|
|
|
348
349
|
);
|
|
349
350
|
}
|
|
350
351
|
}
|
|
351
|
-
if (!
|
|
352
|
+
if (!fs11.existsSync(path4.join(storeRoot, ".git"))) {
|
|
352
353
|
try {
|
|
353
354
|
spawnSync("git", ["init", "--quiet"], { cwd: storeRoot, stdio: "ignore" });
|
|
354
|
-
|
|
355
|
+
fs11.writeFileSync(
|
|
355
356
|
path4.join(storeRoot, ".gitignore"),
|
|
356
357
|
"# Remote-store cache \u2014 local to this machine.\nremote-cache/\n",
|
|
357
358
|
"utf8"
|
|
@@ -359,7 +360,7 @@ function migrateSidecarsToStoreIfNeeded() {
|
|
|
359
360
|
} catch {
|
|
360
361
|
}
|
|
361
362
|
}
|
|
362
|
-
|
|
363
|
+
fs11.writeFileSync(marker, (/* @__PURE__ */ new Date()).toISOString(), "utf8");
|
|
363
364
|
return { migrated, storeRoot };
|
|
364
365
|
}
|
|
365
366
|
|
|
@@ -506,7 +507,7 @@ async function runLibrariesMigration(client) {
|
|
|
506
507
|
await client.batch(stmts);
|
|
507
508
|
}
|
|
508
509
|
function assertNoLegacyLibDb(newDbPath) {
|
|
509
|
-
if (
|
|
510
|
+
if (fs11.existsSync(newDbPath)) return;
|
|
510
511
|
const parent = path4.dirname(newDbPath);
|
|
511
512
|
const skaileHome = path4.join(os.homedir(), ".skaile");
|
|
512
513
|
const defaultIndexPath2 = path4.join(skaileHome, "index.db");
|
|
@@ -522,7 +523,7 @@ function assertNoLegacyLibDb(newDbPath) {
|
|
|
522
523
|
candidates.push(path4.join(path4.dirname(parent), "library", "lib.db"));
|
|
523
524
|
}
|
|
524
525
|
for (const legacy of candidates) {
|
|
525
|
-
if (!
|
|
526
|
+
if (!fs11.existsSync(legacy)) continue;
|
|
526
527
|
throw new Error(
|
|
527
528
|
`Found legacy index database at ${legacy}. The lib.db \u2192 index.db relocation ran for one release and has been removed. Move the file manually to ${newDbPath} (and any -wal / -shm siblings), then retry.`
|
|
528
529
|
);
|
|
@@ -568,90 +569,15 @@ async function createLibraryDb(dbPath) {
|
|
|
568
569
|
const db = drizzle(client, { schema: schema_exports });
|
|
569
570
|
return { db, close: () => client.close() };
|
|
570
571
|
}
|
|
571
|
-
function assertSafeManifestPath(installPath, p) {
|
|
572
|
-
const bad = () => {
|
|
573
|
-
throw new Error(`unsafe path in manifest: ${p}`);
|
|
574
|
-
};
|
|
575
|
-
if (!p || p.length === 0) bad();
|
|
576
|
-
if (isAbsolute(p) || p.startsWith("/") || p.startsWith("\\")) bad();
|
|
577
|
-
const segments = p.split(/[/\\]/);
|
|
578
|
-
if (segments.some((s) => s === "..")) bad();
|
|
579
|
-
const resolved = resolve(installPath, p);
|
|
580
|
-
if (resolved !== installPath && !resolved.startsWith(installPath + sep)) bad();
|
|
581
|
-
}
|
|
582
|
-
function assertSafeRefComponent(kind, value) {
|
|
583
|
-
const hasControlChar = [...value].some((c) => c.charCodeAt(0) < 32);
|
|
584
|
-
if (!value || value.startsWith(".") || /[/\\]/.test(value) || hasControlChar) {
|
|
585
|
-
throw new Error(`unsafe ref ${kind} component in manifest: '${value}'`);
|
|
586
|
-
}
|
|
587
|
-
}
|
|
588
|
-
async function installFromManifest(opts) {
|
|
589
|
-
const { manifest, libraryRoot } = opts;
|
|
590
|
-
const fetcher = opts.fetcher ?? (await import('./source-fetch-github-QN4LLTL5.js')).fetchAssetFilesFromGitHub;
|
|
591
|
-
let parsed;
|
|
592
|
-
try {
|
|
593
|
-
parsed = parseAssetRef(manifest.ref);
|
|
594
|
-
} catch (e) {
|
|
595
|
-
throw new Error(`invalid ref: ${manifest.ref}: ${e instanceof Error ? e.message : String(e)}`);
|
|
596
|
-
}
|
|
597
|
-
const publisher = parsed.publisher;
|
|
598
|
-
const name = parsed.name;
|
|
599
|
-
const version = parsed.pin;
|
|
600
|
-
if (!publisher) throw new Error(`invalid ref: ${manifest.ref} (missing publisher)`);
|
|
601
|
-
if (!version) throw new Error(`invalid ref: ${manifest.ref} (missing version pin)`);
|
|
602
|
-
assertSafeRefComponent("publisher", publisher);
|
|
603
|
-
assertSafeRefComponent("name", name);
|
|
604
|
-
assertSafeRefComponent("version", version);
|
|
605
|
-
const root = resolve(libraryRoot);
|
|
606
|
-
const installPath = resolve(join(root, `@${publisher}`, name, version));
|
|
607
|
-
if (installPath !== root && !installPath.startsWith(root + sep)) {
|
|
608
|
-
throw new Error(
|
|
609
|
-
`unsafe install path: ref '${manifest.ref}' resolves outside the library root`
|
|
610
|
-
);
|
|
611
|
-
}
|
|
612
|
-
for (const f of manifest.files) {
|
|
613
|
-
assertSafeManifestPath(installPath, f.path);
|
|
614
|
-
}
|
|
615
|
-
const paths = manifest.files.map((f) => f.path);
|
|
616
|
-
const bytes = await fetcher({
|
|
617
|
-
url: manifest.source.url,
|
|
618
|
-
commitSha: manifest.source.commitSha,
|
|
619
|
-
paths
|
|
620
|
-
});
|
|
621
|
-
for (const f of manifest.files) {
|
|
622
|
-
assertSafeManifestPath(installPath, f.path);
|
|
623
|
-
const buf = bytes[f.path];
|
|
624
|
-
if (!buf) throw new Error(`fetcher returned no bytes for ${f.path}`);
|
|
625
|
-
const actual = createHash("sha256").update(buf).digest("hex");
|
|
626
|
-
if (actual !== f.sha256) {
|
|
627
|
-
throw new Error(`hash mismatch for ${f.path}: expected ${f.sha256}, got ${actual}`);
|
|
628
|
-
}
|
|
629
|
-
}
|
|
630
|
-
const sortedLines = manifest.files.slice().sort((a, b) => a.path.localeCompare(b.path)).map((e) => `${e.path}:${e.sha256}
|
|
631
|
-
`).join("");
|
|
632
|
-
const actualComposite = createHash("sha256").update(sortedLines, "utf-8").digest("hex");
|
|
633
|
-
if (actualComposite !== manifest.sha256) {
|
|
634
|
-
throw new Error(`composite hash mismatch: expected ${manifest.sha256}, got ${actualComposite}`);
|
|
635
|
-
}
|
|
636
|
-
await rm(installPath, { recursive: true, force: true });
|
|
637
|
-
try {
|
|
638
|
-
for (const f of manifest.files) {
|
|
639
|
-
const target = join(installPath, f.path);
|
|
640
|
-
await mkdir(dirname(target), { recursive: true });
|
|
641
|
-
await writeFile(target, bytes[f.path]);
|
|
642
|
-
}
|
|
643
|
-
} catch (e) {
|
|
644
|
-
await rm(installPath, { recursive: true, force: true }).catch(() => {
|
|
645
|
-
});
|
|
646
|
-
throw e;
|
|
647
|
-
}
|
|
648
|
-
return { installPath };
|
|
649
|
-
}
|
|
650
572
|
|
|
651
573
|
// library/src/local/library.ts
|
|
652
574
|
function escapeLikePrefix(prefix) {
|
|
653
575
|
return prefix.replace(/[%_]/g, "\\$&");
|
|
654
576
|
}
|
|
577
|
+
function stripRefVersion(ref) {
|
|
578
|
+
const at = ref.lastIndexOf("@");
|
|
579
|
+
return at > 0 ? ref.slice(0, at) : ref;
|
|
580
|
+
}
|
|
655
581
|
function rowToLibrary(row) {
|
|
656
582
|
const cfg = (() => {
|
|
657
583
|
try {
|
|
@@ -748,12 +674,12 @@ var LocalIndex = class {
|
|
|
748
674
|
dbPath = resolveIndexPath();
|
|
749
675
|
this._kindRegistry = optionsOrDir?.kindRegistry;
|
|
750
676
|
}
|
|
751
|
-
if (!
|
|
752
|
-
|
|
677
|
+
if (!fs11.existsSync(dir)) {
|
|
678
|
+
fs11.mkdirSync(dir, { recursive: true });
|
|
753
679
|
}
|
|
754
680
|
const dbParent = path4.dirname(dbPath);
|
|
755
|
-
if (!
|
|
756
|
-
|
|
681
|
+
if (!fs11.existsSync(dbParent)) {
|
|
682
|
+
fs11.mkdirSync(dbParent, { recursive: true });
|
|
757
683
|
}
|
|
758
684
|
this.libraryDir = dir;
|
|
759
685
|
this.dbPath = dbPath;
|
|
@@ -1002,10 +928,21 @@ var LocalIndex = class {
|
|
|
1002
928
|
if (filter.defPin) conditions.push(eq(instances.defPin, filter.defPin));
|
|
1003
929
|
const where = conditions.length > 0 ? and(...conditions) : void 0;
|
|
1004
930
|
let rows = where ? await db.select().from(instances).where(where).all() : await db.select().from(instances).all();
|
|
931
|
+
if (filter.kind) {
|
|
932
|
+
const kindByBase = await this.buildInstanceKindMap(db);
|
|
933
|
+
rows = rows.filter((r) => kindByBase.get(stripRefVersion(r.defRef)) === filter.kind);
|
|
934
|
+
}
|
|
1005
935
|
if (filter.offset) rows = rows.slice(filter.offset);
|
|
1006
936
|
if (filter.limit) rows = rows.slice(0, filter.limit);
|
|
1007
937
|
return rows.map(rowToInstance);
|
|
1008
938
|
}
|
|
939
|
+
/** Map every cached asset def's version-stripped ref base to its kind. */
|
|
940
|
+
async buildInstanceKindMap(db) {
|
|
941
|
+
const defs = await db.select().from(assetDefinitions).all();
|
|
942
|
+
const map = /* @__PURE__ */ new Map();
|
|
943
|
+
for (const d of defs) map.set(stripRefVersion(d.id), d.kind);
|
|
944
|
+
return map;
|
|
945
|
+
}
|
|
1009
946
|
async updateInstance(id, patch) {
|
|
1010
947
|
const db = await this.ensureDb();
|
|
1011
948
|
const existing = await db.select().from(instances).where(eq(instances.id, id)).get();
|
|
@@ -1369,8 +1306,8 @@ var LibraryManager = class {
|
|
|
1369
1306
|
const lib = await this.requireLibrary(nameOrId);
|
|
1370
1307
|
const db = await this.lib.dbHandle();
|
|
1371
1308
|
await db.delete(libraries).where(eq(libraries.id, lib.id)).run();
|
|
1372
|
-
if (opts.purge &&
|
|
1373
|
-
|
|
1309
|
+
if (opts.purge && fs11.existsSync(lib.path)) {
|
|
1310
|
+
fs11.rmSync(lib.path, { recursive: true, force: true });
|
|
1374
1311
|
}
|
|
1375
1312
|
}
|
|
1376
1313
|
/**
|
|
@@ -1387,7 +1324,7 @@ var LibraryManager = class {
|
|
|
1387
1324
|
);
|
|
1388
1325
|
if (writableDefault) return { library: writableDefault, created: false };
|
|
1389
1326
|
const personalPath = path4.join(librariesDir, "personal");
|
|
1390
|
-
|
|
1327
|
+
fs11.mkdirSync(personalPath, { recursive: true });
|
|
1391
1328
|
const lib = await this.addLibrary({
|
|
1392
1329
|
name: "personal",
|
|
1393
1330
|
path: personalPath,
|
|
@@ -1449,11 +1386,11 @@ var SidecarGit = class {
|
|
|
1449
1386
|
* @docLink packages/library/concepts#sidecar-git
|
|
1450
1387
|
*/
|
|
1451
1388
|
async ensureInitialized() {
|
|
1452
|
-
if (!
|
|
1453
|
-
|
|
1389
|
+
if (!fs11.existsSync(this.rootDir)) {
|
|
1390
|
+
fs11.mkdirSync(this.rootDir, { recursive: true });
|
|
1454
1391
|
}
|
|
1455
1392
|
const gitDir = path4.join(this.rootDir, ".git");
|
|
1456
|
-
const freshRepo = !
|
|
1393
|
+
const freshRepo = !fs11.existsSync(gitDir);
|
|
1457
1394
|
if (freshRepo) {
|
|
1458
1395
|
const init = this.spawn(["init", "-b", "main"]);
|
|
1459
1396
|
if (init.exitCode !== 0) {
|
|
@@ -1461,9 +1398,9 @@ var SidecarGit = class {
|
|
|
1461
1398
|
}
|
|
1462
1399
|
}
|
|
1463
1400
|
const attrsPath = path4.join(this.rootDir, ".gitattributes");
|
|
1464
|
-
if (!
|
|
1401
|
+
if (!fs11.existsSync(attrsPath)) fs11.writeFileSync(attrsPath, GITATTRIBUTES, "utf-8");
|
|
1465
1402
|
const readmePath = path4.join(this.rootDir, "README.md");
|
|
1466
|
-
if (!
|
|
1403
|
+
if (!fs11.existsSync(readmePath)) fs11.writeFileSync(readmePath, ROOT_README, "utf-8");
|
|
1467
1404
|
if (!this.hasGlobalGitConfig("user.name")) {
|
|
1468
1405
|
this.spawn(["config", "user.name", FALLBACK_USER_NAME]);
|
|
1469
1406
|
}
|
|
@@ -1489,7 +1426,7 @@ var SidecarGit = class {
|
|
|
1489
1426
|
async commit(slug, message, opts) {
|
|
1490
1427
|
if (opts?.skip) return;
|
|
1491
1428
|
const slugDir = path4.join(this.rootDir, slug);
|
|
1492
|
-
if (
|
|
1429
|
+
if (fs11.existsSync(slugDir)) {
|
|
1493
1430
|
this.spawn(["add", "--", slug]);
|
|
1494
1431
|
} else {
|
|
1495
1432
|
this.spawn(["add", "-A"]);
|
|
@@ -1600,8 +1537,8 @@ function parseWorkspaceV2(raw) {
|
|
|
1600
1537
|
}
|
|
1601
1538
|
function loadWorkspaceV2(dir, filename = "skaile.yaml") {
|
|
1602
1539
|
const filePath = path4.join(dir, filename);
|
|
1603
|
-
if (!
|
|
1604
|
-
const content =
|
|
1540
|
+
if (!fs11.existsSync(filePath)) return null;
|
|
1541
|
+
const content = fs11.readFileSync(filePath, "utf-8");
|
|
1605
1542
|
const raw = parse(content);
|
|
1606
1543
|
if (!raw || typeof raw !== "object") return null;
|
|
1607
1544
|
return parseWorkspaceV2(raw);
|
|
@@ -1609,32 +1546,32 @@ function loadWorkspaceV2(dir, filename = "skaile.yaml") {
|
|
|
1609
1546
|
function saveWorkspaceV2(dir, v2, filename = "skaile.yaml") {
|
|
1610
1547
|
const filePath = path4.join(dir, filename);
|
|
1611
1548
|
let existing = {};
|
|
1612
|
-
if (
|
|
1613
|
-
const content =
|
|
1549
|
+
if (fs11.existsSync(filePath)) {
|
|
1550
|
+
const content = fs11.readFileSync(filePath, "utf-8");
|
|
1614
1551
|
existing = parse(content) ?? {};
|
|
1615
1552
|
}
|
|
1616
1553
|
existing.version = 2;
|
|
1617
1554
|
if (v2.library !== void 0) existing.library = v2.library;
|
|
1618
1555
|
if (v2.presets_applied !== void 0) existing.presets_applied = v2.presets_applied;
|
|
1619
|
-
if (!
|
|
1620
|
-
|
|
1556
|
+
if (!fs11.existsSync(dir)) {
|
|
1557
|
+
fs11.mkdirSync(dir, { recursive: true });
|
|
1621
1558
|
}
|
|
1622
|
-
|
|
1559
|
+
fs11.writeFileSync(filePath, stringify(existing, { indent: 2 }), "utf-8");
|
|
1623
1560
|
}
|
|
1624
1561
|
var LOCK_FILENAME = "skaile.lock.yaml";
|
|
1625
1562
|
function loadLockFile(dir) {
|
|
1626
1563
|
const filePath = path4.join(dir, LOCK_FILENAME);
|
|
1627
|
-
if (!
|
|
1628
|
-
const content =
|
|
1564
|
+
if (!fs11.existsSync(filePath)) return null;
|
|
1565
|
+
const content = fs11.readFileSync(filePath, "utf-8");
|
|
1629
1566
|
const raw = parse(content);
|
|
1630
1567
|
return LockFileSchema.parse(raw);
|
|
1631
1568
|
}
|
|
1632
1569
|
function saveLockFile(dir, lock) {
|
|
1633
1570
|
const filePath = path4.join(dir, LOCK_FILENAME);
|
|
1634
|
-
if (!
|
|
1635
|
-
|
|
1571
|
+
if (!fs11.existsSync(dir)) {
|
|
1572
|
+
fs11.mkdirSync(dir, { recursive: true });
|
|
1636
1573
|
}
|
|
1637
|
-
|
|
1574
|
+
fs11.writeFileSync(
|
|
1638
1575
|
filePath,
|
|
1639
1576
|
`# Auto-generated by skaile. Do not edit manually.
|
|
1640
1577
|
${stringify(lock, { indent: 2 })}`,
|
|
@@ -1652,31 +1589,29 @@ function createEmptyLockFile() {
|
|
|
1652
1589
|
}
|
|
1653
1590
|
function detectWorkspaceVersion(dir, filename = "skaile.yaml") {
|
|
1654
1591
|
const filePath = path4.join(dir, filename);
|
|
1655
|
-
if (!
|
|
1656
|
-
const content =
|
|
1592
|
+
if (!fs11.existsSync(filePath)) return null;
|
|
1593
|
+
const content = fs11.readFileSync(filePath, "utf-8");
|
|
1657
1594
|
const raw = parse(content);
|
|
1658
1595
|
if (!raw || typeof raw !== "object") return null;
|
|
1659
1596
|
return raw.version === 2 ? 2 : 1;
|
|
1660
1597
|
}
|
|
1661
|
-
var MANIFEST_FILENAME = "
|
|
1598
|
+
var MANIFEST_FILENAME = "skaile.manifest.yaml";
|
|
1662
1599
|
async function writeManifestIfMissing(input) {
|
|
1663
1600
|
const manifestPath = path4.join(input.libraryPath, MANIFEST_FILENAME);
|
|
1664
|
-
if (
|
|
1601
|
+
if (fs11.existsSync(manifestPath)) return { wrote: false, manifestPath };
|
|
1665
1602
|
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
1666
|
-
const yaml = `# Generated by skaile library add on ${now}
|
|
1603
|
+
const yaml = `# Generated by skaile library add on ${now} (structure: ${input.structure})
|
|
1667
1604
|
# Edit by hand to inline discovered assets; or run \`skaile library refresh-manifest\`.
|
|
1668
|
-
version: 2
|
|
1669
|
-
structure: ${input.structure}
|
|
1670
1605
|
publisher: ""
|
|
1671
1606
|
assets: []
|
|
1672
1607
|
`;
|
|
1673
|
-
|
|
1608
|
+
fs11.writeFileSync(manifestPath, yaml, "utf-8");
|
|
1674
1609
|
if (input.ownership !== "owner") {
|
|
1675
1610
|
const excludePath = path4.join(input.libraryPath, ".git", "info", "exclude");
|
|
1676
|
-
if (
|
|
1677
|
-
const current =
|
|
1611
|
+
if (fs11.existsSync(path4.dirname(excludePath))) {
|
|
1612
|
+
const current = fs11.existsSync(excludePath) ? fs11.readFileSync(excludePath, "utf-8") : "";
|
|
1678
1613
|
if (!current.includes(MANIFEST_FILENAME)) {
|
|
1679
|
-
|
|
1614
|
+
fs11.writeFileSync(
|
|
1680
1615
|
excludePath,
|
|
1681
1616
|
(current.endsWith("\n") || current === "" ? current : `${current}
|
|
1682
1617
|
`) + `# skaile-managed local-overlay manifest
|
|
@@ -1692,10 +1627,10 @@ ${MANIFEST_FILENAME}
|
|
|
1692
1627
|
function migrateWorkspaceConfig(dir, opts) {
|
|
1693
1628
|
const filename = opts?.filename ?? "skaile.yaml";
|
|
1694
1629
|
const filePath = path4.join(dir, filename);
|
|
1695
|
-
if (!
|
|
1630
|
+
if (!fs11.existsSync(filePath)) {
|
|
1696
1631
|
return { migrated: false, version: 1, warnings: ["No skaile.yaml found"] };
|
|
1697
1632
|
}
|
|
1698
|
-
const content =
|
|
1633
|
+
const content = fs11.readFileSync(filePath, "utf-8");
|
|
1699
1634
|
const raw = parse(content);
|
|
1700
1635
|
if (!raw || typeof raw !== "object") {
|
|
1701
1636
|
return { migrated: false, version: 1, warnings: ["Invalid YAML content"] };
|
|
@@ -1727,7 +1662,7 @@ function migrateWorkspaceConfig(dir, opts) {
|
|
|
1727
1662
|
} else {
|
|
1728
1663
|
doc.set("version", 2);
|
|
1729
1664
|
}
|
|
1730
|
-
|
|
1665
|
+
fs11.writeFileSync(filePath, doc.toString(), "utf-8");
|
|
1731
1666
|
}
|
|
1732
1667
|
return {
|
|
1733
1668
|
migrated: !opts?.dryRun,
|
|
@@ -1769,10 +1704,10 @@ function resolvePin(pin, availableVersions) {
|
|
|
1769
1704
|
const base = pin.slice(0, -2);
|
|
1770
1705
|
const parts = base.split(".");
|
|
1771
1706
|
const major = Number.parseInt(parts[0], 10);
|
|
1772
|
-
const minor = parts.length > 1 ? Number.parseInt(parts[1], 10) : 0;
|
|
1707
|
+
const minor = parts.length > 1 ? Number.parseInt(parts[1], 10) : void 0;
|
|
1773
1708
|
if (Number.isNaN(major)) return null;
|
|
1774
1709
|
const match = parsed.find(
|
|
1775
|
-
(v) => v.major === major && (
|
|
1710
|
+
(v) => v.major === major && (minor === void 0 || v.minor === minor)
|
|
1776
1711
|
);
|
|
1777
1712
|
return match ? { version: match.raw, match: "range" } : null;
|
|
1778
1713
|
}
|
|
@@ -1810,6 +1745,8 @@ function parseRangeTarget(range) {
|
|
|
1810
1745
|
patch: Number.isNaN(patch) ? 0 : patch
|
|
1811
1746
|
};
|
|
1812
1747
|
}
|
|
1748
|
+
|
|
1749
|
+
// library/src/local/local-catalog-source.ts
|
|
1813
1750
|
var LocalCatalogSource = class {
|
|
1814
1751
|
constructor(library, sourceId, rootPath, registry, options) {
|
|
1815
1752
|
this.library = library;
|
|
@@ -1838,6 +1775,17 @@ var LocalCatalogSource = class {
|
|
|
1838
1775
|
const defs = await this.library.listAssetDefs(libraryFilter);
|
|
1839
1776
|
return defs.map(defToCatalogAsset);
|
|
1840
1777
|
}
|
|
1778
|
+
async listVersions(ref) {
|
|
1779
|
+
const parsed = parseAssetRef(ref);
|
|
1780
|
+
const defs = await this.library.listAssetDefs({
|
|
1781
|
+
libraryId: this.sourceId,
|
|
1782
|
+
kind: parsed.kind
|
|
1783
|
+
});
|
|
1784
|
+
const wantPublisher = parsed.publisher?.replace(/^@/, "");
|
|
1785
|
+
return defs.filter(
|
|
1786
|
+
(d) => d.name === parsed.name && (wantPublisher === void 0 || d.publisher.replace(/^@/, "") === wantPublisher)
|
|
1787
|
+
).map((d) => d.version);
|
|
1788
|
+
}
|
|
1841
1789
|
async fetchTarball(_ref, _sha256) {
|
|
1842
1790
|
throw new Error(
|
|
1843
1791
|
"LocalCatalogSource does not support tarball delivery. Assets are available on disk."
|
|
@@ -1864,7 +1812,7 @@ var LocalCatalogSource = class {
|
|
|
1864
1812
|
includeDev: syncOpts?.includeDev ?? false
|
|
1865
1813
|
};
|
|
1866
1814
|
if (!this.sidecarPath) {
|
|
1867
|
-
opts.sourceConfig =
|
|
1815
|
+
opts.sourceConfig = readManifestSourceConfig(this.rootPath);
|
|
1868
1816
|
}
|
|
1869
1817
|
const result = discoverAssetsInTree(this.rootPath, opts);
|
|
1870
1818
|
let assetsUpdated = 0;
|
|
@@ -1912,18 +1860,6 @@ function defToCatalogAsset(def) {
|
|
|
1912
1860
|
manifest: def.manifest
|
|
1913
1861
|
};
|
|
1914
1862
|
}
|
|
1915
|
-
function loadSourceConfigIfPresent(rootPath) {
|
|
1916
|
-
const configPath = path4.join(rootPath, ".skaile-source.yaml");
|
|
1917
|
-
if (!fs12.existsSync(configPath)) return void 0;
|
|
1918
|
-
try {
|
|
1919
|
-
const content = fs12.readFileSync(configPath, "utf-8");
|
|
1920
|
-
const result = loadSourceConfig(content);
|
|
1921
|
-
if (!result.ok) return void 0;
|
|
1922
|
-
return result.config;
|
|
1923
|
-
} catch {
|
|
1924
|
-
return void 0;
|
|
1925
|
-
}
|
|
1926
|
-
}
|
|
1927
1863
|
function defaultCacheDir() {
|
|
1928
1864
|
return path4.join(os.homedir(), ".skaile", "catalog-cache");
|
|
1929
1865
|
}
|
|
@@ -2002,17 +1938,17 @@ var CatalogCache = class {
|
|
|
2002
1938
|
/** Read a cached tarball from disk if present, otherwise `null`. */
|
|
2003
1939
|
readTarball(sha256) {
|
|
2004
1940
|
const p = this.tarballPath(sha256);
|
|
2005
|
-
if (!
|
|
2006
|
-
return
|
|
1941
|
+
if (!fs11.existsSync(p)) return null;
|
|
1942
|
+
return fs11.readFileSync(p);
|
|
2007
1943
|
}
|
|
2008
1944
|
/** Persist a tarball blob to disk (atomic write). */
|
|
2009
1945
|
writeTarball(sha256, bytes) {
|
|
2010
1946
|
const dir = path4.join(this.dir, TARBALL_DIR);
|
|
2011
|
-
if (!
|
|
1947
|
+
if (!fs11.existsSync(dir)) fs11.mkdirSync(dir, { recursive: true });
|
|
2012
1948
|
const finalPath = this.tarballPath(sha256);
|
|
2013
1949
|
const tmpPath = `${finalPath}.${process.pid}.${Math.random().toString(36).slice(2)}.tmp`;
|
|
2014
|
-
|
|
2015
|
-
|
|
1950
|
+
fs11.writeFileSync(tmpPath, bytes);
|
|
1951
|
+
fs11.renameSync(tmpPath, finalPath);
|
|
2016
1952
|
}
|
|
2017
1953
|
// ── public: invalidation ────────────────────────────────────────────────
|
|
2018
1954
|
/**
|
|
@@ -2032,8 +1968,8 @@ var CatalogCache = class {
|
|
|
2032
1968
|
invalidateEverything() {
|
|
2033
1969
|
this.invalidateAll();
|
|
2034
1970
|
const tarballDir = path4.join(this.dir, TARBALL_DIR);
|
|
2035
|
-
if (
|
|
2036
|
-
|
|
1971
|
+
if (fs11.existsSync(tarballDir)) {
|
|
1972
|
+
fs11.rmSync(tarballDir, { recursive: true, force: true });
|
|
2037
1973
|
}
|
|
2038
1974
|
}
|
|
2039
1975
|
/** Return whether `ttlMs` is zero (air-gapped mode). */
|
|
@@ -2042,9 +1978,9 @@ var CatalogCache = class {
|
|
|
2042
1978
|
}
|
|
2043
1979
|
// ── private ─────────────────────────────────────────────────────────────
|
|
2044
1980
|
ensureDir() {
|
|
2045
|
-
if (!
|
|
1981
|
+
if (!fs11.existsSync(this.dir)) fs11.mkdirSync(this.dir, { recursive: true });
|
|
2046
1982
|
const tarballDir = path4.join(this.dir, TARBALL_DIR);
|
|
2047
|
-
if (!
|
|
1983
|
+
if (!fs11.existsSync(tarballDir)) fs11.mkdirSync(tarballDir, { recursive: true });
|
|
2048
1984
|
}
|
|
2049
1985
|
indexPath() {
|
|
2050
1986
|
return path4.join(this.dir, INDEX_FILE);
|
|
@@ -2052,12 +1988,12 @@ var CatalogCache = class {
|
|
|
2052
1988
|
loadIndex() {
|
|
2053
1989
|
if (this.index) return this.index;
|
|
2054
1990
|
const p = this.indexPath();
|
|
2055
|
-
if (!
|
|
1991
|
+
if (!fs11.existsSync(p)) {
|
|
2056
1992
|
this.index = { version: 1, resolve: {}, list: {} };
|
|
2057
1993
|
return this.index;
|
|
2058
1994
|
}
|
|
2059
1995
|
try {
|
|
2060
|
-
const raw = JSON.parse(
|
|
1996
|
+
const raw = JSON.parse(fs11.readFileSync(p, "utf-8"));
|
|
2061
1997
|
if (raw && typeof raw === "object" && raw.version === 1) {
|
|
2062
1998
|
this.index = {
|
|
2063
1999
|
version: 1,
|
|
@@ -2075,8 +2011,8 @@ var CatalogCache = class {
|
|
|
2075
2011
|
this.index = idx;
|
|
2076
2012
|
const p = this.indexPath();
|
|
2077
2013
|
const tmp = `${p}.${process.pid}.${Math.random().toString(36).slice(2)}.tmp`;
|
|
2078
|
-
|
|
2079
|
-
|
|
2014
|
+
fs11.writeFileSync(tmp, JSON.stringify(idx, null, 2), "utf-8");
|
|
2015
|
+
fs11.renameSync(tmp, p);
|
|
2080
2016
|
}
|
|
2081
2017
|
};
|
|
2082
2018
|
function filterKey(filter) {
|
|
@@ -2232,6 +2168,20 @@ var RemoteCatalogSource = class {
|
|
|
2232
2168
|
this.cache.writeTarball(sha256, buf);
|
|
2233
2169
|
return buf;
|
|
2234
2170
|
}
|
|
2171
|
+
/**
|
|
2172
|
+
* Enumerate available versions for a version-less ref. The Catalog has no
|
|
2173
|
+
* dedicated version-list route, so this derives versions from `listAssets`
|
|
2174
|
+
* (filtered to the publisher) and keeps only the matching kind+name. Reuses
|
|
2175
|
+
* the cached list path, so repeated calls are cheap.
|
|
2176
|
+
*/
|
|
2177
|
+
async listVersions(ref) {
|
|
2178
|
+
const parsed = parseAssetRef(ref);
|
|
2179
|
+
const wantPublisher = parsed.publisher?.replace(/^@/, "");
|
|
2180
|
+
const assets = await this.listAssets(wantPublisher ? { publisher: wantPublisher } : void 0);
|
|
2181
|
+
return assets.filter(
|
|
2182
|
+
(a) => a.kind === parsed.kind && a.name === parsed.name && (wantPublisher === void 0 || a.publisher.replace(/^@/, "") === wantPublisher)
|
|
2183
|
+
).map((a) => a.version);
|
|
2184
|
+
}
|
|
2235
2185
|
/**
|
|
2236
2186
|
* Single synthetic Source pointing at the configured Catalog URL. Phase 2
|
|
2237
2187
|
* is single-Source per spec; multi-source federation is Phase 4.8.
|
|
@@ -2655,6 +2605,20 @@ var RestCatalogSource = class {
|
|
|
2655
2605
|
this.cache.writeTarball(sha256, buf);
|
|
2656
2606
|
return buf;
|
|
2657
2607
|
}
|
|
2608
|
+
/**
|
|
2609
|
+
* Enumerate available versions for a version-less ref. The forge-store REST
|
|
2610
|
+
* API has no version-list route, so this derives versions from `listAssets`
|
|
2611
|
+
* (filtered to the publisher) and keeps only the matching kind+name. Reuses
|
|
2612
|
+
* the cached list path, so repeated calls are cheap.
|
|
2613
|
+
*/
|
|
2614
|
+
async listVersions(ref) {
|
|
2615
|
+
const parsed = parseAssetRef(ref);
|
|
2616
|
+
const wantPublisher = parsed.publisher?.replace(/^@/, "");
|
|
2617
|
+
const assets = await this.listAssets(wantPublisher ? { publisher: wantPublisher } : void 0);
|
|
2618
|
+
return assets.filter(
|
|
2619
|
+
(a) => a.kind === parsed.kind && a.name === parsed.name && (wantPublisher === void 0 || a.publisher.replace(/^@/, "") === wantPublisher)
|
|
2620
|
+
).map((a) => a.version);
|
|
2621
|
+
}
|
|
2658
2622
|
/**
|
|
2659
2623
|
* Single synthetic Source pointing at the configured forge-store URL.
|
|
2660
2624
|
*/
|
|
@@ -2857,9 +2821,9 @@ function validateKnowledge(data) {
|
|
|
2857
2821
|
}
|
|
2858
2822
|
function collectDirRecursive(baseDir, relativeDir) {
|
|
2859
2823
|
const full = path4.join(baseDir, relativeDir);
|
|
2860
|
-
if (!
|
|
2824
|
+
if (!fs11.existsSync(full) || !fs11.statSync(full).isDirectory()) return [];
|
|
2861
2825
|
const results = [];
|
|
2862
|
-
for (const entry of
|
|
2826
|
+
for (const entry of fs11.readdirSync(full, { withFileTypes: true })) {
|
|
2863
2827
|
const rel = path4.posix.join(relativeDir, entry.name);
|
|
2864
2828
|
if (entry.isDirectory()) {
|
|
2865
2829
|
results.push(...collectDirRecursive(baseDir, rel));
|
|
@@ -3067,6 +3031,9 @@ function validateAllPlaceholders(placeholders, inputs) {
|
|
|
3067
3031
|
}
|
|
3068
3032
|
async function queryInstancePickerChoices(library, options) {
|
|
3069
3033
|
const filter = {};
|
|
3034
|
+
if (options?.kind) {
|
|
3035
|
+
filter.kind = options.kind;
|
|
3036
|
+
}
|
|
3070
3037
|
if (options?.defRefPrefix) {
|
|
3071
3038
|
filter.defRef = options.defRefPrefix;
|
|
3072
3039
|
}
|
|
@@ -3266,8 +3233,8 @@ function resolveTemplate(template, context) {
|
|
|
3266
3233
|
});
|
|
3267
3234
|
return { value: result, hasSecret: false };
|
|
3268
3235
|
}
|
|
3269
|
-
function setNestedValue(obj,
|
|
3270
|
-
const parts =
|
|
3236
|
+
function setNestedValue(obj, path13, value) {
|
|
3237
|
+
const parts = path13.split(".");
|
|
3271
3238
|
let current = obj;
|
|
3272
3239
|
for (let i = 0; i < parts.length - 1; i++) {
|
|
3273
3240
|
const key = parts[i];
|
|
@@ -3300,11 +3267,9 @@ async function applyPreset(presetRef, manifest, inputs, opts) {
|
|
|
3300
3267
|
itemResults
|
|
3301
3268
|
);
|
|
3302
3269
|
result.errors.push(...itemResult.errors);
|
|
3303
|
-
|
|
3304
|
-
|
|
3305
|
-
|
|
3306
|
-
itemResults.set(item.id, itemResult.instances[0]);
|
|
3307
|
-
}
|
|
3270
|
+
result.instances.push(...itemResult.instances);
|
|
3271
|
+
if (item.id && itemResult.instances.length > 0) {
|
|
3272
|
+
itemResults.set(item.id, itemResult.instances[0]);
|
|
3308
3273
|
}
|
|
3309
3274
|
result.subscriptions.push(...itemResult.subscriptions);
|
|
3310
3275
|
}
|
|
@@ -3568,6 +3533,6 @@ function deepEqual(a, b) {
|
|
|
3568
3533
|
return JSON.stringify(a) === JSON.stringify(b);
|
|
3569
3534
|
}
|
|
3570
3535
|
|
|
3571
|
-
export { CatalogCache, CatalogConfigSchema, CatalogHttpError, DuplicateLibraryNameError, DuplicateSubscriptionError, GitSyncDriver, InstanceHasConsumersError, InstanceNotFoundError, InterpolationError, KNOWN_ASSET_KINDS, KnowledgeManifestSchema, LIBRARY_BACKENDS, LIBRARY_OWNERSHIPS, LIBRARY_STRUCTURES, LOCAL_CATALOG_URL, LibraryConfigSchema, LibraryError, LibraryInstanceRefSchema, LibraryManager, LibrarySectionSchema, LibrarySyncError, LocalCatalogSource, LocalIndex, LocalSyncDriver, LockFileSchema, LockSubscriptionSchema, OfflineError, OperationNotPermittedError, PIN_POLICIES, PinPolicySchema, PresetAppliedSchema, PresetExpandedSchema, RemoteCatalogSource, RequiresEdgeSchema, RestCatalogSource, SidecarGit, SkaileConfigSchema, SourceNotFoundError, SubscriptionNotFoundError, TarballHashMismatchError, UserLibraryNotFoundError, WorkspaceConfigV2Schema, applyNonStructuralUpgrade, applyPreset, applyPresetFromData, classifyRef, createEmptyLockFile, deriveSlug, detectChanges, detectNestedPresetRefs, detectWorkspaceVersion, evaluateUpgrade, extractLibraryInstanceId, extractReferencedKeys, filterKey, getConfigDefaults, getDefaultValue, getSidecarRoot, getStoreManifestsDir, getStoreRoot, hasInterpolationTokens,
|
|
3572
|
-
//# sourceMappingURL=chunk-
|
|
3573
|
-
//# sourceMappingURL=chunk-
|
|
3536
|
+
export { CatalogCache, CatalogConfigSchema, CatalogHttpError, DuplicateLibraryNameError, DuplicateSubscriptionError, GitSyncDriver, InstanceHasConsumersError, InstanceNotFoundError, InterpolationError, KNOWN_ASSET_KINDS, KnowledgeManifestSchema, LIBRARY_BACKENDS, LIBRARY_OWNERSHIPS, LIBRARY_STRUCTURES, LOCAL_CATALOG_URL, LibraryConfigSchema, LibraryError, LibraryInstanceRefSchema, LibraryManager, LibrarySectionSchema, LibrarySyncError, LocalCatalogSource, LocalIndex, LocalSyncDriver, LockFileSchema, LockSubscriptionSchema, OfflineError, OperationNotPermittedError, PIN_POLICIES, PinPolicySchema, PresetAppliedSchema, PresetExpandedSchema, RemoteCatalogSource, RequiresEdgeSchema, RestCatalogSource, SidecarGit, SkaileConfigSchema, SourceNotFoundError, SubscriptionNotFoundError, TarballHashMismatchError, UserLibraryNotFoundError, WorkspaceConfigV2Schema, applyNonStructuralUpgrade, applyPreset, applyPresetFromData, classifyRef, createEmptyLockFile, deriveSlug, detectChanges, detectNestedPresetRefs, detectWorkspaceVersion, evaluateUpgrade, extractLibraryInstanceId, extractReferencedKeys, filterKey, getConfigDefaults, getDefaultValue, getSidecarRoot, getStoreManifestsDir, getStoreRoot, hasInterpolationTokens, interpolate, isLocalCatalogUrl, isSecretPlaceholder, knowledgeKindProvider, listSidecarSlugsOnDisk, loadLockFile, loadWorkspaceV2, migrateSidecarsToStoreIfNeeded, migrateWorkspaceConfig, parsePreset, parsePresetYaml, parseWorkspaceV2, projectConfigPath, queryInstancePickerChoices, resolveAllItems, resolveConfig, resolveIndexPath, resolveItem, resolveLibraryDir, resolvePin, resolveSidecarPaths, saveConfig, saveLockFile, saveWorkspaceV2, sha256Hex, skaileHomeDir, storeSecrets, trpcGetUrl, userConfigPath, validateAllPlaceholders, validateKnowledge, validateNestingDepth, validatePlaceholder, writeManifestIfMissing };
|
|
3537
|
+
//# sourceMappingURL=chunk-WRRYESHC.js.map
|
|
3538
|
+
//# sourceMappingURL=chunk-WRRYESHC.js.map
|