managed-deepagents 0.4.1 → 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 +19 -14
- package/dist/identity/github/credentials.d.ts.map +1 -1
- package/dist/identity/github/credentials.js +54 -24
- 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 -22
- package/dist/runtime/connector.d.ts.map +1 -1
- package/dist/runtime/connector.js +68 -33
- 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/eval-filesystem.d.ts +7 -0
- package/dist/runtime/eval-filesystem.d.ts.map +1 -0
- package/dist/runtime/eval-filesystem.js +44 -0
- package/dist/runtime/eval-filesystem.js.map +1 -0
- 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 +97 -227
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/index.js +114 -64
- 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 +22 -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 -23
- package/dist/channels/collect.d.ts.map +0 -1
- package/dist/channels/collect.js +0 -46
- 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 -80
- package/dist/connectors/github/index.d.ts.map +0 -1
- package/dist/connectors/github/index.js +0 -118
- 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 -519
- 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,198 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `defineGitHubChannel` — declarative GitHub App webhook channel authoring.
|
|
3
|
-
*
|
|
4
|
-
* Authors declare **handlers** (event filter + optional repo scope + `prompt`).
|
|
5
|
-
* `instructions.md` remains the agent system prompt; each handler's `prompt`
|
|
6
|
-
* builds the human message for that webhook turn.
|
|
7
|
-
*
|
|
8
|
-
* MDA does **not** ship copies of GitHub webhook payload types. Prefer
|
|
9
|
-
* [`@octokit/webhooks-types`](https://www.npmjs.com/package/@octokit/webhooks-types)
|
|
10
|
-
* in the agent project and narrow {@link GitHubWebhookPromptEvent.payload}:
|
|
11
|
-
*
|
|
12
|
-
* @example
|
|
13
|
-
* ```ts
|
|
14
|
-
* import type { PullRequestOpenedEvent } from "@octokit/webhooks-types";
|
|
15
|
-
*
|
|
16
|
-
* prompt(event) {
|
|
17
|
-
* const pr = event.payload as PullRequestOpenedEvent;
|
|
18
|
-
* return `Review ${pr.pull_request.title}`;
|
|
19
|
-
* }
|
|
20
|
-
* ```
|
|
21
|
-
*/
|
|
22
|
-
import { type ChannelDefinition, type ChannelManifestBody } from "../plugin.js";
|
|
23
|
-
/**
|
|
24
|
-
* GitHub webhook filter for a handler's {@link GitHubChannelHandler.on}.
|
|
25
|
-
*
|
|
26
|
-
* - `"pull_request"` — any action for that `X-GitHub-Event`
|
|
27
|
-
* - `"pull_request.opened"` — event + `payload.action`
|
|
28
|
-
* - `"*"` — every webhook delivery
|
|
29
|
-
*
|
|
30
|
-
* Any non-empty string is accepted; MDA does not maintain an event allowlist.
|
|
31
|
-
*/
|
|
32
|
-
export type GitHubChannelTrigger = string;
|
|
33
|
-
/**
|
|
34
|
-
* Envelope passed to {@link GitHubChannelHandler.prompt}.
|
|
35
|
-
*
|
|
36
|
-
* Common routing fields are lifted for filters / auto-reply. The raw webhook
|
|
37
|
-
* JSON stays on {@link GitHubWebhookPromptEvent.payload} as `unknown` so callers
|
|
38
|
-
* can narrow with Octokit (or other) types without MDA duplicating schemas.
|
|
39
|
-
*/
|
|
40
|
-
export interface GitHubWebhookPromptEvent {
|
|
41
|
-
/**
|
|
42
|
-
* `X-GitHub-Event` header value (e.g. `"pull_request"`, `"issues"`, `"push"`).
|
|
43
|
-
*/
|
|
44
|
-
eventName: string;
|
|
45
|
-
/**
|
|
46
|
-
* `payload.action` when present (e.g. `"opened"`). Omitted for events without
|
|
47
|
-
* an action field.
|
|
48
|
-
*/
|
|
49
|
-
action?: string;
|
|
50
|
-
/**
|
|
51
|
-
* Convenience id: `eventName` or `eventName.action` when `action` is set.
|
|
52
|
-
*
|
|
53
|
-
* @example `"pull_request.opened"`
|
|
54
|
-
*/
|
|
55
|
-
trigger: string;
|
|
56
|
-
/** `X-GitHub-Delivery` header. */
|
|
57
|
-
deliveryId: string;
|
|
58
|
-
/** Repository full name (`owner/repo`) when the payload includes `repository`. */
|
|
59
|
-
repository?: string;
|
|
60
|
-
/** GitHub App installation id when present on the payload or env fallback. */
|
|
61
|
-
installationId?: string;
|
|
62
|
-
/**
|
|
63
|
-
* Issue or pull request number when the payload includes one (used for
|
|
64
|
-
* source-thread keys and auto-reply comments).
|
|
65
|
-
*/
|
|
66
|
-
issueOrPullNumber?: number;
|
|
67
|
-
/**
|
|
68
|
-
* Verified webhook JSON body. Treat as `unknown` and narrow with
|
|
69
|
-
* `@octokit/webhooks-types` (or equivalent) in the agent project.
|
|
70
|
-
*/
|
|
71
|
-
payload: unknown;
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* One subscription inside {@link defineGitHubChannel}.
|
|
75
|
-
*
|
|
76
|
-
* Handlers are matched in order: first handler whose `on` matches the webhook
|
|
77
|
-
* and whose `repositories` allowlist (if set) includes the repo wins.
|
|
78
|
-
*/
|
|
79
|
-
export interface GitHubChannelHandler {
|
|
80
|
-
/**
|
|
81
|
-
* Which deliveries this handler accepts.
|
|
82
|
-
*
|
|
83
|
-
* @see GitHubChannelTrigger
|
|
84
|
-
*/
|
|
85
|
-
on: GitHubChannelTrigger;
|
|
86
|
-
/**
|
|
87
|
-
* Restrict this handler to these repositories (`owner/repo`).
|
|
88
|
-
* Omit or leave empty to accept any repository (including payloads with no
|
|
89
|
-
* `repository` field when the allowlist is omitted).
|
|
90
|
-
*/
|
|
91
|
-
repositories?: readonly string[];
|
|
92
|
-
/**
|
|
93
|
-
* When `true` and the payload identifies an issue/PR (`owner/repo#N`), post
|
|
94
|
-
* the agent’s final reply as an issue comment on that conversation. When
|
|
95
|
-
* `false`, or when no issue/PR number can be resolved, the agent still runs
|
|
96
|
-
* but no comment is posted.
|
|
97
|
-
*
|
|
98
|
-
* @default true
|
|
99
|
-
*/
|
|
100
|
-
autoReply?: boolean;
|
|
101
|
-
/**
|
|
102
|
-
* Build the human message for the agent turn from the webhook envelope.
|
|
103
|
-
*
|
|
104
|
-
* Narrow `event.payload` with `@octokit/webhooks-types` in your project —
|
|
105
|
-
* MDA does not vendor those schemas.
|
|
106
|
-
*/
|
|
107
|
-
prompt: (event: GitHubWebhookPromptEvent) => string;
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* Serializable handler metadata embedded in the compile/deploy manifest.
|
|
111
|
-
* Live `prompt` callbacks are not included — they come from the imported module.
|
|
112
|
-
*/
|
|
113
|
-
export interface GitHubChannelHandlerManifest {
|
|
114
|
-
/** Event filter (`event`, `event.action`, or `"*"`). */
|
|
115
|
-
on: GitHubChannelTrigger;
|
|
116
|
-
/** Optional repo allowlist (`owner/repo`). */
|
|
117
|
-
repositories?: readonly string[];
|
|
118
|
-
/** Whether this handler attempts a PR/issue comment after the agent run. */
|
|
119
|
-
autoReply: boolean;
|
|
120
|
-
}
|
|
121
|
-
/**
|
|
122
|
-
* Authoring input for {@link defineGitHubChannel}.
|
|
123
|
-
*
|
|
124
|
-
* Routing and per-event task text only — agent persona/tools stay on
|
|
125
|
-
* `instructions.md` and the agent definition.
|
|
126
|
-
*/
|
|
127
|
-
export interface GitHubChannelConfig {
|
|
128
|
-
/**
|
|
129
|
-
* Ordered handler list. First match wins for each webhook delivery.
|
|
130
|
-
*/
|
|
131
|
-
handlers: readonly GitHubChannelHandler[];
|
|
132
|
-
}
|
|
133
|
-
/**
|
|
134
|
-
* Normalized GitHub channel config after {@link defineGitHubChannel} validation.
|
|
135
|
-
*
|
|
136
|
-
* Retains live `prompt` callbacks for runtime. Used when the channel module is
|
|
137
|
-
* imported by the managed HTTP app.
|
|
138
|
-
*/
|
|
139
|
-
export interface RequiredGitHubChannelConfig {
|
|
140
|
-
/** Normalized handlers with defaults applied (`autoReply` → `true`). */
|
|
141
|
-
handlers: readonly RequiredGitHubChannelHandler[];
|
|
142
|
-
}
|
|
143
|
-
/**
|
|
144
|
-
* Normalized handler with defaults applied.
|
|
145
|
-
*/
|
|
146
|
-
export interface RequiredGitHubChannelHandler {
|
|
147
|
-
on: GitHubChannelTrigger;
|
|
148
|
-
repositories?: readonly string[];
|
|
149
|
-
autoReply: boolean;
|
|
150
|
-
prompt: (event: GitHubWebhookPromptEvent) => string;
|
|
151
|
-
}
|
|
152
|
-
/**
|
|
153
|
-
* Validated channel declaration returned by {@link defineGitHubChannel}.
|
|
154
|
-
*
|
|
155
|
-
* Files under `channels/*.ts` export a named `channel` of this shape for CLI
|
|
156
|
-
* discovery. The live object (including `prompt` callbacks) is imported at
|
|
157
|
-
* runtime via `_mda_channels`; the JSON manifest carries only serializable
|
|
158
|
-
* metadata for deploy secrets and mount.
|
|
159
|
-
*/
|
|
160
|
-
export type GitHubChannelDefinition = ChannelDefinition<RequiredGitHubChannelConfig>;
|
|
161
|
-
/** Env vars for Phase 1 single-install GitHub App webhooks. */
|
|
162
|
-
export declare const GITHUB_CHANNEL_REQUIRED_ENV: readonly ["GITHUB_WEBHOOK_SECRET", "GITHUB_APP_ID", "GITHUB_APP_PRIVATE_KEY", "GITHUB_INSTALLATION_ID"];
|
|
163
|
-
/**
|
|
164
|
-
* Declare a managed GitHub channel. Files under `channels/*.ts` export a named
|
|
165
|
-
* `channel` created with this helper.
|
|
166
|
-
*
|
|
167
|
-
* @param config - Handlers that map webhook events to agent turns.
|
|
168
|
-
*/
|
|
169
|
-
export declare function defineGitHubChannel(config: GitHubChannelConfig): GitHubChannelDefinition;
|
|
170
|
-
/**
|
|
171
|
-
* GitHub App permissions implied by handlers.
|
|
172
|
-
*
|
|
173
|
-
* Auto-reply comments need `issues:write`. Contents/metadata reads are declared
|
|
174
|
-
* broadly so arbitrary webhook handlers can inspect payloads; tighten App
|
|
175
|
-
* permissions in GitHub settings to match what you actually use.
|
|
176
|
-
*/
|
|
177
|
-
export declare function requiredGitHubPermissions(config: RequiredGitHubChannelConfig): string[];
|
|
178
|
-
/**
|
|
179
|
-
* Build author-supplied deploy fields for a GitHub channel.
|
|
180
|
-
*
|
|
181
|
-
* `name` and `provider` are stamped by {@link defineChannel} / `toManifest(name)`.
|
|
182
|
-
*/
|
|
183
|
-
export declare function toGitHubChannelManifest(definition: GitHubChannelDefinition | RequiredGitHubChannelConfig): ChannelManifestBody;
|
|
184
|
-
/**
|
|
185
|
-
* Whether a handler `on` filter matches a delivery.
|
|
186
|
-
*
|
|
187
|
-
* @param on - `"*"`, `"pull_request"`, or `"pull_request.opened"`
|
|
188
|
-
* @param eventName - `X-GitHub-Event`
|
|
189
|
-
* @param action - `payload.action` when present
|
|
190
|
-
*/
|
|
191
|
-
export declare function githubTriggerMatches(on: string, eventName: string, action?: string): boolean;
|
|
192
|
-
/**
|
|
193
|
-
* Find the first handler that matches event/action + repository.
|
|
194
|
-
*
|
|
195
|
-
* @returns The handler, or `undefined` when no handler matches (event ignored).
|
|
196
|
-
*/
|
|
197
|
-
export declare function matchGitHubHandler(config: RequiredGitHubChannelConfig, eventName: string, repository: string | undefined, action?: string): RequiredGitHubChannelHandler | undefined;
|
|
198
|
-
//# sourceMappingURL=define.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"define.d.ts","sourceRoot":"","sources":["../../../src/channels/github/define.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,166 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `defineGitHubChannel` — declarative GitHub App webhook channel authoring.
|
|
3
|
-
*
|
|
4
|
-
* Authors declare **handlers** (event filter + optional repo scope + `prompt`).
|
|
5
|
-
* `instructions.md` remains the agent system prompt; each handler's `prompt`
|
|
6
|
-
* builds the human message for that webhook turn.
|
|
7
|
-
*
|
|
8
|
-
* MDA does **not** ship copies of GitHub webhook payload types. Prefer
|
|
9
|
-
* [`@octokit/webhooks-types`](https://www.npmjs.com/package/@octokit/webhooks-types)
|
|
10
|
-
* in the agent project and narrow {@link GitHubWebhookPromptEvent.payload}:
|
|
11
|
-
*
|
|
12
|
-
* @example
|
|
13
|
-
* ```ts
|
|
14
|
-
* import type { PullRequestOpenedEvent } from "@octokit/webhooks-types";
|
|
15
|
-
*
|
|
16
|
-
* prompt(event) {
|
|
17
|
-
* const pr = event.payload as PullRequestOpenedEvent;
|
|
18
|
-
* return `Review ${pr.pull_request.title}`;
|
|
19
|
-
* }
|
|
20
|
-
* ```
|
|
21
|
-
*/
|
|
22
|
-
import { defineChannel, } from "../plugin.js";
|
|
23
|
-
import { githubChannelAdapter } from "./adapter-core.js";
|
|
24
|
-
/** Env vars for Phase 1 single-install GitHub App webhooks. */
|
|
25
|
-
export const GITHUB_CHANNEL_REQUIRED_ENV = [
|
|
26
|
-
"GITHUB_WEBHOOK_SECRET",
|
|
27
|
-
"GITHUB_APP_ID",
|
|
28
|
-
"GITHUB_APP_PRIVATE_KEY",
|
|
29
|
-
"GITHUB_INSTALLATION_ID",
|
|
30
|
-
];
|
|
31
|
-
/**
|
|
32
|
-
* Declare a managed GitHub channel. Files under `channels/*.ts` export a named
|
|
33
|
-
* `channel` created with this helper.
|
|
34
|
-
*
|
|
35
|
-
* @param config - Handlers that map webhook events to agent turns.
|
|
36
|
-
*/
|
|
37
|
-
export function defineGitHubChannel(config) {
|
|
38
|
-
const normalized = validateAndNormalize(config);
|
|
39
|
-
return defineChannel({
|
|
40
|
-
provider: "github",
|
|
41
|
-
adapter: githubChannelAdapter,
|
|
42
|
-
config: normalized,
|
|
43
|
-
toManifest: () => toGitHubChannelManifest(normalized),
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* GitHub App permissions implied by handlers.
|
|
48
|
-
*
|
|
49
|
-
* Auto-reply comments need `issues:write`. Contents/metadata reads are declared
|
|
50
|
-
* broadly so arbitrary webhook handlers can inspect payloads; tighten App
|
|
51
|
-
* permissions in GitHub settings to match what you actually use.
|
|
52
|
-
*/
|
|
53
|
-
export function requiredGitHubPermissions(config) {
|
|
54
|
-
const perms = new Set(["metadata:read"]);
|
|
55
|
-
for (const handler of config.handlers) {
|
|
56
|
-
if (handler.autoReply) {
|
|
57
|
-
perms.add("issues:write");
|
|
58
|
-
perms.add("pull_requests:read");
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
return [...perms].sort();
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Build author-supplied deploy fields for a GitHub channel.
|
|
65
|
-
*
|
|
66
|
-
* `name` and `provider` are stamped by {@link defineChannel} / `toManifest(name)`.
|
|
67
|
-
*/
|
|
68
|
-
export function toGitHubChannelManifest(definition) {
|
|
69
|
-
const config = "config" in definition && definition.config
|
|
70
|
-
? definition.config
|
|
71
|
-
: definition;
|
|
72
|
-
const handlers = config.handlers.map((handler) => ({
|
|
73
|
-
on: handler.on,
|
|
74
|
-
repositories: handler.repositories,
|
|
75
|
-
autoReply: handler.autoReply,
|
|
76
|
-
}));
|
|
77
|
-
const triggers = [...new Set(handlers.map((h) => h.on))];
|
|
78
|
-
const anyAutoReply = handlers.some((h) => h.autoReply);
|
|
79
|
-
return {
|
|
80
|
-
autoReply: anyAutoReply,
|
|
81
|
-
requiredPermissions: requiredGitHubPermissions(config),
|
|
82
|
-
requiredEnv: [...GITHUB_CHANNEL_REQUIRED_ENV],
|
|
83
|
-
providerConfig: {
|
|
84
|
-
triggers,
|
|
85
|
-
handlers: handlers,
|
|
86
|
-
},
|
|
87
|
-
};
|
|
88
|
-
}
|
|
89
|
-
/**
|
|
90
|
-
* Whether a handler `on` filter matches a delivery.
|
|
91
|
-
*
|
|
92
|
-
* @param on - `"*"`, `"pull_request"`, or `"pull_request.opened"`
|
|
93
|
-
* @param eventName - `X-GitHub-Event`
|
|
94
|
-
* @param action - `payload.action` when present
|
|
95
|
-
*/
|
|
96
|
-
export function githubTriggerMatches(on, eventName, action) {
|
|
97
|
-
if (!on || !eventName)
|
|
98
|
-
return false;
|
|
99
|
-
if (on === "*")
|
|
100
|
-
return true;
|
|
101
|
-
if (on === eventName)
|
|
102
|
-
return true;
|
|
103
|
-
if (action !== undefined && on === `${eventName}.${action}`)
|
|
104
|
-
return true;
|
|
105
|
-
return false;
|
|
106
|
-
}
|
|
107
|
-
/**
|
|
108
|
-
* Find the first handler that matches event/action + repository.
|
|
109
|
-
*
|
|
110
|
-
* @returns The handler, or `undefined` when no handler matches (event ignored).
|
|
111
|
-
*/
|
|
112
|
-
export function matchGitHubHandler(config, eventName, repository, action) {
|
|
113
|
-
for (const handler of config.handlers) {
|
|
114
|
-
if (!githubTriggerMatches(handler.on, eventName, action))
|
|
115
|
-
continue;
|
|
116
|
-
const repos = handler.repositories;
|
|
117
|
-
if (repos && repos.length > 0) {
|
|
118
|
-
if (!repository || !repos.includes(repository))
|
|
119
|
-
continue;
|
|
120
|
-
}
|
|
121
|
-
return handler;
|
|
122
|
-
}
|
|
123
|
-
return undefined;
|
|
124
|
-
}
|
|
125
|
-
function validateAndNormalize(config) {
|
|
126
|
-
if (config === null || typeof config !== "object") {
|
|
127
|
-
throw new Error("defineGitHubChannel(...) requires a configuration object.");
|
|
128
|
-
}
|
|
129
|
-
if (!Array.isArray(config.handlers) || config.handlers.length === 0) {
|
|
130
|
-
throw new Error("defineGitHubChannel(...) requires a non-empty `handlers` array.");
|
|
131
|
-
}
|
|
132
|
-
const handlers = [];
|
|
133
|
-
for (let i = 0; i < config.handlers.length; i++) {
|
|
134
|
-
const raw = config.handlers[i];
|
|
135
|
-
if (raw === null || typeof raw !== "object") {
|
|
136
|
-
throw new Error(`defineGitHubChannel(...) handlers[${i}] must be an object.`);
|
|
137
|
-
}
|
|
138
|
-
if (typeof raw.on !== "string" || raw.on.trim().length === 0) {
|
|
139
|
-
throw new Error(`defineGitHubChannel(...) handlers[${i}].on must be a non-empty string ` +
|
|
140
|
-
'(e.g. "pull_request", "pull_request.opened", or "*").');
|
|
141
|
-
}
|
|
142
|
-
if (typeof raw.prompt !== "function") {
|
|
143
|
-
throw new Error(`defineGitHubChannel(...) handlers[${i}] requires a \`prompt\` function.`);
|
|
144
|
-
}
|
|
145
|
-
const autoReply = raw.autoReply ?? true;
|
|
146
|
-
if (typeof autoReply !== "boolean") {
|
|
147
|
-
throw new Error(`defineGitHubChannel(...) handlers[${i}].autoReply must be a boolean.`);
|
|
148
|
-
}
|
|
149
|
-
let repositories;
|
|
150
|
-
if (raw.repositories !== undefined) {
|
|
151
|
-
if (!Array.isArray(raw.repositories) ||
|
|
152
|
-
raw.repositories.some((v) => typeof v !== "string")) {
|
|
153
|
-
throw new Error(`defineGitHubChannel(...) handlers[${i}].repositories must be an array of strings.`);
|
|
154
|
-
}
|
|
155
|
-
repositories = [...raw.repositories];
|
|
156
|
-
}
|
|
157
|
-
handlers.push({
|
|
158
|
-
on: raw.on.trim(),
|
|
159
|
-
repositories,
|
|
160
|
-
autoReply,
|
|
161
|
-
prompt: raw.prompt,
|
|
162
|
-
});
|
|
163
|
-
}
|
|
164
|
-
return { handlers };
|
|
165
|
-
}
|
|
166
|
-
//# sourceMappingURL=define.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"define.js","sourceRoot":"","sources":["../../../src/channels/github/define.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Managed GitHub App webhook HTTP handler + agent runner.
|
|
3
|
-
*/
|
|
4
|
-
import { InMemoryChannelStore } from "../store.js";
|
|
5
|
-
import { invokeChannelAgent } from "../slack/http.js";
|
|
6
|
-
import type { GitHubChannelDefinition, RequiredGitHubChannelConfig } from "./define.js";
|
|
7
|
-
export interface GitHubChannelHttpConfig {
|
|
8
|
-
name: string;
|
|
9
|
-
config: RequiredGitHubChannelConfig;
|
|
10
|
-
/** Live channel definition (preferred); supplies handlers with `prompt`. */
|
|
11
|
-
definition?: GitHubChannelDefinition;
|
|
12
|
-
store?: InMemoryChannelStore;
|
|
13
|
-
schedule?: (work: () => Promise<void>) => void;
|
|
14
|
-
invokeAgent?: typeof invokeChannelAgent;
|
|
15
|
-
rawBody?: string | Uint8Array;
|
|
16
|
-
webhookSecret?: string;
|
|
17
|
-
installationId?: string;
|
|
18
|
-
assistantId?: string;
|
|
19
|
-
deploymentId?: string;
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Handle `POST /channels/{name}/events` for a GitHub App webhook.
|
|
23
|
-
*/
|
|
24
|
-
export declare function handleGitHubEventsRequest(request: Request, channel: GitHubChannelHttpConfig): Promise<Response>;
|
|
25
|
-
//# sourceMappingURL=http.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/channels/github/http.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAOnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EACV,uBAAuB,EACvB,2BAA2B,EAC5B,MAAM,aAAa,CAAC;AAgBrB,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,2BAA2B,CAAC;IACpC,4EAA4E;IAC5E,UAAU,CAAC,EAAE,uBAAuB,CAAC;IACrC,KAAK,CAAC,EAAE,oBAAoB,CAAC;IAC7B,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;IAC/C,WAAW,CAAC,EAAE,OAAO,kBAAkB,CAAC;IACxC,OAAO,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,QAAQ,CAAC,CAqJnB"}
|
|
@@ -1,147 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Managed GitHub App webhook HTTP handler + agent runner.
|
|
3
|
-
*/
|
|
4
|
-
import { ChannelError } from "../errors.js";
|
|
5
|
-
import { InMemoryChannelStore } from "../store.js";
|
|
6
|
-
import { clearFinalPosted, wasDeliveryFinalPosted, } from "../binding.js";
|
|
7
|
-
import { createRuntimeChannel } from "../runtime.js";
|
|
8
|
-
import { invokeChannelAgent } from "../slack/http.js";
|
|
9
|
-
import { GITHUB_WEBHOOK_SECRET_ENV, normalizeGitHubEvent, verifyGitHubWebhookSignature, } from "./normalize.js";
|
|
10
|
-
import { createGitHubAppTransport, GITHUB_APP_ID_ENV, GITHUB_APP_PRIVATE_KEY_ENV, GITHUB_INSTALLATION_ID_ENV, } from "./transport.js";
|
|
11
|
-
const DEFAULT_ASSISTANT_ID = "agent";
|
|
12
|
-
const defaultStore = new InMemoryChannelStore();
|
|
13
|
-
/**
|
|
14
|
-
* Handle `POST /channels/{name}/events` for a GitHub App webhook.
|
|
15
|
-
*/
|
|
16
|
-
export async function handleGitHubEventsRequest(request, channel) {
|
|
17
|
-
const secret = channel.webhookSecret ?? process.env[GITHUB_WEBHOOK_SECRET_ENV] ?? "";
|
|
18
|
-
const rawBody = channel.rawBody ?? (await request.text());
|
|
19
|
-
const signature = request.headers.get("x-hub-signature-256") ?? "";
|
|
20
|
-
try {
|
|
21
|
-
verifyGitHubWebhookSignature(rawBody, signature, secret);
|
|
22
|
-
}
|
|
23
|
-
catch (error) {
|
|
24
|
-
if (error instanceof ChannelError) {
|
|
25
|
-
return jsonError(401, error.message);
|
|
26
|
-
}
|
|
27
|
-
throw error;
|
|
28
|
-
}
|
|
29
|
-
let body;
|
|
30
|
-
try {
|
|
31
|
-
const text = typeof rawBody === "string" ? rawBody : new TextDecoder().decode(rawBody);
|
|
32
|
-
body = JSON.parse(text);
|
|
33
|
-
}
|
|
34
|
-
catch {
|
|
35
|
-
return jsonError(400, "invalid JSON body");
|
|
36
|
-
}
|
|
37
|
-
const eventName = request.headers.get("x-github-event") ?? "";
|
|
38
|
-
const deliveryHeader = request.headers.get("x-github-delivery") ?? "";
|
|
39
|
-
const installationId = channel.installationId ?? process.env[GITHUB_INSTALLATION_ID_ENV] ?? "";
|
|
40
|
-
const config = channel.definition?.config ?? channel.config;
|
|
41
|
-
const normalized = normalizeGitHubEvent(body, { eventName, deliveryId: deliveryHeader || cryptoRandom() }, config, installationId);
|
|
42
|
-
const store = channel.store ?? defaultStore;
|
|
43
|
-
const deploymentId = channel.deploymentId ?? "local";
|
|
44
|
-
if (normalized.ignored) {
|
|
45
|
-
store.acceptDelivery({
|
|
46
|
-
deploymentId,
|
|
47
|
-
channelDefinitionId: channel.name,
|
|
48
|
-
provider: "github",
|
|
49
|
-
apiAppId: installationId,
|
|
50
|
-
eventId: normalized.event.eventId,
|
|
51
|
-
sourceThreadKey: normalized.sourceThreadKey || "ignored",
|
|
52
|
-
status: "filtered",
|
|
53
|
-
filterReason: "event_filtered",
|
|
54
|
-
event: normalized.event,
|
|
55
|
-
});
|
|
56
|
-
return new Response("", { status: 202 });
|
|
57
|
-
}
|
|
58
|
-
const { delivery, duplicate } = store.acceptDelivery({
|
|
59
|
-
deploymentId,
|
|
60
|
-
channelDefinitionId: channel.name,
|
|
61
|
-
provider: "github",
|
|
62
|
-
apiAppId: installationId,
|
|
63
|
-
eventId: normalized.event.eventId,
|
|
64
|
-
sourceThreadKey: normalized.sourceThreadKey,
|
|
65
|
-
status: "accepted",
|
|
66
|
-
event: normalized.event,
|
|
67
|
-
});
|
|
68
|
-
if (duplicate) {
|
|
69
|
-
return new Response("", { status: 202 });
|
|
70
|
-
}
|
|
71
|
-
const schedule = channel.schedule ??
|
|
72
|
-
((work) => {
|
|
73
|
-
work().catch((error) => {
|
|
74
|
-
console.error(`[mda] channel "${channel.name}" delivery ${delivery.deliveryId} failed:`, error);
|
|
75
|
-
});
|
|
76
|
-
});
|
|
77
|
-
const invoke = channel.invokeAgent ?? invokeChannelAgent;
|
|
78
|
-
const actorId = `github-app:${installationId || "unknown"}`;
|
|
79
|
-
// Auto-reply needs owner/repo#N for the installation comment transport.
|
|
80
|
-
const conversationId = normalized.event.address.conversationId ?? "";
|
|
81
|
-
const canComment = /^[^/]+\/[^#]+#\d+$/.test(conversationId);
|
|
82
|
-
const autoReply = (normalized.handler?.autoReply ?? true) && canComment;
|
|
83
|
-
schedule(async () => {
|
|
84
|
-
clearFinalPosted(delivery.deliveryId);
|
|
85
|
-
delivery.status = "running";
|
|
86
|
-
delivery.updatedAt = new Date().toISOString();
|
|
87
|
-
const binding = {
|
|
88
|
-
name: channel.name,
|
|
89
|
-
provider: "github",
|
|
90
|
-
event: normalized.event,
|
|
91
|
-
address: normalized.event.address,
|
|
92
|
-
autoReply,
|
|
93
|
-
deliveryId: delivery.deliveryId,
|
|
94
|
-
};
|
|
95
|
-
const text = normalized.event.message?.text?.trim() ?? "";
|
|
96
|
-
if (!text) {
|
|
97
|
-
delivery.status = "delivered";
|
|
98
|
-
delivery.updatedAt = new Date().toISOString();
|
|
99
|
-
return;
|
|
100
|
-
}
|
|
101
|
-
const result = await invoke({
|
|
102
|
-
actorId,
|
|
103
|
-
sourceThreadKey: normalized.sourceThreadKey,
|
|
104
|
-
binding,
|
|
105
|
-
text,
|
|
106
|
-
assistantId: channel.assistantId ?? DEFAULT_ASSISTANT_ID,
|
|
107
|
-
sourceProvider: "github",
|
|
108
|
-
});
|
|
109
|
-
if (autoReply &&
|
|
110
|
-
!wasDeliveryFinalPosted(delivery.deliveryId) &&
|
|
111
|
-
result.replyText.trim().length > 0) {
|
|
112
|
-
const transport = transportFromEnv();
|
|
113
|
-
if (!transport) {
|
|
114
|
-
throw new ChannelError("channel_run_failed", "auto-reply requires GitHub App credentials (GITHUB_APP_ID, GITHUB_APP_PRIVATE_KEY, GITHUB_INSTALLATION_ID)");
|
|
115
|
-
}
|
|
116
|
-
const runtimeChannel = createRuntimeChannel({
|
|
117
|
-
name: channel.name,
|
|
118
|
-
provider: "github",
|
|
119
|
-
event: normalized.event,
|
|
120
|
-
address: normalized.event.address,
|
|
121
|
-
capabilities: { update: false },
|
|
122
|
-
transport,
|
|
123
|
-
onFinalPosted: () => undefined,
|
|
124
|
-
});
|
|
125
|
-
const posted = await runtimeChannel.post({ text: result.replyText }, { final: true });
|
|
126
|
-
delivery.outboundMessageIds.push(posted.id);
|
|
127
|
-
}
|
|
128
|
-
delivery.status = "delivered";
|
|
129
|
-
delivery.updatedAt = new Date().toISOString();
|
|
130
|
-
});
|
|
131
|
-
return new Response("", { status: 202 });
|
|
132
|
-
}
|
|
133
|
-
function transportFromEnv() {
|
|
134
|
-
const appId = process.env[GITHUB_APP_ID_ENV] ?? "";
|
|
135
|
-
const privateKey = process.env[GITHUB_APP_PRIVATE_KEY_ENV] ?? "";
|
|
136
|
-
const installationId = process.env[GITHUB_INSTALLATION_ID_ENV] ?? "";
|
|
137
|
-
if (!appId || !privateKey || !installationId)
|
|
138
|
-
return undefined;
|
|
139
|
-
return createGitHubAppTransport({ appId, privateKey, installationId });
|
|
140
|
-
}
|
|
141
|
-
function jsonError(status, message) {
|
|
142
|
-
return Response.json({ error: message }, { status });
|
|
143
|
-
}
|
|
144
|
-
function cryptoRandom() {
|
|
145
|
-
return globalThis.crypto?.randomUUID?.() ?? `delivery-${Date.now()}`;
|
|
146
|
-
}
|
|
147
|
-
//# sourceMappingURL=http.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/channels/github/http.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* GitHub App webhook channel integration.
|
|
3
|
-
*/
|
|
4
|
-
export { defineGitHubChannel, githubTriggerMatches, matchGitHubHandler, requiredGitHubPermissions, toGitHubChannelManifest, GITHUB_CHANNEL_REQUIRED_ENV, } from "./define.js";
|
|
5
|
-
export type { GitHubChannelConfig, GitHubChannelDefinition, GitHubChannelHandler, GitHubChannelHandlerManifest, GitHubChannelTrigger, GitHubWebhookPromptEvent, RequiredGitHubChannelConfig, RequiredGitHubChannelHandler, } from "./define.js";
|
|
6
|
-
export { verifyGitHubWebhookSignature, normalizeGitHubEvent, extractIssueOrPullNumber, GITHUB_WEBHOOK_SECRET_ENV, } from "./normalize.js";
|
|
7
|
-
export { createGitHubAppTransport, GITHUB_APP_ID_ENV, GITHUB_APP_PRIVATE_KEY_ENV, GITHUB_INSTALLATION_ID_ENV, } from "./transport.js";
|
|
8
|
-
export { encodeGitHubSourceThreadKey, decodeGitHubSourceThreadKey, } from "./source-thread.js";
|
|
9
|
-
export { handleGitHubEventsRequest } from "./http.js";
|
|
10
|
-
export type { GitHubChannelHttpConfig } from "./http.js";
|
|
11
|
-
export { githubChannelAdapter, githubConfigFromManifest } from "./adapter.js";
|
|
12
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/channels/github/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,yBAAyB,EACzB,uBAAuB,EACvB,2BAA2B,GAC5B,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,mBAAmB,EACnB,uBAAuB,EACvB,oBAAoB,EACpB,4BAA4B,EAC5B,oBAAoB,EACpB,wBAAwB,EACxB,2BAA2B,EAC3B,4BAA4B,GAC7B,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,4BAA4B,EAC5B,oBAAoB,EACpB,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EACjB,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,2BAA2B,EAC3B,2BAA2B,GAC5B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AACtD,YAAY,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AAEzD,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* GitHub App webhook channel integration.
|
|
3
|
-
*/
|
|
4
|
-
export { defineGitHubChannel, githubTriggerMatches, matchGitHubHandler, requiredGitHubPermissions, toGitHubChannelManifest, GITHUB_CHANNEL_REQUIRED_ENV, } from "./define.js";
|
|
5
|
-
export { verifyGitHubWebhookSignature, normalizeGitHubEvent, extractIssueOrPullNumber, GITHUB_WEBHOOK_SECRET_ENV, } from "./normalize.js";
|
|
6
|
-
export { createGitHubAppTransport, GITHUB_APP_ID_ENV, GITHUB_APP_PRIVATE_KEY_ENV, GITHUB_INSTALLATION_ID_ENV, } from "./transport.js";
|
|
7
|
-
export { encodeGitHubSourceThreadKey, decodeGitHubSourceThreadKey, } from "./source-thread.js";
|
|
8
|
-
export { handleGitHubEventsRequest } from "./http.js";
|
|
9
|
-
export { githubChannelAdapter, githubConfigFromManifest } from "./adapter.js";
|
|
10
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/channels/github/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,yBAAyB,EACzB,uBAAuB,EACvB,2BAA2B,GAC5B,MAAM,aAAa,CAAC;AAYrB,OAAO,EACL,4BAA4B,EAC5B,oBAAoB,EACpB,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EACjB,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,2BAA2B,EAC3B,2BAA2B,GAC5B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AAGtD,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* GitHub App webhook verify + normalize into {@link ChannelEvent}.
|
|
3
|
-
*/
|
|
4
|
-
import type { ChannelEvent } from "../types.js";
|
|
5
|
-
import type { GitHubWebhookPromptEvent, RequiredGitHubChannelConfig, RequiredGitHubChannelHandler } from "./define.js";
|
|
6
|
-
export declare const GITHUB_WEBHOOK_SECRET_ENV = "GITHUB_WEBHOOK_SECRET";
|
|
7
|
-
export interface GitHubNormalizeResult {
|
|
8
|
-
event: ChannelEvent;
|
|
9
|
-
sourceThreadKey: string;
|
|
10
|
-
trigger: string;
|
|
11
|
-
ignored?: boolean;
|
|
12
|
-
/** Matched handler when the event is accepted (live `prompt` included). */
|
|
13
|
-
handler?: RequiredGitHubChannelHandler;
|
|
14
|
-
/** Envelope passed to {@link RequiredGitHubChannelHandler.prompt}. */
|
|
15
|
-
promptEvent?: GitHubWebhookPromptEvent;
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Verify `X-Hub-Signature-256` against the raw body before parsing JSON.
|
|
19
|
-
*/
|
|
20
|
-
export declare function verifyGitHubWebhookSignature(rawBody: string | Uint8Array, signatureHeader: string, secret: string): void;
|
|
21
|
-
/**
|
|
22
|
-
* Normalize a verified GitHub webhook payload into a {@link ChannelEvent}.
|
|
23
|
-
*
|
|
24
|
-
* Accepts any `X-GitHub-Event`. Returns `ignored: true` when no handler matches.
|
|
25
|
-
*/
|
|
26
|
-
export declare function normalizeGitHubEvent(body: unknown, headers: {
|
|
27
|
-
eventName: string;
|
|
28
|
-
deliveryId: string;
|
|
29
|
-
}, config: RequiredGitHubChannelConfig, installationIdFallback?: string): GitHubNormalizeResult;
|
|
30
|
-
/** Best-effort issue/PR number from common webhook payload shapes. */
|
|
31
|
-
export declare function extractIssueOrPullNumber(payload: Record<string, unknown>): number | undefined;
|
|
32
|
-
//# sourceMappingURL=normalize.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../../src/channels/github/normalize.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EACV,wBAAwB,EACxB,2BAA2B,EAC3B,4BAA4B,EAC7B,MAAM,aAAa,CAAC;AAIrB,eAAO,MAAM,yBAAyB,0BAA0B,CAAC;AAEjE,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,YAAY,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,2EAA2E;IAC3E,OAAO,CAAC,EAAE,4BAA4B,CAAC;IACvC,sEAAsE;IACtE,WAAW,CAAC,EAAE,wBAAwB,CAAC;CACxC;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,MAAM,GAAG,UAAU,EAC5B,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,MAAM,GACb,IAAI,CA0BN;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,OAAO,EACb,OAAO,EAAE;IACP,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB,EACD,MAAM,EAAE,2BAA2B,EACnC,sBAAsB,CAAC,EAAE,MAAM,GAC9B,qBAAqB,CAgGvB;AAED,sEAAsE;AACtE,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,MAAM,GAAG,SAAS,CAMpB"}
|