managed-deepagents 0.5.0-dev.89 → 0.5.0-dev.96

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.
Files changed (275) hide show
  1. package/README.md +36 -37
  2. package/dist/channels/index.d.ts +6 -5
  3. package/dist/channels/index.d.ts.map +1 -1
  4. package/dist/channels/index.js +6 -5
  5. package/dist/channels/index.js.map +1 -1
  6. package/dist/channels/manifest.d.ts +1 -1
  7. package/dist/channels/manifest.d.ts.map +1 -1
  8. package/dist/channels/messaging-registry.d.ts +8 -4
  9. package/dist/channels/messaging-registry.d.ts.map +1 -1
  10. package/dist/channels/messaging-registry.js +22 -16
  11. package/dist/channels/messaging-registry.js.map +1 -1
  12. package/dist/channels/registry-types.d.ts +1 -1
  13. package/dist/channels/registry-types.d.ts.map +1 -1
  14. package/dist/channels/registry.d.ts.map +1 -1
  15. package/dist/channels/registry.js +1 -3
  16. package/dist/channels/registry.js.map +1 -1
  17. package/dist/channels/schedule-delivery.js +1 -1
  18. package/dist/channels/schedule-delivery.js.map +1 -1
  19. package/dist/{connectors → channels}/slack/adapter-core.d.ts +1 -1
  20. package/dist/channels/slack/adapter-core.d.ts.map +1 -0
  21. package/dist/channels/slack/adapter-core.js.map +1 -0
  22. package/dist/{connectors → channels}/slack/adapter.d.ts +3 -3
  23. package/dist/channels/slack/adapter.d.ts.map +1 -0
  24. package/dist/{connectors → channels}/slack/adapter.js +0 -1
  25. package/dist/channels/slack/adapter.js.map +1 -0
  26. package/dist/{connectors → channels}/slack/http.d.ts +7 -5
  27. package/dist/channels/slack/http.d.ts.map +1 -0
  28. package/dist/{connectors → channels}/slack/http.js +46 -11
  29. package/dist/channels/slack/http.js.map +1 -0
  30. package/dist/channels/slack/index.d.ts +104 -0
  31. package/dist/channels/slack/index.d.ts.map +1 -0
  32. package/dist/channels/slack/index.js +151 -0
  33. package/dist/channels/slack/index.js.map +1 -0
  34. package/dist/{connectors → channels}/slack/normalize.d.ts +7 -4
  35. package/dist/channels/slack/normalize.d.ts.map +1 -0
  36. package/dist/{connectors → channels}/slack/normalize.js +47 -11
  37. package/dist/channels/slack/normalize.js.map +1 -0
  38. package/dist/channels/slack/source-thread.d.ts.map +1 -0
  39. package/dist/channels/slack/source-thread.js.map +1 -0
  40. package/dist/{connectors → channels}/slack/transport.d.ts +1 -1
  41. package/dist/channels/slack/transport.d.ts.map +1 -0
  42. package/dist/{connectors → channels}/slack/transport.js +1 -1
  43. package/dist/channels/slack/transport.js.map +1 -0
  44. package/dist/channels/store.d.ts +14 -0
  45. package/dist/channels/store.d.ts.map +1 -1
  46. package/dist/channels/store.js +41 -27
  47. package/dist/channels/store.js.map +1 -1
  48. package/dist/connectors/slack/index.d.ts +10 -79
  49. package/dist/connectors/slack/index.d.ts.map +1 -1
  50. package/dist/connectors/slack/index.js +24 -127
  51. package/dist/connectors/slack/index.js.map +1 -1
  52. package/dist/connectors/toolserver/catalog.d.ts +4 -10
  53. package/dist/connectors/toolserver/catalog.d.ts.map +1 -1
  54. package/dist/connectors/toolserver/catalog.js +6 -54
  55. package/dist/connectors/toolserver/catalog.js.map +1 -1
  56. package/dist/connectors/toolserver/index.d.ts +5 -7
  57. package/dist/connectors/toolserver/index.d.ts.map +1 -1
  58. package/dist/connectors/toolserver/index.js +4 -6
  59. package/dist/connectors/toolserver/index.js.map +1 -1
  60. package/dist/connectors/toolserver/integrations.d.ts +4 -4
  61. package/dist/connectors/toolserver/integrations.d.ts.map +1 -1
  62. package/dist/define-deep-agent.d.ts.map +1 -1
  63. package/dist/define-deep-agent.js +9 -3
  64. package/dist/define-deep-agent.js.map +1 -1
  65. package/dist/extension.d.ts +6 -14
  66. package/dist/extension.d.ts.map +1 -1
  67. package/dist/extension.js +5 -24
  68. package/dist/extension.js.map +1 -1
  69. package/dist/identity/connect-inference.d.ts +6 -7
  70. package/dist/identity/connect-inference.d.ts.map +1 -1
  71. package/dist/identity/connect-inference.js +7 -9
  72. package/dist/identity/connect-inference.js.map +1 -1
  73. package/dist/identity/github/connect-http.d.ts +3 -4
  74. package/dist/identity/github/connect-http.d.ts.map +1 -1
  75. package/dist/identity/github/connect-http.js +7 -10
  76. package/dist/identity/github/connect-http.js.map +1 -1
  77. package/dist/identity/github/credentials-store.d.ts.map +1 -1
  78. package/dist/identity/github/credentials-store.js +26 -10
  79. package/dist/identity/github/credentials-store.js.map +1 -1
  80. package/dist/identity/github/index.d.ts +0 -2
  81. package/dist/identity/github/index.d.ts.map +1 -1
  82. package/dist/identity/github/index.js +0 -2
  83. package/dist/identity/github/index.js.map +1 -1
  84. package/dist/identity/index.d.ts +15 -71
  85. package/dist/identity/index.d.ts.map +1 -1
  86. package/dist/identity/index.js +30 -223
  87. package/dist/identity/index.js.map +1 -1
  88. package/dist/identity/oauth-env.d.ts +4 -3
  89. package/dist/identity/oauth-env.d.ts.map +1 -1
  90. package/dist/identity/oauth-env.js +4 -3
  91. package/dist/identity/oauth-env.js.map +1 -1
  92. package/dist/identity/options.d.ts +12 -72
  93. package/dist/identity/options.d.ts.map +1 -1
  94. package/dist/identity/options.js +38 -112
  95. package/dist/identity/options.js.map +1 -1
  96. package/dist/identity/slack/connect-http.d.ts +3 -1
  97. package/dist/identity/slack/connect-http.d.ts.map +1 -1
  98. package/dist/identity/slack/connect-http.js +3 -1
  99. package/dist/identity/slack/connect-http.js.map +1 -1
  100. package/dist/identity/slack/links.d.ts +3 -2
  101. package/dist/identity/slack/links.d.ts.map +1 -1
  102. package/dist/identity/slack/links.js +29 -12
  103. package/dist/identity/slack/links.js.map +1 -1
  104. package/dist/identity/types.d.ts +12 -43
  105. package/dist/identity/types.d.ts.map +1 -1
  106. package/dist/index.d.ts +8 -12
  107. package/dist/index.d.ts.map +1 -1
  108. package/dist/index.js +3 -2
  109. package/dist/index.js.map +1 -1
  110. package/dist/ingress/index.d.ts.map +1 -1
  111. package/dist/ingress/index.js +26 -10
  112. package/dist/ingress/index.js.map +1 -1
  113. package/dist/memory/define-memory.d.ts +39 -0
  114. package/dist/memory/define-memory.d.ts.map +1 -0
  115. package/dist/memory/define-memory.js +78 -0
  116. package/dist/memory/define-memory.js.map +1 -0
  117. package/dist/memory/index.d.ts +9 -0
  118. package/dist/memory/index.d.ts.map +1 -0
  119. package/dist/memory/index.js +8 -0
  120. package/dist/memory/index.js.map +1 -0
  121. package/dist/memory/instructions-middleware.d.ts +74 -0
  122. package/dist/memory/instructions-middleware.d.ts.map +1 -0
  123. package/dist/memory/instructions-middleware.js +115 -0
  124. package/dist/memory/instructions-middleware.js.map +1 -0
  125. package/dist/memory/slices.d.ts +21 -0
  126. package/dist/memory/slices.d.ts.map +1 -0
  127. package/dist/memory/slices.js +61 -0
  128. package/dist/memory/slices.js.map +1 -0
  129. package/dist/memory/types.d.ts +71 -0
  130. package/dist/memory/types.d.ts.map +1 -0
  131. package/dist/memory/types.js +10 -0
  132. package/dist/memory/types.js.map +1 -0
  133. package/dist/namespaces.d.ts +46 -90
  134. package/dist/namespaces.d.ts.map +1 -1
  135. package/dist/namespaces.js +13 -39
  136. package/dist/namespaces.js.map +1 -1
  137. package/dist/runtime/auth.d.ts +31 -19
  138. package/dist/runtime/auth.d.ts.map +1 -1
  139. package/dist/runtime/auth.js +192 -68
  140. package/dist/runtime/auth.js.map +1 -1
  141. package/dist/runtime/backend.d.ts.map +1 -1
  142. package/dist/runtime/backend.js +26 -18
  143. package/dist/runtime/backend.js.map +1 -1
  144. package/dist/runtime/channel.d.ts +91 -0
  145. package/dist/runtime/channel.d.ts.map +1 -0
  146. package/dist/runtime/channel.js +98 -0
  147. package/dist/runtime/channel.js.map +1 -0
  148. package/dist/runtime/connector.d.ts +1 -1
  149. package/dist/runtime/connector.js +5 -1
  150. package/dist/runtime/connector.js.map +1 -1
  151. package/dist/runtime/cors.d.ts +1 -1
  152. package/dist/runtime/cors.d.ts.map +1 -1
  153. package/dist/runtime/cors.js +5 -1
  154. package/dist/runtime/cors.js.map +1 -1
  155. package/dist/runtime/http.d.ts +1 -2
  156. package/dist/runtime/http.d.ts.map +1 -1
  157. package/dist/runtime/http.js +1 -2
  158. package/dist/runtime/http.js.map +1 -1
  159. package/dist/runtime/identity-http.d.ts +9 -6
  160. package/dist/runtime/identity-http.d.ts.map +1 -1
  161. package/dist/runtime/identity-http.js +67 -42
  162. package/dist/runtime/identity-http.js.map +1 -1
  163. package/dist/runtime/identity-runtime.d.ts +0 -18
  164. package/dist/runtime/identity-runtime.d.ts.map +1 -1
  165. package/dist/runtime/identity-runtime.js +0 -27
  166. package/dist/runtime/identity-runtime.js.map +1 -1
  167. package/dist/runtime/index.d.ts +4 -3
  168. package/dist/runtime/index.d.ts.map +1 -1
  169. package/dist/runtime/index.js +33 -31
  170. package/dist/runtime/index.js.map +1 -1
  171. package/dist/runtime/memory/index.d.ts +0 -3
  172. package/dist/runtime/memory/index.d.ts.map +1 -1
  173. package/dist/runtime/memory/index.js +0 -3
  174. package/dist/runtime/memory/index.js.map +1 -1
  175. package/dist/runtime/memory/mounts.d.ts +2 -10
  176. package/dist/runtime/memory/mounts.d.ts.map +1 -1
  177. package/dist/runtime/memory/mounts.js +3 -11
  178. package/dist/runtime/memory/mounts.js.map +1 -1
  179. package/dist/runtime/sandbox-manager.d.ts +5 -0
  180. package/dist/runtime/sandbox-manager.d.ts.map +1 -1
  181. package/dist/runtime/sandbox-manager.js +21 -15
  182. package/dist/runtime/sandbox-manager.js.map +1 -1
  183. package/dist/runtime/sandbox-stream-retry.d.ts +15 -7
  184. package/dist/runtime/sandbox-stream-retry.d.ts.map +1 -1
  185. package/dist/runtime/sandbox-stream-retry.js +24 -12
  186. package/dist/runtime/sandbox-stream-retry.js.map +1 -1
  187. package/dist/runtime/types.d.ts +16 -0
  188. package/dist/runtime/types.d.ts.map +1 -1
  189. package/dist/runtime/validated-token.d.ts +7 -12
  190. package/dist/runtime/validated-token.d.ts.map +1 -1
  191. package/dist/runtime/validated-token.js +10 -66
  192. package/dist/runtime/validated-token.js.map +1 -1
  193. package/dist/sandbox.d.ts +16 -38
  194. package/dist/sandbox.d.ts.map +1 -1
  195. package/dist/sandbox.js +9 -16
  196. package/dist/sandbox.js.map +1 -1
  197. package/dist/types.d.ts +4 -3
  198. package/dist/types.d.ts.map +1 -1
  199. package/dist/types.js.map +1 -1
  200. package/package.json +8 -8
  201. package/dist/connectors/github/adapter-core.d.ts +0 -15
  202. package/dist/connectors/github/adapter-core.d.ts.map +0 -1
  203. package/dist/connectors/github/adapter-core.js +0 -52
  204. package/dist/connectors/github/adapter-core.js.map +0 -1
  205. package/dist/connectors/github/define.d.ts +0 -168
  206. package/dist/connectors/github/define.d.ts.map +0 -1
  207. package/dist/connectors/github/define.js +0 -72
  208. package/dist/connectors/github/define.js.map +0 -1
  209. package/dist/connectors/github/http.d.ts +0 -25
  210. package/dist/connectors/github/http.d.ts.map +0 -1
  211. package/dist/connectors/github/http.js +0 -146
  212. package/dist/connectors/github/http.js.map +0 -1
  213. package/dist/connectors/github/index.d.ts +0 -121
  214. package/dist/connectors/github/index.d.ts.map +0 -1
  215. package/dist/connectors/github/index.js +0 -192
  216. package/dist/connectors/github/index.js.map +0 -1
  217. package/dist/connectors/github/match.d.ts +0 -20
  218. package/dist/connectors/github/match.d.ts.map +0 -1
  219. package/dist/connectors/github/match.js +0 -41
  220. package/dist/connectors/github/match.js.map +0 -1
  221. package/dist/connectors/github/normalize.d.ts +0 -32
  222. package/dist/connectors/github/normalize.d.ts.map +0 -1
  223. package/dist/connectors/github/normalize.js +0 -152
  224. package/dist/connectors/github/normalize.js.map +0 -1
  225. package/dist/connectors/github/sandbox.d.ts +0 -54
  226. package/dist/connectors/github/sandbox.d.ts.map +0 -1
  227. package/dist/connectors/github/sandbox.js +0 -532
  228. package/dist/connectors/github/sandbox.js.map +0 -1
  229. package/dist/connectors/github/source-thread.d.ts +0 -24
  230. package/dist/connectors/github/source-thread.d.ts.map +0 -1
  231. package/dist/connectors/github/source-thread.js +0 -54
  232. package/dist/connectors/github/source-thread.js.map +0 -1
  233. package/dist/connectors/github/transport.d.ts +0 -25
  234. package/dist/connectors/github/transport.d.ts.map +0 -1
  235. package/dist/connectors/github/transport.js +0 -106
  236. package/dist/connectors/github/transport.js.map +0 -1
  237. package/dist/connectors/langsmith/index.d.ts +0 -397
  238. package/dist/connectors/langsmith/index.d.ts.map +0 -1
  239. package/dist/connectors/langsmith/index.js +0 -436
  240. package/dist/connectors/langsmith/index.js.map +0 -1
  241. package/dist/connectors/langsmith/routes.d.ts +0 -236
  242. package/dist/connectors/langsmith/routes.d.ts.map +0 -1
  243. package/dist/connectors/langsmith/routes.js +0 -1154
  244. package/dist/connectors/langsmith/routes.js.map +0 -1
  245. package/dist/connectors/slack/adapter-core.d.ts.map +0 -1
  246. package/dist/connectors/slack/adapter-core.js.map +0 -1
  247. package/dist/connectors/slack/adapter.d.ts.map +0 -1
  248. package/dist/connectors/slack/adapter.js.map +0 -1
  249. package/dist/connectors/slack/http.d.ts.map +0 -1
  250. package/dist/connectors/slack/http.js.map +0 -1
  251. package/dist/connectors/slack/normalize.d.ts.map +0 -1
  252. package/dist/connectors/slack/normalize.js.map +0 -1
  253. package/dist/connectors/slack/source-thread.d.ts.map +0 -1
  254. package/dist/connectors/slack/source-thread.js.map +0 -1
  255. package/dist/connectors/slack/transport.d.ts.map +0 -1
  256. package/dist/connectors/slack/transport.js.map +0 -1
  257. package/dist/identity/memory-slices.d.ts +0 -21
  258. package/dist/identity/memory-slices.d.ts.map +0 -1
  259. package/dist/identity/memory-slices.js +0 -105
  260. package/dist/identity/memory-slices.js.map +0 -1
  261. package/dist/runtime/memory/lazy-context-backend.d.ts +0 -74
  262. package/dist/runtime/memory/lazy-context-backend.d.ts.map +0 -1
  263. package/dist/runtime/memory/lazy-context-backend.js +0 -166
  264. package/dist/runtime/memory/lazy-context-backend.js.map +0 -1
  265. package/dist/runtime/memory/seed.d.ts +0 -30
  266. package/dist/runtime/memory/seed.d.ts.map +0 -1
  267. package/dist/runtime/memory/seed.js +0 -199
  268. package/dist/runtime/memory/seed.js.map +0 -1
  269. package/dist/runtime/memory/user-repo.d.ts +0 -18
  270. package/dist/runtime/memory/user-repo.d.ts.map +0 -1
  271. package/dist/runtime/memory/user-repo.js +0 -50
  272. package/dist/runtime/memory/user-repo.js.map +0 -1
  273. /package/dist/{connectors → channels}/slack/adapter-core.js +0 -0
  274. /package/dist/{connectors → channels}/slack/source-thread.d.ts +0 -0
  275. /package/dist/{connectors → channels}/slack/source-thread.js +0 -0
