managed-deepagents 0.5.0-dev.88 → 0.5.0-dev.90
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 +2 -2
- package/dist/channels/index.d.ts +7 -6
- 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 +0 -30
- package/dist/channels/manifest.d.ts.map +1 -1
- package/dist/channels/messaging-registry.d.ts +8 -4
- package/dist/channels/messaging-registry.d.ts.map +1 -1
- package/dist/channels/messaging-registry.js +22 -16
- package/dist/channels/messaging-registry.js.map +1 -1
- package/dist/channels/registry-types.d.ts +1 -1
- package/dist/channels/registry.d.ts.map +1 -1
- package/dist/channels/registry.js +1 -3
- package/dist/channels/registry.js.map +1 -1
- package/dist/channels/schedule-delivery.js +1 -1
- package/dist/channels/schedule-delivery.js.map +1 -1
- package/dist/{connectors → channels}/slack/adapter-core.d.ts +1 -1
- package/dist/channels/slack/adapter-core.d.ts.map +1 -0
- package/dist/channels/slack/adapter-core.js.map +1 -0
- package/dist/{connectors → channels}/slack/adapter.d.ts +3 -3
- package/dist/channels/slack/adapter.d.ts.map +1 -0
- package/dist/{connectors → channels}/slack/adapter.js +0 -1
- package/dist/channels/slack/adapter.js.map +1 -0
- package/dist/{connectors → channels}/slack/http.d.ts +3 -3
- package/dist/channels/slack/http.d.ts.map +1 -0
- package/dist/{connectors → channels}/slack/http.js +6 -10
- package/dist/channels/slack/http.js.map +1 -0
- package/dist/channels/slack/index.d.ts +89 -0
- package/dist/channels/slack/index.d.ts.map +1 -0
- package/dist/channels/slack/index.js +148 -0
- package/dist/channels/slack/index.js.map +1 -0
- package/dist/{connectors → channels}/slack/normalize.d.ts +3 -4
- package/dist/channels/slack/normalize.d.ts.map +1 -0
- package/dist/{connectors → channels}/slack/normalize.js +1 -5
- package/dist/channels/slack/normalize.js.map +1 -0
- package/dist/channels/slack/source-thread.d.ts.map +1 -0
- package/dist/channels/slack/source-thread.js.map +1 -0
- package/dist/{connectors → channels}/slack/transport.d.ts +1 -1
- package/dist/channels/slack/transport.d.ts.map +1 -0
- package/dist/{connectors → channels}/slack/transport.js +1 -1
- package/dist/channels/slack/transport.js.map +1 -0
- package/dist/connectors/slack/index.d.ts +10 -94
- package/dist/connectors/slack/index.d.ts.map +1 -1
- package/dist/connectors/slack/index.js +25 -152
- package/dist/connectors/slack/index.js.map +1 -1
- package/dist/connectors/toolserver/catalog.d.ts +4 -10
- package/dist/connectors/toolserver/catalog.d.ts.map +1 -1
- package/dist/connectors/toolserver/catalog.js +6 -54
- package/dist/connectors/toolserver/catalog.js.map +1 -1
- package/dist/connectors/toolserver/index.d.ts +5 -7
- package/dist/connectors/toolserver/index.d.ts.map +1 -1
- package/dist/connectors/toolserver/index.js +4 -6
- package/dist/connectors/toolserver/index.js.map +1 -1
- package/dist/connectors/toolserver/integrations.d.ts +4 -4
- package/dist/connectors/toolserver/integrations.d.ts.map +1 -1
- package/dist/extension.d.ts +1 -1
- package/dist/extension.js +1 -1
- package/dist/identity/claims.d.ts +0 -2
- package/dist/identity/claims.d.ts.map +1 -1
- package/dist/identity/claims.js +0 -4
- package/dist/identity/claims.js.map +1 -1
- package/dist/identity/connect-inference.d.ts +6 -7
- package/dist/identity/connect-inference.d.ts.map +1 -1
- package/dist/identity/connect-inference.js +7 -9
- package/dist/identity/connect-inference.js.map +1 -1
- package/dist/identity/github/connect-http.d.ts +4 -4
- package/dist/identity/github/connect-http.js +4 -4
- package/dist/identity/github/index.d.ts +0 -2
- package/dist/identity/github/index.d.ts.map +1 -1
- package/dist/identity/github/index.js +0 -2
- package/dist/identity/github/index.js.map +1 -1
- package/dist/identity/index.d.ts +4 -4
- package/dist/identity/index.d.ts.map +1 -1
- package/dist/identity/index.js +27 -15
- package/dist/identity/index.js.map +1 -1
- package/dist/identity/memory-slices.d.ts +4 -7
- package/dist/identity/memory-slices.d.ts.map +1 -1
- package/dist/identity/memory-slices.js +27 -49
- package/dist/identity/memory-slices.js.map +1 -1
- package/dist/identity/options.d.ts +6 -26
- package/dist/identity/options.d.ts.map +1 -1
- package/dist/identity/options.js +22 -58
- package/dist/identity/options.js.map +1 -1
- package/dist/identity/slack/connect-http.d.ts +3 -1
- package/dist/identity/slack/connect-http.d.ts.map +1 -1
- package/dist/identity/slack/connect-http.js +3 -1
- package/dist/identity/slack/connect-http.js.map +1 -1
- package/dist/identity/slack/links.d.ts +2 -1
- package/dist/identity/slack/links.d.ts.map +1 -1
- package/dist/identity/slack/links.js +2 -1
- package/dist/identity/slack/links.js.map +1 -1
- package/dist/identity/types.d.ts +12 -60
- package/dist/identity/types.d.ts.map +1 -1
- package/dist/index.d.ts +5 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/ingress/index.d.ts +0 -2
- package/dist/ingress/index.d.ts.map +1 -1
- package/dist/ingress/index.js +1 -6
- package/dist/ingress/index.js.map +1 -1
- package/dist/namespaces.d.ts +45 -83
- package/dist/namespaces.d.ts.map +1 -1
- package/dist/namespaces.js +12 -21
- package/dist/namespaces.js.map +1 -1
- package/dist/runtime/auth.d.ts +11 -13
- package/dist/runtime/auth.d.ts.map +1 -1
- package/dist/runtime/auth.js +29 -54
- package/dist/runtime/auth.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 +3 -3
- package/dist/runtime/connector.js +5 -1
- package/dist/runtime/connector.js.map +1 -1
- package/dist/runtime/cors.d.ts +1 -1
- package/dist/runtime/cors.d.ts.map +1 -1
- package/dist/runtime/cors.js +5 -1
- package/dist/runtime/cors.js.map +1 -1
- package/dist/runtime/credentials.d.ts +6 -6
- package/dist/runtime/credentials.js +8 -10
- package/dist/runtime/credentials.js.map +1 -1
- package/dist/runtime/http.d.ts +1 -2
- package/dist/runtime/http.d.ts.map +1 -1
- package/dist/runtime/http.js +1 -2
- package/dist/runtime/http.js.map +1 -1
- package/dist/runtime/identity-http.d.ts +8 -3
- package/dist/runtime/identity-http.d.ts.map +1 -1
- package/dist/runtime/identity-http.js +50 -8
- package/dist/runtime/identity-http.js.map +1 -1
- package/dist/runtime/identity-runtime.d.ts +13 -13
- package/dist/runtime/identity-runtime.d.ts.map +1 -1
- package/dist/runtime/identity-runtime.js +14 -41
- package/dist/runtime/identity-runtime.js.map +1 -1
- package/dist/runtime/index.d.ts +2 -0
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/index.js +7 -5
- package/dist/runtime/index.js.map +1 -1
- package/dist/runtime/memory/lazy-context-backend.d.ts +2 -2
- package/dist/runtime/memory/lazy-context-backend.js +2 -2
- package/dist/runtime/memory/mounts.js +1 -1
- package/dist/runtime/memory/mounts.js.map +1 -1
- package/dist/runtime/memory/user-repo.d.ts.map +1 -1
- package/dist/runtime/memory/user-repo.js +3 -4
- package/dist/runtime/memory/user-repo.js.map +1 -1
- package/dist/runtime/types.d.ts +8 -0
- package/dist/runtime/types.d.ts.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 +3 -16
- package/dist/runtime/validated-token.js.map +1 -1
- package/package.json +7 -7
- package/dist/connectors/github/adapter-core.d.ts +0 -15
- package/dist/connectors/github/adapter-core.d.ts.map +0 -1
- package/dist/connectors/github/adapter-core.js +0 -52
- package/dist/connectors/github/adapter-core.js.map +0 -1
- package/dist/connectors/github/define.d.ts +0 -168
- package/dist/connectors/github/define.d.ts.map +0 -1
- package/dist/connectors/github/define.js +0 -72
- package/dist/connectors/github/define.js.map +0 -1
- package/dist/connectors/github/http.d.ts +0 -25
- package/dist/connectors/github/http.d.ts.map +0 -1
- package/dist/connectors/github/http.js +0 -146
- package/dist/connectors/github/http.js.map +0 -1
- package/dist/connectors/github/index.d.ts +0 -121
- package/dist/connectors/github/index.d.ts.map +0 -1
- package/dist/connectors/github/index.js +0 -192
- package/dist/connectors/github/index.js.map +0 -1
- package/dist/connectors/github/match.d.ts +0 -20
- package/dist/connectors/github/match.d.ts.map +0 -1
- package/dist/connectors/github/match.js +0 -41
- package/dist/connectors/github/match.js.map +0 -1
- package/dist/connectors/github/normalize.d.ts +0 -32
- package/dist/connectors/github/normalize.d.ts.map +0 -1
- package/dist/connectors/github/normalize.js +0 -152
- package/dist/connectors/github/normalize.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 -532
- package/dist/connectors/github/sandbox.js.map +0 -1
- package/dist/connectors/github/source-thread.d.ts +0 -24
- package/dist/connectors/github/source-thread.d.ts.map +0 -1
- package/dist/connectors/github/source-thread.js +0 -54
- package/dist/connectors/github/source-thread.js.map +0 -1
- package/dist/connectors/github/transport.d.ts +0 -25
- package/dist/connectors/github/transport.d.ts.map +0 -1
- package/dist/connectors/github/transport.js +0 -106
- package/dist/connectors/github/transport.js.map +0 -1
- package/dist/connectors/langsmith/index.d.ts +0 -397
- package/dist/connectors/langsmith/index.d.ts.map +0 -1
- package/dist/connectors/langsmith/index.js +0 -436
- package/dist/connectors/langsmith/index.js.map +0 -1
- package/dist/connectors/langsmith/routes.d.ts +0 -236
- package/dist/connectors/langsmith/routes.d.ts.map +0 -1
- package/dist/connectors/langsmith/routes.js +0 -1173
- package/dist/connectors/langsmith/routes.js.map +0 -1
- package/dist/connectors/slack/adapter-core.d.ts.map +0 -1
- package/dist/connectors/slack/adapter-core.js.map +0 -1
- package/dist/connectors/slack/adapter.d.ts.map +0 -1
- package/dist/connectors/slack/adapter.js.map +0 -1
- package/dist/connectors/slack/http.d.ts.map +0 -1
- package/dist/connectors/slack/http.js.map +0 -1
- package/dist/connectors/slack/normalize.d.ts.map +0 -1
- package/dist/connectors/slack/normalize.js.map +0 -1
- package/dist/connectors/slack/source-thread.d.ts.map +0 -1
- package/dist/connectors/slack/source-thread.js.map +0 -1
- package/dist/connectors/slack/transport.d.ts.map +0 -1
- package/dist/connectors/slack/transport.js.map +0 -1
- /package/dist/{connectors → channels}/slack/adapter-core.js +0 -0
- /package/dist/{connectors → channels}/slack/source-thread.d.ts +0 -0
- /package/dist/{connectors → channels}/slack/source-thread.js +0 -0
package/dist/namespaces.js
CHANGED
|
@@ -6,11 +6,8 @@
|
|
|
6
6
|
* and providers can be added without growing the barrel:
|
|
7
7
|
*
|
|
8
8
|
* ```ts
|
|
9
|
-
*
|
|
10
|
-
* connectors.
|
|
11
|
-
* repositories: [{ repo: "acme/api", path: "api" }],
|
|
12
|
-
* events: [{ on: "pull_request.opened", prompt: () => "review" }],
|
|
13
|
-
* });
|
|
9
|
+
* channels.slack({ on: ["app_mention"] });
|
|
10
|
+
* connectors.slack({ includeTools: ["slack_list_channels"] });
|
|
14
11
|
* sandboxes.langsmith({ defaultTimeout: 600 });
|
|
15
12
|
* auth.supabase({ projectRef: "abc" });
|
|
16
13
|
* credentials.github({ read: ["user"] });
|
|
@@ -25,10 +22,9 @@
|
|
|
25
22
|
* cannot contribute its own — `defineExtension` stays internal.
|
|
26
23
|
*/
|
|
27
24
|
import { LangSmithSandbox } from "deepagents";
|
|
28
|
-
import { githubConnector } from "./connectors/github/index.js";
|
|
29
|
-
import { annotationQueues, chatFeedback, examples, feedback, langsmithConnector, prompts, runs, threads, traceViewer, } from "./connectors/langsmith/index.js";
|
|
30
25
|
import { marketplaceConnectors, } from "./connectors/marketplace/index.js";
|
|
31
26
|
import { mcpConnector } from "./connectors/mcp/index.js";
|
|
27
|
+
import { slackChannel } from "./channels/slack/index.js";
|
|
32
28
|
import { slackConnector } from "./connectors/slack/index.js";
|
|
33
29
|
import { toolServerConnectors, } from "./connectors/toolserver/index.js";
|
|
34
30
|
import { defineExtension } from "./extension.js";
|
|
@@ -56,16 +52,6 @@ export const sandboxes = {
|
|
|
56
52
|
return langsmithSandbox(options);
|
|
57
53
|
},
|
|
58
54
|
};
|
|
59
|
-
const langsmithConnectors = Object.assign(langsmithConnector, {
|
|
60
|
-
runs,
|
|
61
|
-
feedback,
|
|
62
|
-
examples,
|
|
63
|
-
annotationQueues,
|
|
64
|
-
prompts,
|
|
65
|
-
threads,
|
|
66
|
-
chatFeedback,
|
|
67
|
-
traceViewer,
|
|
68
|
-
});
|
|
69
55
|
/**
|
|
70
56
|
* Integrations: tools, HTTP routes, sandbox provisioning, inbound events, and
|
|
71
57
|
* named messaging. Exported from `connectors/*`.
|
|
@@ -78,9 +64,14 @@ export const connectors = {
|
|
|
78
64
|
...toolServerConnectors,
|
|
79
65
|
...marketplaceConnectors,
|
|
80
66
|
mcp: mcpConnector,
|
|
81
|
-
github: githubConnector,
|
|
82
67
|
slack: slackConnector,
|
|
83
|
-
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* Inbound messaging surfaces. Factories are assigned by reference so signatures
|
|
71
|
+
* stay in step with the channel modules. Hover docs come from {@link Channels}.
|
|
72
|
+
*/
|
|
73
|
+
export const channels = {
|
|
74
|
+
slack: slackChannel,
|
|
84
75
|
};
|
|
85
76
|
/** Third-party token resolvers. Composed into `defineIdentity({ credentials })`. */
|
|
86
77
|
export const credentials = {
|
|
@@ -99,8 +90,8 @@ export const credentials = {
|
|
|
99
90
|
* per-actor tokens for tools, sandbox git/`gh`, or Fleet toolserver subjects.
|
|
100
91
|
*
|
|
101
92
|
* Authors rarely list providers by hand. Prefer inference: a user-scoped
|
|
102
|
-
* identity plus `
|
|
103
|
-
*
|
|
93
|
+
* identity plus `credentials.github({ read: ["user"] })`, Slack Events,
|
|
94
|
+
* Google/Microsoft/LinkedIn/X toolserver connectors, or marketplace
|
|
104
95
|
* bridges (`connectors.notion`, `connectors.neon`, …) mounts the matching
|
|
105
96
|
* Connect flow automatically. Use this namespace when you need an explicit
|
|
106
97
|
* opt-in or a custom options bag.
|
package/dist/namespaces.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"namespaces.js","sourceRoot":"","sources":["../src/namespaces.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"namespaces.js","sourceRoot":"","sources":["../src/namespaces.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C,OAAO,EACL,qBAAqB,GAEtB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EACL,oBAAoB,GAErB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EAAE,WAAW,IAAI,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACpF,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EACL,kBAAkB,GAEnB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,qCAAqC,CAAC;AACjF,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AACnF,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAGN,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAE3C,MAAM,gBAAgB,GAAG,eAAe,CAAC,SAAS,EAAE;IAClD,KAAK,EAAE,qBAAqB;IAC5B,QAAQ,EAAE,gBAAgB;IAC1B,2EAA2E;IAC3E,2EAA2E;IAC3E,6BAA6B;IAC7B,IAAI,EAAE,CAAC,OAAiC,EAAE,EAAE,CAAC,OAAO,IAAI,EAAE;CAC3D,CAAC,CAAC;AAEH,kFAAkF;AAClF,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,SAAS,CACP,OAAiC;QAEjC,OAAO,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;CACF,CAAC;AAuDF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,UAAU,GAAe;IACpC,GAAG,oBAAoB;IACvB,GAAG,qBAAqB;IACxB,GAAG,EAAE,YAAY;IACjB,KAAK,EAAE,cAAc;CACtB,CAAC;AAyBF;;;GAGG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAa;IAChC,KAAK,EAAE,YAAY;CACpB,CAAC;AAEF,oFAAoF;AACpF,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,MAAM,EAAE,iBAAiB;CAC1B,CAAC;AAgHF;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,CAAC,MAAM,OAAO,GAAY;IAC9B,GAAG,kBAAkB;IACrB,MAAM,EAAE,aAAa;IACrB,MAAM,EAAE,aAAa;IACrB,SAAS,EAAE,gBAAgB;IAC3B,QAAQ,EAAE,eAAe;IACzB,CAAC,EAAE,QAAQ;IACX,KAAK,EAAE,YAAY;CACpB,CAAC"}
|
package/dist/runtime/auth.d.ts
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import { Auth } from "@langchain/langgraph-sdk/auth";
|
|
2
2
|
import { type IdentityConfig, type IdentityDefinition, type RuntimeIdentity } from "../identity/index.js";
|
|
3
3
|
/**
|
|
4
|
-
* Reserved transport for the trusted-backend ingress mode. User
|
|
5
|
-
*
|
|
4
|
+
* Reserved transport for the trusted-backend ingress mode. User identity
|
|
5
|
+
* travels as reserved headers (mapped into `config.configurable` by the generated
|
|
6
6
|
* `langgraph.json` allowlist); the ingress secret is validated here and is
|
|
7
7
|
* deliberately **not** allowlisted, so it never reaches `config.configurable`.
|
|
8
8
|
*/
|
|
9
9
|
/** Trusted-backend / channel-loopback identity headers (single source of truth). */
|
|
10
10
|
export declare const USER_HEADER = "x-mda-user-id";
|
|
11
|
-
export declare const ORGANIZATION_HEADER = "x-mda-organization-id";
|
|
12
11
|
/** Comma- or space-delimited group memberships. */
|
|
13
12
|
export declare const GROUPS_HEADER = "x-mda-groups";
|
|
14
13
|
export declare const INGRESS_SECRET_HEADER = "x-mda-ingress-secret";
|
|
@@ -30,7 +29,6 @@ export interface ManagedUser {
|
|
|
30
29
|
identity: string;
|
|
31
30
|
permissions: string[];
|
|
32
31
|
mda_user_id: string;
|
|
33
|
-
mda_organization_id?: string;
|
|
34
32
|
mda_user_email?: string;
|
|
35
33
|
/** Group memberships the ingress asserted; read-only, never an isolation key. */
|
|
36
34
|
mda_groups?: string[];
|
|
@@ -74,17 +72,17 @@ export declare const GITHUB_CREDENTIALS_STORE_PREFIX = "mda_github_credentials";
|
|
|
74
72
|
*/
|
|
75
73
|
export declare const IDENTITY_LINKS_SERVICE_USER = "mda:identity-links";
|
|
76
74
|
/**
|
|
77
|
-
* Fail-closed (403) unless the store `namespace` contains the
|
|
78
|
-
*
|
|
79
|
-
*
|
|
75
|
+
* Fail-closed (403) unless the store `namespace` contains the caller id as a
|
|
76
|
+
* contiguous ordered prefix (typically after the deployment id). No user slice
|
|
77
|
+
* → no per-identity restriction.
|
|
80
78
|
*/
|
|
81
79
|
export declare function assertStoreAccess(cfg: IdentityConfig, user: ManagedUser, value: unknown): void;
|
|
82
80
|
/** True when `required` appears as a contiguous ordered subsequence of `namespace`. */
|
|
83
81
|
export declare function namespaceHasOrderedSegments(namespace: string[], required: string[]): boolean;
|
|
84
82
|
/**
|
|
85
83
|
* Resolve the caller identity for `trusted_backend`: validate the shared ingress
|
|
86
|
-
* secret, then trust the reserved user
|
|
87
|
-
* missing/invalid secret
|
|
84
|
+
* secret, then trust the reserved user headers. Fail-closed (401) on a
|
|
85
|
+
* missing/invalid secret or a missing user.
|
|
88
86
|
*
|
|
89
87
|
* Under `mda dev` (`MDA_LOCAL_DEV=1`), requests without a valid ingress secret
|
|
90
88
|
* resolve to a synthetic local service principal so LangGraph Studio can talk
|
|
@@ -107,12 +105,12 @@ export declare function isLocalDevUnscopedUser(user: unknown): boolean;
|
|
|
107
105
|
* Returns `null` when local-dev mode is off or real ingress credentials are
|
|
108
106
|
* present (so the normal trusted-backend path runs).
|
|
109
107
|
*/
|
|
110
|
-
export declare function tryLocalDevTrustedUser(
|
|
111
|
-
/** Derive the owner value `@auth.on.threads` filters on
|
|
112
|
-
export declare function threadOwnerKey(
|
|
108
|
+
export declare function tryLocalDevTrustedUser(_cfg: IdentityConfig, request: Request): ManagedUser | null;
|
|
109
|
+
/** Derive the owner value `@auth.on.threads` filters on (the caller user id). */
|
|
110
|
+
export declare function threadOwnerKey(user: ManagedUser): string;
|
|
113
111
|
/** True when this deployment exposes guest issuance and the request targets it. */
|
|
114
112
|
export declare function isGuestIssuanceRequest(request: Request, cfg: IdentityConfig): boolean;
|
|
115
|
-
/** True when the request targets a public connector Events ingress route. */
|
|
113
|
+
/** True when the request targets a public channel/connector Events ingress route. */
|
|
116
114
|
export declare function isChannelEventsRequest(request: Request): boolean;
|
|
117
115
|
/** True when the request is a public identity-provider OAuth/OIDC callback. */
|
|
118
116
|
export declare function isIdentityProviderCallbackRequest(request: Request): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/runtime/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EAGL,MAAM,+BAA+B,CAAC;AAIvC,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACrB,MAAM,sBAAsB,CAAC;AAO9B;;;;;GAKG;AACH,oFAAoF;AACpF,eAAO,MAAM,WAAW,kBAAkB,CAAC;AAC3C,
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/runtime/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EAGL,MAAM,+BAA+B,CAAC;AAIvC,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACrB,MAAM,sBAAsB,CAAC;AAO9B;;;;;GAKG;AACH,oFAAoF;AACpF,eAAO,MAAM,WAAW,kBAAkB,CAAC;AAC3C,mDAAmD;AACnD,eAAO,MAAM,aAAa,iBAAiB,CAAC;AAC5C,eAAO,MAAM,qBAAqB,yBAAyB,CAAC;AAC5D;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,0BAA0B,CAAC;AAC9D,eAAO,MAAM,oBAAoB,2BAA2B,CAAC;AAE7D,kFAAkF;AAClF,eAAO,MAAM,kBAAkB,uBAAuB,CAAC;AAkDvD;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iFAAiF;IACjF,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,kFAAkF;IAClF,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,oEAAoE;IACpE,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI,CAmDnE;AAED;;;;;;;;GAQG;AACH,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,cAAc,EACnB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,eAAe,CAAC,CAoB1B;AAED,uEAAuE;AACvE,eAAO,MAAM,2BAA2B,uBAAuB,CAAC;AAEhE;;;;GAIG;AACH,eAAO,MAAM,+BAA+B,2BAA2B,CAAC;AAExE;;;GAGG;AACH,eAAO,MAAM,2BAA2B,uBAAuB,CAAC;AAEhE;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE,WAAW,EACjB,KAAK,EAAE,OAAO,GACb,IAAI,CAkCN;AAED,uFAAuF;AACvF,wBAAgB,2BAA2B,CACzC,SAAS,EAAE,MAAM,EAAE,EACnB,QAAQ,EAAE,MAAM,EAAE,GACjB,OAAO,CAeT;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,cAAc,EACnB,OAAO,EAAE,OAAO,GACf,WAAW,CAoDb;AAOD;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAgB7D;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,cAAc,EACpB,OAAO,EAAE,OAAO,GACf,WAAW,GAAG,IAAI,CAgBpB;AAED,iFAAiF;AACjF,wBAAgB,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAExD;AAkBD,mFAAmF;AACnF,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,cAAc,GAClB,OAAO,CAaT;AAED,qFAAqF;AACrF,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAQhE;AAED,+EAA+E;AAC/E,wBAAgB,iCAAiC,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAM3E;AAED,mFAAmF;AACnF,wBAAgB,uBAAuB,IAAI,WAAW,CAMrD;AAED,gFAAgF;AAChF,wBAAgB,uBAAuB,IAAI,WAAW,CAMrD"}
|
package/dist/runtime/auth.js
CHANGED
|
@@ -1,18 +1,17 @@
|
|
|
1
1
|
import { Auth, HTTPException, isStudioUser, } from "@langchain/langgraph-sdk/auth";
|
|
2
2
|
import { trustedMessagingProviders } from "../channels/messaging-registry.js";
|
|
3
3
|
import { trustedChannelSourceProviders } from "../channels/registry-store.js";
|
|
4
|
-
import { normalizeGroups,
|
|
4
|
+
import { normalizeGroups, hasUserMemorySlice, } from "../identity/index.js";
|
|
5
5
|
import { buildRuntimeIdentity, memoryIdentitySegments, } from "./identity-runtime.js";
|
|
6
6
|
import { resolveValidatedTokenUser } from "./validated-token.js";
|
|
7
7
|
/**
|
|
8
|
-
* Reserved transport for the trusted-backend ingress mode. User
|
|
9
|
-
*
|
|
8
|
+
* Reserved transport for the trusted-backend ingress mode. User identity
|
|
9
|
+
* travels as reserved headers (mapped into `config.configurable` by the generated
|
|
10
10
|
* `langgraph.json` allowlist); the ingress secret is validated here and is
|
|
11
11
|
* deliberately **not** allowlisted, so it never reaches `config.configurable`.
|
|
12
12
|
*/
|
|
13
13
|
/** Trusted-backend / channel-loopback identity headers (single source of truth). */
|
|
14
14
|
export const USER_HEADER = "x-mda-user-id";
|
|
15
|
-
export const ORGANIZATION_HEADER = "x-mda-organization-id";
|
|
16
15
|
/** Comma- or space-delimited group memberships. */
|
|
17
16
|
export const GROUPS_HEADER = "x-mda-groups";
|
|
18
17
|
export const INGRESS_SECRET_HEADER = "x-mda-ingress-secret";
|
|
@@ -41,7 +40,12 @@ const GUEST_ISSUANCE_PATH = "/identity/guest";
|
|
|
41
40
|
*/
|
|
42
41
|
const IDENTITY_PROVIDER_CALLBACK_PATH = /^\/identity\/[^/]+\/callback\/?$/;
|
|
43
42
|
/**
|
|
44
|
-
*
|
|
43
|
+
* Channel Events routes authenticate via provider signatures (Slack HMAC),
|
|
44
|
+
* not MDA ingress. Path shape: `/channels/{name}/events`.
|
|
45
|
+
*/
|
|
46
|
+
const CHANNEL_EVENTS_PATH = /^\/channels\/[^/]+\/events\/?$/;
|
|
47
|
+
/**
|
|
48
|
+
* Connector Events routes authenticate via provider signatures (GitHub HMAC),
|
|
45
49
|
* not MDA ingress. Path shape: `/connectors/{name}/events`.
|
|
46
50
|
*/
|
|
47
51
|
const CONNECTOR_EVENTS_PATH = /^\/connectors\/[^/]+\/events\/?$/;
|
|
@@ -92,7 +96,7 @@ export function buildManagedAuth(identity) {
|
|
|
92
96
|
if (isStudioUser(user) || isLocalDevUnscopedUser(user)) {
|
|
93
97
|
return true;
|
|
94
98
|
}
|
|
95
|
-
const key = threadOwnerKey(
|
|
99
|
+
const key = threadOwnerKey(user);
|
|
96
100
|
if (value && typeof value === "object") {
|
|
97
101
|
const container = value;
|
|
98
102
|
container.metadata = { ...container.metadata, owner: key };
|
|
@@ -152,12 +156,14 @@ export const GITHUB_CREDENTIALS_STORE_PREFIX = "mda_github_credentials";
|
|
|
152
156
|
*/
|
|
153
157
|
export const IDENTITY_LINKS_SERVICE_USER = "mda:identity-links";
|
|
154
158
|
/**
|
|
155
|
-
* Fail-closed (403) unless the store `namespace` contains the
|
|
156
|
-
*
|
|
157
|
-
*
|
|
159
|
+
* Fail-closed (403) unless the store `namespace` contains the caller id as a
|
|
160
|
+
* contiguous ordered prefix (typically after the deployment id). No user slice
|
|
161
|
+
* → no per-identity restriction.
|
|
158
162
|
*/
|
|
159
163
|
export function assertStoreAccess(cfg, user, value) {
|
|
160
|
-
const required =
|
|
164
|
+
const required = hasUserMemorySlice(cfg.scope.memory)
|
|
165
|
+
? memoryIdentitySegments(user.mda_user_id ? String(user.mda_user_id) : undefined)
|
|
166
|
+
: [];
|
|
161
167
|
if (required.length === 0) {
|
|
162
168
|
return;
|
|
163
169
|
}
|
|
@@ -201,8 +207,8 @@ export function namespaceHasOrderedSegments(namespace, required) {
|
|
|
201
207
|
}
|
|
202
208
|
/**
|
|
203
209
|
* Resolve the caller identity for `trusted_backend`: validate the shared ingress
|
|
204
|
-
* secret, then trust the reserved user
|
|
205
|
-
* missing/invalid secret
|
|
210
|
+
* secret, then trust the reserved user headers. Fail-closed (401) on a
|
|
211
|
+
* missing/invalid secret or a missing user.
|
|
206
212
|
*
|
|
207
213
|
* Under `mda dev` (`MDA_LOCAL_DEV=1`), requests without a valid ingress secret
|
|
208
214
|
* resolve to a synthetic local service principal so LangGraph Studio can talk
|
|
@@ -222,8 +228,6 @@ export function resolveTrustedBackendUser(cfg, request) {
|
|
|
222
228
|
if (!userId) {
|
|
223
229
|
throw new HTTPException(401, { message: `missing ${USER_HEADER}` });
|
|
224
230
|
}
|
|
225
|
-
const organizationId = trustedOrganizationId(request);
|
|
226
|
-
assertOrganizationPresentIfRequired(cfg, organizationId);
|
|
227
231
|
const groups = normalizeGroups(request.headers.get(GROUPS_HEADER));
|
|
228
232
|
const sourceProvider = request.headers.get(SOURCE_PROVIDER_HEADER) ?? undefined;
|
|
229
233
|
const sourceThread = request.headers.get(SOURCE_THREAD_HEADER) ?? undefined;
|
|
@@ -244,11 +248,15 @@ export function resolveTrustedBackendUser(cfg, request) {
|
|
|
244
248
|
message: `missing ${SOURCE_PROVIDER_HEADER}`,
|
|
245
249
|
});
|
|
246
250
|
}
|
|
251
|
+
// Only the fixed Slack agent principal is a service. Connected Slack Events
|
|
252
|
+
// loopback as the linked person (`sourceProvider: "slack"`) and must stay
|
|
253
|
+
// kind=person so credentials/memory follow the caller.
|
|
254
|
+
const isService = userId === "mda:slack";
|
|
247
255
|
return {
|
|
248
256
|
identity: userId,
|
|
249
257
|
permissions: [],
|
|
250
258
|
mda_user_id: userId,
|
|
251
|
-
...(
|
|
259
|
+
...(isService ? { mda_user_kind: "service" } : {}),
|
|
252
260
|
...(groups.length > 0 ? { mda_groups: groups } : {}),
|
|
253
261
|
...(sourceProvider
|
|
254
262
|
? {
|
|
@@ -262,10 +270,6 @@ export function resolveTrustedBackendUser(cfg, request) {
|
|
|
262
270
|
function trustedUserId(request) {
|
|
263
271
|
return request.headers.get(USER_HEADER) ?? undefined;
|
|
264
272
|
}
|
|
265
|
-
/** Active organization from the trusted headers. */
|
|
266
|
-
function trustedOrganizationId(request) {
|
|
267
|
-
return request.headers.get(ORGANIZATION_HEADER) ?? undefined;
|
|
268
|
-
}
|
|
269
273
|
/**
|
|
270
274
|
* Under `mda dev`, synthetic local/Companion service principals are unscoped
|
|
271
275
|
* for thread search + store so authors can see Studio-created Local threads.
|
|
@@ -292,7 +296,7 @@ export function isLocalDevUnscopedUser(user) {
|
|
|
292
296
|
* Returns `null` when local-dev mode is off or real ingress credentials are
|
|
293
297
|
* present (so the normal trusted-backend path runs).
|
|
294
298
|
*/
|
|
295
|
-
export function tryLocalDevTrustedUser(
|
|
299
|
+
export function tryLocalDevTrustedUser(_cfg, request) {
|
|
296
300
|
if (process.env[LOCAL_DEV_ENV] !== "1") {
|
|
297
301
|
return null;
|
|
298
302
|
}
|
|
@@ -300,38 +304,16 @@ export function tryLocalDevTrustedUser(cfg, request) {
|
|
|
300
304
|
return null;
|
|
301
305
|
}
|
|
302
306
|
const userId = trustedUserId(request) ?? LOCAL_DEV_USER;
|
|
303
|
-
const organizationId = trustedOrganizationId(request) ??
|
|
304
|
-
(cfg.organization === "required"
|
|
305
|
-
? "mda:local-dev-organization"
|
|
306
|
-
: undefined);
|
|
307
307
|
return {
|
|
308
308
|
identity: userId,
|
|
309
309
|
permissions: [],
|
|
310
310
|
mda_user_id: userId,
|
|
311
311
|
mda_user_kind: "service",
|
|
312
|
-
...(organizationId ? { mda_organization_id: organizationId } : {}),
|
|
313
312
|
};
|
|
314
313
|
}
|
|
315
|
-
/** Derive the owner value `@auth.on.threads` filters on
|
|
316
|
-
export function threadOwnerKey(
|
|
317
|
-
|
|
318
|
-
const userId = String(user.mda_user_id ?? "");
|
|
319
|
-
const organizationId = user.mda_organization_id
|
|
320
|
-
? String(user.mda_organization_id)
|
|
321
|
-
: undefined;
|
|
322
|
-
if (scope === "organization") {
|
|
323
|
-
return organizationId ?? userId;
|
|
324
|
-
}
|
|
325
|
-
if (scope === "conversation") {
|
|
326
|
-
const channel = user.mda_source_thread_id;
|
|
327
|
-
// Slack (and other conversation sources) own by source thread; web callers
|
|
328
|
-
// without a source stamp fall back to user-owned threads.
|
|
329
|
-
if (channel && String(channel).length > 0) {
|
|
330
|
-
return String(channel);
|
|
331
|
-
}
|
|
332
|
-
return userId;
|
|
333
|
-
}
|
|
334
|
-
return userId;
|
|
314
|
+
/** Derive the owner value `@auth.on.threads` filters on (the caller user id). */
|
|
315
|
+
export function threadOwnerKey(user) {
|
|
316
|
+
return String(user.mda_user_id ?? "");
|
|
335
317
|
}
|
|
336
318
|
function requireIngressSecret(request) {
|
|
337
319
|
if (!hasValidIngressSecret(request)) {
|
|
@@ -345,13 +327,6 @@ function hasValidIngressSecret(request) {
|
|
|
345
327
|
const provided = request.headers.get(INGRESS_SECRET_HEADER);
|
|
346
328
|
return Boolean(expected && provided && constantTimeEquals(expected, provided));
|
|
347
329
|
}
|
|
348
|
-
function assertOrganizationPresentIfRequired(cfg, organizationId) {
|
|
349
|
-
if (cfg.organization === "required" && !organizationId) {
|
|
350
|
-
throw new HTTPException(401, {
|
|
351
|
-
message: `missing ${ORGANIZATION_HEADER} for an organization-scoped deployment`,
|
|
352
|
-
});
|
|
353
|
-
}
|
|
354
|
-
}
|
|
355
330
|
/** True when this deployment exposes guest issuance and the request targets it. */
|
|
356
331
|
export function isGuestIssuanceRequest(request, cfg) {
|
|
357
332
|
if (request.method !== "POST") {
|
|
@@ -367,13 +342,13 @@ export function isGuestIssuanceRequest(request, cfg) {
|
|
|
367
342
|
}
|
|
368
343
|
return http.providers.some((provider) => provider.guest?.issue);
|
|
369
344
|
}
|
|
370
|
-
/** True when the request targets a public connector Events ingress route. */
|
|
345
|
+
/** True when the request targets a public channel/connector Events ingress route. */
|
|
371
346
|
export function isChannelEventsRequest(request) {
|
|
372
347
|
if (request.method !== "POST") {
|
|
373
348
|
return false;
|
|
374
349
|
}
|
|
375
350
|
const { pathname } = new URL(request.url);
|
|
376
|
-
return CONNECTOR_EVENTS_PATH.test(pathname);
|
|
351
|
+
return (CHANNEL_EVENTS_PATH.test(pathname) || CONNECTOR_EVENTS_PATH.test(pathname));
|
|
377
352
|
}
|
|
378
353
|
/** True when the request is a public identity-provider OAuth/OIDC callback. */
|
|
379
354
|
export function isIdentityProviderCallbackRequest(request) {
|
package/dist/runtime/auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/runtime/auth.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/runtime/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,aAAa,EACb,YAAY,GACb,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,6BAA6B,EAAE,MAAM,+BAA+B,CAAC;AAC9E,OAAO,EACL,eAAe,EACf,kBAAkB,GAInB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAEjE;;;;;GAKG;AACH,oFAAoF;AACpF,MAAM,CAAC,MAAM,WAAW,GAAG,eAAe,CAAC;AAC3C,mDAAmD;AACnD,MAAM,CAAC,MAAM,aAAa,GAAG,cAAc,CAAC;AAC5C,MAAM,CAAC,MAAM,qBAAqB,GAAG,sBAAsB,CAAC;AAC5D;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,uBAAuB,CAAC;AAC9D,MAAM,CAAC,MAAM,oBAAoB,GAAG,wBAAwB,CAAC;AAE7D,kFAAkF;AAClF,MAAM,CAAC,MAAM,kBAAkB,GAAG,oBAAoB,CAAC;AAEvD;;;;GAIG;AACH,MAAM,aAAa,GAAG,eAAe,CAAC;AAEtC,0EAA0E;AAC1E,MAAM,cAAc,GAAG,eAAe,CAAC;AAEvC,8EAA8E;AAC9E,MAAM,mBAAmB,GAAG,iBAAiB,CAAC;AAE9C;;;GAGG;AACH,MAAM,+BAA+B,GAAG,kCAAkC,CAAC;AAE3E;;;GAGG;AACH,MAAM,mBAAmB,GAAG,gCAAgC,CAAC;AAE7D;;;GAGG;AACH,MAAM,qBAAqB,GAAG,kCAAkC,CAAC;AAEjE,2FAA2F;AAC3F,MAAM,gCAAgC,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;AAEtE,SAAS,uBAAuB,CAAC,QAAgB;IAC/C,OAAO,CACL,gCAAgC,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC9C,yBAAyB,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC;QACzC,6BAA6B,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAC9C,CAAC;AACJ,CAAC;AAED,iFAAiF;AACjF,MAAM,iBAAiB,GAAG,kBAAkB,CAAC;AAE7C,+EAA+E;AAC/E,MAAM,mBAAmB,GAAG,oBAAoB,CAAC;AAsBjD;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAA4B;IAC3D,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC;IAC5B,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;IAC9B,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;IAExB,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,OAAgB,EAAwB,EAAE;QACjE,2EAA2E;QAC3E,uEAAuE;QACvE,IAAI,sBAAsB,CAAC,OAAO,CAAC,EAAE,CAAC;YACpC,OAAO,uBAAuB,EAAE,CAAC;QACnC,CAAC;QACD,6DAA6D;QAC7D,yEAAyE;QACzE,wEAAwE;QACxE,IACE,iCAAiC,CAAC,OAAO,CAAC;YAC1C,sBAAsB,CAAC,OAAO,EAAE,GAAG,CAAC,EACpC,CAAC;YACD,OAAO,uBAAuB,EAAE,CAAC;QACnC,CAAC;QACD,yEAAyE;QACzE,wEAAwE;QACxE,IAAI,IAAI,KAAK,SAAS,IAAI,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC;YACzD,OAAO,yBAAyB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,yBAAyB,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;QACrC,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,sBAAsB,CAAC,IAAI,CAAC,EAAE,CAAC;YACvD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,GAAG,GAAG,cAAc,CAAC,IAA8B,CAAC,CAAC;QAC3D,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACvC,MAAM,SAAS,GAAG,KAA+C,CAAC;YAClE,SAAS,CAAC,QAAQ,GAAG,EAAE,GAAG,SAAS,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;QAC7D,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;IACxB,CAAC,CAAC,CAAC;IAEH,wEAAwE;IACxE,+BAA+B;IAC/B,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;QACnC,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,sBAAsB,CAAC,IAAI,CAAC,EAAE,CAAC;YACvD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,iBAAiB,CAAC,GAAG,EAAE,IAA8B,EAAE,KAAK,CAAC,CAAC;QAC9D,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,GAAmB,EACnB,OAAgB;IAEhB,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;IAC9B,MAAM,IAAI,GACR,IAAI,KAAK,SAAS,IAAI,qBAAqB,CAAC,OAAO,CAAC;QAClD,CAAC,CAAC,yBAAyB,CAAC,GAAG,EAAE,OAAO,CAAC;QACzC,CAAC,CAAC,MAAM,yBAAyB,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC1D,yEAAyE;IACzE,MAAM,cAAc,GAClB,IAAI,CAAC,mBAAmB;QACxB,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACxD,MAAM,QAAQ,GAAG,oBAAoB,CAAC;QACpC,mBAAmB,EAAE;YACnB,GAAG,IAAI;YACP,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACnE;KACF,CAAC,CAAC;IACH,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,aAAa,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,uEAAuE;AACvE,MAAM,CAAC,MAAM,2BAA2B,GAAG,oBAAoB,CAAC;AAEhE;;;;GAIG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,wBAAwB,CAAC;AAExE;;;GAGG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,oBAAoB,CAAC;AAEhE;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAC/B,GAAmB,EACnB,IAAiB,EACjB,KAAc;IAEd,MAAM,QAAQ,GAAG,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC;QACnD,CAAC,CAAC,sBAAsB,CACpB,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CACxD;QACH,CAAC,CAAC,EAAE,CAAC;IACP,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO;IACT,CAAC;IACD,MAAM,SAAS,GACb,KAAK;QACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,CAAC,OAAO,CAAE,KAAiC,CAAC,SAAS,CAAC;QACzD,CAAC,CAAE,KAAkC,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC;QAC3D,CAAC,CAAC,EAAE,CAAC;IACT,4EAA4E;IAC5E,gFAAgF;IAChF,4EAA4E;IAC5E,IACE,SAAS,CAAC,CAAC,CAAC,KAAK,2BAA2B;QAC5C,SAAS,CAAC,CAAC,CAAC,KAAK,+BAA+B,EAChD,CAAC;QACD,IAAI,IAAI,CAAC,WAAW,KAAK,2BAA2B,EAAE,CAAC;YACrD,OAAO;QACT,CAAC;QACD,MAAM,IAAI,aAAa,CAAC,GAAG,EAAE;YAC3B,OAAO,EAAE,2DAA2D;SACrE,CAAC,CAAC;IACL,CAAC;IACD,IAAI,CAAC,2BAA2B,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,CAAC;QACtD,MAAM,IAAI,aAAa,CAAC,GAAG,EAAE;YAC3B,OAAO,EAAE,2DAA2D;SACrE,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,2BAA2B,CACzC,SAAmB,EACnB,QAAkB;IAElB,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,SAAS,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;QACvC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,SAAS,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAC5E,IACE,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,OAAO,CAAC,EACxE,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,yBAAyB,CACvC,GAAmB,EACnB,OAAgB;IAEhB,MAAM,KAAK,GAAG,sBAAsB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACnD,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,KAAK,CAAC;IACf,CAAC;IAED,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAE9B,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACtC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,aAAa,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,WAAW,WAAW,EAAE,EAAE,CAAC,CAAC;IACtE,CAAC;IACD,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;IAEnE,MAAM,cAAc,GAClB,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,IAAI,SAAS,CAAC;IAC3D,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,SAAS,CAAC;IAC5E,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;QACjC,IAAI,CAAC,uBAAuB,CAAC,cAAc,CAAC,EAAE,CAAC;YAC7C,MAAM,IAAI,aAAa,CAAC,GAAG,EAAE;gBAC3B,OAAO,EAAE,eAAe,sBAAsB,EAAE;aACjD,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,aAAa,CAAC,GAAG,EAAE;gBAC3B,OAAO,EAAE,WAAW,oBAAoB,EAAE;aAC3C,CAAC,CAAC;QACL,CAAC;IACH,CAAC;SAAM,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QACtC,MAAM,IAAI,aAAa,CAAC,GAAG,EAAE;YAC3B,OAAO,EAAE,WAAW,sBAAsB,EAAE;SAC7C,CAAC,CAAC;IACL,CAAC;IAED,4EAA4E;IAC5E,0EAA0E;IAC1E,uDAAuD;IACvD,MAAM,SAAS,GAAG,MAAM,KAAK,WAAW,CAAC;IAEzC,OAAO;QACL,QAAQ,EAAE,MAAM;QAChB,WAAW,EAAE,EAAE;QACf,WAAW,EAAE,MAAM;QACnB,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,SAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpD,GAAG,CAAC,cAAc;YAChB,CAAC,CAAC;gBACE,mBAAmB,EAAE,cAAc;gBACnC,oBAAoB,EAAE,YAAY;aACnC;YACH,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC;AAED,0CAA0C;AAC1C,SAAS,aAAa,CAAC,OAAgB;IACrC,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,SAAS,CAAC;AACvD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAa;IAClD,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,GAAG,EAAE,CAAC;QACvC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,MAAM,GAAI,IAAoB,CAAC,WAAW,CAAC;IACjD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;QAC1C,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,CACL,MAAM,KAAK,cAAc;QACzB,MAAM,KAAK,eAAe;QACzB,IAAoB,CAAC,aAAa,KAAK,SAAS,CAClD,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CACpC,IAAoB,EACpB,OAAgB;IAEhB,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,GAAG,EAAE,CAAC;QACvC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,cAAc,CAAC;IAExD,OAAO;QACL,QAAQ,EAAE,MAAM;QAChB,WAAW,EAAE,EAAE;QACf,WAAW,EAAE,MAAM;QACnB,aAAa,EAAE,SAAS;KACzB,CAAC;AACJ,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,cAAc,CAAC,IAAiB;IAC9C,OAAO,MAAM,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,oBAAoB,CAAC,OAAgB;IAC5C,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,aAAa,CAAC,GAAG,EAAE;YAC3B,OAAO,EAAE,mCAAmC;SAC7C,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,OAAgB;IAC7C,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IAC5D,OAAO,OAAO,CACZ,QAAQ,IAAI,QAAQ,IAAI,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAC/D,CAAC;AACJ,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,sBAAsB,CACpC,OAAgB,EAChB,GAAmB;IAEnB,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1C,IAAI,QAAQ,KAAK,mBAAmB,EAAE,CAAC;QACrC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;IAC9B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAClE,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,sBAAsB,CAAC,OAAgB;IACrD,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1C,OAAO,CACL,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAC3E,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,iCAAiC,CAAC,OAAgB;IAChE,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1C,OAAO,+BAA+B,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACxD,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,uBAAuB;IACrC,OAAO;QACL,QAAQ,EAAE,iBAAiB;QAC3B,WAAW,EAAE,EAAE;QACf,WAAW,EAAE,iBAAiB;KAC/B,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,uBAAuB;IACrC,OAAO;QACL,QAAQ,EAAE,mBAAmB;QAC7B,WAAW,EAAE,EAAE;QACf,WAAW,EAAE,mBAAmB;KACjC,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,CAAS,EAAE,CAAS;IAC9C,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACrC,QAAQ,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,QAAQ,KAAK,CAAC,CAAC;AACxB,CAAC"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The managed channel protocol.
|
|
3
|
+
*
|
|
4
|
+
* A channel is one inbound messaging surface with one external platform. It may
|
|
5
|
+
* contribute Events ingress, outbound messaging, and deploy requirements.
|
|
6
|
+
* Discovery is file-based: the CLI globs modules under `channels/` that export a
|
|
7
|
+
* `channel`, imports each one, and hands them to {@link collectChannels}, which
|
|
8
|
+
* stamps each with its file-stem `name`.
|
|
9
|
+
*/
|
|
10
|
+
import type { ChannelManifest } from "../channels/manifest.js";
|
|
11
|
+
import type { ChannelTransport } from "../channels/runtime.js";
|
|
12
|
+
/**
|
|
13
|
+
* Realm-global brand marking a value as a managed channel. `Symbol.for` keeps
|
|
14
|
+
* the identity stable across duplicate module instances.
|
|
15
|
+
*/
|
|
16
|
+
export declare const CHANNEL_BRAND: unique symbol;
|
|
17
|
+
/**
|
|
18
|
+
* Context handed to {@link Channel.events} for the conventional public inbound
|
|
19
|
+
* route at `/channels/{name}/events`.
|
|
20
|
+
*/
|
|
21
|
+
export interface ChannelEventsContext {
|
|
22
|
+
/** File-stem channel name (route segment). */
|
|
23
|
+
readonly name: string;
|
|
24
|
+
/** The inbound request. */
|
|
25
|
+
readonly request: Request;
|
|
26
|
+
/**
|
|
27
|
+
* Pre-read raw body when the HTTP framework may have consumed `request`
|
|
28
|
+
* (Hono mount passes `await c.req.text()`).
|
|
29
|
+
*/
|
|
30
|
+
readonly rawBody?: string | Uint8Array;
|
|
31
|
+
/** The live channel instance. */
|
|
32
|
+
readonly channel: Channel;
|
|
33
|
+
}
|
|
34
|
+
/** Deploy/runtime requirements a channel declares. */
|
|
35
|
+
export type ChannelRequirements = ChannelManifest;
|
|
36
|
+
/**
|
|
37
|
+
* A managed channel. Implement at least one of {@link Channel.events},
|
|
38
|
+
* {@link Channel.messaging}, or {@link Channel.requirements}; a channel
|
|
39
|
+
* implementing none does nothing and is rejected by {@link collectChannels}.
|
|
40
|
+
*/
|
|
41
|
+
export interface Channel {
|
|
42
|
+
readonly [CHANNEL_BRAND]: true;
|
|
43
|
+
/**
|
|
44
|
+
* Diagnostic / provider label (e.g. `"slack"`).
|
|
45
|
+
* HTTP mounts use {@link name}, not kind.
|
|
46
|
+
*/
|
|
47
|
+
readonly kind: string;
|
|
48
|
+
/**
|
|
49
|
+
* File-stem instance name, stamped by {@link collectChannels}. Mount
|
|
50
|
+
* namespace and messaging address (`runtime.channel` / `deliverTo`).
|
|
51
|
+
*/
|
|
52
|
+
readonly name?: string;
|
|
53
|
+
/**
|
|
54
|
+
* Handle `POST /channels/{name}/events` (verify + normalize + ACK + work).
|
|
55
|
+
* Public by construction; provider signature verification is the adapter's job.
|
|
56
|
+
*/
|
|
57
|
+
events?(ctx: ChannelEventsContext): Response | Promise<Response>;
|
|
58
|
+
/** Build outbound messaging transport for `runtime.channel` / schedule delivery. */
|
|
59
|
+
messaging?(env: NodeJS.ProcessEnv): ChannelTransport | undefined;
|
|
60
|
+
/** Deploy/runtime requirements (env, permissions, connection, provider config). */
|
|
61
|
+
requirements?(name: string): ChannelRequirements;
|
|
62
|
+
}
|
|
63
|
+
/** True when any channel can start an ingress run via {@link Channel.events}. */
|
|
64
|
+
export declare function hasIngressChannels(channels: readonly Channel[] | undefined): boolean;
|
|
65
|
+
/**
|
|
66
|
+
* Build the requirements map (file-stem → manifest) from channels that
|
|
67
|
+
* implement {@link Channel.requirements}.
|
|
68
|
+
*/
|
|
69
|
+
export declare function requirementsFromChannels(channels: readonly Channel[]): Record<string, ChannelRequirements>;
|
|
70
|
+
/** A discovered `channels/` module paired with its source path for diagnostics. */
|
|
71
|
+
export interface DiscoveredChannelModule {
|
|
72
|
+
/** Project-relative path of the module, used in error messages. */
|
|
73
|
+
readonly source: string;
|
|
74
|
+
/** The imported module namespace; its `channel` export is the channel. */
|
|
75
|
+
readonly module: {
|
|
76
|
+
channel?: unknown;
|
|
77
|
+
} & Record<string, unknown>;
|
|
78
|
+
}
|
|
79
|
+
/** Narrow an arbitrary value to a {@link Channel} by its brand. */
|
|
80
|
+
export declare function isChannel(value: unknown): value is Channel;
|
|
81
|
+
/**
|
|
82
|
+
* Validate and collect the channels discovered under `channels/`.
|
|
83
|
+
*
|
|
84
|
+
* Each module should expose exactly one channel as `export const channel`.
|
|
85
|
+
* The file stem becomes the instance {@link Channel.name} (mount namespace and
|
|
86
|
+
* messaging address). Duplicate stems are a hard error. Modules with no such
|
|
87
|
+
* export, or whose `channel` is not branded, are skipped. A branded channel
|
|
88
|
+
* that implements no hooks is still a hard error.
|
|
89
|
+
*/
|
|
90
|
+
export declare function collectChannels(modules: readonly DiscoveredChannelModule[]): Channel[];
|
|
91
|
+
//# sourceMappingURL=channel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../../src/runtime/channel.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,OAAO,MAAkC,CAAC;AAEtE;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,8CAA8C;IAC9C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,2BAA2B;IAC3B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;IACvC,iCAAiC;IACjC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED,sDAAsD;AACtD,MAAM,MAAM,mBAAmB,GAAG,eAAe,CAAC;AAElD;;;;GAIG;AACH,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC;IAC/B;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,MAAM,CAAC,CAAC,GAAG,EAAE,oBAAoB,GAAG,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACjE,oFAAoF;IACpF,SAAS,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,gBAAgB,GAAG,SAAS,CAAC;IACjE,mFAAmF;IACnF,YAAY,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,CAAC;CAClD;AAED,iFAAiF;AACjF,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,SAAS,OAAO,EAAE,GAAG,SAAS,GACvC,OAAO,CAIT;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,SAAS,OAAO,EAAE,GAC3B,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CASrC;AAED,mFAAmF;AACnF,MAAM,WAAW,uBAAuB;IACtC,mEAAmE;IACnE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,0EAA0E;IAC1E,QAAQ,CAAC,MAAM,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClE;AAED,mEAAmE;AACnE,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,OAAO,CAM1D;AAUD;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,SAAS,uBAAuB,EAAE,GAC1C,OAAO,EAAE,CAmCX"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The managed channel protocol.
|
|
3
|
+
*
|
|
4
|
+
* A channel is one inbound messaging surface with one external platform. It may
|
|
5
|
+
* contribute Events ingress, outbound messaging, and deploy requirements.
|
|
6
|
+
* Discovery is file-based: the CLI globs modules under `channels/` that export a
|
|
7
|
+
* `channel`, imports each one, and hands them to {@link collectChannels}, which
|
|
8
|
+
* stamps each with its file-stem `name`.
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Realm-global brand marking a value as a managed channel. `Symbol.for` keeps
|
|
12
|
+
* the identity stable across duplicate module instances.
|
|
13
|
+
*/
|
|
14
|
+
export const CHANNEL_BRAND = Symbol.for("mda.channel");
|
|
15
|
+
/** True when any channel can start an ingress run via {@link Channel.events}. */
|
|
16
|
+
export function hasIngressChannels(channels) {
|
|
17
|
+
return (channels ?? []).some((channel) => typeof channel.events === "function");
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Build the requirements map (file-stem → manifest) from channels that
|
|
21
|
+
* implement {@link Channel.requirements}.
|
|
22
|
+
*/
|
|
23
|
+
export function requirementsFromChannels(channels) {
|
|
24
|
+
const out = {};
|
|
25
|
+
for (const channel of channels) {
|
|
26
|
+
if (typeof channel.requirements !== "function" || !channel.name) {
|
|
27
|
+
continue;
|
|
28
|
+
}
|
|
29
|
+
out[channel.name] = channel.requirements(channel.name);
|
|
30
|
+
}
|
|
31
|
+
return out;
|
|
32
|
+
}
|
|
33
|
+
/** Narrow an arbitrary value to a {@link Channel} by its brand. */
|
|
34
|
+
export function isChannel(value) {
|
|
35
|
+
if (typeof value !== "object" || value === null) {
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
const branded = value[CHANNEL_BRAND];
|
|
39
|
+
return branded === true;
|
|
40
|
+
}
|
|
41
|
+
function channelHasHook(channel) {
|
|
42
|
+
return (typeof channel.events === "function" ||
|
|
43
|
+
typeof channel.messaging === "function" ||
|
|
44
|
+
typeof channel.requirements === "function");
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Validate and collect the channels discovered under `channels/`.
|
|
48
|
+
*
|
|
49
|
+
* Each module should expose exactly one channel as `export const channel`.
|
|
50
|
+
* The file stem becomes the instance {@link Channel.name} (mount namespace and
|
|
51
|
+
* messaging address). Duplicate stems are a hard error. Modules with no such
|
|
52
|
+
* export, or whose `channel` is not branded, are skipped. A branded channel
|
|
53
|
+
* that implements no hooks is still a hard error.
|
|
54
|
+
*/
|
|
55
|
+
export function collectChannels(modules) {
|
|
56
|
+
const collected = [];
|
|
57
|
+
const seenObjects = new Set();
|
|
58
|
+
const seenNames = new Set();
|
|
59
|
+
for (const { source, module } of modules) {
|
|
60
|
+
const candidate = module.channel;
|
|
61
|
+
if (candidate === undefined || !isChannel(candidate)) {
|
|
62
|
+
continue;
|
|
63
|
+
}
|
|
64
|
+
if (!channelHasHook(candidate)) {
|
|
65
|
+
throw new Error(`${source} channel (kind "${candidate.kind}") implements none of ` +
|
|
66
|
+
`\`events\`, \`messaging\`, or \`requirements\` and would do nothing.`);
|
|
67
|
+
}
|
|
68
|
+
const name = channelStemName(source);
|
|
69
|
+
if (seenNames.has(name)) {
|
|
70
|
+
throw new Error(`duplicate channel name '${name}' from channels/`);
|
|
71
|
+
}
|
|
72
|
+
seenNames.add(name);
|
|
73
|
+
if (seenObjects.has(candidate)) {
|
|
74
|
+
continue;
|
|
75
|
+
}
|
|
76
|
+
seenObjects.add(candidate);
|
|
77
|
+
Object.defineProperty(candidate, "name", {
|
|
78
|
+
value: name,
|
|
79
|
+
enumerable: false,
|
|
80
|
+
writable: false,
|
|
81
|
+
configurable: true,
|
|
82
|
+
});
|
|
83
|
+
collected.push(candidate);
|
|
84
|
+
}
|
|
85
|
+
return collected;
|
|
86
|
+
}
|
|
87
|
+
function channelStemName(source) {
|
|
88
|
+
// Keep in sync with CLI `plugin_module_extensions` (ts/tsx/mts/cts) plus
|
|
89
|
+
// emitted js/mjs and Python sources that may appear in diagnostics paths.
|
|
90
|
+
const base = source
|
|
91
|
+
.replace(/^.*\//, "")
|
|
92
|
+
.replace(/\.(ts|tsx|mts|cts|js|mjs|py)$/, "");
|
|
93
|
+
if (!base || base === "channel") {
|
|
94
|
+
throw new Error(`invalid channel path "${source}": use channels/<name>.ts (not channel.ts)`);
|
|
95
|
+
}
|
|
96
|
+
return base;
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=channel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"channel.js","sourceRoot":"","sources":["../../src/runtime/channel.ts"],"names":[],"mappings":"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"}
|
|
@@ -72,8 +72,8 @@ export interface EventsContext {
|
|
|
72
72
|
/**
|
|
73
73
|
* Deploy/runtime requirements a connector declares.
|
|
74
74
|
*
|
|
75
|
-
* Generalizes the former channel manifest: required env, permissions,
|
|
76
|
-
* provider config
|
|
75
|
+
* Generalizes the former channel manifest: required env, permissions, and
|
|
76
|
+
* opaque provider config.
|
|
77
77
|
*/
|
|
78
78
|
export type ConnectorRequirements = ChannelManifest;
|
|
79
79
|
/**
|
|
@@ -144,7 +144,7 @@ export type ConnectorToolList = unknown[];
|
|
|
144
144
|
export interface Connector {
|
|
145
145
|
readonly [CONNECTOR_BRAND]: true;
|
|
146
146
|
/**
|
|
147
|
-
* Diagnostic / provider label (e.g. `"mcp_servers"`, `"
|
|
147
|
+
* Diagnostic / provider label (e.g. `"mcp_servers"`, `"github"`, `"slack"`).
|
|
148
148
|
* HTTP mounts use {@link name}, not kind.
|
|
149
149
|
*/
|
|
150
150
|
readonly kind: string;
|
|
@@ -119,7 +119,11 @@ export function collectConnectors(modules) {
|
|
|
119
119
|
return collected;
|
|
120
120
|
}
|
|
121
121
|
function connectorStemName(source) {
|
|
122
|
-
|
|
122
|
+
// Keep in sync with CLI `plugin_module_extensions` (ts/tsx/mts/cts) plus
|
|
123
|
+
// emitted js/mjs and Python sources that may appear in diagnostics paths.
|
|
124
|
+
const base = source
|
|
125
|
+
.replace(/^.*\//, "")
|
|
126
|
+
.replace(/\.(ts|tsx|mts|cts|js|mjs|py)$/, "");
|
|
123
127
|
if (!base || base === "connector") {
|
|
124
128
|
throw new Error(`invalid connector path "${source}": use connectors/<name>.ts (not connector.ts)`);
|
|
125
129
|
}
|