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
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Connect-with-GitHub — {@link IdentityConnectProvider} for actor OAuth tokens.
|
|
3
3
|
*
|
|
4
|
-
* Mounted under `/identity/github/*` when listed on `identity.connect
|
|
4
|
+
* Mounted under `/identity/github/*` when listed on `identity.connect`, or when
|
|
5
|
+
* a user-scoped deployment declares a GitHub connector.
|
|
5
6
|
*/
|
|
6
7
|
import { identityConnectPaths } from "../connect-paths.js";
|
|
8
|
+
import { hasGithubConnector, isUserScopedDeployment, } from "../connect-inference.js";
|
|
9
|
+
import { MDA_PUBLIC_APP_URL_ENV, OAUTH_STATE_SIGNING_KEY_ENV, readOauthStateSigningKey, } from "../oauth-env.js";
|
|
7
10
|
import { buildGitHubCredentialRecord, getGitHubCredentialStore, } from "./credentials-store.js";
|
|
8
|
-
import { buildGitHubAuthorizeUrl,
|
|
11
|
+
import { buildGitHubAuthorizeUrl, exchangeGitHubOauthCode, githubOauthTickets, readGitHubOauthConfig, resolveGitHubOauthRedirectBase, } from "./oauth.js";
|
|
9
12
|
const PATHS = identityConnectPaths("github");
|
|
10
13
|
export const GITHUB_CONNECT_STATUS_PATH = PATHS.status;
|
|
11
14
|
export const GITHUB_CONNECT_START_PATH = PATHS.connect;
|
|
@@ -17,12 +20,23 @@ export function createGitHubIdentityConnectProvider(options = {}) {
|
|
|
17
20
|
return {
|
|
18
21
|
id: "github",
|
|
19
22
|
shouldMount(ctx) {
|
|
20
|
-
|
|
21
|
-
|
|
23
|
+
if (!ctx.hasIdentity) {
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
// Listed on `identity.connect` — the author already opted in.
|
|
27
|
+
if (ctx.declared) {
|
|
28
|
+
return true;
|
|
29
|
+
}
|
|
30
|
+
// Otherwise mirror Google/Microsoft: a GitHub connector on a user-scoped
|
|
31
|
+
// deployment needs somewhere for the caller to grant an actor OAuth token.
|
|
32
|
+
if (!isUserScopedDeployment(ctx.scope)) {
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
return hasGithubConnector(ctx.connectorKinds);
|
|
22
36
|
},
|
|
23
|
-
async status(
|
|
37
|
+
async status(userId) {
|
|
24
38
|
const configured = Boolean(readGitHubOauthConfig());
|
|
25
|
-
const record = await store().
|
|
39
|
+
const record = await store().getByUserId(userId);
|
|
26
40
|
return {
|
|
27
41
|
configured,
|
|
28
42
|
linked: Boolean(record),
|
|
@@ -36,7 +50,7 @@ export function createGitHubIdentityConnectProvider(options = {}) {
|
|
|
36
50
|
: {}),
|
|
37
51
|
};
|
|
38
52
|
},
|
|
39
|
-
async startAuthorize(
|
|
53
|
+
async startAuthorize(userId, redirectUri) {
|
|
40
54
|
const oauth = readGitHubOauthConfig();
|
|
41
55
|
const stateKey = readOauthStateSigningKey();
|
|
42
56
|
if (!oauth || !stateKey) {
|
|
@@ -45,7 +59,7 @@ export function createGitHubIdentityConnectProvider(options = {}) {
|
|
|
45
59
|
error: `GitHub connect is not configured (set GITHUB_CLIENT_ID, GITHUB_CLIENT_SECRET, MDA_PUBLIC_APP_URL, ${OAUTH_STATE_SIGNING_KEY_ENV})`,
|
|
46
60
|
};
|
|
47
61
|
}
|
|
48
|
-
const state = await
|
|
62
|
+
const state = await githubOauthTickets.createState(userId, stateKey);
|
|
49
63
|
return {
|
|
50
64
|
authorizeUrl: buildGitHubAuthorizeUrl(oauth, state, redirectUri),
|
|
51
65
|
};
|
|
@@ -59,10 +73,10 @@ export function createGitHubIdentityConnectProvider(options = {}) {
|
|
|
59
73
|
if (!stateKey) {
|
|
60
74
|
throw new Error(`${OAUTH_STATE_SIGNING_KEY_ENV} is not configured`);
|
|
61
75
|
}
|
|
62
|
-
const {
|
|
76
|
+
const { userId } = await githubOauthTickets.verifyState(state, stateKey);
|
|
63
77
|
const token = await exchangeGitHubOauthCode(oauth, code, redirectUri);
|
|
64
78
|
const record = buildGitHubCredentialRecord({
|
|
65
|
-
|
|
79
|
+
userId,
|
|
66
80
|
githubUserId: token.userId,
|
|
67
81
|
githubLogin: token.login,
|
|
68
82
|
accessToken: token.accessToken,
|
|
@@ -76,8 +90,8 @@ export function createGitHubIdentityConnectProvider(options = {}) {
|
|
|
76
90
|
successRedirect: `${oauth.publicAppUrl}/settings?github=connected`,
|
|
77
91
|
};
|
|
78
92
|
},
|
|
79
|
-
async unlink(
|
|
80
|
-
await store().
|
|
93
|
+
async unlink(userId) {
|
|
94
|
+
await store().removeByUserId(userId);
|
|
81
95
|
},
|
|
82
96
|
resolveRedirectBase(options) {
|
|
83
97
|
return resolveGitHubOauthRedirectBase(options);
|
|
@@ -94,12 +108,15 @@ export const githubIdentityConnectProvider = createGitHubIdentityConnectProvider
|
|
|
94
108
|
/**
|
|
95
109
|
* Opt into Connect-with-GitHub on `defineIdentity({ connect: […] })`.
|
|
96
110
|
*
|
|
111
|
+
* Usually unnecessary: `credentials.github(...)` on a user-scoped deployment
|
|
112
|
+
* mounts these routes by inference.
|
|
113
|
+
*
|
|
97
114
|
* @example
|
|
98
115
|
* ```ts
|
|
99
|
-
* import {
|
|
116
|
+
* import { connect, defineIdentity } from "managed-deepagents";
|
|
100
117
|
*
|
|
101
|
-
* export const identity = defineIdentity
|
|
102
|
-
* connect: [github
|
|
118
|
+
* export const identity = defineIdentity({
|
|
119
|
+
* connect: [connect.github()],
|
|
103
120
|
* });
|
|
104
121
|
* ```
|
|
105
122
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connect-http.js","sourceRoot":"","sources":["../../../src/identity/github/connect-http.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"connect-http.js","sourceRoot":"","sources":["../../../src/identity/github/connect-http.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EACL,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,sBAAsB,EACtB,2BAA2B,EAC3B,wBAAwB,GACzB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,2BAA2B,EAC3B,wBAAwB,GAEzB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,kBAAkB,EAClB,qBAAqB,EACrB,8BAA8B,GAC/B,MAAM,YAAY,CAAC;AAEpB,MAAM,KAAK,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;AAE7C,MAAM,CAAC,MAAM,0BAA0B,GAAG,KAAK,CAAC,MAAM,CAAC;AACvD,MAAM,CAAC,MAAM,yBAAyB,GAAG,KAAK,CAAC,OAAO,CAAC;AACvD,MAAM,CAAC,MAAM,4BAA4B,GAAG,KAAK,CAAC,QAAQ,CAAC;AAC3D,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,CAAC,IAAI,CAAC;AAOnD,oEAAoE;AACpE,MAAM,UAAU,mCAAmC,CACjD,OAAO,GAAyC,EAAE;IAElD,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,eAAe,IAAI,wBAAwB,EAAE,CAAC;IAE1E,OAAO;QACL,EAAE,EAAE,QAAQ;QACZ,WAAW,CAAC,GAAgC;YAC1C,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;gBACrB,OAAO,KAAK,CAAC;YACf,CAAC;YACD,8DAA8D;YAC9D,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;gBACjB,OAAO,IAAI,CAAC;YACd,CAAC;YACD,yEAAyE;YACzE,2EAA2E;YAC3E,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBACvC,OAAO,KAAK,CAAC;YACf,CAAC;YACD,OAAO,kBAAkB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAChD,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,MAAc;YACzB,MAAM,UAAU,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAC;YACpD,MAAM,MAAM,GAAG,MAAM,KAAK,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YACjD,OAAO;gBACL,UAAU;gBACV,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC;gBACvB,GAAG,CAAC,MAAM;oBACR,CAAC,CAAC;wBACE,WAAW,EAAE,MAAM,CAAC,WAAW;wBAC/B,YAAY,EAAE,MAAM,CAAC,YAAY;wBACjC,QAAQ,EAAE,MAAM,CAAC,QAAQ;wBACzB,KAAK,EAAE,MAAM,CAAC,KAAK;qBACpB;oBACH,CAAC,CAAC,EAAE,CAAC;aACR,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,cAAc,CAClB,MAAc,EACd,WAAmB;YAEnB,MAAM,KAAK,GAAG,qBAAqB,EAAE,CAAC;YACtC,MAAM,QAAQ,GAAG,wBAAwB,EAAE,CAAC;YAC5C,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACxB,OAAO;oBACL,aAAa,EAAE,IAAI;oBACnB,KAAK,EAAE,qGAAqG,2BAA2B,GAAG;iBAC3I,CAAC;YACJ,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YACrE,OAAO;gBACL,YAAY,EAAE,uBAAuB,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC;aACjE,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,gBAAgB,CACpB,IAAY,EACZ,KAAa,EACb,WAAmB;YAEnB,MAAM,KAAK,GAAG,qBAAqB,EAAE,CAAC;YACtC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;YACpD,CAAC;YACD,MAAM,QAAQ,GAAG,wBAAwB,EAAE,CAAC;YAC5C,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,KAAK,CAAC,GAAG,2BAA2B,oBAAoB,CAAC,CAAC;YACtE,CAAC;YACD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,kBAAkB,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YACzE,MAAM,KAAK,GAAG,MAAM,uBAAuB,CAAC,KAAK,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;YACtE,MAAM,MAAM,GAAG,2BAA2B,CAAC;gBACzC,MAAM;gBACN,YAAY,EAAE,KAAK,CAAC,MAAM;gBAC1B,WAAW,EAAE,KAAK,CAAC,KAAK;gBACxB,WAAW,EAAE,KAAK,CAAC,WAAW;gBAC9B,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnE,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC1D,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC9C,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC/C,CAAC,CAAC;YACH,MAAM,KAAK,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC7B,OAAO;gBACL,eAAe,EAAE,GAAG,KAAK,CAAC,YAAY,4BAA4B;aACnE,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,MAAc;YACzB,MAAM,KAAK,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QACvC,CAAC;QACD,mBAAmB,CAAC,OAA2C;YAC7D,OAAO,8BAA8B,CAAC,OAAO,CAAC,CAAC;QACjD,CAAC;QACD,mBAAmB;YACjB,MAAM,KAAK,GAAG,qBAAqB,EAAE,CAAC;YACtC,OAAO,CACL,KAAK,EAAE,YAAY;gBACnB,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CACxD,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AAED,6EAA6E;AAC7E,MAAM,CAAC,MAAM,6BAA6B,GACxC,mCAAmC,EAAE,CAAC;AAExC;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,OAAO,CACrB,OAA8C;IAE9C,OAAO,OAAO;QACZ,CAAC,CAAC,mCAAmC,CAAC,OAAO,CAAC;QAC9C,CAAC,CAAC,6BAA6B,CAAC;AACpC,CAAC"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Per-actor GitHub OAuth credential vault.
|
|
3
3
|
*
|
|
4
4
|
* Stored in the LangGraph Store under `["mda_github_credentials"]`. Connect-
|
|
5
|
-
* with-GitHub upserts after OAuth; `github
|
|
5
|
+
* with-GitHub upserts after OAuth; `credentials.github` resolves `actor` tokens
|
|
6
6
|
* from here until managed Agent Auth lands.
|
|
7
7
|
*
|
|
8
8
|
* Tokens are deployment-scoped Store values — treat the Store namespace as
|
|
@@ -23,7 +23,7 @@ export declare const GITHUB_CREDENTIAL_CACHE_TTL_MS = 30000;
|
|
|
23
23
|
/** Soft cap on cached GitHub credential records per process. */
|
|
24
24
|
export declare const GITHUB_CREDENTIAL_CACHE_MAX_ENTRIES = 256;
|
|
25
25
|
export interface GitHubCredentialRecord {
|
|
26
|
-
|
|
26
|
+
userId: string;
|
|
27
27
|
githubUserId: string;
|
|
28
28
|
githubLogin: string;
|
|
29
29
|
accessToken: string;
|
|
@@ -35,24 +35,24 @@ export interface GitHubCredentialRecord {
|
|
|
35
35
|
source: "github_oauth";
|
|
36
36
|
}
|
|
37
37
|
export interface GitHubCredentialStore {
|
|
38
|
-
|
|
38
|
+
getByUserId(userId: string): Promise<GitHubCredentialRecord | null>;
|
|
39
39
|
upsert(record: GitHubCredentialRecord): Promise<void>;
|
|
40
|
-
|
|
40
|
+
removeByUserId(userId: string): Promise<void>;
|
|
41
41
|
}
|
|
42
42
|
/** In-memory store for tests. */
|
|
43
43
|
export declare class InMemoryGitHubCredentialStore implements GitHubCredentialStore {
|
|
44
|
-
private readonly
|
|
45
|
-
|
|
44
|
+
private readonly byUser;
|
|
45
|
+
getByUserId(userId: string): Promise<GitHubCredentialRecord | null>;
|
|
46
46
|
upsert(record: GitHubCredentialRecord): Promise<void>;
|
|
47
|
-
|
|
47
|
+
removeByUserId(userId: string): Promise<void>;
|
|
48
48
|
}
|
|
49
49
|
/** LangGraph Store–backed GitHub credential vault. */
|
|
50
50
|
export declare class LangGraphGitHubCredentialStore implements GitHubCredentialStore {
|
|
51
51
|
private readonly client;
|
|
52
52
|
constructor(client: Client);
|
|
53
|
-
|
|
53
|
+
getByUserId(userId: string): Promise<GitHubCredentialRecord | null>;
|
|
54
54
|
upsert(record: GitHubCredentialRecord): Promise<void>;
|
|
55
|
-
|
|
55
|
+
removeByUserId(userId: string): Promise<void>;
|
|
56
56
|
}
|
|
57
57
|
/** Override the process-default credential store (tests). */
|
|
58
58
|
export declare function setGitHubCredentialStore(store: GitHubCredentialStore | null): void;
|
|
@@ -64,7 +64,7 @@ export declare function createLangGraphGitHubCredentialStore(options?: {
|
|
|
64
64
|
ingressSecret?: string;
|
|
65
65
|
}): LangGraphGitHubCredentialStore | null;
|
|
66
66
|
export declare function buildGitHubCredentialRecord(input: {
|
|
67
|
-
|
|
67
|
+
userId: string;
|
|
68
68
|
githubUserId: string;
|
|
69
69
|
githubLogin: string;
|
|
70
70
|
accessToken: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credentials-store.d.ts","sourceRoot":"","sources":["../../../src/identity/github/credentials-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAElD,OAAO,
|
|
1
|
+
{"version":3,"file":"credentials-store.d.ts","sourceRoot":"","sources":["../../../src/identity/github/credentials-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAElD,OAAO,EAIL,+BAA+B,EAKhC,MAAM,uBAAuB,CAAC;AAO/B,OAAO,EAAE,+BAA+B,EAAE,CAAC;AAC3C,eAAO,MAAM,4BAA4B,qCAE/B,CAAC;AAEX,2EAA2E;AAC3E,eAAO,MAAM,8BAA8B,QAAS,CAAC;AACrD,gEAAgE;AAChE,eAAO,MAAM,mCAAmC,MAAM,CAAC;AAEvD,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,cAAc,CAAC;CACxB;AAED,MAAM,WAAW,qBAAqB;IACpC,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAAC;IACpE,MAAM,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/C;AAgBD,iCAAiC;AACjC,qBAAa,6BAA8B,YAAW,qBAAqB;IACzE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6C;IAE9D,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAExE;IAEK,MAAM,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAE1D;IAEK,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAElD;CACF;AAED,sDAAsD;AACtD,qBAAa,8BAA+B,YAAW,qBAAqB;IAC9D,OAAO,CAAC,QAAQ,CAAC,MAAM;IAAnC,YAA6B,MAAM,EAAE,MAAM,EAAI;IAEzC,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC,CA0CxE;IAEK,MAAM,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAQ1D;IAEK,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAOlD;CACF;AAID,6DAA6D;AAC7D,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,qBAAqB,GAAG,IAAI,GAClC,IAAI,CAGN;AAED,oDAAoD;AACpD,wBAAgB,wBAAwB,IAAI,qBAAqB,CAQhE;AAED,wBAAgB,oCAAoC,CAClD,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAO,GACzE,8BAA8B,GAAG,IAAI,CA+BvC;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,sBAAsB,CAazB"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Per-actor GitHub OAuth credential vault.
|
|
3
3
|
*
|
|
4
4
|
* Stored in the LangGraph Store under `["mda_github_credentials"]`. Connect-
|
|
5
|
-
* with-GitHub upserts after OAuth; `github
|
|
5
|
+
* with-GitHub upserts after OAuth; `credentials.github` resolves `actor` tokens
|
|
6
6
|
* from here until managed Agent Auth lands.
|
|
7
7
|
*
|
|
8
8
|
* Tokens are deployment-scoped Store values — treat the Store namespace as
|
|
@@ -16,8 +16,8 @@
|
|
|
16
16
|
*/
|
|
17
17
|
import { getStore } from "@langchain/langgraph";
|
|
18
18
|
import { Client } from "@langchain/langgraph-sdk";
|
|
19
|
-
import {
|
|
20
|
-
import { resolveLoopbackApiUrl } from "../loopback.js";
|
|
19
|
+
import { HANDOFF_SECRET_ENV, HANDOFF_SECRET_HEADER, USER_HEADER, GITHUB_CREDENTIALS_STORE_PREFIX, IDENTITY_LINKS_SERVICE_USER, INGRESS_SECRET_ENV, INGRESS_SECRET_HEADER, LANGSMITH_API_KEY_ENV, } from "../../runtime/auth.js";
|
|
20
|
+
import { isLoopbackUrl, resolveLoopbackApiKey, resolveLoopbackApiUrl, } from "../loopback.js";
|
|
21
21
|
export { GITHUB_CREDENTIALS_STORE_PREFIX };
|
|
22
22
|
export const GITHUB_CREDENTIALS_NAMESPACE = [
|
|
23
23
|
GITHUB_CREDENTIALS_STORE_PREFIX,
|
|
@@ -30,15 +30,15 @@ export const GITHUB_CREDENTIAL_CACHE_MAX_ENTRIES = 256;
|
|
|
30
30
|
const processCache = new Map();
|
|
31
31
|
/** In-memory store for tests. */
|
|
32
32
|
export class InMemoryGitHubCredentialStore {
|
|
33
|
-
|
|
34
|
-
async
|
|
35
|
-
return this.
|
|
33
|
+
byUser = new Map();
|
|
34
|
+
async getByUserId(userId) {
|
|
35
|
+
return this.byUser.get(userId) ?? null;
|
|
36
36
|
}
|
|
37
37
|
async upsert(record) {
|
|
38
|
-
this.
|
|
38
|
+
this.byUser.set(record.userId, record);
|
|
39
39
|
}
|
|
40
|
-
async
|
|
41
|
-
this.
|
|
40
|
+
async removeByUserId(userId) {
|
|
41
|
+
this.byUser.delete(userId);
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
44
|
/** LangGraph Store–backed GitHub credential vault. */
|
|
@@ -47,20 +47,20 @@ export class LangGraphGitHubCredentialStore {
|
|
|
47
47
|
constructor(client) {
|
|
48
48
|
this.client = client;
|
|
49
49
|
}
|
|
50
|
-
async
|
|
51
|
-
const fromGraph = await readFromAmbientStore(
|
|
50
|
+
async getByUserId(userId) {
|
|
51
|
+
const fromGraph = await readFromAmbientStore(userId);
|
|
52
52
|
if (fromGraph) {
|
|
53
|
-
rememberCache(
|
|
53
|
+
rememberCache(userId, fromGraph, { localWrite: false });
|
|
54
54
|
return fromGraph;
|
|
55
55
|
}
|
|
56
56
|
let storeMiss = false;
|
|
57
57
|
let storeUnavailable = false;
|
|
58
58
|
try {
|
|
59
|
-
const item = await this.client.store.getItem([...GITHUB_CREDENTIALS_NAMESPACE],
|
|
59
|
+
const item = await this.client.store.getItem([...GITHUB_CREDENTIALS_NAMESPACE], userKey(userId));
|
|
60
60
|
if (item?.value && typeof item.value === "object") {
|
|
61
61
|
const record = valueToRecord(item.value);
|
|
62
62
|
if (record) {
|
|
63
|
-
rememberCache(
|
|
63
|
+
rememberCache(userId, record, { localWrite: false });
|
|
64
64
|
return record;
|
|
65
65
|
}
|
|
66
66
|
}
|
|
@@ -69,7 +69,7 @@ export class LangGraphGitHubCredentialStore {
|
|
|
69
69
|
catch {
|
|
70
70
|
storeUnavailable = true;
|
|
71
71
|
}
|
|
72
|
-
const cached = liveCacheEntry(
|
|
72
|
+
const cached = liveCacheEntry(userId);
|
|
73
73
|
if (cached) {
|
|
74
74
|
if (storeUnavailable) {
|
|
75
75
|
return cached.record;
|
|
@@ -81,19 +81,19 @@ export class LangGraphGitHubCredentialStore {
|
|
|
81
81
|
}
|
|
82
82
|
if (storeMiss) {
|
|
83
83
|
// Authoritative miss — honor unlink/rotate from another worker.
|
|
84
|
-
processCache.delete(
|
|
84
|
+
processCache.delete(userId);
|
|
85
85
|
}
|
|
86
86
|
return null;
|
|
87
87
|
}
|
|
88
88
|
async upsert(record) {
|
|
89
|
-
await this.client.store.putItem([...GITHUB_CREDENTIALS_NAMESPACE],
|
|
90
|
-
rememberCache(record.
|
|
89
|
+
await this.client.store.putItem([...GITHUB_CREDENTIALS_NAMESPACE], userKey(record.userId), recordToValue(record));
|
|
90
|
+
rememberCache(record.userId, record, { localWrite: true });
|
|
91
91
|
await writeToAmbientStore(record);
|
|
92
92
|
}
|
|
93
|
-
async
|
|
94
|
-
processCache.delete(
|
|
95
|
-
await this.client.store.deleteItem([...GITHUB_CREDENTIALS_NAMESPACE],
|
|
96
|
-
await deleteFromAmbientStore(
|
|
93
|
+
async removeByUserId(userId) {
|
|
94
|
+
processCache.delete(userId);
|
|
95
|
+
await this.client.store.deleteItem([...GITHUB_CREDENTIALS_NAMESPACE], userKey(userId));
|
|
96
|
+
await deleteFromAmbientStore(userId);
|
|
97
97
|
}
|
|
98
98
|
}
|
|
99
99
|
let defaultStore = null;
|
|
@@ -113,28 +113,41 @@ export function getGitHubCredentialStore() {
|
|
|
113
113
|
return defaultStore;
|
|
114
114
|
}
|
|
115
115
|
export function createLangGraphGitHubCredentialStore(options = {}) {
|
|
116
|
-
const
|
|
117
|
-
|
|
116
|
+
const serverApiKey = process.env[LANGSMITH_API_KEY_ENV]?.trim();
|
|
117
|
+
const configuredHandoffSecret = process.env[HANDOFF_SECRET_ENV]?.trim();
|
|
118
|
+
const explicitIngressSecret = options.ingressSecret?.trim();
|
|
119
|
+
const configuredIngressSecret = explicitIngressSecret || process.env[INGRESS_SECRET_ENV]?.trim();
|
|
120
|
+
const apiUrl = resolveLoopbackApiUrl(options.apiUrl);
|
|
121
|
+
const apiKey = resolveLoopbackApiKey(options.apiKey);
|
|
122
|
+
const isLocal = isLoopbackUrl(apiUrl);
|
|
123
|
+
const handoffSecret = isLocal ? configuredHandoffSecret : undefined;
|
|
124
|
+
const ingressSecret = isLocal ? configuredIngressSecret : undefined;
|
|
125
|
+
const usesServerApiKey = Boolean(serverApiKey && apiKey === serverApiKey);
|
|
126
|
+
if (!usesServerApiKey && !handoffSecret && !ingressSecret) {
|
|
118
127
|
return null;
|
|
119
128
|
}
|
|
120
|
-
const
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
129
|
+
const defaultHeaders = {
|
|
130
|
+
[USER_HEADER]: IDENTITY_LINKS_SERVICE_USER,
|
|
131
|
+
};
|
|
132
|
+
if (!usesServerApiKey && explicitIngressSecret && ingressSecret) {
|
|
133
|
+
defaultHeaders[INGRESS_SECRET_HEADER] = ingressSecret;
|
|
134
|
+
}
|
|
135
|
+
else if (handoffSecret) {
|
|
136
|
+
defaultHeaders[HANDOFF_SECRET_HEADER] = handoffSecret;
|
|
137
|
+
}
|
|
138
|
+
else if (!usesServerApiKey && ingressSecret) {
|
|
139
|
+
defaultHeaders[INGRESS_SECRET_HEADER] = ingressSecret;
|
|
140
|
+
}
|
|
125
141
|
const client = new Client({
|
|
126
142
|
apiUrl,
|
|
127
143
|
apiKey,
|
|
128
|
-
defaultHeaders
|
|
129
|
-
[INGRESS_SECRET_HEADER]: ingressSecret,
|
|
130
|
-
[ACTOR_HEADER]: IDENTITY_LINKS_SERVICE_ACTOR,
|
|
131
|
-
},
|
|
144
|
+
defaultHeaders,
|
|
132
145
|
});
|
|
133
146
|
return new LangGraphGitHubCredentialStore(client);
|
|
134
147
|
}
|
|
135
148
|
export function buildGitHubCredentialRecord(input) {
|
|
136
149
|
return {
|
|
137
|
-
|
|
150
|
+
userId: input.userId,
|
|
138
151
|
githubUserId: input.githubUserId,
|
|
139
152
|
githubLogin: input.githubLogin,
|
|
140
153
|
accessToken: input.accessToken,
|
|
@@ -146,25 +159,25 @@ export function buildGitHubCredentialRecord(input) {
|
|
|
146
159
|
source: "github_oauth",
|
|
147
160
|
};
|
|
148
161
|
}
|
|
149
|
-
function
|
|
150
|
-
return `actor:${
|
|
162
|
+
function userKey(userId) {
|
|
163
|
+
return `actor:${userId}`;
|
|
151
164
|
}
|
|
152
165
|
function recordToValue(record) {
|
|
153
166
|
return { ...record };
|
|
154
167
|
}
|
|
155
168
|
function valueToRecord(value) {
|
|
156
|
-
const
|
|
169
|
+
const userId = value.userId;
|
|
157
170
|
const githubUserId = value.githubUserId;
|
|
158
171
|
const githubLogin = value.githubLogin;
|
|
159
172
|
const accessToken = value.accessToken;
|
|
160
|
-
if (typeof
|
|
173
|
+
if (typeof userId !== "string" ||
|
|
161
174
|
typeof githubUserId !== "string" ||
|
|
162
175
|
typeof githubLogin !== "string" ||
|
|
163
176
|
typeof accessToken !== "string") {
|
|
164
177
|
return null;
|
|
165
178
|
}
|
|
166
179
|
return {
|
|
167
|
-
|
|
180
|
+
userId,
|
|
168
181
|
githubUserId,
|
|
169
182
|
githubLogin,
|
|
170
183
|
accessToken,
|
|
@@ -182,21 +195,21 @@ function valueToRecord(value) {
|
|
|
182
195
|
source: "github_oauth",
|
|
183
196
|
};
|
|
184
197
|
}
|
|
185
|
-
function rememberCache(
|
|
186
|
-
processCache.set(
|
|
198
|
+
function rememberCache(userId, record, options) {
|
|
199
|
+
processCache.set(userId, {
|
|
187
200
|
record,
|
|
188
201
|
cachedAtMs: Date.now(),
|
|
189
202
|
localWrite: options.localWrite,
|
|
190
203
|
});
|
|
191
204
|
evictExpiredAndOverflow();
|
|
192
205
|
}
|
|
193
|
-
function liveCacheEntry(
|
|
194
|
-
const entry = processCache.get(
|
|
206
|
+
function liveCacheEntry(userId) {
|
|
207
|
+
const entry = processCache.get(userId);
|
|
195
208
|
if (!entry) {
|
|
196
209
|
return undefined;
|
|
197
210
|
}
|
|
198
211
|
if (Date.now() - entry.cachedAtMs > GITHUB_CREDENTIAL_CACHE_TTL_MS) {
|
|
199
|
-
processCache.delete(
|
|
212
|
+
processCache.delete(userId);
|
|
200
213
|
return undefined;
|
|
201
214
|
}
|
|
202
215
|
return entry;
|
|
@@ -216,12 +229,12 @@ function evictExpiredAndOverflow() {
|
|
|
216
229
|
processCache.delete(oldest);
|
|
217
230
|
}
|
|
218
231
|
}
|
|
219
|
-
async function readFromAmbientStore(
|
|
232
|
+
async function readFromAmbientStore(userId) {
|
|
220
233
|
try {
|
|
221
234
|
const store = getStore();
|
|
222
235
|
if (!store)
|
|
223
236
|
return null;
|
|
224
|
-
const item = await store.get([...GITHUB_CREDENTIALS_NAMESPACE],
|
|
237
|
+
const item = await store.get([...GITHUB_CREDENTIALS_NAMESPACE], userKey(userId));
|
|
225
238
|
if (!item?.value || typeof item.value !== "object") {
|
|
226
239
|
return null;
|
|
227
240
|
}
|
|
@@ -237,18 +250,18 @@ async function writeToAmbientStore(record) {
|
|
|
237
250
|
const store = getStore();
|
|
238
251
|
if (!store)
|
|
239
252
|
return;
|
|
240
|
-
await store.put([...GITHUB_CREDENTIALS_NAMESPACE],
|
|
253
|
+
await store.put([...GITHUB_CREDENTIALS_NAMESPACE], userKey(record.userId), recordToValue(record));
|
|
241
254
|
}
|
|
242
255
|
catch {
|
|
243
256
|
// Best-effort; HTTP put already persisted.
|
|
244
257
|
}
|
|
245
258
|
}
|
|
246
|
-
async function deleteFromAmbientStore(
|
|
259
|
+
async function deleteFromAmbientStore(userId) {
|
|
247
260
|
try {
|
|
248
261
|
const store = getStore();
|
|
249
262
|
if (!store)
|
|
250
263
|
return;
|
|
251
|
-
await store.delete([...GITHUB_CREDENTIALS_NAMESPACE],
|
|
264
|
+
await store.delete([...GITHUB_CREDENTIALS_NAMESPACE], userKey(userId));
|
|
252
265
|
}
|
|
253
266
|
catch {
|
|
254
267
|
// Best-effort.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credentials-store.js","sourceRoot":"","sources":["../../../src/identity/github/credentials-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAElD,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"credentials-store.js","sourceRoot":"","sources":["../../../src/identity/github/credentials-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,13 +2,14 @@ import type { CredentialResolverConfig, RuntimeIdentity } from "../types.js";
|
|
|
2
2
|
/**
|
|
3
3
|
* Credential source a GitHub resolver may try for a downstream API call.
|
|
4
4
|
*
|
|
5
|
-
* - `"
|
|
5
|
+
* - `"user"` calls the user-supplied `resolveUserToken` hook, which defaults to
|
|
6
|
+
* the Connect-with-GitHub vault.
|
|
6
7
|
* - `"installation"` mints a GitHub App installation token.
|
|
7
8
|
* - `"pat"` uses a deployment-scoped personal access token.
|
|
8
9
|
*/
|
|
9
|
-
export type GitHubTokenSource = "
|
|
10
|
-
/** Arguments passed when GitHub credentials need
|
|
11
|
-
export interface
|
|
10
|
+
export type GitHubTokenSource = "user" | "installation" | "pat";
|
|
11
|
+
/** Arguments passed when GitHub credentials need a user-scoped OAuth token. */
|
|
12
|
+
export interface GitHubUserTokenArgs {
|
|
12
13
|
/** The frozen identity envelope for the current run. */
|
|
13
14
|
identity: RuntimeIdentity;
|
|
14
15
|
/** OAuth scopes the helper needs for this GitHub operation. */
|
|
@@ -28,7 +29,7 @@ export interface GitHubCredentialsOptions {
|
|
|
28
29
|
* `["installation", "pat"]`.
|
|
29
30
|
*/
|
|
30
31
|
read?: GitHubTokenSource[];
|
|
31
|
-
/** Token sources to try for write intents. Defaults to `["
|
|
32
|
+
/** Token sources to try for write intents. Defaults to `["user"]`. */
|
|
32
33
|
write?: GitHubTokenSource[];
|
|
33
34
|
/** GitHub App id. Falls back to `GITHUB_APP_ID`. */
|
|
34
35
|
appId?: string;
|
|
@@ -49,12 +50,12 @@ export interface GitHubCredentialsOptions {
|
|
|
49
50
|
*/
|
|
50
51
|
repositories?: string[];
|
|
51
52
|
/**
|
|
52
|
-
* Hook that mints or retrieves the
|
|
53
|
+
* Hook that mints or retrieves the caller's GitHub OAuth token. Defaults to
|
|
53
54
|
* the Connect-with-GitHub credential vault (populated by
|
|
54
55
|
* `/identity/github/connect`). Supply a custom hook to override until
|
|
55
56
|
* managed Agent Auth lands.
|
|
56
57
|
*/
|
|
57
|
-
|
|
58
|
+
resolveUserToken?: (args: GitHubUserTokenArgs) => Promise<string | undefined>;
|
|
58
59
|
/** Fetch implementation for GitHub App installation token exchange. */
|
|
59
60
|
fetch?: typeof fetch;
|
|
60
61
|
/** Test/custom hook for producing the GitHub App JWT. */
|
|
@@ -69,16 +70,18 @@ export interface GitHubCredentialsOptions {
|
|
|
69
70
|
* import { defineIdentity, github } from "managed-deepagents";
|
|
70
71
|
*
|
|
71
72
|
* export const identity = defineIdentity({
|
|
72
|
-
*
|
|
73
|
-
* scoping: { memory: "actor", credentials: "custom" },
|
|
74
|
-
* credentials: github.credentials({ repositories: ["acme/*"] }),
|
|
73
|
+
* credentials: credentials.github({ repositories: ["acme/*"] }),
|
|
75
74
|
* });
|
|
76
75
|
* ```
|
|
76
|
+
*
|
|
77
|
+
* When a chain reads user tokens from the managed vault, the returned config
|
|
78
|
+
* declares Connect-with-GitHub so `defineIdentity` mounts `/identity/github/…`
|
|
79
|
+
* without a separate `connect` entry.
|
|
77
80
|
*/
|
|
78
81
|
export declare function credentials(options?: GitHubCredentialsOptions): CredentialResolverConfig;
|
|
79
82
|
/**
|
|
80
|
-
* Default
|
|
81
|
-
* Returns undefined when the
|
|
83
|
+
* Default user-token lookup: Connect-with-GitHub vault keyed by user id.
|
|
84
|
+
* Returns undefined when the user has not connected GitHub yet.
|
|
82
85
|
*/
|
|
83
|
-
export declare function
|
|
86
|
+
export declare function defaultResolveUserToken(args: GitHubUserTokenArgs): Promise<string | undefined>;
|
|
84
87
|
//# sourceMappingURL=credentials.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../../../src/identity/github/credentials.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../../../src/identity/github/credentials.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,wBAAwB,EAGxB,eAAe,EAChB,MAAM,aAAa,CAAC;AAErB;;;;;;;GAOG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,cAAc,GAAG,KAAK,CAAC;AAEhE,+EAA+E;AAC/E,MAAM,WAAW,mBAAmB;IAClC,wDAAwD;IACxD,QAAQ,EAAE,eAAe,CAAC;IAC1B,+DAA+D;IAC/D,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,2DAA2D;AAC3D,MAAM,WAAW,gBAAgB;IAC/B,4CAA4C;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,2EAA2E;IAC3E,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,uCAAuC;AACvC,MAAM,WAAW,wBAAwB;IACvC;;;OAGG;IACH,IAAI,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC3B,sEAAsE;IACtE,KAAK,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC5B,oDAAoD;IACpD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sEAAsE;IACtE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6EAA6E;IAC7E,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,mBAAmB,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC9E,uEAAuE;IACvE,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB,yDAAyD;IACzD,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAC5D;AAaD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,WAAW,CACzB,OAAO,GAAE,wBAA6B,GACrC,wBAAwB,CAgC1B;AAgJD;;;GAGG;AACH,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAK7B"}
|