package/README.md CHANGED
@@ -55,14 +55,20 @@ npm install
55
55
  ```
56
56
 
57
57
  `mda init` can shape the project up front — `--instructions "..."` (or
58
- `--instructions-file <path>`) writes the system prompt, `--scope <boundary>`
59
- declares who may call the deployment and how runs are isolated, `--model <spec>` picks the model, and
60
- `--no-sandbox` / `--no-evals` leave parts out. Nothing prompts, so this is also
61
- the command to hand a coding agent or a CI script rather than having it write a
62
- project layout from memory.
63
-
64
- `mda init my-agent --interactive` hands the build to the Deep Agent builder
65
- instead, which interviews you in your terminal.
58
+ `--instructions-file <path>`) writes the system prompt, `--model <spec>` picks
59
+ the model, `--memory agent` opts into deployment-shared durable memory, and
60
+ `--no-sandbox` leaves out the sandbox. Every new project includes an
61
+ `identity.ts` that explicitly selects `auth.langsmithApiKey()` authentication.
62
+ Managed Deep Agent evals are Harbor tasks under `evals/tasks/`. Optionally create
63
+ a minimal source task under `evals/scaffold/` with `mda evals init <name>`, then
64
+ package the managed agent and scaffolded tasks with `mda evals compile .`.
65
+ Nothing prompts, so these commands also work in coding agents and CI scripts.
66
+
67
+ `mda init my-agent --gateway` runs the agent on
68
+ [LangSmith Gateway](https://docs.langchain.com/langsmith/gateway) — a model
69
+ LangSmith hosts, billed to your workspace's Gateway Credits, authenticated with
70
+ a LangSmith API key instead of a model provider key of your own. It is mutually
71
+ exclusive with `--model`, which names a provider you hold the key for.
66
72
 
67
73
  ## Define an Agent
68
74
 
@@ -82,13 +88,32 @@ export const agent = defineDeepAgent({
82
88
 
83
89
  `defineDeepAgent` requires a static `name` (LangGraph assistant id and default LangSmith deployment name) and otherwise accepts the [`createDeepAgent`](https://reference.langchain.com/javascript/deepagents/agent/createDeepAgent) configuration surface minus the managed keys: `backend`, `store`, `checkpointer`, `memory`, `skills`, and `systemPrompt`. Those are provided by the managed runtime when your agent is deployed. Write the system prompt in `instructions.md` next to `agent.ts`; the CLI embeds it at deploy time.
84
90
 
85
- On deploy, Context Hub stores harness files (`instructions.md`, `skills/**`) plus a shared agent memory template (`memories/agent/`) in the deployment Hub repo. Identity `scope.memory` enables slices independently: **agent** memory (deployment-shared at `/memories/agent/`) and/or **user** memory (dedicated Hub repo per caller, mounted at `/memories/user/`). Hot files (`/memories/agent/AGENTS.md` and/or `/memories/user/AGENTS.md`) are injected every turn for enabled slices. Deploy never overwrites existing memories.
91
+ To authenticate SDK and API requests with a LangSmith workspace key while
92
+ retaining MDA's thread and store authorization, declare it explicitly:
93
+
94
+ ```ts
95
+ export const identity = defineIdentity({
96
+ auth: auth.langsmithApiKey(),
97
+ });
98
+ ```
99
+
100
+ Clients send the key as `x-api-key`. LangSmith Cloud supplies the verification
101
+ endpoint and tenant configuration; do not add those platform-owned values to
102
+ the project `.env`.
103
+
104
+ On deploy, Context Hub stores harness files (`instructions.md`, `skills/**`). A
105
+ root `memory.ts` declaring `defineMemory({ scope: "agent" })` additionally mounts
106
+ one deployment-shared memory tree at `/memories/agent/`.
107
+ `/memories/agent/AGENTS.md` is injected every turn; other files are read on
108
+ demand. Deploy never overwrites existing memories. Memory is independent of
109
+ identity, and a project without `memory.ts` mounts no durable memory.
86
110
 
87
111
  ## Project Shape
88
112
 
89
113
  ```text
90
114
  my-agent/
91
115
  agent.ts # named `agent` export
116
+ identity.ts # managed authentication (included by `mda init`)
92
117
  instructions.md # managed system prompt
93
118
  package.json
94
119
  .env # local deploy secrets, never committed
@@ -97,7 +122,6 @@ my-agent/
97
122
  middleware/ # optional middleware
98
123
  skills/ # optional skills synced to Context Hub
99
124
  sandbox/ # LangSmith sandbox (`mda init` includes this; delete to opt out)
100
- connectors/mcp.ts # optional MCP server declaration
101
125
  ```
102
126
 
103
127
  The CLI copies your project files into the managed build and generates the entry
@@ -132,9 +156,9 @@ enables the sandbox when that declaration is present — delete `sandbox/` to op
132
156
  out:
133
157
 
134
158
  ```ts
135
- import { sandboxes } from "managed-deepagents";
159
+ import { defineSandbox } from "managed-deepagents";
136
160
 
137
- export const sandbox = sandboxes.langsmith({
161
+ export const sandbox = defineSandbox({
138
162
  scope: "thread",
139
163
  idleTtlSeconds: 600,
140
164
  });
@@ -144,31 +168,6 @@ If `sandbox/setup.sh` exists, MDA embeds it and runs it once when the sandbox is
144
168
  first provisioned. MDA owns sandbox naming, image/snapshot selection, reuse, and
145
169
  lifecycle.
146
170
 
147
- ## MCP Connectors
148
-
149
- Add `connectors/mcp.ts` to attach MCP servers. The file must export a named
150
- `connector`. By default, MDA exposes every tool loaded from each declared
151
- server:
152
-
153
- ```ts
154
- import { connectors } from "managed-deepagents";
155
-
156
- export const connector = connectors.mcp({
157
- mcpServers: {
158
- langchainDocs: {
159
- transport: "http",
160
- url: "https://docs.langchain.com/mcp",
161
- includeTools: ["search", "fetch"],
162
- },
163
- },
164
- });
165
- ```
166
-
167
- Use `includeTools` or `excludeTools` inside a server config to select a subset.
168
- Tool names are raw MCP tool names before the managed `{server}__` prefix is
169
- applied, so `includeTools: ["search"]` on server `langchainDocs` exposes
170
- `langchainDocs__search` when prefixing is enabled.
171
-
172
171
  ## CLI
173
172
 
174
173
  Create a new project:
@@ -1,9 +1,10 @@
1
1
  /**
2
- * Channel capability contracts — the named messaging surface a connector may
3
- * contribute (`runtime.channel`, schedule `deliverTo`).
2
+ * Channel capability contracts — the named messaging surface a channel (or
3
+ * connector) may contribute (`runtime.channel`, schedule `deliverTo`).
4
4
  *
5
- * Authoring lives on `connectors.*`. Provider verify/normalize/transport code
6
- * stays under `channels/{slack,github}/` as internal implementation details.
5
+ * Authoring for Slack Events lives on `channels.slack` under project
6
+ * `channels/`. Provider verify/normalize/transport code lives under
7
+ * `channels/slack/` as implementation details.
7
8
  */
