managed-deepagents 0.9.6-dev.2 → 0.9.6-dev.20

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 (356) hide show
  1. package/README.md +1075 -37
  2. package/dist/agent-auth.d.ts +1 -1
  3. package/dist/agent-auth.d.ts.map +1 -1
  4. package/dist/agent-auth.js +36 -12
  5. package/dist/agent-auth.js.map +1 -1
  6. package/dist/browser.d.ts +37 -0
  7. package/dist/browser.d.ts.map +1 -0
  8. package/dist/browser.js +31 -0
  9. package/dist/browser.js.map +1 -0
  10. package/dist/channels/actor.d.ts +57 -0
  11. package/dist/channels/actor.d.ts.map +1 -0
  12. package/dist/channels/actor.js +24 -0
  13. package/dist/channels/actor.js.map +1 -0
  14. package/dist/channels/assistant-text.d.ts +29 -0
  15. package/dist/channels/assistant-text.d.ts.map +1 -1
  16. package/dist/channels/assistant-text.js +72 -1
  17. package/dist/channels/assistant-text.js.map +1 -1
  18. package/dist/channels/binding.d.ts +20 -1
  19. package/dist/channels/binding.d.ts.map +1 -1
  20. package/dist/channels/binding.js +44 -11
  21. package/dist/channels/binding.js.map +1 -1
  22. package/dist/channels/delivery.d.ts +51 -0
  23. package/dist/channels/delivery.d.ts.map +1 -0
  24. package/dist/channels/delivery.js +424 -0
  25. package/dist/channels/delivery.js.map +1 -0
  26. package/dist/channels/github/app-setup.d.ts +32 -0
  27. package/dist/channels/github/app-setup.d.ts.map +1 -0
  28. package/dist/channels/github/app-setup.js +146 -0
  29. package/dist/channels/github/app-setup.js.map +1 -0
  30. package/dist/channels/github/connections.d.ts +11 -0
  31. package/dist/channels/github/connections.d.ts.map +1 -0
  32. package/dist/channels/github/connections.js +14 -0
  33. package/dist/channels/github/connections.js.map +1 -0
  34. package/dist/channels/github/index.d.ts +12 -0
  35. package/dist/channels/github/index.d.ts.map +1 -0
  36. package/dist/channels/github/index.js +266 -0
  37. package/dist/channels/github/index.js.map +1 -0
  38. package/dist/channels/github/mentions.d.ts +12 -0
  39. package/dist/channels/github/mentions.d.ts.map +1 -0
  40. package/dist/channels/github/mentions.js +185 -0
  41. package/dist/channels/github/mentions.js.map +1 -0
  42. package/dist/channels/github/schema.d.ts +4165 -0
  43. package/dist/channels/github/schema.d.ts.map +1 -0
  44. package/dist/channels/github/schema.js +221 -0
  45. package/dist/channels/github/schema.js.map +1 -0
  46. package/dist/channels/github/types.d.ts +170 -0
  47. package/dist/channels/github/types.d.ts.map +1 -0
  48. package/dist/channels/github/types.js +2 -0
  49. package/dist/channels/github/types.js.map +1 -0
  50. package/dist/channels/http/endpoint.d.ts +137 -0
  51. package/dist/channels/http/endpoint.d.ts.map +1 -0
  52. package/dist/channels/http/endpoint.js +286 -0
  53. package/dist/channels/http/endpoint.js.map +1 -0
  54. package/dist/channels/http/http.d.ts.map +1 -1
  55. package/dist/channels/http/http.js +439 -65
  56. package/dist/channels/http/http.js.map +1 -1
  57. package/dist/channels/http/index.d.ts +8 -1
  58. package/dist/channels/http/index.d.ts.map +1 -1
  59. package/dist/channels/http/index.js +35 -16
  60. package/dist/channels/http/index.js.map +1 -1
  61. package/dist/channels/http/ingress.d.ts +67 -5
  62. package/dist/channels/http/ingress.d.ts.map +1 -1
  63. package/dist/channels/http/ingress.js +155 -43
  64. package/dist/channels/http/ingress.js.map +1 -1
  65. package/dist/channels/http/provider.d.ts +125 -0
  66. package/dist/channels/http/provider.d.ts.map +1 -0
  67. package/dist/channels/http/provider.js +227 -0
  68. package/dist/channels/http/provider.js.map +1 -0
  69. package/dist/channels/http/studio.d.ts +24 -0
  70. package/dist/channels/http/studio.d.ts.map +1 -0
  71. package/dist/channels/http/studio.js +95 -0
  72. package/dist/channels/http/studio.js.map +1 -0
  73. package/dist/channels/http/threads.d.ts +7 -0
  74. package/dist/channels/http/threads.d.ts.map +1 -0
  75. package/dist/channels/http/threads.js +10 -0
  76. package/dist/channels/http/threads.js.map +1 -0
  77. package/dist/channels/http/types.d.ts +166 -2
  78. package/dist/channels/http/types.d.ts.map +1 -1
  79. package/dist/channels/linear/app-setup.d.ts +29 -0
  80. package/dist/channels/linear/app-setup.d.ts.map +1 -0
  81. package/dist/channels/linear/app-setup.js +102 -0
  82. package/dist/channels/linear/app-setup.js.map +1 -0
  83. package/dist/channels/linear/connections.d.ts +11 -0
  84. package/dist/channels/linear/connections.d.ts.map +1 -0
  85. package/dist/channels/linear/connections.js +14 -0
  86. package/dist/channels/linear/connections.js.map +1 -0
  87. package/dist/channels/linear/graphql.d.ts +57 -0
  88. package/dist/channels/linear/graphql.d.ts.map +1 -0
  89. package/dist/channels/linear/graphql.js +167 -0
  90. package/dist/channels/linear/graphql.js.map +1 -0
  91. package/dist/channels/linear/index.d.ts +13 -0
  92. package/dist/channels/linear/index.d.ts.map +1 -0
  93. package/dist/channels/linear/index.js +457 -0
  94. package/dist/channels/linear/index.js.map +1 -0
  95. package/dist/channels/linear/schema.d.ts +1050 -0
  96. package/dist/channels/linear/schema.d.ts.map +1 -0
  97. package/dist/channels/linear/schema.js +255 -0
  98. package/dist/channels/linear/schema.js.map +1 -0
  99. package/dist/channels/linear/types.d.ts +169 -0
  100. package/dist/channels/linear/types.d.ts.map +1 -0
  101. package/dist/channels/linear/types.js +2 -0
  102. package/dist/channels/linear/types.js.map +1 -0
  103. package/dist/channels/message-schema.d.ts +2 -0
  104. package/dist/channels/message-schema.d.ts.map +1 -1
  105. package/dist/channels/message-schema.js +4 -0
  106. package/dist/channels/message-schema.js.map +1 -1
  107. package/dist/channels/messaging-registry.d.ts +16 -0
  108. package/dist/channels/messaging-registry.d.ts.map +1 -1
  109. package/dist/channels/messaging-registry.js +29 -0
  110. package/dist/channels/messaging-registry.js.map +1 -1
  111. package/dist/channels/reserved-connections.d.ts +12 -0
  112. package/dist/channels/reserved-connections.d.ts.map +1 -0
  113. package/dist/channels/reserved-connections.js +55 -0
  114. package/dist/channels/reserved-connections.js.map +1 -0
  115. package/dist/channels/resolve-user-endpoint.d.ts +34 -0
  116. package/dist/channels/resolve-user-endpoint.d.ts.map +1 -0
  117. package/dist/channels/resolve-user-endpoint.js +51 -0
  118. package/dist/channels/resolve-user-endpoint.js.map +1 -0
  119. package/dist/channels/resolve-user.d.ts +95 -0
  120. package/dist/channels/resolve-user.d.ts.map +1 -0
  121. package/dist/channels/resolve-user.js +143 -0
  122. package/dist/channels/resolve-user.js.map +1 -0
  123. package/dist/channels/run-input.d.ts +88 -0
  124. package/dist/channels/run-input.d.ts.map +1 -0
  125. package/dist/channels/run-input.js +177 -0
  126. package/dist/channels/run-input.js.map +1 -0
  127. package/dist/channels/runtime.d.ts +5 -2
  128. package/dist/channels/runtime.d.ts.map +1 -1
  129. package/dist/channels/runtime.js +19 -10
  130. package/dist/channels/runtime.js.map +1 -1
  131. package/dist/channels/schedule-delivery.d.ts +2 -13
  132. package/dist/channels/schedule-delivery.d.ts.map +1 -1
  133. package/dist/channels/schedule-delivery.js +6 -73
  134. package/dist/channels/schedule-delivery.js.map +1 -1
  135. package/dist/channels/slack/api.d.ts +2 -0
  136. package/dist/channels/slack/api.d.ts.map +1 -1
  137. package/dist/channels/slack/api.js +6 -0
  138. package/dist/channels/slack/api.js.map +1 -1
  139. package/dist/channels/slack/connections.d.ts +6 -0
  140. package/dist/channels/slack/connections.d.ts.map +1 -0
  141. package/dist/channels/slack/connections.js +6 -0
  142. package/dist/channels/slack/connections.js.map +1 -0
  143. package/dist/channels/slack/events.d.ts +278 -0
  144. package/dist/channels/slack/events.d.ts.map +1 -0
  145. package/dist/channels/slack/events.js +235 -0
  146. package/dist/channels/slack/events.js.map +1 -0
  147. package/dist/channels/slack/files.d.ts.map +1 -1
  148. package/dist/channels/slack/files.js +2 -3
  149. package/dist/channels/slack/files.js.map +1 -1
  150. package/dist/channels/slack/index.d.ts +90 -2
  151. package/dist/channels/slack/index.d.ts.map +1 -1
  152. package/dist/channels/slack/index.js +188 -6
  153. package/dist/channels/slack/index.js.map +1 -1
  154. package/dist/channels/slack/message-content.d.ts.map +1 -1
  155. package/dist/channels/slack/message-content.js +23 -28
  156. package/dist/channels/slack/message-content.js.map +1 -1
  157. package/dist/channels/slack/status.d.ts +76 -0
  158. package/dist/channels/slack/status.d.ts.map +1 -0
  159. package/dist/channels/slack/status.js +427 -0
  160. package/dist/channels/slack/status.js.map +1 -0
  161. package/dist/channels/source-providers.js +1 -1
  162. package/dist/channels/source-providers.js.map +1 -1
  163. package/dist/channels/trigger/client.d.ts.map +1 -1
  164. package/dist/channels/trigger/client.js +9 -15
  165. package/dist/channels/trigger/client.js.map +1 -1
  166. package/dist/channels/trigger/conversation.d.ts +11 -0
  167. package/dist/channels/trigger/conversation.d.ts.map +1 -0
  168. package/dist/channels/trigger/conversation.js +72 -0
  169. package/dist/channels/trigger/conversation.js.map +1 -0
  170. package/dist/channels/trigger/http.d.ts +130 -4
  171. package/dist/channels/trigger/http.d.ts.map +1 -1
  172. package/dist/channels/trigger/http.js +408 -78
  173. package/dist/channels/trigger/http.js.map +1 -1
  174. package/dist/channels/trigger/identity-context.d.ts.map +1 -1
  175. package/dist/channels/trigger/identity-context.js +2 -5
  176. package/dist/channels/trigger/identity-context.js.map +1 -1
  177. package/dist/channels/trigger/ingress.d.ts +70 -1
  178. package/dist/channels/trigger/ingress.d.ts.map +1 -1
  179. package/dist/channels/trigger/ingress.js +135 -21
  180. package/dist/channels/trigger/ingress.js.map +1 -1
  181. package/dist/channels/trigger/transport.d.ts +10 -0
  182. package/dist/channels/trigger/transport.d.ts.map +1 -1
  183. package/dist/channels/trigger/transport.js +25 -9
  184. package/dist/channels/trigger/transport.js.map +1 -1
  185. package/dist/channels/trigger/types.d.ts +92 -3
  186. package/dist/channels/trigger/types.d.ts.map +1 -1
  187. package/dist/channels/trigger/types.js +37 -0
  188. package/dist/channels/trigger/types.js.map +1 -1
  189. package/dist/channels/types.d.ts +53 -4
  190. package/dist/channels/types.d.ts.map +1 -1
  191. package/dist/channels/types.js +2 -0
  192. package/dist/channels/types.js.map +1 -1
  193. package/dist/connections.d.ts +36 -12
  194. package/dist/connections.d.ts.map +1 -1
  195. package/dist/connections.js +125 -30
  196. package/dist/connections.js.map +1 -1
  197. package/dist/credential-gate.d.ts +2 -0
  198. package/dist/credential-gate.d.ts.map +1 -1
  199. package/dist/credential-gate.js +37 -3
  200. package/dist/credential-gate.js.map +1 -1
  201. package/dist/define-deep-agent.d.ts +2 -2
  202. package/dist/define-deep-agent.d.ts.map +1 -1
  203. package/dist/define-deep-agent.js +53 -2
  204. package/dist/define-deep-agent.js.map +1 -1
  205. package/dist/identity/index.d.ts.map +1 -1
  206. package/dist/identity/index.js +3 -1
  207. package/dist/identity/index.js.map +1 -1
  208. package/dist/identity/loopback.d.ts +1 -1
  209. package/dist/identity/loopback.d.ts.map +1 -1
  210. package/dist/identity/loopback.js +3 -2
  211. package/dist/identity/loopback.js.map +1 -1
  212. package/dist/identity/options.d.ts +9 -0
  213. package/dist/identity/options.d.ts.map +1 -1
  214. package/dist/identity/options.js +1 -1
  215. package/dist/identity/options.js.map +1 -1
  216. package/dist/identity/slack/links.js +3 -2
  217. package/dist/identity/slack/links.js.map +1 -1
  218. package/dist/identity/types.d.ts +3 -0
  219. package/dist/identity/types.d.ts.map +1 -1
  220. package/dist/index.d.ts +19 -5
  221. package/dist/index.d.ts.map +1 -1
  222. package/dist/index.js +3 -1
  223. package/dist/index.js.map +1 -1
  224. package/dist/ingress/loopback.d.ts +1 -0
  225. package/dist/ingress/loopback.d.ts.map +1 -1
  226. package/dist/ingress/loopback.js +7 -3
  227. package/dist/ingress/loopback.js.map +1 -1
  228. package/dist/ingress/runs.d.ts +74 -1
  229. package/dist/ingress/runs.d.ts.map +1 -1
  230. package/dist/ingress/runs.js +184 -9
  231. package/dist/ingress/runs.js.map +1 -1
  232. package/dist/managed-composition.d.ts +3 -0
  233. package/dist/managed-composition.d.ts.map +1 -1
  234. package/dist/managed-composition.js +29 -13
  235. package/dist/managed-composition.js.map +1 -1
  236. package/dist/namespaces.d.ts +25 -21
  237. package/dist/namespaces.d.ts.map +1 -1
  238. package/dist/namespaces.js +4 -29
  239. package/dist/namespaces.js.map +1 -1
  240. package/dist/runtime/async-subagents.d.ts +27 -0
  241. package/dist/runtime/async-subagents.d.ts.map +1 -0
  242. package/dist/runtime/async-subagents.js +139 -0
  243. package/dist/runtime/async-subagents.js.map +1 -0
  244. package/dist/runtime/auth.d.ts.map +1 -1
  245. package/dist/runtime/auth.js +177 -8
  246. package/dist/runtime/auth.js.map +1 -1
  247. package/dist/runtime/backend.d.ts +7 -0
  248. package/dist/runtime/backend.d.ts.map +1 -1
  249. package/dist/runtime/backend.js +32 -7
  250. package/dist/runtime/backend.js.map +1 -1
  251. package/dist/runtime/browser-facade.d.ts +10 -0
  252. package/dist/runtime/browser-facade.d.ts.map +1 -0
  253. package/dist/runtime/browser-facade.js +23 -0
  254. package/dist/runtime/browser-facade.js.map +1 -0
  255. package/dist/runtime/browser-langsmith.d.ts +143 -0
  256. package/dist/runtime/browser-langsmith.d.ts.map +1 -0
  257. package/dist/runtime/browser-langsmith.js +508 -0
  258. package/dist/runtime/browser-langsmith.js.map +1 -0
  259. package/dist/runtime/browser-recorder.py +831 -0
  260. package/dist/runtime/browser-selection.d.ts +10 -0
  261. package/dist/runtime/browser-selection.d.ts.map +1 -0
  262. package/dist/runtime/browser-selection.js +21 -0
  263. package/dist/runtime/browser-selection.js.map +1 -0
  264. package/dist/runtime/browser.d.ts +128 -0
  265. package/dist/runtime/browser.d.ts.map +1 -0
  266. package/dist/runtime/browser.js +795 -0
  267. package/dist/runtime/browser.js.map +1 -0
  268. package/dist/runtime/channel-icon.d.ts +22 -0
  269. package/dist/runtime/channel-icon.d.ts.map +1 -0
  270. package/dist/runtime/channel-icon.js +81 -0
  271. package/dist/runtime/channel-icon.js.map +1 -0
  272. package/dist/runtime/channel.d.ts +11 -0
  273. package/dist/runtime/channel.d.ts.map +1 -1
  274. package/dist/runtime/channel.js.map +1 -1
  275. package/dist/runtime/graph-build-timing.d.ts +30 -0
  276. package/dist/runtime/graph-build-timing.d.ts.map +1 -0
  277. package/dist/runtime/graph-build-timing.js +50 -0
  278. package/dist/runtime/graph-build-timing.js.map +1 -0
  279. package/dist/runtime/identity-http.d.ts +2 -0
  280. package/dist/runtime/identity-http.d.ts.map +1 -1
  281. package/dist/runtime/identity-http.js +38 -2
  282. package/dist/runtime/identity-http.js.map +1 -1
  283. package/dist/runtime/identity-runtime.d.ts +10 -0
  284. package/dist/runtime/identity-runtime.d.ts.map +1 -1
  285. package/dist/runtime/identity-runtime.js +22 -0
  286. package/dist/runtime/identity-runtime.js.map +1 -1
  287. package/dist/runtime/index.d.ts +38 -1
  288. package/dist/runtime/index.d.ts.map +1 -1
  289. package/dist/runtime/index.js +97 -43
  290. package/dist/runtime/index.js.map +1 -1
  291. package/dist/runtime/langsmith-env.d.ts +19 -0
  292. package/dist/runtime/langsmith-env.d.ts.map +1 -0
  293. package/dist/runtime/langsmith-env.js +38 -0
  294. package/dist/runtime/langsmith-env.js.map +1 -0
  295. package/dist/runtime/managed-thread.d.ts +61 -0
  296. package/dist/runtime/managed-thread.d.ts.map +1 -0
  297. package/dist/runtime/managed-thread.js +76 -0
  298. package/dist/runtime/managed-thread.js.map +1 -0
  299. package/dist/runtime/managed-tools.d.ts +10 -2
  300. package/dist/runtime/managed-tools.d.ts.map +1 -1
  301. package/dist/runtime/managed-tools.js +10 -8
  302. package/dist/runtime/managed-tools.js.map +1 -1
  303. package/dist/runtime/memory/policy.d.ts.map +1 -1
  304. package/dist/runtime/memory/policy.js +1 -3
  305. package/dist/runtime/memory/policy.js.map +1 -1
  306. package/dist/runtime/parent-run.d.ts +33 -0
  307. package/dist/runtime/parent-run.d.ts.map +1 -0
  308. package/dist/runtime/parent-run.js +114 -0
  309. package/dist/runtime/parent-run.js.map +1 -0
  310. package/dist/runtime/run-input.d.ts +14 -1
  311. package/dist/runtime/run-input.d.ts.map +1 -1
  312. package/dist/runtime/run-input.js +100 -7
  313. package/dist/runtime/run-input.js.map +1 -1
  314. package/dist/runtime/sandbox-manager.d.ts +15 -2
  315. package/dist/runtime/sandbox-manager.d.ts.map +1 -1
  316. package/dist/runtime/sandbox-manager.js +40 -18
  317. package/dist/runtime/sandbox-manager.js.map +1 -1
  318. package/dist/runtime/schedule-auth.d.ts +79 -0
  319. package/dist/runtime/schedule-auth.d.ts.map +1 -1
  320. package/dist/runtime/schedule-auth.js +165 -7
  321. package/dist/runtime/schedule-auth.js.map +1 -1
  322. package/dist/runtime/static-entry.d.ts.map +1 -1
  323. package/dist/runtime/static-entry.js +1 -0
  324. package/dist/runtime/static-entry.js.map +1 -1
  325. package/dist/runtime/thread-record.d.ts +88 -0
  326. package/dist/runtime/thread-record.d.ts.map +1 -0
  327. package/dist/runtime/thread-record.js +213 -0
  328. package/dist/runtime/thread-record.js.map +1 -0
  329. package/dist/runtime/types.d.ts +12 -1
  330. package/dist/runtime/types.d.ts.map +1 -1
  331. package/dist/runtime-schedules.d.ts +15 -0
  332. package/dist/runtime-schedules.d.ts.map +1 -1
  333. package/dist/runtime-schedules.js +83 -20
  334. package/dist/runtime-schedules.js.map +1 -1
  335. package/dist/sandbox.d.ts +0 -6
  336. package/dist/sandbox.d.ts.map +1 -1
  337. package/dist/sandbox.js +3 -7
  338. package/dist/sandbox.js.map +1 -1
  339. package/dist/schedule-channel.d.ts +5 -2
  340. package/dist/schedule-channel.d.ts.map +1 -1
  341. package/dist/schedule-channel.js +13 -12
  342. package/dist/schedule-channel.js.map +1 -1
  343. package/dist/telemetry/metadata.d.ts.map +1 -1
  344. package/dist/telemetry/metadata.js +4 -4
  345. package/dist/telemetry/metadata.js.map +1 -1
  346. package/dist/telemetry/otel/exporter.d.ts.map +1 -1
  347. package/dist/telemetry/otel/exporter.js +3 -3
  348. package/dist/telemetry/otel/exporter.js.map +1 -1
  349. package/dist/types.d.ts +19 -2
  350. package/dist/types.d.ts.map +1 -1
  351. package/dist/types.js.map +1 -1
  352. package/dist/values.d.ts +15 -0
  353. package/dist/values.d.ts.map +1 -0
  354. package/dist/values.js +31 -0
  355. package/dist/values.js.map +1 -0
  356. package/package.json +26 -12
