@skaile/workspaces 0.8.5
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 +135 -0
- package/LICENSE +201 -0
- package/README.md +82 -0
- package/dist/asset-manager/catalog-deployer.js +4 -0
- package/dist/asset-manager/catalog-deployer.js.map +1 -0
- package/dist/asset-manager/contrib.js +4 -0
- package/dist/asset-manager/contrib.js.map +1 -0
- package/dist/asset-manager/fragments.js +4 -0
- package/dist/asset-manager/fragments.js.map +1 -0
- package/dist/asset-manager/history.js +4 -0
- package/dist/asset-manager/history.js.map +1 -0
- package/dist/asset-manager/index.js +22 -0
- package/dist/asset-manager/index.js.map +1 -0
- package/dist/asset-manager/installer.js +18 -0
- package/dist/asset-manager/installer.js.map +1 -0
- package/dist/asset-manager/renderers.js +5 -0
- package/dist/asset-manager/renderers.js.map +1 -0
- package/dist/asset-manager/scaffold.js +18 -0
- package/dist/asset-manager/scaffold.js.map +1 -0
- package/dist/asset-manager/src/catalog-deployer.d.ts +144 -0
- package/dist/asset-manager/src/catalog-deployer.d.ts.map +1 -0
- package/dist/asset-manager/src/contrib.d.ts +133 -0
- package/dist/asset-manager/src/contrib.d.ts.map +1 -0
- package/dist/asset-manager/src/fragments.d.ts +111 -0
- package/dist/asset-manager/src/fragments.d.ts.map +1 -0
- package/dist/asset-manager/src/history.d.ts +52 -0
- package/dist/asset-manager/src/history.d.ts.map +1 -0
- package/dist/asset-manager/src/index.d.ts +459 -0
- package/dist/asset-manager/src/index.d.ts.map +1 -0
- package/dist/asset-manager/src/installer.d.ts +85 -0
- package/dist/asset-manager/src/installer.d.ts.map +1 -0
- package/dist/asset-manager/src/renderers.d.ts +125 -0
- package/dist/asset-manager/src/renderers.d.ts.map +1 -0
- package/dist/asset-manager/src/scaffold/index.d.ts +19 -0
- package/dist/asset-manager/src/scaffold/index.d.ts.map +1 -0
- package/dist/asset-manager/src/scaffold/layers/agents.d.ts +67 -0
- package/dist/asset-manager/src/scaffold/layers/agents.d.ts.map +1 -0
- package/dist/asset-manager/src/scaffold/layers/base.d.ts +17 -0
- package/dist/asset-manager/src/scaffold/layers/base.d.ts.map +1 -0
- package/dist/asset-manager/src/scaffold/layers/connectors.d.ts +18 -0
- package/dist/asset-manager/src/scaffold/layers/connectors.d.ts.map +1 -0
- package/dist/asset-manager/src/scaffold/layers/container.d.ts +16 -0
- package/dist/asset-manager/src/scaffold/layers/container.d.ts.map +1 -0
- package/dist/asset-manager/src/scaffold/layers/driver-target.d.ts +17 -0
- package/dist/asset-manager/src/scaffold/layers/driver-target.d.ts.map +1 -0
- package/dist/asset-manager/src/scaffold/layers/hooks.d.ts +22 -0
- package/dist/asset-manager/src/scaffold/layers/hooks.d.ts.map +1 -0
- package/dist/asset-manager/src/scaffold/layers/skills.d.ts +31 -0
- package/dist/asset-manager/src/scaffold/layers/skills.d.ts.map +1 -0
- package/dist/asset-manager/src/scaffold/layers/template.d.ts +16 -0
- package/dist/asset-manager/src/scaffold/layers/template.d.ts.map +1 -0
- package/dist/asset-manager/src/scaffold/scaffolder.d.ts +77 -0
- package/dist/asset-manager/src/scaffold/scaffolder.d.ts.map +1 -0
- package/dist/asset-manager/src/scaffold/types.d.ts +241 -0
- package/dist/asset-manager/src/scaffold/types.d.ts.map +1 -0
- package/dist/base-assets/connectors/deploy/adapter.d.ts +37 -0
- package/dist/base-assets/connectors/deploy/adapter.d.ts.map +1 -0
- package/dist/base-assets/connectors/deploy.js +20 -0
- package/dist/base-assets/connectors/deploy.js.map +1 -0
- package/dist/base-assets/connectors/devserver/adapter.d.ts +43 -0
- package/dist/base-assets/connectors/devserver/adapter.d.ts.map +1 -0
- package/dist/base-assets/connectors/devserver.js +20 -0
- package/dist/base-assets/connectors/devserver.js.map +1 -0
- package/dist/base-assets/connectors/flow/adapter.d.ts +200 -0
- package/dist/base-assets/connectors/flow/adapter.d.ts.map +1 -0
- package/dist/base-assets/connectors/flow/adapter.js +20 -0
- package/dist/base-assets/connectors/flow/adapter.js.map +1 -0
- package/dist/base-assets/connectors/flow/engine/engine.d.ts +107 -0
- package/dist/base-assets/connectors/flow/engine/engine.d.ts.map +1 -0
- package/dist/base-assets/connectors/flow/engine/flow-kind-provider.d.ts +16 -0
- package/dist/base-assets/connectors/flow/engine/flow-kind-provider.d.ts.map +1 -0
- package/dist/base-assets/connectors/flow/engine/flow-manifest.d.ts +215 -0
- package/dist/base-assets/connectors/flow/engine/flow-manifest.d.ts.map +1 -0
- package/dist/base-assets/connectors/flow/engine/index.d.ts +7 -0
- package/dist/base-assets/connectors/flow/engine/index.d.ts.map +1 -0
- package/dist/base-assets/connectors/flow/engine/loader.d.ts +43 -0
- package/dist/base-assets/connectors/flow/engine/loader.d.ts.map +1 -0
- package/dist/base-assets/connectors/flow/engine/types.d.ts +298 -0
- package/dist/base-assets/connectors/flow/engine/types.d.ts.map +1 -0
- package/dist/base-assets/connectors/flow/engine.js +4 -0
- package/dist/base-assets/connectors/flow/engine.js.map +1 -0
- package/dist/base-assets/connectors/flow/index.d.ts +3 -0
- package/dist/base-assets/connectors/flow/index.d.ts.map +1 -0
- package/dist/base-assets/connectors/flow/prompt-fragments.d.ts +90 -0
- package/dist/base-assets/connectors/flow/prompt-fragments.d.ts.map +1 -0
- package/dist/base-assets/connectors/flow/prompt-fragments.js +4 -0
- package/dist/base-assets/connectors/flow/prompt-fragments.js.map +1 -0
- package/dist/base-assets/connectors/flow/run-flow.d.ts +159 -0
- package/dist/base-assets/connectors/flow/run-flow.d.ts.map +1 -0
- package/dist/base-assets/connectors/flow/run-flow.js +23 -0
- package/dist/base-assets/connectors/flow/run-flow.js.map +1 -0
- package/dist/base-assets/connectors/flow/stimulus-driver.d.ts +42 -0
- package/dist/base-assets/connectors/flow/stimulus-driver.d.ts.map +1 -0
- package/dist/base-assets/connectors/flow/stimulus-driver.js +4 -0
- package/dist/base-assets/connectors/flow/stimulus-driver.js.map +1 -0
- package/dist/base-assets/connectors/flow.js +20 -0
- package/dist/base-assets/connectors/flow.js.map +1 -0
- package/dist/base-assets/connectors/gmail/adapter.d.ts +31 -0
- package/dist/base-assets/connectors/gmail/adapter.d.ts.map +1 -0
- package/dist/base-assets/connectors/gmail.js +20 -0
- package/dist/base-assets/connectors/gmail.js.map +1 -0
- package/dist/base-assets/connectors/mattermost/adapter.d.ts +38 -0
- package/dist/base-assets/connectors/mattermost/adapter.d.ts.map +1 -0
- package/dist/base-assets/connectors/mattermost.js +20 -0
- package/dist/base-assets/connectors/mattermost.js.map +1 -0
- package/dist/base-assets/connectors/memory/adapter.d.ts +32 -0
- package/dist/base-assets/connectors/memory/adapter.d.ts.map +1 -0
- package/dist/base-assets/connectors/memory.js +20 -0
- package/dist/base-assets/connectors/memory.js.map +1 -0
- package/dist/base-assets/connectors/minio/adapter.d.ts +32 -0
- package/dist/base-assets/connectors/minio/adapter.d.ts.map +1 -0
- package/dist/base-assets/connectors/minio.js +20 -0
- package/dist/base-assets/connectors/minio.js.map +1 -0
- package/dist/base-assets/connectors/postgres/adapter.d.ts +40 -0
- package/dist/base-assets/connectors/postgres/adapter.d.ts.map +1 -0
- package/dist/base-assets/connectors/postgres.js +20 -0
- package/dist/base-assets/connectors/postgres.js.map +1 -0
- package/dist/base-assets/connectors/redis/adapter.d.ts +39 -0
- package/dist/base-assets/connectors/redis/adapter.d.ts.map +1 -0
- package/dist/base-assets/connectors/redis.js +20 -0
- package/dist/base-assets/connectors/redis.js.map +1 -0
- package/dist/base-assets/connectors/sqlite/adapter.d.ts +42 -0
- package/dist/base-assets/connectors/sqlite/adapter.d.ts.map +1 -0
- package/dist/base-assets/connectors/sqlite.js +20 -0
- package/dist/base-assets/connectors/sqlite.js.map +1 -0
- package/dist/base-assets/connectors/static-server/adapter.d.ts +28 -0
- package/dist/base-assets/connectors/static-server/adapter.d.ts.map +1 -0
- package/dist/base-assets/connectors/static-server.js +20 -0
- package/dist/base-assets/connectors/static-server.js.map +1 -0
- package/dist/base-assets/connectors/tunnel/adapter.d.ts +28 -0
- package/dist/base-assets/connectors/tunnel/adapter.d.ts.map +1 -0
- package/dist/base-assets/connectors/tunnel.js +20 -0
- package/dist/base-assets/connectors/tunnel.js.map +1 -0
- package/dist/base-assets/connectors/xstate/adapter.d.ts +51 -0
- package/dist/base-assets/connectors/xstate/adapter.d.ts.map +1 -0
- package/dist/base-assets/connectors/xstate-store/adapter.d.ts +40 -0
- package/dist/base-assets/connectors/xstate-store/adapter.d.ts.map +1 -0
- package/dist/base-assets/connectors/xstate-store.js +20 -0
- package/dist/base-assets/connectors/xstate-store.js.map +1 -0
- package/dist/base-assets/connectors/xstate.js +20 -0
- package/dist/base-assets/connectors/xstate.js.map +1 -0
- package/dist/base-assets/connectors/yjs/adapter.d.ts +49 -0
- package/dist/base-assets/connectors/yjs/adapter.d.ts.map +1 -0
- package/dist/base-assets/connectors/yjs.js +20 -0
- package/dist/base-assets/connectors/yjs.js.map +1 -0
- package/dist/base-assets/index.d.ts +8 -0
- package/dist/base-assets/index.d.ts.map +1 -0
- package/dist/base-assets/index.js +9 -0
- package/dist/base-assets/index.js.map +1 -0
- package/dist/base-assets/mounts/git/driver.d.ts +183 -0
- package/dist/base-assets/mounts/git/driver.d.ts.map +1 -0
- package/dist/base-assets/mounts/git.js +20 -0
- package/dist/base-assets/mounts/git.js.map +1 -0
- package/dist/base-assets/mounts/local/driver.d.ts +27 -0
- package/dist/base-assets/mounts/local/driver.d.ts.map +1 -0
- package/dist/base-assets/mounts/local.js +20 -0
- package/dist/base-assets/mounts/local.js.map +1 -0
- package/dist/base-assets/mounts/s3/driver.d.ts +27 -0
- package/dist/base-assets/mounts/s3/driver.d.ts.map +1 -0
- package/dist/base-assets/mounts/s3.js +20 -0
- package/dist/base-assets/mounts/s3.js.map +1 -0
- package/dist/base-assets/mounts/sharepoint/driver.d.ts +31 -0
- package/dist/base-assets/mounts/sharepoint/driver.d.ts.map +1 -0
- package/dist/base-assets/mounts/sharepoint.js +20 -0
- package/dist/base-assets/mounts/sharepoint.js.map +1 -0
- package/dist/base-assets/mounts/webdav/driver.d.ts +32 -0
- package/dist/base-assets/mounts/webdav/driver.d.ts.map +1 -0
- package/dist/base-assets/mounts/webdav.js +20 -0
- package/dist/base-assets/mounts/webdav.js.map +1 -0
- package/dist/bridge/drivers/claude-sdk.js +836 -0
- package/dist/bridge/drivers/claude-sdk.js.map +1 -0
- package/dist/bridge/drivers/codex.js +478 -0
- package/dist/bridge/drivers/codex.js.map +1 -0
- package/dist/bridge/drivers/echo.js +219 -0
- package/dist/bridge/drivers/echo.js.map +1 -0
- package/dist/bridge/drivers/omp.js +431 -0
- package/dist/bridge/drivers/omp.js.map +1 -0
- package/dist/bridge/index.js +9 -0
- package/dist/bridge/index.js.map +1 -0
- package/dist/bridge/src/capability-dispatch.d.ts +94 -0
- package/dist/bridge/src/capability-dispatch.d.ts.map +1 -0
- package/dist/bridge/src/drivers/claude-sdk.d.ts +224 -0
- package/dist/bridge/src/drivers/claude-sdk.d.ts.map +1 -0
- package/dist/bridge/src/drivers/codex.d.ts +66 -0
- package/dist/bridge/src/drivers/codex.d.ts.map +1 -0
- package/dist/bridge/src/drivers/echo.d.ts +59 -0
- package/dist/bridge/src/drivers/echo.d.ts.map +1 -0
- package/dist/bridge/src/drivers/omp.d.ts +101 -0
- package/dist/bridge/src/drivers/omp.d.ts.map +1 -0
- package/dist/bridge/src/error-classifier.d.ts +90 -0
- package/dist/bridge/src/error-classifier.d.ts.map +1 -0
- package/dist/bridge/src/index.d.ts +10 -0
- package/dist/bridge/src/index.d.ts.map +1 -0
- package/dist/bridge/src/logger.d.ts +22 -0
- package/dist/bridge/src/logger.d.ts.map +1 -0
- package/dist/bridge/src/models.d.ts +90 -0
- package/dist/bridge/src/models.d.ts.map +1 -0
- package/dist/bridge/src/normalizer.d.ts +91 -0
- package/dist/bridge/src/normalizer.d.ts.map +1 -0
- package/dist/bridge/src/registry.d.ts +90 -0
- package/dist/bridge/src/registry.d.ts.map +1 -0
- package/dist/bridge/src/runtime.d.ts +42 -0
- package/dist/bridge/src/runtime.d.ts.map +1 -0
- package/dist/bridge/src/types.d.ts +564 -0
- package/dist/bridge/src/types.d.ts.map +1 -0
- package/dist/bridge/src/validation.d.ts +27 -0
- package/dist/bridge/src/validation.d.ts.map +1 -0
- package/dist/chunk-2M3XTMOL.js +23 -0
- package/dist/chunk-2M3XTMOL.js.map +1 -0
- package/dist/chunk-3W7Z74ZP.js +7678 -0
- package/dist/chunk-3W7Z74ZP.js.map +1 -0
- package/dist/chunk-44ZICIN4.js +418 -0
- package/dist/chunk-44ZICIN4.js.map +1 -0
- package/dist/chunk-46T37EBP.js +1517 -0
- package/dist/chunk-46T37EBP.js.map +1 -0
- package/dist/chunk-4NDWKA64.js +71 -0
- package/dist/chunk-4NDWKA64.js.map +1 -0
- package/dist/chunk-5CSE3QL2.js +546 -0
- package/dist/chunk-5CSE3QL2.js.map +1 -0
- package/dist/chunk-65CYXYUW.js +537 -0
- package/dist/chunk-65CYXYUW.js.map +1 -0
- package/dist/chunk-6UQ66R46.js +72 -0
- package/dist/chunk-6UQ66R46.js.map +1 -0
- package/dist/chunk-77CUYYO3.js +101 -0
- package/dist/chunk-77CUYYO3.js.map +1 -0
- package/dist/chunk-7H7EOIRH.js +393 -0
- package/dist/chunk-7H7EOIRH.js.map +1 -0
- package/dist/chunk-7HCGI2GW.js +385 -0
- package/dist/chunk-7HCGI2GW.js.map +1 -0
- package/dist/chunk-7HLNUSNE.js +212 -0
- package/dist/chunk-7HLNUSNE.js.map +1 -0
- package/dist/chunk-7PTP3SQJ.js +151 -0
- package/dist/chunk-7PTP3SQJ.js.map +1 -0
- package/dist/chunk-AIGWF3TJ.js +73 -0
- package/dist/chunk-AIGWF3TJ.js.map +1 -0
- package/dist/chunk-BVHFSUFM.js +343 -0
- package/dist/chunk-BVHFSUFM.js.map +1 -0
- package/dist/chunk-CCKGX5AS.js +481 -0
- package/dist/chunk-CCKGX5AS.js.map +1 -0
- package/dist/chunk-CGYEHQOX.js +117 -0
- package/dist/chunk-CGYEHQOX.js.map +1 -0
- package/dist/chunk-CSUBFKAN.js +747 -0
- package/dist/chunk-CSUBFKAN.js.map +1 -0
- package/dist/chunk-D5IH3QMH.js +112 -0
- package/dist/chunk-D5IH3QMH.js.map +1 -0
- package/dist/chunk-DOMCYP7D.js +3229 -0
- package/dist/chunk-DOMCYP7D.js.map +1 -0
- package/dist/chunk-EE3XTJ62.js +840 -0
- package/dist/chunk-EE3XTJ62.js.map +1 -0
- package/dist/chunk-EWP5HZBV.js +226 -0
- package/dist/chunk-EWP5HZBV.js.map +1 -0
- package/dist/chunk-FQHHCICT.js +591 -0
- package/dist/chunk-FQHHCICT.js.map +1 -0
- package/dist/chunk-FVTV7M76.js +30 -0
- package/dist/chunk-FVTV7M76.js.map +1 -0
- package/dist/chunk-GCRKAFH7.js +40 -0
- package/dist/chunk-GCRKAFH7.js.map +1 -0
- package/dist/chunk-GVOLEJG5.js +93 -0
- package/dist/chunk-GVOLEJG5.js.map +1 -0
- package/dist/chunk-GZWJGNNN.js +122 -0
- package/dist/chunk-GZWJGNNN.js.map +1 -0
- package/dist/chunk-HK5FRWG6.js +44 -0
- package/dist/chunk-HK5FRWG6.js.map +1 -0
- package/dist/chunk-IPUYL6TD.js +279 -0
- package/dist/chunk-IPUYL6TD.js.map +1 -0
- package/dist/chunk-JDX54X4Y.js +535 -0
- package/dist/chunk-JDX54X4Y.js.map +1 -0
- package/dist/chunk-JKNWJ64A.js +31 -0
- package/dist/chunk-JKNWJ64A.js.map +1 -0
- package/dist/chunk-JLPC4YWT.js +124 -0
- package/dist/chunk-JLPC4YWT.js.map +1 -0
- package/dist/chunk-K5GBV4SA.js +31 -0
- package/dist/chunk-K5GBV4SA.js.map +1 -0
- package/dist/chunk-KLNL7QHN.js +56 -0
- package/dist/chunk-KLNL7QHN.js.map +1 -0
- package/dist/chunk-KOVLSBXK.js +227 -0
- package/dist/chunk-KOVLSBXK.js.map +1 -0
- package/dist/chunk-KTBKW2FI.js +46 -0
- package/dist/chunk-KTBKW2FI.js.map +1 -0
- package/dist/chunk-LSGAYQ2E.js +166 -0
- package/dist/chunk-LSGAYQ2E.js.map +1 -0
- package/dist/chunk-LV2HPH3C.js +73 -0
- package/dist/chunk-LV2HPH3C.js.map +1 -0
- package/dist/chunk-MBBTBKAS.js +201 -0
- package/dist/chunk-MBBTBKAS.js.map +1 -0
- package/dist/chunk-MJHLQRJJ.js +325 -0
- package/dist/chunk-MJHLQRJJ.js.map +1 -0
- package/dist/chunk-NSBPE2FW.js +15 -0
- package/dist/chunk-NSBPE2FW.js.map +1 -0
- package/dist/chunk-NYJKXVG6.js +4166 -0
- package/dist/chunk-NYJKXVG6.js.map +1 -0
- package/dist/chunk-O4JH3KUE.js +56 -0
- package/dist/chunk-O4JH3KUE.js.map +1 -0
- package/dist/chunk-O5AE4QDX.js +67 -0
- package/dist/chunk-O5AE4QDX.js.map +1 -0
- package/dist/chunk-O7SG5PC2.js +3 -0
- package/dist/chunk-O7SG5PC2.js.map +1 -0
- package/dist/chunk-OKRUTSG7.js +87 -0
- package/dist/chunk-OKRUTSG7.js.map +1 -0
- package/dist/chunk-Q5URN24L.js +310 -0
- package/dist/chunk-Q5URN24L.js.map +1 -0
- package/dist/chunk-QT2KQHDT.js +49 -0
- package/dist/chunk-QT2KQHDT.js.map +1 -0
- package/dist/chunk-RRVQAE5D.js +51 -0
- package/dist/chunk-RRVQAE5D.js.map +1 -0
- package/dist/chunk-SZ3SIVZQ.js +78 -0
- package/dist/chunk-SZ3SIVZQ.js.map +1 -0
- package/dist/chunk-TS6VCR4W.js +195 -0
- package/dist/chunk-TS6VCR4W.js.map +1 -0
- package/dist/chunk-UMMBL7SW.js +210 -0
- package/dist/chunk-UMMBL7SW.js.map +1 -0
- package/dist/chunk-UQ6LFBPZ.js +122 -0
- package/dist/chunk-UQ6LFBPZ.js.map +1 -0
- package/dist/chunk-V37HONL7.js +526 -0
- package/dist/chunk-V37HONL7.js.map +1 -0
- package/dist/chunk-W2O5LWYU.js +3 -0
- package/dist/chunk-W2O5LWYU.js.map +1 -0
- package/dist/chunk-X5YPJV4N.js +14 -0
- package/dist/chunk-X5YPJV4N.js.map +1 -0
- package/dist/chunk-XCBG2KDC.js +23 -0
- package/dist/chunk-XCBG2KDC.js.map +1 -0
- package/dist/chunk-XEGHWFAX.js +174 -0
- package/dist/chunk-XEGHWFAX.js.map +1 -0
- package/dist/chunk-XOSBNBB6.js +155 -0
- package/dist/chunk-XOSBNBB6.js.map +1 -0
- package/dist/chunk-Y46TBPLI.js +97 -0
- package/dist/chunk-Y46TBPLI.js.map +1 -0
- package/dist/chunk-Z3RER6YZ.js +343 -0
- package/dist/chunk-Z3RER6YZ.js.map +1 -0
- package/dist/chunk-ZUQIXLRJ.js +284 -0
- package/dist/chunk-ZUQIXLRJ.js.map +1 -0
- package/dist/cli/index.js +5685 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/src/commands/asset-cmd.d.ts +15 -0
- package/dist/cli/src/commands/asset-cmd.d.ts.map +1 -0
- package/dist/cli/src/commands/auth.d.ts +16 -0
- package/dist/cli/src/commands/auth.d.ts.map +1 -0
- package/dist/cli/src/commands/catalog-cmd.d.ts +23 -0
- package/dist/cli/src/commands/catalog-cmd.d.ts.map +1 -0
- package/dist/cli/src/commands/catalog.d.ts +92 -0
- package/dist/cli/src/commands/catalog.d.ts.map +1 -0
- package/dist/cli/src/commands/complete-resolvers.d.ts +35 -0
- package/dist/cli/src/commands/complete-resolvers.d.ts.map +1 -0
- package/dist/cli/src/commands/complete.d.ts +14 -0
- package/dist/cli/src/commands/complete.d.ts.map +1 -0
- package/dist/cli/src/commands/config.d.ts +17 -0
- package/dist/cli/src/commands/config.d.ts.map +1 -0
- package/dist/cli/src/commands/connect.d.ts +13 -0
- package/dist/cli/src/commands/connect.d.ts.map +1 -0
- package/dist/cli/src/commands/connector.d.ts +30 -0
- package/dist/cli/src/commands/connector.d.ts.map +1 -0
- package/dist/cli/src/commands/debug.d.ts +13 -0
- package/dist/cli/src/commands/debug.d.ts.map +1 -0
- package/dist/cli/src/commands/diff.d.ts +12 -0
- package/dist/cli/src/commands/diff.d.ts.map +1 -0
- package/dist/cli/src/commands/flow.d.ts +14 -0
- package/dist/cli/src/commands/flow.d.ts.map +1 -0
- package/dist/cli/src/commands/history.d.ts +12 -0
- package/dist/cli/src/commands/history.d.ts.map +1 -0
- package/dist/cli/src/commands/library-cmd.d.ts +12 -0
- package/dist/cli/src/commands/library-cmd.d.ts.map +1 -0
- package/dist/cli/src/commands/library-status.d.ts +19 -0
- package/dist/cli/src/commands/library-status.d.ts.map +1 -0
- package/dist/cli/src/commands/logs.d.ts +13 -0
- package/dist/cli/src/commands/logs.d.ts.map +1 -0
- package/dist/cli/src/commands/manage.d.ts +62 -0
- package/dist/cli/src/commands/manage.d.ts.map +1 -0
- package/dist/cli/src/commands/mcp-server.d.ts +15 -0
- package/dist/cli/src/commands/mcp-server.d.ts.map +1 -0
- package/dist/cli/src/commands/mount.d.ts +22 -0
- package/dist/cli/src/commands/mount.d.ts.map +1 -0
- package/dist/cli/src/commands/npx.d.ts +14 -0
- package/dist/cli/src/commands/npx.d.ts.map +1 -0
- package/dist/cli/src/commands/outdated.d.ts +12 -0
- package/dist/cli/src/commands/outdated.d.ts.map +1 -0
- package/dist/cli/src/commands/patch.d.ts +14 -0
- package/dist/cli/src/commands/patch.d.ts.map +1 -0
- package/dist/cli/src/commands/plugin/claude-code.d.ts +17 -0
- package/dist/cli/src/commands/plugin/claude-code.d.ts.map +1 -0
- package/dist/cli/src/commands/plugin/codex.d.ts +5 -0
- package/dist/cli/src/commands/plugin/codex.d.ts.map +1 -0
- package/dist/cli/src/commands/plugin/omp.d.ts +12 -0
- package/dist/cli/src/commands/plugin/omp.d.ts.map +1 -0
- package/dist/cli/src/commands/plugin/types.d.ts +65 -0
- package/dist/cli/src/commands/plugin/types.d.ts.map +1 -0
- package/dist/cli/src/commands/plugin.d.ts +14 -0
- package/dist/cli/src/commands/plugin.d.ts.map +1 -0
- package/dist/cli/src/commands/preset-cmd.d.ts +19 -0
- package/dist/cli/src/commands/preset-cmd.d.ts.map +1 -0
- package/dist/cli/src/commands/project.d.ts +34 -0
- package/dist/cli/src/commands/project.d.ts.map +1 -0
- package/dist/cli/src/commands/rebuild.d.ts +21 -0
- package/dist/cli/src/commands/rebuild.d.ts.map +1 -0
- package/dist/cli/src/commands/run.d.ts +68 -0
- package/dist/cli/src/commands/run.d.ts.map +1 -0
- package/dist/cli/src/commands/serve.d.ts +13 -0
- package/dist/cli/src/commands/serve.d.ts.map +1 -0
- package/dist/cli/src/commands/session-logs/format.d.ts +21 -0
- package/dist/cli/src/commands/session-logs/format.d.ts.map +1 -0
- package/dist/cli/src/commands/session-logs/index.d.ts +18 -0
- package/dist/cli/src/commands/session-logs/index.d.ts.map +1 -0
- package/dist/cli/src/commands/session-logs/local-query.d.ts +19 -0
- package/dist/cli/src/commands/session-logs/local-query.d.ts.map +1 -0
- package/dist/cli/src/commands/session-logs/local-tail.d.ts +29 -0
- package/dist/cli/src/commands/session-logs/local-tail.d.ts.map +1 -0
- package/dist/cli/src/commands/session-logs/parse-time.d.ts +11 -0
- package/dist/cli/src/commands/session-logs/parse-time.d.ts.map +1 -0
- package/dist/cli/src/commands/session-logs/remote-query.d.ts +26 -0
- package/dist/cli/src/commands/session-logs/remote-query.d.ts.map +1 -0
- package/dist/cli/src/commands/session-logs/remote-tail.d.ts +22 -0
- package/dist/cli/src/commands/session-logs/remote-tail.d.ts.map +1 -0
- package/dist/cli/src/commands/session-logs/resolve-mode.d.ts +27 -0
- package/dist/cli/src/commands/session-logs/resolve-mode.d.ts.map +1 -0
- package/dist/cli/src/commands/session-logs/sqlite-row.d.ts +51 -0
- package/dist/cli/src/commands/session-logs/sqlite-row.d.ts.map +1 -0
- package/dist/cli/src/commands/session.d.ts +15 -0
- package/dist/cli/src/commands/session.d.ts.map +1 -0
- package/dist/cli/src/commands/show.d.ts +13 -0
- package/dist/cli/src/commands/show.d.ts.map +1 -0
- package/dist/cli/src/commands/source-sidecar.d.ts +6 -0
- package/dist/cli/src/commands/source-sidecar.d.ts.map +1 -0
- package/dist/cli/src/commands/source.d.ts +8 -0
- package/dist/cli/src/commands/source.d.ts.map +1 -0
- package/dist/cli/src/commands/store.d.ts +13 -0
- package/dist/cli/src/commands/store.d.ts.map +1 -0
- package/dist/cli/src/commands/tree.d.ts +12 -0
- package/dist/cli/src/commands/tree.d.ts.map +1 -0
- package/dist/cli/src/commands/update.d.ts +22 -0
- package/dist/cli/src/commands/update.d.ts.map +1 -0
- package/dist/cli/src/commands/validate.d.ts +17 -0
- package/dist/cli/src/commands/validate.d.ts.map +1 -0
- package/dist/cli/src/commands/verify.d.ts +13 -0
- package/dist/cli/src/commands/verify.d.ts.map +1 -0
- package/dist/cli/src/commands/why.d.ts +12 -0
- package/dist/cli/src/commands/why.d.ts.map +1 -0
- package/dist/cli/src/completion.d.ts +19 -0
- package/dist/cli/src/completion.d.ts.map +1 -0
- package/dist/cli/src/helpers.d.ts +54 -0
- package/dist/cli/src/helpers.d.ts.map +1 -0
- package/dist/cli/src/hooks/pre-commit-version.d.ts +10 -0
- package/dist/cli/src/hooks/pre-commit-version.d.ts.map +1 -0
- package/dist/cli/src/index.d.ts +8 -0
- package/dist/cli/src/index.d.ts.map +1 -0
- package/dist/cli/src/open-library.d.ts +101 -0
- package/dist/cli/src/open-library.d.ts.map +1 -0
- package/dist/cli/src/open-registry.d.ts +24 -0
- package/dist/cli/src/open-registry.d.ts.map +1 -0
- package/dist/cli/src/paths.d.ts +27 -0
- package/dist/cli/src/paths.d.ts.map +1 -0
- package/dist/cli/src/setup.d.ts +19 -0
- package/dist/cli/src/setup.d.ts.map +1 -0
- package/dist/cli/src/skill-walker.d.ts +31 -0
- package/dist/cli/src/skill-walker.d.ts.map +1 -0
- package/dist/cli/src/store-client.d.ts +55 -0
- package/dist/cli/src/store-client.d.ts.map +1 -0
- package/dist/client/index.js +4 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/src/client.d.ts +67 -0
- package/dist/client/src/client.d.ts.map +1 -0
- package/dist/client/src/index.d.ts +2 -0
- package/dist/client/src/index.d.ts.map +1 -0
- package/dist/connectors/config.js +14 -0
- package/dist/connectors/config.js.map +1 -0
- package/dist/connectors/index.js +20 -0
- package/dist/connectors/index.js.map +1 -0
- package/dist/connectors/rclone-config.js +4 -0
- package/dist/connectors/rclone-config.js.map +1 -0
- package/dist/connectors/rclone.js +4 -0
- package/dist/connectors/rclone.js.map +1 -0
- package/dist/connectors/src/adapters/base.d.ts +66 -0
- package/dist/connectors/src/adapters/base.d.ts.map +1 -0
- package/dist/connectors/src/cli.d.ts +16 -0
- package/dist/connectors/src/cli.d.ts.map +1 -0
- package/dist/connectors/src/config.d.ts +125 -0
- package/dist/connectors/src/config.d.ts.map +1 -0
- package/dist/connectors/src/connector-manager.d.ts +147 -0
- package/dist/connectors/src/connector-manager.d.ts.map +1 -0
- package/dist/connectors/src/connector-registry.d.ts +59 -0
- package/dist/connectors/src/connector-registry.d.ts.map +1 -0
- package/dist/connectors/src/connector-tools.d.ts +61 -0
- package/dist/connectors/src/connector-tools.d.ts.map +1 -0
- package/dist/connectors/src/connector-types.d.ts +220 -0
- package/dist/connectors/src/connector-types.d.ts.map +1 -0
- package/dist/connectors/src/credential-helper-script.d.ts +87 -0
- package/dist/connectors/src/credential-helper-script.d.ts.map +1 -0
- package/dist/connectors/src/drivers/base.d.ts +44 -0
- package/dist/connectors/src/drivers/base.d.ts.map +1 -0
- package/dist/connectors/src/index.d.ts +51 -0
- package/dist/connectors/src/index.d.ts.map +1 -0
- package/dist/connectors/src/log-buffer.d.ts +21 -0
- package/dist/connectors/src/log-buffer.d.ts.map +1 -0
- package/dist/connectors/src/managed-gitconfig.d.ts +122 -0
- package/dist/connectors/src/managed-gitconfig.d.ts.map +1 -0
- package/dist/connectors/src/mount-manager.d.ts +147 -0
- package/dist/connectors/src/mount-manager.d.ts.map +1 -0
- package/dist/connectors/src/mount-prompt.d.ts +13 -0
- package/dist/connectors/src/mount-prompt.d.ts.map +1 -0
- package/dist/connectors/src/mount-registry.d.ts +61 -0
- package/dist/connectors/src/mount-registry.d.ts.map +1 -0
- package/dist/connectors/src/mount-types.d.ts +222 -0
- package/dist/connectors/src/mount-types.d.ts.map +1 -0
- package/dist/connectors/src/npm-installer.d.ts +69 -0
- package/dist/connectors/src/npm-installer.d.ts.map +1 -0
- package/dist/connectors/src/port-pool.d.ts +25 -0
- package/dist/connectors/src/port-pool.d.ts.map +1 -0
- package/dist/connectors/src/rclone-config/index.d.ts +8 -0
- package/dist/connectors/src/rclone-config/index.d.ts.map +1 -0
- package/dist/connectors/src/rclone-config/onedrive.d.ts +47 -0
- package/dist/connectors/src/rclone-config/onedrive.d.ts.map +1 -0
- package/dist/connectors/src/rclone-config/webdav.d.ts +49 -0
- package/dist/connectors/src/rclone-config/webdav.d.ts.map +1 -0
- package/dist/connectors/src/rclone-process-manager.d.ts +104 -0
- package/dist/connectors/src/rclone-process-manager.d.ts.map +1 -0
- package/dist/connectors/src/secrets.d.ts +264 -0
- package/dist/connectors/src/secrets.d.ts.map +1 -0
- package/dist/connectors/src/shared-types.d.ts +171 -0
- package/dist/connectors/src/shared-types.d.ts.map +1 -0
- package/dist/connectors/src/watcher.d.ts +23 -0
- package/dist/connectors/src/watcher.d.ts.map +1 -0
- package/dist/connectors/src/worktree.d.ts +78 -0
- package/dist/connectors/src/worktree.d.ts.map +1 -0
- package/dist/connectors-7WS2KOSZ.js +5 -0
- package/dist/connectors-7WS2KOSZ.js.map +1 -0
- package/dist/core/discovery.js +4 -0
- package/dist/core/discovery.js.map +1 -0
- package/dist/core/driver-targets.js +4 -0
- package/dist/core/driver-targets.js.map +1 -0
- package/dist/core/framework.js +4 -0
- package/dist/core/framework.js.map +1 -0
- package/dist/core/index.js +13 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/logging.js +4 -0
- package/dist/core/logging.js.map +1 -0
- package/dist/core/manifest.js +5 -0
- package/dist/core/manifest.js.map +1 -0
- package/dist/core/models.js +4 -0
- package/dist/core/models.js.map +1 -0
- package/dist/core/runtime-assets.js +7 -0
- package/dist/core/runtime-assets.js.map +1 -0
- package/dist/core/src/discovery.d.ts +40 -0
- package/dist/core/src/discovery.d.ts.map +1 -0
- package/dist/core/src/driver-targets.d.ts +54 -0
- package/dist/core/src/driver-targets.d.ts.map +1 -0
- package/dist/core/src/framework.d.ts +46 -0
- package/dist/core/src/framework.d.ts.map +1 -0
- package/dist/core/src/index.d.ts +36 -0
- package/dist/core/src/index.d.ts.map +1 -0
- package/dist/core/src/lock.d.ts +69 -0
- package/dist/core/src/lock.d.ts.map +1 -0
- package/dist/core/src/logging/config.d.ts +17 -0
- package/dist/core/src/logging/config.d.ts.map +1 -0
- package/dist/core/src/logging/create-logger.d.ts +32 -0
- package/dist/core/src/logging/create-logger.d.ts.map +1 -0
- package/dist/core/src/logging/index.d.ts +16 -0
- package/dist/core/src/logging/index.d.ts.map +1 -0
- package/dist/core/src/logging/log-store.d.ts +74 -0
- package/dist/core/src/logging/log-store.d.ts.map +1 -0
- package/dist/core/src/logging/sanitize.d.ts +4 -0
- package/dist/core/src/logging/sanitize.d.ts.map +1 -0
- package/dist/core/src/logging/sinks/no-op-sink.d.ts +9 -0
- package/dist/core/src/logging/sinks/no-op-sink.d.ts.map +1 -0
- package/dist/core/src/logging/sinks/on-log-bridge-sink.d.ts +16 -0
- package/dist/core/src/logging/sinks/on-log-bridge-sink.d.ts.map +1 -0
- package/dist/core/src/logging/sinks/sqlite-sink.d.ts +18 -0
- package/dist/core/src/logging/sinks/sqlite-sink.d.ts.map +1 -0
- package/dist/core/src/logging/sinks/stdout-sink.d.ts +24 -0
- package/dist/core/src/logging/sinks/stdout-sink.d.ts.map +1 -0
- package/dist/core/src/logging/sinks/types.d.ts +5 -0
- package/dist/core/src/logging/sinks/types.d.ts.map +1 -0
- package/dist/core/src/logging/sinks/ws-log-sink.d.ts +24 -0
- package/dist/core/src/logging/sinks/ws-log-sink.d.ts.map +1 -0
- package/dist/core/src/manifest.d.ts +228 -0
- package/dist/core/src/manifest.d.ts.map +1 -0
- package/dist/core/src/models.d.ts +304 -0
- package/dist/core/src/models.d.ts.map +1 -0
- package/dist/core/src/patch.d.ts +59 -0
- package/dist/core/src/patch.d.ts.map +1 -0
- package/dist/core/src/repo-manager.d.ts +232 -0
- package/dist/core/src/repo-manager.d.ts.map +1 -0
- package/dist/core/src/runtime-assets.d.ts +125 -0
- package/dist/core/src/runtime-assets.d.ts.map +1 -0
- package/dist/core/src/settings.d.ts +188 -0
- package/dist/core/src/settings.d.ts.map +1 -0
- package/dist/core/src/store.d.ts +48 -0
- package/dist/core/src/store.d.ts.map +1 -0
- package/dist/core/src/workspace-config.d.ts +744 -0
- package/dist/core/src/workspace-config.d.ts.map +1 -0
- package/dist/core/src/workspace-yaml-editor.d.ts +74 -0
- package/dist/core/src/workspace-yaml-editor.d.ts.map +1 -0
- package/dist/core/store.js +5 -0
- package/dist/core/store.js.map +1 -0
- package/dist/core/workspace-config.js +6 -0
- package/dist/core/workspace-config.js.map +1 -0
- package/dist/discovery/index.js +8 -0
- package/dist/discovery/index.js.map +1 -0
- package/dist/discovery/src/asset-kind-registry.d.ts +35 -0
- package/dist/discovery/src/asset-kind-registry.d.ts.map +1 -0
- package/dist/discovery/src/builtin-providers.d.ts +37 -0
- package/dist/discovery/src/builtin-providers.d.ts.map +1 -0
- package/dist/discovery/src/discover-manifest.d.ts +41 -0
- package/dist/discovery/src/discover-manifest.d.ts.map +1 -0
- package/dist/discovery/src/discover.d.ts +92 -0
- package/dist/discovery/src/discover.d.ts.map +1 -0
- package/dist/discovery/src/hash.d.ts +45 -0
- package/dist/discovery/src/hash.d.ts.map +1 -0
- package/dist/discovery/src/index.d.ts +19 -0
- package/dist/discovery/src/index.d.ts.map +1 -0
- package/dist/discovery/src/requires-graph.d.ts +70 -0
- package/dist/discovery/src/requires-graph.d.ts.map +1 -0
- package/dist/discovery/src/source-config.d.ts +456 -0
- package/dist/discovery/src/source-config.d.ts.map +1 -0
- package/dist/discovery/src/tree-entries.d.ts +98 -0
- package/dist/discovery/src/tree-entries.d.ts.map +1 -0
- package/dist/flows-ZULSVHX5.js +7 -0
- package/dist/flows-ZULSVHX5.js.map +1 -0
- package/dist/helpers-I3SREIC3.js +4 -0
- package/dist/helpers-I3SREIC3.js.map +1 -0
- package/dist/library/index.js +9 -0
- package/dist/library/index.js.map +1 -0
- package/dist/library/src/config.d.ts +238 -0
- package/dist/library/src/config.d.ts.map +1 -0
- package/dist/library/src/index.d.ts +32 -0
- package/dist/library/src/index.d.ts.map +1 -0
- package/dist/library/src/knowledge/index.d.ts +9 -0
- package/dist/library/src/knowledge/index.d.ts.map +1 -0
- package/dist/library/src/knowledge/knowledge-kind-provider.d.ts +16 -0
- package/dist/library/src/knowledge/knowledge-kind-provider.d.ts.map +1 -0
- package/dist/library/src/knowledge/knowledge-manifest.d.ts +52 -0
- package/dist/library/src/knowledge/knowledge-manifest.d.ts.map +1 -0
- package/dist/library/src/library.d.ts +344 -0
- package/dist/library/src/library.d.ts.map +1 -0
- package/dist/library/src/local/db.d.ts +29 -0
- package/dist/library/src/local/db.d.ts.map +1 -0
- package/dist/library/src/local/library.d.ts +85 -0
- package/dist/library/src/local/library.d.ts.map +1 -0
- package/dist/library/src/local/local-catalog-source.d.ts +66 -0
- package/dist/library/src/local/local-catalog-source.d.ts.map +1 -0
- package/dist/library/src/local/schema.d.ts +783 -0
- package/dist/library/src/local/schema.d.ts.map +1 -0
- package/dist/library/src/local/sidecar-git.d.ts +104 -0
- package/dist/library/src/local/sidecar-git.d.ts.map +1 -0
- package/dist/library/src/local/sidecar-paths.d.ts +87 -0
- package/dist/library/src/local/sidecar-paths.d.ts.map +1 -0
- package/dist/library/src/local/user-library-manager.d.ts +41 -0
- package/dist/library/src/local/user-library-manager.d.ts.map +1 -0
- package/dist/library/src/migration.d.ts +38 -0
- package/dist/library/src/migration.d.ts.map +1 -0
- package/dist/library/src/pin-resolver.d.ts +45 -0
- package/dist/library/src/pin-resolver.d.ts.map +1 -0
- package/dist/library/src/preset/apply.d.ts +105 -0
- package/dist/library/src/preset/apply.d.ts.map +1 -0
- package/dist/library/src/preset/index.d.ts +13 -0
- package/dist/library/src/preset/index.d.ts.map +1 -0
- package/dist/library/src/preset/interpolate.d.ts +109 -0
- package/dist/library/src/preset/interpolate.d.ts.map +1 -0
- package/dist/library/src/preset/parse.d.ts +65 -0
- package/dist/library/src/preset/parse.d.ts.map +1 -0
- package/dist/library/src/preset/placeholders.d.ts +103 -0
- package/dist/library/src/preset/placeholders.d.ts.map +1 -0
- package/dist/library/src/preset/resolve-item.d.ts +119 -0
- package/dist/library/src/preset/resolve-item.d.ts.map +1 -0
- package/dist/library/src/preset/upgrade.d.ts +96 -0
- package/dist/library/src/preset/upgrade.d.ts.map +1 -0
- package/dist/library/src/remote/cache.d.ts +150 -0
- package/dist/library/src/remote/cache.d.ts.map +1 -0
- package/dist/library/src/remote/index.d.ts +13 -0
- package/dist/library/src/remote/index.d.ts.map +1 -0
- package/dist/library/src/remote/remote-catalog-source.d.ts +199 -0
- package/dist/library/src/remote/remote-catalog-source.d.ts.map +1 -0
- package/dist/library/src/remote/rest-catalog-source.d.ts +135 -0
- package/dist/library/src/remote/rest-catalog-source.d.ts.map +1 -0
- package/dist/library/src/sync/driver.d.ts +19 -0
- package/dist/library/src/sync/driver.d.ts.map +1 -0
- package/dist/library/src/sync/git-driver.d.ts +21 -0
- package/dist/library/src/sync/git-driver.d.ts.map +1 -0
- package/dist/library/src/sync/local-driver.d.ts +19 -0
- package/dist/library/src/sync/local-driver.d.ts.map +1 -0
- package/dist/library/src/sync/manifest-writeback.d.ts +23 -0
- package/dist/library/src/sync/manifest-writeback.d.ts.map +1 -0
- package/dist/library/src/sync/store-driver.d.ts +21 -0
- package/dist/library/src/sync/store-driver.d.ts.map +1 -0
- package/dist/library/src/user-library.d.ts +149 -0
- package/dist/library/src/user-library.d.ts.map +1 -0
- package/dist/library/src/workspace-config.d.ts +451 -0
- package/dist/library/src/workspace-config.d.ts.map +1 -0
- package/dist/mounts-PQLFYD2C.js +5 -0
- package/dist/mounts-PQLFYD2C.js.map +1 -0
- package/dist/open-library-N5T5HRTS.js +12 -0
- package/dist/open-library-N5T5HRTS.js.map +1 -0
- package/dist/paths-FKKGS6BA.js +4 -0
- package/dist/paths-FKKGS6BA.js.map +1 -0
- package/dist/plugins/index.js +4 -0
- package/dist/plugins/index.js.map +1 -0
- package/dist/plugins/src/asset-kind-provider.d.ts +99 -0
- package/dist/plugins/src/asset-kind-provider.d.ts.map +1 -0
- package/dist/plugins/src/asset-kind-registry.d.ts +106 -0
- package/dist/plugins/src/asset-kind-registry.d.ts.map +1 -0
- package/dist/plugins/src/catalog-source.d.ts +87 -0
- package/dist/plugins/src/catalog-source.d.ts.map +1 -0
- package/dist/plugins/src/index.d.ts +8 -0
- package/dist/plugins/src/index.d.ts.map +1 -0
- package/dist/plugins/src/secrets-provider.d.ts +143 -0
- package/dist/plugins/src/secrets-provider.d.ts.map +1 -0
- package/dist/provider-QXKEDXWJ.js +174 -0
- package/dist/provider-QXKEDXWJ.js.map +1 -0
- package/dist/resolver/index.js +4 -0
- package/dist/resolver/index.js.map +1 -0
- package/dist/resolver/src/index.d.ts +6 -0
- package/dist/resolver/src/index.d.ts.map +1 -0
- package/dist/resolver/src/parser.d.ts +47 -0
- package/dist/resolver/src/parser.d.ts.map +1 -0
- package/dist/resolver/src/preamble.d.ts +32 -0
- package/dist/resolver/src/preamble.d.ts.map +1 -0
- package/dist/resolver/src/types.d.ts +279 -0
- package/dist/resolver/src/types.d.ts.map +1 -0
- package/dist/resolver/src/validator.d.ts +55 -0
- package/dist/resolver/src/validator.d.ts.map +1 -0
- package/dist/resolver/src/version.d.ts +50 -0
- package/dist/resolver/src/version.d.ts.map +1 -0
- package/dist/runner/index.js +34 -0
- package/dist/runner/index.js.map +1 -0
- package/dist/runner/src/agent.d.ts +52 -0
- package/dist/runner/src/agent.d.ts.map +1 -0
- package/dist/runner/src/builtin-capabilities.d.ts +23 -0
- package/dist/runner/src/builtin-capabilities.d.ts.map +1 -0
- package/dist/runner/src/capability-registry.d.ts +212 -0
- package/dist/runner/src/capability-registry.d.ts.map +1 -0
- package/dist/runner/src/capability-roundtrip.d.ts +90 -0
- package/dist/runner/src/capability-roundtrip.d.ts.map +1 -0
- package/dist/runner/src/compaction/index.d.ts +6 -0
- package/dist/runner/src/compaction/index.d.ts.map +1 -0
- package/dist/runner/src/compaction/orchestrator.d.ts +99 -0
- package/dist/runner/src/compaction/orchestrator.d.ts.map +1 -0
- package/dist/runner/src/compaction/prompt.d.ts +15 -0
- package/dist/runner/src/compaction/prompt.d.ts.map +1 -0
- package/dist/runner/src/compaction/strategy.d.ts +41 -0
- package/dist/runner/src/compaction/strategy.d.ts.map +1 -0
- package/dist/runner/src/composition/bootstrap.d.ts +73 -0
- package/dist/runner/src/composition/bootstrap.d.ts.map +1 -0
- package/dist/runner/src/composition/compile.d.ts +84 -0
- package/dist/runner/src/composition/compile.d.ts.map +1 -0
- package/dist/runner/src/composition/index.d.ts +14 -0
- package/dist/runner/src/composition/index.d.ts.map +1 -0
- package/dist/runner/src/composition/resolve.d.ts +53 -0
- package/dist/runner/src/composition/resolve.d.ts.map +1 -0
- package/dist/runner/src/composition/types.d.ts +103 -0
- package/dist/runner/src/composition/types.d.ts.map +1 -0
- package/dist/runner/src/config.d.ts +11 -0
- package/dist/runner/src/config.d.ts.map +1 -0
- package/dist/runner/src/context.d.ts +16 -0
- package/dist/runner/src/context.d.ts.map +1 -0
- package/dist/runner/src/define-capability.d.ts +153 -0
- package/dist/runner/src/define-capability.d.ts.map +1 -0
- package/dist/runner/src/environment.d.ts +21 -0
- package/dist/runner/src/environment.d.ts.map +1 -0
- package/dist/runner/src/file-changed-rewriter.d.ts +35 -0
- package/dist/runner/src/file-changed-rewriter.d.ts.map +1 -0
- package/dist/runner/src/index.d.ts +22 -0
- package/dist/runner/src/index.d.ts.map +1 -0
- package/dist/runner/src/logging-bootstrap.d.ts +92 -0
- package/dist/runner/src/logging-bootstrap.d.ts.map +1 -0
- package/dist/runner/src/manifest.d.ts +33 -0
- package/dist/runner/src/manifest.d.ts.map +1 -0
- package/dist/runner/src/markdown-stream.d.ts +22 -0
- package/dist/runner/src/markdown-stream.d.ts.map +1 -0
- package/dist/runner/src/mixin-resolver.d.ts +61 -0
- package/dist/runner/src/mixin-resolver.d.ts.map +1 -0
- package/dist/runner/src/prompt-assembly.d.ts +42 -0
- package/dist/runner/src/prompt-assembly.d.ts.map +1 -0
- package/dist/runner/src/recipe-resolver.d.ts +18 -0
- package/dist/runner/src/recipe-resolver.d.ts.map +1 -0
- package/dist/runner/src/recipe-templating.d.ts +20 -0
- package/dist/runner/src/recipe-templating.d.ts.map +1 -0
- package/dist/runner/src/refresh-flag-dispatcher.d.ts +54 -0
- package/dist/runner/src/refresh-flag-dispatcher.d.ts.map +1 -0
- package/dist/runner/src/resource-handler.d.ts +22 -0
- package/dist/runner/src/resource-handler.d.ts.map +1 -0
- package/dist/runner/src/resources.d.ts +102 -0
- package/dist/runner/src/resources.d.ts.map +1 -0
- package/dist/runner/src/runner-capabilities.d.ts +120 -0
- package/dist/runner/src/runner-capabilities.d.ts.map +1 -0
- package/dist/runner/src/serve-credentials.d.ts +50 -0
- package/dist/runner/src/serve-credentials.d.ts.map +1 -0
- package/dist/runner/src/serve.d.ts +154 -0
- package/dist/runner/src/serve.d.ts.map +1 -0
- package/dist/runner/src/session-builder.d.ts +213 -0
- package/dist/runner/src/session-builder.d.ts.map +1 -0
- package/dist/runner/src/session-stimulus.d.ts +79 -0
- package/dist/runner/src/session-stimulus.d.ts.map +1 -0
- package/dist/runner/src/session.d.ts +139 -0
- package/dist/runner/src/session.d.ts.map +1 -0
- package/dist/runner/src/workspace-migration.d.ts +54 -0
- package/dist/runner/src/workspace-migration.d.ts.map +1 -0
- package/dist/sdk/asset-manager.js +22 -0
- package/dist/sdk/asset-manager.js.map +1 -0
- package/dist/sdk/bridge.js +9 -0
- package/dist/sdk/bridge.js.map +1 -0
- package/dist/sdk/client.js +4 -0
- package/dist/sdk/client.js.map +1 -0
- package/dist/sdk/core.js +13 -0
- package/dist/sdk/core.js.map +1 -0
- package/dist/sdk/flow.js +4 -0
- package/dist/sdk/flow.js.map +1 -0
- package/dist/sdk/index.js +339 -0
- package/dist/sdk/index.js.map +1 -0
- package/dist/sdk/resolver.js +4 -0
- package/dist/sdk/resolver.js.map +1 -0
- package/dist/sdk/runner.js +34 -0
- package/dist/sdk/runner.js.map +1 -0
- package/dist/sdk/session.js +5 -0
- package/dist/sdk/session.js.map +1 -0
- package/dist/sdk/src/agent-session.d.ts +67 -0
- package/dist/sdk/src/agent-session.d.ts.map +1 -0
- package/dist/sdk/src/asset-manager/index.d.ts +2 -0
- package/dist/sdk/src/asset-manager/index.d.ts.map +1 -0
- package/dist/sdk/src/bridge/index.d.ts +2 -0
- package/dist/sdk/src/bridge/index.d.ts.map +1 -0
- package/dist/sdk/src/client/index.d.ts +2 -0
- package/dist/sdk/src/client/index.d.ts.map +1 -0
- package/dist/sdk/src/core/index.d.ts +2 -0
- package/dist/sdk/src/core/index.d.ts.map +1 -0
- package/dist/sdk/src/factory.d.ts +19 -0
- package/dist/sdk/src/factory.d.ts.map +1 -0
- package/dist/sdk/src/flow/index.d.ts +2 -0
- package/dist/sdk/src/flow/index.d.ts.map +1 -0
- package/dist/sdk/src/index.d.ts +7 -0
- package/dist/sdk/src/index.d.ts.map +1 -0
- package/dist/sdk/src/local-runtime.d.ts +51 -0
- package/dist/sdk/src/local-runtime.d.ts.map +1 -0
- package/dist/sdk/src/resolver/index.d.ts +2 -0
- package/dist/sdk/src/resolver/index.d.ts.map +1 -0
- package/dist/sdk/src/runner/index.d.ts +2 -0
- package/dist/sdk/src/runner/index.d.ts.map +1 -0
- package/dist/sdk/src/session/index.d.ts +2 -0
- package/dist/sdk/src/session/index.d.ts.map +1 -0
- package/dist/sdk/src/store/index.d.ts +2 -0
- package/dist/sdk/src/store/index.d.ts.map +1 -0
- package/dist/sdk/src/telemetry/index.d.ts +2 -0
- package/dist/sdk/src/telemetry/index.d.ts.map +1 -0
- package/dist/sdk/src/transport/index.d.ts +2 -0
- package/dist/sdk/src/transport/index.d.ts.map +1 -0
- package/dist/sdk/src/transport/ws/client.d.ts +2 -0
- package/dist/sdk/src/transport/ws/client.d.ts.map +1 -0
- package/dist/sdk/src/transport/ws/index.d.ts +2 -0
- package/dist/sdk/src/transport/ws/index.d.ts.map +1 -0
- package/dist/sdk/src/transport/ws/server.d.ts +2 -0
- package/dist/sdk/src/transport/ws/server.d.ts.map +1 -0
- package/dist/sdk/src/transport.d.ts +31 -0
- package/dist/sdk/src/transport.d.ts.map +1 -0
- package/dist/sdk/src/types/index.d.ts +2 -0
- package/dist/sdk/src/types/index.d.ts.map +1 -0
- package/dist/sdk/src/types.d.ts +140 -0
- package/dist/sdk/src/types.d.ts.map +1 -0
- package/dist/sdk/src/workspace.d.ts +32 -0
- package/dist/sdk/src/workspace.d.ts.map +1 -0
- package/dist/sdk/store.js +4 -0
- package/dist/sdk/store.js.map +1 -0
- package/dist/sdk/telemetry.js +4 -0
- package/dist/sdk/telemetry.js.map +1 -0
- package/dist/sdk/transport/ws/client.js +4 -0
- package/dist/sdk/transport/ws/client.js.map +1 -0
- package/dist/sdk/transport/ws/server.js +4 -0
- package/dist/sdk/transport/ws/server.js.map +1 -0
- package/dist/sdk/transport/ws.js +6 -0
- package/dist/sdk/transport/ws.js.map +1 -0
- package/dist/sdk/transport.js +7 -0
- package/dist/sdk/transport.js.map +1 -0
- package/dist/sdk/types.js +4 -0
- package/dist/sdk/types.js.map +1 -0
- package/dist/secrets/index.js +5 -0
- package/dist/secrets/index.js.map +1 -0
- package/dist/secrets/src/index.d.ts +12 -0
- package/dist/secrets/src/index.d.ts.map +1 -0
- package/dist/secrets/src/lifecycle.d.ts +51 -0
- package/dist/secrets/src/lifecycle.d.ts.map +1 -0
- package/dist/secrets/src/providers/env.d.ts +26 -0
- package/dist/secrets/src/providers/env.d.ts.map +1 -0
- package/dist/secrets/src/providers/local.d.ts +63 -0
- package/dist/secrets/src/providers/local.d.ts.map +1 -0
- package/dist/secrets/src/router.d.ts +91 -0
- package/dist/secrets/src/router.d.ts.map +1 -0
- package/dist/session/index.js +5 -0
- package/dist/session/index.js.map +1 -0
- package/dist/session/src/dispatcher.d.ts +246 -0
- package/dist/session/src/dispatcher.d.ts.map +1 -0
- package/dist/session/src/index.d.ts +6 -0
- package/dist/session/src/index.d.ts.map +1 -0
- package/dist/session/src/mentions.d.ts +80 -0
- package/dist/session/src/mentions.d.ts.map +1 -0
- package/dist/session/src/types.d.ts +109 -0
- package/dist/session/src/types.d.ts.map +1 -0
- package/dist/sessions-2IUX4P3P.js +5 -0
- package/dist/sessions-2IUX4P3P.js.map +1 -0
- package/dist/setup-BMTC562F.js +488 -0
- package/dist/setup-BMTC562F.js.map +1 -0
- package/dist/skills-CRL3VJNN.js +7 -0
- package/dist/skills-CRL3VJNN.js.map +1 -0
- package/dist/store/index.js +4 -0
- package/dist/store/index.js.map +1 -0
- package/dist/store/react.js +40 -0
- package/dist/store/react.js.map +1 -0
- package/dist/store/src/index.d.ts +4 -0
- package/dist/store/src/index.d.ts.map +1 -0
- package/dist/store/src/react.d.ts +75 -0
- package/dist/store/src/react.d.ts.map +1 -0
- package/dist/store/src/resource-client.d.ts +128 -0
- package/dist/store/src/resource-client.d.ts.map +1 -0
- package/dist/store/src/store.d.ts +172 -0
- package/dist/store/src/store.d.ts.map +1 -0
- package/dist/store/src/types.d.ts +248 -0
- package/dist/store/src/types.d.ts.map +1 -0
- package/dist/store/src/vue.d.ts +52 -0
- package/dist/store/src/vue.d.ts.map +1 -0
- package/dist/store/vue.js +23 -0
- package/dist/store/vue.js.map +1 -0
- package/dist/store-client-X7Y7D5QX.js +14 -0
- package/dist/store-client-X7Y7D5QX.js.map +1 -0
- package/dist/telemetry/index.js +4 -0
- package/dist/telemetry/index.js.map +1 -0
- package/dist/telemetry/src/config.d.ts +28 -0
- package/dist/telemetry/src/config.d.ts.map +1 -0
- package/dist/telemetry/src/context.d.ts +36 -0
- package/dist/telemetry/src/context.d.ts.map +1 -0
- package/dist/telemetry/src/index.d.ts +5 -0
- package/dist/telemetry/src/index.d.ts.map +1 -0
- package/dist/telemetry/src/noop.d.ts +25 -0
- package/dist/telemetry/src/noop.d.ts.map +1 -0
- package/dist/telemetry/src/otel/exporter.d.ts +17 -0
- package/dist/telemetry/src/otel/exporter.d.ts.map +1 -0
- package/dist/telemetry/src/otel/gen-ai.d.ts +17 -0
- package/dist/telemetry/src/otel/gen-ai.d.ts.map +1 -0
- package/dist/telemetry/src/otel/provider.d.ts +34 -0
- package/dist/telemetry/src/otel/provider.d.ts.map +1 -0
- package/dist/telemetry/src/types.d.ts +182 -0
- package/dist/telemetry/src/types.d.ts.map +1 -0
- package/dist/transport/index.js +7 -0
- package/dist/transport/index.js.map +1 -0
- package/dist/transport/src/index.d.ts +2 -0
- package/dist/transport/src/index.d.ts.map +1 -0
- package/dist/transport/src/ws/client.d.ts +72 -0
- package/dist/transport/src/ws/client.d.ts.map +1 -0
- package/dist/transport/src/ws/index.d.ts +3 -0
- package/dist/transport/src/ws/index.d.ts.map +1 -0
- package/dist/transport/src/ws/server.d.ts +67 -0
- package/dist/transport/src/ws/server.d.ts.map +1 -0
- package/dist/transport/ws/client.js +4 -0
- package/dist/transport/ws/client.js.map +1 -0
- package/dist/transport/ws/server.js +4 -0
- package/dist/transport/ws/server.js.map +1 -0
- package/dist/transport/ws.js +6 -0
- package/dist/transport/ws.js.map +1 -0
- package/dist/tui/index.js +471 -0
- package/dist/tui/index.js.map +1 -0
- package/dist/tui/src/index.d.ts +4 -0
- package/dist/tui/src/index.d.ts.map +1 -0
- package/dist/tui/src/repl-renderer.d.ts +31 -0
- package/dist/tui/src/repl-renderer.d.ts.map +1 -0
- package/dist/tui/src/repl-session.d.ts +69 -0
- package/dist/tui/src/repl-session.d.ts.map +1 -0
- package/dist/tui/src/repl.d.ts +49 -0
- package/dist/tui/src/repl.d.ts.map +1 -0
- package/dist/tui/src/telemetry.d.ts +88 -0
- package/dist/tui/src/telemetry.d.ts.map +1 -0
- package/dist/types/index.js +4 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/manifests.js +4 -0
- package/dist/types/manifests.js.map +1 -0
- package/dist/types/src/capabilities.d.ts +398 -0
- package/dist/types/src/capabilities.d.ts.map +1 -0
- package/dist/types/src/envelope.d.ts +120 -0
- package/dist/types/src/envelope.d.ts.map +1 -0
- package/dist/types/src/events.d.ts +1075 -0
- package/dist/types/src/events.d.ts.map +1 -0
- package/dist/types/src/flow.d.ts +312 -0
- package/dist/types/src/flow.d.ts.map +1 -0
- package/dist/types/src/index.d.ts +57 -0
- package/dist/types/src/index.d.ts.map +1 -0
- package/dist/types/src/lifecycle.d.ts +269 -0
- package/dist/types/src/lifecycle.d.ts.map +1 -0
- package/dist/types/src/logging.d.ts +161 -0
- package/dist/types/src/logging.d.ts.map +1 -0
- package/dist/types/src/manifests/_shared.d.ts +162 -0
- package/dist/types/src/manifests/_shared.d.ts.map +1 -0
- package/dist/types/src/manifests/agent.d.ts +343 -0
- package/dist/types/src/manifests/agent.d.ts.map +1 -0
- package/dist/types/src/manifests/connector.d.ts +126 -0
- package/dist/types/src/manifests/connector.d.ts.map +1 -0
- package/dist/types/src/manifests/contract.d.ts +90 -0
- package/dist/types/src/manifests/contract.d.ts.map +1 -0
- package/dist/types/src/manifests/index.d.ts +40 -0
- package/dist/types/src/manifests/index.d.ts.map +1 -0
- package/dist/types/src/manifests/mcp-server.d.ts +42 -0
- package/dist/types/src/manifests/mcp-server.d.ts.map +1 -0
- package/dist/types/src/manifests/mount.d.ts +93 -0
- package/dist/types/src/manifests/mount.d.ts.map +1 -0
- package/dist/types/src/manifests/persona.d.ts +90 -0
- package/dist/types/src/manifests/persona.d.ts.map +1 -0
- package/dist/types/src/manifests/preset.d.ts +704 -0
- package/dist/types/src/manifests/preset.d.ts.map +1 -0
- package/dist/types/src/manifests/prompt.d.ts +90 -0
- package/dist/types/src/manifests/prompt.d.ts.map +1 -0
- package/dist/types/src/manifests/ruleset.d.ts +90 -0
- package/dist/types/src/manifests/ruleset.d.ts.map +1 -0
- package/dist/types/src/manifests/skill.d.ts +2391 -0
- package/dist/types/src/manifests/skill.d.ts.map +1 -0
- package/dist/types/src/mentions.d.ts +49 -0
- package/dist/types/src/mentions.d.ts.map +1 -0
- package/dist/types/src/messaging.d.ts +105 -0
- package/dist/types/src/messaging.d.ts.map +1 -0
- package/dist/types/src/protocol.d.ts +201 -0
- package/dist/types/src/protocol.d.ts.map +1 -0
- package/dist/types/src/reactions.d.ts +34 -0
- package/dist/types/src/reactions.d.ts.map +1 -0
- package/dist/types/src/runtime.d.ts +219 -0
- package/dist/types/src/runtime.d.ts.map +1 -0
- package/dist/types/src/transport.d.ts +64 -0
- package/dist/types/src/transport.d.ts.map +1 -0
- package/dist/types/src/version.d.ts +129 -0
- package/dist/types/src/version.d.ts.map +1 -0
- package/dist/validator-764EQNM3.js +5 -0
- package/dist/validator-764EQNM3.js.map +1 -0
- package/dist/workspace-plugin/adapters/mcp.js +259 -0
- package/dist/workspace-plugin/adapters/mcp.js.map +1 -0
- package/dist/workspace-plugin/adapters/omp.js +251 -0
- package/dist/workspace-plugin/adapters/omp.js.map +1 -0
- package/dist/workspace-plugin/index.js +6 -0
- package/dist/workspace-plugin/index.js.map +1 -0
- package/dist/workspace-plugin/src/adapters/claude-code.d.ts +17 -0
- package/dist/workspace-plugin/src/adapters/claude-code.d.ts.map +1 -0
- package/dist/workspace-plugin/src/adapters/mcp.d.ts +78 -0
- package/dist/workspace-plugin/src/adapters/mcp.d.ts.map +1 -0
- package/dist/workspace-plugin/src/adapters/omp.d.ts +60 -0
- package/dist/workspace-plugin/src/adapters/omp.d.ts.map +1 -0
- package/dist/workspace-plugin/src/index.d.ts +8 -0
- package/dist/workspace-plugin/src/index.d.ts.map +1 -0
- package/dist/workspace-plugin/src/plugin.d.ts +83 -0
- package/dist/workspace-plugin/src/plugin.d.ts.map +1 -0
- package/dist/workspace-plugin/src/store.d.ts +36 -0
- package/dist/workspace-plugin/src/store.d.ts.map +1 -0
- package/dist/workspace-plugin/src/tools/connectors.d.ts +94 -0
- package/dist/workspace-plugin/src/tools/connectors.d.ts.map +1 -0
- package/dist/workspace-plugin/src/tools/flows.d.ts +54 -0
- package/dist/workspace-plugin/src/tools/flows.d.ts.map +1 -0
- package/dist/workspace-plugin/src/tools/mounts.d.ts +51 -0
- package/dist/workspace-plugin/src/tools/mounts.d.ts.map +1 -0
- package/dist/workspace-plugin/src/tools/sessions.d.ts +35 -0
- package/dist/workspace-plugin/src/tools/sessions.d.ts.map +1 -0
- package/dist/workspace-plugin/src/tools/skills.d.ts +75 -0
- package/dist/workspace-plugin/src/tools/skills.d.ts.map +1 -0
- package/dist/workspace-plugin/src/tools/validator.d.ts +64 -0
- package/dist/workspace-plugin/src/tools/validator.d.ts.map +1 -0
- package/dist/workspace-plugin/src/types.d.ts +73 -0
- package/dist/workspace-plugin/src/types.d.ts.map +1 -0
- package/dist/workspace-plugin/src/utils/ai-assets.d.ts +16 -0
- package/dist/workspace-plugin/src/utils/ai-assets.d.ts.map +1 -0
- package/dist/workspace-plugin/src/utils/project-dir.d.ts +23 -0
- package/dist/workspace-plugin/src/utils/project-dir.d.ts.map +1 -0
- package/package.json +646 -0
|
@@ -0,0 +1,481 @@
|
|
|
1
|
+
import { classifyClaudeSdkError } from './chunk-EWP5HZBV.js';
|
|
2
|
+
import { createDriver } from './chunk-MBBTBKAS.js';
|
|
3
|
+
|
|
4
|
+
// bridge/src/normalizer.ts
|
|
5
|
+
var EventNormalizer = class {
|
|
6
|
+
activeSubagents = /* @__PURE__ */ new Map();
|
|
7
|
+
devServerStartingEmitted = false;
|
|
8
|
+
devServerReadyEmitted = false;
|
|
9
|
+
/** True when message_update deltas have been emitted for the current message. */
|
|
10
|
+
hasStreamedText = false;
|
|
11
|
+
/**
|
|
12
|
+
* Convert a single bridge event into zero or more normalized events.
|
|
13
|
+
* One bridge event can produce multiple normalized events (e.g., a message_start
|
|
14
|
+
* with text + tool_use blocks produces both text and tool_call events).
|
|
15
|
+
*/
|
|
16
|
+
normalize(event) {
|
|
17
|
+
switch (event.type) {
|
|
18
|
+
case "message_start":
|
|
19
|
+
return this.handleMessageStart(event.message);
|
|
20
|
+
case "message_update":
|
|
21
|
+
return this.handleMessageUpdate(event);
|
|
22
|
+
case "message_end":
|
|
23
|
+
return [];
|
|
24
|
+
case "turn_end":
|
|
25
|
+
return this.handleTurnEnd(event.toolResults);
|
|
26
|
+
case "result":
|
|
27
|
+
return this.handleResult(event);
|
|
28
|
+
case "error":
|
|
29
|
+
return [
|
|
30
|
+
{
|
|
31
|
+
type: "error",
|
|
32
|
+
message: event.error,
|
|
33
|
+
fatal: event.fatal ?? true,
|
|
34
|
+
category: event.detail?.category,
|
|
35
|
+
...event.detail?.hint ? { hint: event.detail.hint } : {}
|
|
36
|
+
}
|
|
37
|
+
];
|
|
38
|
+
case "tool_call":
|
|
39
|
+
return [{ type: "status", phase: "working" }];
|
|
40
|
+
case "tool_execution_end":
|
|
41
|
+
return [];
|
|
42
|
+
case "agent_end":
|
|
43
|
+
return [{ type: "status", phase: "idle" }];
|
|
44
|
+
case "commands_available":
|
|
45
|
+
return [event];
|
|
46
|
+
case "session_info":
|
|
47
|
+
return [event];
|
|
48
|
+
case "ui_render":
|
|
49
|
+
case "ui_render_update":
|
|
50
|
+
case "ui_clear":
|
|
51
|
+
return [event];
|
|
52
|
+
default:
|
|
53
|
+
return [];
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
/** Clear all stateful tracking between sessions. */
|
|
57
|
+
reset() {
|
|
58
|
+
this.activeSubagents.clear();
|
|
59
|
+
this.devServerStartingEmitted = false;
|
|
60
|
+
this.devServerReadyEmitted = false;
|
|
61
|
+
this.hasStreamedText = false;
|
|
62
|
+
}
|
|
63
|
+
// ---------------------------------------------------------------------------
|
|
64
|
+
// message_start → text, tool_call, question, subagent
|
|
65
|
+
// ---------------------------------------------------------------------------
|
|
66
|
+
handleMessageStart(message) {
|
|
67
|
+
if (message.role !== "assistant") return [];
|
|
68
|
+
const events = [];
|
|
69
|
+
const blocks = this.getContentBlocks(message);
|
|
70
|
+
for (const block of blocks) {
|
|
71
|
+
if (block.type === "text" && block.text) {
|
|
72
|
+
if (!this.hasStreamedText) {
|
|
73
|
+
events.push({ type: "text", content: block.text });
|
|
74
|
+
}
|
|
75
|
+
} else if (block.type === "tool_use" && block.name) {
|
|
76
|
+
events.push(...this.handleToolUse(block));
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
this.hasStreamedText = false;
|
|
80
|
+
return events;
|
|
81
|
+
}
|
|
82
|
+
handleToolUse(block) {
|
|
83
|
+
const name = block.name;
|
|
84
|
+
const input = block.input ?? {};
|
|
85
|
+
const events = [];
|
|
86
|
+
if (name === "AskUserQuestion") {
|
|
87
|
+
const questions = input.questions;
|
|
88
|
+
if (Array.isArray(questions)) {
|
|
89
|
+
for (const q of questions) {
|
|
90
|
+
const qObj = q;
|
|
91
|
+
const question = String(qObj.question ?? "");
|
|
92
|
+
const rawOpts = qObj.options;
|
|
93
|
+
const options = Array.isArray(rawOpts) ? rawOpts.map((o) => typeof o === "string" ? o : String(o.label ?? o)) : void 0;
|
|
94
|
+
events.push({ type: "question", question, options });
|
|
95
|
+
}
|
|
96
|
+
} else {
|
|
97
|
+
const question = String(input.question ?? input.text ?? "");
|
|
98
|
+
const rawOptions = input.options;
|
|
99
|
+
const options = Array.isArray(rawOptions) ? rawOptions.map(String) : void 0;
|
|
100
|
+
events.push({ type: "question", question, options });
|
|
101
|
+
}
|
|
102
|
+
} else if (name === "Agent") {
|
|
103
|
+
const agentName = String(input.subagent_type ?? input.description ?? "unknown");
|
|
104
|
+
const description = String(input.description ?? input.prompt ?? "").slice(0, 200);
|
|
105
|
+
if (block.id) {
|
|
106
|
+
this.activeSubagents.set(block.id, agentName);
|
|
107
|
+
}
|
|
108
|
+
events.push({ type: "subagent", name: agentName, status: "started", description });
|
|
109
|
+
events.push({ type: "status", phase: "working" });
|
|
110
|
+
} else {
|
|
111
|
+
events.push({
|
|
112
|
+
type: "tool_call",
|
|
113
|
+
tool: name,
|
|
114
|
+
input,
|
|
115
|
+
summary: summarizeToolCall(name, input)
|
|
116
|
+
});
|
|
117
|
+
events.push({ type: "status", phase: "working" });
|
|
118
|
+
if (name === "Bash" && typeof input.command === "string") {
|
|
119
|
+
const devEvent = this.detectDevServerStarting(input.command);
|
|
120
|
+
if (devEvent) events.push(devEvent);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
return events;
|
|
124
|
+
}
|
|
125
|
+
// ---------------------------------------------------------------------------
|
|
126
|
+
// message_update → streaming text
|
|
127
|
+
// ---------------------------------------------------------------------------
|
|
128
|
+
handleMessageUpdate(event) {
|
|
129
|
+
const delta = event._textDelta;
|
|
130
|
+
if (delta) {
|
|
131
|
+
this.hasStreamedText = true;
|
|
132
|
+
return [{ type: "text", content: delta }];
|
|
133
|
+
}
|
|
134
|
+
return [];
|
|
135
|
+
}
|
|
136
|
+
// ---------------------------------------------------------------------------
|
|
137
|
+
// turn_end → tool_result, subagent finished, file_changed, dev_server
|
|
138
|
+
// ---------------------------------------------------------------------------
|
|
139
|
+
handleTurnEnd(toolResults) {
|
|
140
|
+
if (!toolResults?.length) return [];
|
|
141
|
+
const events = [];
|
|
142
|
+
for (const result of toolResults) {
|
|
143
|
+
const toolName = result.toolName ?? "unknown";
|
|
144
|
+
const outputData = result.data ?? result.content;
|
|
145
|
+
const output = typeof outputData === "string" ? outputData : JSON.stringify(outputData);
|
|
146
|
+
if (toolName === "Agent" || this.isSubagentResult(result)) {
|
|
147
|
+
const agentName = this.resolveSubagentName(result);
|
|
148
|
+
const description = output.slice(0, 200);
|
|
149
|
+
events.push({ type: "subagent", name: agentName, status: "finished", description });
|
|
150
|
+
if (agentName === "dev-server") {
|
|
151
|
+
const devEvent = this.detectDevServerReady(output);
|
|
152
|
+
if (devEvent) events.push(devEvent);
|
|
153
|
+
}
|
|
154
|
+
} else {
|
|
155
|
+
events.push({
|
|
156
|
+
type: "tool_result",
|
|
157
|
+
tool: toolName,
|
|
158
|
+
output: outputData,
|
|
159
|
+
summary: summarizeToolResult(toolName, outputData)
|
|
160
|
+
});
|
|
161
|
+
const fileEvents = detectFileChanges(toolName, outputData);
|
|
162
|
+
if (fileEvents.length > 0) events.push(...fileEvents);
|
|
163
|
+
if (toolName === "Bash") {
|
|
164
|
+
const devEvent = this.detectDevServerReady(output);
|
|
165
|
+
if (devEvent) events.push(devEvent);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
return events;
|
|
170
|
+
}
|
|
171
|
+
isSubagentResult(result) {
|
|
172
|
+
if (result.toolName && this.activeSubagents.has(result.toolName)) return true;
|
|
173
|
+
return false;
|
|
174
|
+
}
|
|
175
|
+
resolveSubagentName(result) {
|
|
176
|
+
const name = result.toolName ? this.activeSubagents.get(result.toolName) : void 0;
|
|
177
|
+
if (name) {
|
|
178
|
+
this.activeSubagents.delete(result.toolName);
|
|
179
|
+
return name;
|
|
180
|
+
}
|
|
181
|
+
return result.toolName ?? "unknown";
|
|
182
|
+
}
|
|
183
|
+
// ---------------------------------------------------------------------------
|
|
184
|
+
// result → finished or error
|
|
185
|
+
// ---------------------------------------------------------------------------
|
|
186
|
+
handleResult(event) {
|
|
187
|
+
if (event.subtype === "success") {
|
|
188
|
+
return [
|
|
189
|
+
{
|
|
190
|
+
type: "finished",
|
|
191
|
+
summary: event.summary ?? "Task completed",
|
|
192
|
+
costUsd: event.costUsd ?? 0,
|
|
193
|
+
...event.tokens ? { tokens: event.tokens } : {}
|
|
194
|
+
}
|
|
195
|
+
];
|
|
196
|
+
}
|
|
197
|
+
const errors = event.errors ?? [];
|
|
198
|
+
const detail = classifyClaudeSdkError({ errors, subtype: event.subtype });
|
|
199
|
+
return [
|
|
200
|
+
{
|
|
201
|
+
type: "error",
|
|
202
|
+
message: `Agent stopped: ${event.subtype}${errors.length ? ` \u2014 ${errors.join("; ")}` : ""}`,
|
|
203
|
+
fatal: event.subtype === "error_during_execution",
|
|
204
|
+
category: detail.category,
|
|
205
|
+
...detail.hint ? { hint: detail.hint } : {}
|
|
206
|
+
}
|
|
207
|
+
];
|
|
208
|
+
}
|
|
209
|
+
// ---------------------------------------------------------------------------
|
|
210
|
+
// Dev server detection
|
|
211
|
+
// ---------------------------------------------------------------------------
|
|
212
|
+
detectDevServerStarting(command) {
|
|
213
|
+
if (this.devServerStartingEmitted) return null;
|
|
214
|
+
const cmd = command.toLowerCase();
|
|
215
|
+
const isFrontendStart = (cmd.includes("pnpm run dev") || cmd.includes("pnpm dev") || cmd.includes("vite")) && (cmd.includes("frontend") || cmd.includes("dev:preview"));
|
|
216
|
+
if (isFrontendStart) {
|
|
217
|
+
this.devServerStartingEmitted = true;
|
|
218
|
+
return { type: "dev_server", url: "http://localhost:3000", status: "starting" };
|
|
219
|
+
}
|
|
220
|
+
return null;
|
|
221
|
+
}
|
|
222
|
+
detectDevServerReady(text) {
|
|
223
|
+
if (this.devServerReadyEmitted) return null;
|
|
224
|
+
const explicitMatch = text.match(/DEVSERVER_READY:(https?:\/\/[^\s"\\]+)/);
|
|
225
|
+
if (explicitMatch) {
|
|
226
|
+
this.devServerReadyEmitted = true;
|
|
227
|
+
return { type: "dev_server", url: explicitMatch[1], status: "ready" };
|
|
228
|
+
}
|
|
229
|
+
const viteMatch = text.match(/Local:\s+(https?:\/\/localhost:\d+)/);
|
|
230
|
+
if (viteMatch) {
|
|
231
|
+
this.devServerReadyEmitted = true;
|
|
232
|
+
return { type: "dev_server", url: viteMatch[1], status: "ready" };
|
|
233
|
+
}
|
|
234
|
+
if (text.includes("FRONTEND_READY")) {
|
|
235
|
+
this.devServerReadyEmitted = true;
|
|
236
|
+
return { type: "dev_server", url: "http://localhost:3000", status: "ready" };
|
|
237
|
+
}
|
|
238
|
+
return null;
|
|
239
|
+
}
|
|
240
|
+
// ---------------------------------------------------------------------------
|
|
241
|
+
// Helpers
|
|
242
|
+
// ---------------------------------------------------------------------------
|
|
243
|
+
getContentBlocks(message) {
|
|
244
|
+
if (Array.isArray(message.content)) return message.content;
|
|
245
|
+
if (typeof message.content === "string" && message.content) {
|
|
246
|
+
return [{ type: "text", text: message.content }];
|
|
247
|
+
}
|
|
248
|
+
return [];
|
|
249
|
+
}
|
|
250
|
+
};
|
|
251
|
+
function summarizeToolCall(tool, input) {
|
|
252
|
+
switch (tool) {
|
|
253
|
+
case "Bash":
|
|
254
|
+
return `$ ${String(input.command ?? "").slice(0, 200)}`;
|
|
255
|
+
case "Write":
|
|
256
|
+
return `Create ${String(input.file_path)}`;
|
|
257
|
+
case "Edit":
|
|
258
|
+
return `Edit ${String(input.file_path)}`;
|
|
259
|
+
case "Read":
|
|
260
|
+
return `Read ${String(input.file_path)}`;
|
|
261
|
+
case "Glob":
|
|
262
|
+
return `Find ${String(input.pattern)}`;
|
|
263
|
+
case "Grep":
|
|
264
|
+
return `Search for ${String(input.pattern)}`;
|
|
265
|
+
default:
|
|
266
|
+
return `${tool}(${JSON.stringify(input).slice(0, 100)})`;
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
function extractContentBlockText(blocks) {
|
|
270
|
+
const textBlocks = blocks.filter(
|
|
271
|
+
(b) => typeof b === "object" && b !== null && b.type === "text" && typeof b.text === "string"
|
|
272
|
+
);
|
|
273
|
+
if (textBlocks.length === 0) return null;
|
|
274
|
+
return textBlocks.map((b) => b.text).join("\n");
|
|
275
|
+
}
|
|
276
|
+
function summarizeToolResult(tool, result) {
|
|
277
|
+
if (Array.isArray(result)) {
|
|
278
|
+
const text = extractContentBlockText(result);
|
|
279
|
+
return (text ?? JSON.stringify(result)).slice(0, 200);
|
|
280
|
+
}
|
|
281
|
+
if (typeof result !== "object" || !result) {
|
|
282
|
+
return String(result).slice(0, 200);
|
|
283
|
+
}
|
|
284
|
+
const r = result;
|
|
285
|
+
switch (tool) {
|
|
286
|
+
case "Bash": {
|
|
287
|
+
const stderr = String(r.stderr ?? "").trim();
|
|
288
|
+
if (stderr) return `stderr: ${stderr.slice(0, 200)}`;
|
|
289
|
+
return String(r.stdout ?? "").trim().slice(0, 200) || "(no output)";
|
|
290
|
+
}
|
|
291
|
+
case "Write":
|
|
292
|
+
return `${String(r.type)}: ${String(r.filePath)}`;
|
|
293
|
+
case "Edit":
|
|
294
|
+
return `Edited ${String(r.filePath)}`;
|
|
295
|
+
case "ApplyPatch":
|
|
296
|
+
return `${Array.isArray(r.changes) ? r.changes.length : 0} file changes`;
|
|
297
|
+
default:
|
|
298
|
+
return JSON.stringify(result).slice(0, 200);
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
function detectFileChanges(toolName, result) {
|
|
302
|
+
if (typeof result !== "object" || !result) return [];
|
|
303
|
+
const r = result;
|
|
304
|
+
if (toolName === "Write" && r.filePath) {
|
|
305
|
+
return [
|
|
306
|
+
{
|
|
307
|
+
type: "file_changed",
|
|
308
|
+
path: String(r.filePath),
|
|
309
|
+
action: r.type === "create" ? "create" : "edit"
|
|
310
|
+
}
|
|
311
|
+
];
|
|
312
|
+
}
|
|
313
|
+
if (toolName === "Edit" && r.filePath) {
|
|
314
|
+
return [{ type: "file_changed", path: String(r.filePath), action: "edit" }];
|
|
315
|
+
}
|
|
316
|
+
if (toolName === "ApplyPatch" && Array.isArray(r.changes)) {
|
|
317
|
+
return r.changes.filter(
|
|
318
|
+
(change) => typeof change === "object" && change !== null && typeof change.path === "string" && typeof change.kind === "string"
|
|
319
|
+
).map((change) => ({
|
|
320
|
+
type: "file_changed",
|
|
321
|
+
path: change.path,
|
|
322
|
+
action: change.kind === "add" ? "create" : change.kind === "delete" ? "delete" : "edit"
|
|
323
|
+
}));
|
|
324
|
+
}
|
|
325
|
+
return [];
|
|
326
|
+
}
|
|
327
|
+
function detectFileChange(toolName, result) {
|
|
328
|
+
return detectFileChanges(toolName, result)[0] ?? null;
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
// bridge/src/runtime.ts
|
|
332
|
+
var BridgeRuntime = class {
|
|
333
|
+
driver = null;
|
|
334
|
+
normalizer = new EventNormalizer();
|
|
335
|
+
handlers = /* @__PURE__ */ new Set();
|
|
336
|
+
boundEventHandler = null;
|
|
337
|
+
driverId;
|
|
338
|
+
constructor(driverId = "claude-sdk") {
|
|
339
|
+
this.driverId = driverId;
|
|
340
|
+
}
|
|
341
|
+
async start(config) {
|
|
342
|
+
if (this.driver) {
|
|
343
|
+
await this.dispose();
|
|
344
|
+
}
|
|
345
|
+
this.normalizer.reset();
|
|
346
|
+
const bridgeConfig = {
|
|
347
|
+
cwd: config.cwd,
|
|
348
|
+
provider: config.provider,
|
|
349
|
+
model: config.model,
|
|
350
|
+
systemPrompt: config.systemPrompt,
|
|
351
|
+
apiKeys: config.apiKeys,
|
|
352
|
+
env: config.env,
|
|
353
|
+
agentDir: config.agentDir,
|
|
354
|
+
sessionId: config.sessionId,
|
|
355
|
+
resumeSessionId: config.resumeSessionId,
|
|
356
|
+
maxTurns: config.maxTurns
|
|
357
|
+
};
|
|
358
|
+
this.driver = await createDriver(this.driverId, bridgeConfig);
|
|
359
|
+
this.boundEventHandler = (bridgeEvent) => {
|
|
360
|
+
const normalized = this.normalizer.normalize(bridgeEvent);
|
|
361
|
+
for (const event of normalized) {
|
|
362
|
+
for (const handler of this.handlers) {
|
|
363
|
+
handler(event);
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
};
|
|
367
|
+
this.driver.on("agent-event", this.boundEventHandler);
|
|
368
|
+
await this.driver.start();
|
|
369
|
+
}
|
|
370
|
+
async configure(_config) {
|
|
371
|
+
}
|
|
372
|
+
async prompt(message) {
|
|
373
|
+
if (!this.driver) throw new Error("Runtime not started \u2014 call start() first");
|
|
374
|
+
await this.driver.prompt(message);
|
|
375
|
+
}
|
|
376
|
+
async reply(answer) {
|
|
377
|
+
await this.prompt(answer);
|
|
378
|
+
}
|
|
379
|
+
async abort() {
|
|
380
|
+
if (this.driver) {
|
|
381
|
+
await this.driver.abort();
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
async dispose() {
|
|
385
|
+
if (this.driver) {
|
|
386
|
+
if (this.boundEventHandler) {
|
|
387
|
+
this.driver.off("agent-event", this.boundEventHandler);
|
|
388
|
+
this.boundEventHandler = null;
|
|
389
|
+
}
|
|
390
|
+
this.driver.kill();
|
|
391
|
+
this.driver = null;
|
|
392
|
+
}
|
|
393
|
+
this.normalizer.reset();
|
|
394
|
+
}
|
|
395
|
+
onEvent(handler) {
|
|
396
|
+
this.handlers.add(handler);
|
|
397
|
+
}
|
|
398
|
+
offEvent(handler) {
|
|
399
|
+
this.handlers.delete(handler);
|
|
400
|
+
}
|
|
401
|
+
get isRunning() {
|
|
402
|
+
return this.driver?.isRunning ?? false;
|
|
403
|
+
}
|
|
404
|
+
};
|
|
405
|
+
function createRuntime(driverId = "claude-sdk") {
|
|
406
|
+
return new BridgeRuntime(driverId);
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
// bridge/src/validation.ts
|
|
410
|
+
var PROVIDER_CONFIGS = {
|
|
411
|
+
anthropic: {
|
|
412
|
+
url: "https://api.anthropic.com/v1/models",
|
|
413
|
+
headers: (key) => ({ "x-api-key": key, "anthropic-version": "2023-06-01" })
|
|
414
|
+
},
|
|
415
|
+
openai: {
|
|
416
|
+
url: "https://api.openai.com/v1/models",
|
|
417
|
+
headers: (key) => ({ Authorization: `Bearer ${key}` })
|
|
418
|
+
},
|
|
419
|
+
openrouter: {
|
|
420
|
+
url: "https://openrouter.ai/api/v1/models",
|
|
421
|
+
headers: (key) => ({ Authorization: `Bearer ${key}` })
|
|
422
|
+
},
|
|
423
|
+
mistral: {
|
|
424
|
+
url: "https://api.mistral.ai/v1/models",
|
|
425
|
+
headers: (key) => ({ Authorization: `Bearer ${key}` })
|
|
426
|
+
},
|
|
427
|
+
groq: {
|
|
428
|
+
url: "https://api.groq.com/openai/v1/models",
|
|
429
|
+
headers: (key) => ({ Authorization: `Bearer ${key}` })
|
|
430
|
+
},
|
|
431
|
+
deepseek: {
|
|
432
|
+
url: "https://api.deepseek.com/models",
|
|
433
|
+
headers: (key) => ({ Authorization: `Bearer ${key}` })
|
|
434
|
+
},
|
|
435
|
+
xai: {
|
|
436
|
+
url: "https://api.x.ai/v1/models",
|
|
437
|
+
headers: (key) => ({ Authorization: `Bearer ${key}` })
|
|
438
|
+
},
|
|
439
|
+
together: {
|
|
440
|
+
url: "https://api.together.xyz/v1/models",
|
|
441
|
+
headers: (key) => ({ Authorization: `Bearer ${key}` })
|
|
442
|
+
},
|
|
443
|
+
fireworks: {
|
|
444
|
+
url: "https://api.fireworks.ai/inference/v1/models",
|
|
445
|
+
headers: (key) => ({ Authorization: `Bearer ${key}` })
|
|
446
|
+
},
|
|
447
|
+
google: {
|
|
448
|
+
url: "https://generativelanguage.googleapis.com/v1beta/models",
|
|
449
|
+
headers: () => ({}),
|
|
450
|
+
queryParam: "key"
|
|
451
|
+
}
|
|
452
|
+
};
|
|
453
|
+
async function validateApiKey(provider, key) {
|
|
454
|
+
const config = PROVIDER_CONFIGS[provider];
|
|
455
|
+
if (!config) return { ok: false, error: `Unknown provider: ${provider}` };
|
|
456
|
+
let url = config.url;
|
|
457
|
+
if (config.queryParam) url += `?${config.queryParam}=${encodeURIComponent(key)}`;
|
|
458
|
+
try {
|
|
459
|
+
const controller = new AbortController();
|
|
460
|
+
const timeout = setTimeout(() => controller.abort(), 8e3);
|
|
461
|
+
const response = await fetch(url, {
|
|
462
|
+
method: "GET",
|
|
463
|
+
headers: config.headers(key),
|
|
464
|
+
signal: controller.signal
|
|
465
|
+
});
|
|
466
|
+
clearTimeout(timeout);
|
|
467
|
+
if (response.ok) return { ok: true };
|
|
468
|
+
const status = response.status;
|
|
469
|
+
if (status === 401 || status === 403) {
|
|
470
|
+
return { ok: false, error: "Invalid API key (authentication failed)" };
|
|
471
|
+
}
|
|
472
|
+
return { ok: false, error: `API returned HTTP ${status}` };
|
|
473
|
+
} catch (err) {
|
|
474
|
+
if (err.name === "AbortError") return { ok: false, error: "Request timed out (8s)" };
|
|
475
|
+
return { ok: false, error: err.message ?? "Network error" };
|
|
476
|
+
}
|
|
477
|
+
}
|
|
478
|
+
|
|
479
|
+
export { BridgeRuntime, EventNormalizer, createRuntime, detectFileChange, detectFileChanges, summarizeToolCall, summarizeToolResult, validateApiKey };
|
|
480
|
+
//# sourceMappingURL=chunk-CCKGX5AS.js.map
|
|
481
|
+
//# sourceMappingURL=chunk-CCKGX5AS.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../bridge/src/normalizer.ts","../bridge/src/runtime.ts","../bridge/src/validation.ts"],"names":[],"mappings":"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","file":"chunk-CCKGX5AS.js","sourcesContent":["/**\n * EventNormalizer — converts bridge-level AgentEvent (raw driver events) to\n * skaile-agent-types AgentEvent (normalized, human-readable events).\n *\n * Stateful: tracks active subagents and dev-server detection across a session.\n * Call reset() between sessions.\n */\n\nimport type { AgentEvent as NormalizedEvent } from \"@skaile/workspaces/types\";\nimport { classifyClaudeSdkError } from \"./error-classifier.js\";\nimport type { AgentMessage, AgentEvent as BridgeEvent, ContentBlock } from \"./types.js\";\n\n/**\n * Converts raw bridge-level {@link BridgeEvent} payloads into normalized\n * `@skaile/workspaces/types` `AgentEvent` payloads consumed by the runner and transport.\n *\n * Stateful: tracks active subagents and dev-server detection across a session.\n * Call {@link EventNormalizer.reset} between sessions to clear accumulated state.\n *\n * @docLink packages/bridge/api-reference#normalizer\n */\nexport class EventNormalizer {\n private activeSubagents = new Map<string, string>();\n private devServerStartingEmitted = false;\n private devServerReadyEmitted = false;\n /** True when message_update deltas have been emitted for the current message. */\n private hasStreamedText = false;\n\n /**\n * Convert a single bridge event into zero or more normalized events.\n * One bridge event can produce multiple normalized events (e.g., a message_start\n * with text + tool_use blocks produces both text and tool_call events).\n */\n normalize(event: BridgeEvent): NormalizedEvent[] {\n switch (event.type) {\n case \"message_start\":\n return this.handleMessageStart(event.message);\n\n case \"message_update\":\n return this.handleMessageUpdate(event);\n\n case \"message_end\":\n return [];\n\n case \"turn_end\":\n return this.handleTurnEnd(event.toolResults);\n\n case \"result\":\n return this.handleResult(event);\n\n case \"error\":\n return [\n {\n type: \"error\",\n message: event.error,\n fatal: event.fatal ?? true,\n category: event.detail?.category,\n ...(event.detail?.hint ? { hint: event.detail.hint } : {}),\n },\n ];\n\n case \"tool_call\":\n // Already handled in message_start — emit status only\n return [{ type: \"status\", phase: \"working\" }];\n\n case \"tool_execution_end\":\n return [];\n\n case \"agent_end\":\n return [{ type: \"status\", phase: \"idle\" }];\n\n case \"commands_available\":\n // Pass through to transport — the gateway caches this event\n return [event as unknown as NormalizedEvent];\n\n case \"session_info\":\n // Pass through to transport — the forge layer stores the OMP session ID\n return [event as unknown as NormalizedEvent];\n\n case \"ui_render\":\n case \"ui_render_update\":\n case \"ui_clear\":\n // Pass through verbatim — drivers that implement the Agent UI Protocol emit these directly\n return [event as unknown as NormalizedEvent];\n\n default:\n return [];\n }\n }\n\n /** Clear all stateful tracking between sessions. */\n reset(): void {\n this.activeSubagents.clear();\n this.devServerStartingEmitted = false;\n this.devServerReadyEmitted = false;\n this.hasStreamedText = false;\n }\n\n // ---------------------------------------------------------------------------\n // message_start → text, tool_call, question, subagent\n // ---------------------------------------------------------------------------\n\n private handleMessageStart(message: AgentMessage): NormalizedEvent[] {\n // Only process assistant messages. Drivers (e.g. omp) may echo the user's\n // message as a message_start with role:\"user\" before streaming the response.\n // Emitting a text event for that echo would prepend the user's input to the\n // assistant bubble on the frontend.\n if (message.role !== \"assistant\") return [];\n\n const events: NormalizedEvent[] = [];\n const blocks = this.getContentBlocks(message);\n\n for (const block of blocks) {\n if (block.type === \"text\" && block.text) {\n // Skip full text if we already streamed it via message_update deltas\n if (!this.hasStreamedText) {\n events.push({ type: \"text\", content: block.text });\n }\n } else if (block.type === \"tool_use\" && block.name) {\n events.push(...this.handleToolUse(block));\n }\n }\n\n this.hasStreamedText = false;\n return events;\n }\n\n private handleToolUse(block: ContentBlock): NormalizedEvent[] {\n const name = block.name!;\n const input = (block.input ?? {}) as Record<string, unknown>;\n const events: NormalizedEvent[] = [];\n\n if (name === \"AskUserQuestion\") {\n // Claude SDK sends { questions: [{ question, header, options: [{ label, description }] }] }\n // Legacy/simple format sends { question: string, options?: string[] }\n const questions = input.questions;\n if (Array.isArray(questions)) {\n for (const q of questions) {\n const qObj = q as Record<string, unknown>;\n const question = String(qObj.question ?? \"\");\n const rawOpts = qObj.options;\n const options = Array.isArray(rawOpts)\n ? rawOpts.map((o: any) => (typeof o === \"string\" ? o : String(o.label ?? o)))\n : undefined;\n events.push({ type: \"question\", question, options });\n }\n } else {\n const question = String(input.question ?? input.text ?? \"\");\n const rawOptions = input.options;\n const options = Array.isArray(rawOptions) ? rawOptions.map(String) : undefined;\n events.push({ type: \"question\", question, options });\n }\n } else if (name === \"Agent\") {\n const agentName = String(input.subagent_type ?? input.description ?? \"unknown\");\n const description = String(input.description ?? input.prompt ?? \"\").slice(0, 200);\n if (block.id) {\n this.activeSubagents.set(block.id, agentName);\n }\n events.push({ type: \"subagent\", name: agentName, status: \"started\", description });\n events.push({ type: \"status\", phase: \"working\" });\n } else {\n events.push({\n type: \"tool_call\",\n tool: name,\n input,\n summary: summarizeToolCall(name, input),\n });\n events.push({ type: \"status\", phase: \"working\" });\n\n if (name === \"Bash\" && typeof input.command === \"string\") {\n const devEvent = this.detectDevServerStarting(input.command);\n if (devEvent) events.push(devEvent);\n }\n }\n\n return events;\n }\n\n // ---------------------------------------------------------------------------\n // message_update → streaming text\n // ---------------------------------------------------------------------------\n\n private handleMessageUpdate(event: BridgeEvent): NormalizedEvent[] {\n const delta = (event as any)._textDelta as string | undefined;\n if (delta) {\n this.hasStreamedText = true;\n return [{ type: \"text\", content: delta }];\n }\n return [];\n }\n\n // ---------------------------------------------------------------------------\n // turn_end → tool_result, subagent finished, file_changed, dev_server\n // ---------------------------------------------------------------------------\n\n private handleTurnEnd(toolResults?: AgentMessage[]): NormalizedEvent[] {\n if (!toolResults?.length) return [];\n\n const events: NormalizedEvent[] = [];\n\n for (const result of toolResults) {\n const toolName = result.toolName ?? \"unknown\";\n const outputData = result.data ?? result.content;\n const output = typeof outputData === \"string\" ? outputData : JSON.stringify(outputData);\n\n // Check if this is a subagent result\n if (toolName === \"Agent\" || this.isSubagentResult(result)) {\n const agentName = this.resolveSubagentName(result);\n const description = output.slice(0, 200);\n events.push({ type: \"subagent\", name: agentName, status: \"finished\", description });\n\n if (agentName === \"dev-server\") {\n const devEvent = this.detectDevServerReady(output);\n if (devEvent) events.push(devEvent);\n }\n } else {\n events.push({\n type: \"tool_result\",\n tool: toolName,\n output: outputData,\n summary: summarizeToolResult(toolName, outputData),\n });\n\n // Detect file changes from Write/Edit results\n const fileEvents = detectFileChanges(toolName, outputData);\n if (fileEvents.length > 0) events.push(...fileEvents);\n\n // Detect dev server from Bash output\n if (toolName === \"Bash\") {\n const devEvent = this.detectDevServerReady(output);\n if (devEvent) events.push(devEvent);\n }\n }\n }\n\n return events;\n }\n\n private isSubagentResult(result: AgentMessage): boolean {\n // Check if the tool result's id maps to a tracked subagent\n if (result.toolName && this.activeSubagents.has(result.toolName)) return true;\n return false;\n }\n\n private resolveSubagentName(result: AgentMessage): string {\n // toolName on bridge AgentMessage is resolved from toolIdToName in the driver\n const name = result.toolName ? this.activeSubagents.get(result.toolName) : undefined;\n if (name) {\n this.activeSubagents.delete(result.toolName!);\n return name;\n }\n return result.toolName ?? \"unknown\";\n }\n\n // ---------------------------------------------------------------------------\n // result → finished or error\n // ---------------------------------------------------------------------------\n\n private handleResult(event: BridgeEvent & { type: \"result\" }): NormalizedEvent[] {\n if (event.subtype === \"success\") {\n return [\n {\n type: \"finished\",\n summary: event.summary ?? \"Task completed\",\n costUsd: event.costUsd ?? 0,\n ...(event.tokens ? { tokens: event.tokens } : {}),\n },\n ];\n }\n\n const errors = event.errors ?? [];\n // Run the same classifier the claude-sdk driver uses on its `error`\n // event so the result-error path also surfaces a category and hint\n // (drivers other than claude-sdk emit `result` without a paired\n // `error`, so this is the only place they get classified).\n const detail = classifyClaudeSdkError({ errors, subtype: event.subtype });\n return [\n {\n type: \"error\",\n message: `Agent stopped: ${event.subtype}${errors.length ? ` — ${errors.join(\"; \")}` : \"\"}`,\n fatal: event.subtype === \"error_during_execution\",\n category: detail.category,\n ...(detail.hint ? { hint: detail.hint } : {}),\n },\n ];\n }\n\n // ---------------------------------------------------------------------------\n // Dev server detection\n // ---------------------------------------------------------------------------\n\n private detectDevServerStarting(command: string): NormalizedEvent | null {\n if (this.devServerStartingEmitted) return null;\n const cmd = command.toLowerCase();\n const isFrontendStart =\n (cmd.includes(\"pnpm run dev\") || cmd.includes(\"pnpm dev\") || cmd.includes(\"vite\")) &&\n (cmd.includes(\"frontend\") || cmd.includes(\"dev:preview\"));\n if (isFrontendStart) {\n this.devServerStartingEmitted = true;\n return { type: \"dev_server\", url: \"http://localhost:3000\", status: \"starting\" };\n }\n return null;\n }\n\n private detectDevServerReady(text: string): NormalizedEvent | null {\n if (this.devServerReadyEmitted) return null;\n\n const explicitMatch = text.match(/DEVSERVER_READY:(https?:\\/\\/[^\\s\"\\\\]+)/);\n if (explicitMatch) {\n this.devServerReadyEmitted = true;\n return { type: \"dev_server\", url: explicitMatch[1]!, status: \"ready\" };\n }\n\n const viteMatch = text.match(/Local:\\s+(https?:\\/\\/localhost:\\d+)/);\n if (viteMatch) {\n this.devServerReadyEmitted = true;\n return { type: \"dev_server\", url: viteMatch[1]!, status: \"ready\" };\n }\n\n if (text.includes(\"FRONTEND_READY\")) {\n this.devServerReadyEmitted = true;\n return { type: \"dev_server\", url: \"http://localhost:3000\", status: \"ready\" };\n }\n\n return null;\n }\n\n // ---------------------------------------------------------------------------\n // Helpers\n // ---------------------------------------------------------------------------\n\n private getContentBlocks(message: AgentMessage): ContentBlock[] {\n if (Array.isArray(message.content)) return message.content;\n if (typeof message.content === \"string\" && message.content) {\n return [{ type: \"text\", text: message.content }];\n }\n return [];\n }\n}\n\n// ---------------------------------------------------------------------------\n// Pure helper functions (exported for reuse)\n// ---------------------------------------------------------------------------\n\n/**\n * Produce a human-readable one-line summary of a tool call for the activity log.\n *\n * Returns a string like `$ git status` for Bash, `Read src/index.ts` for Read, etc.\n * Falls back to `ToolName({...input...})` for unrecognised tools.\n *\n * @param tool - Tool name (e.g. `\"Bash\"`, `\"Write\"`, `\"Grep\"`).\n * @param input - Tool input record passed to the call.\n * @returns A short display string suitable for the activity feed.\n * @docLink packages/bridge/api-reference#normalizer\n */\nexport function summarizeToolCall(tool: string, input: Record<string, unknown>): string {\n switch (tool) {\n case \"Bash\":\n return `$ ${String(input.command ?? \"\").slice(0, 200)}`;\n case \"Write\":\n return `Create ${String(input.file_path)}`;\n case \"Edit\":\n return `Edit ${String(input.file_path)}`;\n case \"Read\":\n return `Read ${String(input.file_path)}`;\n case \"Glob\":\n return `Find ${String(input.pattern)}`;\n case \"Grep\":\n return `Search for ${String(input.pattern)}`;\n default:\n return `${tool}(${JSON.stringify(input).slice(0, 100)})`;\n }\n}\n\n/** Extract plain text from an Anthropic content-block array (e.g. tool results returned by Claude SDK). */\nfunction extractContentBlockText(blocks: unknown[]): string | null {\n const textBlocks = blocks.filter(\n (b): b is { type: \"text\"; text: string } =>\n typeof b === \"object\" &&\n b !== null &&\n (b as Record<string, unknown>).type === \"text\" &&\n typeof (b as Record<string, unknown>).text === \"string\",\n );\n if (textBlocks.length === 0) return null;\n return textBlocks.map((b) => b.text).join(\"\\n\");\n}\n\n/**\n * Produce a human-readable one-line summary of a tool result for the activity log.\n *\n * Handles Bash stdout/stderr, Write/Edit file paths, ApplyPatch change counts, and\n * Anthropic content-block arrays. Falls back to `JSON.stringify` for unknown shapes.\n *\n * @param tool - Tool name.\n * @param result - Raw tool result payload.\n * @returns A short display string, truncated to 200 characters.\n * @docLink packages/bridge/api-reference#normalizer\n */\nexport function summarizeToolResult(tool: string, result: unknown): string {\n // Handle Anthropic content-block arrays: [{ type: \"text\", text: \"...\" }, ...]\n if (Array.isArray(result)) {\n const text = extractContentBlockText(result);\n return (text ?? JSON.stringify(result)).slice(0, 200);\n }\n if (typeof result !== \"object\" || !result) {\n return String(result).slice(0, 200);\n }\n const r = result as Record<string, unknown>;\n switch (tool) {\n case \"Bash\": {\n const stderr = String(r.stderr ?? \"\").trim();\n if (stderr) return `stderr: ${stderr.slice(0, 200)}`;\n return (\n String(r.stdout ?? \"\")\n .trim()\n .slice(0, 200) || \"(no output)\"\n );\n }\n case \"Write\":\n return `${String(r.type)}: ${String(r.filePath)}`;\n case \"Edit\":\n return `Edited ${String(r.filePath)}`;\n case \"ApplyPatch\":\n return `${Array.isArray(r.changes) ? r.changes.length : 0} file changes`;\n default:\n return JSON.stringify(result).slice(0, 200);\n }\n}\n\n/**\n * Detect file-change events from a tool result, returning zero or more `file_changed` events.\n *\n * Handles `Write` (single create/edit), `Edit` (single edit), and `ApplyPatch` (multi-file\n * patch with per-change `kind` classification). Returns an empty array for all other tools.\n *\n * @param toolName - Name of the tool that produced the result.\n * @param result - Raw tool result payload.\n * @returns Array of `file_changed` normalized events.\n * @docLink packages/bridge/api-reference#normalizer\n */\nexport function detectFileChanges(toolName: string, result: unknown): NormalizedEvent[] {\n if (typeof result !== \"object\" || !result) return [];\n const r = result as Record<string, unknown>;\n\n if (toolName === \"Write\" && r.filePath) {\n return [\n {\n type: \"file_changed\",\n path: String(r.filePath),\n action: r.type === \"create\" ? \"create\" : \"edit\",\n },\n ];\n }\n if (toolName === \"Edit\" && r.filePath) {\n return [{ type: \"file_changed\", path: String(r.filePath), action: \"edit\" }];\n }\n if (toolName === \"ApplyPatch\" && Array.isArray(r.changes)) {\n return r.changes\n .filter(\n (change): change is { path: string; kind: \"add\" | \"delete\" | \"update\" } =>\n typeof change === \"object\" &&\n change !== null &&\n typeof (change as Record<string, unknown>).path === \"string\" &&\n typeof (change as Record<string, unknown>).kind === \"string\",\n )\n .map((change) => ({\n type: \"file_changed\" as const,\n path: change.path,\n action: change.kind === \"add\" ? \"create\" : change.kind === \"delete\" ? \"delete\" : \"edit\",\n }));\n }\n\n return [];\n}\n\n/**\n * Backward-compatible single-event helper; returns the first `file_changed` event or `null`.\n *\n * Prefer {@link detectFileChanges} for multi-file patches (e.g. `ApplyPatch`).\n *\n * @param toolName - Name of the tool that produced the result.\n * @param result - Raw tool result payload.\n * @returns First detected `file_changed` event, or `null`.\n * @docLink packages/bridge/api-reference#normalizer\n */\nexport function detectFileChange(toolName: string, result: unknown): NormalizedEvent | null {\n return detectFileChanges(toolName, result)[0] ?? null;\n}\n","/**\n * BridgeRuntime — implements IAgentRuntime from @skaile/workspaces/types by wrapping\n * an AgentDriver + EventNormalizer. This is the primary integration point for\n * consumers that want normalized events from any driver.\n */\n\nimport type {\n AgentEvent,\n AgentReconfigureOptions,\n AgentRuntimeConfig,\n IAgentRuntime,\n} from \"@skaile/workspaces/types\";\n\nimport { EventNormalizer } from \"./normalizer.js\";\nimport { createDriver } from \"./registry.js\";\nimport type { AgentConfig, AgentDriver } from \"./types.js\";\n\n/**\n * Implements `IAgentRuntime` from `@skaile/workspaces/types` by wrapping an {@link AgentDriver}\n * and an {@link EventNormalizer}.\n *\n * This is the primary integration point for consumers that want normalized `AgentEvent`\n * payloads from any driver without managing the driver lifecycle directly. Create via\n * {@link createRuntime} to avoid coupling to `BridgeRuntime` directly.\n *\n * @docLink packages/bridge/api-reference#runtime\n */\nexport class BridgeRuntime implements IAgentRuntime {\n private driver: AgentDriver | null = null;\n private normalizer = new EventNormalizer();\n private handlers = new Set<(event: AgentEvent) => void>();\n private boundEventHandler: ((event: any) => void) | null = null;\n private driverId: string;\n\n constructor(driverId: string = \"claude-sdk\") {\n this.driverId = driverId;\n }\n\n async start(config: AgentRuntimeConfig): Promise<void> {\n // Dispose previous driver if any\n if (this.driver) {\n await this.dispose();\n }\n\n this.normalizer.reset();\n\n const bridgeConfig: AgentConfig = {\n cwd: config.cwd,\n provider: config.provider,\n model: config.model,\n systemPrompt: config.systemPrompt,\n apiKeys: config.apiKeys,\n env: config.env,\n agentDir: config.agentDir,\n sessionId: config.sessionId,\n resumeSessionId: config.resumeSessionId,\n maxTurns: config.maxTurns,\n };\n\n this.driver = await createDriver(this.driverId, bridgeConfig);\n\n // Wire bridge events through normalizer to handlers\n this.boundEventHandler = (bridgeEvent: any) => {\n const normalized = this.normalizer.normalize(bridgeEvent);\n for (const event of normalized) {\n for (const handler of this.handlers) {\n handler(event);\n }\n }\n };\n this.driver.on(\"agent-event\", this.boundEventHandler);\n\n await this.driver.start();\n }\n\n async configure(_config: AgentReconfigureOptions): Promise<void> {\n // Runtime reconfiguration for BridgeRuntime is a no-op for now.\n // Future: reconnect connectors, reload ai-assets, update subagents.\n }\n\n async prompt(message: string): Promise<void> {\n if (!this.driver) throw new Error(\"Runtime not started — call start() first\");\n await this.driver.prompt(message);\n }\n\n async reply(answer: string): Promise<void> {\n // Claude SDK treats replies the same as prompts (multi-turn via streamInput)\n await this.prompt(answer);\n }\n\n async abort(): Promise<void> {\n if (this.driver) {\n await this.driver.abort();\n }\n }\n\n async dispose(): Promise<void> {\n if (this.driver) {\n if (this.boundEventHandler) {\n this.driver.off(\"agent-event\", this.boundEventHandler);\n this.boundEventHandler = null;\n }\n this.driver.kill();\n this.driver = null;\n }\n this.normalizer.reset();\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.driver?.isRunning ?? false;\n }\n}\n\n/**\n * Factory function to create a {@link BridgeRuntime} with the specified driver.\n *\n * @param driverId - Registered driver id (default: `\"claude-sdk\"`).\n * @returns A new `IAgentRuntime` wrapping the selected driver with event normalization.\n * @docLink packages/bridge/api-reference#runtime\n */\nexport function createRuntime(driverId: string = \"claude-sdk\"): IAgentRuntime {\n return new BridgeRuntime(driverId);\n}\n","/** Provider API key validation — hits each provider's models endpoint to verify the key works. */\n\n/**\n * Result of an API key validation check performed by {@link validateApiKey}.\n *\n * @docLink packages/bridge/api-reference#validation\n */\nexport interface ValidationResult {\n /** `true` when the API key was accepted by the provider's models endpoint. */\n ok: boolean;\n /** Human-readable error description when `ok` is `false`. */\n error?: string;\n}\n\ninterface ProviderValidationConfig {\n url: string;\n headers: (key: string) => Record<string, string>;\n queryParam?: string;\n}\n\nconst PROVIDER_CONFIGS: Record<string, ProviderValidationConfig> = {\n anthropic: {\n url: \"https://api.anthropic.com/v1/models\",\n headers: (key) => ({ \"x-api-key\": key, \"anthropic-version\": \"2023-06-01\" }),\n },\n openai: {\n url: \"https://api.openai.com/v1/models\",\n headers: (key) => ({ Authorization: `Bearer ${key}` }),\n },\n openrouter: {\n url: \"https://openrouter.ai/api/v1/models\",\n headers: (key) => ({ Authorization: `Bearer ${key}` }),\n },\n mistral: {\n url: \"https://api.mistral.ai/v1/models\",\n headers: (key) => ({ Authorization: `Bearer ${key}` }),\n },\n groq: {\n url: \"https://api.groq.com/openai/v1/models\",\n headers: (key) => ({ Authorization: `Bearer ${key}` }),\n },\n deepseek: {\n url: \"https://api.deepseek.com/models\",\n headers: (key) => ({ Authorization: `Bearer ${key}` }),\n },\n xai: {\n url: \"https://api.x.ai/v1/models\",\n headers: (key) => ({ Authorization: `Bearer ${key}` }),\n },\n together: {\n url: \"https://api.together.xyz/v1/models\",\n headers: (key) => ({ Authorization: `Bearer ${key}` }),\n },\n fireworks: {\n url: \"https://api.fireworks.ai/inference/v1/models\",\n headers: (key) => ({ Authorization: `Bearer ${key}` }),\n },\n google: {\n url: \"https://generativelanguage.googleapis.com/v1beta/models\",\n headers: () => ({}),\n queryParam: \"key\",\n },\n};\n\n/**\n * Validate an API key by sending a lightweight GET request to the provider's models endpoint.\n *\n * Returns `{ ok: true }` when the provider accepts the key (HTTP 2xx). Returns\n * `{ ok: false, error }` on 401/403 (invalid key), other HTTP errors, network failures,\n * or unsupported providers. Requests time out after 8 seconds.\n *\n * @param provider - Provider name matching a key in the internal `PROVIDER_CONFIGS` map\n * (e.g. `\"anthropic\"`, `\"openai\"`, `\"google\"`).\n * @param key - API key to validate.\n * @returns Validation result with optional error description.\n * @docLink packages/bridge/api-reference#validation\n */\nexport async function validateApiKey(provider: string, key: string): Promise<ValidationResult> {\n const config = PROVIDER_CONFIGS[provider];\n if (!config) return { ok: false, error: `Unknown provider: ${provider}` };\n\n let url = config.url;\n if (config.queryParam) url += `?${config.queryParam}=${encodeURIComponent(key)}`;\n\n try {\n const controller = new AbortController();\n const timeout = setTimeout(() => controller.abort(), 8000);\n\n const response = await fetch(url, {\n method: \"GET\",\n headers: config.headers(key),\n signal: controller.signal,\n });\n\n clearTimeout(timeout);\n\n if (response.ok) return { ok: true };\n\n const status = response.status;\n if (status === 401 || status === 403) {\n return { ok: false, error: \"Invalid API key (authentication failed)\" };\n }\n return { ok: false, error: `API returned HTTP ${status}` };\n } catch (err: any) {\n if (err.name === \"AbortError\") return { ok: false, error: \"Request timed out (8s)\" };\n return { ok: false, error: err.message ?? \"Network error\" };\n }\n}\n"]}
|