8
9
  export type { ChannelAddress, ChannelAttachmentRef, ChannelCapabilities, ChannelDestination, ChannelErrorCode, ChannelEvent, ChannelInboundMessage, ChannelMessage, ChannelMessageUpdate, ChannelNativePayload, JsonValue, PostedChannelMessage, RuntimeChannel, } from "./types.js";
9
10
  export { normalizeChannelDestination } from "./types.js";
@@ -20,5 +21,5 @@ export type { DeliveryRecord, DeliveryStatus } from "./store.js";
20
21
  export { extractAssistantText } from "./assistant-text.js";
21
22
  export { addressFromDeliverTo, createScheduleDeliveryMiddleware, deliverScheduleResult, isTrustedScheduleDeliveryRun, readScheduleDeliverTo, } from "./schedule-delivery.js";
22
23
  export type { DeliverScheduleResultInput, NormalizedScheduleDeliverTo, } from "./schedule-delivery.js";
23
- export { clearMessagingRegistry, messagingTransportForName, registerConnectorMessaging, trustedMessagingProviders, } from "./messaging-registry.js";
24
+ export { clearMessagingRegistry, messagingTransportForName, registerChannelMessaging, registerConnectorMessaging, trustedMessagingProviders, } from "./messaging-registry.js";
24
25
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/channels/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,YAAY,EACV,cAAc,EACd,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,YAAY,EACZ,qBAAqB,EACrB,cAAc,EACd,oBAAoB,EACpB,oBAAoB,EACpB,SAAS,EACT,oBAAoB,EACpB,cAAc,GACf,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AAEzD,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhE,YAAY,EACV,eAAe,EACf,mBAAmB,EACnB,UAAU,GACX,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,6BAA6B,GAC9B,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAEhF,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,YAAY,EACV,gBAAgB,EAChB,2BAA2B,GAC5B,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EACf,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EACL,oBAAoB,EACpB,gCAAgC,EAChC,qBAAqB,EACrB,4BAA4B,EAC5B,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACV,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,0BAA0B,EAC1B,yBAAyB,GAC1B,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/channels/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,YAAY,EACV,cAAc,EACd,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,YAAY,EACZ,qBAAqB,EACrB,cAAc,EACd,oBAAoB,EACpB,oBAAoB,EACpB,SAAS,EACT,oBAAoB,EACpB,cAAc,GACf,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AAEzD,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhE,YAAY,EACV,eAAe,EACf,mBAAmB,EACnB,UAAU,GACX,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,6BAA6B,GAC9B,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAEhF,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,YAAY,EACV,gBAAgB,EAChB,2BAA2B,GAC5B,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EACf,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EACL,oBAAoB,EACpB,gCAAgC,EAChC,qBAAqB,EACrB,4BAA4B,EAC5B,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACV,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,wBAAwB,EACxB,0BAA0B,EAC1B,yBAAyB,GAC1B,MAAM,yBAAyB,CAAC"}
@@ -1,9 +1,10 @@
1
1
  /**
2
- * Channel capability contracts — the named messaging surface a connector may
3
- * contribute (`runtime.channel`, schedule `deliverTo`).
2
+ * Channel capability contracts — the named messaging surface a channel (or
3
+ * connector) may contribute (`runtime.channel`, schedule `deliverTo`).
4
4
  *
5
- * Authoring lives on `connectors.*`. Provider verify/normalize/transport code
6
- * stays under `channels/{slack,github}/` as internal implementation details.
5
+ * Authoring for Slack Events lives on `channels.slack` under project
6
+ * `channels/`. Provider verify/normalize/transport code lives under
7
+ * `channels/slack/` as implementation details.
7
8
  */
