@skaile/workspaces 3.27.0 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +480 -0
- package/dist/app-sdk/index.js +1 -1
- package/dist/{asset-feeds-AJOUKX55.js → asset-feeds-OPG6SUXU.js} +11 -9
- package/dist/asset-feeds-OPG6SUXU.js.map +1 -0
- package/dist/asset-manager/catalog-deployer.js +5 -3
- package/dist/asset-manager/index.js +11 -9
- package/dist/asset-manager/installer.js +8 -6
- package/dist/asset-manager/renderers.js +2 -2
- package/dist/asset-manager/src/renderers.d.ts.map +1 -1
- package/dist/bridge/drivers/claude-sdk.js +102 -55
- package/dist/bridge/drivers/claude-sdk.js.map +1 -1
- package/dist/bridge/drivers/codex.js +178 -22
- package/dist/bridge/drivers/codex.js.map +1 -1
- package/dist/bridge/drivers/continue.js +199 -7
- package/dist/bridge/drivers/continue.js.map +1 -1
- package/dist/bridge/drivers/echo.js +10 -4
- package/dist/bridge/drivers/echo.js.map +1 -1
- package/dist/bridge/drivers/gemini.js +7 -4
- package/dist/bridge/drivers/goose.js +160 -7
- package/dist/bridge/drivers/goose.js.map +1 -1
- package/dist/bridge/drivers/omp.js +321 -96
- package/dist/bridge/drivers/omp.js.map +1 -1
- package/dist/bridge/drivers/opencode.js +148 -13
- package/dist/bridge/drivers/opencode.js.map +1 -1
- package/dist/bridge/drivers/qwen.js +41 -11
- package/dist/bridge/drivers/qwen.js.map +1 -1
- package/dist/bridge/index.js +12 -9
- package/dist/bridge/src/cloud.d.ts +62 -71
- package/dist/bridge/src/cloud.d.ts.map +1 -1
- package/dist/bridge/src/codex/config-toml.d.ts +128 -0
- package/dist/bridge/src/codex/config-toml.d.ts.map +1 -0
- package/dist/bridge/src/codex/credentials.d.ts +26 -0
- package/dist/bridge/src/codex/credentials.d.ts.map +1 -1
- package/dist/bridge/src/codex/managed-driver.d.ts.map +1 -1
- package/dist/bridge/src/drivers/_subprocess-cli.d.ts +9 -4
- package/dist/bridge/src/drivers/_subprocess-cli.d.ts.map +1 -1
- package/dist/bridge/src/drivers/claude-sdk.d.ts +19 -11
- package/dist/bridge/src/drivers/claude-sdk.d.ts.map +1 -1
- package/dist/bridge/src/drivers/codex.d.ts +26 -1
- package/dist/bridge/src/drivers/codex.d.ts.map +1 -1
- package/dist/bridge/src/drivers/continue.d.ts +31 -5
- package/dist/bridge/src/drivers/continue.d.ts.map +1 -1
- package/dist/bridge/src/drivers/echo.d.ts.map +1 -1
- package/dist/bridge/src/drivers/gemini.d.ts +34 -3
- package/dist/bridge/src/drivers/gemini.d.ts.map +1 -1
- package/dist/bridge/src/drivers/goose.d.ts +26 -2
- package/dist/bridge/src/drivers/goose.d.ts.map +1 -1
- package/dist/bridge/src/drivers/omp-models-yml.d.ts +216 -0
- package/dist/bridge/src/drivers/omp-models-yml.d.ts.map +1 -0
- package/dist/bridge/src/drivers/omp.d.ts +26 -23
- package/dist/bridge/src/drivers/omp.d.ts.map +1 -1
- package/dist/bridge/src/drivers/opencode.d.ts +28 -3
- package/dist/bridge/src/drivers/opencode.d.ts.map +1 -1
- package/dist/bridge/src/drivers/qwen.d.ts +10 -4
- package/dist/bridge/src/drivers/qwen.d.ts.map +1 -1
- package/dist/bridge/src/index.d.ts +3 -1
- package/dist/bridge/src/index.d.ts.map +1 -1
- package/dist/bridge/src/models.d.ts +118 -19
- package/dist/bridge/src/models.d.ts.map +1 -1
- package/dist/bridge/src/provider-catalog.d.ts +188 -0
- package/dist/bridge/src/provider-catalog.d.ts.map +1 -0
- package/dist/bridge/src/provider-materialize/continue-config-yaml.d.ts +117 -0
- package/dist/bridge/src/provider-materialize/continue-config-yaml.d.ts.map +1 -0
- package/dist/bridge/src/provider-materialize/credential-env.d.ts +103 -0
- package/dist/bridge/src/provider-materialize/credential-env.d.ts.map +1 -0
- package/dist/bridge/src/provider-materialize/env-drivers.d.ts +209 -0
- package/dist/bridge/src/provider-materialize/env-drivers.d.ts.map +1 -0
- package/dist/bridge/src/provider-materialize/goose-custom-providers.d.ts +127 -0
- package/dist/bridge/src/provider-materialize/goose-custom-providers.d.ts.map +1 -0
- package/dist/bridge/src/provider-materialize/opencode-config.d.ts +127 -0
- package/dist/bridge/src/provider-materialize/opencode-config.d.ts.map +1 -0
- package/dist/bridge/src/provider-materialize/session-config-home.d.ts +63 -0
- package/dist/bridge/src/provider-materialize/session-config-home.d.ts.map +1 -0
- package/dist/bridge/src/provider-registry-derive.d.ts +59 -0
- package/dist/bridge/src/provider-registry-derive.d.ts.map +1 -0
- package/dist/bridge/src/registry.d.ts +19 -7
- package/dist/bridge/src/registry.d.ts.map +1 -1
- package/dist/bridge/src/runtime.d.ts.map +1 -1
- package/dist/bridge/src/types.d.ts +79 -60
- package/dist/bridge/src/types.d.ts.map +1 -1
- package/dist/bridge/src/validation.d.ts +2 -3
- package/dist/bridge/src/validation.d.ts.map +1 -1
- package/dist/{chunk-GURXUF2J.js → chunk-3ZTQY276.js} +95 -80
- package/dist/chunk-3ZTQY276.js.map +1 -0
- package/dist/{chunk-T3YLZQS4.js → chunk-45LLHKQ2.js} +24 -3
- package/dist/chunk-45LLHKQ2.js.map +1 -0
- package/dist/{chunk-UAEGKCE5.js → chunk-5IIHO2HI.js} +7 -7
- package/dist/{chunk-UAEGKCE5.js.map → chunk-5IIHO2HI.js.map} +1 -1
- package/dist/{chunk-HSRHO7SK.js → chunk-C3QLJTMB.js} +106 -150
- package/dist/chunk-C3QLJTMB.js.map +1 -0
- package/dist/chunk-CUU3AMGE.js +500 -0
- package/dist/chunk-CUU3AMGE.js.map +1 -0
- package/dist/{chunk-K6VZQNTR.js → chunk-DKCFWSVW.js} +3 -3
- package/dist/{chunk-K6VZQNTR.js.map → chunk-DKCFWSVW.js.map} +1 -1
- package/dist/{chunk-AEN2UFDN.js → chunk-DNGAA24M.js} +7 -7
- package/dist/{chunk-AEN2UFDN.js.map → chunk-DNGAA24M.js.map} +1 -1
- package/dist/{chunk-TCHEW3T2.js → chunk-EBHY23RZ.js} +6 -6
- package/dist/{chunk-TCHEW3T2.js.map → chunk-EBHY23RZ.js.map} +1 -1
- package/dist/{chunk-MQASB52N.js → chunk-FEFTOV2Y.js} +3 -3
- package/dist/{chunk-MQASB52N.js.map → chunk-FEFTOV2Y.js.map} +1 -1
- package/dist/{chunk-XMULHVKX.js → chunk-FODAC4RE.js} +17 -15
- package/dist/chunk-FODAC4RE.js.map +1 -0
- package/dist/{chunk-6H6HLMWG.js → chunk-G2F3ZCPK.js} +3 -3
- package/dist/{chunk-6H6HLMWG.js.map → chunk-G2F3ZCPK.js.map} +1 -1
- package/dist/{chunk-YLL65VXQ.js → chunk-HO2FQ76C.js} +175 -178
- package/dist/chunk-HO2FQ76C.js.map +1 -0
- package/dist/chunk-ILG4BXYE.js +936 -0
- package/dist/chunk-ILG4BXYE.js.map +1 -0
- package/dist/{chunk-E7HKNQTH.js → chunk-JXCUUZA3.js} +3 -4
- package/dist/chunk-JXCUUZA3.js.map +1 -0
- package/dist/{chunk-MBARHWMZ.js → chunk-K27T47OO.js} +79 -53
- package/dist/chunk-K27T47OO.js.map +1 -0
- package/dist/chunk-K3YR33F6.js +187 -0
- package/dist/chunk-K3YR33F6.js.map +1 -0
- package/dist/{chunk-7P6ASOFL.js → chunk-KIQGTAJ5.js} +3 -3
- package/dist/{chunk-7P6ASOFL.js.map → chunk-KIQGTAJ5.js.map} +1 -1
- package/dist/chunk-KSIRR5PL.js +142 -0
- package/dist/chunk-KSIRR5PL.js.map +1 -0
- package/dist/{chunk-SIREWRZE.js → chunk-KW7YIRYL.js} +3 -3
- package/dist/{chunk-SIREWRZE.js.map → chunk-KW7YIRYL.js.map} +1 -1
- package/dist/{chunk-3U3ZKYR7.js → chunk-LN2BQVRB.js} +139 -29
- package/dist/chunk-LN2BQVRB.js.map +1 -0
- package/dist/{chunk-DZ4UZOFB.js → chunk-M5H4DWIA.js} +3 -3
- package/dist/{chunk-DZ4UZOFB.js.map → chunk-M5H4DWIA.js.map} +1 -1
- package/dist/{chunk-JMYOJ3PA.js → chunk-MIP4IC3O.js} +3 -3
- package/dist/{chunk-JMYOJ3PA.js.map → chunk-MIP4IC3O.js.map} +1 -1
- package/dist/{chunk-O5JUZIVR.js → chunk-MJY2BO6N.js} +6 -6
- package/dist/{chunk-O5JUZIVR.js.map → chunk-MJY2BO6N.js.map} +1 -1
- package/dist/{chunk-AN6NAFRT.js → chunk-N7B3LZ7V.js} +31 -6
- package/dist/chunk-N7B3LZ7V.js.map +1 -0
- package/dist/{chunk-MX6TGDZ7.js → chunk-NBPL76HH.js} +5 -5
- package/dist/{chunk-MX6TGDZ7.js.map → chunk-NBPL76HH.js.map} +1 -1
- package/dist/{chunk-DY5GHUTC.js → chunk-NR6BPOW5.js} +2 -7
- package/dist/chunk-NR6BPOW5.js.map +1 -0
- package/dist/{chunk-F2GEM5B3.js → chunk-PCJF3XBH.js} +10 -10
- package/dist/{chunk-F2GEM5B3.js.map → chunk-PCJF3XBH.js.map} +1 -1
- package/dist/{chunk-NW65H5EV.js → chunk-PTETBRRC.js} +3 -3
- package/dist/{chunk-NW65H5EV.js.map → chunk-PTETBRRC.js.map} +1 -1
- package/dist/{chunk-UL4LD7KD.js → chunk-QQL3ET3J.js} +3 -3
- package/dist/{chunk-UL4LD7KD.js.map → chunk-QQL3ET3J.js.map} +1 -1
- package/dist/{chunk-IB4XKQMQ.js → chunk-REILIKVM.js} +3 -3
- package/dist/{chunk-IB4XKQMQ.js.map → chunk-REILIKVM.js.map} +1 -1
- package/dist/{chunk-N27DSFA7.js → chunk-RM4C5AU3.js} +27 -21
- package/dist/chunk-RM4C5AU3.js.map +1 -0
- package/dist/chunk-SG4D2UOK.js +843 -0
- package/dist/chunk-SG4D2UOK.js.map +1 -0
- package/dist/{chunk-AU4TUVHW.js → chunk-T7RHDVSY.js} +4 -4
- package/dist/{chunk-AU4TUVHW.js.map → chunk-T7RHDVSY.js.map} +1 -1
- package/dist/{chunk-773WLEXL.js → chunk-UKWEJPZZ.js} +3 -3
- package/dist/{chunk-773WLEXL.js.map → chunk-UKWEJPZZ.js.map} +1 -1
- package/dist/{chunk-3NCGSSCU.js → chunk-WLFRA5RM.js} +47 -45
- package/dist/chunk-WLFRA5RM.js.map +1 -0
- package/dist/{chunk-FFE7YLYO.js → chunk-XEVWRSLS.js} +7 -7
- package/dist/chunk-XEVWRSLS.js.map +1 -0
- package/dist/{chunk-5UWAOYDN.js → chunk-Y6E62LFB.js} +9 -12
- package/dist/chunk-Y6E62LFB.js.map +1 -0
- package/dist/{chunk-72DG6GSB.js → chunk-YS4XBN7O.js} +4 -4
- package/dist/{chunk-72DG6GSB.js.map → chunk-YS4XBN7O.js.map} +1 -1
- package/dist/chunk-YSJKLJD4.js +32 -0
- package/dist/chunk-YSJKLJD4.js.map +1 -0
- package/dist/cli/index.js +765 -334
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/src/commands/config.d.ts +17 -6
- package/dist/cli/src/commands/config.d.ts.map +1 -1
- package/dist/cli/src/commands/migrate-legacy-entry.d.ts +46 -0
- package/dist/cli/src/commands/migrate-legacy-entry.d.ts.map +1 -0
- package/dist/cli/src/commands/migrate-providers.d.ts +93 -0
- package/dist/cli/src/commands/migrate-providers.d.ts.map +1 -0
- package/dist/cli/src/commands/providers.d.ts +89 -0
- package/dist/cli/src/commands/providers.d.ts.map +1 -0
- package/dist/cli/src/commands/run.d.ts +1 -1
- package/dist/cli/src/commands/run.d.ts.map +1 -1
- package/dist/cli/src/setup.d.ts +46 -6
- package/dist/cli/src/setup.d.ts.map +1 -1
- package/dist/connectors/config.js +6 -4
- package/dist/connectors/index.js +15 -12
- package/dist/core/index.js +5 -3
- package/dist/core/provider-registry-credentials.d.ts +2 -0
- package/dist/core/provider-registry-credentials.js +5 -0
- package/dist/core/provider-registry-credentials.js.map +1 -0
- package/dist/core/provider-registry.d.ts +2 -0
- package/dist/core/provider-registry.js +4 -0
- package/dist/core/provider-registry.js.map +1 -0
- package/dist/core/runtime-assets.js +2 -2
- package/dist/core/src/index.d.ts +10 -4
- package/dist/core/src/index.d.ts.map +1 -1
- package/dist/core/src/provider-registry-credentials.d.ts +50 -0
- package/dist/core/src/provider-registry-credentials.d.ts.map +1 -0
- package/dist/core/src/provider-registry-files.d.ts +97 -0
- package/dist/core/src/provider-registry-files.d.ts.map +1 -0
- package/dist/core/src/provider-registry.d.ts +450 -0
- package/dist/core/src/provider-registry.d.ts.map +1 -0
- package/dist/core/src/settings.d.ts +18 -78
- package/dist/core/src/settings.d.ts.map +1 -1
- package/dist/core/src/workspace-config.d.ts +31 -47
- package/dist/core/src/workspace-config.d.ts.map +1 -1
- package/dist/core/src/workspace-yaml-editor.d.ts.map +1 -1
- package/dist/core/workspace-config.js +1 -1
- package/dist/deploy/index.js +5 -3
- package/dist/deploy/index.js.map +1 -1
- package/dist/discovery/index.js +2 -2
- package/dist/{ensure-sources-DYGQNAJM.js → ensure-sources-QZAQ4SY2.js} +14 -12
- package/dist/ensure-sources-QZAQ4SY2.js.map +1 -0
- package/dist/factory-assets/connectors/box.js +15 -12
- package/dist/factory-assets/connectors/deploy.js +15 -12
- package/dist/factory-assets/connectors/devserver.js +15 -12
- package/dist/factory-assets/connectors/flow/adapter.js +15 -12
- package/dist/factory-assets/connectors/flow/engine.js +6 -4
- package/dist/factory-assets/connectors/flow/index.d.ts +1 -1
- package/dist/factory-assets/connectors/flow/index.d.ts.map +1 -1
- package/dist/factory-assets/connectors/flow/run-flow.d.ts +0 -3
- package/dist/factory-assets/connectors/flow/run-flow.d.ts.map +1 -1
- package/dist/factory-assets/connectors/flow/run-flow.js +16 -13
- package/dist/factory-assets/connectors/flow/subprompt-runner.d.ts +31 -28
- package/dist/factory-assets/connectors/flow/subprompt-runner.d.ts.map +1 -1
- package/dist/factory-assets/connectors/flow.js +15 -12
- package/dist/factory-assets/connectors/git.js +15 -12
- package/dist/factory-assets/connectors/gmail.js +15 -12
- package/dist/factory-assets/connectors/googledrive.js +15 -12
- package/dist/factory-assets/connectors/local.js +15 -12
- package/dist/factory-assets/connectors/mattermost.js +15 -12
- package/dist/factory-assets/connectors/memory.js +15 -12
- package/dist/factory-assets/connectors/minio.js +15 -12
- package/dist/factory-assets/connectors/postgres.js +15 -12
- package/dist/factory-assets/connectors/s3.js +15 -12
- package/dist/factory-assets/connectors/sharepoint.js +15 -12
- package/dist/factory-assets/connectors/sqlite.js +15 -12
- package/dist/factory-assets/connectors/static-server.js +15 -12
- package/dist/factory-assets/connectors/tunnel.js +15 -12
- package/dist/factory-assets/connectors/webdav.js +15 -12
- package/dist/factory-assets/connectors/xstate-store.js +15 -12
- package/dist/factory-assets/connectors/xstate.js +15 -12
- package/dist/{flows-MI2VM5JZ.js → flows-4EIENFNT.js} +9 -7
- package/dist/{flows-MI2VM5JZ.js.map → flows-4EIENFNT.js.map} +1 -1
- package/dist/{helpers-G6XZPN6L.js → helpers-DISRVGRJ.js} +14 -12
- package/dist/{helpers-G6XZPN6L.js.map → helpers-DISRVGRJ.js.map} +1 -1
- package/dist/library/index.js +8 -6
- package/dist/library/install.js +5 -3
- package/dist/{library-publish-WHGKK7G5.js → library-publish-I2QYQSB4.js} +18 -16
- package/dist/library-publish-I2QYQSB4.js.map +1 -0
- package/dist/{open-library-4JSLGWL6.js → open-library-6LM4W4DR.js} +16 -14
- package/dist/{open-library-4JSLGWL6.js.map → open-library-6LM4W4DR.js.map} +1 -1
- package/dist/paths-P26QGQP5.js +18 -0
- package/dist/{paths-CZEH643M.js.map → paths-P26QGQP5.js.map} +1 -1
- package/dist/plugin-registry/src/targets.d.ts +16 -2
- package/dist/plugin-registry/src/targets.d.ts.map +1 -1
- package/dist/{plugin-store-QJNBPIQK.js → plugin-store-T2DJGKBW.js} +7 -5
- package/dist/plugin-store-T2DJGKBW.js.map +1 -0
- package/dist/{project-LISE6I5O.js → project-HP3IR7RW.js} +15 -13
- package/dist/{project-LISE6I5O.js.map → project-HP3IR7RW.js.map} +1 -1
- package/dist/resolver/index.js +5 -3
- package/dist/runner/index.js +25 -22
- package/dist/runner/src/agent.d.ts +0 -2
- package/dist/runner/src/agent.d.ts.map +1 -1
- package/dist/runner/src/codex-init.d.ts.map +1 -1
- package/dist/runner/src/codex-resource-tools.d.ts.map +1 -1
- package/dist/runner/src/managed-codex-bootstrap.d.ts.map +1 -1
- package/dist/runner/src/resources.d.ts +1 -2
- package/dist/runner/src/resources.d.ts.map +1 -1
- package/dist/runner/src/serve.d.ts.map +1 -1
- package/dist/runner/src/session-builder.d.ts +31 -35
- package/dist/runner/src/session-builder.d.ts.map +1 -1
- package/dist/runner/src/session.d.ts +0 -2
- package/dist/runner/src/session.d.ts.map +1 -1
- package/dist/sdk/asset-manager.js +11 -9
- package/dist/sdk/bridge.js +12 -9
- package/dist/sdk/core.js +5 -3
- package/dist/sdk/flow.js +6 -4
- package/dist/sdk/index.js +25 -22
- package/dist/sdk/index.js.map +1 -1
- package/dist/sdk/resolver.js +5 -3
- package/dist/sdk/runner.js +25 -22
- package/dist/sdk/session.js +2 -2
- package/dist/sdk/types.js +1 -1
- package/dist/session/index.js +2 -2
- package/dist/setup-HLRSU3MR.js +435 -0
- package/dist/setup-HLRSU3MR.js.map +1 -0
- package/dist/{skills-IE3IWWB7.js → skills-QPYHHZ54.js} +7 -5
- package/dist/{skills-IE3IWWB7.js.map → skills-QPYHHZ54.js.map} +1 -1
- package/dist/{source-FKVEUOBQ.js → source-G2VCWPDU.js} +17 -15
- package/dist/{source-FKVEUOBQ.js.map → source-G2VCWPDU.js.map} +1 -1
- package/dist/{source-manifest-publish-LTRXO2OQ.js → source-manifest-publish-WYKCKJFC.js} +19 -17
- package/dist/source-manifest-publish-WYKCKJFC.js.map +1 -0
- package/dist/tui/index.js +25 -23
- package/dist/tui/index.js.map +1 -1
- package/dist/tui/src/repl.d.ts +0 -2
- package/dist/tui/src/repl.d.ts.map +1 -1
- package/dist/types/index.js +1 -1
- package/dist/types/manifests.js +1 -1
- package/dist/types/src/flow.d.ts +6 -1
- package/dist/types/src/flow.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +1 -1
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/lifecycle.d.ts +35 -10
- package/dist/types/src/lifecycle.d.ts.map +1 -1
- package/dist/types/src/manifests/agent.d.ts +116 -22
- package/dist/types/src/manifests/agent.d.ts.map +1 -1
- package/dist/types/src/manifests/index.d.ts +2 -2
- package/dist/types/src/manifests/index.d.ts.map +1 -1
- package/dist/types/src/manifests/preset.d.ts +5 -5
- package/dist/types/src/runtime.d.ts +51 -5
- package/dist/types/src/runtime.d.ts.map +1 -1
- package/dist/types/src/version.d.ts +18 -2
- package/dist/types/src/version.d.ts.map +1 -1
- package/dist/validator-P5ESKTW5.js +5 -0
- package/dist/{validator-RN64BKFW.js.map → validator-P5ESKTW5.js.map} +1 -1
- package/dist/workspace-plugin/adapters/mcp.js +11 -9
- package/dist/workspace-plugin/adapters/omp.js +11 -11
- package/dist/workspace-plugin/adapters/omp.js.map +1 -1
- package/dist/workspace-plugin/index.js +1 -1
- package/dist/workspace-plugin/src/plugin.d.ts +1 -4
- package/dist/workspace-plugin/src/plugin.d.ts.map +1 -1
- package/dist/workspace-plugin/src/tools/validator.d.ts +4 -4
- package/dist/workspace-plugin/src/tools/validator.d.ts.map +1 -1
- package/package.json +13 -1
- package/dist/asset-feeds-AJOUKX55.js.map +0 -1
- package/dist/bridge/src/provider-endpoints.d.ts +0 -55
- package/dist/bridge/src/provider-endpoints.d.ts.map +0 -1
- package/dist/chunk-3NCGSSCU.js.map +0 -1
- package/dist/chunk-3U3ZKYR7.js.map +0 -1
- package/dist/chunk-5UWAOYDN.js.map +0 -1
- package/dist/chunk-AN6NAFRT.js.map +0 -1
- package/dist/chunk-AQW4BWNR.js +0 -324
- package/dist/chunk-AQW4BWNR.js.map +0 -1
- package/dist/chunk-DY5GHUTC.js.map +0 -1
- package/dist/chunk-E7HKNQTH.js.map +0 -1
- package/dist/chunk-FFE7YLYO.js.map +0 -1
- package/dist/chunk-FYIHH56K.js +0 -110
- package/dist/chunk-FYIHH56K.js.map +0 -1
- package/dist/chunk-GURXUF2J.js.map +0 -1
- package/dist/chunk-HSRHO7SK.js.map +0 -1
- package/dist/chunk-MBARHWMZ.js.map +0 -1
- package/dist/chunk-N27DSFA7.js.map +0 -1
- package/dist/chunk-T3YLZQS4.js.map +0 -1
- package/dist/chunk-XMULHVKX.js.map +0 -1
- package/dist/chunk-YLL65VXQ.js.map +0 -1
- package/dist/ensure-sources-DYGQNAJM.js.map +0 -1
- package/dist/library-publish-WHGKK7G5.js.map +0 -1
- package/dist/paths-CZEH643M.js +0 -16
- package/dist/plugin-store-QJNBPIQK.js.map +0 -1
- package/dist/runner/src/cloud-bundle.d.ts +0 -36
- package/dist/runner/src/cloud-bundle.d.ts.map +0 -1
- package/dist/setup-CIRH5BYB.js +0 -517
- package/dist/setup-CIRH5BYB.js.map +0 -1
- package/dist/source-manifest-publish-LTRXO2OQ.js.map +0 -1
- package/dist/validator-RN64BKFW.js +0 -5
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Continue's `config.yaml` adapter — the file half of the Continue row (§2.3).
|
|
3
|
+
*
|
|
4
|
+
* `cn` has no model flag. Its assistant is a document, and the document binds
|
|
5
|
+
* models to **roles** (`chat`, `edit`, `apply`, `autocomplete`, `embed`,
|
|
6
|
+
* `rerank`, `summarize`); a headless `cn -p` turn runs as `chat`. So unlike
|
|
7
|
+
* OpenCode and Goose, Continue needs a file for *every* endpoint, stock or
|
|
8
|
+
* custom — it has no built-in provider table keyed by vendor names to fall
|
|
9
|
+
* back on:
|
|
10
|
+
*
|
|
11
|
+
* ```yaml
|
|
12
|
+
* name: Skaile session
|
|
13
|
+
* version: 0.0.1
|
|
14
|
+
* schema: v1
|
|
15
|
+
* models:
|
|
16
|
+
* - name: corp-gateway/corp-fast-1
|
|
17
|
+
* provider: openai
|
|
18
|
+
* model: corp-fast-1
|
|
19
|
+
* apiBase: https://llm.corp.example/v1
|
|
20
|
+
* apiKey: ${{ secrets.SKAILE_AIP_CORP_GATEWAY_KEY }}
|
|
21
|
+
* roles:
|
|
22
|
+
* - chat
|
|
23
|
+
* ```
|
|
24
|
+
*
|
|
25
|
+
* `provider` is Continue's *adapter class*, not an endpoint name — the
|
|
26
|
+
* endpoint is `apiBase`. The row's `name` carries the identity instead, and it
|
|
27
|
+
* is `backendProviderName`/`backendModelSelector` verbatim, so a model reads
|
|
28
|
+
* the same here as in every other adapter.
|
|
29
|
+
*
|
|
30
|
+
* **Credentials never enter the file.** `apiKey` holds Continue's own
|
|
31
|
+
* `${{ secrets.NAME }}` indirection; the CLI resolves a secret from the
|
|
32
|
+
* process environment before it asks Continue Hub, so `SKAILE_AIP_<ID>_KEY`
|
|
33
|
+
* in the child env is what authenticates the request.
|
|
34
|
+
*
|
|
35
|
+
* **Roles.** The session's `roles` table is the source: every entry whose key
|
|
36
|
+
* is one of Continue's roles becomes that role's binding (`default` is read as
|
|
37
|
+
* `chat`, matching how the rest of the programme spells the fallback), and the
|
|
38
|
+
* session's own model selection wins `chat` when it named one.
|
|
39
|
+
*
|
|
40
|
+
* @see https://docs.continue.dev/reference
|
|
41
|
+
* @docLink packages/bridge/drivers#one-shot-cli-drivers-gemini-qwen-opencode-goose-continue
|
|
42
|
+
*/
|
|
43
|
+
import { type AIProviderLlmEntry } from "@skaile/workspaces/core/provider-registry";
|
|
44
|
+
import { type EnvDriverSession } from "./env-drivers.js";
|
|
45
|
+
/** Filename Continue reads its local assistant from, under the global dir. */
|
|
46
|
+
export declare const CONTINUE_CONFIG_FILENAME = "config.yaml";
|
|
47
|
+
/** One `models[]` row. */
|
|
48
|
+
export interface ContinueModelRow {
|
|
49
|
+
/** `<backendProviderName>/<providerModelId>` — the programme-wide model id. */
|
|
50
|
+
name: string;
|
|
51
|
+
/** Continue adapter class: `openai`, `anthropic`, `gemini`. */
|
|
52
|
+
provider: string;
|
|
53
|
+
/** Provider-side model id. */
|
|
54
|
+
model: string;
|
|
55
|
+
apiBase?: string;
|
|
56
|
+
/** Continue's `${{ secrets.NAME }}` indirection — never a secret. */
|
|
57
|
+
apiKey?: string;
|
|
58
|
+
roles: string[];
|
|
59
|
+
requestOptions?: {
|
|
60
|
+
headers: Record<string, string>;
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
/** The `config.yaml` document this adapter owns. */
|
|
64
|
+
export interface ContinueConfigDocument {
|
|
65
|
+
name: string;
|
|
66
|
+
version: string;
|
|
67
|
+
schema: string;
|
|
68
|
+
models: ContinueModelRow[];
|
|
69
|
+
}
|
|
70
|
+
/** Result of {@link buildContinueConfigDocument}. */
|
|
71
|
+
export interface ContinueConfigBuild {
|
|
72
|
+
document: ContinueConfigDocument;
|
|
73
|
+
/** Role bindings that resolved to nothing Continue can run. */
|
|
74
|
+
warnings: string[];
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Render one entry + model as a `models[]` row, or explain why Continue cannot
|
|
78
|
+
* run it.
|
|
79
|
+
*/
|
|
80
|
+
export declare function renderContinueModel(providerId: string, entry: AIProviderLlmEntry, model: string, roles: string[]): {
|
|
81
|
+
row: ContinueModelRow;
|
|
82
|
+
} | {
|
|
83
|
+
skipped: string;
|
|
84
|
+
};
|
|
85
|
+
/**
|
|
86
|
+
* Build the document for a session: one `models[]` row per distinct endpoint +
|
|
87
|
+
* model a role binds, with every role that binds it.
|
|
88
|
+
*
|
|
89
|
+
* Only bound models are rendered. Continue defaults an omitted `roles` to
|
|
90
|
+
* `[chat, edit, apply, summarize]`, so listing the registry's other models
|
|
91
|
+
* would silently make each of them a chat candidate — the document says
|
|
92
|
+
* exactly what the session decided and nothing else.
|
|
93
|
+
*
|
|
94
|
+
* An empty registry renders nothing — `cn` then runs on whatever its own
|
|
95
|
+
* `config.yaml` or Hub login provides.
|
|
96
|
+
*/
|
|
97
|
+
export declare function buildContinueConfigDocument(session: EnvDriverSession): ContinueConfigBuild;
|
|
98
|
+
/** What {@link materializeContinueConfig} handed the driver. */
|
|
99
|
+
export interface ContinueMaterialization extends ContinueConfigBuild {
|
|
100
|
+
/** Child env fragment: `CONTINUE_GLOBAL_DIR`, or empty when nothing was written. */
|
|
101
|
+
env: Record<string, string>;
|
|
102
|
+
/** Absolute path of the rendered file, when one was written. */
|
|
103
|
+
path?: string;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Render the session's role bindings and point the child at them.
|
|
107
|
+
*
|
|
108
|
+
* A session that bound no model writes nothing and leaves
|
|
109
|
+
* `CONTINUE_GLOBAL_DIR` alone, so `cn` keeps resolving its Hub assistant (or
|
|
110
|
+
* the developer's own `~/.continue/config.yaml`) exactly as before. A file
|
|
111
|
+
* left by an earlier render of the same session is removed in that case.
|
|
112
|
+
*/
|
|
113
|
+
export declare function materializeContinueConfig(session: EnvDriverSession, config: {
|
|
114
|
+
cwd: string;
|
|
115
|
+
sessionId?: string;
|
|
116
|
+
}): ContinueMaterialization;
|
|
117
|
+
//# sourceMappingURL=continue-config-yaml.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"continue-config-yaml.d.ts","sourceRoot":"","sources":["../../../../bridge/src/provider-materialize/continue-config-yaml.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAEH,OAAO,EACL,KAAK,kBAAkB,EAGxB,MAAM,2CAA2C,CAAC;AAGnD,OAAO,EAKL,KAAK,gBAAgB,EAEtB,MAAM,kBAAkB,CAAC;AAqC1B,8EAA8E;AAC9E,eAAO,MAAM,wBAAwB,gBAAgB,CAAC;AAEtD,0BAA0B;AAC1B,MAAM,WAAW,gBAAgB;IAC/B,+EAA+E;IAC/E,IAAI,EAAE,MAAM,CAAC;IACb,+DAA+D;IAC/D,QAAQ,EAAE,MAAM,CAAC;IACjB,8BAA8B;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qEAAqE;IACrE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,cAAc,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC;CACtD;AAED,oDAAoD;AACpD,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,gBAAgB,EAAE,CAAC;CAC5B;AAED,qDAAqD;AACrD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,sBAAsB,CAAC;IACjC,+DAA+D;IAC/D,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AASD;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,kBAAkB,EACzB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EAAE,GACd;IAAE,GAAG,EAAE,gBAAgB,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAwBjD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,gBAAgB,GAAG,mBAAmB,CA+D1F;AAED,gEAAgE;AAChE,MAAM,WAAW,uBAAwB,SAAQ,mBAAmB;IAClE,oFAAoF;IACpF,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,gEAAgE;IAChE,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAC1C,uBAAuB,CAazB"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Credential delivery for driver adapters — the one naming rule (§2.3).
|
|
3
|
+
*
|
|
4
|
+
* Every adapter that hands a registry entry's secret to a child process, and
|
|
5
|
+
* every renderer that has to *name* that secret in a config file it writes
|
|
6
|
+
* (omp's `models.yml` `apiKey:`, Codex's `env_key`, OpenCode's `{env:…}`),
|
|
7
|
+
* agrees on one env-var name per entry: `SKAILE_AIP_<UPPER_ID>_KEY`. The name
|
|
8
|
+
* goes in the file, the value goes in the child environment — a rendered
|
|
9
|
+
* config never contains a secret.
|
|
10
|
+
*
|
|
11
|
+
* The platform's secret-env allowlist is a prefix rule on exactly that name,
|
|
12
|
+
* and forge-common delivers the same names when it spawns `skaile serve`, so
|
|
13
|
+
* the transform below is a cross-repo contract: uppercase, every character
|
|
14
|
+
* outside `[A-Za-z0-9]` mapped to `_` (registry ids are `[a-z0-9][a-z0-9_-]*`,
|
|
15
|
+
* so in practice only `-`).
|
|
16
|
+
*
|
|
17
|
+
* Alongside the canonical name, {@link registryCredentialEnv} also sets the
|
|
18
|
+
* *conventional* carrier a CLI already reads (`ANTHROPIC_API_KEY`,
|
|
19
|
+
* `GEMINI_API_KEY`, `GROQ_API_KEY`, …) so a catalog-preset entry works in a
|
|
20
|
+
* backend that has no per-endpoint config file yet.
|
|
21
|
+
*
|
|
22
|
+
* @see PROVIDER-CONFIG-PLAN.md §1.4, §2.3
|
|
23
|
+
*/
|
|
24
|
+
import { type AIProviderEntry, type AIProviderRegistry, type MergedAIProviderRegistry } from "@skaile/workspaces/core/provider-registry";
|
|
25
|
+
/** Options shared by every registry-shaped credential resolution. */
|
|
26
|
+
export interface RegistryCredentialOptions {
|
|
27
|
+
/** Restrict resolution to one entry — the provider half of a `modelRef`. */
|
|
28
|
+
providerId?: string;
|
|
29
|
+
/** Environment `env:` refs resolve against. Defaults to `process.env`. */
|
|
30
|
+
env?: Record<string, string | undefined>;
|
|
31
|
+
/** Control-plane secrets keyed by config id, for `platform:` refs. */
|
|
32
|
+
secrets?: Record<string, string>;
|
|
33
|
+
/** Run `cmd:` references. Default `true`. */
|
|
34
|
+
allowCommand?: boolean;
|
|
35
|
+
}
|
|
36
|
+
/** Prefix of the canonical per-entry credential variable. */
|
|
37
|
+
export declare const PROVIDER_CREDENTIAL_ENV_PREFIX = "SKAILE_AIP_";
|
|
38
|
+
/** Suffix of the canonical per-entry credential variable. */
|
|
39
|
+
export declare const PROVIDER_CREDENTIAL_ENV_SUFFIX = "_KEY";
|
|
40
|
+
/**
|
|
41
|
+
* The env-var name that carries a registry entry's credential:
|
|
42
|
+
* `anthropic` → `SKAILE_AIP_ANTHROPIC_KEY`, `my-gw.eu` → `SKAILE_AIP_MY_GW_EU_KEY`.
|
|
43
|
+
*
|
|
44
|
+
* Pure: no environment, no registry, no I/O. Renderers call it per entry while
|
|
45
|
+
* emitting a config file, adapters call it while assembling a child env, and
|
|
46
|
+
* the platform allowlist matches the prefix.
|
|
47
|
+
*/
|
|
48
|
+
export declare function providerCredentialEnvName(providerId: string): string;
|
|
49
|
+
/**
|
|
50
|
+
* The env var a backend already looks for on its own, when the entry names one.
|
|
51
|
+
*
|
|
52
|
+
* The catalog preset's conventional carrier wins (`GEMINI_API_KEY` for
|
|
53
|
+
* `google`), because that is the name the vendor's own CLI reads; otherwise an
|
|
54
|
+
* `env:NAME` credential reference is taken at face value — the operator named
|
|
55
|
+
* that variable, so the child gets it under the same name. `cmd:`, `platform:`
|
|
56
|
+
* and `keyring:` refs have no conventional carrier and return `undefined`.
|
|
57
|
+
*/
|
|
58
|
+
export declare function conventionalCredentialEnvName(entry: AIProviderEntry): string | undefined;
|
|
59
|
+
/**
|
|
60
|
+
* Resolve one entry's credential to its value, or `undefined` when there is
|
|
61
|
+
* none to hand over (`kind: none`, an ambient `sigv4`/`google_adc` chain, an
|
|
62
|
+
* unset variable, a reserved `keyring:` ref).
|
|
63
|
+
*/
|
|
64
|
+
export declare function resolveEntryCredential(entry: AIProviderEntry, options?: RegistryCredentialOptions): string | undefined;
|
|
65
|
+
/**
|
|
66
|
+
* One entry's credential value, including the one the session boundary
|
|
67
|
+
* already resolved for it.
|
|
68
|
+
*
|
|
69
|
+
* A `platform:<configId>` reference is resolved by the runner — it holds the
|
|
70
|
+
* `session_init` secrets map, the driver does not — and materialized into the
|
|
71
|
+
* child environment under {@link providerCredentialEnvName}. So when the
|
|
72
|
+
* reference itself yields nothing, that carrier is consulted: it is the same
|
|
73
|
+
* secret, delivered one step earlier.
|
|
74
|
+
*/
|
|
75
|
+
export declare function entryCredentialValue(providerId: string, entry: AIProviderEntry, options?: RegistryCredentialOptions): string | undefined;
|
|
76
|
+
/** Options for {@link entryCredentialEnv} / {@link registryCredentialEnv}. */
|
|
77
|
+
export interface RegistryCredentialEnvOptions extends RegistryCredentialOptions {
|
|
78
|
+
/**
|
|
79
|
+
* Also set the backend-conventional carrier
|
|
80
|
+
* ({@link conventionalCredentialEnvName}). Default `true`. Set `false` for a
|
|
81
|
+
* backend that reads every endpoint out of a rendered config file and must
|
|
82
|
+
* not inherit a vendor default from a neighbouring entry.
|
|
83
|
+
*/
|
|
84
|
+
aliases?: boolean;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* The credential variables one entry contributes: always
|
|
88
|
+
* `SKAILE_AIP_<ID>_KEY`, plus the conventional carrier unless `aliases` is
|
|
89
|
+
* `false`. Empty when the entry has no resolvable secret.
|
|
90
|
+
*/
|
|
91
|
+
export declare function entryCredentialEnv(providerId: string, entry: AIProviderEntry, options?: RegistryCredentialEnvOptions): Record<string, string>;
|
|
92
|
+
/**
|
|
93
|
+
* Every enabled entry's credential, as a child-process environment fragment.
|
|
94
|
+
*
|
|
95
|
+
* One canonical `SKAILE_AIP_<ID>_KEY` per entry whose credential resolves; the
|
|
96
|
+
* conventional carriers are added underneath, first entry in registry order
|
|
97
|
+
* winning a collision (registry order is highest-precedence layer first, so
|
|
98
|
+
* the alias follows the same precedence the selector does). Entries whose
|
|
99
|
+
* credential cannot be resolved contribute nothing — exactly what the flat
|
|
100
|
+
* `apiKeys` cascade produced for them.
|
|
101
|
+
*/
|
|
102
|
+
export declare function registryCredentialEnv(registry: AIProviderRegistry | MergedAIProviderRegistry, options?: RegistryCredentialEnvOptions): Record<string, string>;
|
|
103
|
+
//# sourceMappingURL=credential-env.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"credential-env.d.ts","sourceRoot":"","sources":["../../../../bridge/src/provider-materialize/credential-env.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,kBAAkB,EAEvB,KAAK,wBAAwB,EAG9B,MAAM,2CAA2C,CAAC;AAInD,qEAAqE;AACrE,MAAM,WAAW,yBAAyB;IACxC,4EAA4E;IAC5E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0EAA0E;IAC1E,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACzC,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,6CAA6C;IAC7C,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,6DAA6D;AAC7D,eAAO,MAAM,8BAA8B,gBAAgB,CAAC;AAE5D,6DAA6D;AAC7D,eAAO,MAAM,8BAA8B,SAAS,CAAC;AAErD;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAGpE;AAED;;;;;;;;GAQG;AACH,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,GAAG,SAAS,CAKxF;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,eAAe,EACtB,OAAO,GAAE,yBAA8B,GACtC,MAAM,GAAG,SAAS,CAMpB;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,eAAe,EACtB,OAAO,GAAE,yBAA8B,GACtC,MAAM,GAAG,SAAS,CAIpB;AAED,8EAA8E;AAC9E,MAAM,WAAW,4BAA6B,SAAQ,yBAAyB;IAC7E;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,eAAe,EACtB,OAAO,GAAE,4BAAiC,GACzC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CASxB;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,kBAAkB,GAAG,wBAAwB,EACvD,OAAO,GAAE,4BAAiC,GACzC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAcxB"}
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Registry adapter for the **env-shaped CLI drivers** — Gemini, Qwen, OpenCode,
|
|
3
|
+
* Goose and Continue (§2.3).
|
|
4
|
+
*
|
|
5
|
+
* These backends take their endpoint from the environment rather than from a
|
|
6
|
+
* config file, so the adapter's job is three things: resolve which registry
|
|
7
|
+
* entry the session's model selector names, refuse at start when that entry
|
|
8
|
+
* speaks a wire surface the backend cannot, and hand the driver the
|
|
9
|
+
* provider-side model id it must put on the command line.
|
|
10
|
+
*
|
|
11
|
+
* Two pluralities meet here (`BUILTIN_DRIVER_CATALOG.providerPlurality`):
|
|
12
|
+
*
|
|
13
|
+
* - `single` — Gemini and Qwen address exactly one endpoint. The bound entry
|
|
14
|
+
* supplies the credential *and* the base URL, and a surface mismatch is
|
|
15
|
+
* fatal: a Gemini CLI pointed at an `openai-completions` endpoint cannot
|
|
16
|
+
* work, and failing at start names the surface instead of leaving the user
|
|
17
|
+
* with an opaque error mid-turn.
|
|
18
|
+
* - `credentials-n` — OpenCode, Goose and Continue accept every enabled
|
|
19
|
+
* entry's credential at once and select one active model. The credential
|
|
20
|
+
* fan-out is `registryCredentialEnv`; the active model is this module's
|
|
21
|
+
* `<provider>/<model>` binding.
|
|
22
|
+
*
|
|
23
|
+
* Writing the per-endpoint config files those three need for *custom*
|
|
24
|
+
* endpoints (`opencode.json`, Goose `custom_providers/*.json`, Continue
|
|
25
|
+
* `config.yaml`) is the file half, and is deliberately not here.
|
|
26
|
+
*
|
|
27
|
+
* @see PROVIDER-CONFIG-PLAN.md §2.3
|
|
28
|
+
*/
|
|
29
|
+
import { type AIProviderLlmEntry, type AIProviderSurface, type MergedAIProviderRegistry } from "@skaile/workspaces/core/provider-registry";
|
|
30
|
+
import type { ModelEntry } from "../models.js";
|
|
31
|
+
import type { AgentConfig } from "../types.js";
|
|
32
|
+
/**
|
|
33
|
+
* Everything a CLI driver needs to know about this session's AI providers,
|
|
34
|
+
* resolved once from its {@link AgentConfig}.
|
|
35
|
+
*/
|
|
36
|
+
export interface EnvDriverSession {
|
|
37
|
+
/** The merged registry this session may address. Empty when none was configured. */
|
|
38
|
+
registry: MergedAIProviderRegistry;
|
|
39
|
+
/**
|
|
40
|
+
* Environment `credential.ref` lookups resolve against — the process
|
|
41
|
+
* environment widened with `config.env`, which is where the session
|
|
42
|
+
* boundary delivered every resolved `SKAILE_AIP_<ID>_KEY`.
|
|
43
|
+
*/
|
|
44
|
+
lookupEnv: Record<string, string | undefined>;
|
|
45
|
+
/** Model selector: `<providerId>/<modelId>`, a bare id, or `@role`. */
|
|
46
|
+
modelRef?: string;
|
|
47
|
+
/** Roles table an `@role` selector resolves through. */
|
|
48
|
+
roles?: Record<string, string>;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Resolve the session's providers once, from its {@link AgentConfig}.
|
|
52
|
+
*
|
|
53
|
+
* `config.env` is folded into `lookupEnv` rather than kept apart: it is part
|
|
54
|
+
* of the session's environment, not an extra, and a credential or
|
|
55
|
+
* `*_BASE_URL` delivered there must be visible exactly as the child will see
|
|
56
|
+
* it.
|
|
57
|
+
*/
|
|
58
|
+
export declare function resolveEnvDriverSession(config: AgentConfig, processEnv?: Record<string, string | undefined>): EnvDriverSession;
|
|
59
|
+
/** One resolved endpoint + model — everything a driver needs to spawn. */
|
|
60
|
+
export interface RegistryModelBinding {
|
|
61
|
+
/** Registry id of the selected entry. */
|
|
62
|
+
providerId: string;
|
|
63
|
+
/** The selected entry itself. */
|
|
64
|
+
entry: AIProviderLlmEntry;
|
|
65
|
+
/** Logical model id, after `@role` expansion and before `model_map`. */
|
|
66
|
+
modelId?: string;
|
|
67
|
+
/** Provider-side model id — what goes on the wire / command line. */
|
|
68
|
+
providerModelId?: string;
|
|
69
|
+
/** Wire protocol, from the entry or its preset. */
|
|
70
|
+
surface?: AIProviderSurface;
|
|
71
|
+
/** Resolved endpoint, from the entry, its transport params, or its preset. */
|
|
72
|
+
baseUrl?: string;
|
|
73
|
+
/**
|
|
74
|
+
* The provider name the *backend* knows this endpoint by — a catalog preset
|
|
75
|
+
* id for a stock endpoint, the registry id for anything custom. See
|
|
76
|
+
* {@link backendProviderName}.
|
|
77
|
+
*/
|
|
78
|
+
backendProviderId: string;
|
|
79
|
+
/** Non-fatal notes from `parseModelRef` (dangling role, disabled provider). */
|
|
80
|
+
warnings: string[];
|
|
81
|
+
}
|
|
82
|
+
/** The entry's wire surface: its own, else its preset's. */
|
|
83
|
+
export declare function entrySurface(entry: AIProviderLlmEntry): AIProviderSurface | undefined;
|
|
84
|
+
/**
|
|
85
|
+
* The entry's endpoint: its literal or transport-derived URL, else its
|
|
86
|
+
* preset's literal. Transport templates that still carry `{param}`
|
|
87
|
+
* placeholders never come back — `resolveEntryBaseUrl` withholds those, and a
|
|
88
|
+
* preset's template is not a URL.
|
|
89
|
+
*/
|
|
90
|
+
export declare function entryBaseUrl(entry: AIProviderLlmEntry): string | undefined;
|
|
91
|
+
/**
|
|
92
|
+
* True when a `credentials-n` backend already knows this endpoint under its
|
|
93
|
+
* own catalog name — the entry names a preset and did not move it somewhere
|
|
94
|
+
* else.
|
|
95
|
+
*
|
|
96
|
+
* The one rule both halves of §2.3 read: it decides the name the env half
|
|
97
|
+
* puts on the command line ({@link backendProviderName}) *and* whether the
|
|
98
|
+
* file half has to describe the endpoint at all. Reading it twice is what
|
|
99
|
+
* keeps `-m <name>/<model>` and the generated provider file talking about the
|
|
100
|
+
* same thing.
|
|
101
|
+
*/
|
|
102
|
+
export declare function isStockCatalogEndpoint(entry: AIProviderLlmEntry): boolean;
|
|
103
|
+
/**
|
|
104
|
+
* The provider name to give a `credentials-n` backend (`-m <name>/<model>`,
|
|
105
|
+
* `GOOSE_PROVIDER`).
|
|
106
|
+
*
|
|
107
|
+
* A stock catalog endpoint is named by its preset, because that is the name
|
|
108
|
+
* OpenCode's models.dev list and Goose's built-in provider table already use —
|
|
109
|
+
* `prod-claude: {preset: anthropic}` is still Anthropic to them. An entry with
|
|
110
|
+
* an endpoint of its own is named by its registry id: no built-in table knows
|
|
111
|
+
* it, so the id is what its generated provider file is keyed by (the file half
|
|
112
|
+
* of §2.3).
|
|
113
|
+
*/
|
|
114
|
+
export declare function backendProviderName(providerId: string, entry: AIProviderLlmEntry): string;
|
|
115
|
+
/**
|
|
116
|
+
* Enabled `llm`/`embed` entries, in registry order. Also the set the file
|
|
117
|
+
* adapters render (`opencode-config.ts`, `goose-custom-providers.ts`,
|
|
118
|
+
* `continue-config-yaml.ts`): the env half and the file half must agree on
|
|
119
|
+
* which entries exist before they can agree on what to call them.
|
|
120
|
+
*/
|
|
121
|
+
export declare function selectableEntries(registry: MergedAIProviderRegistry): Array<[string, AIProviderLlmEntry]>;
|
|
122
|
+
/**
|
|
123
|
+
* The provider-side model ids an entry declares, as `[logicalId, providerId]`
|
|
124
|
+
* pairs in declaration order: every `model_map` entry, plus every
|
|
125
|
+
* `capabilities` key the map does not rename.
|
|
126
|
+
*/
|
|
127
|
+
export declare function entryModelIds(entry: AIProviderLlmEntry): Array<[string, string]>;
|
|
128
|
+
/**
|
|
129
|
+
* Resolve the session's endpoint + model.
|
|
130
|
+
*
|
|
131
|
+
* With no selector the first entry in registry order wins and the backend
|
|
132
|
+
* keeps its own default model — exactly what an absent `model` meant before
|
|
133
|
+
* the registry existed. Returns `undefined` when no entry can serve a model
|
|
134
|
+
* (an empty, fully-disabled or voice-only registry).
|
|
135
|
+
*/
|
|
136
|
+
export declare function resolveRegistryBinding(session: EnvDriverSession): RegistryModelBinding | undefined;
|
|
137
|
+
/**
|
|
138
|
+
* Every credential a `credentials-n` backend may use: one variable per
|
|
139
|
+
* enabled registry entry. OpenCode, Goose and Continue have always received
|
|
140
|
+
* *all* of them, not just the selected endpoint's, because they route across
|
|
141
|
+
* providers inside a single session.
|
|
142
|
+
*/
|
|
143
|
+
export declare function credentialsForEveryProvider(session: EnvDriverSession): Record<string, string>;
|
|
144
|
+
/**
|
|
145
|
+
* Throw when the bound entry speaks a wire surface this driver cannot.
|
|
146
|
+
*
|
|
147
|
+
* The message names the offending surface and lists the ones the backend does
|
|
148
|
+
* speak (`BUILTIN_DRIVER_CATALOG[driverId].surfaces`). An entry that declares
|
|
149
|
+
* no surface and names no preset is not judged — there is nothing to compare.
|
|
150
|
+
*/
|
|
151
|
+
export declare function assertDriverSpeaksSurface(driverId: string, productName: string, binding: RegistryModelBinding): void;
|
|
152
|
+
/**
|
|
153
|
+
* The models a `credentials-n` backend can be pointed at, straight from the
|
|
154
|
+
* registry: every enabled entry's mapped ids, namespaced the way the backend
|
|
155
|
+
* takes them (`-m <provider>/<model>`).
|
|
156
|
+
*
|
|
157
|
+
* These backends have no model-list endpoint of their own — OpenCode reads
|
|
158
|
+
* models.dev, Goose and Continue read their config — so the registry is the
|
|
159
|
+
* only list that describes *this* session's reachable models, and it needs no
|
|
160
|
+
* network call to produce.
|
|
161
|
+
*/
|
|
162
|
+
export declare function registryModelEntries(session: EnvDriverSession): ModelEntry[];
|
|
163
|
+
/**
|
|
164
|
+
* Resolve the binding and enforce the surface — what a `single`-plurality
|
|
165
|
+
* driver does at start.
|
|
166
|
+
*
|
|
167
|
+
* The registry is authoritative: pointing the driver at an entry it cannot
|
|
168
|
+
* speak throws rather than silently running somewhere else. `undefined` when
|
|
169
|
+
* the session configured no endpoint at all, which leaves the driver on its
|
|
170
|
+
* own native auth.
|
|
171
|
+
*/
|
|
172
|
+
export declare function bindSingleProviderEntry(driverId: string, productName: string, session: EnvDriverSession): RegistryModelBinding | undefined;
|
|
173
|
+
/**
|
|
174
|
+
* The `<provider>/<model>` selector a `credentials-n` backend takes on its
|
|
175
|
+
* command line (`opencode -m`). `undefined` when no model was selected — the
|
|
176
|
+
* backend then uses its own default rather than being handed a bare provider.
|
|
177
|
+
*/
|
|
178
|
+
export declare function backendModelSelector(binding: RegistryModelBinding): string | undefined;
|
|
179
|
+
/**
|
|
180
|
+
* Continue's model selection is a **role binding**, not a flag: `cn` has no
|
|
181
|
+
* `--model` option (only `--config <slug>`), and its `config.yaml` binds each
|
|
182
|
+
* model to roles (`chat`, `edit`, `apply`, …). This is the binding for the
|
|
183
|
+
* role a headless `cn -p` turn runs as, and the shape its generated
|
|
184
|
+
* `config.yaml` is rendered from.
|
|
185
|
+
*
|
|
186
|
+
* `apiKeyEnv` is a variable *name*: the secret travels in the child
|
|
187
|
+
* environment, never in a rendered config.
|
|
188
|
+
*/
|
|
189
|
+
export interface ContinueRoleBinding {
|
|
190
|
+
/** Continue role this model serves. A headless prompt is a `chat` turn. */
|
|
191
|
+
role: "chat";
|
|
192
|
+
/** Registry id of the entry. */
|
|
193
|
+
providerId: string;
|
|
194
|
+
/** Provider name Continue knows the endpoint by. */
|
|
195
|
+
provider: string;
|
|
196
|
+
/** Provider-side model id. */
|
|
197
|
+
model?: string;
|
|
198
|
+
/** Endpoint, when the entry states one. */
|
|
199
|
+
apiBase?: string;
|
|
200
|
+
/** Env var holding the credential — the name, never the value. */
|
|
201
|
+
apiKeyEnv: string;
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Map the session's chosen endpoint onto the Continue role a headless turn
|
|
205
|
+
* runs as. `undefined` when the session configured no endpoint — `cn` then
|
|
206
|
+
* runs against whatever its own `config.yaml` / Hub login provides.
|
|
207
|
+
*/
|
|
208
|
+
export declare function continueRoleBinding(session: EnvDriverSession): ContinueRoleBinding | undefined;
|
|
209
|
+
//# sourceMappingURL=env-drivers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env-drivers.d.ts","sourceRoot":"","sources":["../../../../bridge/src/provider-materialize/env-drivers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Goose's `custom_providers/*.json` adapter — the file half of the Goose row
|
|
3
|
+
* (§2.3).
|
|
4
|
+
*
|
|
5
|
+
* `GOOSE_PROVIDER` can only name a provider Goose already has: one of its
|
|
6
|
+
* built-in Rust providers, or one of the JSON *declarative* providers it loads
|
|
7
|
+
* from `<config dir>/custom_providers/`. An endpoint of the session's own is
|
|
8
|
+
* therefore a file — one per entry, named after the entry, in Goose's own
|
|
9
|
+
* vocabulary:
|
|
10
|
+
*
|
|
11
|
+
* ```json
|
|
12
|
+
* {
|
|
13
|
+
* "name": "corp-gateway",
|
|
14
|
+
* "engine": "openai",
|
|
15
|
+
* "display_name": "Corp Gateway",
|
|
16
|
+
* "api_key_env": "SKAILE_AIP_CORP_GATEWAY_KEY",
|
|
17
|
+
* "base_url": "https://llm.corp.example/v1",
|
|
18
|
+
* "models": [{ "name": "corp-fast-1" }],
|
|
19
|
+
* "requires_auth": true
|
|
20
|
+
* }
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* `name` is {@link backendProviderName}, so the id in the file is the one the
|
|
24
|
+
* env half already puts in `GOOSE_PROVIDER`. `api_key_env` is a variable
|
|
25
|
+
* *name*: Goose resolves it from the child environment (its config layer reads
|
|
26
|
+
* the process environment first), so no secret is ever written.
|
|
27
|
+
*
|
|
28
|
+
* **Engines.** A declarative provider is one of three engines — `openai`,
|
|
29
|
+
* `anthropic`, `ollama` — each a request shape, not a vendor. Only the two
|
|
30
|
+
* surfaces that map onto one are rendered; `google-generative-ai` and
|
|
31
|
+
* `bedrock-converse-stream` are built-in Goose providers with no declarative
|
|
32
|
+
* spelling, so an entry on those surfaces is reported instead of guessed at.
|
|
33
|
+
*
|
|
34
|
+
* **Config home.** Goose resolves its config, data and state directories from
|
|
35
|
+
* one variable, `GOOSE_PATH_ROOT`, so a session that renders anything moves
|
|
36
|
+
* the whole tree and never touches the developer's own — neither reading it
|
|
37
|
+
* nor writing to it.
|
|
38
|
+
*
|
|
39
|
+
* @see https://block.github.io/goose/docs/guides/custom-providers
|
|
40
|
+
* @docLink packages/bridge/drivers#one-shot-cli-drivers-gemini-qwen-opencode-goose-continue
|
|
41
|
+
*/
|
|
42
|
+
import type { AIProviderLlmEntry } from "@skaile/workspaces/core/provider-registry";
|
|
43
|
+
import { type EnvDriverSession } from "./env-drivers.js";
|
|
44
|
+
/** Directory, relative to `GOOSE_PATH_ROOT`, Goose reads its config from. */
|
|
45
|
+
export declare const GOOSE_CONFIG_DIRNAME = "config";
|
|
46
|
+
/** Directory, relative to the config dir, declarative providers are loaded from. */
|
|
47
|
+
export declare const GOOSE_CUSTOM_PROVIDERS_DIRNAME = "custom_providers";
|
|
48
|
+
/** One entry of a declarative provider's `models[]`. */
|
|
49
|
+
export interface GooseModelEntry {
|
|
50
|
+
name: string;
|
|
51
|
+
context_limit?: number;
|
|
52
|
+
}
|
|
53
|
+
/** One `custom_providers/<id>.json` document. */
|
|
54
|
+
export interface GooseCustomProvider {
|
|
55
|
+
/** Provider id — what `GOOSE_PROVIDER` names. Must equal the file stem. */
|
|
56
|
+
name: string;
|
|
57
|
+
engine: string;
|
|
58
|
+
display_name: string;
|
|
59
|
+
/** Name of the variable carrying the credential — never the credential. */
|
|
60
|
+
api_key_env?: string;
|
|
61
|
+
base_url: string;
|
|
62
|
+
models: GooseModelEntry[];
|
|
63
|
+
headers?: Record<string, string>;
|
|
64
|
+
supports_streaming?: boolean;
|
|
65
|
+
requires_auth: boolean;
|
|
66
|
+
/**
|
|
67
|
+
* `false` keeps Goose on the static `models[]` instead of probing
|
|
68
|
+
* `<base>/v1/models`; only meaningful with a non-empty list.
|
|
69
|
+
*/
|
|
70
|
+
dynamic_models?: boolean;
|
|
71
|
+
}
|
|
72
|
+
/** An entry Goose cannot be taught, and why. */
|
|
73
|
+
export interface GooseSkippedEntry {
|
|
74
|
+
id: string;
|
|
75
|
+
reason: string;
|
|
76
|
+
}
|
|
77
|
+
/** Result of {@link buildGooseCustomProviders}. */
|
|
78
|
+
export interface GooseCustomProvidersBuild {
|
|
79
|
+
/** Provider id → its document, in registry order. */
|
|
80
|
+
providers: Record<string, GooseCustomProvider>;
|
|
81
|
+
skipped: GooseSkippedEntry[];
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Render one entry as a declarative provider, or explain why Goose cannot load
|
|
85
|
+
* it.
|
|
86
|
+
*/
|
|
87
|
+
export declare function renderGooseCustomProvider(providerId: string, entry: AIProviderLlmEntry): {
|
|
88
|
+
provider: GooseCustomProvider;
|
|
89
|
+
} | {
|
|
90
|
+
skipped: string;
|
|
91
|
+
};
|
|
92
|
+
/**
|
|
93
|
+
* Build one declarative provider per entry Goose cannot name on its own.
|
|
94
|
+
*
|
|
95
|
+
* The selected model is appended to its provider's `models[]` when the
|
|
96
|
+
* registry did not enumerate it, so `GOOSE_MODEL` always names something the
|
|
97
|
+
* file declares. A provider with a static list gets `dynamic_models: false` —
|
|
98
|
+
* without it Goose probes `<base>/v1/models` on every run, which a gateway
|
|
99
|
+
* that serves only completions answers with an error.
|
|
100
|
+
*
|
|
101
|
+
* An empty registry renders nothing — Goose's built-in provider table
|
|
102
|
+
* already covers every stock catalog endpoint.
|
|
103
|
+
*/
|
|
104
|
+
export declare function buildGooseCustomProviders(session: EnvDriverSession): GooseCustomProvidersBuild;
|
|
105
|
+
/** What {@link materializeGooseCustomProviders} handed the driver. */
|
|
106
|
+
export interface GooseMaterialization extends GooseCustomProvidersBuild {
|
|
107
|
+
/** Child env fragment: `GOOSE_PATH_ROOT`, or empty when nothing was written. */
|
|
108
|
+
env: Record<string, string>;
|
|
109
|
+
/** Absolute paths of the rendered provider files. */
|
|
110
|
+
paths: string[];
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Render the session's custom endpoints and point the child at them.
|
|
114
|
+
*
|
|
115
|
+
* A session whose every endpoint is a Goose built-in writes nothing and
|
|
116
|
+
* leaves `GOOSE_PATH_ROOT` unset, so the developer's own Goose tree keeps
|
|
117
|
+
* working exactly as before. Once anything *is* rendered the whole tree moves
|
|
118
|
+
* — config, data and state together, because Goose derives all three from
|
|
119
|
+
* that one variable — and the session stops inheriting the developer's Goose
|
|
120
|
+
* settings along with their config directory. That is the price of never
|
|
121
|
+
* reading or writing it.
|
|
122
|
+
*/
|
|
123
|
+
export declare function materializeGooseCustomProviders(session: EnvDriverSession, config: {
|
|
124
|
+
cwd: string;
|
|
125
|
+
sessionId?: string;
|
|
126
|
+
}): GooseMaterialization;
|
|
127
|
+
//# sourceMappingURL=goose-custom-providers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"goose-custom-providers.d.ts","sourceRoot":"","sources":["../../../../bridge/src/provider-materialize/goose-custom-providers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAGH,OAAO,KAAK,EACV,kBAAkB,EAEnB,MAAM,2CAA2C,CAAC;AAEnD,OAAO,EAIL,KAAK,gBAAgB,EAItB,MAAM,kBAAkB,CAAC;AAwB1B,6EAA6E;AAC7E,eAAO,MAAM,oBAAoB,WAAW,CAAC;AAE7C,oFAAoF;AACpF,eAAO,MAAM,8BAA8B,qBAAqB,CAAC;AAEjE,wDAAwD;AACxD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,iDAAiD;AACjD,MAAM,WAAW,mBAAmB;IAClC,2EAA2E;IAC3E,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,2EAA2E;IAC3E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,aAAa,EAAE,OAAO,CAAC;IACvB;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,gDAAgD;AAChD,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,mDAAmD;AACnD,MAAM,WAAW,yBAAyB;IACxC,qDAAqD;IACrD,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAC/C,OAAO,EAAE,iBAAiB,EAAE,CAAC;CAC9B;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,kBAAkB,GACxB;IAAE,QAAQ,EAAE,mBAAmB,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CA2CzD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,gBAAgB,GAAG,yBAAyB,CA6B9F;AAED,sEAAsE;AACtE,MAAM,WAAW,oBAAqB,SAAQ,yBAAyB;IACrE,gFAAgF;IAChF,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,qDAAqD;IACrD,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAC1C,oBAAoB,CAmBtB"}
|