managed-deepagents 0.4.2 → 0.4.3-dev.94
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 +51 -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 +64 -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 +127 -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 +43 -32
- package/dist/runtime/auth.d.ts.map +1 -1
- package/dist/runtime/auth.js +225 -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":"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"}
|
|
@@ -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,EAEL,+BAA+B,
|
|
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,EAEL,+BAA+B,EAKhC,MAAM,uBAAuB,CAAC;AAG/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,CAsBvC;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 { 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 { 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,30 @@ 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 ingressSecret = options.ingressSecret?.trim() || process.env[INGRESS_SECRET_ENV]?.trim();
|
|
118
|
+
const apiUrl = resolveLoopbackApiUrl(options.apiUrl);
|
|
119
|
+
const apiKey = resolveLoopbackApiKey(options.apiKey);
|
|
120
|
+
const usesServerApiKey = Boolean(serverApiKey && apiKey === serverApiKey);
|
|
121
|
+
if (!usesServerApiKey && !ingressSecret) {
|
|
118
122
|
return null;
|
|
119
123
|
}
|
|
120
|
-
const
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
124
|
+
const defaultHeaders = {
|
|
125
|
+
[USER_HEADER]: IDENTITY_LINKS_SERVICE_USER,
|
|
126
|
+
};
|
|
127
|
+
if (!usesServerApiKey && ingressSecret) {
|
|
128
|
+
defaultHeaders[INGRESS_SECRET_HEADER] = ingressSecret;
|
|
129
|
+
}
|
|
125
130
|
const client = new Client({
|
|
126
131
|
apiUrl,
|
|
127
132
|
apiKey,
|
|
128
|
-
defaultHeaders
|
|
129
|
-
[INGRESS_SECRET_HEADER]: ingressSecret,
|
|
130
|
-
[ACTOR_HEADER]: IDENTITY_LINKS_SERVICE_ACTOR,
|
|
131
|
-
},
|
|
133
|
+
defaultHeaders,
|
|
132
134
|
});
|
|
133
135
|
return new LangGraphGitHubCredentialStore(client);
|
|
134
136
|
}
|
|
135
137
|
export function buildGitHubCredentialRecord(input) {
|
|
136
138
|
return {
|
|
137
|
-
|
|
139
|
+
userId: input.userId,
|
|
138
140
|
githubUserId: input.githubUserId,
|
|
139
141
|
githubLogin: input.githubLogin,
|
|
140
142
|
accessToken: input.accessToken,
|
|
@@ -146,25 +148,25 @@ export function buildGitHubCredentialRecord(input) {
|
|
|
146
148
|
source: "github_oauth",
|
|
147
149
|
};
|
|
148
150
|
}
|
|
149
|
-
function
|
|
150
|
-
return `actor:${
|
|
151
|
+
function userKey(userId) {
|
|
152
|
+
return `actor:${userId}`;
|
|
151
153
|
}
|
|
152
154
|
function recordToValue(record) {
|
|
153
155
|
return { ...record };
|
|
154
156
|
}
|
|
155
157
|
function valueToRecord(value) {
|
|
156
|
-
const
|
|
158
|
+
const userId = value.userId;
|
|
157
159
|
const githubUserId = value.githubUserId;
|
|
158
160
|
const githubLogin = value.githubLogin;
|
|
159
161
|
const accessToken = value.accessToken;
|
|
160
|
-
if (typeof
|
|
162
|
+
if (typeof userId !== "string" ||
|
|
161
163
|
typeof githubUserId !== "string" ||
|
|
162
164
|
typeof githubLogin !== "string" ||
|
|
163
165
|
typeof accessToken !== "string") {
|
|
164
166
|
return null;
|
|
165
167
|
}
|
|
166
168
|
return {
|
|
167
|
-
|
|
169
|
+
userId,
|
|
168
170
|
githubUserId,
|
|
169
171
|
githubLogin,
|
|
170
172
|
accessToken,
|
|
@@ -182,21 +184,21 @@ function valueToRecord(value) {
|
|
|
182
184
|
source: "github_oauth",
|
|
183
185
|
};
|
|
184
186
|
}
|
|
185
|
-
function rememberCache(
|
|
186
|
-
processCache.set(
|
|
187
|
+
function rememberCache(userId, record, options) {
|
|
188
|
+
processCache.set(userId, {
|
|
187
189
|
record,
|
|
188
190
|
cachedAtMs: Date.now(),
|
|
189
191
|
localWrite: options.localWrite,
|
|
190
192
|
});
|
|
191
193
|
evictExpiredAndOverflow();
|
|
192
194
|
}
|
|
193
|
-
function liveCacheEntry(
|
|
194
|
-
const entry = processCache.get(
|
|
195
|
+
function liveCacheEntry(userId) {
|
|
196
|
+
const entry = processCache.get(userId);
|
|
195
197
|
if (!entry) {
|
|
196
198
|
return undefined;
|
|
197
199
|
}
|
|
198
200
|
if (Date.now() - entry.cachedAtMs > GITHUB_CREDENTIAL_CACHE_TTL_MS) {
|
|
199
|
-
processCache.delete(
|
|
201
|
+
processCache.delete(userId);
|
|
200
202
|
return undefined;
|
|
201
203
|
}
|
|
202
204
|
return entry;
|
|
@@ -216,12 +218,12 @@ function evictExpiredAndOverflow() {
|
|
|
216
218
|
processCache.delete(oldest);
|
|
217
219
|
}
|
|
218
220
|
}
|
|
219
|
-
async function readFromAmbientStore(
|
|
221
|
+
async function readFromAmbientStore(userId) {
|
|
220
222
|
try {
|
|
221
223
|
const store = getStore();
|
|
222
224
|
if (!store)
|
|
223
225
|
return null;
|
|
224
|
-
const item = await store.get([...GITHUB_CREDENTIALS_NAMESPACE],
|
|
226
|
+
const item = await store.get([...GITHUB_CREDENTIALS_NAMESPACE], userKey(userId));
|
|
225
227
|
if (!item?.value || typeof item.value !== "object") {
|
|
226
228
|
return null;
|
|
227
229
|
}
|
|
@@ -237,18 +239,18 @@ async function writeToAmbientStore(record) {
|
|
|
237
239
|
const store = getStore();
|
|
238
240
|
if (!store)
|
|
239
241
|
return;
|
|
240
|
-
await store.put([...GITHUB_CREDENTIALS_NAMESPACE],
|
|
242
|
+
await store.put([...GITHUB_CREDENTIALS_NAMESPACE], userKey(record.userId), recordToValue(record));
|
|
241
243
|
}
|
|
242
244
|
catch {
|
|
243
245
|
// Best-effort; HTTP put already persisted.
|
|
244
246
|
}
|
|
245
247
|
}
|
|
246
|
-
async function deleteFromAmbientStore(
|
|
248
|
+
async function deleteFromAmbientStore(userId) {
|
|
247
249
|
try {
|
|
248
250
|
const store = getStore();
|
|
249
251
|
if (!store)
|
|
250
252
|
return;
|
|
251
|
-
await store.delete([...GITHUB_CREDENTIALS_NAMESPACE],
|
|
253
|
+
await store.delete([...GITHUB_CREDENTIALS_NAMESPACE], userKey(userId));
|
|
252
254
|
}
|
|
253
255
|
catch {
|
|
254
256
|
// 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"}
|