8
9
  export { normalizeChannelDestination } from "./types.js";
9
10
  export { CHANNEL_ERROR_CODES, ChannelError } from "./errors.js";
@@ -13,5 +14,5 @@ export { CHANNEL_BINDING_KEY, SLACK_BOT_TOKEN_ENV, clearFinalPosted, markFinalPo
13
14
  export { InMemoryChannelStore } from "./store.js";
14
15
  export { extractAssistantText } from "./assistant-text.js";
15
16
  export { addressFromDeliverTo, createScheduleDeliveryMiddleware, deliverScheduleResult, isTrustedScheduleDeliveryRun, readScheduleDeliverTo, } from "./schedule-delivery.js";
16
- export { clearMessagingRegistry, messagingTransportForName, registerConnectorMessaging, trustedMessagingProviders, } from "./messaging-registry.js";
17
+ export { clearMessagingRegistry, messagingTransportForName, registerChannelMessaging, registerConnectorMessaging, trustedMessagingProviders, } from "./messaging-registry.js";
17
18
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/channels/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAiBH,OAAO,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AAEzD,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAQhE,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,6BAA6B,GAC9B,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAMpD,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EACf,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAGlD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EACL,oBAAoB,EACpB,gCAAgC,EAChC,qBAAqB,EACrB,4BAA4B,EAC5B,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAMhC,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,0BAA0B,EAC1B,yBAAyB,GAC1B,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/channels/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAiBH,OAAO,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AAEzD,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAQhE,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,6BAA6B,GAC9B,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAMpD,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EACf,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAGlD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EACL,oBAAoB,EACpB,gCAAgC,EAChC,qBAAqB,EACrB,4BAA4B,EAC5B,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAMhC,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,wBAAwB,EACxB,0BAA0B,EAC1B,yBAAyB,GAC1B,MAAM,yBAAyB,CAAC"}
@@ -29,7 +29,7 @@ export interface ChannelManifest {
29
29
  requiredPermissions: readonly string[];
30
30
  /** Env vars deploy must ensure when this channel is present. */
31
31
  requiredEnv: readonly string[];
32
- /** Opaque-to-core provider config (Slack triggers/filters, GitHub filters, …). */
32
+ /** Opaque-to-core provider config (Slack filters/conversation, …). */
33
33
  providerConfig: JsonObject;
34
34
  }
35
35
  /** Author-supplied requirements fields; `name` / `provider` are stamped by the factory. */
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/channels/manifest.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,2EAA2E;AAC3E,MAAM,MAAM,UAAU,GAAG;IAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AAE/D;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,uFAAuF;IACvF,IAAI,EAAE,MAAM,CAAC;IACb,gDAAgD;IAChD,QAAQ,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,SAAS,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,gEAAgE;IAChE,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,kFAAkF;IAClF,cAAc,EAAE,UAAU,CAAC;CAC5B;AAED,2FAA2F;AAC3F,MAAM,MAAM,mBAAmB,GAAG,IAAI,CAAC,eAAe,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC"}
1
+ {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/channels/manifest.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,2EAA2E;AAC3E,MAAM,MAAM,UAAU,GAAG;IAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AAE/D;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,uFAAuF;IACvF,IAAI,EAAE,MAAM,CAAC;IACb,gDAAgD;IAChD,QAAQ,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,SAAS,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,gEAAgE;IAChE,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,sEAAsE;IACtE,cAAc,EAAE,UAAU,CAAC;CAC5B;AAED,2FAA2F;AAC3F,MAAM,MAAM,mBAAmB,GAAG,IAAI,CAAC,eAAe,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC"}
@@ -1,16 +1,20 @@
1
1
  /**
2
2
  * Name → messaging transport registry.
3
3
  *
4
- * Filled when connectors are mounted / collected. `resolveRuntimeChannel` and
5
- * schedule delivery look up transports by connector file-stem name.
4
+ * Filled when channels (and connectors that still contribute messaging, e.g.
5
+ * GitHub) are mounted / collected. `resolveRuntimeChannel` and schedule
6
+ * delivery look up transports by file-stem name.
6
7
  */
7
8
  import type { ChannelTransport } from "./runtime.js";
9
+ import type { Channel } from "../runtime/channel.js";
8
10
  import type { Connector } from "../runtime/connector.js";
9
- /** Register messaging factories from collected connectors. */
11
+ /** Register messaging factories from collected channels. */
12
+ export declare function registerChannelMessaging(channels: readonly Channel[]): void;
13
+ /** Register messaging factories from collected connectors (e.g. GitHub). */
10
14
  export declare function registerConnectorMessaging(connectors: readonly Connector[]): void;
11
15
  /** Clear the registry (tests). */
12
16
  export declare function clearMessagingRegistry(): void;
13
- /** Build a transport for a connector name. */
17
+ /** Build a transport for a channel/connector file-stem name. */
14
18
  export declare function messagingTransportForName(name: string, env?: NodeJS.ProcessEnv): ChannelTransport | undefined;
15
19
  /** Providers allowed as trusted source-provider stamps. */
16
20
  export declare function trustedMessagingProviders(): ReadonlySet<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"messaging-registry.d.ts","sourceRoot":"","sources":["../../src/channels/messaging-registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AASzD,8DAA8D;AAC9D,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,SAAS,SAAS,EAAE,GAC/B,IAAI,CAmBN;AAED,kCAAkC;AAClC,wBAAgB,sBAAsB,IAAI,IAAI,CAK7C;AAED,8CAA8C;AAC9C,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,EACZ,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,gBAAgB,GAAG,SAAS,CAE9B;AAED,2DAA2D;AAC3D,wBAAgB,yBAAyB,IAAI,WAAW,CAAC,MAAM,CAAC,CAE/D"}
1
+ {"version":3,"file":"messaging-registry.d.ts","sourceRoot":"","sources":["../../src/channels/messaging-registry.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAoCzD,4DAA4D;AAC5D,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI,CAE3E;AAED,4EAA4E;AAC5E,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,SAAS,SAAS,EAAE,GAC/B,IAAI,CAEN;AAED,kCAAkC;AAClC,wBAAgB,sBAAsB,IAAI,IAAI,CAI7C;AAED,gEAAgE;AAChE,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,EACZ,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,gBAAgB,GAAG,SAAS,CAE9B;AAED,2DAA2D;AAC3D,wBAAgB,yBAAyB,IAAI,WAAW,CAAC,MAAM,CAAC,CAE/D"}
@@ -1,39 +1,45 @@
1
1
  /**
2
2
  * Name → messaging transport registry.
3
3
  *
4
- * Filled when connectors are mounted / collected. `resolveRuntimeChannel` and
5
- * schedule delivery look up transports by connector file-stem name.
4
+ * Filled when channels (and connectors that still contribute messaging, e.g.
5
+ * GitHub) are mounted / collected. `resolveRuntimeChannel` and schedule
6
+ * delivery look up transports by file-stem name.
6
7
  */
7
8
  const byName = new Map();
8
- const trustedProviders = new Set(["slack", "github"]);
9
- /** Register messaging factories from collected connectors. */
10
- export function registerConnectorMessaging(connectors) {
11
- for (const connector of connectors) {
12
- if (!connector.name || typeof connector.messaging !== "function") {
9
+ const trustedProviders = new Set(["slack"]);
10
+ function registerMessagingSources(sources) {
11
+ for (const source of sources) {
12
+ if (!source.name || typeof source.messaging !== "function") {
13
13
  continue;
14
14
  }
15
- const messaging = connector.messaging.bind(connector);
16
- byName.set(connector.name, messaging);
17
- if (typeof connector.kind === "string" && connector.kind.trim()) {
18
- trustedProviders.add(connector.kind);
15
+ const messaging = source.messaging.bind(source);
16
+ byName.set(source.name, messaging);
17
+ if (typeof source.kind === "string" && source.kind.trim()) {
18
+ trustedProviders.add(source.kind);
19
19
  }
20
- // Also register by kind for binding.provider lookups during transport build.
21
- const requirements = typeof connector.requirements === "function"
22
- ? connector.requirements(connector.name)
20
+ const requirements = typeof source.requirements === "function"
21
+ ? source.requirements(source.name)
23
22
  : undefined;
24
23
  if (requirements?.provider) {
25
24
  trustedProviders.add(requirements.provider);
26
25
  }
27
26
  }
28
27
  }
28
+ /** Register messaging factories from collected channels. */
29
+ export function registerChannelMessaging(channels) {
30
+ registerMessagingSources(channels);
31
+ }
32
+ /** Register messaging factories from collected connectors (e.g. GitHub). */
33
+ export function registerConnectorMessaging(connectors) {
34
+ registerMessagingSources(connectors);
35
+ }
29
36
  /** Clear the registry (tests). */
30
37
  export function clearMessagingRegistry() {
31
38
  byName.clear();
32
39
  trustedProviders.clear();
33
40
  trustedProviders.add("slack");
34
- trustedProviders.add("github");
35
41
  }
36
- /** Build a transport for a connector name. */
42
+ /** Build a transport for a channel/connector file-stem name. */
37
43
  export function messagingTransportForName(name, env = process.env) {
38
44
  return byName.get(name)?.(env);
39
45
  }
@@ -1 +1 @@
1
- {"version":3,"file":"messaging-registry.js","sourceRoot":"","sources":["../../src/channels/messaging-registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,MAAM,MAAM,GAAG,IAAI,GAAG,EAA4B,CAAC;AACnD,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;AAE9D,8DAA8D;AAC9D,MAAM,UAAU,0BAA0B,CACxC,UAAgC;IAEhC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,OAAO,SAAS,CAAC,SAAS,KAAK,UAAU,EAAE,CAAC;YACjE,SAAS;QACX,CAAC;QACD,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtD,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACtC,IAAI,OAAO,SAAS,CAAC,IAAI,KAAK,QAAQ,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YAChE,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACvC,CAAC;QACD,6EAA6E;QAC7E,MAAM,YAAY,GAChB,OAAO,SAAS,CAAC,YAAY,KAAK,UAAU;YAC1C,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC;YACxC,CAAC,CAAC,SAAS,CAAC;QAChB,IAAI,YAAY,EAAE,QAAQ,EAAE,CAAC;YAC3B,gBAAgB,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;AACH,CAAC;AAED,kCAAkC;AAClC,MAAM,UAAU,sBAAsB;IACpC,MAAM,CAAC,KAAK,EAAE,CAAC;IACf,gBAAgB,CAAC,KAAK,EAAE,CAAC;IACzB,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC9B,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACjC,CAAC;AAED,8CAA8C;AAC9C,MAAM,UAAU,yBAAyB,CACvC,IAAY,EACZ,GAAG,GAAsB,OAAO,CAAC,GAAG;IAEpC,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AACjC,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,yBAAyB;IACvC,OAAO,gBAAgB,CAAC;AAC1B,CAAC"}
1
+ {"version":3,"file":"messaging-registry.js","sourceRoot":"","sources":["../../src/channels/messaging-registry.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAiBH,MAAM,MAAM,GAAG,IAAI,GAAG,EAA4B,CAAC;AACnD,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAS,CAAC,OAAO,CAAC,CAAC,CAAC;AAEpD,SAAS,wBAAwB,CAAC,OAAmC;IACnE,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,UAAU,EAAE,CAAC;YAC3D,SAAS;QACX,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChD,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACnC,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YAC1D,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;QACD,MAAM,YAAY,GAChB,OAAO,MAAM,CAAC,YAAY,KAAK,UAAU;YACvC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC;YAClC,CAAC,CAAC,SAAS,CAAC;QAChB,IAAI,YAAY,EAAE,QAAQ,EAAE,CAAC;YAC3B,gBAAgB,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;AACH,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,wBAAwB,CAAC,QAA4B;IACnE,wBAAwB,CAAC,QAAQ,CAAC,CAAC;AACrC,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,0BAA0B,CACxC,UAAgC;IAEhC,wBAAwB,CAAC,UAAU,CAAC,CAAC;AACvC,CAAC;AAED,kCAAkC;AAClC,MAAM,UAAU,sBAAsB;IACpC,MAAM,CAAC,KAAK,EAAE,CAAC;IACf,gBAAgB,CAAC,KAAK,EAAE,CAAC;IACzB,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAChC,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,yBAAyB,CACvC,IAAY,EACZ,GAAG,GAAsB,OAAO,CAAC,GAAG;IAEpC,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AACjC,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,yBAAyB;IACvC,OAAO,gBAAgB,CAAC;AAC1B,CAAC"}
@@ -24,7 +24,7 @@ export interface ChannelHttpContext {
24
24
  export interface ChannelProviderAdapter {
25
25
  /** Provider key; must match {@link ChannelManifest.provider}. */
26
26
  readonly provider: string;
27
- /** Handle `POST /connectors/{name}/events` (verify + normalize + ACK + work). */
27
+ /** Handle `POST /channels/{name}/events` (verify + normalize + ACK + work). */
28
28
  handleEventsRequest(request: Request, ctx: ChannelHttpContext): Promise<Response>;
29
29
  /** Build outbound transport for `resolveRuntimeChannel`. */
30
30
  createTransport(env: NodeJS.ProcessEnv): ChannelTransport | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"registry-types.d.ts","sourceRoot":"","sources":["../../src/channels/registry-types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD,0DAA0D;AAC1D,MAAM,WAAW,kBAAkB;IACjC,iDAAiD;IACjD,IAAI,EAAE,MAAM,CAAC;IACb,iCAAiC;IACjC,QAAQ,EAAE,eAAe,CAAC;IAC1B;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;CAC/B;AAED,qDAAqD;AACrD,MAAM,WAAW,sBAAsB;IACrC,iEAAiE;IACjE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,iFAAiF;IACjF,mBAAmB,CACjB,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,kBAAkB,GACtB,OAAO,CAAC,QAAQ,CAAC,CAAC;IACrB,4DAA4D;IAC5D,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,gBAAgB,GAAG,SAAS,CAAC;CACvE"}
1
+ {"version":3,"file":"registry-types.d.ts","sourceRoot":"","sources":["../../src/channels/registry-types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD,0DAA0D;AAC1D,MAAM,WAAW,kBAAkB;IACjC,iDAAiD;IACjD,IAAI,EAAE,MAAM,CAAC;IACb,iCAAiC;IACjC,QAAQ,EAAE,eAAe,CAAC;IAC1B;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;CAC/B;AAED,qDAAqD;AACrD,MAAM,WAAW,sBAAsB;IACrC,iEAAiE;IACjE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,+EAA+E;IAC/E,mBAAmB,CACjB,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,kBAAkB,GACtB,OAAO,CAAC,QAAQ,CAAC,CAAC;IACrB,4DAA4D;IAC5D,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,gBAAgB,GAAG,SAAS,CAAC;CACvE"}
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/channels/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,EAEL,sBAAsB,EACtB,6BAA6B,EAC9B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EACV,kBAAkB,EAClB,sBAAsB,EACvB,MAAM,qBAAqB,CAAC;AAE7B,YAAY,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,6BAA6B,EAAE,CAAC;AAWjE,4DAA4D;AAC5D,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,GACf,sBAAsB,GAAG,SAAS,CAGpC"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/channels/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAEL,sBAAsB,EACtB,6BAA6B,EAC9B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EACV,kBAAkB,EAClB,sBAAsB,EACvB,MAAM,qBAAqB,CAAC;AAE7B,YAAY,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,6BAA6B,EAAE,CAAC;AAUjE,4DAA4D;AAC5D,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,GACf,sBAAsB,GAAG,SAAS,CAGpC"}
@@ -6,8 +6,7 @@
6
6
  * lazily on first lookup so connector modules can import adapter-core without
7
7
  * a load cycle.
8
8
  */
9
- import { githubChannelAdapter } from "../connectors/github/adapter-core.js";
10
- import { slackChannelAdapter } from "../connectors/slack/adapter-core.js";
9
+ import { slackChannelAdapter } from "./slack/adapter-core.js";
11
10
  import { getChannelAdapter as getStoredAdapter, registerChannelAdapter, trustedChannelSourceProviders, } from "./registry-store.js";
12
11
  export { registerChannelAdapter, trustedChannelSourceProviders };
13
12
  let builtinsRegistered = false;
@@ -16,7 +15,6 @@ function ensureBuiltinAdapters() {
16
15
  return;
17
16
  builtinsRegistered = true;
18
17
  registerChannelAdapter(slackChannelAdapter);
19
- registerChannelAdapter(githubChannelAdapter);
20
18
  }
21
19
  /** Look up a registered adapter, or `undefined` if none. */
22
20
  export function getChannelAdapter(provider) {
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/channels/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EACL,iBAAiB,IAAI,gBAAgB,EACrC,sBAAsB,EACtB,6BAA6B,GAC9B,MAAM,qBAAqB,CAAC;AAO7B,OAAO,EAAE,sBAAsB,EAAE,6BAA6B,EAAE,CAAC;AAEjE,IAAI,kBAAkB,GAAG,KAAK,CAAC;AAE/B,SAAS,qBAAqB;IAC5B,IAAI,kBAAkB;QAAE,OAAO;IAC/B,kBAAkB,GAAG,IAAI,CAAC;IAC1B,sBAAsB,CAAC,mBAAmB,CAAC,CAAC;IAC5C,sBAAsB,CAAC,oBAAoB,CAAC,CAAC;AAC/C,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,iBAAiB,CAC/B,QAAgB;IAEhB,qBAAqB,EAAE,CAAC;IACxB,OAAO,gBAAgB,CAAC,QAAQ,CAAC,CAAC;AACpC,CAAC"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/channels/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EACL,iBAAiB,IAAI,gBAAgB,EACrC,sBAAsB,EACtB,6BAA6B,GAC9B,MAAM,qBAAqB,CAAC;AAO7B,OAAO,EAAE,sBAAsB,EAAE,6BAA6B,EAAE,CAAC;AAEjE,IAAI,kBAAkB,GAAG,KAAK,CAAC;AAE/B,SAAS,qBAAqB;IAC5B,IAAI,kBAAkB;QAAE,OAAO;IAC/B,kBAAkB,GAAG,IAAI,CAAC;IAC1B,sBAAsB,CAAC,mBAAmB,CAAC,CAAC;AAC9C,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,iBAAiB,CAC/B,QAAgB;IAEhB,qBAAqB,EAAE,CAAC;IACxB,OAAO,gBAAgB,CAAC,QAAQ,CAAC,CAAC;AACpC,CAAC"}
@@ -13,7 +13,7 @@ import { getConfig } from "@langchain/langgraph";
13
13
  import { configurableFromRuntime, resolveAmbientConfigurable, } from "../runtime/identity-runtime.js";
14
14
  import { extractAssistantText } from "./assistant-text.js";
15
15
  import { SLACK_BOT_TOKEN_ENV } from "./binding.js";
16
- import { createSlackWebApiTransport } from "../connectors/slack/transport.js";
16
+ import { createSlackWebApiTransport } from "./slack/transport.js";
17
17
  let scheduleMetadataForTests;
18
18
  /** Override LangGraph run metadata resolution. Test-only. */
19
19
  export function setScheduleMetadataForTests(loader) {
@@ -1 +1 @@
1
- {"version":3,"file":"schedule-delivery.js","sourceRoot":"","sources":["../../src/channels/schedule-delivery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schedule-delivery.js","sourceRoot":"","sources":["../../src/channels/schedule-delivery.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Slack adapter object without imports from `define.ts` (avoids load cycles).
3
3
  */
4
- import type { ChannelProviderAdapter } from "../../channels/registry-types.js";
4
+ import type { ChannelProviderAdapter } from "../registry-types.js";
5
5
  export declare const slackChannelAdapter: ChannelProviderAdapter;
6
6
  //# sourceMappingURL=adapter-core.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter-core.d.ts","sourceRoot":"","sources":["../../../src/channels/slack/adapter-core.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAInE,eAAO,MAAM,mBAAmB,EAAE,sBAkBjC,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter-core.js","sourceRoot":"","sources":["../../../src/channels/slack/adapter-core.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAE5D,MAAM,CAAC,MAAM,mBAAmB,GAA2B;IACzD,QAAQ,EAAE,OAAO;IAEjB,KAAK,CAAC,mBAAmB,CAAC,OAAO,EAAE,GAAG;QACpC,MAAM,EAAE,uBAAuB,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;QACjE,MAAM,MAAM,GAAG,uBAAuB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACrD,OAAO,wBAAwB,CAAC,OAAO,EAAE;YACvC,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,MAAM;YACN,OAAO,EAAE,GAAG,CAAC,OAAO;SACrB,CAAC,CAAC;IACL,CAAC;IAED,eAAe,CAAC,GAAG;QACjB,MAAM,KAAK,GAAG,GAAG,CAAC,eAAe,CAAC;QAClC,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,CAAC;QAC7B,OAAO,0BAA0B,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;IACzD,CAAC;CACF,CAAC"}
@@ -1,9 +1,9 @@
1
1
  /**
2
2
  * Slack channel provider adapter — registry entry for Events + transport.
3
3
  */
4
- import type { ChannelManifest } from "../../channels/manifest.js";
5
- import type { RequiredSlackConnectorConfig } from "./index.js";
4
+ import type { ChannelManifest } from "../manifest.js";
5
+ import type { RequiredSlackChannelConfig } from "./index.js";
6
6
  export { slackChannelAdapter } from "./adapter-core.js";
7
7
  /** Rebuild Slack runtime config from a compiled envelope manifest. */
8
- export declare function slackConfigFromManifest(manifest: ChannelManifest): RequiredSlackConnectorConfig;
8
+ export declare function slackConfigFromManifest(manifest: ChannelManifest): RequiredSlackChannelConfig;
9
9
  //# sourceMappingURL=adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/channels/slack/adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAc,MAAM,gBAAgB,CAAC;AAClE,OAAO,KAAK,EACV,0BAA0B,EAG3B,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAExD,sEAAsE;AACtE,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,eAAe,GACxB,0BAA0B,CAgB5B"}
@@ -6,7 +6,6 @@ export { slackChannelAdapter } from "./adapter-core.js";
6
6
  export function slackConfigFromManifest(manifest) {
7
7
  const cfg = manifest.providerConfig;
8
8
  return {
9
- on: cfg.triggers ?? [],
10
9
  autoReply: manifest.autoReply,
11
10
  mentionBehavior: cfg.mentionBehavior ?? "strip",
12
11
  filters: cfg.filters ?? {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/channels/slack/adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAExD,sEAAsE;AACtE,MAAM,UAAU,uBAAuB,CACrC,QAAyB;IAEzB,MAAM,GAAG,GAAG,QAAQ,CAAC,cAA4B,CAAC;IAClD,OAAO;QACL,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,eAAe,EAAG,GAAG,CAAC,eAAwC,IAAI,OAAO;QACzE,OAAO,EAAG,GAAG,CAAC,OAAiD,IAAI;YACjE,wBAAwB,EAAE,KAAK;SAChC;QACD,YAAY,EAAG,GAAG,CAAC,YAGjB,IAAI;YACJ,UAAU,EAAE,QAAQ;YACpB,aAAa,EAAE,cAAc;SAC9B;KACF,CAAC;AACJ,CAAC"}
@@ -5,8 +5,8 @@
5
5
  * Slack 3s window, then invokes the graph over a trusted loopback and posts an
6
6
  * auto-reply when needed.
7
7
  */
8
- import { InMemoryChannelStore } from "../../channels/store.js";
9
- import type { RequiredSlackConnectorConfig } from "./index.js";
8
+ import { InMemoryChannelStore } from "../store.js";
9
+ import type { RequiredSlackChannelConfig } from "./index.js";
10
10
  import { type SlackInstallationContext } from "./normalize.js";
11
11
  import { type IdentityLinkStore } from "../../identity/slack/links.js";
12
12
  import { invokeIngressAgent, type SourceThreadExistsInput } from "../../ingress/index.js";
@@ -18,7 +18,7 @@ export declare const SLACK_TEAM_ID_ENV = "SLACK_TEAM_ID";
18
18
  export declare const SLACK_BOT_USER_ID_ENV = "SLACK_BOT_USER_ID";
19
19
  export interface SlackChannelHttpConfig {
20
20
  name: string;
21
- config: RequiredSlackConnectorConfig;
21
+ config: RequiredSlackChannelConfig;
22
22
  /** Override store (tests). */
23
23
  store?: InMemoryChannelStore;
24
24
  /** Override background scheduling (tests can run inline). */
@@ -46,9 +46,11 @@ export interface SlackChannelHttpConfig {
46
46
  sourceThreadExists?: (input: SourceThreadExistsInput) => Promise<boolean>;
47
47
  }
48
48
  /**
49
- * Handle `POST /connectors/{name}/events` for a Slack Events API request.
49
+ * Handle `POST /channels/{name}/events` for a Slack Events API request.
50
50
  *
51
- * Always verifies the signature against the raw body before parsing JSON.
51
+ * Verifies signatures before parsing normal events. Until both Slack
52
+ * credentials are configured, only the inert URL-verification challenge is
53
+ * accepted.
52
54
  */
53
55
  export declare function handleSlackEventsRequest(request: Request, channel: SlackChannelHttpConfig): Promise<Response>;
54
56
  /**
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/channels/slack/http.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAQnD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,EAGL,KAAK,wBAAwB,EAC9B,MAAM,gBAAgB,CAAC;AAQxB,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,+BAA+B,CAAC;AAKvC,OAAO,EAEL,kBAAkB,EAElB,KAAK,uBAAuB,EAC7B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,yBAAyB,EACzB,kBAAkB,EAClB,cAAc,EACd,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,GAC7B,MAAM,wBAAwB,CAAC;AAEhC,2DAA2D;AAC3D,eAAO,MAAM,wBAAwB,yBAAyB,CAAC;AAC/D,eAAO,MAAM,oBAAoB,qBAAqB,CAAC;AACvD,eAAO,MAAM,iBAAiB,kBAAkB,CAAC;AACjD,eAAO,MAAM,qBAAqB,sBAAsB,CAAC;AA8BzD,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,0BAA0B,CAAC;IACnC,8BAA8B;IAC9B,KAAK,CAAC,EAAE,oBAAoB,CAAC;IAC7B,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;IAC/C,qCAAqC;IACrC,WAAW,CAAC,EAAE,OAAO,kBAAkB,CAAC;IACxC,oDAAoD;IACpD,YAAY,CAAC,EAAE,wBAAwB,CAAC;IACxC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;IAC9B,4CAA4C;IAC5C,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC3E;AAED;;;;;;GAMG;AACH,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,QAAQ,CAAC,CA8QnB;AAyKD;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAK9D"}
@@ -5,13 +5,13 @@
5
5
  * Slack 3s window, then invokes the graph over a trusted loopback and posts an
6
6
  * auto-reply when needed.
7
7
  */
8
- import { ChannelError } from "../../channels/errors.js";
9
- import { InMemoryChannelStore } from "../../channels/store.js";
10
- import { clearFinalPosted, markFinalPosted, wasDeliveryFinalPosted, } from "../../channels/binding.js";
11
- import { createRuntimeChannel } from "../../channels/runtime.js";
8
+ import { ChannelError } from "../errors.js";
9
+ import { InMemoryChannelStore } from "../store.js";
10
+ import { clearFinalPosted, markFinalPosted, wasDeliveryFinalPosted, } from "../binding.js";
11
+ import { createRuntimeChannel } from "../runtime.js";
12
12
  import { normalizeSlackEvent, verifySlackRequest, } from "./normalize.js";
13
13
  import { createSlackWebApiTransport, DEFAULT_ASSISTANT_STATUS, DEFAULT_LOADING_MESSAGES, setSlackAssistantStatus, } from "./transport.js";
14
- import { SLACK_BOT_TOKEN_ENV } from "../../channels/binding.js";
14
+ import { SLACK_BOT_TOKEN_ENV } from "../binding.js";
15
15
  import { getIdentityLinkStore, } from "../../identity/slack/links.js";
16
16
  import { readSlackOidcConfig, slackConnectUrl, } from "../../identity/slack/oauth.js";
17
17
  import { ingressSourceThreadExists, invokeIngressAgent, scheduleIngressWork, } from "../../ingress/index.js";
@@ -48,16 +48,26 @@ const ASSISTANT_STATUS_HEARTBEAT_MS = 60_000;
48
48
  */
49
49
  const defaultStore = new InMemoryChannelStore();
50
50
  /**
51
- * Handle `POST /connectors/{name}/events` for a Slack Events API request.
51
+ * Handle `POST /channels/{name}/events` for a Slack Events API request.
52
52
  *
53
- * Always verifies the signature against the raw body before parsing JSON.
53
+ * Verifies signatures before parsing normal events. Until both Slack
54
+ * credentials are configured, only the inert URL-verification challenge is
55
+ * accepted.
54
56
  */
55
57
  export async function handleSlackEventsRequest(request, channel) {
56
58
  const signingSecret = channel.signingSecret ?? process.env[SLACK_SIGNING_SECRET_ENV] ?? "";
57
- if (!signingSecret) {
58
- return jsonError(503, "Slack signing secret is not configured");
59
- }
59
+ const botToken = channel.botToken ?? process.env[SLACK_BOT_TOKEN_ENV] ?? "";
60
60
  const rawBody = channel.rawBody ?? (await request.text());
61
+ if (!signingSecret || !botToken) {
62
+ const challenge = unverifiedUrlVerification(rawBody);
63
+ if (challenge !== undefined) {
64
+ return new Response(JSON.stringify({ challenge }), {
65
+ status: 200,
66
+ headers: { "Content-Type": "application/json" },
67
+ });
68
+ }
69
+ return jsonError(503, "Slack credentials are not configured");
70
+ }
61
71
  const signature = request.headers.get("x-slack-signature") ?? "";
62
72
  const timestamp = request.headers.get("x-slack-request-timestamp") ?? "";
63
73
  try {
@@ -127,12 +137,16 @@ export async function handleSlackEventsRequest(request, channel) {
127
137
  return new Response("", { status: 200 });
128
138
  }
129
139
  // Accept + ack first (Slack 3s window). Involvement / link / invoke run after.
140
+ // providerMessageId is a same-process backstop; dual app_mention + message is
141
+ // primarily suppressed in normalize (`covered_by_app_mention`).
130
142
  const { delivery, duplicate } = store.acceptDelivery({
131
143
  deploymentId,
132
144
  channelDefinitionId: channel.name,
133
145
  provider: "slack",
134
146
  apiAppId: installation.apiAppId,
135
147
  eventId: normalized.event.eventId,
148
+ providerMessageId: normalized.event.message?.id,
149
+ conversationId: normalized.event.address.conversationId,
136
150
  sourceThreadKey: normalized.sourceThreadKey,
137
151
  status: "accepted",
138
152
  event: normalized.event,
@@ -140,7 +154,6 @@ export async function handleSlackEventsRequest(request, channel) {
140
154
  if (duplicate) {
141
155
  return new Response("", { status: 200 });
142
156
  }
143
- const botToken = channel.botToken ?? process.env[SLACK_BOT_TOKEN_ENV] ?? "";
144
157
  const invoke = channel.invokeAgent ?? invokeIngressAgent;
145
158
  const linkStore = channel.linkStore ?? getIdentityLinkStore();
146
159
  // When Connect-with-Slack OAuth is configured, unlinked users must connect
@@ -274,6 +287,28 @@ export async function handleSlackEventsRequest(request, channel) {
274
287
  });
275
288
  return new Response("", { status: 200 });
276
289
  }
290
+ /**
291
+ * Extract only Slack's inert URL-verification challenge before an app secret
292
+ * exists. No event, installation, agent invocation, or provider call is
293
+ * reachable through this pre-configuration path.
294
+ */
295
+ function unverifiedUrlVerification(rawBody) {
296
+ try {
297
+ const text = typeof rawBody === "string" ? rawBody : new TextDecoder().decode(rawBody);
298
+ const body = JSON.parse(text);
299
+ if (body !== null &&
300
+ typeof body === "object" &&
301
+ !Array.isArray(body) &&
302
+ body.type === "url_verification" &&
303
+ typeof body.challenge === "string") {
304
+ return body.challenge;
305
+ }
306
+ }
307
+ catch {
308
+ // All malformed and non-verification requests fail closed below.
309
+ }
310
+ return undefined;
311
+ }
277
312
  function readInstallationFromEnv(body) {
278
313
  const apiAppId = process.env[SLACK_API_APP_ID_ENV];
279
314
  const teamId = process.env[SLACK_TEAM_ID_ENV];