@@ -0,0 +1,177 @@
1
+ /**
2
+ * What a channel handler starts a run with, in the shapes `agent.invoke`
3
+ * takes, normalized to the JSON the Agent Server accepts.
4
+ */
5
+ import { HumanMessage, coerceMessageLikeToMessage, isBaseMessage, } from "@langchain/core/messages";
6
+ import { isJsonValue } from "./message-schema.js";
7
+ import { logger } from "../runtime/log.js";
8
+ import { isPlainObject } from "../values.js";
9
+ /**
10
+ * A handler's run input as `startIngressRun` takes it, with MDA's own
11
+ * `metadata` over the handler's, so a handler can't replace it. Empty state
12
+ * and metadata are left out.
13
+ */
14
+ export function runStartOptions(input, metadata = {}) {
15
+ const merged = { ...input.metadata, ...metadata };
16
+ return {
17
+ messages: input.messages,
18
+ ...(Object.keys(input.state).length && { state: input.state }),
19
+ ...(Object.keys(merged).length && { metadata: merged }),
20
+ ...(input.webhook !== undefined && { webhook: input.webhook }),
21
+ };
22
+ }
23
+ const MESSAGE_ROLES = new Set([
24
+ "human",
25
+ "ai",
26
+ "system",
27
+ "tool",
28
+ ]);
29
+ /**
30
+ * Run input MDA starts no run with. Its `reason`, which is also its message,
31
+ * says what is wrong in a fixed phrase. A key or type it names is bounded to
32
+ * one log line, so the channel logs the reason, where it logs no other
33
+ * error's message. A `TypeError`, as invalid run input threw before.
34
+ */
35
+ export class InvalidRunInput extends TypeError {
36
+ /** Why MDA refused the input, such as `run metadata key is reserved: user_id`. */
37
+ reason;
38
+ constructor(reason) {
39
+ super(reason);
40
+ this.name = "InvalidRunInput";
41
+ this.reason = reason;
42
+ }
43
+ }
44
+ /** A key or type the handler chose, as one bounded log line holds it. */
45
+ function named(value) {
46
+ return logger.logIdentifier(value);
47
+ }
48
+ /**
49
+ * Normalize what a handler returned. `null` and `undefined` start nothing;
50
+ * anything else that is not valid input throws an {@link InvalidRunInput}, a
51
+ * `TypeError`. A run option that is `null` or `undefined` is not set.
52
+ */
53
+ export function normalizeRunInput(value) {
54
+ if (value === null || value === undefined)
55
+ return undefined;
56
+ const [input, options] = Array.isArray(value)
57
+ ? value
58
+ : [value, undefined];
59
+ if (Array.isArray(value) && value.length !== 2 && value.length !== 1)
60
+ throw new InvalidRunInput("run input must be [input, options]");
61
+ const normalized = normalizeInput(input);
62
+ if (options === undefined)
63
+ return normalized;
64
+ if (!isPlainObject(options))
65
+ throw new InvalidRunInput("run options must be an object");
66
+ const { context, metadata, webhook, ...rest } = options;
67
+ if (Object.keys(rest).length)
68
+ throw new InvalidRunInput(`unsupported run option ${named(Object.keys(rest).sort().join(", "))}; use context, metadata or webhook`);
69
+ return {
70
+ ...normalized,
71
+ ...(context != null && { context: runContext(context) }),
72
+ ...(metadata != null && { metadata: runMetadata(metadata) }),
73
+ ...(webhook != null && { webhook: runWebhook(webhook) }),
74
+ };
75
+ }
76
+ const WEBHOOK_PREFIX = /^https?:\/\//i;
77
+ // eslint-disable-next-line no-control-regex
78
+ const UNSAFE_URL_CHARACTER = /[\s\u0000-\u001f\u007f]/;
79
+ /**
80
+ * The webhook as given, once it is `http://` or `https://`, a host and an
81
+ * optional port, without credentials, whitespace or control characters. The
82
+ * Python runtime checks it the same way, so both pass the Agent Server the
83
+ * same string.
84
+ */
85
+ function runWebhook(webhook) {
86
+ let url;
87
+ try {
88
+ url =
89
+ typeof webhook === "string" &&
90
+ WEBHOOK_PREFIX.test(webhook) &&
91
+ !UNSAFE_URL_CHARACTER.test(webhook)
92
+ ? new URL(webhook)
93
+ : undefined;
94
+ }
95
+ catch {
96
+ url = undefined;
97
+ }
98
+ if (!url || !url.hostname || url.username || url.password)
99
+ throw new InvalidRunInput("run webhook must be an http(s) URL, without credentials in it");
100
+ return webhook;
101
+ }
102
+ function runContext(context) {
103
+ if (!isPlainObject(context) || !isJsonValue(context))
104
+ throw new InvalidRunInput("run context must be a JSON object");
105
+ for (const key of ["channel", "mda_channel"])
106
+ if (key in context)
107
+ throw new InvalidRunInput(`context.${key} is reserved for managed ingress`);
108
+ return context;
109
+ }
110
+ /** The metadata keys a handler may set. */
111
+ const METADATA_KEY = /^[A-Za-z][A-Za-z0-9_.-]{0,63}$/;
112
+ /**
113
+ * Keys MDA, the Agent Server and LangSmith set, which a handler's would
114
+ * override or confuse (LangSmith groups a thread's runs by `thread_id`,
115
+ * `session_id` or `conversation_id`), and object internals.
116
+ */
117
+ const RESERVED_METADATA_KEY = /^(mda_|langgraph_|ls_)|^(assistant_id|graph_id|run_id|run_attempt|thread_id|session_id|conversation_id|user_id|owner|checkpoint_id|checkpoint_ns|constructor|prototype)$/i;
118
+ function runMetadata(metadata) {
119
+ if (!isPlainObject(metadata) || !isJsonValue(metadata))
120
+ throw new InvalidRunInput("run metadata must be a JSON object");
121
+ for (const key of Object.keys(metadata)) {
122
+ if (!METADATA_KEY.test(key))
123
+ throw new InvalidRunInput(`run metadata key is not up to 64 letters, digits, _, . or -, starting with a letter: ${named(key)}`);
124
+ if (RESERVED_METADATA_KEY.test(key))
125
+ throw new InvalidRunInput(`run metadata key is reserved: ${named(key)}`);
126
+ }
127
+ return metadata;
128
+ }
129
+ function normalizeInput(input) {
130
+ if (typeof input === "string") {
131
+ if (!input.trim())
132
+ throw new InvalidRunInput("run input must not be blank");
133
+ return { messages: [messageJson(new HumanMessage(input))], state: {} };
134
+ }
135
+ if (isBaseMessage(input))
136
+ return { messages: [messageJson(input)], state: {} };
137
+ if (!isPlainObject(input))
138
+ throw new InvalidRunInput("run input must be a string, a message, or an object of state");
139
+ const { messages, ...state } = input;
140
+ if (messages !== undefined && !Array.isArray(messages))
141
+ throw new InvalidRunInput("run input messages must be an array");
142
+ if (!isJsonValue(state))
143
+ throw new InvalidRunInput("run input state must be JSON");
144
+ const normalized = (messages ?? []).map(messageLike);
145
+ if (!normalized.length && !Object.keys(state).length)
146
+ throw new InvalidRunInput("run input must not be empty");
147
+ return { messages: normalized, state: state };
148
+ }
149
+ function messageLike(message) {
150
+ if (typeof message === "string" && !message.trim())
151
+ throw new InvalidRunInput("a message must not be blank");
152
+ try {
153
+ return messageJson(coerceMessageLikeToMessage(message));
154
+ }
155
+ catch (error) {
156
+ if (error instanceof TypeError)
157
+ throw error;
158
+ throw new InvalidRunInput("a message must be a string, a message, or JSON");
159
+ }
160
+ }
161
+ /**
162
+ * A message as the JSON the Agent Server turns back into a message: its
163
+ * `toDict()` fields with a `role`. `toDict()` puts content built from
164
+ * `contentBlocks` under `content_blocks`, which the server does not read, so
165
+ * the message's `content` is sent instead.
166
+ */
167
+ function messageJson(message) {
168
+ const role = message.getType();
169
+ if (!MESSAGE_ROLES.has(role))
170
+ throw new InvalidRunInput(`unsupported message type ${named(role)}`);
171
+ const { content_blocks: _blocks, ...fields } = message.toDict().data;
172
+ const json = { ...fields, role, content: message.content };
173
+ if (!isJsonValue(json))
174
+ throw new InvalidRunInput("a message must be JSON");
175
+ return json;
176
+ }
177
+ //# sourceMappingURL=run-input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-input.js","sourceRoot":"","sources":["../../src/channels/run-input.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- import type { ChannelEvent, ChannelInfo, ChannelMessage, JsonValue, PostedChannelMessage, RuntimeChannel } from "./types.js";
1
+ import type { ChannelRunResult } from "./run-input.js";
2
+ import type { ChannelEvent, ChannelInfo, ChannelMessage, JsonValue, PostedChannelMessage, PostedChannelThread, RuntimeChannel } from "./types.js";
2
3
  /** Adapts a bound channel post to a typed provider client. */
