@skaile/workspaces 0.24.0 → 0.26.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 +276 -0
- package/README.md +2 -2
- package/dist/{asset-feeds-WKIKSZ6Z.js → asset-feeds-WMVTI7KW.js} +11 -10
- package/dist/asset-feeds-WMVTI7KW.js.map +1 -0
- package/dist/asset-manager/index.js +11 -10
- package/dist/asset-manager/installer.js +10 -9
- 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/echo.js +1 -1
- package/dist/bridge/drivers/omp.js +64 -50
- package/dist/bridge/drivers/omp.js.map +1 -1
- package/dist/bridge/index.js +4 -4
- 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/omp.d.ts +20 -4
- package/dist/bridge/src/drivers/omp.d.ts.map +1 -1
- 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/validation.d.ts +1 -1
- package/dist/bridge/src/validation.d.ts.map +1 -1
- package/dist/{chunk-M5TE6YI5.js → chunk-23M4XZQW.js} +10 -52
- package/dist/chunk-23M4XZQW.js.map +1 -0
- package/dist/{chunk-DH4N5AW4.js → chunk-2FS4FPZ7.js} +3 -3
- package/dist/{chunk-DH4N5AW4.js.map → chunk-2FS4FPZ7.js.map} +1 -1
- package/dist/{chunk-6VTG73UY.js → chunk-45H3UO2R.js} +2 -2
- package/dist/{chunk-6VTG73UY.js.map → chunk-45H3UO2R.js.map} +1 -1
- package/dist/chunk-4SQ6Y6U7.js +28 -0
- package/dist/chunk-4SQ6Y6U7.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-46COM7M5.js → chunk-7OBGSR7O.js} +5 -5
- package/dist/chunk-7OBGSR7O.js.map +1 -0
- package/dist/{chunk-2RFOFHSM.js → chunk-BKF3UFF4.js} +21 -9
- package/dist/chunk-BKF3UFF4.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-J2TITSXF.js → chunk-BQRRBGDE.js} +2 -2
- package/dist/{chunk-J2TITSXF.js.map → chunk-BQRRBGDE.js.map} +1 -1
- package/dist/{chunk-5ESCS2OS.js → chunk-C32BRO2W.js} +67 -35
- package/dist/chunk-C32BRO2W.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-YX3UWPJ5.js → chunk-IEJ5IOC3.js} +27 -49
- 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-LJ52ZKIU.js → chunk-JIQLLZ65.js} +203 -39
- package/dist/chunk-JIQLLZ65.js.map +1 -0
- package/dist/{chunk-Z3M5K67G.js → chunk-KL2MQ6WI.js} +114 -63
- package/dist/chunk-KL2MQ6WI.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-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-N6TA6RSH.js → chunk-PY7AQRGH.js} +59 -13
- package/dist/chunk-PY7AQRGH.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-OYRW5RCM.js → chunk-QHXS3YDV.js} +9 -9
- package/dist/chunk-QHXS3YDV.js.map +1 -0
- package/dist/{chunk-2F3RUZXC.js → chunk-RTAIGPTF.js} +161 -106
- package/dist/chunk-RTAIGPTF.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-ICS76R4T.js → chunk-W7W66MDZ.js} +10 -8
- package/dist/chunk-W7W66MDZ.js.map +1 -0
- package/dist/{chunk-JQBHCJ6N.js → chunk-WD4LP66U.js} +329 -121
- package/dist/chunk-WD4LP66U.js.map +1 -0
- package/dist/{chunk-AFLH7B64.js → chunk-XGLGS5B4.js} +3 -3
- package/dist/{chunk-AFLH7B64.js.map → chunk-XGLGS5B4.js.map} +1 -1
- package/dist/{chunk-HIIARTRZ.js → chunk-YDTW4GT6.js} +450 -207
- package/dist/chunk-YDTW4GT6.js.map +1 -0
- package/dist/{chunk-2XY6732A.js → chunk-YRU4WB6Y.js} +5 -5
- package/dist/chunk-YRU4WB6Y.js.map +1 -0
- package/dist/{chunk-542K7SR6.js → chunk-Z5DI7PDG.js} +173 -90
- package/dist/chunk-Z5DI7PDG.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-GCJXPUHG.js → chunk-ZONCCO5N.js} +9 -4
- package/dist/chunk-ZONCCO5N.js.map +1 -0
- package/dist/{chunk-ODPII24X.js → chunk-ZYDE52WE.js} +3 -3
- package/dist/{chunk-ODPII24X.js.map → chunk-ZYDE52WE.js.map} +1 -1
- package/dist/cli/index.js +566 -425
- package/dist/cli/index.js.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/npx.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/validate.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/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 +8 -7
- package/dist/connectors/index.js +13 -12
- 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 +7 -6
- 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 +9 -6
- 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 +16 -3
- 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 +30 -36
- 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 +50 -79
- 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-OJUBGX6Z.js → ensure-sources-CVULUVH4.js} +12 -11
- package/dist/ensure-sources-CVULUVH4.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-JZFJD5IN.js} +3 -3
- package/dist/{flows-DYFTPCPM.js.map → flows-JZFJD5IN.js.map} +1 -1
- package/dist/library/index.js +14 -5
- package/dist/library/src/install/install-from-manifest.d.ts.map +1 -1
- 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-WYASW4BH.js +22 -0
- package/dist/{open-library-67FSSQWE.js.map → open-library-WYASW4BH.js.map} +1 -1
- package/dist/paths-BMW6JYW6.js +15 -0
- package/dist/{paths-FKKGS6BA.js.map → paths-BMW6JYW6.js.map} +1 -1
- package/dist/{plugin-store-IZ5SCRAV.js → plugin-store-O5VR45CA.js} +9 -8
- package/dist/plugin-store-O5VR45CA.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/external-mcp.d.ts +112 -0
- package/dist/runner/src/external-mcp.d.ts.map +1 -0
- package/dist/runner/src/resource-handler.d.ts.map +1 -1
- package/dist/runner/src/resources.d.ts +10 -2
- package/dist/runner/src/resources.d.ts.map +1 -1
- package/dist/runner/src/serve.d.ts.map +1 -1
- package/dist/runner/src/session-builder.d.ts +12 -0
- package/dist/runner/src/session-builder.d.ts.map +1 -1
- package/dist/runner/src/workspace-migration.d.ts.map +1 -1
- package/dist/sdk/asset-manager.js +11 -10
- package/dist/sdk/bridge.js +4 -4
- package/dist/sdk/core.js +7 -6
- 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-J7CYEQOF.js → setup-YNLFR5GB.js} +13 -12
- package/dist/setup-YNLFR5GB.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-CENBEASX.js +15 -0
- package/dist/{store-client-AEI6Y3KD.js.map → store-client-CENBEASX.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/install-manifest.d.ts +1 -1
- package/dist/types/src/install-manifest.d.ts.map +1 -1
- 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 +158 -151
- package/dist/asset-feeds-WKIKSZ6Z.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-2F3RUZXC.js.map +0 -1
- package/dist/chunk-2M3XTMOL.js +0 -23
- package/dist/chunk-2M3XTMOL.js.map +0 -1
- package/dist/chunk-2RFOFHSM.js.map +0 -1
- package/dist/chunk-2XY6732A.js.map +0 -1
- package/dist/chunk-46COM7M5.js.map +0 -1
- package/dist/chunk-542K7SR6.js.map +0 -1
- package/dist/chunk-5ESCS2OS.js.map +0 -1
- package/dist/chunk-D3VO6WNC.js.map +0 -1
- package/dist/chunk-DQWREFRQ.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-HIIARTRZ.js.map +0 -1
- package/dist/chunk-ICS76R4T.js.map +0 -1
- package/dist/chunk-JDX54X4Y.js.map +0 -1
- package/dist/chunk-JQBHCJ6N.js.map +0 -1
- package/dist/chunk-KLNL7QHN.js.map +0 -1
- package/dist/chunk-KOVLSBXK.js.map +0 -1
- package/dist/chunk-LJ52ZKIU.js.map +0 -1
- package/dist/chunk-M5TE6YI5.js.map +0 -1
- package/dist/chunk-N6TA6RSH.js.map +0 -1
- package/dist/chunk-NELZIQ2E.js.map +0 -1
- package/dist/chunk-OYRW5RCM.js.map +0 -1
- package/dist/chunk-QAVZOJCV.js.map +0 -1
- package/dist/chunk-YX3UWPJ5.js.map +0 -1
- package/dist/chunk-Z3M5K67G.js.map +0 -1
- package/dist/ensure-sources-OJUBGX6Z.js.map +0 -1
- package/dist/open-library-67FSSQWE.js +0 -13
- package/dist/paths-FKKGS6BA.js +0 -4
- package/dist/plugin-store-IZ5SCRAV.js.map +0 -1
- package/dist/setup-J7CYEQOF.js.map +0 -1
- package/dist/skills-CRL3VJNN.js +0 -7
- package/dist/store-client-AEI6Y3KD.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,25 +1,26 @@
|
|
|
1
|
-
import { WorkspacePlugin } from './chunk-
|
|
1
|
+
import { WorkspacePlugin } from './chunk-BQRRBGDE.js';
|
|
2
|
+
import { PROTOCOL_VERSION } from './chunk-TDSRLMDB.js';
|
|
2
3
|
import { WebSocketServerTransport } from './chunk-WQ7DE5UC.js';
|
|
3
4
|
import { assembleSystemPrompt, buildCapabilitiesPromptSection } from './chunk-W3UDISS2.js';
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import { createDriver } from './chunk-6VTG73UY.js';
|
|
5
|
+
import { EventNormalizer } from './chunk-23M4XZQW.js';
|
|
6
|
+
import { classifyClaudeSdkError } from './chunk-PAYAFNXG.js';
|
|
7
|
+
import { createDriver } from './chunk-45H3UO2R.js';
|
|
8
8
|
import { deployCatalogEntry, undeployCatalogEntry } from './chunk-LV2HPH3C.js';
|
|
9
|
-
import { registerBuiltinConnectors, findMissingPackages, installNpmPackages, ConnectorManager, ConnectorStartupError, buildConnectorPromptSection, buildSdkConnectorTools } from './chunk-
|
|
10
|
-
import { loadConnectorDeclarations, PreMintedSecretProvider, InMemorySecretProvider } from './chunk-
|
|
11
|
-
import { renderStimulusPrompt, buildOrchestratorPrompt } from './chunk-
|
|
12
|
-
import { resolveSettings, resolveApiKey, providerEnvKey } from './chunk-
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
9
|
+
import { registerBuiltinConnectors, findMissingPackages, installNpmPackages, ConnectorManager, ConnectorStartupError, buildConnectorPromptSection, buildSdkConnectorTools } from './chunk-YDTW4GT6.js';
|
|
10
|
+
import { loadConnectorDeclarations, PreMintedSecretProvider, InMemorySecretProvider } from './chunk-ZYDE52WE.js';
|
|
11
|
+
import { renderStimulusPrompt, buildOrchestratorPrompt } from './chunk-DEYYRFQU.js';
|
|
12
|
+
import { resolveSettings, resolveApiKey, providerEnvKey } from './chunk-KL2MQ6WI.js';
|
|
13
|
+
import { resolveDriverPaths } from './chunk-K5GBV4SA.js';
|
|
14
|
+
import { resolveRuntimeAssets } from './chunk-C32BRO2W.js';
|
|
15
|
+
import { resolveSkWorkspaceConfig, resolveAgentDir, stageMaterializedSkills, loadMcpServerDeclarations, COMPACTION_DEFAULTS, validateAssetRecipeAttr } from './chunk-Z5DI7PDG.js';
|
|
16
|
+
import { parseAssetRef } from './chunk-IEJ5IOC3.js';
|
|
16
17
|
import { getLogStore, resolveLogStoreConfig, createLogStoreFromConfig, OnLogBridgeSink, WsLogSink, registerLogStore, resetLogStore, createLogger } from './chunk-24UIWON4.js';
|
|
17
18
|
import { __require } from './chunk-NSBPE2FW.js';
|
|
18
19
|
import pc from 'picocolors';
|
|
19
20
|
import { Marked } from 'marked';
|
|
20
21
|
import { markedTerminal } from 'marked-terminal';
|
|
21
22
|
import { readdirSync, existsSync, readFileSync, unlinkSync, mkdirSync, writeFileSync, statSync, watch, openSync, readSync, closeSync } from 'fs';
|
|
22
|
-
import path4, { join, resolve, dirname, basename
|
|
23
|
+
import path4, { join, resolve, relative, sep, isAbsolute, dirname, basename } from 'path';
|
|
23
24
|
import { homedir } from 'os';
|
|
24
25
|
import * as z5 from 'zod';
|
|
25
26
|
import { z } from 'zod';
|
|
@@ -28,6 +29,10 @@ import { createHash, randomUUID } from 'crypto';
|
|
|
28
29
|
import { execFile, spawnSync } from 'child_process';
|
|
29
30
|
import { promisify } from 'util';
|
|
30
31
|
import { parse } from 'yaml';
|
|
32
|
+
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
|
|
33
|
+
import { SSEClientTransport } from '@modelcontextprotocol/sdk/client/sse.js';
|
|
34
|
+
import { getDefaultEnvironment, StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js';
|
|
35
|
+
import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js';
|
|
31
36
|
import mime from 'mime';
|
|
32
37
|
|
|
33
38
|
// runner/src/logging-bootstrap.ts
|
|
@@ -850,8 +855,262 @@ function validateSubstitutedPaths(command, args) {
|
|
|
850
855
|
return missing;
|
|
851
856
|
}
|
|
852
857
|
|
|
858
|
+
// runner/src/external-mcp.ts
|
|
859
|
+
function resolveRecordSecrets(record, secrets) {
|
|
860
|
+
if (!secrets) return record;
|
|
861
|
+
const resolved = {};
|
|
862
|
+
for (const [k, v] of Object.entries(record)) {
|
|
863
|
+
resolved[k] = secrets.resolve(v) ?? v;
|
|
864
|
+
}
|
|
865
|
+
return resolved;
|
|
866
|
+
}
|
|
867
|
+
var RESERVED_MCP_SERVER_IDS = /* @__PURE__ */ new Set([
|
|
868
|
+
"skaile-connectors",
|
|
869
|
+
"skaile-workspace",
|
|
870
|
+
"skaile-capabilities"
|
|
871
|
+
]);
|
|
872
|
+
function resolveExternalMcpDeclarations(projectDir, sessionId) {
|
|
873
|
+
const mcpLog = createLogger({
|
|
874
|
+
kind: "mcp",
|
|
875
|
+
subkind: "wiring",
|
|
876
|
+
instance: sessionId ?? "no-session"
|
|
877
|
+
});
|
|
878
|
+
const mcpDeclarations = loadMcpServerDeclarations(projectDir);
|
|
879
|
+
mcpLog.debug("loaded MCP declarations", { count: mcpDeclarations.length });
|
|
880
|
+
const recipeCache = createRecipeCache();
|
|
881
|
+
const nixFlakeRef = process.env.SKAILE_NIX_FLAKE_REF ?? "/etc/skaile/flake";
|
|
882
|
+
const resolved = [];
|
|
883
|
+
for (const decl of mcpDeclarations) {
|
|
884
|
+
if (RESERVED_MCP_SERVER_IDS.has(decl.id)) {
|
|
885
|
+
mcpLog.warn("MCP server skipped: reserved id", { id: decl.id });
|
|
886
|
+
continue;
|
|
887
|
+
}
|
|
888
|
+
let resolvedDecl = decl;
|
|
889
|
+
if (decl.recipe) {
|
|
890
|
+
const recipeLogKey = decl.recipe.flake ? { flake: decl.recipe.flake } : { attr: decl.recipe.attr };
|
|
891
|
+
try {
|
|
892
|
+
const recipeKey = decl.recipe.flake ? `mcps.${decl.id}` : decl.recipe.attr ?? `mcps.${decl.id}`;
|
|
893
|
+
const outPath = resolveRecipePath(nixFlakeRef, recipeKey, recipeCache);
|
|
894
|
+
const outPaths = /* @__PURE__ */ new Map([[decl.id, outPath]]);
|
|
895
|
+
const resolvedCommand = decl.command ? substituteRecipeTemplating(decl.command, outPaths) : decl.command;
|
|
896
|
+
const resolvedArgs = decl.args?.map((a) => substituteRecipeTemplating(a, outPaths));
|
|
897
|
+
const resolvedEnv = substituteRecipeMap(decl.env, outPaths);
|
|
898
|
+
resolvedDecl = {
|
|
899
|
+
...decl,
|
|
900
|
+
command: resolvedCommand,
|
|
901
|
+
args: resolvedArgs,
|
|
902
|
+
env: resolvedEnv
|
|
903
|
+
};
|
|
904
|
+
const recipeLog = createLogger({
|
|
905
|
+
kind: "mcp",
|
|
906
|
+
subkind: decl.id,
|
|
907
|
+
instance: "recipe-resolve"
|
|
908
|
+
});
|
|
909
|
+
const allResolved = [
|
|
910
|
+
resolvedCommand ?? "",
|
|
911
|
+
...resolvedArgs ?? [],
|
|
912
|
+
...Object.values(resolvedEnv ?? {})
|
|
913
|
+
];
|
|
914
|
+
for (const v of allResolved) {
|
|
915
|
+
if (v.includes("${recipe:")) {
|
|
916
|
+
recipeLog.warn("unresolved recipe marker after substitution", {
|
|
917
|
+
value: v,
|
|
918
|
+
declId: decl.id
|
|
919
|
+
});
|
|
920
|
+
}
|
|
921
|
+
}
|
|
922
|
+
const missingPaths = validateSubstitutedPaths(resolvedCommand, resolvedArgs);
|
|
923
|
+
if (missingPaths.length > 0) {
|
|
924
|
+
recipeLog.error("MCP server skipped: substituted path does not exist", void 0, {
|
|
925
|
+
id: decl.id,
|
|
926
|
+
...recipeLogKey,
|
|
927
|
+
missing: missingPaths
|
|
928
|
+
});
|
|
929
|
+
continue;
|
|
930
|
+
}
|
|
931
|
+
recipeLog.info("recipe substitution complete", { ...recipeLogKey, outPath });
|
|
932
|
+
} catch (err) {
|
|
933
|
+
createLogger({ kind: "mcp", subkind: decl.id, instance: "recipe-resolve" }).error(
|
|
934
|
+
"MCP server skipped: recipe resolution failed",
|
|
935
|
+
err,
|
|
936
|
+
{ id: decl.id, ...recipeLogKey, flakeRef: nixFlakeRef }
|
|
937
|
+
);
|
|
938
|
+
continue;
|
|
939
|
+
}
|
|
940
|
+
}
|
|
941
|
+
resolved.push(resolvedDecl);
|
|
942
|
+
}
|
|
943
|
+
return resolved;
|
|
944
|
+
}
|
|
945
|
+
var PASSTHROUGH_INPUT_ZOD = {
|
|
946
|
+
parse: (v) => v
|
|
947
|
+
};
|
|
948
|
+
function buildTransport(decl, secrets) {
|
|
949
|
+
const transport = decl.transport ?? "stdio";
|
|
950
|
+
if (transport === "stdio") {
|
|
951
|
+
if (!decl.command) {
|
|
952
|
+
throw new Error(`stdio MCP server '${decl.id}' is missing 'command'`);
|
|
953
|
+
}
|
|
954
|
+
const env = {
|
|
955
|
+
...getDefaultEnvironment(),
|
|
956
|
+
...resolveRecordSecrets(decl.env ?? {}, secrets)
|
|
957
|
+
};
|
|
958
|
+
return new StdioClientTransport({
|
|
959
|
+
command: decl.command,
|
|
960
|
+
args: decl.args ?? [],
|
|
961
|
+
env,
|
|
962
|
+
stderr: "pipe"
|
|
963
|
+
});
|
|
964
|
+
}
|
|
965
|
+
if (transport === "sse") {
|
|
966
|
+
if (!decl.url) throw new Error(`sse MCP server '${decl.id}' is missing 'url'`);
|
|
967
|
+
const headers = resolveRecordSecrets(decl.headers ?? {}, secrets);
|
|
968
|
+
return new SSEClientTransport(new URL(decl.url), { requestInit: { headers } });
|
|
969
|
+
}
|
|
970
|
+
if (transport === "http") {
|
|
971
|
+
if (!decl.url) throw new Error(`http MCP server '${decl.id}' is missing 'url'`);
|
|
972
|
+
const headers = resolveRecordSecrets(decl.headers ?? {}, secrets);
|
|
973
|
+
return new StreamableHTTPClientTransport(new URL(decl.url), { requestInit: { headers } });
|
|
974
|
+
}
|
|
975
|
+
throw new Error(`Unknown MCP transport '${transport}' for server '${decl.id}'`);
|
|
976
|
+
}
|
|
977
|
+
function defaultMcpClientConnector(secrets) {
|
|
978
|
+
return async (decl) => {
|
|
979
|
+
const transport = buildTransport(decl, secrets);
|
|
980
|
+
const client = new Client({ name: "skaile-runner", version: "1.0.0" }, { capabilities: {} });
|
|
981
|
+
await client.connect(transport);
|
|
982
|
+
return client;
|
|
983
|
+
};
|
|
984
|
+
}
|
|
985
|
+
var ExternalMcpManager = class {
|
|
986
|
+
/**
|
|
987
|
+
* @param registry Session capability registry to register MCP tools into.
|
|
988
|
+
* @param secrets Secret provider for resolving `env:` / `forge:` refs in the
|
|
989
|
+
* stdio subprocess env and sse/http headers.
|
|
990
|
+
* @param sessionId Used for the logger instance slice.
|
|
991
|
+
* @param connect Optional connector override (tests inject a fake client so
|
|
992
|
+
* no live subprocess is spawned). Defaults to the real SDK
|
|
993
|
+
* client + transport.
|
|
994
|
+
*/
|
|
995
|
+
constructor(registry, secrets, sessionId, connect) {
|
|
996
|
+
this.registry = registry;
|
|
997
|
+
this.connect = connect ?? defaultMcpClientConnector(secrets);
|
|
998
|
+
this.log = createLogger({
|
|
999
|
+
kind: "mcp",
|
|
1000
|
+
subkind: "runner-managed",
|
|
1001
|
+
instance: sessionId ?? "no-session"
|
|
1002
|
+
});
|
|
1003
|
+
}
|
|
1004
|
+
registry;
|
|
1005
|
+
servers = [];
|
|
1006
|
+
log;
|
|
1007
|
+
connect;
|
|
1008
|
+
/** True when at least one external server connected and registered tools. */
|
|
1009
|
+
hasServers() {
|
|
1010
|
+
return this.servers.length > 0;
|
|
1011
|
+
}
|
|
1012
|
+
/**
|
|
1013
|
+
* Connect every declaration and register its tools. Per-server failures are
|
|
1014
|
+
* logged and skipped so a single bad server never blocks the session.
|
|
1015
|
+
*/
|
|
1016
|
+
async start(declarations) {
|
|
1017
|
+
for (const decl of declarations) {
|
|
1018
|
+
try {
|
|
1019
|
+
await this.startServer(decl);
|
|
1020
|
+
} catch (err) {
|
|
1021
|
+
this.log.error("MCP server spawn failed; skipping", err, {
|
|
1022
|
+
id: decl.id,
|
|
1023
|
+
transport: decl.transport ?? "stdio"
|
|
1024
|
+
});
|
|
1025
|
+
}
|
|
1026
|
+
}
|
|
1027
|
+
}
|
|
1028
|
+
async startServer(decl) {
|
|
1029
|
+
const client = await this.connect(decl);
|
|
1030
|
+
const toolNames = [];
|
|
1031
|
+
try {
|
|
1032
|
+
const { tools } = await client.listTools();
|
|
1033
|
+
for (const tool of tools) {
|
|
1034
|
+
const cap = this.buildToolCapability(decl.id, tool, client);
|
|
1035
|
+
this.registry.register(cap, "agent");
|
|
1036
|
+
toolNames.push(cap.name);
|
|
1037
|
+
}
|
|
1038
|
+
} catch (err) {
|
|
1039
|
+
for (const name of toolNames) this.registry.deregister(name);
|
|
1040
|
+
try {
|
|
1041
|
+
await client.close();
|
|
1042
|
+
} catch {
|
|
1043
|
+
}
|
|
1044
|
+
throw err;
|
|
1045
|
+
}
|
|
1046
|
+
this.servers.push({ id: decl.id, client, toolNames });
|
|
1047
|
+
this.log.info("MCP server registered (runner-managed)", {
|
|
1048
|
+
id: decl.id,
|
|
1049
|
+
transport: decl.transport ?? "stdio",
|
|
1050
|
+
toolCount: toolNames.length,
|
|
1051
|
+
tools: toolNames
|
|
1052
|
+
});
|
|
1053
|
+
}
|
|
1054
|
+
/**
|
|
1055
|
+
* Wrap a single MCP tool as a {@link DefinedCapability}. The capability name
|
|
1056
|
+
* is `mcp__<server>__<tool>` (the naming claude-sdk wildcards and prompts
|
|
1057
|
+
* depend on). The handler proxies the call to the live MCP client; a tool
|
|
1058
|
+
* error (`isError`) is rethrown so the capability dispatch path surfaces it
|
|
1059
|
+
* to the LLM as a tool failure.
|
|
1060
|
+
*/
|
|
1061
|
+
buildToolCapability(serverId, tool, client) {
|
|
1062
|
+
const name = `mcp__${serverId}__${tool.name}`;
|
|
1063
|
+
const inputSchema = tool.inputSchema && typeof tool.inputSchema === "object" ? tool.inputSchema : { type: "object" };
|
|
1064
|
+
return {
|
|
1065
|
+
name,
|
|
1066
|
+
description: tool.description ?? `MCP tool ${tool.name} from server ${serverId}`,
|
|
1067
|
+
inputSchema,
|
|
1068
|
+
side: "agent",
|
|
1069
|
+
origin: { kind: "mcp", serverId },
|
|
1070
|
+
scope: "session",
|
|
1071
|
+
kind: "effect",
|
|
1072
|
+
// LLM-only — these are agent tools, not user command-palette actions.
|
|
1073
|
+
audience: ["llm"],
|
|
1074
|
+
inputZod: PASSTHROUGH_INPUT_ZOD,
|
|
1075
|
+
handler: async (input, ctx) => {
|
|
1076
|
+
const result = await client.callTool({
|
|
1077
|
+
name: tool.name,
|
|
1078
|
+
arguments: input ?? {}
|
|
1079
|
+
});
|
|
1080
|
+
const content = result.content ?? [];
|
|
1081
|
+
const text = content.filter((c) => c.type === "text" && typeof c.text === "string").map((c) => c.text).join("\n");
|
|
1082
|
+
if (result.isError) {
|
|
1083
|
+
throw new Error(text || `MCP tool ${name} returned an error`);
|
|
1084
|
+
}
|
|
1085
|
+
ctx.log.debug("mcp tool ok", { tool: name, hasText: text.length > 0 });
|
|
1086
|
+
return text.length > 0 ? text : content;
|
|
1087
|
+
}
|
|
1088
|
+
};
|
|
1089
|
+
}
|
|
1090
|
+
/**
|
|
1091
|
+
* Deregister every tool and close every client (kills the subprocesses).
|
|
1092
|
+
* Best-effort: a failed close on one server does not prevent the rest.
|
|
1093
|
+
*/
|
|
1094
|
+
async dispose() {
|
|
1095
|
+
for (const server of this.servers) {
|
|
1096
|
+
for (const toolName of server.toolNames) {
|
|
1097
|
+
this.registry.deregister(toolName);
|
|
1098
|
+
}
|
|
1099
|
+
try {
|
|
1100
|
+
await server.client.close();
|
|
1101
|
+
} catch (err) {
|
|
1102
|
+
this.log.warn("MCP server close failed", {
|
|
1103
|
+
id: server.id,
|
|
1104
|
+
error: err instanceof Error ? err.message : String(err)
|
|
1105
|
+
});
|
|
1106
|
+
}
|
|
1107
|
+
}
|
|
1108
|
+
this.servers.length = 0;
|
|
1109
|
+
}
|
|
1110
|
+
};
|
|
1111
|
+
|
|
853
1112
|
// runner/src/resources.ts
|
|
854
|
-
async function buildAgentResources(projectDir, driverType, _onLog, watch, secretProvider, sessionMeta, tokenMediator, preMintedSecrets, deferFilesystemMounts) {
|
|
1113
|
+
async function buildAgentResources(projectDir, driverType, _onLog, watch, secretProvider, sessionMeta, tokenMediator, preMintedSecrets, deferFilesystemMounts, capabilityRegistry) {
|
|
855
1114
|
const resLog = createLogger({
|
|
856
1115
|
kind: "runner",
|
|
857
1116
|
subkind: "resources",
|
|
@@ -920,13 +1179,9 @@ async function buildAgentResources(projectDir, driverType, _onLog, watch, secret
|
|
|
920
1179
|
}
|
|
921
1180
|
}
|
|
922
1181
|
const resourcePromptSection = resourceManager ? buildConnectorPromptSection(resourceManager) : "";
|
|
923
|
-
const mcpLog = createLogger({
|
|
924
|
-
kind: "mcp",
|
|
925
|
-
subkind: "wiring",
|
|
926
|
-
instance: sessionMeta?.sessionId ?? "no-session"
|
|
927
|
-
});
|
|
928
1182
|
let mcpServers;
|
|
929
1183
|
let workspacePluginToShutdown = null;
|
|
1184
|
+
let externalMcpManager = null;
|
|
930
1185
|
if (driverType === "claude-sdk") {
|
|
931
1186
|
if (resourceManager) {
|
|
932
1187
|
const connectorsLog = createLogger({ kind: "mcp", subkind: "skaile-connectors" });
|
|
@@ -957,96 +1212,34 @@ async function buildAgentResources(projectDir, driverType, _onLog, watch, secret
|
|
|
957
1212
|
mcpServers = { ...mcpServers ?? {}, "skaile-workspace": wsServer };
|
|
958
1213
|
}
|
|
959
1214
|
workspacePluginToShutdown = workspacePlugin;
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
const
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
resolvedDecl = {
|
|
980
|
-
...decl,
|
|
981
|
-
command: resolvedCommand,
|
|
982
|
-
args: resolvedArgs,
|
|
983
|
-
env: resolvedEnv
|
|
984
|
-
};
|
|
985
|
-
const allResolved = [
|
|
986
|
-
resolvedCommand ?? "",
|
|
987
|
-
...resolvedArgs ?? [],
|
|
988
|
-
...Object.values(resolvedEnv ?? {})
|
|
989
|
-
];
|
|
990
|
-
for (const v of allResolved) {
|
|
991
|
-
if (v.includes("${recipe:")) {
|
|
992
|
-
const recipeLog2 = createLogger({
|
|
993
|
-
kind: "mcp",
|
|
994
|
-
subkind: decl.id,
|
|
995
|
-
instance: "recipe-resolve"
|
|
996
|
-
});
|
|
997
|
-
recipeLog2.warn("unresolved recipe marker after substitution", {
|
|
998
|
-
value: v,
|
|
999
|
-
declId: decl.id
|
|
1000
|
-
});
|
|
1001
|
-
}
|
|
1002
|
-
}
|
|
1003
|
-
const missingPaths = validateSubstitutedPaths(resolvedCommand, resolvedArgs);
|
|
1004
|
-
if (missingPaths.length > 0) {
|
|
1005
|
-
const recipeLog2 = createLogger({
|
|
1006
|
-
kind: "mcp",
|
|
1007
|
-
subkind: decl.id,
|
|
1008
|
-
instance: "recipe-resolve"
|
|
1009
|
-
});
|
|
1010
|
-
recipeLog2.error("MCP server skipped: substituted path does not exist", void 0, {
|
|
1011
|
-
id: decl.id,
|
|
1012
|
-
...recipeLogKey,
|
|
1013
|
-
missing: missingPaths
|
|
1014
|
-
});
|
|
1015
|
-
continue;
|
|
1016
|
-
}
|
|
1017
|
-
const recipeLog = createLogger({
|
|
1018
|
-
kind: "mcp",
|
|
1019
|
-
subkind: decl.id,
|
|
1020
|
-
instance: "recipe-resolve"
|
|
1021
|
-
});
|
|
1022
|
-
recipeLog.info("recipe substitution complete", {
|
|
1023
|
-
...recipeLogKey,
|
|
1024
|
-
outPath
|
|
1025
|
-
});
|
|
1026
|
-
} catch (err) {
|
|
1027
|
-
const recipeLog = createLogger({
|
|
1028
|
-
kind: "mcp",
|
|
1029
|
-
subkind: decl.id,
|
|
1030
|
-
instance: "recipe-resolve"
|
|
1031
|
-
});
|
|
1032
|
-
recipeLog.error("MCP server skipped: recipe resolution failed", err, {
|
|
1033
|
-
id: decl.id,
|
|
1034
|
-
...recipeLogKey,
|
|
1035
|
-
flakeRef: nixFlakeRef
|
|
1036
|
-
});
|
|
1037
|
-
continue;
|
|
1038
|
-
}
|
|
1039
|
-
}
|
|
1215
|
+
}
|
|
1216
|
+
if (capabilityRegistry) {
|
|
1217
|
+
const resolvedDecls = resolveExternalMcpDeclarations(projectDir, sessionMeta?.sessionId);
|
|
1218
|
+
if (resolvedDecls.length > 0) {
|
|
1219
|
+
externalMcpManager = new ExternalMcpManager(
|
|
1220
|
+
capabilityRegistry,
|
|
1221
|
+
secretProvider,
|
|
1222
|
+
sessionMeta?.sessionId
|
|
1223
|
+
);
|
|
1224
|
+
await externalMcpManager.start(resolvedDecls);
|
|
1225
|
+
}
|
|
1226
|
+
} else if (driverType === "claude-sdk") {
|
|
1227
|
+
const mcpLog = createLogger({
|
|
1228
|
+
kind: "mcp",
|
|
1229
|
+
subkind: "wiring",
|
|
1230
|
+
instance: sessionMeta?.sessionId ?? "no-session"
|
|
1231
|
+
});
|
|
1232
|
+
const resolvedDecls = resolveExternalMcpDeclarations(projectDir, sessionMeta?.sessionId);
|
|
1233
|
+
for (const decl of resolvedDecls) {
|
|
1040
1234
|
const serverConfig = toSdkMcpServerConfig(
|
|
1041
|
-
|
|
1235
|
+
decl,
|
|
1042
1236
|
secretProvider
|
|
1043
1237
|
);
|
|
1044
1238
|
if (serverConfig) {
|
|
1045
1239
|
mcpServers = { ...mcpServers ?? {}, [decl.id]: serverConfig };
|
|
1046
|
-
|
|
1047
|
-
declLog.info("MCP server registered", {
|
|
1240
|
+
createLogger({ kind: "mcp", subkind: decl.id }).info("MCP server registered", {
|
|
1048
1241
|
transport: decl.transport ?? "stdio",
|
|
1049
|
-
...decl.transport === "stdio" || !decl.transport ? { command:
|
|
1242
|
+
...decl.transport === "stdio" || !decl.transport ? { command: decl.command, args: decl.args } : { url: decl.url }
|
|
1050
1243
|
});
|
|
1051
1244
|
} else {
|
|
1052
1245
|
mcpLog.error("MCP server config invalid (translation returned null)", void 0, {
|
|
@@ -1056,7 +1249,8 @@ async function buildAgentResources(projectDir, driverType, _onLog, watch, secret
|
|
|
1056
1249
|
}
|
|
1057
1250
|
}
|
|
1058
1251
|
}
|
|
1059
|
-
if (!resourceManager && driverType !== "claude-sdk"
|
|
1252
|
+
if (!resourceManager && driverType !== "claude-sdk" && !externalMcpManager?.hasServers())
|
|
1253
|
+
return noopResult;
|
|
1060
1254
|
const startWatching = () => {
|
|
1061
1255
|
if (resourceManager && watch?.onFileChanged) {
|
|
1062
1256
|
const dedupTtlMs = watch.dedupTtlMs ?? 500;
|
|
@@ -1077,6 +1271,10 @@ async function buildAgentResources(projectDir, driverType, _onLog, watch, secret
|
|
|
1077
1271
|
}
|
|
1078
1272
|
};
|
|
1079
1273
|
const dispose = async () => {
|
|
1274
|
+
try {
|
|
1275
|
+
await externalMcpManager?.dispose();
|
|
1276
|
+
} catch {
|
|
1277
|
+
}
|
|
1080
1278
|
if (workspacePluginToShutdown) {
|
|
1081
1279
|
try {
|
|
1082
1280
|
await workspacePluginToShutdown.shutdown();
|
|
@@ -1100,15 +1298,6 @@ async function buildAgentResources(projectDir, driverType, _onLog, watch, secret
|
|
|
1100
1298
|
return noopResult;
|
|
1101
1299
|
}
|
|
1102
1300
|
}
|
|
1103
|
-
var RESERVED_MCP_SERVER_IDS = /* @__PURE__ */ new Set(["skaile-connectors", "skaile-workspace"]);
|
|
1104
|
-
function resolveRecordSecrets(record, secrets) {
|
|
1105
|
-
if (!secrets) return record;
|
|
1106
|
-
const resolved = {};
|
|
1107
|
-
for (const [k, v] of Object.entries(record)) {
|
|
1108
|
-
resolved[k] = secrets.resolve(v) ?? v;
|
|
1109
|
-
}
|
|
1110
|
-
return resolved;
|
|
1111
|
-
}
|
|
1112
1301
|
function toSdkMcpServerConfig(decl, secrets) {
|
|
1113
1302
|
const transport = decl.transport ?? "stdio";
|
|
1114
1303
|
if (transport === "stdio") {
|
|
@@ -1187,7 +1376,8 @@ async function createAgentSession(config) {
|
|
|
1187
1376
|
},
|
|
1188
1377
|
config.tokenMediator,
|
|
1189
1378
|
config.preMintedSecrets,
|
|
1190
|
-
config.deferFilesystemMounts
|
|
1379
|
+
config.deferFilesystemMounts,
|
|
1380
|
+
config.capabilityRegistry
|
|
1191
1381
|
);
|
|
1192
1382
|
const wsConfig = wsConfigOverride ?? resolveSkWorkspaceConfig(projectDir);
|
|
1193
1383
|
const contextSection = buildContextSection(wsConfig.agent?.context);
|
|
@@ -1470,7 +1660,8 @@ function handleMountResourceRequest(command, manager, emit) {
|
|
|
1470
1660
|
throw new Error(`Connector "${mountId}" has no projected mount directory`);
|
|
1471
1661
|
}
|
|
1472
1662
|
const targetPath = reqPath ? resolve(mountPath, reqPath) : mountPath;
|
|
1473
|
-
|
|
1663
|
+
const rel = relative(mountPath, targetPath);
|
|
1664
|
+
if (rel === ".." || rel.startsWith(`..${sep}`) || isAbsolute(rel)) {
|
|
1474
1665
|
throw new Error("Path traversal outside mount");
|
|
1475
1666
|
}
|
|
1476
1667
|
let data;
|
|
@@ -1740,7 +1931,7 @@ var CapabilityRegistry = class {
|
|
|
1740
1931
|
`Capability '${name}' invoked remotely but no remote invoker is wired. Call CapabilityRegistry.setRemoteInvoker(...) before dispatch.`
|
|
1741
1932
|
);
|
|
1742
1933
|
}
|
|
1743
|
-
return this.remoteInvoker(name, input);
|
|
1934
|
+
return this.remoteInvoker(name, input, this.byName.get(name)?.callTimeoutMs);
|
|
1744
1935
|
}
|
|
1745
1936
|
/**
|
|
1746
1937
|
* Register a capability. Validates that the registering `source` is
|
|
@@ -2709,7 +2900,7 @@ var FRAMEWORK_PACKAGES = [
|
|
|
2709
2900
|
"@skaile/workspaces/bridge",
|
|
2710
2901
|
"@skaile/workspaces/core",
|
|
2711
2902
|
"@skaile/workspaces/types",
|
|
2712
|
-
"@skaile/workspaces/
|
|
2903
|
+
"@skaile/workspaces/factory-assets",
|
|
2713
2904
|
"@skaile/workspaces/connectors",
|
|
2714
2905
|
"@skaile/workspaces/resolver",
|
|
2715
2906
|
"@skaile/workspaces/transport",
|
|
@@ -2861,7 +3052,7 @@ async function startAgentServer(opts) {
|
|
|
2861
3052
|
);
|
|
2862
3053
|
bootstrapCapabilityRegistry(capabilityRegistry);
|
|
2863
3054
|
const pendingCapabilityCalls = /* @__PURE__ */ new Map();
|
|
2864
|
-
const remoteCapabilityInvoker = (name, input) => {
|
|
3055
|
+
const remoteCapabilityInvoker = (name, input, timeoutMs) => {
|
|
2865
3056
|
const callId = typeof crypto?.randomUUID === "function" ? crypto.randomUUID() : `rcap-${Date.now()}-${Math.floor(Math.random() * 1e9)}`;
|
|
2866
3057
|
return new Promise((resolve3, reject) => {
|
|
2867
3058
|
if (!transport.connected) {
|
|
@@ -2871,7 +3062,7 @@ async function startAgentServer(opts) {
|
|
|
2871
3062
|
const timer = setTimeout(() => {
|
|
2872
3063
|
pendingCapabilityCalls.delete(callId);
|
|
2873
3064
|
reject(new Error(`Remote capability ${name} (callId=${callId}) timed out`));
|
|
2874
|
-
}, DEFAULT_CAPABILITY_CALL_TIMEOUT_MS);
|
|
3065
|
+
}, timeoutMs ?? DEFAULT_CAPABILITY_CALL_TIMEOUT_MS);
|
|
2875
3066
|
pendingCapabilityCalls.set(callId, { resolve: resolve3, reject, timer });
|
|
2876
3067
|
transport.send({
|
|
2877
3068
|
type: "capability_invoked",
|
|
@@ -3046,6 +3237,11 @@ async function startAgentServer(opts) {
|
|
|
3046
3237
|
deferFilesystemMounts: true,
|
|
3047
3238
|
onLog: (line) => log(`[serve] ${line}`),
|
|
3048
3239
|
capabilities: buildCapabilityHooks(),
|
|
3240
|
+
// Hand the registry to the session builder so external (declarative /
|
|
3241
|
+
// recipe-backed) MCP servers are spawned by the RUNNER and their tools
|
|
3242
|
+
// registered as `mcp`-origin capabilities — works on every driver, no
|
|
3243
|
+
// dependence on the claude-agent-sdk `mcpServers` query option.
|
|
3244
|
+
capabilityRegistry,
|
|
3049
3245
|
// v3: pre-minted credentials replace the tokenMediator for initial mints.
|
|
3050
3246
|
// Refresh routes through `host.refresh_credential` (invoked from the
|
|
3051
3247
|
// bridge driver's onAuthError callback). The legacy `tokenMediator`
|
|
@@ -3065,6 +3261,18 @@ async function startAgentServer(opts) {
|
|
|
3065
3261
|
let secretProvider;
|
|
3066
3262
|
let runtimeIdentity;
|
|
3067
3263
|
let preMintedSecrets;
|
|
3264
|
+
try {
|
|
3265
|
+
const { skillsDir } = resolveDriverPaths({
|
|
3266
|
+
driver: opts.driver ?? wsConfig.agent_config?.default?.driver ?? "claude-sdk"
|
|
3267
|
+
});
|
|
3268
|
+
const stagedSkills = stageMaterializedSkills(opts.projectDir, skillsDir);
|
|
3269
|
+
if (stagedSkills.length > 0) {
|
|
3270
|
+
log(
|
|
3271
|
+
`[serve] staged ${stagedSkills.length} materialized skill(s): ${stagedSkills.join(", ")}`
|
|
3272
|
+
);
|
|
3273
|
+
}
|
|
3274
|
+
} catch {
|
|
3275
|
+
}
|
|
3068
3276
|
if (secretsMode === "provisioned") {
|
|
3069
3277
|
log("[serve] secrets mode: provisioned \u2014 waiting for provision_secrets command");
|
|
3070
3278
|
} else {
|
|
@@ -4303,5 +4511,5 @@ function touchSession(state) {
|
|
|
4303
4511
|
}
|
|
4304
4512
|
|
|
4305
4513
|
export { CLAUDE_CODE_CREDENTIALS_KEY, COMPILE_MANIFEST_FILENAME, CapabilityRegistry, DEFAULT_CAPABILITY_CALL_TIMEOUT_MS, DEFAULT_COALESCE_MS, MarkdownStreamer, PreInitRingSink, agentDefinitionExists, bootstrapCapabilityRegistry, bootstrapRunnerLogStore, buildAgentResources, buildClientCapabilityHandler, buildContextSection, buildEnvironmentSection, builtinCapabilities, clearPreInitRingSink, clearSession, compileComposition, computeCapabilitySignature, createAgentSession, createSessionStimulusBus, defineCapability, deleteSession, emitSystemPromptComposed, ensureGitConfigInclude, extractClaudeAiOauthExpiresAt, getPreInitRingSink, handleMountResourceRequest, handleResourceRequest, installPreInitRingSink, listSessions, loadAgentManifest, loadCompileManifest, loadCompileManifestFromDir, loadSession, loadSessionById, newSession, registerCompositionCapabilities, rejectCapabilityOnApprovalDeny, resetRunnerLogStore, resolveAgentComposition, resolveAgentMixins, resolveBinding, resolveCapabilityCallTimeoutMs, resolveCapabilityResult, resolveComposition, resolveMixin, runAgentChat, saveSession, setCurrentSession, startAgentServer, touchSession, writeClaudeCodeCredentialsFile };
|
|
4306
|
-
//# sourceMappingURL=chunk-
|
|
4307
|
-
//# sourceMappingURL=chunk-
|
|
4514
|
+
//# sourceMappingURL=chunk-WD4LP66U.js.map
|
|
4515
|
+
//# sourceMappingURL=chunk-WD4LP66U.js.map
|