managed-deepagents 0.9.6-dev.15 → 0.9.6-dev.17

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 (343) hide show
  1. package/README.md +57 -953
  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 +12 -36
  5. package/dist/agent-auth.js.map +1 -1
  6. package/dist/channels/assistant-text.d.ts +0 -24
  7. package/dist/channels/assistant-text.d.ts.map +1 -1
  8. package/dist/channels/assistant-text.js +1 -65
  9. package/dist/channels/assistant-text.js.map +1 -1
  10. package/dist/channels/binding.d.ts +1 -20
  11. package/dist/channels/binding.d.ts.map +1 -1
  12. package/dist/channels/binding.js +10 -39
  13. package/dist/channels/binding.js.map +1 -1
  14. package/dist/channels/http/http.d.ts.map +1 -1
  15. package/dist/channels/http/http.js +65 -386
  16. package/dist/channels/http/http.js.map +1 -1
  17. package/dist/channels/http/index.d.ts +1 -2
  18. package/dist/channels/http/index.d.ts.map +1 -1
  19. package/dist/channels/http/index.js +10 -14
  20. package/dist/channels/http/index.js.map +1 -1
  21. package/dist/channels/http/ingress.d.ts +5 -65
  22. package/dist/channels/http/ingress.d.ts.map +1 -1
  23. package/dist/channels/http/ingress.js +33 -149
  24. package/dist/channels/http/ingress.js.map +1 -1
  25. package/dist/channels/http/types.d.ts +2 -143
  26. package/dist/channels/http/types.d.ts.map +1 -1
  27. package/dist/channels/message-schema.d.ts +0 -2
  28. package/dist/channels/message-schema.d.ts.map +1 -1
  29. package/dist/channels/message-schema.js +0 -4
  30. package/dist/channels/message-schema.js.map +1 -1
  31. package/dist/channels/messaging-registry.d.ts +0 -16
  32. package/dist/channels/messaging-registry.d.ts.map +1 -1
  33. package/dist/channels/messaging-registry.js +0 -29
  34. package/dist/channels/messaging-registry.js.map +1 -1
  35. package/dist/channels/runtime.d.ts +1 -1
  36. package/dist/channels/runtime.d.ts.map +1 -1
  37. package/dist/channels/runtime.js +1 -1
  38. package/dist/channels/runtime.js.map +1 -1
  39. package/dist/channels/schedule-delivery.d.ts +1 -1
  40. package/dist/channels/schedule-delivery.d.ts.map +1 -1
  41. package/dist/channels/schedule-delivery.js +23 -12
  42. package/dist/channels/schedule-delivery.js.map +1 -1
  43. package/dist/channels/slack/api.d.ts +0 -2
  44. package/dist/channels/slack/api.d.ts.map +1 -1
  45. package/dist/channels/slack/api.js +0 -6
  46. package/dist/channels/slack/api.js.map +1 -1
  47. package/dist/channels/slack/files.d.ts.map +1 -1
  48. package/dist/channels/slack/files.js +3 -2
  49. package/dist/channels/slack/files.js.map +1 -1
  50. package/dist/channels/slack/index.d.ts +2 -76
  51. package/dist/channels/slack/index.d.ts.map +1 -1
  52. package/dist/channels/slack/index.js +6 -177
  53. package/dist/channels/slack/index.js.map +1 -1
  54. package/dist/channels/slack/message-content.d.ts.map +1 -1
  55. package/dist/channels/slack/message-content.js +28 -23
  56. package/dist/channels/slack/message-content.js.map +1 -1
  57. package/dist/channels/source-providers.js +1 -1
  58. package/dist/channels/source-providers.js.map +1 -1
  59. package/dist/channels/trigger/client.d.ts.map +1 -1
  60. package/dist/channels/trigger/client.js +12 -6
  61. package/dist/channels/trigger/client.js.map +1 -1
  62. package/dist/channels/trigger/http.d.ts +3 -114
  63. package/dist/channels/trigger/http.d.ts.map +1 -1
  64. package/dist/channels/trigger/http.js +82 -314
  65. package/dist/channels/trigger/http.js.map +1 -1
  66. package/dist/channels/trigger/identity-context.d.ts +1 -1
  67. package/dist/channels/trigger/identity-context.d.ts.map +1 -1
  68. package/dist/channels/trigger/identity-context.js +3 -5
  69. package/dist/channels/trigger/identity-context.js.map +1 -1
  70. package/dist/channels/trigger/ingress.d.ts +1 -38
  71. package/dist/channels/trigger/ingress.d.ts.map +1 -1
  72. package/dist/channels/trigger/ingress.js +24 -49
  73. package/dist/channels/trigger/ingress.js.map +1 -1
  74. package/dist/channels/trigger/types.d.ts +3 -82
  75. package/dist/channels/trigger/types.d.ts.map +1 -1
  76. package/dist/channels/trigger/types.js +0 -36
  77. package/dist/channels/trigger/types.js.map +1 -1
  78. package/dist/channels/types.d.ts +3 -19
  79. package/dist/channels/types.d.ts.map +1 -1
  80. package/dist/channels/types.js +0 -2
  81. package/dist/channels/types.js.map +1 -1
  82. package/dist/concurrency/batch-processor.d.ts +51 -0
  83. package/dist/concurrency/batch-processor.d.ts.map +1 -0
  84. package/dist/concurrency/batch-processor.js +99 -0
  85. package/dist/concurrency/batch-processor.js.map +1 -0
  86. package/dist/connections.d.ts +1 -42
  87. package/dist/connections.d.ts.map +1 -1
  88. package/dist/connections.js +14 -127
  89. package/dist/connections.js.map +1 -1
  90. package/dist/credential-gate.d.ts +0 -2
  91. package/dist/credential-gate.d.ts.map +1 -1
  92. package/dist/credential-gate.js +3 -37
  93. package/dist/credential-gate.js.map +1 -1
  94. package/dist/define-deep-agent.d.ts.map +1 -1
  95. package/dist/define-deep-agent.js +0 -6
  96. package/dist/define-deep-agent.js.map +1 -1
  97. package/dist/identity/loopback.d.ts +7 -2
  98. package/dist/identity/loopback.d.ts.map +1 -1
  99. package/dist/identity/loopback.js +15 -4
  100. package/dist/identity/loopback.js.map +1 -1
  101. package/dist/identity/slack/links.js +3 -2
  102. package/dist/identity/slack/links.js.map +1 -1
  103. package/dist/index.d.ts +4 -15
  104. package/dist/index.d.ts.map +1 -1
  105. package/dist/index.js +1 -2
  106. package/dist/index.js.map +1 -1
  107. package/dist/ingress/index.d.ts +8 -0
  108. package/dist/ingress/index.d.ts.map +1 -1
  109. package/dist/ingress/index.js +32 -2
  110. package/dist/ingress/index.js.map +1 -1
  111. package/dist/ingress/loopback.js +4 -3
  112. package/dist/ingress/loopback.js.map +1 -1
  113. package/dist/ingress/runs.d.ts +1 -74
  114. package/dist/ingress/runs.d.ts.map +1 -1
  115. package/dist/ingress/runs.js +16 -176
  116. package/dist/ingress/runs.js.map +1 -1
  117. package/dist/managed-composition.d.ts.map +1 -1
  118. package/dist/managed-composition.js +13 -8
  119. package/dist/managed-composition.js.map +1 -1
  120. package/dist/memory/instructions-middleware.d.ts.map +1 -1
  121. package/dist/memory/instructions-middleware.js +6 -5
  122. package/dist/memory/instructions-middleware.js.map +1 -1
  123. package/dist/namespaces.d.ts +21 -21
  124. package/dist/namespaces.d.ts.map +1 -1
  125. package/dist/namespaces.js +29 -4
  126. package/dist/namespaces.js.map +1 -1
  127. package/dist/resilience/retry.d.ts +21 -0
  128. package/dist/resilience/retry.d.ts.map +1 -0
  129. package/dist/resilience/retry.js +40 -0
  130. package/dist/resilience/retry.js.map +1 -0
  131. package/dist/runtime/auth.d.ts.map +1 -1
  132. package/dist/runtime/auth.js +21 -151
  133. package/dist/runtime/auth.js.map +1 -1
  134. package/dist/runtime/channel.d.ts +0 -6
  135. package/dist/runtime/channel.d.ts.map +1 -1
  136. package/dist/runtime/channel.js.map +1 -1
  137. package/dist/runtime/graph-build-timing.d.ts +30 -0
  138. package/dist/runtime/graph-build-timing.d.ts.map +1 -0
  139. package/dist/runtime/graph-build-timing.js +50 -0
  140. package/dist/runtime/graph-build-timing.js.map +1 -0
  141. package/dist/runtime/http.d.ts +15 -0
  142. package/dist/runtime/http.d.ts.map +1 -1
  143. package/dist/runtime/http.js +37 -0
  144. package/dist/runtime/http.js.map +1 -1
  145. package/dist/runtime/identity-http.d.ts +0 -2
  146. package/dist/runtime/identity-http.d.ts.map +1 -1
  147. package/dist/runtime/identity-http.js +16 -40
  148. package/dist/runtime/identity-http.js.map +1 -1
  149. package/dist/runtime/identity-runtime.d.ts +0 -10
  150. package/dist/runtime/identity-runtime.d.ts.map +1 -1
  151. package/dist/runtime/identity-runtime.js +0 -22
  152. package/dist/runtime/identity-runtime.js.map +1 -1
  153. package/dist/runtime/index.d.ts.map +1 -1
  154. package/dist/runtime/index.js +47 -46
  155. package/dist/runtime/index.js.map +1 -1
  156. package/dist/runtime/langsmith-env.d.ts +19 -0
  157. package/dist/runtime/langsmith-env.d.ts.map +1 -0
  158. package/dist/runtime/langsmith-env.js +38 -0
  159. package/dist/runtime/langsmith-env.js.map +1 -0
  160. package/dist/runtime/log.d.ts +8 -14
  161. package/dist/runtime/log.d.ts.map +1 -1
  162. package/dist/runtime/log.js +16 -7
  163. package/dist/runtime/log.js.map +1 -1
  164. package/dist/runtime/managed-middleware.d.ts.map +1 -1
  165. package/dist/runtime/managed-middleware.js +1 -14
  166. package/dist/runtime/managed-middleware.js.map +1 -1
  167. package/dist/runtime/managed-tools.d.ts +10 -10
  168. package/dist/runtime/managed-tools.d.ts.map +1 -1
  169. package/dist/runtime/managed-tools.js +24 -24
  170. package/dist/runtime/managed-tools.js.map +1 -1
  171. package/dist/runtime/memory/mounts.d.ts +82 -11
  172. package/dist/runtime/memory/mounts.d.ts.map +1 -1
  173. package/dist/runtime/memory/mounts.js +173 -34
  174. package/dist/runtime/memory/mounts.js.map +1 -1
  175. package/dist/runtime/memory/policy.d.ts.map +1 -1
  176. package/dist/runtime/memory/policy.js +3 -1
  177. package/dist/runtime/memory/policy.js.map +1 -1
  178. package/dist/runtime/run-input.d.ts +0 -10
  179. package/dist/runtime/run-input.d.ts.map +1 -1
  180. package/dist/runtime/run-input.js +19 -47
  181. package/dist/runtime/run-input.js.map +1 -1
  182. package/dist/runtime/sandbox-manager.d.ts +1 -1
  183. package/dist/runtime/sandbox-manager.d.ts.map +1 -1
  184. package/dist/runtime/sandbox-manager.js +10 -15
  185. package/dist/runtime/sandbox-manager.js.map +1 -1
  186. package/dist/runtime/schedule-auth.d.ts +0 -17
  187. package/dist/runtime/schedule-auth.d.ts.map +1 -1
  188. package/dist/runtime/schedule-auth.js +3 -40
  189. package/dist/runtime/schedule-auth.js.map +1 -1
  190. package/dist/runtime/selected-skills-backend.d.ts +3 -3
  191. package/dist/runtime/selected-skills-backend.d.ts.map +1 -1
  192. package/dist/runtime/selected-skills-backend.js +5 -5
  193. package/dist/runtime/selected-skills-backend.js.map +1 -1
  194. package/dist/runtime/types.d.ts +1 -5
  195. package/dist/runtime/types.d.ts.map +1 -1
  196. package/dist/runtime-schedules.d.ts +0 -13
  197. package/dist/runtime-schedules.d.ts.map +1 -1
  198. package/dist/runtime-schedules.js +22 -86
  199. package/dist/runtime-schedules.js.map +1 -1
  200. package/dist/sandbox.d.ts +6 -0
  201. package/dist/sandbox.d.ts.map +1 -1
  202. package/dist/sandbox.js +7 -3
  203. package/dist/sandbox.js.map +1 -1
  204. package/dist/schedule-channel.d.ts +2 -5
  205. package/dist/schedule-channel.d.ts.map +1 -1
  206. package/dist/schedule-channel.js +12 -13
  207. package/dist/schedule-channel.js.map +1 -1
  208. package/dist/telemetry/lifecycle.d.ts +26 -0
  209. package/dist/telemetry/lifecycle.d.ts.map +1 -0
  210. package/dist/telemetry/lifecycle.js +49 -0
  211. package/dist/telemetry/lifecycle.js.map +1 -0
  212. package/dist/telemetry/metadata.d.ts.map +1 -1
  213. package/dist/telemetry/metadata.js +4 -4
  214. package/dist/telemetry/metadata.js.map +1 -1
  215. package/dist/telemetry/otel/context.d.ts +57 -0
  216. package/dist/telemetry/otel/context.d.ts.map +1 -0
  217. package/dist/telemetry/otel/context.js +122 -0
  218. package/dist/telemetry/otel/context.js.map +1 -0
  219. package/dist/telemetry/otel/exporter.d.ts +53 -0
  220. package/dist/telemetry/otel/exporter.d.ts.map +1 -0
  221. package/dist/telemetry/otel/exporter.js +190 -0
  222. package/dist/telemetry/otel/exporter.js.map +1 -0
  223. package/dist/telemetry/otel/index.d.ts +6 -0
  224. package/dist/telemetry/otel/index.d.ts.map +1 -0
  225. package/dist/telemetry/otel/index.js +3 -0
  226. package/dist/telemetry/otel/index.js.map +1 -0
  227. package/dist/telemetry/otel/otlp.d.ts +44 -0
  228. package/dist/telemetry/otel/otlp.d.ts.map +1 -0
  229. package/dist/telemetry/otel/otlp.js +7 -0
  230. package/dist/telemetry/otel/otlp.js.map +1 -0
  231. package/dist/telemetry/otel/truncate.d.ts +10 -0
  232. package/dist/telemetry/otel/truncate.d.ts.map +1 -0
  233. package/dist/telemetry/otel/truncate.js +39 -0
  234. package/dist/telemetry/otel/truncate.js.map +1 -0
  235. package/dist/telemetry/run-listener.d.ts +1 -1
  236. package/dist/telemetry/run-listener.d.ts.map +1 -1
  237. package/dist/telemetry/run-listener.js +32 -2
  238. package/dist/telemetry/run-listener.js.map +1 -1
  239. package/dist/telemetry/transport/posthog.d.ts +13 -1
  240. package/dist/telemetry/transport/posthog.d.ts.map +1 -1
  241. package/dist/telemetry/transport/posthog.js +68 -30
  242. package/dist/telemetry/transport/posthog.js.map +1 -1
  243. package/package.json +11 -11
  244. package/dist/channels/actor.d.ts +0 -43
  245. package/dist/channels/actor.d.ts.map +0 -1
  246. package/dist/channels/actor.js +0 -2
  247. package/dist/channels/actor.js.map +0 -1
  248. package/dist/channels/delivery.d.ts +0 -21
  249. package/dist/channels/delivery.d.ts.map +0 -1
  250. package/dist/channels/delivery.js +0 -196
  251. package/dist/channels/delivery.js.map +0 -1
  252. package/dist/channels/github/connections.d.ts +0 -11
  253. package/dist/channels/github/connections.d.ts.map +0 -1
  254. package/dist/channels/github/connections.js +0 -14
  255. package/dist/channels/github/connections.js.map +0 -1
  256. package/dist/channels/github/index.d.ts +0 -8
  257. package/dist/channels/github/index.d.ts.map +0 -1
  258. package/dist/channels/github/index.js +0 -274
  259. package/dist/channels/github/index.js.map +0 -1
  260. package/dist/channels/github/mentions.d.ts +0 -12
  261. package/dist/channels/github/mentions.d.ts.map +0 -1
  262. package/dist/channels/github/mentions.js +0 -185
  263. package/dist/channels/github/mentions.js.map +0 -1
  264. package/dist/channels/github/schema.d.ts +0 -4165
  265. package/dist/channels/github/schema.d.ts.map +0 -1
  266. package/dist/channels/github/schema.js +0 -221
  267. package/dist/channels/github/schema.js.map +0 -1
  268. package/dist/channels/github/types.d.ts +0 -163
  269. package/dist/channels/github/types.d.ts.map +0 -1
  270. package/dist/channels/github/types.js +0 -2
  271. package/dist/channels/github/types.js.map +0 -1
  272. package/dist/channels/http/endpoint.d.ts +0 -95
  273. package/dist/channels/http/endpoint.d.ts.map +0 -1
  274. package/dist/channels/http/endpoint.js +0 -276
  275. package/dist/channels/http/endpoint.js.map +0 -1
  276. package/dist/channels/http/provider.d.ts +0 -119
  277. package/dist/channels/http/provider.d.ts.map +0 -1
  278. package/dist/channels/http/provider.js +0 -227
  279. package/dist/channels/http/provider.js.map +0 -1
  280. package/dist/channels/http/studio.d.ts +0 -24
  281. package/dist/channels/http/studio.d.ts.map +0 -1
  282. package/dist/channels/http/studio.js +0 -95
  283. package/dist/channels/http/studio.js.map +0 -1
  284. package/dist/channels/http/threads.d.ts +0 -7
  285. package/dist/channels/http/threads.d.ts.map +0 -1
  286. package/dist/channels/http/threads.js +0 -10
  287. package/dist/channels/http/threads.js.map +0 -1
  288. package/dist/channels/linear/connections.d.ts +0 -11
  289. package/dist/channels/linear/connections.d.ts.map +0 -1
  290. package/dist/channels/linear/connections.js +0 -14
  291. package/dist/channels/linear/connections.js.map +0 -1
  292. package/dist/channels/linear/graphql.d.ts +0 -57
  293. package/dist/channels/linear/graphql.d.ts.map +0 -1
  294. package/dist/channels/linear/graphql.js +0 -167
  295. package/dist/channels/linear/graphql.js.map +0 -1
  296. package/dist/channels/linear/index.d.ts +0 -9
  297. package/dist/channels/linear/index.d.ts.map +0 -1
  298. package/dist/channels/linear/index.js +0 -489
  299. package/dist/channels/linear/index.js.map +0 -1
  300. package/dist/channels/linear/schema.d.ts +0 -1050
  301. package/dist/channels/linear/schema.d.ts.map +0 -1
  302. package/dist/channels/linear/schema.js +0 -255
  303. package/dist/channels/linear/schema.js.map +0 -1
  304. package/dist/channels/linear/types.d.ts +0 -162
  305. package/dist/channels/linear/types.d.ts.map +0 -1
  306. package/dist/channels/linear/types.js +0 -2
  307. package/dist/channels/linear/types.js.map +0 -1
  308. package/dist/channels/reserved-connections.d.ts +0 -12
  309. package/dist/channels/reserved-connections.d.ts.map +0 -1
  310. package/dist/channels/reserved-connections.js +0 -55
  311. package/dist/channels/reserved-connections.js.map +0 -1
  312. package/dist/channels/run-input.d.ts +0 -71
  313. package/dist/channels/run-input.d.ts.map +0 -1
  314. package/dist/channels/run-input.js +0 -155
  315. package/dist/channels/run-input.js.map +0 -1
  316. package/dist/channels/slack/connections.d.ts +0 -6
  317. package/dist/channels/slack/connections.d.ts.map +0 -1
  318. package/dist/channels/slack/connections.js +0 -6
  319. package/dist/channels/slack/connections.js.map +0 -1
  320. package/dist/channels/slack/events.d.ts +0 -272
  321. package/dist/channels/slack/events.d.ts.map +0 -1
  322. package/dist/channels/slack/events.js +0 -235
  323. package/dist/channels/slack/events.js.map +0 -1
  324. package/dist/channels/slack/status.d.ts +0 -76
  325. package/dist/channels/slack/status.d.ts.map +0 -1
  326. package/dist/channels/slack/status.js +0 -427
  327. package/dist/channels/slack/status.js.map +0 -1
  328. package/dist/runtime/channel-icon.d.ts +0 -22
  329. package/dist/runtime/channel-icon.d.ts.map +0 -1
  330. package/dist/runtime/channel-icon.js +0 -70
  331. package/dist/runtime/channel-icon.js.map +0 -1
  332. package/dist/runtime/managed-thread.d.ts +0 -60
  333. package/dist/runtime/managed-thread.d.ts.map +0 -1
  334. package/dist/runtime/managed-thread.js +0 -76
  335. package/dist/runtime/managed-thread.js.map +0 -1
  336. package/dist/runtime/thread-record.d.ts +0 -81
  337. package/dist/runtime/thread-record.d.ts.map +0 -1
  338. package/dist/runtime/thread-record.js +0 -205
  339. package/dist/runtime/thread-record.js.map +0 -1
  340. package/dist/values.d.ts +0 -15
  341. package/dist/values.d.ts.map +0 -1
  342. package/dist/values.js +0 -31
  343. package/dist/values.js.map +0 -1