3
4
  export interface ChannelMessagingAdapter {
4
5
  post(input: {
@@ -10,10 +11,12 @@ export interface ChannelMessagingAdapter {
10
11
  export interface CreateRuntimeChannelOptions {
11
12
  name: string;
12
13
  provider: string;
13
- event: ChannelEvent;
14
+ event: ChannelEvent | null;
14
15
  rawEvent?: JsonValue;
15
16
  target: JsonValue;
16
17
  transport?: ChannelMessagingAdapter;
18
+ /** Post at top level and start the new thread, for `post`'s `newThread`. */
19
+ startThread?: (message: ChannelMessage, run: ChannelRunResult | undefined) => Promise<PostedChannelThread>;
17
20
  }
18
21
  export declare function immutableCopy<T>(value: T): T;
19
22
  export declare function channelInfo(options: ChannelInfo): ChannelInfo;
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/channels/runtime.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,YAAY,EACZ,WAAW,EACX,cAAc,EACd,SAAS,EACT,oBAAoB,EACpB,cAAc,EACf,MAAM,YAAY,CAAC;AAEpB,8DAA8D;AAC9D,MAAM,WAAW,uBAAuB;IACtC,IAAI,CAAC,KAAK,EAAE;QACV,OAAO,EAAE,cAAc,CAAC;QACxB,MAAM,EAAE,SAAS,CAAC;QAClB,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;CACnC;AACD,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,YAAY,CAAC;IACpB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,SAAS,CAAC;IAClB,SAAS,CAAC,EAAE,uBAAuB,CAAC;CACrC;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAU5C;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,WAAW,CAO7D;AAED,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,2BAA2B,GACnC,cAAc,CAkBhB;AAED,wBAAgB,eAAe,CAC7B,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,OAAO,IAAI,cAAc,CAEnC;AAED,qEAAqE;AACrE,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CAelE"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/channels/runtime.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,KAAK,EACV,YAAY,EACZ,WAAW,EACX,cAAc,EAEd,SAAS,EACT,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,EACf,MAAM,YAAY,CAAC;AAEpB,8DAA8D;AAC9D,MAAM,WAAW,uBAAuB;IACtC,IAAI,CAAC,KAAK,EAAE;QACV,OAAO,EAAE,cAAc,CAAC;QACxB,MAAM,EAAE,SAAS,CAAC;QAClB,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;CACnC;AACD,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,YAAY,GAAG,IAAI,CAAC;IAC3B,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,SAAS,CAAC;IAClB,SAAS,CAAC,EAAE,uBAAuB,CAAC;IACpC,4EAA4E;IAC5E,WAAW,CAAC,EAAE,CACZ,OAAO,EAAE,cAAc,EACvB,GAAG,EAAE,gBAAgB,GAAG,SAAS,KAC9B,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACnC;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAU5C;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,WAAW,CAO7D;AAED,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,2BAA2B,GACnC,cAAc,CA8BhB;AAED,wBAAgB,eAAe,CAC7B,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,OAAO,IAAI,cAAc,CAEnC;AAED,qEAAqE;AACrE,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CAelE"}
@@ -22,18 +22,27 @@ export function createRuntimeChannel(options) {
22
22
  if (!transport)
23
23
  return facts;
24
24
  const target = immutableCopy(options.target);
25
+ const { startThread } = options;
26
+ const post = async (message, postOptions) => {
27
+ validateMessage(message);
28
+ if (postOptions?.newThread) {
29
+ if (!startThread)
30
+ throw new Error("this channel cannot start a new thread");
31
+ return startThread(immutableCopy(message), postOptions.run);
32
+ }
33
+ if (postOptions?.run !== undefined)
34
+ throw new Error("a post starts a run only with newThread: true");
35
+ return transport.post({
36
+ message: immutableCopy(message),
37
+ target,
38
+ ...(facts.event?.type === "schedule"
39
+ ? { newThread: facts.event.new_thread }
40
+ : {}),
41
+ });
42
+ };
25
43
  return Object.freeze({
26
44
  ...facts,
27
- async post(message) {
28
- validateMessage(message);
29
- return transport.post({
30
- message: immutableCopy(message),
31
- target,
32
- ...(facts.event.type === "schedule"
33
- ? { newThread: facts.event.new_thread }
34
- : {}),
35
- });
36
- },
45
+ post: post,
37
46
  });
38
47
  }
39
48
  export function validateMessage(message) {
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/channels/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/channels/runtime.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,5 @@
1
- /** Deliver trusted schedule results through captured or explicit channel targets. */
2
- import type { ManagedMiddleware } from "../runtime/managed-middleware.js";
1
+ /** Deliver trusted schedule results to their explicit `deliverTo` channel targets. */
3
2
  import type { ChannelAddress } from "./types.js";
4
- /** Override LangGraph run metadata resolution. @internal Test-only. */
5
- export declare function setScheduleMetadataForTests(loader?: () => {
6
- mda_managed?: unknown;
7
- mda_schedule?: unknown;
8
- } | undefined): void;
9
3
  /** Normalized schedule delivery target (camelCase). */
10
4
  export interface NormalizedScheduleDeliverTo {
11
5
  channel: string;
@@ -46,10 +40,5 @@ export declare function deliverScheduleResult(input: DeliverScheduleResultInput)
46
40
  * True when this run is a managed cron fire (not a caller-forged HTTP invoke).
47
41
  * Only the server writes the principal, so its cron marker cannot be forged.
48
42
  */
49
- export declare function isTrustedScheduleDeliveryRun(configurable: Record<string, unknown> | undefined): boolean;
50
- /** Post trusted schedule results and propagate delivery failures. */
51
- export declare function createScheduleDeliveryMiddleware(options?: {
52
- /** Override deliver implementation (tests). */
53
- _deliver?: typeof deliverScheduleResult;
54
- }): ManagedMiddleware;
43
+ export declare function isTrustedScheduleDeliveryRun(configurable: Record<string, unknown> | undefined, metadata: unknown): boolean;
55
44
  //# sourceMappingURL=schedule-delivery.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schedule-delivery.d.ts","sourceRoot":"","sources":["../../src/channels/schedule-delivery.ts"],"names":[],"mappings":"AAAA,qFAAqF;AAYrF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAc1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAMjD,uEAAuE;AACvE,wBAAgB,2BAA2B,CACzC,MAAM,CAAC,EAAE,MAAM;IAAE,WAAW,CAAC,EAAE,OAAO,CAAC;IAAC,YAAY,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,SAAS,GAC3E,IAAI,CAEN;AAED,uDAAuD;AACvD,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EACE;QAAE,IAAI,EAAE,uBAAuB,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,GACzD;QAAE,IAAI,EAAE,iBAAiB,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1E,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,OAAO,GACX,2BAA2B,GAAG,SAAS,CA8CzC;AAED,kEAAkE;AAClE,wBAAgB,oBAAoB,CAClC,EAAE,EAAE,2BAA2B,CAAC,IAAI,CAAC,GACpC,cAAc,CAKhB;AAED,MAAM,WAAW,0BAA0B;IACzC,SAAS,EAAE,2BAA2B,CAAC;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,kCAAkC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4CAA4C;IAC5C,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE;QACb,IAAI,EAAE,MAAM,CAAC;QACb,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACxB;AAED,gEAAgE;AAChE,wBAAgB,eAAe,CAC7B,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,GAAG,SAAS,CAMpB;AAED,qFAAqF;AACrF,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,0BAA0B,GAChC,OAAO,CAAC,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC,CAsF1C;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAC1C,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAChD,OAAO,CAQT;AAmBD,qEAAqE;AACrE,wBAAgB,gCAAgC,CAAC,OAAO,CAAC,EAAE;IACzD,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,OAAO,qBAAqB,CAAC;CACzC,GAAG,iBAAiB,CAqDpB"}
1
+ {"version":3,"file":"schedule-delivery.d.ts","sourceRoot":"","sources":["../../src/channels/schedule-delivery.ts"],"names":[],"mappings":"AAAA,sFAAsF;AAUtF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAGjD,uDAAuD;AACvD,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EACE;QAAE,IAAI,EAAE,uBAAuB,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,GACzD;QAAE,IAAI,EAAE,iBAAiB,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1E,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,OAAO,GACX,2BAA2B,GAAG,SAAS,CA8CzC;AAED,kEAAkE;AAClE,wBAAgB,oBAAoB,CAClC,EAAE,EAAE,2BAA2B,CAAC,IAAI,CAAC,GACpC,cAAc,CAKhB;AAED,MAAM,WAAW,0BAA0B;IACzC,SAAS,EAAE,2BAA2B,CAAC;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,kCAAkC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4CAA4C;IAC5C,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE;QACb,IAAI,EAAE,MAAM,CAAC;QACb,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACxB;AAED,gEAAgE;AAChE,wBAAgB,eAAe,CAC7B,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,GAAG,SAAS,CAMpB;AAED,qFAAqF;AACrF,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,0BAA0B,GAChC,OAAO,CAAC,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC,CAsF1C;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAC1C,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EACjD,QAAQ,EAAE,OAAO,GAChB,OAAO,CAST"}
@@ -1,17 +1,10 @@
1
- /** Deliver trusted schedule results through captured or explicit channel targets. */
1
+ /** Deliver trusted schedule results to their explicit `deliverTo` channel targets. */
2
2
  import { randomUUID } from "node:crypto";
3
- import { getConfig } from "@langchain/langgraph";
4
- import { configurableFromRuntime, resolveAmbientConfigurable, } from "../runtime/identity-runtime.js";
5
3
  import { logger } from "../runtime/log.js";
6
- import { extractAssistantContent, extractAssistantText, } from "./assistant-text.js";
7
- import { SLACK_BOT_TOKEN_ENV, currentChannelBinding, resolveRuntimeChannel, } from "./binding.js";
4
+ import { SLACK_BOT_TOKEN_ENV } from "./binding.js";
8
5
  import { createSlackWebApiTransport } from "./slack/transport.js";
9
6
  import { createTriggerClient } from "./trigger/client.js";
10
- let scheduleMetadataForTests;
11
- /** Override LangGraph run metadata resolution. @internal Test-only. */
12
- export function setScheduleMetadataForTests(loader) {
13
- scheduleMetadataForTests = loader;
14
- }
7
+ import { isRecord } from "../values.js";
15
8
  /**
16
9
  * Normalize a schedule `deliver_to` target.
17
10
  * Accepts camelCase (TS compile) and snake_case (Python compile) shapes.
@@ -149,70 +142,10 @@ export async function deliverScheduleResult(input) {
149
142
  * True when this run is a managed cron fire (not a caller-forged HTTP invoke).
150
143
  * Only the server writes the principal, so its cron marker cannot be forged.
151
144
  */
152
- export function isTrustedScheduleDeliveryRun(configurable) {
145
+ export function isTrustedScheduleDeliveryRun(configurable, metadata) {
153
146
  const user = configurable?.langgraph_auth_user;
154
147
  return (user?.mda_scheduled_run === true &&
155
- resolveScheduleMetadata()?.mda_managed === true);
156
- }
157
- function resolveScheduleMetadata() {
158
- if (scheduleMetadataForTests) {
159
- return scheduleMetadataForTests();
160
- }
161
- try {
162
- const metadata = getConfig().metadata;
163
- if (metadata && typeof metadata === "object" && !Array.isArray(metadata)) {
164
- return metadata;
165
- }
166
- }
167
- catch {
168
- // Outside a runnable context (unit tests without the override).
169
- }
170
- return undefined;
171
- }
172
- /** Post trusted schedule results and propagate delivery failures. */
173
- export function createScheduleDeliveryMiddleware(options) {
174
- const deliver = options?._deliver ?? deliverScheduleResult;
175
- return {
176
- name: "mda-schedule-delivery",
177
- async afterAgent(state, runtime) {
178
- // Keep schedule config even when langgraph_auth_user is absent.
179
- const configurable = configurableFromRuntime(runtime) ?? resolveAmbientConfigurable();
180
- if (!isTrustedScheduleDeliveryRun(configurable)) {
181
- return undefined;
182
- }
183
- const messages = state &&
184
- typeof state === "object" &&
185
- !Array.isArray(state) &&
186
- "messages" in state
187
- ? state.messages
188
- : undefined;
189
- const replyText = extractAssistantText({ messages });
190
- const routing = currentChannelBinding.getStore()?.routing ?? {};
191
- const savedChannel = routing.mda_channel;
192
- if (savedChannel != null) {
193
- const channel = resolveRuntimeChannel({ mda_channel: savedChannel }, configurable);
194
- if (!channel?.post)
195
- throw new Error("Scheduled channel delivery is unavailable");
196
- const binding = savedChannel;
197
- const content = binding.transport === "trigger_server"
198
- ? replyText || null
199
- : extractAssistantContent({ messages });
200
- if (content !== null)
201
- await channel.post({
202
- type: "content",
203
- content,
204
- });
205
- return undefined;
206
- }
207
- const schedule = routing.mda_schedule;
208
- const deliverTo = readScheduleDeliverTo(schedule?.deliver_to);
209
- if (deliverTo) {
210
- const outcome = await deliver({ deliverTo, replyText });
211
- if (outcome === "failed")
212
- throw new Error("Scheduled channel delivery failed");
213
- }
214
- return undefined;
215
- },
216
- };
148
+ isRecord(metadata) &&
149
+ metadata.mda_managed === true);
217
150
  }
218
151
  //# sourceMappingURL=schedule-delivery.js.map
@@ -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,5 +1,7 @@
1
1
  import { ChannelError } from "../errors.js";
2
2
  export declare const SLACK_API = "https://slack.com/api";
3
+ /** The Slack app's bot token, an agent connection `mda deploy` sets up. */
4
+ export declare function slackBotToken(): Promise<string>;
3
5
  /** A Slack error code, separate from HTTP and network failures. */
4
6
  export declare class SlackApiError extends ChannelError {
5
7
  readonly providerError: string;
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/channels/slack/api.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,eAAO,MAAM,SAAS,0BAA0B,CAAC;AAEjD,mEAAmE;AACnE,qBAAa,aAAc,SAAQ,YAAY;IAG3C,QAAQ,CAAC,aAAa,EAAE,MAAM;IAFhC,YACE,MAAM,EAAE,MAAM,EACL,aAAa,EAAE,MAAM,EAM/B;CACF;AAED,wBAAsB,QAAQ,CAC5B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,EACE,OAAmB,EACnB,KAAK,EAAE,OAAe,EACtB,UAAmB,GACpB,GAAE;IACD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB,UAAU,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;CACxB,GACL,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA4DlC"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/channels/slack/api.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAI5C,eAAO,MAAM,SAAS,0BAA0B,CAAC;AAEjD,2EAA2E;AAC3E,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CAErD;AAED,mEAAmE;AACnE,qBAAa,aAAc,SAAQ,YAAY;IAG3C,QAAQ,CAAC,aAAa,EAAE,MAAM;IAFhC,YACE,MAAM,EAAE,MAAM,EACL,aAAa,EAAE,MAAM,EAM/B;CACF;AAED,wBAAsB,QAAQ,CAC5B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,EACE,OAAmB,EACnB,KAAK,EAAE,OAAe,EACtB,UAAmB,GACpB,GAAE;IACD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB,UAAU,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;CACxB,GACL,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA4DlC"}
@@ -1,6 +1,12 @@
1
1
  import { fetchWithTimeout, PROVIDER_HTTP_TIMEOUT_MS, } from "../../runtime/http.js";
2
2
  import { ChannelError } from "../errors.js";
3
+ import { connections } from "../../connections.js";
4
+ import { SLACK_BOT_TOKEN_SLUG } from "./connections.js";
3
5
  export const SLACK_API = "https://slack.com/api";
6
+ /** The Slack app's bot token, an agent connection `mda deploy` sets up. */
7
+ export async function slackBotToken() {
8
+ return await connections.get(SLACK_BOT_TOKEN_SLUG, { type: "agent" });
9
+ }
4
10
  /** A Slack error code, separate from HTTP and network failures. */
5
11
  export class SlackApiError extends ChannelError {
6
12
  providerError;
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/channels/slack/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/channels/slack/api.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Reserved agent connection for the Slack channel's app: reading it returns
3
+ * the app's bot token, to call Slack's Web API as the app.
4
+ */
5
+ export declare const SLACK_BOT_TOKEN_SLUG = "mda/slack-bot-token";
6
+ //# sourceMappingURL=connections.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connections.d.ts","sourceRoot":"","sources":["../../../src/channels/slack/connections.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,oBAAoB,wBAAwB,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Reserved agent connection for the Slack channel's app: reading it returns
3
+ * the app's bot token, to call Slack's Web API as the app.
4
+ */
5
+ export const SLACK_BOT_TOKEN_SLUG = "mda/slack-bot-token";
6
+ //# sourceMappingURL=connections.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connections.js","sourceRoot":"","sources":["../../../src/channels/slack/connections.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,qBAAqB,CAAC"}