@skaile/workspaces 3.16.2 → 3.18.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 +69 -0
- package/dist/app-sdk/index.js +1 -1
- package/dist/{asset-feeds-FQT6GH24.js → asset-feeds-LT4GI576.js} +7 -7
- package/dist/{asset-feeds-FQT6GH24.js.map → asset-feeds-LT4GI576.js.map} +1 -1
- package/dist/asset-manager/catalog-deployer.js +3 -3
- package/dist/asset-manager/index.js +6 -6
- package/dist/asset-manager/installer.js +4 -4
- package/dist/bridge/codex-app-server.d.ts +2 -0
- package/dist/bridge/codex-app-server.js +5 -0
- package/dist/bridge/codex-app-server.js.map +1 -0
- package/dist/bridge/drivers/claude-sdk.js +5 -5
- package/dist/bridge/drivers/codex.js +1137 -4
- package/dist/bridge/drivers/codex.js.map +1 -1
- package/dist/bridge/drivers/continue.js +2 -2
- package/dist/bridge/drivers/echo.js +2 -2
- package/dist/bridge/drivers/gemini.js +3 -3
- package/dist/bridge/drivers/goose.js +2 -2
- package/dist/bridge/drivers/omp.js +1 -1
- package/dist/bridge/drivers/opencode.js +2 -2
- package/dist/bridge/drivers/qwen.js +3 -3
- package/dist/bridge/index.js +7 -6
- package/dist/bridge/src/capability-dispatch.d.ts +1 -1
- package/dist/bridge/src/capability-dispatch.d.ts.map +1 -1
- package/dist/bridge/src/codex/credentials.d.ts +12 -0
- package/dist/bridge/src/codex/credentials.d.ts.map +1 -0
- package/dist/bridge/src/codex/inputs.d.ts +8 -0
- package/dist/bridge/src/codex/inputs.d.ts.map +1 -0
- package/dist/bridge/src/codex/instance-state.d.ts +16 -0
- package/dist/bridge/src/codex/instance-state.d.ts.map +1 -0
- package/dist/bridge/src/codex/managed-driver.d.ts +71 -0
- package/dist/bridge/src/codex/managed-driver.d.ts.map +1 -0
- package/dist/bridge/src/codex/native-approvals.d.ts +22 -0
- package/dist/bridge/src/codex/native-approvals.d.ts.map +1 -0
- package/dist/bridge/src/codex/native-policy.d.ts +38 -0
- package/dist/bridge/src/codex/native-policy.d.ts.map +1 -0
- package/dist/bridge/src/codex/native-protocol.generated.d.ts +1411 -0
- package/dist/bridge/src/codex/native-protocol.generated.d.ts.map +1 -0
- package/dist/bridge/src/codex/native-state.d.ts +7 -0
- package/dist/bridge/src/codex/native-state.d.ts.map +1 -0
- package/dist/bridge/src/codex/questions.d.ts +19 -0
- package/dist/bridge/src/codex/questions.d.ts.map +1 -0
- package/dist/bridge/src/codex-app-server.d.ts +60 -0
- package/dist/bridge/src/codex-app-server.d.ts.map +1 -0
- package/dist/bridge/src/drivers/codex.d.ts +9 -1
- package/dist/bridge/src/drivers/codex.d.ts.map +1 -1
- package/dist/bridge/src/index.d.ts +1 -0
- package/dist/bridge/src/index.d.ts.map +1 -1
- package/dist/bridge/src/normalizer.d.ts.map +1 -1
- package/dist/bridge/src/runtime.d.ts +3 -2
- package/dist/bridge/src/runtime.d.ts.map +1 -1
- package/dist/bridge/src/types.d.ts +77 -4
- package/dist/bridge/src/types.d.ts.map +1 -1
- package/dist/{chunk-2KBA5OO2.js → chunk-23L3P7IB.js} +4 -4
- package/dist/{chunk-2KBA5OO2.js.map → chunk-23L3P7IB.js.map} +1 -1
- package/dist/{chunk-NC5YXVZF.js → chunk-2FDKUKDE.js} +3 -3
- package/dist/{chunk-NC5YXVZF.js.map → chunk-2FDKUKDE.js.map} +1 -1
- package/dist/{chunk-GRVSSAAQ.js → chunk-2IROGAS7.js} +2 -2
- package/dist/{chunk-GRVSSAAQ.js.map → chunk-2IROGAS7.js.map} +1 -1
- package/dist/{chunk-BUKPS4YL.js → chunk-4JDCKPTM.js} +2 -2
- package/dist/{chunk-BUKPS4YL.js.map → chunk-4JDCKPTM.js.map} +1 -1
- package/dist/{chunk-5KSIVLOX.js → chunk-5T7Y3AZU.js} +3 -3
- package/dist/{chunk-5KSIVLOX.js.map → chunk-5T7Y3AZU.js.map} +1 -1
- package/dist/{chunk-SWUVULBU.js → chunk-67KB2A77.js} +7 -7
- package/dist/{chunk-SWUVULBU.js.map → chunk-67KB2A77.js.map} +1 -1
- package/dist/{chunk-RRVQAE5D.js → chunk-7ZO3MUP3.js} +6 -5
- package/dist/chunk-7ZO3MUP3.js.map +1 -0
- package/dist/{chunk-EO7IJY3Q.js → chunk-AI2PZX4H.js} +3 -3
- package/dist/{chunk-EO7IJY3Q.js.map → chunk-AI2PZX4H.js.map} +1 -1
- package/dist/{chunk-CMGYUF5P.js → chunk-BJI7IGZF.js} +7 -7
- package/dist/{chunk-CMGYUF5P.js.map → chunk-BJI7IGZF.js.map} +1 -1
- package/dist/{chunk-HY6CIKFH.js → chunk-CP62G5PK.js} +8 -7
- package/dist/chunk-CP62G5PK.js.map +1 -0
- package/dist/{chunk-PBRMY64S.js → chunk-CQY7XKRV.js} +30 -9
- package/dist/chunk-CQY7XKRV.js.map +1 -0
- package/dist/{chunk-OIDFK7SG.js → chunk-DCG4UWJM.js} +3 -3
- package/dist/{chunk-OIDFK7SG.js.map → chunk-DCG4UWJM.js.map} +1 -1
- package/dist/{chunk-VT4MPCRK.js → chunk-FBD5SOIH.js} +3 -3
- package/dist/{chunk-VT4MPCRK.js.map → chunk-FBD5SOIH.js.map} +1 -1
- package/dist/{chunk-DUMD4AA2.js → chunk-FYVDBIZV.js} +6 -6
- package/dist/{chunk-DUMD4AA2.js.map → chunk-FYVDBIZV.js.map} +1 -1
- package/dist/{chunk-RTM4SFLA.js → chunk-GMKNGIIB.js} +7 -4
- package/dist/chunk-GMKNGIIB.js.map +1 -0
- package/dist/{chunk-NIQPSQFN.js → chunk-GMMACS5W.js} +4 -4
- package/dist/{chunk-NIQPSQFN.js.map → chunk-GMMACS5W.js.map} +1 -1
- package/dist/{chunk-QFYEDM63.js → chunk-GRA4BWCV.js} +5 -5
- package/dist/{chunk-QFYEDM63.js.map → chunk-GRA4BWCV.js.map} +1 -1
- package/dist/{chunk-CIPK5JMJ.js → chunk-H662SXKS.js} +4 -4
- package/dist/{chunk-CIPK5JMJ.js.map → chunk-H662SXKS.js.map} +1 -1
- package/dist/{chunk-4W2OOVN5.js → chunk-IST2V7RU.js} +3 -3
- package/dist/{chunk-4W2OOVN5.js.map → chunk-IST2V7RU.js.map} +1 -1
- package/dist/{chunk-L2UE4YJO.js → chunk-IT42ZT3T.js} +9 -9
- package/dist/{chunk-L2UE4YJO.js.map → chunk-IT42ZT3T.js.map} +1 -1
- package/dist/{chunk-FRER2PEN.js → chunk-J7VSUGGH.js} +16 -3
- package/dist/chunk-J7VSUGGH.js.map +1 -0
- package/dist/{chunk-ZNCZ7RUO.js → chunk-JVFZ5R7L.js} +3 -3
- package/dist/{chunk-ZNCZ7RUO.js.map → chunk-JVFZ5R7L.js.map} +1 -1
- package/dist/chunk-LOO5CB5M.js +12 -0
- package/dist/chunk-LOO5CB5M.js.map +1 -0
- package/dist/{chunk-AL6BU3SP.js → chunk-OJ4N4T4H.js} +12 -4
- package/dist/chunk-OJ4N4T4H.js.map +1 -0
- package/dist/chunk-QEZPFJX3.js +254 -0
- package/dist/chunk-QEZPFJX3.js.map +1 -0
- package/dist/{chunk-C4AP3XZB.js → chunk-QG2ZXU5W.js} +4 -4
- package/dist/{chunk-C4AP3XZB.js.map → chunk-QG2ZXU5W.js.map} +1 -1
- package/dist/{chunk-I3COVVFB.js → chunk-RJOGAEIY.js} +1024 -204
- package/dist/chunk-RJOGAEIY.js.map +1 -0
- package/dist/{chunk-OZ7UNMTK.js → chunk-RPVTPVGX.js} +7 -5
- package/dist/chunk-RPVTPVGX.js.map +1 -0
- package/dist/{chunk-S4UA244H.js → chunk-S635WMXH.js} +4 -4
- package/dist/{chunk-S4UA244H.js.map → chunk-S635WMXH.js.map} +1 -1
- package/dist/{chunk-BQMRUH7J.js → chunk-SFCVAEJ5.js} +4 -4
- package/dist/{chunk-BQMRUH7J.js.map → chunk-SFCVAEJ5.js.map} +1 -1
- package/dist/{chunk-EXT2LNST.js → chunk-SH7GXS7V.js} +125 -37
- package/dist/chunk-SH7GXS7V.js.map +1 -0
- package/dist/chunk-T3YLZQS4.js +336 -0
- package/dist/chunk-T3YLZQS4.js.map +1 -0
- package/dist/{chunk-X7FJ3ES3.js → chunk-X3LUB275.js} +4 -4
- package/dist/{chunk-X7FJ3ES3.js.map → chunk-X3LUB275.js.map} +1 -1
- package/dist/chunk-XKSGEYZC.js +244 -0
- package/dist/chunk-XKSGEYZC.js.map +1 -0
- package/dist/{chunk-SUPIVTLX.js → chunk-XL45U3C5.js} +3 -3
- package/dist/{chunk-SUPIVTLX.js.map → chunk-XL45U3C5.js.map} +1 -1
- package/dist/{chunk-AXEOG4B5.js → chunk-YCMHWNZA.js} +3 -3
- package/dist/{chunk-AXEOG4B5.js.map → chunk-YCMHWNZA.js.map} +1 -1
- package/dist/cli/index.js +75 -53
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/src/commands/serve.d.ts.map +1 -1
- package/dist/client/index.js +1 -1
- package/dist/client/src/client.d.ts +3 -2
- package/dist/client/src/client.d.ts.map +1 -1
- package/dist/connectors/config.js +4 -4
- package/dist/connectors/index.js +12 -11
- package/dist/connectors/src/connector-prompt.d.ts +11 -0
- package/dist/connectors/src/connector-prompt.d.ts.map +1 -1
- package/dist/core/index.js +3 -3
- package/dist/core/runtime-assets.js +2 -2
- package/dist/core/src/workspace-config.d.ts.map +1 -1
- package/dist/core/workspace-config.js +1 -1
- package/dist/deploy/index.js +3 -3
- package/dist/{ensure-sources-4GBXK6UR.js → ensure-sources-4BQ6GMYG.js} +9 -9
- package/dist/{ensure-sources-4GBXK6UR.js.map → ensure-sources-4BQ6GMYG.js.map} +1 -1
- package/dist/factory-assets/connectors/box.js +12 -11
- package/dist/factory-assets/connectors/deploy.js +12 -11
- package/dist/factory-assets/connectors/devserver.js +12 -11
- package/dist/factory-assets/connectors/flow/CONNECTOR.md +4 -5
- package/dist/factory-assets/connectors/flow/adapter.d.ts +8 -0
- package/dist/factory-assets/connectors/flow/adapter.d.ts.map +1 -1
- package/dist/factory-assets/connectors/flow/adapter.js +12 -11
- package/dist/factory-assets/connectors/flow/contract/index.d.ts +1 -1
- package/dist/factory-assets/connectors/flow/contract/index.d.ts.map +1 -1
- package/dist/factory-assets/connectors/flow/contract/schema.d.ts +50 -17
- package/dist/factory-assets/connectors/flow/contract/schema.d.ts.map +1 -1
- package/dist/factory-assets/connectors/flow/contract.js +3 -3
- package/dist/factory-assets/connectors/flow/engine/index.d.ts +1 -0
- package/dist/factory-assets/connectors/flow/engine/index.d.ts.map +1 -1
- package/dist/factory-assets/connectors/flow/engine.js +5 -5
- package/dist/factory-assets/connectors/flow/run-flow.js +13 -12
- package/dist/factory-assets/connectors/flow/subprompt-runner.d.ts +10 -1
- package/dist/factory-assets/connectors/flow/subprompt-runner.d.ts.map +1 -1
- package/dist/factory-assets/connectors/flow.js +12 -11
- package/dist/factory-assets/connectors/git.js +12 -11
- package/dist/factory-assets/connectors/gmail.js +12 -11
- package/dist/factory-assets/connectors/googledrive.js +12 -11
- package/dist/factory-assets/connectors/local.js +12 -11
- package/dist/factory-assets/connectors/mattermost.js +12 -11
- package/dist/factory-assets/connectors/memory.js +12 -11
- package/dist/factory-assets/connectors/minio.js +12 -11
- package/dist/factory-assets/connectors/postgres.js +12 -11
- package/dist/factory-assets/connectors/s3.js +12 -11
- package/dist/factory-assets/connectors/sharepoint.js +12 -11
- package/dist/factory-assets/connectors/sqlite.js +12 -11
- package/dist/factory-assets/connectors/static-server.js +12 -11
- package/dist/factory-assets/connectors/tunnel.js +12 -11
- package/dist/factory-assets/connectors/webdav.js +12 -11
- package/dist/factory-assets/connectors/xstate-store.js +12 -11
- package/dist/factory-assets/connectors/xstate.js +12 -11
- package/dist/{flows-2SUFOVVO.js → flows-COBS26MK.js} +6 -6
- package/dist/{flows-2SUFOVVO.js.map → flows-COBS26MK.js.map} +1 -1
- package/dist/{helpers-26LW4IXY.js → helpers-4UJMSN6T.js} +9 -9
- package/dist/{helpers-26LW4IXY.js.map → helpers-4UJMSN6T.js.map} +1 -1
- package/dist/library/index.js +4 -4
- package/dist/library/install.js +3 -3
- package/dist/{library-publish-IYGHOPEK.js → library-publish-QHQDN4IC.js} +14 -14
- package/dist/{library-publish-IYGHOPEK.js.map → library-publish-QHQDN4IC.js.map} +1 -1
- package/dist/{open-library-HH5LST7Z.js → open-library-ZDM6DUKJ.js} +12 -12
- package/dist/{open-library-HH5LST7Z.js.map → open-library-ZDM6DUKJ.js.map} +1 -1
- package/dist/{paths-4APA2PKT.js → paths-CZPCCBYX.js} +6 -6
- package/dist/{paths-4APA2PKT.js.map → paths-CZPCCBYX.js.map} +1 -1
- package/dist/{plugin-store-JQAIKR3R.js → plugin-store-ZEIBSNTO.js} +5 -5
- package/dist/{plugin-store-JQAIKR3R.js.map → plugin-store-ZEIBSNTO.js.map} +1 -1
- package/dist/{project-U5QRUCBN.js → project-JJUAAI7N.js} +10 -10
- package/dist/{project-U5QRUCBN.js.map → project-JJUAAI7N.js.map} +1 -1
- package/dist/resolver/index.js +3 -3
- package/dist/runner/index.js +25 -16
- package/dist/runner/src/capability-registry.d.ts +4 -0
- package/dist/runner/src/capability-registry.d.ts.map +1 -1
- package/dist/runner/src/codex-init.d.ts +5 -0
- package/dist/runner/src/codex-init.d.ts.map +1 -0
- package/dist/runner/src/codex-resource-tools.d.ts +16 -0
- package/dist/runner/src/codex-resource-tools.d.ts.map +1 -0
- package/dist/runner/src/codex-tools.d.ts +12 -0
- package/dist/runner/src/codex-tools.d.ts.map +1 -0
- package/dist/runner/src/define-capability.d.ts +2 -0
- package/dist/runner/src/define-capability.d.ts.map +1 -1
- package/dist/runner/src/external-mcp.d.ts +8 -3
- package/dist/runner/src/external-mcp.d.ts.map +1 -1
- package/dist/runner/src/index.d.ts +2 -0
- package/dist/runner/src/index.d.ts.map +1 -1
- package/dist/runner/src/managed-codex-bootstrap.d.ts +54 -0
- package/dist/runner/src/managed-codex-bootstrap.d.ts.map +1 -0
- package/dist/runner/src/resources.d.ts +1 -0
- package/dist/runner/src/resources.d.ts.map +1 -1
- package/dist/runner/src/serve.d.ts +5 -0
- package/dist/runner/src/serve.d.ts.map +1 -1
- package/dist/runner/src/session-builder.d.ts +18 -1
- package/dist/runner/src/session-builder.d.ts.map +1 -1
- package/dist/sdk/asset-manager.js +6 -6
- package/dist/sdk/bridge.js +7 -6
- package/dist/sdk/client.js +1 -1
- package/dist/sdk/core.js +3 -3
- package/dist/sdk/flow.js +5 -5
- package/dist/sdk/index.js +26 -17
- package/dist/sdk/index.js.map +1 -1
- package/dist/sdk/resolver.js +3 -3
- package/dist/sdk/runner.js +25 -16
- package/dist/sdk/session.js +2 -2
- package/dist/sdk/store.js +1 -1
- package/dist/sdk/types.js +1 -1
- package/dist/session/index.js +2 -2
- package/dist/{setup-XKTBHRWM.js → setup-PS6ZERZ5.js} +9 -8
- package/dist/setup-PS6ZERZ5.js.map +1 -0
- package/dist/{skills-Q7PJVB3W.js → skills-LG6IQSSN.js} +5 -5
- package/dist/{skills-Q7PJVB3W.js.map → skills-LG6IQSSN.js.map} +1 -1
- package/dist/{source-6PBVTACZ.js → source-QLDIZCI3.js} +13 -13
- package/dist/{source-6PBVTACZ.js.map → source-QLDIZCI3.js.map} +1 -1
- package/dist/{source-manifest-publish-VBVNW7KL.js → source-manifest-publish-J3AVCTLX.js} +15 -15
- package/dist/{source-manifest-publish-VBVNW7KL.js.map → source-manifest-publish-J3AVCTLX.js.map} +1 -1
- package/dist/store/index.js +1 -1
- package/dist/store/react.js +1 -1
- package/dist/store/react.js.map +1 -1
- package/dist/store/src/react.d.ts +1 -1
- package/dist/store/src/react.d.ts.map +1 -1
- package/dist/store/src/store.d.ts +2 -1
- package/dist/store/src/store.d.ts.map +1 -1
- package/dist/tui/index.js +25 -16
- package/dist/tui/index.js.map +1 -1
- package/dist/types/index.js +1 -1
- package/dist/types/src/events.d.ts +14 -1
- package/dist/types/src/events.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +3 -3
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/lifecycle.d.ts +43 -0
- package/dist/types/src/lifecycle.d.ts.map +1 -1
- package/dist/types/src/protocol.d.ts +18 -0
- package/dist/types/src/protocol.d.ts.map +1 -1
- package/dist/types/src/runtime.d.ts +3 -1
- package/dist/types/src/runtime.d.ts.map +1 -1
- package/dist/types/src/version.d.ts +7 -1
- package/dist/types/src/version.d.ts.map +1 -1
- package/dist/workspace-plugin/adapters/mcp.js +9 -255
- package/dist/workspace-plugin/adapters/mcp.js.map +1 -1
- package/dist/workspace-plugin/adapters/omp.js +7 -7
- package/dist/workspace-plugin/index.js +1 -1
- package/package.json +10 -1
- package/dist/chunk-AL6BU3SP.js.map +0 -1
- package/dist/chunk-EXT2LNST.js.map +0 -1
- package/dist/chunk-FRER2PEN.js.map +0 -1
- package/dist/chunk-HY6CIKFH.js.map +0 -1
- package/dist/chunk-I3COVVFB.js.map +0 -1
- package/dist/chunk-OZ7UNMTK.js.map +0 -1
- package/dist/chunk-PBRMY64S.js.map +0 -1
- package/dist/chunk-RRVQAE5D.js.map +0 -1
- package/dist/chunk-RTM4SFLA.js.map +0 -1
- package/dist/setup-XKTBHRWM.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { factoryAssetRoots } from './chunk-
|
|
1
|
+
import { factoryAssetRoots } from './chunk-DCG4UWJM.js';
|
|
2
2
|
import fs from 'fs';
|
|
3
3
|
import os from 'os';
|
|
4
4
|
import path from 'path';
|
|
@@ -19,5 +19,5 @@ var MONOREPO_ROOT = findMonorepoRoot(__ownDir);
|
|
|
19
19
|
var AI_RESOURCES = factoryAssetRoots()[0] ?? path.join(os.homedir(), ".skaile", "libraries");
|
|
20
20
|
|
|
21
21
|
export { AI_RESOURCES, MONOREPO_ROOT };
|
|
22
|
-
//# sourceMappingURL=chunk-
|
|
23
|
-
//# sourceMappingURL=chunk-
|
|
22
|
+
//# sourceMappingURL=chunk-JVFZ5R7L.js.map
|
|
23
|
+
//# sourceMappingURL=chunk-JVFZ5R7L.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../cli/src/paths.ts"],"names":[],"mappings":";;;;;;AAgBA,IAAM,WAAW,IAAA,CAAK,OAAA,CAAQ,aAAA,CAAc,MAAA,CAAA,IAAA,CAAY,GAAG,CAAC,CAAA;AAW5D,SAAS,iBAAiB,IAAA,EAA6B;AACrD,EAAA,IAAI,GAAA,GAAM,IAAA;AACV,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,CAAA,EAAG,CAAA,EAAA,EAAK;AAC1B,IAAA,IAAI,EAAA,CAAG,WAAW,IAAA,CAAK,IAAA,CAAK,KAAK,YAAY,CAAC,GAAG,OAAO,GAAA;AACxD,IAAA,MAAM,MAAA,GAAS,IAAA,CAAK,OAAA,CAAQ,GAAG,CAAA;AAC/B,IAAA,IAAI,WAAW,GAAA,EAAK;AACpB,IAAA,GAAA,GAAM,MAAA;AAAA,EACR;AACA,EAAA,OAAO,IAAA;AACT;AAYO,IAAM,aAAA,GAA+B,iBAAiB,QAAQ;AAc9D,IAAM,YAAA,GACX,iBAAA,EAAkB,CAAE,CAAC,CAAA,IAAK,IAAA,CAAK,IAAA,CAAK,EAAA,CAAG,OAAA,EAAQ,EAAG,SAAA,EAAW,WAAW","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../cli/src/paths.ts"],"names":[],"mappings":";;;;;;AAgBA,IAAM,WAAW,IAAA,CAAK,OAAA,CAAQ,aAAA,CAAc,MAAA,CAAA,IAAA,CAAY,GAAG,CAAC,CAAA;AAW5D,SAAS,iBAAiB,IAAA,EAA6B;AACrD,EAAA,IAAI,GAAA,GAAM,IAAA;AACV,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,CAAA,EAAG,CAAA,EAAA,EAAK;AAC1B,IAAA,IAAI,EAAA,CAAG,WAAW,IAAA,CAAK,IAAA,CAAK,KAAK,YAAY,CAAC,GAAG,OAAO,GAAA;AACxD,IAAA,MAAM,MAAA,GAAS,IAAA,CAAK,OAAA,CAAQ,GAAG,CAAA;AAC/B,IAAA,IAAI,WAAW,GAAA,EAAK;AACpB,IAAA,GAAA,GAAM,MAAA;AAAA,EACR;AACA,EAAA,OAAO,IAAA;AACT;AAYO,IAAM,aAAA,GAA+B,iBAAiB,QAAQ;AAc9D,IAAM,YAAA,GACX,iBAAA,EAAkB,CAAE,CAAC,CAAA,IAAK,IAAA,CAAK,IAAA,CAAK,EAAA,CAAG,OAAA,EAAQ,EAAG,SAAA,EAAW,WAAW","file":"chunk-JVFZ5R7L.js","sourcesContent":["import fs from \"node:fs\";\nimport os from \"node:os\";\nimport path from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport { factoryAssetRoots } from \"@skaile/workspaces/core\";\n\n/**\n * The content-root policy lives in `@skaile/workspaces/core` so the flow\n * connector's resolution surfaces can reach it too — `factory-assets → cli`\n * would be a module cycle. Re-exported here because this module is the CLI's\n * documented path surface and every CLI caller imports it from here.\n *\n * @docLink cli/dev-guide#paths\n */\nexport { aiResourceRoots } from \"@skaile/workspaces/core\";\n\nconst __ownDir = path.dirname(fileURLToPath(import.meta.url));\n\n/**\n * Walk up from `from` looking for the monorepo marker (`biome.json`, the\n * repo-root shared tooling config). Returns the matching directory or `null`\n * when none is found within eight levels — the latter is the typical case when\n * `@skaile/workspaces` has been installed via `npm i` without a skaile-dev\n * workspace context. Used only to gate dev-only commands (e.g.\n * `serve --compile-test`); first-party content is located via\n * {@link aiResourceRoots}, not this.\n */\nfunction findMonorepoRoot(from: string): string | null {\n let dir = from;\n for (let i = 0; i < 8; i++) {\n if (fs.existsSync(path.join(dir, \"biome.json\"))) return dir;\n const parent = path.dirname(dir);\n if (parent === dir) break;\n dir = parent;\n }\n return null;\n}\n\n/**\n * Absolute path to the monorepo root, or `null` when the CLI is running\n * outside the skaile-dev workspace (typical for `npm i -g` installs).\n *\n * Consumers that only make sense inside the workspace (e.g.\n * `skaile serve --compile-test`) MUST check for `null` and report a\n * \"monorepo-only feature\" error before proceeding.\n *\n * @docLink cli/dev-guide#paths\n */\nexport const MONOREPO_ROOT: string | null = findMonorepoRoot(__ownDir);\n\n/**\n * Default content root used by path display and the `validate` command.\n *\n * The primary first-party `factory-assets/` root resolved through the shared\n * `factoryAssetRoots()` helper — the `SKAILE_FACTORY_ASSETS_DIR` override when\n * set, else the in-repo source during dev / bundled `dist/factory-assets/` after\n * `npm i`. Falls back to `~/.skaile/libraries/` — the user-library directory\n * managed by `skaile library add` — when the package cannot be located.\n * Consumers `fs.existsSync` first and degrade to \"no skills / flows discovered\".\n *\n * @docLink cli/dev-guide#paths\n */\nexport const AI_RESOURCES: string =\n factoryAssetRoots()[0] ?? path.join(os.homedir(), \".skaile\", \"libraries\");\n"]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
// bridge/src/codex/native-state.ts
|
|
2
|
+
var CODEX_NATIVE_STATE_FORMAT = "codex-0.153.4-managed-v1";
|
|
3
|
+
var CodexNativeStateUnavailable = class extends Error {
|
|
4
|
+
constructor() {
|
|
5
|
+
super("CODEX_NATIVE_STATE_UNAVAILABLE");
|
|
6
|
+
this.name = "CodexNativeStateUnavailable";
|
|
7
|
+
}
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
export { CODEX_NATIVE_STATE_FORMAT, CodexNativeStateUnavailable };
|
|
11
|
+
//# sourceMappingURL=chunk-LOO5CB5M.js.map
|
|
12
|
+
//# sourceMappingURL=chunk-LOO5CB5M.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../bridge/src/codex/native-state.ts"],"names":[],"mappings":";AACO,IAAM,yBAAA,GAA4B;AAGlC,IAAM,2BAAA,GAAN,cAA0C,KAAA,CAAM;AAAA,EACrD,WAAA,GAAc;AACZ,IAAA,KAAA,CAAM,gCAAgC,CAAA;AACtC,IAAA,IAAA,CAAK,IAAA,GAAO,6BAAA;AAAA,EACd;AACF","file":"chunk-LOO5CB5M.js","sourcesContent":["/** Managed layout pinned to Codex 0.153.4; publishing alone does not prove durable custody. */\nexport const CODEX_NATIVE_STATE_FORMAT = \"codex-0.153.4-managed-v1\";\n\n/** Positive state absence/incompatibility only; never an auth, transport, or policy failure. */\nexport class CodexNativeStateUnavailable extends Error {\n constructor() {\n super(\"CODEX_NATIVE_STATE_UNAVAILABLE\");\n this.name = \"CodexNativeStateUnavailable\";\n }\n}\n"]}
|
|
@@ -37,13 +37,21 @@ var AgentClient = class {
|
|
|
37
37
|
async prompt(message) {
|
|
38
38
|
this.transport.send({ type: "prompt", prompt: message });
|
|
39
39
|
}
|
|
40
|
+
async promptInput(input) {
|
|
41
|
+
this.transport.send({ type: "prompt", prompt: input.text, attachments: input.attachments });
|
|
42
|
+
}
|
|
40
43
|
/**
|
|
41
44
|
* Answer an agent question. Pass `question` — verbatim from the `question`
|
|
42
45
|
* event being answered — whenever the user can answer a multi-question call
|
|
43
46
|
* out of order; without it the agent fills its next unanswered slot.
|
|
44
47
|
*/
|
|
45
|
-
async reply(answer, question) {
|
|
46
|
-
this.transport.send({
|
|
48
|
+
async reply(answer, question, requestId) {
|
|
49
|
+
this.transport.send({
|
|
50
|
+
type: "reply",
|
|
51
|
+
answer,
|
|
52
|
+
...question !== void 0 ? { question } : {},
|
|
53
|
+
...requestId !== void 0 ? { requestId } : {}
|
|
54
|
+
});
|
|
47
55
|
}
|
|
48
56
|
/** Cancel the current operation. */
|
|
49
57
|
async abort() {
|
|
@@ -78,5 +86,5 @@ var AgentClient = class {
|
|
|
78
86
|
};
|
|
79
87
|
|
|
80
88
|
export { AgentClient };
|
|
81
|
-
//# sourceMappingURL=chunk-
|
|
82
|
-
//# sourceMappingURL=chunk-
|
|
89
|
+
//# sourceMappingURL=chunk-OJ4N4T4H.js.map
|
|
90
|
+
//# sourceMappingURL=chunk-OJ4N4T4H.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../client/src/client.ts"],"names":[],"mappings":"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","file":"chunk-OJ4N4T4H.js","sourcesContent":["import type {\n AgentCommand,\n AgentPromptInput,\n AgentEvent,\n AgentReconfigureOptions,\n AgentRuntimeConfig,\n ClientTransport,\n IAgentRuntime,\n} from \"@skaile/workspaces/types\";\n\n/**\n * Framework-agnostic protocol client for remote skaile agent servers.\n *\n * Implements `IAgentRuntime` over a pluggable `ClientTransport` (WebSocket, stdio,\n * in-process mock, etc.). Translates each `IAgentRuntime` method call into a typed\n * `AgentCommand` sent through the transport, and fans incoming `AgentEvent` messages\n * out to all handlers registered via `onEvent`. Key methods: `start()` optionally\n * connects the transport and sends initial configuration; `configure()` reconfigures\n * the agent at runtime; `prompt()` sends a user message; `sendStateAction()` pushes\n * an action to a shared state store; `dispose()` sends a shutdown command and\n * disconnects the transport.\n *\n * One `AgentClient` instance represents one connection to one agent server. Mapping\n * multiple session IDs to client instances is the consumer's responsibility (e.g.\n * `WsAgentGatewayService` in the platform backend uses `Map<sessionId, AgentClient>`).\n *\n * @example\n * ```ts\n * const transport = new WebSocketClientTransport({ url: 'ws://localhost:8080' });\n * const client = new AgentClient(transport);\n * await client.start({ projectDir: '/my/project' });\n * client.onEvent((e) => console.log(e));\n * await client.prompt('Hello');\n * await client.dispose();\n * ```\n *\n * @docLink packages/client/dev-guide#agent-client\n */\nexport class AgentClient implements IAgentRuntime {\n private readonly transport: ClientTransport;\n private readonly handlers = new Set<(event: AgentEvent) => void>();\n private readonly unsubTransport: () => void;\n\n constructor(transport: ClientTransport) {\n this.transport = transport;\n this.unsubTransport = transport.onMessage((event) => {\n for (const handler of this.handlers) {\n handler(event);\n }\n });\n }\n\n /** Connect transport (if needed) and send initial configuration. */\n async start(config: AgentRuntimeConfig): Promise<void> {\n if (!this.transport.connected) {\n await this.transport.connect();\n }\n await this.configure(config);\n }\n\n /**\n * @deprecated v2 reconfigure path. Protocol v3 replaces this with a one-shot\n * `SessionInitCommand` envelope sent at session start; mid-session reconfig is\n * routed through the `runner.*` capability surface. Kept for v2 callers; the\n * cast survives because the wire shape is no longer in the `AgentCommand`\n * union. Remove once forge apps have migrated to v3.\n */\n // @TODO: Code-Review: deprecated v2→v3 migration stub — remove once forge apps no longer call configure(); tracked as pre-publication cleanup\n async configure(config: AgentReconfigureOptions): Promise<void> {\n this.transport.send({ type: \"configure\", config } as unknown as AgentCommand);\n }\n\n /** Send a raw AgentCommand to the server. */\n send(command: AgentCommand): void {\n this.transport.send(command);\n }\n\n /** Send a user message to the agent. */\n async prompt(message: string): Promise<void> {\n this.transport.send({ type: \"prompt\", prompt: message });\n }\n\n async promptInput(input: AgentPromptInput): Promise<void> {\n this.transport.send({ type: \"prompt\", prompt: input.text, attachments: input.attachments });\n }\n\n /**\n * Answer an agent question. Pass `question` — verbatim from the `question`\n * event being answered — whenever the user can answer a multi-question call\n * out of order; without it the agent fills its next unanswered slot.\n */\n async reply(answer: string, question?: string, requestId?: string): Promise<void> {\n this.transport.send({\n type: \"reply\",\n answer,\n ...(question !== undefined ? { question } : {}),\n ...(requestId !== undefined ? { requestId } : {}),\n });\n }\n\n /** Cancel the current operation. */\n async abort(): Promise<void> {\n this.transport.send({ type: \"cancel\" });\n }\n\n /** Shut down the agent and disconnect transport. */\n async dispose(): Promise<void> {\n this.transport.send({ type: \"shutdown\" });\n this.unsubTransport();\n await this.transport.disconnect();\n }\n\n /**\n * @deprecated v2 shared-state mutation path. Protocol v3 routes shared-state\n * writes through the `runner.set_state` capability; this client method stays\n * as a stop-gap for v2 callers. The cast survives because `state_action` is\n * no longer in the `AgentCommand` union. Remove once forge apps have\n * migrated to v3.\n */\n // @TODO: Code-Review: deprecated v2 stop-gap with unsafe `as unknown as AgentCommand` cast — remove once forge apps use runner.set_state capability\n sendStateAction(store: string, action: Record<string, unknown>): void {\n this.transport.send({ type: \"state_action\", store, action } as unknown as AgentCommand);\n }\n\n onEvent(handler: (event: AgentEvent) => void): void {\n this.handlers.add(handler);\n }\n\n offEvent(handler: (event: AgentEvent) => void): void {\n this.handlers.delete(handler);\n }\n\n get isRunning(): boolean {\n return this.transport.connected;\n }\n}\n"]}
|
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
import { workspaceValidate, workspaceInfo, workspaceTestSecret, workspaceReload } from './chunk-E7HKNQTH.js';
|
|
2
|
+
import { mountList, mountSync, mountStatus, mountRead, connectorList, connectorRead, connectorWrite, connectorSearch, connectorExec, connectorLoadSkill, connectorDescribe } from './chunk-FUCYTGAE.js';
|
|
3
|
+
import { flowList, flowShow, flowListSessions, flowGetSession, flowFindFlowForSession } from './chunk-4JDCKPTM.js';
|
|
4
|
+
import { sessionList, sessionGet } from './chunk-R6O6YWU7.js';
|
|
5
|
+
import { skillList, skillListDomains, skillShow, skillSearch, skillCheckRequirements, skillGetPreamble } from './chunk-FAI2SMFE.js';
|
|
6
|
+
import * as zNS from 'zod';
|
|
7
|
+
|
|
8
|
+
var zStatic = zNS.z ?? zNS.default ?? zNS;
|
|
9
|
+
function buildWorkspaceToolDefs(plugin) {
|
|
10
|
+
const z2 = zStatic;
|
|
11
|
+
const driver = plugin.driver ?? "omp";
|
|
12
|
+
const p = plugin.projectDir;
|
|
13
|
+
return [
|
|
14
|
+
// Mount tools
|
|
15
|
+
{
|
|
16
|
+
name: "mount_list",
|
|
17
|
+
description: "List all mounts declared in skaile.yaml with their mount status.",
|
|
18
|
+
inputSchema: {},
|
|
19
|
+
handler: async () => mountList(plugin.connectorManager)
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
name: "mount_sync",
|
|
23
|
+
description: "Sync a mount \u2014 pull latest from remote (git, S3, WebDAV).",
|
|
24
|
+
inputSchema: { mount_id: z2.string().describe("Mount ID from mount_list") },
|
|
25
|
+
handler: async ({ mount_id }) => mountSync(plugin.connectorManager, mount_id)
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
name: "mount_status",
|
|
29
|
+
description: "Get the mount status and last sync time for a mount.",
|
|
30
|
+
inputSchema: { mount_id: z2.string() },
|
|
31
|
+
handler: async ({ mount_id }) => mountStatus(plugin.connectorManager, mount_id)
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
name: "mount_read",
|
|
35
|
+
description: "Read a file from a mounted mount by path.",
|
|
36
|
+
inputSchema: {
|
|
37
|
+
mount_id: z2.string(),
|
|
38
|
+
path: z2.string().describe("Relative path within the mount")
|
|
39
|
+
},
|
|
40
|
+
handler: async ({ mount_id, path }) => mountRead(plugin.connectorManager, mount_id, path)
|
|
41
|
+
},
|
|
42
|
+
// Flow tools
|
|
43
|
+
{
|
|
44
|
+
name: "flow_list",
|
|
45
|
+
description: "List all available flow definitions from ai-assets.",
|
|
46
|
+
inputSchema: {},
|
|
47
|
+
handler: async () => flowList(p)
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
name: "flow_show",
|
|
51
|
+
description: "Show full flow definition (nodes + edges) for a flow ID.",
|
|
52
|
+
inputSchema: { flow_id: z2.string().describe("Flow ID from flow_list") },
|
|
53
|
+
handler: async ({ flow_id }) => flowShow(p, flow_id)
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
name: "flow_list_sessions",
|
|
57
|
+
description: "List past and active flow run sessions for this workspace.",
|
|
58
|
+
inputSchema: {},
|
|
59
|
+
handler: async () => flowListSessions(p)
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
name: "flow_get_session",
|
|
63
|
+
description: "Get driver metadata for a specific flow run session.",
|
|
64
|
+
inputSchema: { run_id: z2.string().describe("Run ID from flow_list_sessions") },
|
|
65
|
+
handler: async ({ run_id }) => flowGetSession(p, run_id)
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
name: "flow_find_flow_for_session",
|
|
69
|
+
description: "Resolve and return the flow definition used in a past session.",
|
|
70
|
+
inputSchema: { run_id: z2.string() },
|
|
71
|
+
handler: async ({ run_id }) => flowFindFlowForSession(p, run_id)
|
|
72
|
+
},
|
|
73
|
+
// Skill tools
|
|
74
|
+
{
|
|
75
|
+
name: "skill_list",
|
|
76
|
+
description: "List all skills in the ai-assets catalog, optionally filtered by domain.",
|
|
77
|
+
inputSchema: { domain: z2.string().optional().describe("Domain name filter") },
|
|
78
|
+
handler: async ({ domain }) => skillList(p, domain)
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
name: "skill_list_domains",
|
|
82
|
+
description: "List all skill domains (top-level ai-assets directories with skills).",
|
|
83
|
+
inputSchema: {},
|
|
84
|
+
handler: async () => skillListDomains(p)
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
name: "skill_show",
|
|
88
|
+
description: "Show the full SKILL.md content for a skill ID.",
|
|
89
|
+
inputSchema: { skill_id: z2.string().describe("Skill ID from skill_list") },
|
|
90
|
+
handler: async ({ skill_id }) => skillShow(p, skill_id)
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
name: "skill_search",
|
|
94
|
+
description: "Search skills by name, description, or keywords.",
|
|
95
|
+
inputSchema: { query: z2.string() },
|
|
96
|
+
handler: async ({ query }) => skillSearch(p, query)
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
name: "skill_check_requirements",
|
|
100
|
+
description: "Validate that all skill prerequisites are met in the target directory.",
|
|
101
|
+
inputSchema: {
|
|
102
|
+
skill_id: z2.string(),
|
|
103
|
+
target_dir: z2.string().optional().describe("Directory to check against (default: projectDir)")
|
|
104
|
+
},
|
|
105
|
+
handler: async ({ skill_id, target_dir }) => skillCheckRequirements(p, skill_id, target_dir ?? p)
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
name: "skill_get_preamble",
|
|
109
|
+
description: "Get the REQUIRES/INPUT/READS/WRITES DSL preamble for a skill.",
|
|
110
|
+
inputSchema: { skill_id: z2.string() },
|
|
111
|
+
handler: async ({ skill_id }) => skillGetPreamble(p, skill_id)
|
|
112
|
+
},
|
|
113
|
+
// Session tools
|
|
114
|
+
{
|
|
115
|
+
name: "session_list",
|
|
116
|
+
description: "List all past agent run sessions for this workspace, sorted newest first.",
|
|
117
|
+
inputSchema: {},
|
|
118
|
+
handler: async () => sessionList(p)
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
name: "session_get",
|
|
122
|
+
description: "Get full metadata for a specific session by run ID.",
|
|
123
|
+
inputSchema: { run_id: z2.string() },
|
|
124
|
+
handler: async ({ run_id }) => sessionGet(p, run_id)
|
|
125
|
+
},
|
|
126
|
+
// Connector tools
|
|
127
|
+
{
|
|
128
|
+
name: "connector_list",
|
|
129
|
+
description: "List connectors declared in skaile.yaml as {connected, failed}. `failed` holds connectors that did not connect this session, with the failure reason \u2014 their mount paths are dead directories, not synced workspaces.",
|
|
130
|
+
inputSchema: {},
|
|
131
|
+
handler: async () => connectorList(plugin.connectorManager)
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
name: "connector_read",
|
|
135
|
+
description: "Read content from a connector by path.",
|
|
136
|
+
inputSchema: {
|
|
137
|
+
connector_id: z2.string().describe("Connector ID from connector_list"),
|
|
138
|
+
path: z2.string().describe("Path within the connector")
|
|
139
|
+
},
|
|
140
|
+
handler: async ({ connector_id, path }) => connectorRead(plugin.connectorManager, connector_id, path)
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
name: "connector_write",
|
|
144
|
+
description: "Write content to a connector by path.",
|
|
145
|
+
inputSchema: {
|
|
146
|
+
connector_id: z2.string(),
|
|
147
|
+
path: z2.string(),
|
|
148
|
+
content: z2.string().describe("Content to write")
|
|
149
|
+
},
|
|
150
|
+
handler: async ({
|
|
151
|
+
connector_id,
|
|
152
|
+
path,
|
|
153
|
+
content
|
|
154
|
+
}) => connectorWrite(plugin.connectorManager, connector_id, path, content)
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
name: "connector_search",
|
|
158
|
+
description: "Search within a connector by query string.",
|
|
159
|
+
inputSchema: {
|
|
160
|
+
connector_id: z2.string(),
|
|
161
|
+
query: z2.string().describe("Search query")
|
|
162
|
+
},
|
|
163
|
+
handler: async ({ connector_id, query }) => connectorSearch(plugin.connectorManager, connector_id, query)
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
name: "connector_exec",
|
|
167
|
+
description: "Execute a custom operation on a connector.",
|
|
168
|
+
inputSchema: {
|
|
169
|
+
connector_id: z2.string(),
|
|
170
|
+
operation: z2.string().describe("Operation name from connector_describe"),
|
|
171
|
+
args: z2.record(z2.string(), z2.unknown()).describe("Operation arguments")
|
|
172
|
+
},
|
|
173
|
+
handler: async ({
|
|
174
|
+
connector_id,
|
|
175
|
+
operation,
|
|
176
|
+
args
|
|
177
|
+
}) => connectorExec(plugin.connectorManager, connector_id, operation, args)
|
|
178
|
+
},
|
|
179
|
+
{
|
|
180
|
+
name: "connector_load_skill",
|
|
181
|
+
description: "Load the rendered skill body for a connector (operations + usage).",
|
|
182
|
+
inputSchema: {
|
|
183
|
+
connector_id: z2.string()
|
|
184
|
+
},
|
|
185
|
+
handler: async ({ connector_id }) => connectorLoadSkill(plugin.connectorManager, connector_id)
|
|
186
|
+
},
|
|
187
|
+
{
|
|
188
|
+
name: "connector_describe",
|
|
189
|
+
description: "Describe a connector's capabilities via its RuntimeSkillDescriptor.",
|
|
190
|
+
inputSchema: {
|
|
191
|
+
connector_id: z2.string()
|
|
192
|
+
},
|
|
193
|
+
handler: async ({ connector_id }) => connectorDescribe(plugin.connectorManager, connector_id)
|
|
194
|
+
},
|
|
195
|
+
// Validator tools
|
|
196
|
+
{
|
|
197
|
+
name: "workspace_validate",
|
|
198
|
+
description: "Run a full health check: connectors, mounts, secrets, driver binary.",
|
|
199
|
+
inputSchema: {},
|
|
200
|
+
handler: async () => workspaceValidate(plugin, driver)
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
name: "workspace_info",
|
|
204
|
+
description: "Show workspace configuration: driver, model, provider, resource counts.",
|
|
205
|
+
inputSchema: {},
|
|
206
|
+
handler: async () => workspaceInfo(plugin, driver, plugin.provider, plugin.model)
|
|
207
|
+
},
|
|
208
|
+
{
|
|
209
|
+
name: "workspace_test_secret",
|
|
210
|
+
description: "Test resolution of one secret reference (env:VAR, forge:key).",
|
|
211
|
+
inputSchema: { ref: z2.string().describe("Secret ref e.g. env:ANTHROPIC_API_KEY") },
|
|
212
|
+
handler: async ({ ref }) => workspaceTestSecret(ref)
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
name: "workspace_reload",
|
|
216
|
+
description: "Re-read skaile.yaml and re-sync the plugin state.",
|
|
217
|
+
inputSchema: {},
|
|
218
|
+
handler: async () => workspaceReload(plugin)
|
|
219
|
+
}
|
|
220
|
+
];
|
|
221
|
+
}
|
|
222
|
+
async function buildWorkspaceMcpServer(plugin) {
|
|
223
|
+
let sdk;
|
|
224
|
+
try {
|
|
225
|
+
sdk = await import('@anthropic-ai/claude-agent-sdk');
|
|
226
|
+
} catch {
|
|
227
|
+
return null;
|
|
228
|
+
}
|
|
229
|
+
return sdk.createSdkMcpServer({
|
|
230
|
+
name: "skaile-workspace",
|
|
231
|
+
tools: buildWorkspaceToolDefs(plugin)
|
|
232
|
+
});
|
|
233
|
+
}
|
|
234
|
+
async function buildWorkspaceMcpStdioServer(plugin) {
|
|
235
|
+
const { McpServer } = await import('@modelcontextprotocol/sdk/server/mcp.js');
|
|
236
|
+
const server = new McpServer({ name: "skaile-workspace", version: "1.0.0" });
|
|
237
|
+
for (const def of buildWorkspaceToolDefs(plugin)) {
|
|
238
|
+
server.registerTool(
|
|
239
|
+
def.name,
|
|
240
|
+
{ description: def.description, inputSchema: def.inputSchema },
|
|
241
|
+
def.handler
|
|
242
|
+
);
|
|
243
|
+
}
|
|
244
|
+
return server;
|
|
245
|
+
}
|
|
246
|
+
async function runMcpServerStdio(plugin) {
|
|
247
|
+
const server = await buildWorkspaceMcpStdioServer(plugin);
|
|
248
|
+
const { StdioServerTransport } = await import('@modelcontextprotocol/sdk/server/stdio.js');
|
|
249
|
+
await server.connect(new StdioServerTransport());
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
export { buildWorkspaceMcpServer, buildWorkspaceMcpStdioServer, buildWorkspaceToolDefs, runMcpServerStdio };
|
|
253
|
+
//# sourceMappingURL=chunk-QEZPFJX3.js.map
|
|
254
|
+
//# sourceMappingURL=chunk-QEZPFJX3.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../workspace-plugin/src/adapters/mcp.ts"],"names":["z"],"mappings":"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","file":"chunk-QEZPFJX3.js","sourcesContent":["// Static namespace import so bun --compile bundles zod into the binary.\n// Dynamic import(\"zod\") via a string variable evades bun's static analysis\n// and fails at runtime inside /$bunfs/. The unwrap (zNS.z ?? zNS.default\n// ?? zNS) handles both bun's native ESM and vitest's CJS-interop resolver,\n// which return the zod namespace at different keys.\nimport * as zNS from \"zod\";\nimport type { WorkspacePlugin } from \"../plugin.js\";\nimport {\n connectorDescribe,\n connectorExec,\n connectorList,\n connectorLoadSkill,\n connectorRead,\n connectorSearch,\n connectorWrite,\n mountList,\n mountRead,\n mountStatus,\n mountSync,\n} from \"../tools/connectors.js\";\nimport {\n flowFindFlowForSession,\n flowGetSession,\n flowList,\n flowListSessions,\n flowShow,\n} from \"../tools/flows.js\";\nimport { sessionGet, sessionList } from \"../tools/sessions.js\";\nimport {\n skillCheckRequirements,\n skillGetPreamble,\n skillList,\n skillListDomains,\n skillSearch,\n skillShow,\n} from \"../tools/skills.js\";\nimport {\n workspaceInfo,\n workspaceReload,\n workspaceTestSecret,\n workspaceValidate,\n} from \"../tools/validator.js\";\n\nconst zStatic: any = (zNS as any).z ?? (zNS as any).default ?? zNS;\n\n/**\n * One workspace plugin tool — name, description, a zod raw-shape input schema,\n * and an async handler returning a `ToolResult`.\n *\n * Carries **zero MCP/SDK dependency**: the same definitions feed both the\n * in-process Claude Agent SDK server ({@link buildWorkspaceMcpServer}) and the\n * raw stdio MCP server ({@link buildWorkspaceMcpStdioServer}).\n */\nexport interface WorkspaceToolDef {\n name: string;\n description: string;\n inputSchema: Record<string, unknown>;\n handler: (args: any) => Promise<unknown>;\n}\n\n/**\n * Build the 28 workspace plugin tool definitions.\n *\n * Tool groups:\n * - 4 mount tools (`mount_list`, `mount_sync`, `mount_status`, `mount_read`)\n * - 5 flow tools (`flow_list`, `flow_show`, `flow_list_sessions`, `flow_get_session`, `flow_find_flow_for_session`)\n * - 6 skill tools (`skill_list`, `skill_list_domains`, `skill_show`, `skill_search`, `skill_check_requirements`, `skill_get_preamble`)\n * - 2 session tools (`session_list`, `session_get`)\n * - 7 connector tools (`connector_list`, `connector_read`, `connector_write`, `connector_search`, `connector_exec`, `connector_load_skill`, `connector_describe`)\n * - 4 workspace tools (`workspace_validate`, `workspace_info`, `workspace_test_secret`, `workspace_reload`)\n *\n * @param plugin - A booted `WorkspacePlugin` instance.\n * @returns The 28 tool definitions, free of any MCP/SDK coupling.\n *\n * @docLink packages/workspace-plugin/concepts#adapters\n */\nexport function buildWorkspaceToolDefs(plugin: WorkspacePlugin): WorkspaceToolDef[] {\n const z: any = zStatic;\n\n const driver = plugin.driver ?? \"omp\";\n const p = plugin.projectDir;\n\n return [\n // Mount tools\n {\n name: \"mount_list\",\n description: \"List all mounts declared in skaile.yaml with their mount status.\",\n inputSchema: {},\n handler: async () => mountList(plugin.connectorManager),\n },\n {\n name: \"mount_sync\",\n description: \"Sync a mount — pull latest from remote (git, S3, WebDAV).\",\n inputSchema: { mount_id: z.string().describe(\"Mount ID from mount_list\") },\n handler: async ({ mount_id }: { mount_id: string }) =>\n mountSync(plugin.connectorManager, mount_id),\n },\n {\n name: \"mount_status\",\n description: \"Get the mount status and last sync time for a mount.\",\n inputSchema: { mount_id: z.string() },\n handler: async ({ mount_id }: { mount_id: string }) =>\n mountStatus(plugin.connectorManager, mount_id),\n },\n {\n name: \"mount_read\",\n description: \"Read a file from a mounted mount by path.\",\n inputSchema: {\n mount_id: z.string(),\n path: z.string().describe(\"Relative path within the mount\"),\n },\n handler: async ({ mount_id, path }: { mount_id: string; path: string }) =>\n mountRead(plugin.connectorManager, mount_id, path),\n },\n // Flow tools\n {\n name: \"flow_list\",\n description: \"List all available flow definitions from ai-assets.\",\n inputSchema: {},\n handler: async () => flowList(p),\n },\n {\n name: \"flow_show\",\n description: \"Show full flow definition (nodes + edges) for a flow ID.\",\n inputSchema: { flow_id: z.string().describe(\"Flow ID from flow_list\") },\n handler: async ({ flow_id }: { flow_id: string }) => flowShow(p, flow_id),\n },\n {\n name: \"flow_list_sessions\",\n description: \"List past and active flow run sessions for this workspace.\",\n inputSchema: {},\n handler: async () => flowListSessions(p),\n },\n {\n name: \"flow_get_session\",\n description: \"Get driver metadata for a specific flow run session.\",\n inputSchema: { run_id: z.string().describe(\"Run ID from flow_list_sessions\") },\n handler: async ({ run_id }: { run_id: string }) => flowGetSession(p, run_id),\n },\n {\n name: \"flow_find_flow_for_session\",\n description: \"Resolve and return the flow definition used in a past session.\",\n inputSchema: { run_id: z.string() },\n handler: async ({ run_id }: { run_id: string }) => flowFindFlowForSession(p, run_id),\n },\n // Skill tools\n {\n name: \"skill_list\",\n description: \"List all skills in the ai-assets catalog, optionally filtered by domain.\",\n inputSchema: { domain: z.string().optional().describe(\"Domain name filter\") },\n handler: async ({ domain }: { domain?: string }) => skillList(p, domain),\n },\n {\n name: \"skill_list_domains\",\n description: \"List all skill domains (top-level ai-assets directories with skills).\",\n inputSchema: {},\n handler: async () => skillListDomains(p),\n },\n {\n name: \"skill_show\",\n description: \"Show the full SKILL.md content for a skill ID.\",\n inputSchema: { skill_id: z.string().describe(\"Skill ID from skill_list\") },\n handler: async ({ skill_id }: { skill_id: string }) => skillShow(p, skill_id),\n },\n {\n name: \"skill_search\",\n description: \"Search skills by name, description, or keywords.\",\n inputSchema: { query: z.string() },\n handler: async ({ query }: { query: string }) => skillSearch(p, query),\n },\n {\n name: \"skill_check_requirements\",\n description: \"Validate that all skill prerequisites are met in the target directory.\",\n inputSchema: {\n skill_id: z.string(),\n target_dir: z\n .string()\n .optional()\n .describe(\"Directory to check against (default: projectDir)\"),\n },\n handler: async ({ skill_id, target_dir }: { skill_id: string; target_dir?: string }) =>\n skillCheckRequirements(p, skill_id, target_dir ?? p),\n },\n {\n name: \"skill_get_preamble\",\n description: \"Get the REQUIRES/INPUT/READS/WRITES DSL preamble for a skill.\",\n inputSchema: { skill_id: z.string() },\n handler: async ({ skill_id }: { skill_id: string }) => skillGetPreamble(p, skill_id),\n },\n // Session tools\n {\n name: \"session_list\",\n description: \"List all past agent run sessions for this workspace, sorted newest first.\",\n inputSchema: {},\n handler: async () => sessionList(p),\n },\n {\n name: \"session_get\",\n description: \"Get full metadata for a specific session by run ID.\",\n inputSchema: { run_id: z.string() },\n handler: async ({ run_id }: { run_id: string }) => sessionGet(p, run_id),\n },\n // Connector tools\n {\n name: \"connector_list\",\n description:\n \"List connectors declared in skaile.yaml as {connected, failed}. `failed` holds connectors that did not connect this session, with the failure reason — their mount paths are dead directories, not synced workspaces.\",\n inputSchema: {},\n handler: async () => connectorList(plugin.connectorManager),\n },\n {\n name: \"connector_read\",\n description: \"Read content from a connector by path.\",\n inputSchema: {\n connector_id: z.string().describe(\"Connector ID from connector_list\"),\n path: z.string().describe(\"Path within the connector\"),\n },\n handler: async ({ connector_id, path }: { connector_id: string; path: string }) =>\n connectorRead(plugin.connectorManager, connector_id, path),\n },\n {\n name: \"connector_write\",\n description: \"Write content to a connector by path.\",\n inputSchema: {\n connector_id: z.string(),\n path: z.string(),\n content: z.string().describe(\"Content to write\"),\n },\n handler: async ({\n connector_id,\n path,\n content,\n }: {\n connector_id: string;\n path: string;\n content: string;\n }) => connectorWrite(plugin.connectorManager, connector_id, path, content),\n },\n {\n name: \"connector_search\",\n description: \"Search within a connector by query string.\",\n inputSchema: {\n connector_id: z.string(),\n query: z.string().describe(\"Search query\"),\n },\n handler: async ({ connector_id, query }: { connector_id: string; query: string }) =>\n connectorSearch(plugin.connectorManager, connector_id, query),\n },\n {\n name: \"connector_exec\",\n description: \"Execute a custom operation on a connector.\",\n inputSchema: {\n connector_id: z.string(),\n operation: z.string().describe(\"Operation name from connector_describe\"),\n args: z.record(z.string(), z.unknown()).describe(\"Operation arguments\"),\n },\n handler: async ({\n connector_id,\n operation,\n args,\n }: {\n connector_id: string;\n operation: string;\n args: Record<string, unknown>;\n }) => connectorExec(plugin.connectorManager, connector_id, operation, args),\n },\n {\n name: \"connector_load_skill\",\n description: \"Load the rendered skill body for a connector (operations + usage).\",\n inputSchema: {\n connector_id: z.string(),\n },\n handler: async ({ connector_id }: { connector_id: string }) =>\n connectorLoadSkill(plugin.connectorManager, connector_id),\n },\n {\n name: \"connector_describe\",\n description: \"Describe a connector's capabilities via its RuntimeSkillDescriptor.\",\n inputSchema: {\n connector_id: z.string(),\n },\n handler: async ({ connector_id }: { connector_id: string }) =>\n connectorDescribe(plugin.connectorManager, connector_id),\n },\n // Validator tools\n {\n name: \"workspace_validate\",\n description: \"Run a full health check: connectors, mounts, secrets, driver binary.\",\n inputSchema: {},\n handler: async () => workspaceValidate(plugin, driver),\n },\n {\n name: \"workspace_info\",\n description: \"Show workspace configuration: driver, model, provider, resource counts.\",\n inputSchema: {},\n handler: async () => workspaceInfo(plugin, driver, plugin.provider, plugin.model),\n },\n {\n name: \"workspace_test_secret\",\n description: \"Test resolution of one secret reference (env:VAR, forge:key).\",\n inputSchema: { ref: z.string().describe(\"Secret ref e.g. env:ANTHROPIC_API_KEY\") },\n handler: async ({ ref }: { ref: string }) => workspaceTestSecret(ref),\n },\n {\n name: \"workspace_reload\",\n description: \"Re-read skaile.yaml and re-sync the plugin state.\",\n inputSchema: {},\n handler: async () => workspaceReload(plugin),\n },\n ];\n}\n\n/**\n * Build the **in-process** workspace MCP server via the Claude Agent SDK's\n * `createSdkMcpServer`. This shape is what the runner embeds into a Claude\n * Agent SDK `query()` call — the runner *is* the Claude Agent SDK host.\n *\n * Returns `null` when `@anthropic-ai/claude-agent-sdk` is not installed\n * (graceful degradation for non-Claude-Code environments).\n *\n * For the standalone `skaile mcp-server` stdio subprocess use\n * {@link buildWorkspaceMcpStdioServer} / {@link runMcpServerStdio} instead —\n * those carry no Claude Agent SDK dependency.\n *\n * @param plugin - A booted `WorkspacePlugin` instance.\n * @returns The SDK MCP server object or `null` if the SDK is unavailable.\n *\n * @docLink packages/workspace-plugin/concepts#adapters\n */\nexport async function buildWorkspaceMcpServer(plugin: WorkspacePlugin): Promise<unknown | null> {\n let sdk: any;\n try {\n sdk = await import(\"@anthropic-ai/claude-agent-sdk\");\n } catch {\n return null;\n }\n return sdk.createSdkMcpServer({\n name: \"skaile-workspace\",\n tools: buildWorkspaceToolDefs(plugin),\n });\n}\n\n/**\n * Build a **raw stdio** workspace MCP server on `@modelcontextprotocol/sdk` —\n * no Claude Agent SDK. This is the correct shape for the `skaile mcp-server`\n * stdio subprocess that MCP-client agents (Claude Code, Codex, …) spawn.\n * Runs on plain Node.\n *\n * The returned server is not yet connected — call `.connect(transport)` (or\n * use {@link runMcpServerStdio}).\n *\n * @param plugin - A booted `WorkspacePlugin` instance.\n * @returns A `McpServer` with all 28 workspace tools registered.\n *\n * @docLink packages/workspace-plugin/concepts#adapters\n */\nexport async function buildWorkspaceMcpStdioServer(plugin: WorkspacePlugin): Promise<any> {\n const { McpServer } = await import(\"@modelcontextprotocol/sdk/server/mcp.js\" as string);\n const server = new McpServer({ name: \"skaile-workspace\", version: \"1.0.0\" });\n for (const def of buildWorkspaceToolDefs(plugin)) {\n server.registerTool(\n def.name,\n { description: def.description, inputSchema: def.inputSchema },\n def.handler,\n );\n }\n return server;\n}\n\n/**\n * Start the workspace MCP server over stdio transport.\n *\n * Builds the raw `@modelcontextprotocol/sdk` server via\n * {@link buildWorkspaceMcpStdioServer} and connects a `StdioServerTransport`.\n * No `@anthropic-ai/claude-agent-sdk` dependency anywhere on this path.\n *\n * @param plugin - A booted `WorkspacePlugin` instance.\n *\n * @docLink packages/workspace-plugin/concepts#adapters\n */\nexport async function runMcpServerStdio(plugin: WorkspacePlugin): Promise<void> {\n const server = await buildWorkspaceMcpStdioServer(plugin);\n const { StdioServerTransport } = await import(\n \"@modelcontextprotocol/sdk/server/stdio.js\" as string\n );\n await server.connect(new StdioServerTransport());\n}\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { readManifestSourceConfig, discoverAssetsInTree, isManifestMode } from './chunk-DZ4UZOFB.js';
|
|
2
2
|
import { installFromManifest } from './chunk-UKJMQZV6.js';
|
|
3
|
-
import { defaultLibraryDir, resolveLibraryDir, skaileHomeDir } from './chunk-
|
|
4
|
-
import { mergeLegacyEntriesInto, getGlobalCacheDir, resolveSourcePublisher, migrateLegacyDir, globalCacheRoot } from './chunk-
|
|
3
|
+
import { defaultLibraryDir, resolveLibraryDir, skaileHomeDir } from './chunk-H662SXKS.js';
|
|
4
|
+
import { mergeLegacyEntriesInto, getGlobalCacheDir, resolveSourcePublisher, migrateLegacyDir, globalCacheRoot } from './chunk-RPVTPVGX.js';
|
|
5
5
|
import { encodeSkaileManifest } from './chunk-P4VHQA4N.js';
|
|
6
6
|
import { parseAssetRef } from './chunk-GEEW6SY2.js';
|
|
7
7
|
import { PresetManifestSchema } from './chunk-AN6NAFRT.js';
|
|
@@ -3899,5 +3899,5 @@ function detectWorkspaceVersion(dir, filename = "skaile.yaml") {
|
|
|
3899
3899
|
}
|
|
3900
3900
|
|
|
3901
3901
|
export { AssignmentNotFoundError, CatalogCache, CatalogConfigSchema, CatalogHttpError, DuplicateAssignmentError, DuplicateLibraryNameError, 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, LockAssignmentSchema, LockFileSchema, OfflineError, OperationNotPermittedError, PIN_POLICIES, PinPolicySchema, PresetAppliedSchema, PresetExpandedSchema, RemoteCatalogSource, RequiresEdgeSchema, RestCatalogSource, SidecarGit, SkaileConfigSchema, SourceNotFoundError, 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, resolvePin, resolveSidecarPaths, saveConfig, saveLockFile, saveWorkspaceV2, sha256Hex, storeSecrets, trpcGetUrl, userConfigPath, validateAllPlaceholders, validateKnowledge, validateNestingDepth, validatePlaceholder, writeCuratedManifest, writeManifestIfMissing };
|
|
3902
|
-
//# sourceMappingURL=chunk-
|
|
3903
|
-
//# sourceMappingURL=chunk-
|
|
3902
|
+
//# sourceMappingURL=chunk-QG2ZXU5W.js.map
|
|
3903
|
+
//# sourceMappingURL=chunk-QG2ZXU5W.js.map
|