@@ -1,43 +1,10 @@
1
1
  import { channelContextSchema } from "../../run-context.js";
2
2
  import { immutableCopy, validateMessage } from "../runtime.js";
3
3
  import { isJsonValue } from "../message-schema.js";
4
- import { normalizeRunInput } from "../run-input.js";
5
- import { cancelHttpIngressRuns, httpIngressThreadWaitsOn, startHttpIngressAgent, observeHttpIngressAgent, waitForHttpIngressThread, } from "./ingress.js";
6
- import { ChannelError } from "../errors.js";
4
+ import { startHttpIngressAgent, observeHttpIngressAgent } from "./ingress.js";
7
5
  import { scheduleIngressWork } from "../../ingress/index.js";
8
6
  import { logger } from "../../runtime/log.js";
9
- import { requireNonblank } from "../../values.js";
10
7
  const ASSISTANT_ID_ENV = "MDA_ASSISTANT_ID";
11
- /**
12
- * Messages in this process that may still wait for their thread, by thread.
13
- * A message waiting for its busy thread (the default `enqueue` strategy) is
14
- * no server-side run yet, so the server's cancel can't reach it: a cancel
15
- * marks the thread's waiters, and they drop themselves. A message joins
16
- * before its first start and leaves once its fate is settled, so only
17
- * threads with messages in flight are kept. Messages waiting in another
18
- * replica aren't reached.
19
- *
20
- * This is not durable: a waiting message lives only in this process, so a
21
- * restart loses it after the provider was already told it arrived. It waits
22
- * here rather than queueing on the server because a queued run starts as soon
23
- * as the run before it stops on `interrupt()`, and its new input discards the
24
- * decision the thread waits on. A server-side queue that holds messages while
25
- * a thread waits on an interrupt would replace this; see
26
- * https://github.com/langchain-ai/langgraph/issues/8838.
27
- */
28
- const threadWaiters = new Map();
29
- function joinThreadWaiters(threadId) {
30
- const waiter = { cancelled: false };
31
- const waiters = threadWaiters.get(threadId) ?? new Set();
32
- threadWaiters.set(threadId, waiters.add(waiter));
33
- return waiter;
34
- }
35
- function leaveThreadWaiters(threadId, waiter) {
36
- const waiters = threadWaiters.get(threadId);
37
- waiters?.delete(waiter);
38
- if (waiters?.size === 0)
39
- threadWaiters.delete(threadId);
40
- }
41
8
  export async function handleHttpRequest(ctx, adapter) {
42
9
  const rawBody = requestBytes(ctx);
43
10
  function adapterRequest() {
@@ -51,7 +18,7 @@ export async function handleHttpRequest(ctx, adapter) {
51
18
  verified = await adapter.verify(adapterRequest());
52
19
  }
53
20
  catch (error) {
54
- logger.error(`channel verification failed (${logger.safeErrorLabel(error)})`);
21
+ logger.error(`channel verification failed (${logger.safeErrorLabel(error)})`, error);
55
22
  return jsonError(500, "channel verification failed");
56
23
  }
57
24
  if (!verified) {
@@ -71,43 +38,18 @@ export async function handleHttpRequest(ctx, adapter) {
71
38
  if (result.type === "ignore") {
72
39
  return (result.response ?? Response.json({ status: "ignored" }, { status: 202 }));
73
40
  }
74
- const assistantId = process.env[ASSISTANT_ID_ENV]?.trim();
75
- if (!assistantId) {
76
- return jsonError(500, "channel runtime is not configured");
77
- }
78
- if (result.type === "cancel") {
79
- let stop;
80
- try {
81
- validateCancelMessage(result.message);
82
- stop = immutableCopy(result.message);
83
- }
84
- catch {
85
- return jsonError(400, "invalid channel message");
86
- }
87
- const threadId = stop.threadId.toLowerCase();
88
- return cancelThreadRuns(ctx, adapter, {
89
- userId: stop.userId,
90
- sourceThreadKey: `http:v1:${JSON.stringify([ctx.name, threadId])}`,
91
- threadId,
92
- target: stop.target,
93
- delivery: {
94
- threadId,
95
- assistantId,
96
- ...(result.rawEvent !== undefined && {
97
- rawEvent: structuredClone(result.rawEvent),
98
- }),
99
- },
100
- ...(result.response !== undefined && { response: result.response }),
101
- });
102
- }
103
41
  let message = result.message;
104
42
  try {
105
- validateInboundMessage(message, adapter.input !== undefined);
43
+ validateInboundMessage(message);
106
44
  message = immutableCopy(message);
107
45
  }
108
46
  catch {
109
47
  return jsonError(400, "invalid channel message");
110
48
  }
49
+ const assistantId = process.env[ASSISTANT_ID_ENV]?.trim();
50
+ if (!assistantId) {
51
+ return jsonError(500, "channel runtime is not configured");
52
+ }
111
53
  const deliveryId = crypto.randomUUID();
112
54
  const threadId = message.threadId.toLowerCase();
113
55
  const sourceThreadKey = `http:v1:${JSON.stringify([ctx.name, threadId])}`;
@@ -117,14 +59,12 @@ export async function handleHttpRequest(ctx, adapter) {
117
59
  sourceThreadKey,
118
60
  event: {
119
61
  type: "message",
120
- messages: message.content === undefined
121
- ? []
122
- : [
123
- {
124
- role: "human",
125
- content: message.content,
126
- },
127
- ],
62
+ messages: [
63
+ {
64
+ role: "human",
65
+ content: message.content,
66
+ },
67
+ ],
128
68
  },
129
69
  ...(result.rawEvent === undefined ? {} : { rawEvent: result.rawEvent }),
130
70
  target: message.target,
@@ -137,243 +77,59 @@ export async function handleHttpRequest(ctx, adapter) {
137
77
  sourceThreadKey,
138
78
  sourceProvider: ctx.channel.kind,
139
79
  binding,
80
+ input: message.content,
140
81
  assistantId,
141
82
  };
142
- const rawEvent = result.rawEvent;
143
- const delivery = (assistantId) => ({
144
- threadId,
145
- ...(assistantId !== undefined && { assistantId }),
146
- ...(result.rawEvent !== undefined && {
147
- rawEvent: structuredClone(result.rawEvent),
148
- }),
149
- });
150
- // Joined before the first start, so a cancel during it reaches the message.
151
- const waiter = joinThreadWaiters(threadId);
152
- /** Set when a cancel dropped the message while its input was decided. */
153
- let dropped = false;
154
- const inputHook = adapter.input?.bind(adapter);
155
- async function prepare() {
156
- let prepared;
157
- try {
158
- prepared = normalizeRunInput(await inputHook?.(immutableCopy(message), rawEvent === undefined ? undefined : structuredClone(rawEvent)));
159
- }
160
- catch (error) {
161
- logger.error(`channel input failed (${logger.safeErrorLabel(error)})`);
162
- return undefined;
163
- }
164
- // A slow input, such as an endpoint's, may outlast a cancel.
165
- if (prepared && waiter.cancelled) {
166
- logger.info(`channel run dropped: its thread was cancelled while its input was decided ${JSON.stringify({ threadId })}`);
167
- dropped = true;
168
- return undefined;
169
- }
170
- return prepared;
83
+ let started;
84
+ try {
85
+ started = await startHttpIngressAgent(input);
171
86
  }
172
- const startInput = {
173
- ...input,
174
- ...(message.deliveryKey !== undefined && {
175
- deliveryKey: message.deliveryKey,
176
- }),
177
- ...(message.content !== undefined
178
- ? { input: message.content }
179
- : { prepare }),
180
- ...(adapter.multitaskStrategy && {
181
- multitaskStrategy: adapter.multitaskStrategy,
182
- }),
183
- };
184
- // Every message gets one `onReceived` and, once it is done, `onFinish`.
185
- const onReceived = adapter.onReceived?.bind(adapter);
186
- const received = new Promise((resolve) => {
187
- if (!onReceived)
188
- return resolve();
189
- scheduleIngressWork(async () => {
190
- try {
191
- await onReceived(immutableCopy(message.target), delivery(assistantId));
192
- }
193
- catch (error) {
194
- logger.error(`channel received notice failed (${logger.safeErrorLabel(error)})`);
195
- }
196
- finally {
197
- resolve();
198
- }
199
- }, { label: `channel "${ctx.name}" received notice` });
200
- });
201
- const onFinish = adapter.onFinish?.bind(adapter);
202
- /** Tell the adapter the message is done; the thread's assistant lets a notice link to it. */
203
- async function finish(done, threadAssistantId) {
204
- if (!onFinish)
205
- return;
206
- await received;
207
- try {
208
- await onFinish(immutableCopy(message.target), immutableCopy({
209
- ...delivery(threadAssistantId ?? assistantId),
210
- ...done,
211
- }));
212
- }
213
- catch (error) {
214
- logger.error(`channel finish notice failed (${logger.safeErrorLabel(error)})`);
215
- }
87
+ catch (error) {
88
+ logger.error(`channel run could not be started (${logger.safeErrorLabel(error)})`, error);
89
+ return jsonError(500, "channel run could not be started");
216
90
  }
217
- const label = `channel "${ctx.name}" delivery`;
218
91
  const post = adapter.post?.bind(adapter);
219
92
  const onError = adapter.onError?.bind(adapter);
220
- async function notifyFailed(error) {
93
+ scheduleIngressWork(async () => {
94
+ let replyAttempted = false;
221
95
  try {
222
- if (onError) {
223
- await onError(error, immutableCopy(message.target));
96
+ const invocation = await observeHttpIngressAgent({
97
+ ...input,
98
+ ...started,
99
+ });
100
+ if (!post || invocation.replyContent === null) {
101
+ return;
224
102
  }
225
- else if (post) {
226
- await post(immutableCopy({
227
- type: "content",
228
- content: "Something went wrong while processing your request.",
229
- target: message.target,
230
- }));
231
- }
232
- }
233
- catch (replyError) {
234
- const action = onError ? "callback" : "reply";
235
- logger.error(`channel error ${action} failed (${logger.safeErrorLabel(replyError)})`);
236
- }
237
- }
238
- // The run posts its own answer (see `./reply.ts`): this reports how it
239
- // ended, which the run can't say itself.
240
- async function deliver(started) {
241
- const { runId } = started;
242
- logger.info(`channel run started ${JSON.stringify({ threadId, runId: logger.logIdentifier(runId) })}`);
243
- let outcome;
244
- try {
245
- outcome = await observeHttpIngressAgent({ ...input, ...started });
103
+ const reply = {
104
+ type: "content",
105
+ content: invocation.replyContent,
106
+ };
107
+ validateMessage(reply);
108
+ replyAttempted = true;
109
+ await post(immutableCopy({ ...reply, target: message.target }));
246
110
  }
247
111
  catch (error) {
248
- logger.error(`channel run could not be observed (${logger.safeErrorLabel(error)})`);
249
- }
250
- // The run may have answered already, or may still, so no error is
251
- // reported; how it ended is unknown.
252
- if (!outcome)
253
- return finish({ type: "failed", reason: "observe", interrupts: [] });
254
- if (outcome.status === "error" || outcome.status === "timeout") {
255
- logger.error(`channel run failed ${JSON.stringify({ threadId })}`);
256
- await notifyFailed(new ChannelError("channel_run_failed", "channel run failed"));
257
- }
258
- return finish({
259
- type: "run",
260
- run: { id: runId, status: outcome.status },
261
- interrupts: outcome.interrupts,
262
- }, outcome.assistantId);
263
- }
264
- // The thread's current run may still stop for a decision, so the message
265
- // waits for that run instead of queueing behind it, then checks again.
266
- // A cancel while the message waits drops it.
267
- async function startWhenIdle() {
268
- let next = { skipped: "busy" };
269
- try {
270
- while ("skipped" in next && next.skipped === "busy") {
271
- await waitForHttpIngressThread(input);
272
- if (waiter.cancelled) {
273
- logger.info(`channel run dropped: its thread was cancelled while it waited ${JSON.stringify({ threadId })}`);
274
- return await finish({
275
- type: "skipped",
276
- reason: "dropped",
277
- interrupts: [],
278
- });
112
+ logger.error(`channel delivery failed (${logger.safeErrorLabel(error)})`, error);
113
+ try {
114
+ if (onError) {
115
+ await onError(error, immutableCopy(message.target));
116
+ }
117
+ else if (post && !replyAttempted) {
118
+ await post(immutableCopy({
119
+ type: "content",
120
+ content: "Something went wrong while processing your request.",
121
+ target: message.target,
122
+ }));
279
123
  }
280
- next = await startHttpIngressAgent(startInput);
124
+ }
125
+ catch (replyError) {
126
+ const action = onError ? "callback" : "reply";
127
+ logger.error(`channel error ${action} failed (${logger.safeErrorLabel(replyError)})`, replyError);
281
128
  }
282
129
  }
283
- catch (error) {
284
- logger.error(`channel run could not be started (${logger.safeErrorLabel(error)})`);
285
- return await finish({ type: "failed", reason: "start", interrupts: [] });
286
- }
287
- finally {
288
- leaveThreadWaiters(threadId, waiter);
289
- }
290
- if (!("skipped" in next))
291
- return deliver(next);
292
- logger.info(`channel run skipped ${JSON.stringify({ threadId, reason: next.skipped })}`);
293
- await finishSkipped(next);
294
- }
295
- /** A message the thread took no run for is done, with why; one that waits says on what. */
296
- function finishSkipped(skipped) {
297
- switch (skipped.skipped) {
298
- case "paused":
299
- return finish({
300
- type: "skipped",
301
- reason: "waiting",
302
- interrupts: skipped.interrupts,
303
- }, skipped.assistantId);
304
- case "ignored":
305
- return finish({
306
- type: "skipped",
307
- reason: dropped ? "dropped" : "ignored",
308
- interrupts: [],
309
- });
310
- case "busy":
311
- throw new Error("a busy thread's message is not done");
312
- default:
313
- return finish({
314
- type: "skipped",
315
- reason: skipped.skipped,
316
- interrupts: [],
317
- });
318
- }
319
- }
320
- /** Start the message's run; `undefined` when that failed. */
321
- async function startFirst() {
322
- let outcome;
323
- try {
324
- outcome = await startHttpIngressAgent(startInput);
325
- }
326
- catch (error) {
327
- leaveThreadWaiters(threadId, waiter);
328
- logger.error(`channel run could not be started (${logger.safeErrorLabel(error)})`);
329
- // Answered with an error, the provider may redeliver it, as a new
330
- // delivery: only one it already accepted is done for good.
331
- if (onFinish)
332
- scheduleIngressWork(() => finish({
333
- type: "failed",
334
- reason: message.background ? "start" : "retry",
335
- interrupts: [],
336
- }), { label });
337
- return undefined;
338
- }
339
- // Only a message that waits for its busy thread stays.
340
- if (!("skipped" in outcome && outcome.skipped === "busy"))
341
- leaveThreadWaiters(threadId, waiter);
342
- return outcome;
343
- }
344
- /** What follows the first start, in the background. */
345
- function followUp(outcome) {
346
- if (!("skipped" in outcome)) {
347
- scheduleIngressWork(() => deliver(outcome), { label });
348
- return;
349
- }
350
- logger.info(`channel run skipped ${JSON.stringify({ threadId, reason: outcome.skipped })}`);
351
- const skipped = outcome;
352
- if (skipped.skipped === "busy")
353
- scheduleIngressWork(startWhenIdle, { label });
354
- else if (onFinish)
355
- scheduleIngressWork(() => finishSkipped(skipped), { label });
356
- }
357
- const accepted = () => result.response ??
358
- Response.json({ status: "accepted", deliveryId }, { status: 202 });
359
- // Input that may take longer than the provider waits, such as an
360
- // endpoint's, is decided after it has its answer.
361
- if (message.background) {
362
- scheduleIngressWork(async () => {
363
- const outcome = await startFirst();
364
- if (outcome)
365
- followUp(outcome);
366
- }, { label });
367
- return accepted();
368
- }
369
- const outcome = await startFirst();
370
- if (!outcome)
371
- return jsonError(500, "channel run could not be started");
372
- followUp(outcome);
373
- return "skipped" in outcome
374
- ? (result.response ??
375
- Response.json({ status: outcome.skipped }, { status: 202 }))
376
- : accepted();
130
+ }, { label: `channel "${ctx.name}" delivery` });
131
+ return (result.response ??
132
+ Response.json({ status: "accepted", deliveryId }, { status: 202 }));
377
133
  }
378
134
  function requestBytes(ctx) {
379
135
  if (typeof ctx.rawBody === "string") {
@@ -394,106 +150,22 @@ function validParseResult(value) {
394
150
  if (result.rawEvent !== undefined && !isJsonValue(result.rawEvent)) {
395
151
  return false;
396
152
  }
397
- return (result.type === "ignore" ||
398
- result.type === "message" ||
399
- result.type === "cancel");
400
- }
401
- /**
402
- * Cancel the thread's runs for a `cancel` result, then finish it in the
403
- * background. Messages waiting here for the thread are dropped too.
404
- */
405
- async function cancelThreadRuns(ctx, adapter, input) {
406
- // Before the server's cancel, so waiters it wakes see it.
407
- for (const waiter of threadWaiters.get(input.threadId) ?? [])
408
- waiter.cancelled = true;
409
- let cancelled;
410
- try {
411
- cancelled = (await cancelHttpIngressRuns({
412
- userId: input.userId,
413
- sourceThreadKey: input.sourceThreadKey,
414
- sourceProvider: ctx.channel.kind,
415
- threadId: input.threadId,
416
- })).length;
417
- }
418
- catch (error) {
419
- logger.error(`channel run could not be cancelled (${logger.safeErrorLabel(error)})`);
420
- return jsonError(500, "channel run could not be cancelled");
421
- }
422
- logger.info(`channel runs cancelled ${JSON.stringify({ threadId: input.threadId, cancelled })}`);
423
- const onFinish = adapter.onFinish?.bind(adapter);
424
- if (onFinish)
425
- scheduleIngressWork(async () => {
426
- try {
427
- // A thread that waits on a decision still does after the cancel.
428
- let waitsOn = {
429
- interrupts: [],
430
- };
431
- try {
432
- waitsOn = await httpIngressThreadWaitsOn({
433
- userId: input.userId,
434
- sourceThreadKey: input.sourceThreadKey,
435
- sourceProvider: ctx.channel.kind,
436
- threadId: input.threadId,
437
- });
438
- }
439
- catch (error) {
440
- logger.error(`channel thread could not be read (${logger.safeErrorLabel(error)})`);
441
- }
442
- await onFinish(immutableCopy(input.target), immutableCopy({
443
- ...input.delivery,
444
- ...(waitsOn.assistantId !== undefined && {
445
- assistantId: waitsOn.assistantId,
446
- }),
447
- type: "skipped",
448
- reason: "cancel",
449
- interrupts: waitsOn.interrupts,
450
- }));
451
- }
452
- catch (error) {
453
- logger.error(`channel finish notice failed (${logger.safeErrorLabel(error)})`);
454
- }
455
- }, { label: `channel "${ctx.name}" finish notice` });
456
- return (input.response ??
457
- Response.json({ status: "cancelled", cancelled }, { status: 202 }));
153
+ return result.type === "ignore" || result.type === "message";
458
154
  }
459
- const CANCEL_MESSAGE_KEYS = new Set([
460
- "userId",
461
- "threadId",
462
- "target",
463
- ]);
464
- /** A cancel names a thread and who to tell; it starts nothing. */
465
- function validateCancelMessage(message) {
466
- if (!message || typeof message !== "object")
467
- throw new Error("channel cancel must be an object");
468
- for (const key of Object.keys(message))
469
- if (!CANCEL_MESSAGE_KEYS.has(key))
470
- throw new Error("channel cancel takes only userId, threadId and target");
471
- validateAddress(message);
472
- }
473
- function validateInboundMessage(message, adapterInput) {
474
- if (message.deliveryKey !== undefined)
475
- requireNonblank(message.deliveryKey, "channel deliveryKey");
476
- if (message.background !== undefined &&
477
- typeof message.background !== "boolean")
478
- throw new Error("channel background must be a boolean");
479
- validateAddress(message);
480
- // The adapter's `input` supplies what a message without content starts.
481
- if (message.content !== undefined || !adapterInput)
482
- validateMessageContent(message.content);
483
- }
484
- function validateAddress(message) {
485
- requireNonblank(message.userId, "channel userId");
155
+ function validateInboundMessage(message) {
156
+ nonblank(message.userId, "channel userId");
486
157
  if (typeof message.threadId !== "string" ||
487
158
  !/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(message.threadId)) {
488
159
  throw new Error("channel threadId must be a UUID");
489
160
  }
490
161
  if (!isJsonValue(message.target))
491
162
  throw new Error("channel target must be JSON");
163
+ validateMessageContent(message.content);
492
164
  }
493
165
  function validateMessageContent(content) {
494
166
  validateMessage({ type: "content", content });
495
167
  if (typeof content === "string") {
496
- requireNonblank(content, "channel message content");
168
+ nonblank(content, "channel message content");
497
169
  return;
498
170
  }
499
171
  if (!Array.isArray(content) ||
@@ -505,6 +177,13 @@ function validateMessageContent(content) {
505
177
  throw new Error("channel message must contain content blocks");
506
178
  }
507
179
  }
180
+ function nonblank(value, label) {
181
+ const normalized = value.trim();
182
+ if (!normalized) {
183
+ throw new Error(`${label} must be a non-empty string`);
184
+ }
185
+ return normalized;
186
+ }
508
187
  function jsonError(status, message) {
509
188
  return Response.json({ error: message }, { status });
510
189
  }
@@ -1 +1 @@
1
- {"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/channels/http/http.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/channels/http/http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAWnD,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAG7D,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,MAAM,gBAAgB,GAAG,kBAAkB,CAAC;AAE5C,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,GAAyB,EACzB,OAA2B;IAE3B,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IAClC,SAAS,cAAc;QACrB,OAAO;YACL,OAAO,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACpE,OAAO,EAAE,IAAI,UAAU,CAAC,OAAO,CAAC;SACjC,CAAC;IACJ,CAAC;IACD,IAAI,QAAiB,CAAC;IACtB,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;IACpD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CACV,gCAAgC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAC/D,KAAK,CACN,CAAC;QACF,OAAO,SAAS,CAAC,GAAG,EAAE,6BAA6B,CAAC,CAAC;IACvD,CAAC;IACD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,SAAS,CAAC,GAAG,EAAE,2BAA2B,CAAC,CAAC;IACrD,CAAC;IAED,IAAI,MAA8B,CAAC;IACnC,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC;IACjD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,IAAI,CAAC,6BAA6B,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC1E,OAAO,SAAS,CAAC,GAAG,EAAE,yBAAyB,CAAC,CAAC;IACnD,CAAC;IACD,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9B,OAAO,SAAS,CAAC,GAAG,EAAE,8BAA8B,CAAC,CAAC;IACxD,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,CACL,MAAM,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CACzE,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAC7B,IAAI,CAAC;QACH,sBAAsB,CAAC,OAAO,CAAC,CAAC;QAChC,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC,GAAG,EAAE,yBAAyB,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,CAAC;IAC1D,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,SAAS,CAAC,GAAG,EAAE,mCAAmC,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;IACvC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;IAChD,MAAM,eAAe,GAAG,WAAW,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC;IAC1E,MAAM,OAAO,GAAG,oBAAoB,CAAC,KAAK,CAAC;QACzC,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI;QAC1B,eAAe;QACf,KAAK,EAAE;YACL,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,OAAO;oBACb,OAAO,EAAE,OAAO,CAAC,OAAO;iBACM;aACjC;SACF;QACD,GAAG,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;QACvE,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,SAAS,EAAE,QAAQ;QACnB,UAAU;KACX,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG;QACZ,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,QAAQ;QACR,eAAe;QACf,cAAc,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI;QAChC,OAAO;QACP,KAAK,EAAE,OAAO,CAAC,OAAO;QACtB,WAAW;KACZ,CAAC;IACF,IAAI,OAA0B,CAAC;IAC/B,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,qBAAqB,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CACV,qCAAqC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EACpE,KAAK,CACN,CAAC;QACF,OAAO,SAAS,CAAC,GAAG,EAAE,kCAAkC,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/C,mBAAmB,CACjB,KAAK,IAAI,EAAE;QACT,IAAI,cAAc,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,uBAAuB,CAAC;gBAC/C,GAAG,KAAK;gBACR,GAAG,OAAO;aACX,CAAC,CAAC;YACH,IAAI,CAAC,IAAI,IAAI,UAAU,CAAC,YAAY,KAAK,IAAI,EAAE,CAAC;gBAC9C,OAAO;YACT,CAAC;YACD,MAAM,KAAK,GAAG;gBACZ,IAAI,EAAE,SAAkB;gBACxB,OAAO,EAAE,UAAU,CAAC,YAAY;aACjC,CAAC;YACF,eAAe,CAAC,KAAK,CAAC,CAAC;YACvB,cAAc,GAAG,IAAI,CAAC;YACtB,MAAM,IAAI,CAAC,aAAa,CAAC,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAClE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CACV,4BAA4B,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAC3D,KAAK,CACN,CAAC;YACF,IAAI,CAAC;gBACH,IAAI,OAAO,EAAE,CAAC;oBACZ,MAAM,OAAO,CAAC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;gBACtD,CAAC;qBAAM,IAAI,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;oBACnC,MAAM,IAAI,CACR,aAAa,CAAC;wBACZ,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE,qDAAqD;wBAC9D,MAAM,EAAE,OAAO,CAAC,MAAM;qBACvB,CAAC,CACH,CAAC;gBACJ,CAAC;YACH,CAAC;YAAC,OAAO,UAAU,EAAE,CAAC;gBACpB,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC;gBAC9C,MAAM,CAAC,KAAK,CACV,iBAAiB,MAAM,YAAY,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,GAAG,EACvE,UAAU,CACX,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC,EACD,EAAE,KAAK,EAAE,YAAY,GAAG,CAAC,IAAI,YAAY,EAAE,CAC5C,CAAC;IAEF,OAAO,CACL,MAAM,CAAC,QAAQ;QACf,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CACnE,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,GAAyB;IAC7C,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QACpC,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC;IACD,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;QAChB,OAAO,GAAG,CAAC,OAAO,CAAC;IACrB,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;AACzE,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc;IACtC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACtD,MAAM,MAAM,GAAG,KAId,CAAC;IACF,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,YAAY,QAAQ,CAAC,EAAE,CAAC;QAC5E,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC;AAC/D,CAAC;AAED,SAAS,sBAAsB,CAAC,OAAkC;IAChE,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC3C,IACE,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ;QACpC,CAAC,iEAAiE,CAAC,IAAI,CACrE,OAAO,CAAC,QAAQ,CACjB,EACD,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;IACD,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACjD,sBAAsB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,sBAAsB,CAAC,OAAuB;IACrD,eAAe,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;IAC9C,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,QAAQ,CAAC,OAAO,EAAE,yBAAyB,CAAC,CAAC;QAC7C,OAAO;IACT,CAAC;IACD,IACE,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QACvB,OAAO,CAAC,MAAM,KAAK,CAAC;QACpB,OAAO,CAAC,IAAI,CACV,CAAC,KAAK,EAAE,EAAE,CACR,OAAO,KAAK,KAAK,QAAQ;YACzB,KAAK,KAAK,IAAI;YACd,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;YAC9B,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CACrB,EACD,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACjE,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa,EAAE,KAAa;IAC5C,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAChC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,6BAA6B,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,SAAS,CAAC,MAAc,EAAE,OAAe;IAChD,OAAO,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;AACvD,CAAC"}
@@ -1,7 +1,6 @@
1
1
  import type { HttpChannelAdapter } from "./types.js";
2
2
  import { type Channel } from "../../runtime/channel.js";
3
- export type { HttpChannelAdapter, HttpChannelCancelMessage, HttpChannelInboundMessage, HttpChannelParseResult, HttpChannelRequest, HttpChannelPostInput, HttpDelivery, HttpFinish, HttpFinishedDelivery, HttpFinishedRun, HttpPostedMessage, HttpRunStatus, HttpSkipReason, } from "./types.js";
4
- export { channelThreadId } from "./threads.js";
3
+ export type { HttpChannelAdapter, HttpChannelInboundMessage, HttpChannelParseResult, HttpChannelRequest, HttpChannelPostInput, HttpPostedMessage, } from "./types.js";
5
4
  export type HttpChannel = Channel & {
6
5
  readonly kind: string;
7
6
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/channels/http/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAEL,KAAK,OAAO,EAEb,MAAM,0BAA0B,CAAC;AAIlC,YAAY,EACV,kBAAkB,EAClB,wBAAwB,EACxB,yBAAyB,EACzB,sBAAsB,EACtB,kBAAkB,EAClB,oBAAoB,EACpB,YAAY,EACZ,UAAU,EACV,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,cAAc,GACf,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAM9D,wBAAgB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,WAAW,CAyCpE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/channels/http/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAEL,KAAK,OAAO,EAEb,MAAM,0BAA0B,CAAC;AAElC,YAAY,EACV,kBAAkB,EAClB,yBAAyB,EACzB,sBAAsB,EACtB,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAE9D,wBAAgB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,WAAW,CA+BpE"}
@@ -1,21 +1,10 @@
1
1
  import { immutableCopy } from "../runtime.js";
2
2
  import { handleHttpRequest } from "./http.js";
3
- import { MULTITASK_STRATEGIES } from "../../ingress/runs.js";
4
3
  import { CHANNEL_BRAND, } from "../../runtime/channel.js";
5
- import { requireNonblank } from "../../values.js";
6
- import { CHANNEL_REPLIES } from "../types.js";
7
- export { channelThreadId } from "./threads.js";
8
- const STRATEGIES = new Set(Object.values(MULTITASK_STRATEGIES));
9
4
  export function httpChannel(adapter) {
10
- const provider = requireNonblank(adapter.provider, "channels.http provider");
11
- if (adapter.multitaskStrategy !== undefined &&
12
- !STRATEGIES.has(adapter.multitaskStrategy))
13
- throw new TypeError("channel multitaskStrategy must be enqueue, interrupt, rollback or reject");
14
- if (adapter.reply !== undefined && !CHANNEL_REPLIES.includes(adapter.reply))
15
- throw new TypeError("channel reply must be auto or none");
5
+ const provider = nonblank(adapter.provider, "channels.http provider");
16
6
  const channel = { kind: provider };
17
7
  hide(channel, CHANNEL_BRAND, true);
18
- hide(channel, "reply", adapter.reply ?? "auto");
19
8
  hide(channel, "events", (ctx) => handleHttpRequest(ctx, adapter));
20
9
  const post = adapter.post?.bind(adapter);
21
10
  if (post) {
@@ -31,13 +20,20 @@ export function httpChannel(adapter) {
31
20
  name,
32
21
  provider,
33
22
  eventsPath: `/channels/${name}/events`,
34
- autoReply: post !== undefined && adapter.reply !== "none",
23
+ autoReply: post !== undefined,
35
24
  requiredPermissions: [],
36
25
  requiredEnv: [],
37
- providerConfig: immutableCopy(adapter.providerConfig ?? {}),
26
+ providerConfig: {},
38
27
  }));
39
28
  return channel;
40
29
  }
30
+ function nonblank(value, label) {
31
+ const normalized = value.trim();
32
+ if (!normalized) {
33
+ throw new Error(`${label} must be a non-empty string`);
34
+ }
35
+ return normalized;
36
+ }
41
37
  function hide(target, key, value) {
42
38
  Object.defineProperty(target, key, { value, enumerable: false });
43
39
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/channels/http/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAgC,MAAM,eAAe,CAAC;AAE5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D,OAAO,EACL,aAAa,GAGd,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAkB9C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAI/C,MAAM,UAAU,GAAyB,IAAI,GAAG,CAC9C,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,CACpC,CAAC;AAEF,MAAM,UAAU,WAAW,CAAC,OAA2B;IACrD,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,CAAC,QAAQ,EAAE,wBAAwB,CAAC,CAAC;IAC7E,IACE,OAAO,CAAC,iBAAiB,KAAK,SAAS;QACvC,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC;QAE1C,MAAM,IAAI,SAAS,CACjB,0EAA0E,CAC3E,CAAC;IACJ,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;QACzE,MAAM,IAAI,SAAS,CAAC,oCAAoC,CAAC,CAAC;IAC5D,MAAM,OAAO,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAiB,CAAC;IAElD,IAAI,CAAC,OAAO,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;IACnC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC,CAAC;IAChD,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,GAAyB,EAAE,EAAE,CACpD,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,CAChC,CAAC;IACF,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACzC,IAAI,IAAI,EAAE,CAAC;QACT,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,GAA4B,EAAE,CAAC,CAAC;YACzD,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,CACvC,IAAI,CACF,aAAa,CAAC;gBACZ,GAAG,OAAO;gBACV,MAAM;gBACN,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC;aAClD,CAAC,CACH;SACJ,CAAC,CAAC,CAAC;IACN,CAAC;IACD,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,CAAC,IAAY,EAAmB,EAAE,CAAC,CAAC;QAChE,IAAI;QACJ,QAAQ;QACR,UAAU,EAAE,aAAa,IAAI,SAAS;QACtC,SAAS,EAAE,IAAI,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,KAAK,MAAM;QACzD,mBAAmB,EAAE,EAAE;QACvB,WAAW,EAAE,EAAE;QACf,cAAc,EAAE,aAAa,CAAC,OAAO,CAAC,cAAc,IAAI,EAAE,CAAC;KAC5D,CAAC,CAAC,CAAC;IACJ,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,IAAI,CAAC,MAAc,EAAE,GAAoB,EAAE,KAAc;IAChE,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;AACnE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/channels/http/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAgC,MAAM,eAAe,CAAC;AAE5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9C,OAAO,EACL,aAAa,GAGd,MAAM,0BAA0B,CAAC;AAalC,MAAM,UAAU,WAAW,CAAC,OAA2B;IACrD,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,wBAAwB,CAAC,CAAC;IACtE,MAAM,OAAO,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAiB,CAAC;IAElD,IAAI,CAAC,OAAO,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;IACnC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,GAAyB,EAAE,EAAE,CACpD,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,CAChC,CAAC;IACF,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACzC,IAAI,IAAI,EAAE,CAAC;QACT,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,GAA4B,EAAE,CAAC,CAAC;YACzD,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,CACvC,IAAI,CACF,aAAa,CAAC;gBACZ,GAAG,OAAO;gBACV,MAAM;gBACN,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC;aAClD,CAAC,CACH;SACJ,CAAC,CAAC,CAAC;IACN,CAAC;IACD,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,CAAC,IAAY,EAAmB,EAAE,CAAC,CAAC;QAChE,IAAI;QACJ,QAAQ;QACR,UAAU,EAAE,aAAa,IAAI,SAAS;QACtC,SAAS,EAAE,IAAI,KAAK,SAAS;QAC7B,mBAAmB,EAAE,EAAE;QACvB,WAAW,EAAE,EAAE;QACf,cAAc,EAAE,EAAE;KACnB,CAAC,CAAC,CAAC;IACJ,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa,EAAE,KAAa;IAC5C,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAChC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,6BAA6B,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,IAAI,CAAC,MAAc,EAAE,GAAoB,EAAE,KAAc;IAChE,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;AACnE,CAAC"}