managed-deepagents 0.5.0-dev.79 → 0.5.0-dev.80
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 +50 -8
- 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 +6 -8
- package/dist/channels/index.d.ts.map +1 -1
- package/dist/channels/index.js +5 -5
- package/dist/channels/index.js.map +1 -1
- package/dist/channels/manifest.d.ts +36 -3
- package/dist/channels/manifest.d.ts.map +1 -1
- package/dist/channels/messaging-registry.d.ts +17 -0
- package/dist/channels/messaging-registry.d.ts.map +1 -0
- package/dist/channels/messaging-registry.js +44 -0
- package/dist/channels/messaging-registry.js.map +1 -0
- package/dist/channels/registry.d.ts +4 -3
- package/dist/channels/registry.d.ts.map +1 -1
- package/dist/channels/registry.js +6 -5
- 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 +4 -2
- package/dist/channels/schedule-delivery.js.map +1 -1
- package/dist/connectors/github/adapter-core.d.ts +15 -0
- package/dist/connectors/github/adapter-core.d.ts.map +1 -0
- package/dist/connectors/github/adapter-core.js +52 -0
- package/dist/connectors/github/adapter-core.js.map +1 -0
- package/dist/{channels → connectors}/github/define.d.ts +28 -58
- package/dist/connectors/github/define.d.ts.map +1 -0
- package/dist/connectors/github/define.js +72 -0
- package/dist/connectors/github/define.js.map +1 -0
- package/dist/{channels → connectors}/github/http.d.ts +4 -4
- package/dist/connectors/github/http.d.ts.map +1 -0
- package/dist/{channels → connectors}/github/http.js +13 -24
- package/dist/connectors/github/http.js.map +1 -0
- package/dist/connectors/github/index.d.ts +59 -16
- package/dist/connectors/github/index.d.ts.map +1 -1
- package/dist/connectors/github/index.js +159 -73
- package/dist/connectors/github/index.js.map +1 -1
- package/dist/connectors/github/match.d.ts +20 -0
- package/dist/connectors/github/match.d.ts.map +1 -0
- package/dist/connectors/github/match.js +41 -0
- package/dist/connectors/github/match.js.map +1 -0
- package/dist/{channels → connectors}/github/normalize.d.ts +1 -1
- package/dist/connectors/github/normalize.d.ts.map +1 -0
- package/dist/{channels → connectors}/github/normalize.js +2 -2
- package/dist/connectors/github/normalize.js.map +1 -0
- package/dist/connectors/github/sandbox.d.ts.map +1 -1
- package/dist/connectors/github/sandbox.js +30 -23
- package/dist/connectors/github/sandbox.js.map +1 -1
- package/dist/connectors/github/source-thread.d.ts.map +1 -0
- package/dist/connectors/github/source-thread.js.map +1 -0
- package/dist/{channels → connectors}/github/transport.d.ts +7 -1
- package/dist/connectors/github/transport.d.ts.map +1 -0
- package/dist/{channels → connectors}/github/transport.js +18 -4
- package/dist/connectors/github/transport.js.map +1 -0
- package/dist/connectors/langsmith/index.d.ts +29 -17
- package/dist/connectors/langsmith/index.d.ts.map +1 -1
- package/dist/connectors/langsmith/index.js +34 -29
- package/dist/connectors/langsmith/index.js.map +1 -1
- package/dist/connectors/langsmith/routes.d.ts +4 -15
- package/dist/connectors/langsmith/routes.d.ts.map +1 -1
- package/dist/connectors/langsmith/routes.js +63 -72
- package/dist/connectors/langsmith/routes.js.map +1 -1
- 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/{channels → connectors}/slack/adapter-core.d.ts +1 -1
- package/dist/connectors/slack/adapter-core.d.ts.map +1 -0
- package/dist/connectors/slack/adapter-core.js.map +1 -0
- package/dist/{channels → connectors}/slack/adapter.d.ts +3 -4
- package/dist/connectors/slack/adapter.d.ts.map +1 -0
- package/dist/{channels → connectors}/slack/adapter.js +1 -1
- package/dist/connectors/slack/adapter.js.map +1 -0
- package/dist/{channels → connectors}/slack/http.d.ts +6 -40
- package/dist/connectors/slack/http.d.ts.map +1 -0
- package/dist/{channels → connectors}/slack/http.js +22 -125
- package/dist/connectors/slack/http.js.map +1 -0
- package/dist/connectors/slack/index.d.ts +108 -0
- package/dist/connectors/slack/index.d.ts.map +1 -0
- package/dist/connectors/slack/index.js +191 -0
- package/dist/connectors/slack/index.js.map +1 -0
- package/dist/{channels → connectors}/slack/normalize.d.ts +5 -5
- package/dist/connectors/slack/normalize.d.ts.map +1 -0
- package/dist/{channels → connectors}/slack/normalize.js +21 -20
- package/dist/connectors/slack/normalize.js.map +1 -0
- package/dist/connectors/slack/source-thread.d.ts.map +1 -0
- package/dist/connectors/slack/source-thread.js.map +1 -0
- package/dist/{channels → connectors}/slack/transport.d.ts +1 -1
- package/dist/connectors/slack/transport.d.ts.map +1 -0
- package/dist/{channels → connectors}/slack/transport.js +4 -3
- package/dist/connectors/slack/transport.js.map +1 -0
- package/dist/connectors/tool-selection.d.ts +31 -0
- package/dist/connectors/tool-selection.d.ts.map +1 -0
- package/dist/connectors/tool-selection.js +54 -0
- package/dist/connectors/tool-selection.js.map +1 -0
- package/dist/connectors/toolserver/catalog.d.ts +134 -0
- package/dist/connectors/toolserver/catalog.d.ts.map +1 -0
- package/dist/connectors/toolserver/catalog.js +74 -0
- package/dist/connectors/toolserver/catalog.js.map +1 -0
- package/dist/connectors/toolserver/index.d.ts +119 -0
- package/dist/connectors/toolserver/index.d.ts.map +1 -0
- package/dist/connectors/toolserver/index.js +150 -0
- package/dist/connectors/toolserver/index.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 +162 -0
- package/dist/connectors/toolserver/load.js.map +1 -0
- package/dist/extension.d.ts +77 -0
- package/dist/extension.d.ts.map +1 -0
- package/dist/extension.js +127 -0
- package/dist/extension.js.map +1 -0
- package/dist/identity/claims.d.ts +18 -0
- package/dist/identity/claims.d.ts.map +1 -0
- package/dist/identity/claims.js +37 -0
- package/dist/identity/claims.js.map +1 -0
- package/dist/identity/connect-inference.d.ts +28 -0
- package/dist/identity/connect-inference.d.ts.map +1 -0
- package/dist/identity/connect-inference.js +39 -0
- package/dist/identity/connect-inference.js.map +1 -0
- package/dist/identity/connect-provider-types.d.ts +23 -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 +19 -9
- 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/github/connect-http.d.ts +3 -3
- package/dist/identity/github/connect-http.d.ts.map +1 -1
- package/dist/identity/github/connect-http.js +21 -13
- 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 +40 -43
- 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 +2 -3
- package/dist/identity/github/index.d.ts.map +1 -1
- package/dist/identity/github/index.js +1 -2
- package/dist/identity/github/index.js.map +1 -1
- package/dist/identity/github/oauth.d.ts +3 -3
- package/dist/identity/github/oauth.d.ts.map +1 -1
- package/dist/identity/github/oauth.js +10 -9
- package/dist/identity/github/oauth.js.map +1 -1
- package/dist/identity/index.d.ts +35 -29
- package/dist/identity/index.d.ts.map +1 -1
- package/dist/identity/index.js +98 -131
- package/dist/identity/index.js.map +1 -1
- 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/options.d.ts +90 -0
- package/dist/identity/options.d.ts.map +1 -0
- package/dist/identity/options.js +171 -0
- package/dist/identity/options.js.map +1 -0
- package/dist/identity/slack/connect-http.d.ts +3 -3
- package/dist/identity/slack/connect-http.d.ts.map +1 -1
- package/dist/identity/slack/connect-http.js +22 -14
- 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 +15 -15
- package/dist/identity/slack/links.d.ts.map +1 -1
- package/dist/identity/slack/links.js +50 -53
- package/dist/identity/slack/links.js.map +1 -1
- package/dist/identity/slack/oauth.d.ts +2 -2
- package/dist/identity/slack/oauth.d.ts.map +1 -1
- package/dist/identity/slack/oauth.js +9 -24
- 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 +82 -36
- package/dist/identity/types.d.ts.map +1 -1
- package/dist/index.d.ts +11 -21
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -12
- package/dist/index.js.map +1 -1
- package/dist/ingress/index.d.ts +54 -0
- package/dist/ingress/index.d.ts.map +1 -0
- package/dist/ingress/index.js +128 -0
- package/dist/ingress/index.js.map +1 -0
- package/dist/namespaces.d.ts +76 -0
- package/dist/namespaces.d.ts.map +1 -0
- package/dist/namespaces.js +94 -0
- package/dist/namespaces.js.map +1 -0
- package/dist/runtime/auth.d.ts +18 -14
- package/dist/runtime/auth.d.ts.map +1 -1
- package/dist/runtime/auth.js +88 -68
- 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/connector.d.ts +66 -23
- package/dist/runtime/connector.d.ts.map +1 -1
- package/dist/runtime/connector.js +63 -27
- package/dist/runtime/connector.js.map +1 -1
- package/dist/runtime/cors.d.ts +2 -3
- package/dist/runtime/cors.d.ts.map +1 -1
- package/dist/runtime/cors.js +2 -7
- package/dist/runtime/cors.js.map +1 -1
- package/dist/runtime/credentials.d.ts.map +1 -1
- package/dist/runtime/credentials.js +39 -14
- package/dist/runtime/credentials.js.map +1 -1
- package/dist/runtime/http.d.ts +47 -0
- package/dist/runtime/http.d.ts.map +1 -0
- package/dist/runtime/http.js +54 -0
- package/dist/runtime/http.js.map +1 -0
- package/dist/runtime/identity-http.d.ts +6 -16
- package/dist/runtime/identity-http.d.ts.map +1 -1
- package/dist/runtime/identity-http.js +71 -54
- package/dist/runtime/identity-http.js.map +1 -1
- package/dist/runtime/identity-runtime.d.ts +18 -17
- package/dist/runtime/identity-runtime.d.ts.map +1 -1
- package/dist/runtime/identity-runtime.js +55 -39
- package/dist/runtime/identity-runtime.js.map +1 -1
- package/dist/runtime/index.d.ts +77 -104
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/index.js +36 -35
- package/dist/runtime/index.js.map +1 -1
- package/dist/runtime/memory/index.d.ts +1 -0
- package/dist/runtime/memory/index.d.ts.map +1 -1
- package/dist/runtime/memory/index.js +1 -0
- package/dist/runtime/memory/index.js.map +1 -1
- package/dist/runtime/memory/lazy-context-backend.d.ts +66 -0
- package/dist/runtime/memory/lazy-context-backend.d.ts.map +1 -0
- package/dist/runtime/memory/lazy-context-backend.js +154 -0
- package/dist/runtime/memory/lazy-context-backend.js.map +1 -0
- package/dist/runtime/memory/user-repo.js +3 -3
- package/dist/runtime/memory/user-repo.js.map +1 -1
- package/dist/runtime/sandbox-manager.d.ts +33 -0
- package/dist/runtime/sandbox-manager.d.ts.map +1 -1
- package/dist/runtime/sandbox-manager.js +173 -9
- package/dist/runtime/sandbox-manager.js.map +1 -1
- package/dist/runtime/sandbox-stream-retry.d.ts +16 -0
- package/dist/runtime/sandbox-stream-retry.d.ts.map +1 -0
- package/dist/runtime/sandbox-stream-retry.js +61 -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 +4 -2
- package/dist/runtime/setup-script.js.map +1 -1
- package/dist/runtime/validated-token.d.ts +1 -1
- package/dist/runtime/validated-token.d.ts.map +1 -1
- package/dist/runtime/validated-token.js +75 -33
- package/dist/runtime/validated-token.js.map +1 -1
- package/dist/sandbox.d.ts +19 -22
- package/dist/sandbox.d.ts.map +1 -1
- package/dist/sandbox.js +20 -34
- package/dist/sandbox.js.map +1 -1
- package/dist/schedules.js +8 -9
- package/dist/schedules.js.map +1 -1
- package/package.json +18 -28
- 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.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.map +0 -1
- 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.map +0 -1
- package/dist/channels/github/normalize.js.map +0 -1
- package/dist/channels/github/source-thread.d.ts.map +0 -1
- package/dist/channels/github/source-thread.js.map +0 -1
- package/dist/channels/github/transport.d.ts.map +0 -1
- 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/adapter-core.d.ts.map +0 -1
- package/dist/channels/slack/adapter-core.js.map +0 -1
- package/dist/channels/slack/adapter.d.ts.map +0 -1
- package/dist/channels/slack/adapter.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/channels/slack/http.d.ts.map +0 -1
- package/dist/channels/slack/http.js.map +0 -1
- package/dist/channels/slack/index.d.ts +0 -18
- package/dist/channels/slack/index.d.ts.map +0 -1
- package/dist/channels/slack/index.js +0 -13
- package/dist/channels/slack/index.js.map +0 -1
- package/dist/channels/slack/normalize.d.ts.map +0 -1
- package/dist/channels/slack/normalize.js.map +0 -1
- package/dist/channels/slack/source-thread.d.ts.map +0 -1
- package/dist/channels/slack/source-thread.js.map +0 -1
- package/dist/channels/slack/transport.d.ts.map +0 -1
- package/dist/channels/slack/transport.js.map +0 -1
- /package/dist/{channels → connectors}/github/source-thread.d.ts +0 -0
- /package/dist/{channels → connectors}/github/source-thread.js +0 -0
- /package/dist/{channels → connectors}/slack/adapter-core.js +0 -0
- /package/dist/{channels → connectors}/slack/source-thread.d.ts +0 -0
- /package/dist/{channels → connectors}/slack/source-thread.js +0 -0
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* GitHub App webhook event types and manifest helpers.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* Authoring lives on `connectors.github({ events: [...] })`. This module keeps
|
|
5
|
+
* the shared event/handler types and JSON manifest helpers used by the
|
|
6
|
+
* connector, HTTP adapter, and normalize/match path.
|
|
7
7
|
*
|
|
8
8
|
* MDA does **not** ship copies of GitHub webhook payload types. Prefer
|
|
9
9
|
* [`@octokit/webhooks-types`](https://www.npmjs.com/package/@octokit/webhooks-types)
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
* }
|
|
20
20
|
* ```
|
|
21
21
|
*/
|
|
22
|
-
import
|
|
22
|
+
import type { ChannelManifestBody } from "../../channels/manifest.js";
|
|
23
23
|
/**
|
|
24
24
|
* GitHub webhook filter for a handler's {@link GitHubChannelHandler.on}.
|
|
25
25
|
*
|
|
@@ -71,10 +71,10 @@ export interface GitHubWebhookPromptEvent {
|
|
|
71
71
|
payload: unknown;
|
|
72
72
|
}
|
|
73
73
|
/**
|
|
74
|
-
* One subscription inside {
|
|
74
|
+
* One webhook subscription inside `connectors.github({ events })`.
|
|
75
75
|
*
|
|
76
|
-
*
|
|
77
|
-
*
|
|
76
|
+
* Entries are matched in order: first whose `on` matches the webhook and whose
|
|
77
|
+
* `repositories` allowlist (if set) includes the repo wins.
|
|
78
78
|
*/
|
|
79
79
|
export interface GitHubChannelHandler {
|
|
80
80
|
/**
|
|
@@ -107,7 +107,7 @@ export interface GitHubChannelHandler {
|
|
|
107
107
|
prompt: (event: GitHubWebhookPromptEvent) => string;
|
|
108
108
|
}
|
|
109
109
|
/**
|
|
110
|
-
* Serializable
|
|
110
|
+
* Serializable event metadata embedded in the compile/deploy manifest.
|
|
111
111
|
* Live `prompt` callbacks are not included — they come from the imported module.
|
|
112
112
|
*/
|
|
113
113
|
export interface GitHubChannelHandlerManifest {
|
|
@@ -119,29 +119,17 @@ export interface GitHubChannelHandlerManifest {
|
|
|
119
119
|
autoReply: boolean;
|
|
120
120
|
}
|
|
121
121
|
/**
|
|
122
|
-
*
|
|
122
|
+
* Live webhook config consumed by normalize/match/HTTP.
|
|
123
123
|
*
|
|
124
|
-
*
|
|
125
|
-
*
|
|
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.
|
|
124
|
+
* Retains `prompt` callbacks for runtime. Built from `connectors.github({ events })`
|
|
125
|
+
* or reconstructed (without live prompts) from the JSON manifest.
|
|
138
126
|
*/
|
|
139
127
|
export interface RequiredGitHubChannelConfig {
|
|
140
|
-
/** Normalized
|
|
141
|
-
|
|
128
|
+
/** Normalized events with defaults applied (`autoReply` → `true`). */
|
|
129
|
+
events: readonly RequiredGitHubChannelHandler[];
|
|
142
130
|
}
|
|
143
131
|
/**
|
|
144
|
-
* Normalized handler with defaults applied.
|
|
132
|
+
* Normalized event handler with defaults applied.
|
|
145
133
|
*/
|
|
146
134
|
export interface RequiredGitHubChannelHandler {
|
|
147
135
|
on: GitHubChannelTrigger;
|
|
@@ -150,25 +138,21 @@ export interface RequiredGitHubChannelHandler {
|
|
|
150
138
|
prompt: (event: GitHubWebhookPromptEvent) => string;
|
|
151
139
|
}
|
|
152
140
|
/**
|
|
153
|
-
*
|
|
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.
|
|
141
|
+
* Authoring input shape for GitHub webhook events (also on
|
|
142
|
+
* {@link import("../../connectors/github/index.js").GitHubConnectorConfig}).
|
|
159
143
|
*/
|
|
160
|
-
export
|
|
144
|
+
export interface GitHubChannelConfig {
|
|
145
|
+
/** Ordered event list. First match wins for each webhook delivery. */
|
|
146
|
+
events: readonly GitHubChannelHandler[];
|
|
147
|
+
}
|
|
148
|
+
/** Live config shell passed into the GitHub HTTP handler. */
|
|
149
|
+
export type GitHubChannelDefinition = {
|
|
150
|
+
config: RequiredGitHubChannelConfig;
|
|
151
|
+
};
|
|
161
152
|
/** Env vars for Phase 1 single-install GitHub App webhooks. */
|
|
162
153
|
export declare const GITHUB_CHANNEL_REQUIRED_ENV: readonly ["GITHUB_WEBHOOK_SECRET", "GITHUB_APP_ID", "GITHUB_APP_PRIVATE_KEY", "GITHUB_INSTALLATION_ID"];
|
|
163
154
|
/**
|
|
164
|
-
*
|
|
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.
|
|
155
|
+
* GitHub App permissions implied by event handlers.
|
|
172
156
|
*
|
|
173
157
|
* Auto-reply comments need `issues:write`. Contents/metadata reads are declared
|
|
174
158
|
* broadly so arbitrary webhook handlers can inspect payloads; tighten App
|
|
@@ -176,23 +160,9 @@ export declare function defineGitHubChannel(config: GitHubChannelConfig): GitHub
|
|
|
176
160
|
*/
|
|
177
161
|
export declare function requiredGitHubPermissions(config: RequiredGitHubChannelConfig): string[];
|
|
178
162
|
/**
|
|
179
|
-
* Build author-supplied deploy fields for
|
|
163
|
+
* Build author-supplied deploy fields for GitHub webhook ingress.
|
|
180
164
|
*
|
|
181
|
-
* `name` and `provider` are stamped by
|
|
165
|
+
* `name` and `provider` are stamped by the connector `requirements` hook.
|
|
182
166
|
*/
|
|
183
167
|
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
168
|
//# sourceMappingURL=define.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"define.d.ts","sourceRoot":"","sources":["../../../src/connectors/github/define.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAGtE;;;;;;;;GAQG;AACH,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC;AAE1C;;;;;;GAMG;AACH,MAAM,WAAW,wBAAwB;IACvC;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB,kCAAkC;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,kFAAkF;IAClF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8EAA8E;IAC9E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;OAGG;IACH,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;;OAIG;IACH,EAAE,EAAE,oBAAoB,CAAC;IACzB;;;;OAIG;IACH,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;;OAKG;IACH,MAAM,EAAE,CAAC,KAAK,EAAE,wBAAwB,KAAK,MAAM,CAAC;CACrD;AAED;;;GAGG;AACH,MAAM,WAAW,4BAA4B;IAC3C,wDAAwD;IACxD,EAAE,EAAE,oBAAoB,CAAC;IACzB,8CAA8C;IAC9C,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,4EAA4E;IAC5E,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;;;;GAKG;AACH,MAAM,WAAW,2BAA2B;IAC1C,sEAAsE;IACtE,MAAM,EAAE,SAAS,4BAA4B,EAAE,CAAC;CACjD;AAED;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C,EAAE,EAAE,oBAAoB,CAAC;IACzB,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,CAAC,KAAK,EAAE,wBAAwB,KAAK,MAAM,CAAC;CACrD;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,sEAAsE;IACtE,MAAM,EAAE,SAAS,oBAAoB,EAAE,CAAC;CACzC;AAED,6DAA6D;AAC7D,MAAM,MAAM,uBAAuB,GAAG;IACpC,MAAM,EAAE,2BAA2B,CAAC;CACrC,CAAC;AAEF,+DAA+D;AAC/D,eAAO,MAAM,2BAA2B,YACtC,uBAAuB,EACvB,eAAe,EACf,wBAAwB,EACxB,wBAAwB,CAChB,CAAC;AAEX;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,2BAA2B,GAClC,MAAM,EAAE,CASV;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,uBAAuB,GAAG,2BAA2B,GAChE,mBAAmB,CAuBrB"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GitHub App webhook event types and manifest helpers.
|
|
3
|
+
*
|
|
4
|
+
* Authoring lives on `connectors.github({ events: [...] })`. This module keeps
|
|
5
|
+
* the shared event/handler types and JSON manifest helpers used by the
|
|
6
|
+
* connector, HTTP adapter, and normalize/match path.
|
|
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
|
+
/** Env vars for Phase 1 single-install GitHub App webhooks. */
|
|
23
|
+
export const GITHUB_CHANNEL_REQUIRED_ENV = [
|
|
24
|
+
"GITHUB_WEBHOOK_SECRET",
|
|
25
|
+
"GITHUB_APP_ID",
|
|
26
|
+
"GITHUB_APP_PRIVATE_KEY",
|
|
27
|
+
"GITHUB_INSTALLATION_ID",
|
|
28
|
+
];
|
|
29
|
+
/**
|
|
30
|
+
* GitHub App permissions implied by event handlers.
|
|
31
|
+
*
|
|
32
|
+
* Auto-reply comments need `issues:write`. Contents/metadata reads are declared
|
|
33
|
+
* broadly so arbitrary webhook handlers can inspect payloads; tighten App
|
|
34
|
+
* permissions in GitHub settings to match what you actually use.
|
|
35
|
+
*/
|
|
36
|
+
export function requiredGitHubPermissions(config) {
|
|
37
|
+
const perms = new Set(["metadata:read"]);
|
|
38
|
+
for (const handler of config.events) {
|
|
39
|
+
if (handler.autoReply) {
|
|
40
|
+
perms.add("issues:write");
|
|
41
|
+
perms.add("pull_requests:read");
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return [...perms].sort();
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Build author-supplied deploy fields for GitHub webhook ingress.
|
|
48
|
+
*
|
|
49
|
+
* `name` and `provider` are stamped by the connector `requirements` hook.
|
|
50
|
+
*/
|
|
51
|
+
export function toGitHubChannelManifest(definition) {
|
|
52
|
+
const config = "config" in definition && definition.config
|
|
53
|
+
? definition.config
|
|
54
|
+
: definition;
|
|
55
|
+
const events = config.events.map((handler) => ({
|
|
56
|
+
on: handler.on,
|
|
57
|
+
repositories: handler.repositories,
|
|
58
|
+
autoReply: handler.autoReply,
|
|
59
|
+
}));
|
|
60
|
+
const triggers = [...new Set(events.map((h) => h.on))];
|
|
61
|
+
const anyAutoReply = events.some((h) => h.autoReply);
|
|
62
|
+
return {
|
|
63
|
+
autoReply: anyAutoReply,
|
|
64
|
+
requiredPermissions: requiredGitHubPermissions(config),
|
|
65
|
+
requiredEnv: [...GITHUB_CHANNEL_REQUIRED_ENV],
|
|
66
|
+
providerConfig: {
|
|
67
|
+
triggers,
|
|
68
|
+
events: events,
|
|
69
|
+
},
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=define.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"define.js","sourceRoot":"","sources":["../../../src/connectors/github/define.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AA8IH,+DAA+D;AAC/D,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,uBAAuB;IACvB,eAAe;IACf,wBAAwB;IACxB,wBAAwB;CAChB,CAAC;AAEX;;;;;;GAMG;AACH,MAAM,UAAU,yBAAyB,CACvC,MAAmC;IAEnC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAS,CAAC,eAAe,CAAC,CAAC,CAAC;IACjD,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QACpC,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACtB,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YAC1B,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;AAC3B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CACrC,UAAiE;IAEjE,MAAM,MAAM,GACV,QAAQ,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM;QACzC,CAAC,CAAC,UAAU,CAAC,MAAM;QACnB,CAAC,CAAE,UAA0C,CAAC;IAClD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAC9B,CAAC,OAAO,EAAgC,EAAE,CAAC,CAAC;QAC1C,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,SAAS,EAAE,OAAO,CAAC,SAAS;KAC7B,CAAC,CACH,CAAC;IACF,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACvD,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACrD,OAAO;QACL,SAAS,EAAE,YAAY;QACvB,mBAAmB,EAAE,yBAAyB,CAAC,MAAM,CAAC;QACtD,WAAW,EAAE,CAAC,GAAG,2BAA2B,CAAC;QAC7C,cAAc,EAAE;YACd,QAAQ;YACR,MAAM,EAAE,MAA8B;SACvC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Managed GitHub App webhook HTTP handler + agent runner.
|
|
3
3
|
*/
|
|
4
|
-
import { InMemoryChannelStore } from "
|
|
5
|
-
import {
|
|
4
|
+
import { InMemoryChannelStore } from "../../channels/store.js";
|
|
5
|
+
import { invokeIngressAgent } from "../../ingress/index.js";
|
|
6
6
|
import type { GitHubChannelDefinition, RequiredGitHubChannelConfig } from "./define.js";
|
|
7
7
|
export interface GitHubChannelHttpConfig {
|
|
8
8
|
name: string;
|
|
9
9
|
config: RequiredGitHubChannelConfig;
|
|
10
|
-
/** Live
|
|
10
|
+
/** Live definition (preferred); supplies events with `prompt`. */
|
|
11
11
|
definition?: GitHubChannelDefinition;
|
|
12
12
|
store?: InMemoryChannelStore;
|
|
13
13
|
schedule?: (work: () => Promise<void>) => void;
|
|
14
|
-
invokeAgent?: typeof
|
|
14
|
+
invokeAgent?: typeof invokeIngressAgent;
|
|
15
15
|
rawBody?: string | Uint8Array;
|
|
16
16
|
webhookSecret?: string;
|
|
17
17
|
installationId?: string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/connectors/github/http.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAO/D,OAAO,EACL,kBAAkB,EAEnB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EACV,uBAAuB,EACvB,2BAA2B,EAC5B,MAAM,aAAa,CAAC;AAWrB,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,2BAA2B,CAAC;IACpC,kEAAkE;IAClE,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,CAgJnB"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Managed GitHub App webhook HTTP handler + agent runner.
|
|
3
3
|
*/
|
|
4
|
-
import { ChannelError } from "
|
|
5
|
-
import { InMemoryChannelStore } from "
|
|
6
|
-
import { clearFinalPosted, wasDeliveryFinalPosted, } from "
|
|
7
|
-
import { createRuntimeChannel } from "
|
|
8
|
-
import {
|
|
4
|
+
import { ChannelError } from "../../channels/errors.js";
|
|
5
|
+
import { InMemoryChannelStore } from "../../channels/store.js";
|
|
6
|
+
import { clearFinalPosted, wasDeliveryFinalPosted, } from "../../channels/binding.js";
|
|
7
|
+
import { createRuntimeChannel } from "../../channels/runtime.js";
|
|
8
|
+
import { invokeIngressAgent, scheduleIngressWork, } from "../../ingress/index.js";
|
|
9
9
|
import { GITHUB_WEBHOOK_SECRET_ENV, normalizeGitHubEvent, verifyGitHubWebhookSignature, } from "./normalize.js";
|
|
10
|
-
import {
|
|
10
|
+
import { GITHUB_INSTALLATION_ID_ENV, transportFromEnv } from "./transport.js";
|
|
11
11
|
const DEFAULT_ASSISTANT_ID = "agent";
|
|
12
12
|
const defaultStore = new InMemoryChannelStore();
|
|
13
13
|
/**
|
|
@@ -68,19 +68,13 @@ export async function handleGitHubEventsRequest(request, channel) {
|
|
|
68
68
|
if (duplicate) {
|
|
69
69
|
return new Response("", { status: 202 });
|
|
70
70
|
}
|
|
71
|
-
const
|
|
72
|
-
|
|
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"}`;
|
|
71
|
+
const invoke = channel.invokeAgent ?? invokeIngressAgent;
|
|
72
|
+
const userId = `github-app:${installationId || "unknown"}`;
|
|
79
73
|
// Auto-reply needs owner/repo#N for the installation comment transport.
|
|
80
74
|
const conversationId = normalized.event.address.conversationId ?? "";
|
|
81
75
|
const canComment = /^[^/]+\/[^#]+#\d+$/.test(conversationId);
|
|
82
76
|
const autoReply = (normalized.handler?.autoReply ?? true) && canComment;
|
|
83
|
-
|
|
77
|
+
scheduleIngressWork(async () => {
|
|
84
78
|
clearFinalPosted(delivery.deliveryId);
|
|
85
79
|
delivery.status = "running";
|
|
86
80
|
delivery.updatedAt = new Date().toISOString();
|
|
@@ -99,7 +93,7 @@ export async function handleGitHubEventsRequest(request, channel) {
|
|
|
99
93
|
return;
|
|
100
94
|
}
|
|
101
95
|
const result = await invoke({
|
|
102
|
-
|
|
96
|
+
userId,
|
|
103
97
|
sourceThreadKey: normalized.sourceThreadKey,
|
|
104
98
|
binding,
|
|
105
99
|
text,
|
|
@@ -127,17 +121,12 @@ export async function handleGitHubEventsRequest(request, channel) {
|
|
|
127
121
|
}
|
|
128
122
|
delivery.status = "delivered";
|
|
129
123
|
delivery.updatedAt = new Date().toISOString();
|
|
124
|
+
}, {
|
|
125
|
+
label: `channel "${channel.name}" delivery ${delivery.deliveryId}`,
|
|
126
|
+
schedule: channel.schedule,
|
|
130
127
|
});
|
|
131
128
|
return new Response("", { status: 202 });
|
|
132
129
|
}
|
|
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
130
|
function jsonError(status, message) {
|
|
142
131
|
return Response.json({ error: message }, { status });
|
|
143
132
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/connectors/github/http.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +1,30 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* GitHub connector —
|
|
2
|
+
* GitHub connector — workspace tools, sandbox checkout, and optional webhooks.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* A [tool server integration](../toolserver) like `connectors.gmail`, so the
|
|
5
|
+
* workspace's GitHub tools — issues, pull requests, reviews — come from the same
|
|
6
|
+
* gateway against the same credential. GitHub reaches further than an API
|
|
7
|
+
* though: an agent works on a repository by having it checked out. So this
|
|
8
|
+
* connector also provisions the sandbox, declaring which repositories to clone,
|
|
9
|
+
* whether to install the GitHub CLI, and whether resolved identity credentials
|
|
10
|
+
* should be available inside the sandbox so the agent can act as the user.
|
|
7
11
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
* Connect-with-GitHub OAuth
|
|
12
|
+
* Optional `events` merges former `channels.github` authoring: GitHub App
|
|
13
|
+
* webhook ingress at `POST /connectors/{name}/events`, messaging transport, and
|
|
14
|
+
* deploy requirements. Connect-with-GitHub OAuth remains `connect.github`.
|
|
15
|
+
*
|
|
16
|
+
* The two halves interact in one place: installing the CLI (the default) leaves
|
|
17
|
+
* the integration's tools off, because `gh` already reaches the same API. Naming
|
|
18
|
+
* tools, or dropping the CLI, turns them on. See {@link defaultToolsFromCLI}.
|
|
11
19
|
*/
|
|
20
|
+
import { type GitHubChannelHandler, type RequiredGitHubChannelConfig } from "./define.js";
|
|
21
|
+
import type { ChannelManifest } from "../../channels/manifest.js";
|
|
12
22
|
import { type Connector } from "../../runtime/connector.js";
|
|
13
|
-
|
|
23
|
+
import { type ToolServerConnectorConfig } from "../toolserver/index.js";
|
|
14
24
|
export { provisionGitHubSandbox, buildGitHubProvisionScript, CLONE_FAILED_MARKDOWN, isBenignCheckoutFailure, GITHUB_TOKEN_REMOTE_PATH, GITHUB_PROVISION_REMOTE_PATH, } from "./sandbox.js";
|
|
15
25
|
export type { GitHubSandboxBackend, ProvisionGitHubSandboxOptions, } from "./sandbox.js";
|
|
26
|
+
export type { GitHubChannelHandler, GitHubChannelHandlerManifest, GitHubChannelTrigger, GitHubWebhookPromptEvent, RequiredGitHubChannelConfig, RequiredGitHubChannelHandler, } from "./define.js";
|
|
27
|
+
export { GITHUB_CHANNEL_REQUIRED_ENV, requiredGitHubPermissions, toGitHubChannelManifest, } from "./define.js";
|
|
16
28
|
/** How MDA should treat an existing sandbox checkout when a sandbox is reused. */
|
|
17
29
|
export type GitHubCheckoutReuse = "keep" | "reset" | "fetch";
|
|
18
30
|
/**
|
|
@@ -46,13 +58,24 @@ export interface GitHubRepositoryCheckout {
|
|
|
46
58
|
*/
|
|
47
59
|
onReuse?: GitHubCheckoutReuse;
|
|
48
60
|
}
|
|
49
|
-
/**
|
|
50
|
-
|
|
61
|
+
/**
|
|
62
|
+
* Configuration accepted by `connectors.github`.
|
|
63
|
+
*
|
|
64
|
+
* The tool selection it inherits — {@link ToolServerConnectorConfig} — picks which
|
|
65
|
+
* of the integration's tools the agent gets. Sandbox options provision checkouts.
|
|
66
|
+
* Optional {@link events} mounts GitHub App webhook ingress + messaging.
|
|
67
|
+
*/
|
|
68
|
+
export interface GitHubConnectorConfig extends ToolServerConnectorConfig {
|
|
51
69
|
/** Repository checkouts to provision into the sandbox snapshot/workspace. */
|
|
52
70
|
repositories?: GitHubRepositoryCheckout[];
|
|
53
71
|
/**
|
|
54
72
|
* Install the [GitHub CLI](https://cli.github.com/) (`gh`) into the sandbox
|
|
55
73
|
* during provisioning. Defaults to `true`.
|
|
74
|
+
*
|
|
75
|
+
* Also decides the default tool surface: with `gh` in the sandbox the agent
|
|
76
|
+
* already reaches the GitHub API, so the integration's tools stay off unless
|
|
77
|
+
* {@link ToolServerToolSelection.includeTools} or
|
|
78
|
+
* {@link ToolServerToolSelection.excludeTools} asks for them.
|
|
56
79
|
*/
|
|
57
80
|
installCLI?: boolean;
|
|
58
81
|
/**
|
|
@@ -60,19 +83,39 @@ export interface GitHubConnectorConfig {
|
|
|
60
83
|
* git credential helper) so the agent can act as the user. Defaults to `true`.
|
|
61
84
|
*/
|
|
62
85
|
injectCredentials?: boolean;
|
|
86
|
+
/**
|
|
87
|
+
* Ordered GitHub App webhook subscriptions. When set, mounts Events ingress
|
|
88
|
+
* at `/connectors/{name}/events`, messaging, and deploy requirements.
|
|
89
|
+
*
|
|
90
|
+
* First match wins for each delivery. Not stored on the connector instance
|
|
91
|
+
* (the `events` hook owns that property name); live `prompt` callbacks are
|
|
92
|
+
* closed over by the hook.
|
|
93
|
+
*/
|
|
94
|
+
events?: readonly GitHubChannelHandler[];
|
|
63
95
|
}
|
|
64
96
|
/** Branded GitHub connector declaration discovered from `connectors/github.ts`. */
|
|
65
|
-
export type GitHubConnector = Connector & Required<GitHubConnectorConfig
|
|
97
|
+
export type GitHubConnector = Connector & ToolServerConnectorConfig & Required<Pick<GitHubConnectorConfig, "repositories" | "installCLI" | "injectCredentials">> & {
|
|
66
98
|
/** Connector kind used for diagnostics and route namespacing. */
|
|
67
99
|
kind: "github";
|
|
68
100
|
};
|
|
69
101
|
/**
|
|
70
102
|
* Build the branded GitHub connector declaration.
|
|
71
103
|
*
|
|
72
|
-
*
|
|
73
|
-
*
|
|
104
|
+
* Sandbox + tools follow today's defaults. When {@link GitHubConnectorConfig.events}
|
|
105
|
+
* is set, Events / messaging / requirements hooks are attached as well.
|
|
106
|
+
*
|
|
107
|
+
* At least one of repositories, tool selection (`includeTools` /
|
|
108
|
+
* `excludeTools`), or `events` gives the connector a purpose beyond default
|
|
109
|
+
* sandbox provisioning — but an empty config remains valid (sandbox-only).
|
|
74
110
|
*/
|
|
75
|
-
export declare function
|
|
76
|
-
/**
|
|
77
|
-
export declare function
|
|
111
|
+
export declare function githubConnector(config?: GitHubConnectorConfig): GitHubConnector;
|
|
112
|
+
/** Build deploy/runtime requirements for a file-derived connector name. */
|
|
113
|
+
export declare function toGitHubRequirements(name: string, config: RequiredGitHubChannelConfig): ChannelManifest;
|
|
114
|
+
export { githubTriggerMatches, matchGitHubHandler } from "./match.js";
|
|
115
|
+
export { verifyGitHubWebhookSignature, normalizeGitHubEvent, extractIssueOrPullNumber, GITHUB_WEBHOOK_SECRET_ENV, } from "./normalize.js";
|
|
116
|
+
export { createGitHubAppTransport, transportFromEnv, GITHUB_APP_ID_ENV, GITHUB_APP_PRIVATE_KEY_ENV, GITHUB_INSTALLATION_ID_ENV, } from "./transport.js";
|
|
117
|
+
export { encodeGitHubSourceThreadKey, decodeGitHubSourceThreadKey, } from "./source-thread.js";
|
|
118
|
+
export { handleGitHubEventsRequest } from "./http.js";
|
|
119
|
+
export type { GitHubChannelHttpConfig } from "./http.js";
|
|
120
|
+
export { githubChannelAdapter, githubConfigFromManifest, } from "./adapter-core.js";
|
|
78
121
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/connectors/github/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/connectors/github/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH,OAAO,EAGL,KAAK,oBAAoB,EACzB,KAAK,2BAA2B,EAEjC,MAAM,aAAa,CAAC;AAGrB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAEL,KAAK,SAAS,EAIf,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAIL,KAAK,yBAAyB,EAC/B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,sBAAsB,EACtB,0BAA0B,EAC1B,qBAAqB,EACrB,uBAAuB,EACvB,wBAAwB,EACxB,4BAA4B,GAC7B,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,oBAAoB,EACpB,6BAA6B,GAC9B,MAAM,cAAc,CAAC;AAEtB,YAAY,EACV,oBAAoB,EACpB,4BAA4B,EAC5B,oBAAoB,EACpB,wBAAwB,EACxB,2BAA2B,EAC3B,4BAA4B,GAC7B,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,2BAA2B,EAC3B,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,aAAa,CAAC;AAErB,kFAAkF;AAClF,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AAE7D;;;;;;;GAOG;AACH,MAAM,WAAW,wBAAwB;IACvC,gEAAgE;IAChE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,4EAA4E;IAC5E,IAAI,CAAC,EAAE,kBAAkB,CAAC;IAC1B,gEAAgE;IAChE,IAAI,EAAE,MAAM,CAAC;IACb,6EAA6E;IAC7E,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,oDAAoD;IACpD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uEAAuE;IACvE,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,mEAAmE;IACnE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gFAAgF;IAChF,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;OAGG;IACH,OAAO,CAAC,EAAE,mBAAmB,CAAC;CAC/B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,qBAAsB,SAAQ,yBAAyB;IACtE,6EAA6E;IAC7E,YAAY,CAAC,EAAE,wBAAwB,EAAE,CAAC;IAC1C;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,SAAS,oBAAoB,EAAE,CAAC;CAC1C;AAED,mFAAmF;AACnF,MAAM,MAAM,eAAe,GAAG,SAAS,GACrC,yBAAyB,GACzB,QAAQ,CACN,IAAI,CACF,qBAAqB,EACrB,cAAc,GAAG,YAAY,GAAG,mBAAmB,CACpD,CACF,GAAG;IACF,iEAAiE;IACjE,IAAI,EAAE,QAAQ,CAAC;CAChB,CAAC;AA4HJ;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAC7B,MAAM,CAAC,EAAE,qBAAqB,GAC7B,eAAe,CA8CjB;AAED,2EAA2E;AAC3E,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,2BAA2B,GAClC,eAAe,CAOjB;AAmBD,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,EACL,4BAA4B,EAC5B,oBAAoB,EACpB,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,wBAAwB,EACxB,gBAAgB,EAChB,iBAAiB,EACjB,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,2BAA2B,EAC3B,2BAA2B,GAC5B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AACtD,YAAY,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EACL,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,mBAAmB,CAAC"}
|