managed-deepagents 0.4.2 → 0.4.3-dev.95
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/README.md +78 -35
- package/dist/channels/assistant-text.js +1 -1
- package/dist/channels/assistant-text.js.map +1 -1
- package/dist/channels/binding.d.ts.map +1 -1
- package/dist/channels/binding.js +3 -1
- package/dist/channels/binding.js.map +1 -1
- package/dist/channels/index.d.ts +7 -8
- package/dist/channels/index.d.ts.map +1 -1
- package/dist/channels/index.js +6 -5
- package/dist/channels/index.js.map +1 -1
- package/dist/channels/manifest.d.ts +7 -4
- package/dist/channels/manifest.d.ts.map +1 -1
- package/dist/channels/messaging-registry.d.ts +21 -0
- package/dist/channels/messaging-registry.d.ts.map +1 -0
- package/dist/channels/messaging-registry.js +50 -0
- package/dist/channels/messaging-registry.js.map +1 -0
- package/dist/channels/registry-types.d.ts +1 -1
- package/dist/channels/registry.d.ts +4 -3
- package/dist/channels/registry.d.ts.map +1 -1
- package/dist/channels/registry.js +5 -6
- package/dist/channels/registry.js.map +1 -1
- package/dist/channels/schedule-delivery.d.ts +4 -1
- package/dist/channels/schedule-delivery.d.ts.map +1 -1
- package/dist/channels/schedule-delivery.js +3 -1
- package/dist/channels/schedule-delivery.js.map +1 -1
- package/dist/channels/slack/adapter.d.ts +1 -2
- package/dist/channels/slack/adapter.d.ts.map +1 -1
- package/dist/channels/slack/adapter.js +0 -2
- package/dist/channels/slack/adapter.js.map +1 -1
- package/dist/channels/slack/http.d.ts +7 -39
- package/dist/channels/slack/http.d.ts.map +1 -1
- package/dist/channels/slack/http.js +64 -122
- package/dist/channels/slack/http.js.map +1 -1
- package/dist/channels/slack/index.d.ts +94 -8
- package/dist/channels/slack/index.d.ts.map +1 -1
- package/dist/channels/slack/index.js +144 -6
- package/dist/channels/slack/index.js.map +1 -1
- package/dist/channels/slack/normalize.d.ts +6 -4
- package/dist/channels/slack/normalize.d.ts.map +1 -1
- package/dist/channels/slack/normalize.js +61 -28
- package/dist/channels/slack/normalize.js.map +1 -1
- package/dist/channels/slack/transport.d.ts.map +1 -1
- package/dist/channels/slack/transport.js +3 -2
- package/dist/channels/slack/transport.js.map +1 -1
- package/dist/channels/store.d.ts +14 -0
- package/dist/channels/store.d.ts.map +1 -1
- package/dist/channels/store.js +41 -27
- package/dist/channels/store.js.map +1 -1
- package/dist/connectors/marketplace/catalog.d.ts +96 -0
- package/dist/connectors/marketplace/catalog.d.ts.map +1 -0
- package/dist/connectors/marketplace/catalog.js +213 -0
- package/dist/connectors/marketplace/catalog.js.map +1 -0
- package/dist/connectors/marketplace/fleet-mcp.d.ts +62 -0
- package/dist/connectors/marketplace/fleet-mcp.d.ts.map +1 -0
- package/dist/connectors/marketplace/fleet-mcp.js +215 -0
- package/dist/connectors/marketplace/fleet-mcp.js.map +1 -0
- package/dist/connectors/marketplace/index.d.ts +31 -0
- package/dist/connectors/marketplace/index.d.ts.map +1 -0
- package/dist/connectors/marketplace/index.js +39 -0
- package/dist/connectors/marketplace/index.js.map +1 -0
- package/dist/connectors/marketplace/load.d.ts +14 -0
- package/dist/connectors/marketplace/load.d.ts.map +1 -0
- package/dist/connectors/marketplace/load.js +206 -0
- package/dist/connectors/marketplace/load.js.map +1 -0
- package/dist/connectors/mcp/index.d.ts +13 -20
- package/dist/connectors/mcp/index.d.ts.map +1 -1
- package/dist/connectors/mcp/index.js +92 -112
- package/dist/connectors/mcp/index.js.map +1 -1
- package/dist/connectors/mcp/load.d.ts.map +1 -1
- package/dist/connectors/mcp/load.js +16 -40
- package/dist/connectors/mcp/load.js.map +1 -1
- package/dist/connectors/slack/index.d.ts +24 -0
- package/dist/connectors/slack/index.d.ts.map +1 -0
- package/dist/connectors/slack/index.js +64 -0
- package/dist/connectors/slack/index.js.map +1 -0
- package/dist/connectors/tool-selection.d.ts +55 -0
- package/dist/connectors/tool-selection.d.ts.map +1 -0
- package/dist/connectors/tool-selection.js +112 -0
- package/dist/connectors/tool-selection.js.map +1 -0
- package/dist/connectors/toolserver/catalog.d.ts +326 -0
- package/dist/connectors/toolserver/catalog.d.ts.map +1 -0
- package/dist/connectors/toolserver/catalog.js +415 -0
- package/dist/connectors/toolserver/catalog.js.map +1 -0
- package/dist/connectors/toolserver/connectors.d.ts +698 -0
- package/dist/connectors/toolserver/connectors.d.ts.map +1 -0
- package/dist/connectors/toolserver/connectors.js +13 -0
- package/dist/connectors/toolserver/connectors.js.map +1 -0
- package/dist/connectors/toolserver/index.d.ts +142 -0
- package/dist/connectors/toolserver/index.d.ts.map +1 -0
- package/dist/connectors/toolserver/index.js +105 -0
- package/dist/connectors/toolserver/index.js.map +1 -0
- package/dist/connectors/toolserver/integrations.d.ts +103 -0
- package/dist/connectors/toolserver/integrations.d.ts.map +1 -0
- package/dist/connectors/toolserver/integrations.js +288 -0
- package/dist/connectors/toolserver/integrations.js.map +1 -0
- package/dist/connectors/toolserver/load.d.ts +55 -0
- package/dist/connectors/toolserver/load.d.ts.map +1 -0
- package/dist/connectors/toolserver/load.js +289 -0
- package/dist/connectors/toolserver/load.js.map +1 -0
- package/dist/define-deep-agent.d.ts.map +1 -1
- package/dist/define-deep-agent.js +9 -3
- package/dist/define-deep-agent.js.map +1 -1
- package/dist/extension.d.ts +69 -0
- package/dist/extension.d.ts.map +1 -0
- package/dist/extension.js +108 -0
- package/dist/extension.js.map +1 -0
- package/dist/identity/actor-subject.d.ts +60 -0
- package/dist/identity/actor-subject.d.ts.map +1 -0
- package/dist/identity/actor-subject.js +107 -0
- package/dist/identity/actor-subject.js.map +1 -0
- package/dist/identity/byo-oauth.d.ts +105 -0
- package/dist/identity/byo-oauth.d.ts.map +1 -0
- package/dist/identity/byo-oauth.js +190 -0
- package/dist/identity/byo-oauth.js.map +1 -0
- package/dist/identity/claims.d.ts +16 -0
- package/dist/identity/claims.d.ts.map +1 -0
- package/dist/identity/claims.js +33 -0
- package/dist/identity/claims.js.map +1 -0
- package/dist/identity/connect-inference.d.ts +37 -0
- package/dist/identity/connect-inference.d.ts.map +1 -0
- package/dist/identity/connect-inference.js +53 -0
- package/dist/identity/connect-inference.js.map +1 -0
- package/dist/identity/connect-provider-types.d.ts +35 -6
- package/dist/identity/connect-provider-types.d.ts.map +1 -1
- package/dist/identity/connect-provider-types.js +3 -1
- package/dist/identity/connect-provider-types.js.map +1 -1
- package/dist/identity/connect-provider.d.ts +9 -4
- package/dist/identity/connect-provider.d.ts.map +1 -1
- package/dist/identity/connect-provider.js +39 -13
- package/dist/identity/connect-provider.js.map +1 -1
- package/dist/identity/credential-resolvers.d.ts +33 -0
- package/dist/identity/credential-resolvers.d.ts.map +1 -0
- package/dist/identity/credential-resolvers.js +62 -0
- package/dist/identity/credential-resolvers.js.map +1 -0
- package/dist/identity/define-fleet-connect.d.ts +53 -0
- package/dist/identity/define-fleet-connect.d.ts.map +1 -0
- package/dist/identity/define-fleet-connect.js +76 -0
- package/dist/identity/define-fleet-connect.js.map +1 -0
- package/dist/identity/fleet-connect-hint.d.ts +41 -0
- package/dist/identity/fleet-connect-hint.d.ts.map +1 -0
- package/dist/identity/fleet-connect-hint.js +190 -0
- package/dist/identity/fleet-connect-hint.js.map +1 -0
- package/dist/identity/fleet-connect.d.ts +93 -0
- package/dist/identity/fleet-connect.d.ts.map +1 -0
- package/dist/identity/fleet-connect.js +256 -0
- package/dist/identity/fleet-connect.js.map +1 -0
- package/dist/identity/fleet-integration-connect.d.ts +32 -0
- package/dist/identity/fleet-integration-connect.d.ts.map +1 -0
- package/dist/identity/fleet-integration-connect.js +35 -0
- package/dist/identity/fleet-integration-connect.js.map +1 -0
- package/dist/identity/fleet.d.ts +56 -0
- package/dist/identity/fleet.d.ts.map +1 -0
- package/dist/identity/fleet.js +131 -0
- package/dist/identity/fleet.js.map +1 -0
- package/dist/identity/github/connect-http.d.ts +8 -4
- package/dist/identity/github/connect-http.d.ts.map +1 -1
- package/dist/identity/github/connect-http.js +32 -15
- package/dist/identity/github/connect-http.js.map +1 -1
- package/dist/identity/github/credentials-store.d.ts +10 -10
- package/dist/identity/github/credentials-store.d.ts.map +1 -1
- package/dist/identity/github/credentials-store.js +62 -49
- package/dist/identity/github/credentials-store.js.map +1 -1
- package/dist/identity/github/credentials.d.ts +16 -13
- package/dist/identity/github/credentials.d.ts.map +1 -1
- package/dist/identity/github/credentials.js +43 -23
- package/dist/identity/github/credentials.js.map +1 -1
- package/dist/identity/github/index.d.ts +1 -4
- package/dist/identity/github/index.d.ts.map +1 -1
- package/dist/identity/github/index.js +0 -3
- package/dist/identity/github/index.js.map +1 -1
- package/dist/identity/github/oauth.d.ts +18 -20
- package/dist/identity/github/oauth.d.ts.map +1 -1
- package/dist/identity/github/oauth.js +90 -109
- package/dist/identity/github/oauth.js.map +1 -1
- package/dist/identity/google/connect-http.d.ts +37 -0
- package/dist/identity/google/connect-http.d.ts.map +1 -0
- package/dist/identity/google/connect-http.js +42 -0
- package/dist/identity/google/connect-http.js.map +1 -0
- package/dist/identity/google/index.d.ts +7 -0
- package/dist/identity/google/index.d.ts.map +1 -0
- package/dist/identity/google/index.js +6 -0
- package/dist/identity/google/index.js.map +1 -0
- package/dist/identity/google/oauth.d.ts +22 -0
- package/dist/identity/google/oauth.d.ts.map +1 -0
- package/dist/identity/google/oauth.js +48 -0
- package/dist/identity/google/oauth.js.map +1 -0
- package/dist/identity/index.d.ts +40 -64
- package/dist/identity/index.d.ts.map +1 -1
- package/dist/identity/index.js +104 -243
- package/dist/identity/index.js.map +1 -1
- package/dist/identity/linkedin/connect-http.d.ts +37 -0
- package/dist/identity/linkedin/connect-http.d.ts.map +1 -0
- package/dist/identity/linkedin/connect-http.js +41 -0
- package/dist/identity/linkedin/connect-http.js.map +1 -0
- package/dist/identity/linkedin/index.d.ts +7 -0
- package/dist/identity/linkedin/index.d.ts.map +1 -0
- package/dist/identity/linkedin/index.js +6 -0
- package/dist/identity/linkedin/index.js.map +1 -0
- package/dist/identity/linkedin/oauth.d.ts +22 -0
- package/dist/identity/linkedin/oauth.d.ts.map +1 -0
- package/dist/identity/linkedin/oauth.js +47 -0
- package/dist/identity/linkedin/oauth.js.map +1 -0
- package/dist/identity/loopback.d.ts +27 -2
- package/dist/identity/loopback.d.ts.map +1 -1
- package/dist/identity/loopback.js +61 -8
- package/dist/identity/loopback.js.map +1 -1
- package/dist/identity/marketplace/connect-hint.d.ts +31 -0
- package/dist/identity/marketplace/connect-hint.d.ts.map +1 -0
- package/dist/identity/marketplace/connect-hint.js +59 -0
- package/dist/identity/marketplace/connect-hint.js.map +1 -0
- package/dist/identity/marketplace/connect.d.ts +51 -0
- package/dist/identity/marketplace/connect.d.ts.map +1 -0
- package/dist/identity/marketplace/connect.js +88 -0
- package/dist/identity/marketplace/connect.js.map +1 -0
- package/dist/identity/marketplace/index.d.ts +9 -0
- package/dist/identity/marketplace/index.d.ts.map +1 -0
- package/dist/identity/marketplace/index.js +9 -0
- package/dist/identity/marketplace/index.js.map +1 -0
- package/dist/identity/microsoft/connect-http.d.ts +38 -0
- package/dist/identity/microsoft/connect-http.d.ts.map +1 -0
- package/dist/identity/microsoft/connect-http.js +42 -0
- package/dist/identity/microsoft/connect-http.js.map +1 -0
- package/dist/identity/microsoft/index.d.ts +7 -0
- package/dist/identity/microsoft/index.d.ts.map +1 -0
- package/dist/identity/microsoft/index.js +6 -0
- package/dist/identity/microsoft/index.js.map +1 -0
- package/dist/identity/microsoft/oauth.d.ts +24 -0
- package/dist/identity/microsoft/oauth.d.ts.map +1 -0
- package/dist/identity/microsoft/oauth.js +65 -0
- package/dist/identity/microsoft/oauth.js.map +1 -0
- package/dist/identity/oauth-env.d.ts +43 -0
- package/dist/identity/oauth-env.d.ts.map +1 -0
- package/dist/identity/oauth-env.js +66 -0
- package/dist/identity/oauth-env.js.map +1 -0
- package/dist/identity/oauth-tickets.d.ts +37 -0
- package/dist/identity/oauth-tickets.d.ts.map +1 -0
- package/dist/identity/oauth-tickets.js +114 -0
- package/dist/identity/oauth-tickets.js.map +1 -0
- package/dist/identity/options.d.ts +35 -0
- package/dist/identity/options.d.ts.map +1 -0
- package/dist/identity/options.js +80 -0
- package/dist/identity/options.js.map +1 -0
- package/dist/identity/slack/connect-http.d.ts +6 -4
- package/dist/identity/slack/connect-http.d.ts.map +1 -1
- package/dist/identity/slack/connect-http.js +27 -17
- package/dist/identity/slack/connect-http.js.map +1 -1
- package/dist/identity/slack/index.d.ts +1 -2
- package/dist/identity/slack/index.d.ts.map +1 -1
- package/dist/identity/slack/index.js +1 -2
- package/dist/identity/slack/index.js.map +1 -1
- package/dist/identity/slack/links.d.ts +18 -17
- package/dist/identity/slack/links.d.ts.map +1 -1
- package/dist/identity/slack/links.js +75 -61
- package/dist/identity/slack/links.js.map +1 -1
- package/dist/identity/slack/oauth.d.ts +3 -35
- package/dist/identity/slack/oauth.d.ts.map +1 -1
- package/dist/identity/slack/oauth.js +9 -115
- package/dist/identity/slack/oauth.js.map +1 -1
- package/dist/identity/supabase.js +9 -9
- package/dist/identity/supabase.js.map +1 -1
- package/dist/identity/types.d.ts +91 -54
- package/dist/identity/types.d.ts.map +1 -1
- package/dist/identity/x/connect-http.d.ts +38 -0
- package/dist/identity/x/connect-http.d.ts.map +1 -0
- package/dist/identity/x/connect-http.js +41 -0
- package/dist/identity/x/connect-http.js.map +1 -0
- package/dist/identity/x/index.d.ts +6 -0
- package/dist/identity/x/index.d.ts.map +1 -0
- package/dist/identity/x/index.js +5 -0
- package/dist/identity/x/index.js.map +1 -0
- package/dist/index.d.ts +9 -20
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -11
- package/dist/index.js.map +1 -1
- package/dist/ingress/index.d.ts +52 -0
- package/dist/ingress/index.d.ts.map +1 -0
- package/dist/ingress/index.js +139 -0
- package/dist/ingress/index.js.map +1 -0
- package/dist/memory/define-memory.d.ts +39 -0
- package/dist/memory/define-memory.d.ts.map +1 -0
- package/dist/memory/define-memory.js +78 -0
- package/dist/memory/define-memory.js.map +1 -0
- package/dist/memory/index.d.ts +9 -0
- package/dist/memory/index.d.ts.map +1 -0
- package/dist/memory/index.js +8 -0
- package/dist/memory/index.js.map +1 -0
- package/dist/memory/instructions-middleware.d.ts +74 -0
- package/dist/memory/instructions-middleware.d.ts.map +1 -0
- package/dist/memory/instructions-middleware.js +115 -0
- package/dist/memory/instructions-middleware.js.map +1 -0
- package/dist/memory/slices.d.ts +21 -0
- package/dist/memory/slices.d.ts.map +1 -0
- package/dist/memory/slices.js +61 -0
- package/dist/memory/slices.js.map +1 -0
- package/dist/memory/types.d.ts +71 -0
- package/dist/memory/types.d.ts.map +1 -0
- package/dist/memory/types.js +10 -0
- package/dist/memory/types.js.map +1 -0
- package/dist/namespaces.d.ts +262 -0
- package/dist/namespaces.d.ts.map +1 -0
- package/dist/namespaces.js +101 -0
- package/dist/namespaces.js.map +1 -0
- package/dist/runtime/auth.d.ts +46 -32
- package/dist/runtime/auth.d.ts.map +1 -1
- package/dist/runtime/auth.js +234 -125
- package/dist/runtime/auth.js.map +1 -1
- package/dist/runtime/backend.d.ts +1 -1
- package/dist/runtime/backend.d.ts.map +1 -1
- package/dist/runtime/backend.js +26 -5
- package/dist/runtime/backend.js.map +1 -1
- package/dist/runtime/channel.d.ts +91 -0
- package/dist/runtime/channel.d.ts.map +1 -0
- package/dist/runtime/channel.js +98 -0
- package/dist/runtime/channel.js.map +1 -0
- package/dist/runtime/connector.d.ts +66 -23
- package/dist/runtime/connector.d.ts.map +1 -1
- package/dist/runtime/connector.js +67 -27
- package/dist/runtime/connector.js.map +1 -1
- package/dist/runtime/cors.d.ts +12 -3
- package/dist/runtime/cors.d.ts.map +1 -1
- package/dist/runtime/cors.js +23 -5
- package/dist/runtime/cors.js.map +1 -1
- package/dist/runtime/credentials.d.ts +8 -8
- package/dist/runtime/credentials.d.ts.map +1 -1
- package/dist/runtime/credentials.js +46 -23
- package/dist/runtime/credentials.js.map +1 -1
- package/dist/runtime/http.d.ts +46 -0
- package/dist/runtime/http.d.ts.map +1 -0
- package/dist/runtime/http.js +53 -0
- package/dist/runtime/http.js.map +1 -0
- package/dist/runtime/identity-http.d.ts +13 -20
- package/dist/runtime/identity-http.d.ts.map +1 -1
- package/dist/runtime/identity-http.js +158 -75
- package/dist/runtime/identity-http.js.map +1 -1
- package/dist/runtime/identity-runtime.d.ts +12 -28
- package/dist/runtime/identity-runtime.d.ts.map +1 -1
- package/dist/runtime/identity-runtime.js +35 -72
- package/dist/runtime/identity-runtime.js.map +1 -1
- package/dist/runtime/index.d.ts +89 -225
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/index.js +92 -61
- package/dist/runtime/index.js.map +1 -1
- package/dist/runtime/memory/index.d.ts +0 -2
- package/dist/runtime/memory/index.d.ts.map +1 -1
- package/dist/runtime/memory/index.js +0 -2
- package/dist/runtime/memory/index.js.map +1 -1
- package/dist/runtime/memory/mounts.d.ts +4 -12
- package/dist/runtime/memory/mounts.d.ts.map +1 -1
- package/dist/runtime/memory/mounts.js +9 -20
- package/dist/runtime/memory/mounts.js.map +1 -1
- package/dist/runtime/recursion-limit.d.ts +22 -0
- package/dist/runtime/recursion-limit.d.ts.map +1 -0
- package/dist/runtime/recursion-limit.js +46 -0
- package/dist/runtime/recursion-limit.js.map +1 -0
- package/dist/runtime/sandbox-manager.d.ts +60 -3
- package/dist/runtime/sandbox-manager.d.ts.map +1 -1
- package/dist/runtime/sandbox-manager.js +326 -26
- package/dist/runtime/sandbox-manager.js.map +1 -1
- package/dist/runtime/sandbox-stream-retry.d.ts +18 -0
- package/dist/runtime/sandbox-stream-retry.d.ts.map +1 -0
- package/dist/runtime/sandbox-stream-retry.js +90 -0
- package/dist/runtime/sandbox-stream-retry.js.map +1 -0
- package/dist/runtime/setup-script.d.ts.map +1 -1
- package/dist/runtime/setup-script.js +16 -2
- package/dist/runtime/setup-script.js.map +1 -1
- package/dist/runtime/types.d.ts +16 -0
- package/dist/runtime/types.d.ts.map +1 -1
- package/dist/runtime/validated-token.d.ts +9 -14
- package/dist/runtime/validated-token.d.ts.map +1 -1
- package/dist/runtime/validated-token.js +79 -106
- package/dist/runtime/validated-token.js.map +1 -1
- package/dist/sandbox.d.ts +17 -42
- package/dist/sandbox.d.ts.map +1 -1
- package/dist/sandbox.js +11 -32
- package/dist/sandbox.js.map +1 -1
- package/dist/schedules.js +8 -9
- package/dist/schedules.js.map +1 -1
- package/dist/types.d.ts +4 -3
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +22 -29
- package/dist/channels/collect.d.ts +0 -26
- package/dist/channels/collect.d.ts.map +0 -1
- package/dist/channels/collect.js +0 -42
- package/dist/channels/collect.js.map +0 -1
- package/dist/channels/github/adapter-core.d.ts +0 -6
- package/dist/channels/github/adapter-core.d.ts.map +0 -1
- package/dist/channels/github/adapter-core.js +0 -27
- package/dist/channels/github/adapter-core.js.map +0 -1
- package/dist/channels/github/adapter.d.ts +0 -16
- package/dist/channels/github/adapter.d.ts.map +0 -1
- package/dist/channels/github/adapter.js +0 -52
- package/dist/channels/github/adapter.js.map +0 -1
- package/dist/channels/github/define.d.ts +0 -198
- package/dist/channels/github/define.d.ts.map +0 -1
- package/dist/channels/github/define.js +0 -166
- package/dist/channels/github/define.js.map +0 -1
- package/dist/channels/github/http.d.ts +0 -25
- package/dist/channels/github/http.d.ts.map +0 -1
- package/dist/channels/github/http.js +0 -147
- package/dist/channels/github/http.js.map +0 -1
- package/dist/channels/github/index.d.ts +0 -12
- package/dist/channels/github/index.d.ts.map +0 -1
- package/dist/channels/github/index.js +0 -10
- package/dist/channels/github/index.js.map +0 -1
- package/dist/channels/github/normalize.d.ts +0 -32
- package/dist/channels/github/normalize.d.ts.map +0 -1
- package/dist/channels/github/normalize.js +0 -152
- package/dist/channels/github/normalize.js.map +0 -1
- package/dist/channels/github/source-thread.d.ts +0 -24
- package/dist/channels/github/source-thread.d.ts.map +0 -1
- package/dist/channels/github/source-thread.js +0 -54
- package/dist/channels/github/source-thread.js.map +0 -1
- package/dist/channels/github/transport.d.ts +0 -19
- package/dist/channels/github/transport.d.ts.map +0 -1
- package/dist/channels/github/transport.js +0 -92
- package/dist/channels/github/transport.js.map +0 -1
- package/dist/channels/plugin.d.ts +0 -61
- package/dist/channels/plugin.d.ts.map +0 -1
- package/dist/channels/plugin.js +0 -80
- package/dist/channels/plugin.js.map +0 -1
- package/dist/channels/slack/define.d.ts +0 -74
- package/dist/channels/slack/define.d.ts.map +0 -1
- package/dist/channels/slack/define.js +0 -160
- package/dist/channels/slack/define.js.map +0 -1
- package/dist/connectors/github/index.d.ts +0 -78
- package/dist/connectors/github/index.d.ts.map +0 -1
- package/dist/connectors/github/index.js +0 -106
- package/dist/connectors/github/index.js.map +0 -1
- package/dist/connectors/github/sandbox.d.ts +0 -54
- package/dist/connectors/github/sandbox.d.ts.map +0 -1
- package/dist/connectors/github/sandbox.js +0 -515
- package/dist/connectors/github/sandbox.js.map +0 -1
- package/dist/connectors/langsmith/index.d.ts +0 -385
- package/dist/connectors/langsmith/index.d.ts.map +0 -1
- package/dist/connectors/langsmith/index.js +0 -431
- package/dist/connectors/langsmith/index.js.map +0 -1
- package/dist/connectors/langsmith/routes.d.ts +0 -247
- package/dist/connectors/langsmith/routes.d.ts.map +0 -1
- package/dist/connectors/langsmith/routes.js +0 -1182
- package/dist/connectors/langsmith/routes.js.map +0 -1
- package/dist/runtime/memory/seed.d.ts +0 -21
- package/dist/runtime/memory/seed.d.ts.map +0 -1
- package/dist/runtime/memory/seed.js +0 -160
- package/dist/runtime/memory/seed.js.map +0 -1
- package/dist/runtime/memory/user-repo.d.ts +0 -19
- package/dist/runtime/memory/user-repo.d.ts.map +0 -1
- package/dist/runtime/memory/user-repo.js +0 -57
- package/dist/runtime/memory/user-repo.js.map +0 -1
package/dist/runtime/backend.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* keep their own `configurable` (thread id + actor) without sharing mutable state.
|
|
7
7
|
*/
|
|
8
8
|
import { resolveRuntimeConfigurable } from "./identity-runtime.js";
|
|
9
|
-
import { invalidateManagedSandbox, isTransientSandboxError, resolveManagedSandbox, sandboxScopeKey, } from "./sandbox-manager.js";
|
|
9
|
+
import { invalidateManagedSandbox, isTransientSandboxError, managedSandboxHostName, resolveManagedSandbox, sandboxScopeKey, } from "./sandbox-manager.js";
|
|
10
10
|
/**
|
|
11
11
|
* Process-scoped resolve cache shared by all {@link LazyManagedSandboxBackend}
|
|
12
12
|
* instances created from the same factory (unbound + per-run siblings).
|
|
@@ -42,17 +42,38 @@ class SandboxResolveCache {
|
|
|
42
42
|
}
|
|
43
43
|
async withRetry(deps, config, operation) {
|
|
44
44
|
const key = sandboxScopeKey(deps.sandbox, config);
|
|
45
|
+
let failingId;
|
|
46
|
+
let failingHostName;
|
|
45
47
|
try {
|
|
46
|
-
|
|
48
|
+
const backend = await this.resolve(deps, config);
|
|
49
|
+
failingId =
|
|
50
|
+
typeof backend.id === "string" && backend.id.trim()
|
|
51
|
+
? backend.id.trim()
|
|
52
|
+
: undefined;
|
|
53
|
+
failingHostName = managedSandboxHostName(backend);
|
|
54
|
+
return await operation(backend);
|
|
47
55
|
}
|
|
48
56
|
catch (error) {
|
|
49
57
|
if (this.recreatedScopes.has(key) || !isTransientSandboxError(error)) {
|
|
50
58
|
throw error;
|
|
51
59
|
}
|
|
60
|
+
const label = error instanceof Error
|
|
61
|
+
? `${error.name}: ${error.message}`
|
|
62
|
+
: String(error);
|
|
63
|
+
console.warn(`[mda] sandbox op failed; invalidating and recreating once ` +
|
|
64
|
+
`scope=${JSON.stringify(key)} sandbox_id=${JSON.stringify(failingId ?? null)} ` +
|
|
65
|
+
`err=${label}`);
|
|
52
66
|
this.recreatedScopes.add(key);
|
|
53
|
-
invalidateManagedSandbox(deps.sandbox, config
|
|
54
|
-
|
|
55
|
-
|
|
67
|
+
await invalidateManagedSandbox(deps.sandbox, config, {
|
|
68
|
+
setupScript: deps.setupScript,
|
|
69
|
+
expectedBackendId: failingId,
|
|
70
|
+
expectedHostName: failingHostName,
|
|
71
|
+
});
|
|
72
|
+
const current = this.resolvedByScope.get(key);
|
|
73
|
+
if (!failingId || current?.id === failingId) {
|
|
74
|
+
this.pendingByScope.delete(key);
|
|
75
|
+
this.resolvedByScope.delete(key);
|
|
76
|
+
}
|
|
56
77
|
return await operation(await this.resolve(deps, config));
|
|
57
78
|
}
|
|
58
79
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backend.js","sourceRoot":"","sources":["../../src/runtime/backend.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EACL,wBAAwB,EACxB,uBAAuB,EACvB,qBAAqB,EACrB,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAe9B;;;GAGG;AACH,MAAM,mBAAmB;IACN,cAAc,GAAG,IAAI,GAAG,EAGtC,CAAC;IACa,eAAe,GAAG,IAAI,GAAG,EAAkC,CAAC;IAC5D,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;IAErD,KAAK,CACH,IAAwB,EACxB,MAAoC;QAEpC,OAAO,CACL,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAC1E,CAAC;IACJ,CAAC;IAED,OAAO,CACL,IAAwB,EACxB,MAAoC;QAEpC,MAAM,GAAG,GAAG,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9C,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,MAAM,OAAO,GAAG,qBAAqB,CACnC,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,WAAW,EAChB,MAAM,EACN;YACE,UAAU,EACR,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;YAClE,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CACF,CAAC,IAAI,CACJ,CAAC,OAAO,EAAE,EAAE;YACV,MAAM,OAAO,GAAG,OAAiC,CAAC;YAClD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YACvC,OAAO,OAAO,CAAC;QACjB,CAAC,EACD,CAAC,KAAK,EAAE,EAAE;YACR,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,OAAO,EAAE,CAAC;gBAC7C,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAClC,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC,CACF,CAAC;QACF,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACtC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,SAAS,CACb,IAAwB,EACxB,MAAoC,EACpC,SAA8D;QAE9D,MAAM,GAAG,GAAG,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAClD,IAAI,CAAC;YACH,OAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"backend.js","sourceRoot":"","sources":["../../src/runtime/backend.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The managed channel protocol.
|
|
3
|
+
*
|
|
4
|
+
* A channel is one inbound messaging surface with one external platform. It may
|
|
5
|
+
* contribute Events ingress, outbound messaging, and deploy requirements.
|
|
6
|
+
* Discovery is file-based: the CLI globs modules under `channels/` that export a
|
|
7
|
+
* `channel`, imports each one, and hands them to {@link collectChannels}, which
|
|
8
|
+
* stamps each with its file-stem `name`.
|
|
9
|
+
*/
|
|
10
|
+
import type { ChannelManifest } from "../channels/manifest.js";
|
|
11
|
+
import type { ChannelTransport } from "../channels/runtime.js";
|
|
12
|
+
/**
|
|
13
|
+
* Realm-global brand marking a value as a managed channel. `Symbol.for` keeps
|
|
14
|
+
* the identity stable across duplicate module instances.
|
|
15
|
+
*/
|
|
16
|
+
export declare const CHANNEL_BRAND: unique symbol;
|
|
17
|
+
/**
|
|
18
|
+
* Context handed to {@link Channel.events} for the conventional public inbound
|
|
19
|
+
* route at `/channels/{name}/events`.
|
|
20
|
+
*/
|
|
21
|
+
export interface ChannelEventsContext {
|
|
22
|
+
/** File-stem channel name (route segment). */
|
|
23
|
+
readonly name: string;
|
|
24
|
+
/** The inbound request. */
|
|
25
|
+
readonly request: Request;
|
|
26
|
+
/**
|
|
27
|
+
* Pre-read raw body when the HTTP framework may have consumed `request`
|
|
28
|
+
* (Hono mount passes `await c.req.text()`).
|
|
29
|
+
*/
|
|
30
|
+
readonly rawBody?: string | Uint8Array;
|
|
31
|
+
/** The live channel instance. */
|
|
32
|
+
readonly channel: Channel;
|
|
33
|
+
}
|
|
34
|
+
/** Deploy/runtime requirements a channel declares. */
|
|
35
|
+
export type ChannelRequirements = ChannelManifest;
|
|
36
|
+
/**
|
|
37
|
+
* A managed channel. Implement at least one of {@link Channel.events},
|
|
38
|
+
* {@link Channel.messaging}, or {@link Channel.requirements}; a channel
|
|
39
|
+
* implementing none does nothing and is rejected by {@link collectChannels}.
|
|
40
|
+
*/
|
|
41
|
+
export interface Channel {
|
|
42
|
+
readonly [CHANNEL_BRAND]: true;
|
|
43
|
+
/**
|
|
44
|
+
* Diagnostic / provider label (e.g. `"slack"`).
|
|
45
|
+
* HTTP mounts use {@link name}, not kind.
|
|
46
|
+
*/
|
|
47
|
+
readonly kind: string;
|
|
48
|
+
/**
|
|
49
|
+
* File-stem instance name, stamped by {@link collectChannels}. Mount
|
|
50
|
+
* namespace and messaging address (`runtime.channel` / `deliverTo`).
|
|
51
|
+
*/
|
|
52
|
+
readonly name?: string;
|
|
53
|
+
/**
|
|
54
|
+
* Handle `POST /channels/{name}/events` (verify + normalize + ACK + work).
|
|
55
|
+
* Public by construction; provider signature verification is the adapter's job.
|
|
56
|
+
*/
|
|
57
|
+
events?(ctx: ChannelEventsContext): Response | Promise<Response>;
|
|
58
|
+
/** Build outbound messaging transport for `runtime.channel` / schedule delivery. */
|
|
59
|
+
messaging?(env: NodeJS.ProcessEnv): ChannelTransport | undefined;
|
|
60
|
+
/** Deploy/runtime requirements (env, permissions, connection, provider config). */
|
|
61
|
+
requirements?(name: string): ChannelRequirements;
|
|
62
|
+
}
|
|
63
|
+
/** True when any channel can start an ingress run via {@link Channel.events}. */
|
|
64
|
+
export declare function hasIngressChannels(channels: readonly Channel[] | undefined): boolean;
|
|
65
|
+
/**
|
|
66
|
+
* Build the requirements map (file-stem → manifest) from channels that
|
|
67
|
+
* implement {@link Channel.requirements}.
|
|
68
|
+
*/
|
|
69
|
+
export declare function requirementsFromChannels(channels: readonly Channel[]): Record<string, ChannelRequirements>;
|
|
70
|
+
/** A discovered `channels/` module paired with its source path for diagnostics. */
|
|
71
|
+
export interface DiscoveredChannelModule {
|
|
72
|
+
/** Project-relative path of the module, used in error messages. */
|
|
73
|
+
readonly source: string;
|
|
74
|
+
/** The imported module namespace; its `channel` export is the channel. */
|
|
75
|
+
readonly module: {
|
|
76
|
+
channel?: unknown;
|
|
77
|
+
} & Record<string, unknown>;
|
|
78
|
+
}
|
|
79
|
+
/** Narrow an arbitrary value to a {@link Channel} by its brand. */
|
|
80
|
+
export declare function isChannel(value: unknown): value is Channel;
|
|
81
|
+
/**
|
|
82
|
+
* Validate and collect the channels discovered under `channels/`.
|
|
83
|
+
*
|
|
84
|
+
* Each module should expose exactly one channel as `export const channel`.
|
|
85
|
+
* The file stem becomes the instance {@link Channel.name} (mount namespace and
|
|
86
|
+
* messaging address). Duplicate stems are a hard error. Modules with no such
|
|
87
|
+
* export, or whose `channel` is not branded, are skipped. A branded channel
|
|
88
|
+
* that implements no hooks is still a hard error.
|
|
89
|
+
*/
|
|
90
|
+
export declare function collectChannels(modules: readonly DiscoveredChannelModule[]): Channel[];
|
|
91
|
+
//# sourceMappingURL=channel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../../src/runtime/channel.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,OAAO,MAAkC,CAAC;AAEtE;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,8CAA8C;IAC9C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,2BAA2B;IAC3B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;IACvC,iCAAiC;IACjC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED,sDAAsD;AACtD,MAAM,MAAM,mBAAmB,GAAG,eAAe,CAAC;AAElD;;;;GAIG;AACH,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC;IAC/B;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,MAAM,CAAC,CAAC,GAAG,EAAE,oBAAoB,GAAG,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACjE,oFAAoF;IACpF,SAAS,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,gBAAgB,GAAG,SAAS,CAAC;IACjE,mFAAmF;IACnF,YAAY,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,CAAC;CAClD;AAED,iFAAiF;AACjF,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,SAAS,OAAO,EAAE,GAAG,SAAS,GACvC,OAAO,CAIT;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,SAAS,OAAO,EAAE,GAC3B,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CASrC;AAED,mFAAmF;AACnF,MAAM,WAAW,uBAAuB;IACtC,mEAAmE;IACnE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,0EAA0E;IAC1E,QAAQ,CAAC,MAAM,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClE;AAED,mEAAmE;AACnE,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,OAAO,CAM1D;AAUD;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,SAAS,uBAAuB,EAAE,GAC1C,OAAO,EAAE,CAmCX"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The managed channel protocol.
|
|
3
|
+
*
|
|
4
|
+
* A channel is one inbound messaging surface with one external platform. It may
|
|
5
|
+
* contribute Events ingress, outbound messaging, and deploy requirements.
|
|
6
|
+
* Discovery is file-based: the CLI globs modules under `channels/` that export a
|
|
7
|
+
* `channel`, imports each one, and hands them to {@link collectChannels}, which
|
|
8
|
+
* stamps each with its file-stem `name`.
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Realm-global brand marking a value as a managed channel. `Symbol.for` keeps
|
|
12
|
+
* the identity stable across duplicate module instances.
|
|
13
|
+
*/
|
|
14
|
+
export const CHANNEL_BRAND = Symbol.for("mda.channel");
|
|
15
|
+
/** True when any channel can start an ingress run via {@link Channel.events}. */
|
|
16
|
+
export function hasIngressChannels(channels) {
|
|
17
|
+
return (channels ?? []).some((channel) => typeof channel.events === "function");
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Build the requirements map (file-stem → manifest) from channels that
|
|
21
|
+
* implement {@link Channel.requirements}.
|
|
22
|
+
*/
|
|
23
|
+
export function requirementsFromChannels(channels) {
|
|
24
|
+
const out = {};
|
|
25
|
+
for (const channel of channels) {
|
|
26
|
+
if (typeof channel.requirements !== "function" || !channel.name) {
|
|
27
|
+
continue;
|
|
28
|
+
}
|
|
29
|
+
out[channel.name] = channel.requirements(channel.name);
|
|
30
|
+
}
|
|
31
|
+
return out;
|
|
32
|
+
}
|
|
33
|
+
/** Narrow an arbitrary value to a {@link Channel} by its brand. */
|
|
34
|
+
export function isChannel(value) {
|
|
35
|
+
if (typeof value !== "object" || value === null) {
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
const branded = value[CHANNEL_BRAND];
|
|
39
|
+
return branded === true;
|
|
40
|
+
}
|
|
41
|
+
function channelHasHook(channel) {
|
|
42
|
+
return (typeof channel.events === "function" ||
|
|
43
|
+
typeof channel.messaging === "function" ||
|
|
44
|
+
typeof channel.requirements === "function");
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Validate and collect the channels discovered under `channels/`.
|
|
48
|
+
*
|
|
49
|
+
* Each module should expose exactly one channel as `export const channel`.
|
|
50
|
+
* The file stem becomes the instance {@link Channel.name} (mount namespace and
|
|
51
|
+
* messaging address). Duplicate stems are a hard error. Modules with no such
|
|
52
|
+
* export, or whose `channel` is not branded, are skipped. A branded channel
|
|
53
|
+
* that implements no hooks is still a hard error.
|
|
54
|
+
*/
|
|
55
|
+
export function collectChannels(modules) {
|
|
56
|
+
const collected = [];
|
|
57
|
+
const seenObjects = new Set();
|
|
58
|
+
const seenNames = new Set();
|
|
59
|
+
for (const { source, module } of modules) {
|
|
60
|
+
const candidate = module.channel;
|
|
61
|
+
if (candidate === undefined || !isChannel(candidate)) {
|
|
62
|
+
continue;
|
|
63
|
+
}
|
|
64
|
+
if (!channelHasHook(candidate)) {
|
|
65
|
+
throw new Error(`${source} channel (kind "${candidate.kind}") implements none of ` +
|
|
66
|
+
`\`events\`, \`messaging\`, or \`requirements\` and would do nothing.`);
|
|
67
|
+
}
|
|
68
|
+
const name = channelStemName(source);
|
|
69
|
+
if (seenNames.has(name)) {
|
|
70
|
+
throw new Error(`duplicate channel name '${name}' from channels/`);
|
|
71
|
+
}
|
|
72
|
+
seenNames.add(name);
|
|
73
|
+
if (seenObjects.has(candidate)) {
|
|
74
|
+
continue;
|
|
75
|
+
}
|
|
76
|
+
seenObjects.add(candidate);
|
|
77
|
+
Object.defineProperty(candidate, "name", {
|
|
78
|
+
value: name,
|
|
79
|
+
enumerable: false,
|
|
80
|
+
writable: false,
|
|
81
|
+
configurable: true,
|
|
82
|
+
});
|
|
83
|
+
collected.push(candidate);
|
|
84
|
+
}
|
|
85
|
+
return collected;
|
|
86
|
+
}
|
|
87
|
+
function channelStemName(source) {
|
|
88
|
+
// Keep in sync with CLI `plugin_module_extensions` (ts/tsx/mts/cts) plus
|
|
89
|
+
// emitted js/mjs and Python sources that may appear in diagnostics paths.
|
|
90
|
+
const base = source
|
|
91
|
+
.replace(/^.*\//, "")
|
|
92
|
+
.replace(/\.(ts|tsx|mts|cts|js|mjs|py)$/, "");
|
|
93
|
+
if (!base || base === "channel") {
|
|
94
|
+
throw new Error(`invalid channel path "${source}": use channels/<name>.ts (not channel.ts)`);
|
|
95
|
+
}
|
|
96
|
+
return base;
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=channel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"channel.js","sourceRoot":"","sources":["../../src/runtime/channel.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAkB,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AAmDtE,iFAAiF;AACjF,MAAM,UAAU,kBAAkB,CAChC,QAAwC;IAExC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,CAC1B,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,OAAO,CAAC,MAAM,KAAK,UAAU,CAClD,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CACtC,QAA4B;IAE5B,MAAM,GAAG,GAAwC,EAAE,CAAC;IACpD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,OAAO,OAAO,CAAC,YAAY,KAAK,UAAU,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAChE,SAAS;QACX,CAAC;QACD,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAUD,mEAAmE;AACnE,MAAM,UAAU,SAAS,CAAC,KAAc;IACtC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,OAAO,GAAI,KAAsC,CAAC,aAAa,CAAC,CAAC;IACvE,OAAO,OAAO,KAAK,IAAI,CAAC;AAC1B,CAAC;AAED,SAAS,cAAc,CAAC,OAAgB;IACtC,OAAO,CACL,OAAO,OAAO,CAAC,MAAM,KAAK,UAAU;QACpC,OAAO,OAAO,CAAC,SAAS,KAAK,UAAU;QACvC,OAAO,OAAO,CAAC,YAAY,KAAK,UAAU,CAC3C,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAC7B,OAA2C;IAE3C,MAAM,SAAS,GAAc,EAAE,CAAC;IAChC,MAAM,WAAW,GAAG,IAAI,GAAG,EAAW,CAAC;IACvC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IAEpC,KAAK,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC;QACjC,IAAI,SAAS,KAAK,SAAS,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;YACrD,SAAS;QACX,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CACb,GAAG,MAAM,mBAAmB,SAAS,CAAC,IAAI,wBAAwB;gBAChE,sEAAsE,CACzE,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,2BAA2B,IAAI,kBAAkB,CAAC,CAAC;QACrE,CAAC;QACD,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpB,IAAI,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YAC/B,SAAS;QACX,CAAC;QACD,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC3B,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE;YACvC,KAAK,EAAE,IAAI;YACX,UAAU,EAAE,KAAK;YACjB,QAAQ,EAAE,KAAK;YACf,YAAY,EAAE,IAAI;SACnB,CAAC,CAAC;QACH,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC5B,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,eAAe,CAAC,MAAc;IACrC,yEAAyE;IACzE,0EAA0E;IAC1E,MAAM,IAAI,GAAG,MAAM;SAChB,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;SACpB,OAAO,CAAC,+BAA+B,EAAE,EAAE,CAAC,CAAC;IAChD,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CACb,yBAAyB,MAAM,4CAA4C,CAC5E,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -1,19 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The managed connector protocol.
|
|
3
3
|
*
|
|
4
|
-
* A connector is
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* Discovery is name-agnostic: the CLI globs modules under `connectors/` that
|
|
10
|
-
* `export default`, imports each default export, and hands them to
|
|
11
|
-
* {@link collectConnectors}, which keeps branded connectors and skips the rest.
|
|
12
|
-
* Entrypoints call the hooks they care about — the agent graph calls
|
|
13
|
-
* {@link Connector.tools}, the managed HTTP app calls {@link Connector.http},
|
|
14
|
-
* and sandbox provisioning calls {@link Connector.sandbox}.
|
|
4
|
+
* A connector is one integration with one external platform. It may contribute
|
|
5
|
+
* tools, HTTP routes, sandbox provisioning, inbound events, and/or a named
|
|
6
|
+
* messaging surface. Discovery is file-based: the CLI globs modules under
|
|
7
|
+
* `connectors/` that export a `connector`, imports each one, and hands them to
|
|
8
|
+
* {@link collectConnectors}, which stamps each with its file-stem `name`.
|
|
15
9
|
*/
|
|
16
10
|
import type { SandboxBackendProtocolV2 } from "deepagents";
|
|
11
|
+
import type { ChannelManifest } from "../channels/manifest.js";
|
|
12
|
+
import type { ChannelTransport } from "../channels/runtime.js";
|
|
17
13
|
import type { IdentityConfig, IdentityDefinition, RuntimeIdentity } from "../identity/index.js";
|
|
18
14
|
import type { ManagedRunConfig } from "./types.js";
|
|
19
15
|
/**
|
|
@@ -56,6 +52,30 @@ export interface HttpContext {
|
|
|
56
52
|
*/
|
|
57
53
|
requireIdentity(request: Request): Promise<RuntimeIdentity>;
|
|
58
54
|
}
|
|
55
|
+
/**
|
|
56
|
+
* Context handed to {@link Connector.events} for the conventional public
|
|
57
|
+
* inbound route at `/connectors/{name}/events`.
|
|
58
|
+
*/
|
|
59
|
+
export interface EventsContext {
|
|
60
|
+
/** File-stem connector name (route segment). */
|
|
61
|
+
readonly name: string;
|
|
62
|
+
/** The inbound request. */
|
|
63
|
+
readonly request: Request;
|
|
64
|
+
/**
|
|
65
|
+
* Pre-read raw body when the HTTP framework may have consumed `request`
|
|
66
|
+
* (Hono mount passes `await c.req.text()`).
|
|
67
|
+
*/
|
|
68
|
+
readonly rawBody?: string | Uint8Array;
|
|
69
|
+
/** The live connector instance (e.g. GitHub `prompt` callbacks). */
|
|
70
|
+
readonly connector: Connector;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Deploy/runtime requirements a connector declares.
|
|
74
|
+
*
|
|
75
|
+
* Generalizes the former channel manifest: required env, permissions, and
|
|
76
|
+
* opaque provider config.
|
|
77
|
+
*/
|
|
78
|
+
export type ConnectorRequirements = ChannelManifest;
|
|
59
79
|
/**
|
|
60
80
|
* Context handed to {@link Connector.sandbox} when a managed sandbox is created
|
|
61
81
|
* or reused for a thread. Connectors close over their own config and use
|
|
@@ -117,19 +137,37 @@ export type PublicRouteHandler = (request: Request) => Response | Promise<Respon
|
|
|
117
137
|
export type ConnectorToolList = unknown[];
|
|
118
138
|
/**
|
|
119
139
|
* A managed connector. Implement at least one of {@link Connector.tools},
|
|
120
|
-
* {@link Connector.http},
|
|
121
|
-
*
|
|
140
|
+
* {@link Connector.http}, {@link Connector.sandbox}, {@link Connector.events},
|
|
141
|
+
* {@link Connector.messaging}, or {@link Connector.requirements}; a connector
|
|
142
|
+
* implementing none does nothing and is rejected by {@link collectConnectors}.
|
|
122
143
|
*/
|
|
123
144
|
export interface Connector {
|
|
124
145
|
readonly [CONNECTOR_BRAND]: true;
|
|
125
|
-
/**
|
|
146
|
+
/**
|
|
147
|
+
* Diagnostic / provider label (e.g. `"mcp_servers"`, `"github"`, `"slack"`).
|
|
148
|
+
* HTTP mounts use {@link name}, not kind.
|
|
149
|
+
*/
|
|
126
150
|
readonly kind: string;
|
|
151
|
+
/**
|
|
152
|
+
* File-stem instance name, stamped by {@link collectConnectors}. Mount
|
|
153
|
+
* namespace and messaging address (`runtime.channel` / `deliverTo`).
|
|
154
|
+
*/
|
|
155
|
+
readonly name?: string;
|
|
127
156
|
/** Contribute tools during agent-graph construction. MCP implements this. */
|
|
128
157
|
tools?(ctx: ToolContext): ConnectorToolList | Promise<ConnectorToolList>;
|
|
129
158
|
/** Mount HTTP routes during managed-app construction. LangSmith implements this. */
|
|
130
159
|
http?(ctx: HttpContext): void | Promise<void>;
|
|
131
160
|
/** Provision/refresh sandbox state when a managed sandbox is created or reused. */
|
|
132
161
|
sandbox?(ctx: SandboxContext): void | Promise<void>;
|
|
162
|
+
/**
|
|
163
|
+
* Handle `POST /connectors/{name}/events` (verify + normalize + ACK + work).
|
|
164
|
+
* Public by construction; provider signature verification is the adapter's job.
|
|
165
|
+
*/
|
|
166
|
+
events?(ctx: EventsContext): Response | Promise<Response>;
|
|
167
|
+
/** Build outbound messaging transport for `runtime.channel` / schedule delivery. */
|
|
168
|
+
messaging?(env: NodeJS.ProcessEnv): ChannelTransport | undefined;
|
|
169
|
+
/** Deploy/runtime requirements (env, permissions, connection, provider config). */
|
|
170
|
+
requirements?(name: string): ConnectorRequirements;
|
|
133
171
|
}
|
|
134
172
|
/**
|
|
135
173
|
* Run the `tools` hook of every connector that implements it and concatenate the
|
|
@@ -144,13 +182,20 @@ export declare function loadConnectorTools(connectors: readonly Connector[], ctx
|
|
|
144
182
|
export declare function runConnectorSandboxHooks(connectors: readonly Connector[] | undefined, ctx: SandboxContext): Promise<void>;
|
|
145
183
|
/** True when at least one connector implements {@link Connector.sandbox}. */
|
|
146
184
|
export declare function hasSandboxConnectors(connectors: readonly Connector[] | undefined): boolean;
|
|
185
|
+
/** True when any connector can start an ingress run via {@link Connector.events}. */
|
|
186
|
+
export declare function hasIngressConnectors(connectors: readonly Connector[] | undefined): boolean;
|
|
187
|
+
/**
|
|
188
|
+
* Build the requirements map (file-stem → manifest) from connectors that
|
|
189
|
+
* implement {@link Connector.requirements}.
|
|
190
|
+
*/
|
|
191
|
+
export declare function requirementsFromConnectors(connectors: readonly Connector[]): Record<string, ConnectorRequirements>;
|
|
147
192
|
/** A discovered `connectors/` module paired with its source path for diagnostics. */
|
|
148
193
|
export interface DiscoveredConnectorModule {
|
|
149
194
|
/** Project-relative path of the module, used in error messages. */
|
|
150
195
|
readonly source: string;
|
|
151
|
-
/** The imported module namespace; its
|
|
196
|
+
/** The imported module namespace; its `connector` export is the connector. */
|
|
152
197
|
readonly module: {
|
|
153
|
-
|
|
198
|
+
connector?: unknown;
|
|
154
199
|
} & Record<string, unknown>;
|
|
155
200
|
}
|
|
156
201
|
/** Narrow an arbitrary value to a {@link Connector} by its brand and hooks. */
|
|
@@ -158,13 +203,11 @@ export declare function isConnector(value: unknown): value is Connector;
|
|
|
158
203
|
/**
|
|
159
204
|
* Validate and collect the connectors discovered under `connectors/`.
|
|
160
205
|
*
|
|
161
|
-
* Each module should expose exactly one connector as
|
|
162
|
-
*
|
|
163
|
-
*
|
|
164
|
-
*
|
|
165
|
-
* that implements no hooks is still a hard error
|
|
166
|
-
* broken). Duplicate connector objects (re-exported from two modules) are
|
|
167
|
-
* de-duplicated by identity.
|
|
206
|
+
* Each module should expose exactly one connector as `export const connector`.
|
|
207
|
+
* The file stem becomes the instance {@link Connector.name} (mount namespace and
|
|
208
|
+
* messaging address). Duplicate stems are a hard error. Modules with no such
|
|
209
|
+
* export, or whose `connector` is not branded, are skipped. A branded connector
|
|
210
|
+
* that implements no hooks is still a hard error.
|
|
168
211
|
*/
|
|
169
212
|
export declare function collectConnectors(modules: readonly DiscoveredConnectorModule[]): Connector[];
|
|
170
213
|
//# sourceMappingURL=connector.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connector.d.ts","sourceRoot":"","sources":["../../src/runtime/connector.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"connector.d.ts","sourceRoot":"","sources":["../../src/runtime/connector.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The managed connector protocol.
|
|
3
3
|
*
|
|
4
|
-
* A connector is
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* Discovery is name-agnostic: the CLI globs modules under `connectors/` that
|
|
10
|
-
* `export default`, imports each default export, and hands them to
|
|
11
|
-
* {@link collectConnectors}, which keeps branded connectors and skips the rest.
|
|
12
|
-
* Entrypoints call the hooks they care about — the agent graph calls
|
|
13
|
-
* {@link Connector.tools}, the managed HTTP app calls {@link Connector.http},
|
|
14
|
-
* and sandbox provisioning calls {@link Connector.sandbox}.
|
|
4
|
+
* A connector is one integration with one external platform. It may contribute
|
|
5
|
+
* tools, HTTP routes, sandbox provisioning, inbound events, and/or a named
|
|
6
|
+
* messaging surface. Discovery is file-based: the CLI globs modules under
|
|
7
|
+
* `connectors/` that export a `connector`, imports each one, and hands them to
|
|
8
|
+
* {@link collectConnectors}, which stamps each with its file-stem `name`.
|
|
15
9
|
*/
|
|
16
10
|
/**
|
|
17
11
|
* Realm-global brand marking a value as a managed connector. `Symbol.for` keeps
|
|
@@ -48,6 +42,24 @@ export async function runConnectorSandboxHooks(connectors, ctx) {
|
|
|
48
42
|
export function hasSandboxConnectors(connectors) {
|
|
49
43
|
return (connectors ?? []).some((connector) => typeof connector.sandbox === "function");
|
|
50
44
|
}
|
|
45
|
+
/** True when any connector can start an ingress run via {@link Connector.events}. */
|
|
46
|
+
export function hasIngressConnectors(connectors) {
|
|
47
|
+
return (connectors ?? []).some((connector) => typeof connector.events === "function");
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Build the requirements map (file-stem → manifest) from connectors that
|
|
51
|
+
* implement {@link Connector.requirements}.
|
|
52
|
+
*/
|
|
53
|
+
export function requirementsFromConnectors(connectors) {
|
|
54
|
+
const out = {};
|
|
55
|
+
for (const connector of connectors) {
|
|
56
|
+
if (typeof connector.requirements !== "function" || !connector.name) {
|
|
57
|
+
continue;
|
|
58
|
+
}
|
|
59
|
+
out[connector.name] = connector.requirements(connector.name);
|
|
60
|
+
}
|
|
61
|
+
return out;
|
|
62
|
+
}
|
|
51
63
|
/** Narrow an arbitrary value to a {@link Connector} by its brand and hooks. */
|
|
52
64
|
export function isConnector(value) {
|
|
53
65
|
if (typeof value !== "object" || value === null) {
|
|
@@ -56,37 +68,65 @@ export function isConnector(value) {
|
|
|
56
68
|
const branded = value[CONNECTOR_BRAND];
|
|
57
69
|
return branded === true;
|
|
58
70
|
}
|
|
71
|
+
function connectorHasHook(connector) {
|
|
72
|
+
return (typeof connector.tools === "function" ||
|
|
73
|
+
typeof connector.http === "function" ||
|
|
74
|
+
typeof connector.sandbox === "function" ||
|
|
75
|
+
typeof connector.events === "function" ||
|
|
76
|
+
typeof connector.messaging === "function" ||
|
|
77
|
+
typeof connector.requirements === "function");
|
|
78
|
+
}
|
|
59
79
|
/**
|
|
60
80
|
* Validate and collect the connectors discovered under `connectors/`.
|
|
61
81
|
*
|
|
62
|
-
* Each module should expose exactly one connector as
|
|
63
|
-
*
|
|
64
|
-
*
|
|
65
|
-
*
|
|
66
|
-
* that implements no hooks is still a hard error
|
|
67
|
-
* broken). Duplicate connector objects (re-exported from two modules) are
|
|
68
|
-
* de-duplicated by identity.
|
|
82
|
+
* Each module should expose exactly one connector as `export const connector`.
|
|
83
|
+
* The file stem becomes the instance {@link Connector.name} (mount namespace and
|
|
84
|
+
* messaging address). Duplicate stems are a hard error. Modules with no such
|
|
85
|
+
* export, or whose `connector` is not branded, are skipped. A branded connector
|
|
86
|
+
* that implements no hooks is still a hard error.
|
|
69
87
|
*/
|
|
70
88
|
export function collectConnectors(modules) {
|
|
71
89
|
const collected = [];
|
|
72
|
-
const
|
|
90
|
+
const seenObjects = new Set();
|
|
91
|
+
const seenNames = new Set();
|
|
73
92
|
for (const { source, module } of modules) {
|
|
74
|
-
const candidate = module.
|
|
93
|
+
const candidate = module.connector;
|
|
75
94
|
if (candidate === undefined || !isConnector(candidate)) {
|
|
76
95
|
continue;
|
|
77
96
|
}
|
|
78
|
-
if (
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
`\`tools\`, \`http\`, or \`sandbox\` and would do nothing.`);
|
|
97
|
+
if (!connectorHasHook(candidate)) {
|
|
98
|
+
throw new Error(`${source} connector (kind "${candidate.kind}") implements none of ` +
|
|
99
|
+
`\`tools\`, \`http\`, \`sandbox\`, \`events\`, \`messaging\`, or ` +
|
|
100
|
+
`\`requirements\` and would do nothing.`);
|
|
83
101
|
}
|
|
84
|
-
|
|
102
|
+
const name = connectorStemName(source);
|
|
103
|
+
if (seenNames.has(name)) {
|
|
104
|
+
throw new Error(`duplicate connector name '${name}' from connectors/`);
|
|
105
|
+
}
|
|
106
|
+
seenNames.add(name);
|
|
107
|
+
if (seenObjects.has(candidate)) {
|
|
85
108
|
continue;
|
|
86
109
|
}
|
|
87
|
-
|
|
110
|
+
seenObjects.add(candidate);
|
|
111
|
+
Object.defineProperty(candidate, "name", {
|
|
112
|
+
value: name,
|
|
113
|
+
enumerable: false,
|
|
114
|
+
writable: false,
|
|
115
|
+
configurable: true,
|
|
116
|
+
});
|
|
88
117
|
collected.push(candidate);
|
|
89
118
|
}
|
|
90
119
|
return collected;
|
|
91
120
|
}
|
|
121
|
+
function connectorStemName(source) {
|
|
122
|
+
// Keep in sync with CLI `plugin_module_extensions` (ts/tsx/mts/cts) plus
|
|
123
|
+
// emitted js/mjs and Python sources that may appear in diagnostics paths.
|
|
124
|
+
const base = source
|
|
125
|
+
.replace(/^.*\//, "")
|
|
126
|
+
.replace(/\.(ts|tsx|mts|cts|js|mjs|py)$/, "");
|
|
127
|
+
if (!base || base === "connector") {
|
|
128
|
+
throw new Error(`invalid connector path "${source}": use connectors/<name>.ts (not connector.ts)`);
|
|
129
|
+
}
|
|
130
|
+
return base;
|
|
131
|
+
}
|
|
92
132
|
//# sourceMappingURL=connector.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connector.js","sourceRoot":"","sources":["../../src/runtime/connector.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"connector.js","sourceRoot":"","sources":["../../src/runtime/connector.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime/cors.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* CORS allowlist helpers for managed HTTP routes (`/identity`, `/connectors
|
|
3
|
-
* `/channels`).
|
|
2
|
+
* CORS allowlist helpers for managed HTTP routes (`/identity`, `/connectors`).
|
|
4
3
|
*
|
|
5
4
|
* LangGraph applies `CORS_ALLOW_ORIGINS` to built-in Agent Server routes, but
|
|
6
5
|
* GET responses from the custom `http.app` do not always receive those headers.
|
|
@@ -9,10 +8,20 @@
|
|
|
9
8
|
*
|
|
10
9
|
* `mda deploy` still derives `CORS_ALLOW_ORIGINS` from
|
|
11
10
|
* {@link MDA_PUBLIC_APP_URL_ENV} plus optional {@link MDA_CORS_ORIGINS_ENV}.
|
|
11
|
+
*
|
|
12
|
+
* Subdomain policy: an allowlisted origin also permits **one** DNS label
|
|
13
|
+
* beneath it (e.g. Cloudflare Pages previews under a project apex). Deeper
|
|
14
|
+
* nesting is rejected. With credentialed CORS, do not put hosts that issue
|
|
15
|
+
* attacker-reachable subdomains into {@link MDA_CORS_ORIGINS_ENV} / the public
|
|
16
|
+
* app URL — a malicious page on such a subdomain could read `/identity` and
|
|
17
|
+
* `/connectors` responses.
|
|
12
18
|
*/
|
|
13
19
|
/** Path prefixes that receive managed-app CORS (not built-in Agent Server routes). */
|
|
14
20
|
export declare const MDA_CORS_PATH_PREFIXES: readonly ["/identity", "/connectors", "/channels"];
|
|
15
|
-
/**
|
|
21
|
+
/**
|
|
22
|
+
* Comma-separated extra browser origins allowed for managed HTTP CORS.
|
|
23
|
+
* Each entry also trusts a single subdomain label; avoid multi-tenant hosts.
|
|
24
|
+
*/
|
|
16
25
|
export declare const MDA_CORS_ORIGINS_ENV = "MDA_CORS_ORIGINS";
|
|
17
26
|
/** Headers browser clients send on identity / connector fetches. */
|
|
18
27
|
export declare const MDA_CORS_ALLOW_HEADERS: readonly ["Authorization", "Content-Type", "Accept", "X-Api-Key", "x-api-key"];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cors.d.ts","sourceRoot":"","sources":["../../src/runtime/cors.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"cors.d.ts","sourceRoot":"","sources":["../../src/runtime/cors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAIH,sFAAsF;AACtF,eAAO,MAAM,sBAAsB,YACjC,WAAW,EACX,aAAa,EACb,WAAW,CACH,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,oBAAoB,qBAAqB,CAAC;AAEvD,oEAAoE;AACpE,eAAO,MAAM,sBAAsB,YACjC,eAAe,EACf,cAAc,EACd,QAAQ,EACR,WAAW,EACX,WAAW,CACH,CAAC;AAEX,eAAO,MAAM,sBAAsB,YACjC,KAAK,EACL,MAAM,EACN,KAAK,EACL,QAAQ,EACR,SAAS,CACD,CAAC;AAEX,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAIvD;AAED,qEAAqE;AACrE,wBAAgB,oBAAoB,CAClC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,EAAE,CAaV;AAYD;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EAAE,GAClB,MAAM,GAAG,SAAS,CA+BpB"}
|