managed-deepagents 0.10.0-dev.9 → 0.10.0

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 (397) hide show
  1. package/README.md +864 -143
  2. package/dist/browser.d.ts +37 -0
  3. package/dist/browser.d.ts.map +1 -0
  4. package/dist/browser.js +31 -0
  5. package/dist/browser.js.map +1 -0
  6. package/dist/channels/actor.d.ts +57 -0
  7. package/dist/channels/actor.d.ts.map +1 -0
  8. package/dist/channels/actor.js +24 -0
  9. package/dist/channels/actor.js.map +1 -0
  10. package/dist/channels/assistant-text.d.ts +29 -0
  11. package/dist/channels/assistant-text.d.ts.map +1 -1
  12. package/dist/channels/assistant-text.js +81 -4
  13. package/dist/channels/assistant-text.js.map +1 -1
  14. package/dist/channels/binding.d.ts +20 -1
  15. package/dist/channels/binding.d.ts.map +1 -1
  16. package/dist/channels/binding.js +44 -11
  17. package/dist/channels/binding.js.map +1 -1
  18. package/dist/channels/delivery.d.ts +51 -0
  19. package/dist/channels/delivery.d.ts.map +1 -0
  20. package/dist/channels/delivery.js +424 -0
  21. package/dist/channels/delivery.js.map +1 -0
  22. package/dist/channels/github/app-setup.d.ts +32 -0
  23. package/dist/channels/github/app-setup.d.ts.map +1 -0
  24. package/dist/channels/github/app-setup.js +146 -0
  25. package/dist/channels/github/app-setup.js.map +1 -0
  26. package/dist/channels/github/index.d.ts +5 -1
  27. package/dist/channels/github/index.d.ts.map +1 -1
  28. package/dist/channels/github/index.js +38 -46
  29. package/dist/channels/github/index.js.map +1 -1
  30. package/dist/channels/github/mentions.d.ts +12 -0
  31. package/dist/channels/github/mentions.d.ts.map +1 -0
  32. package/dist/channels/github/mentions.js +185 -0
  33. package/dist/channels/github/mentions.js.map +1 -0
  34. package/dist/channels/github/schema.d.ts +271 -0
  35. package/dist/channels/github/schema.d.ts.map +1 -1
  36. package/dist/channels/github/schema.js +33 -0
  37. package/dist/channels/github/schema.js.map +1 -1
  38. package/dist/channels/github/types.d.ts +50 -26
  39. package/dist/channels/github/types.d.ts.map +1 -1
  40. package/dist/channels/http/endpoint.d.ts +137 -0
  41. package/dist/channels/http/endpoint.d.ts.map +1 -0
  42. package/dist/channels/http/endpoint.js +286 -0
  43. package/dist/channels/http/endpoint.js.map +1 -0
  44. package/dist/channels/http/http.d.ts.map +1 -1
  45. package/dist/channels/http/http.js +209 -89
  46. package/dist/channels/http/http.js.map +1 -1
  47. package/dist/channels/http/index.d.ts +7 -1
  48. package/dist/channels/http/index.d.ts.map +1 -1
  49. package/dist/channels/http/index.js +32 -23
  50. package/dist/channels/http/index.js.map +1 -1
  51. package/dist/channels/http/ingress.d.ts +30 -24
  52. package/dist/channels/http/ingress.d.ts.map +1 -1
  53. package/dist/channels/http/ingress.js +61 -57
  54. package/dist/channels/http/ingress.js.map +1 -1
  55. package/dist/channels/http/provider.d.ts +38 -15
  56. package/dist/channels/http/provider.d.ts.map +1 -1
  57. package/dist/channels/http/provider.js +54 -24
  58. package/dist/channels/http/provider.js.map +1 -1
  59. package/dist/channels/http/studio.d.ts +8 -1
  60. package/dist/channels/http/studio.d.ts.map +1 -1
  61. package/dist/channels/http/studio.js +13 -0
  62. package/dist/channels/http/studio.js.map +1 -1
  63. package/dist/channels/http/types.d.ts +95 -69
  64. package/dist/channels/http/types.d.ts.map +1 -1
  65. package/dist/channels/linear/app-setup.d.ts +29 -0
  66. package/dist/channels/linear/app-setup.d.ts.map +1 -0
  67. package/dist/channels/linear/app-setup.js +102 -0
  68. package/dist/channels/linear/app-setup.js.map +1 -0
  69. package/dist/channels/linear/index.d.ts +5 -1
  70. package/dist/channels/linear/index.d.ts.map +1 -1
  71. package/dist/channels/linear/index.js +65 -94
  72. package/dist/channels/linear/index.js.map +1 -1
  73. package/dist/channels/linear/schema.d.ts +11 -25
  74. package/dist/channels/linear/schema.d.ts.map +1 -1
  75. package/dist/channels/linear/schema.js +6 -0
  76. package/dist/channels/linear/schema.js.map +1 -1
  77. package/dist/channels/linear/types.d.ts +37 -31
  78. package/dist/channels/linear/types.d.ts.map +1 -1
  79. package/dist/channels/messaging-registry.d.ts +16 -0
  80. package/dist/channels/messaging-registry.d.ts.map +1 -1
  81. package/dist/channels/messaging-registry.js +29 -0
  82. package/dist/channels/messaging-registry.js.map +1 -1
  83. package/dist/channels/reserved-connections.d.ts.map +1 -1
  84. package/dist/channels/reserved-connections.js +10 -0
  85. package/dist/channels/reserved-connections.js.map +1 -1
  86. package/dist/channels/resolve-user-endpoint.d.ts +34 -0
  87. package/dist/channels/resolve-user-endpoint.d.ts.map +1 -0
  88. package/dist/channels/resolve-user-endpoint.js +51 -0
  89. package/dist/channels/resolve-user-endpoint.js.map +1 -0
  90. package/dist/channels/resolve-user.d.ts +95 -0
  91. package/dist/channels/resolve-user.d.ts.map +1 -0
  92. package/dist/channels/resolve-user.js +143 -0
  93. package/dist/channels/resolve-user.js.map +1 -0
  94. package/dist/channels/run-input.d.ts +46 -4
  95. package/dist/channels/run-input.d.ts.map +1 -1
  96. package/dist/channels/run-input.js +94 -30
  97. package/dist/channels/run-input.js.map +1 -1
  98. package/dist/channels/runtime.d.ts +5 -2
  99. package/dist/channels/runtime.d.ts.map +1 -1
  100. package/dist/channels/runtime.js +19 -10
  101. package/dist/channels/runtime.js.map +1 -1
  102. package/dist/channels/schedule-delivery.d.ts +2 -13
  103. package/dist/channels/schedule-delivery.d.ts.map +1 -1
  104. package/dist/channels/schedule-delivery.js +9 -76
  105. package/dist/channels/schedule-delivery.js.map +1 -1
  106. package/dist/channels/slack/api.d.ts +2 -0
  107. package/dist/channels/slack/api.d.ts.map +1 -1
  108. package/dist/channels/slack/api.js +6 -0
  109. package/dist/channels/slack/api.js.map +1 -1
  110. package/dist/channels/slack/connections.d.ts +6 -0
  111. package/dist/channels/slack/connections.d.ts.map +1 -0
  112. package/dist/channels/slack/connections.js +6 -0
  113. package/dist/channels/slack/connections.js.map +1 -0
  114. package/dist/channels/slack/events.d.ts +278 -0
  115. package/dist/channels/slack/events.d.ts.map +1 -0
  116. package/dist/channels/slack/events.js +235 -0
  117. package/dist/channels/slack/events.js.map +1 -0
  118. package/dist/channels/slack/files.d.ts.map +1 -1
  119. package/dist/channels/slack/files.js +2 -3
  120. package/dist/channels/slack/files.js.map +1 -1
  121. package/dist/channels/slack/index.d.ts +90 -2
  122. package/dist/channels/slack/index.d.ts.map +1 -1
  123. package/dist/channels/slack/index.js +188 -6
  124. package/dist/channels/slack/index.js.map +1 -1
  125. package/dist/channels/slack/message-content.d.ts.map +1 -1
  126. package/dist/channels/slack/message-content.js +23 -28
  127. package/dist/channels/slack/message-content.js.map +1 -1
  128. package/dist/channels/slack/status.d.ts +76 -0
  129. package/dist/channels/slack/status.d.ts.map +1 -0
  130. package/dist/channels/slack/status.js +427 -0
  131. package/dist/channels/slack/status.js.map +1 -0
  132. package/dist/channels/trigger/client.d.ts.map +1 -1
  133. package/dist/channels/trigger/client.js +9 -11
  134. package/dist/channels/trigger/client.js.map +1 -1
  135. package/dist/channels/trigger/conversation.d.ts +11 -0
  136. package/dist/channels/trigger/conversation.d.ts.map +1 -0
  137. package/dist/channels/trigger/conversation.js +72 -0
  138. package/dist/channels/trigger/conversation.js.map +1 -0
  139. package/dist/channels/trigger/http.d.ts +130 -4
  140. package/dist/channels/trigger/http.d.ts.map +1 -1
  141. package/dist/channels/trigger/http.js +419 -82
  142. package/dist/channels/trigger/http.js.map +1 -1
  143. package/dist/channels/trigger/identity-context.d.ts +1 -1
  144. package/dist/channels/trigger/identity-context.d.ts.map +1 -1
  145. package/dist/channels/trigger/identity-context.js +3 -5
  146. package/dist/channels/trigger/identity-context.js.map +1 -1
  147. package/dist/channels/trigger/ingress.d.ts +70 -1
  148. package/dist/channels/trigger/ingress.d.ts.map +1 -1
  149. package/dist/channels/trigger/ingress.js +141 -9
  150. package/dist/channels/trigger/ingress.js.map +1 -1
  151. package/dist/channels/trigger/transport.d.ts +10 -0
  152. package/dist/channels/trigger/transport.d.ts.map +1 -1
  153. package/dist/channels/trigger/transport.js +25 -9
  154. package/dist/channels/trigger/transport.js.map +1 -1
  155. package/dist/channels/trigger/types.d.ts +92 -3
  156. package/dist/channels/trigger/types.d.ts.map +1 -1
  157. package/dist/channels/trigger/types.js +37 -0
  158. package/dist/channels/trigger/types.js.map +1 -1
  159. package/dist/channels/types.d.ts +53 -4
  160. package/dist/channels/types.d.ts.map +1 -1
  161. package/dist/channels/types.js +2 -0
  162. package/dist/channels/types.js.map +1 -1
  163. package/dist/concurrency/batch-processor.d.ts +51 -0
  164. package/dist/concurrency/batch-processor.d.ts.map +1 -0
  165. package/dist/concurrency/batch-processor.js +99 -0
  166. package/dist/concurrency/batch-processor.js.map +1 -0
  167. package/dist/connections.d.ts +5 -12
  168. package/dist/connections.d.ts.map +1 -1
  169. package/dist/connections.js +28 -30
  170. package/dist/connections.js.map +1 -1
  171. package/dist/connectors/mcp/langsmith-url.d.ts.map +1 -1
  172. package/dist/connectors/mcp/langsmith-url.js +0 -1
  173. package/dist/connectors/mcp/langsmith-url.js.map +1 -1
  174. package/dist/credential-gate.js +3 -3
  175. package/dist/credential-gate.js.map +1 -1
  176. package/dist/define-deep-agent.d.ts +2 -2
  177. package/dist/define-deep-agent.d.ts.map +1 -1
  178. package/dist/define-deep-agent.js +53 -2
  179. package/dist/define-deep-agent.js.map +1 -1
  180. package/dist/identity/index.d.ts.map +1 -1
  181. package/dist/identity/index.js +3 -1
  182. package/dist/identity/index.js.map +1 -1
  183. package/dist/identity/loopback.d.ts +7 -2
  184. package/dist/identity/loopback.d.ts.map +1 -1
  185. package/dist/identity/loopback.js +15 -4
  186. package/dist/identity/loopback.js.map +1 -1
  187. package/dist/identity/options.d.ts +9 -0
  188. package/dist/identity/options.d.ts.map +1 -1
  189. package/dist/identity/options.js +1 -1
  190. package/dist/identity/options.js.map +1 -1
  191. package/dist/identity/slack/links.js +3 -2
  192. package/dist/identity/slack/links.js.map +1 -1
  193. package/dist/identity/types.d.ts +3 -0
  194. package/dist/identity/types.d.ts.map +1 -1
  195. package/dist/index.d.ts +15 -5
  196. package/dist/index.d.ts.map +1 -1
  197. package/dist/index.js +2 -1
  198. package/dist/index.js.map +1 -1
  199. package/dist/ingress/index.d.ts +8 -0
  200. package/dist/ingress/index.d.ts.map +1 -1
  201. package/dist/ingress/index.js +32 -2
  202. package/dist/ingress/index.js.map +1 -1
  203. package/dist/ingress/loopback.d.ts +1 -0
  204. package/dist/ingress/loopback.d.ts.map +1 -1
  205. package/dist/ingress/loopback.js +7 -3
  206. package/dist/ingress/loopback.js.map +1 -1
  207. package/dist/ingress/runs.d.ts +27 -1
  208. package/dist/ingress/runs.d.ts.map +1 -1
  209. package/dist/ingress/runs.js +69 -6
  210. package/dist/ingress/runs.js.map +1 -1
  211. package/dist/managed-composition.d.ts +3 -0
  212. package/dist/managed-composition.d.ts.map +1 -1
  213. package/dist/managed-composition.js +29 -13
  214. package/dist/managed-composition.js.map +1 -1
  215. package/dist/memory/instructions-middleware.d.ts.map +1 -1
  216. package/dist/memory/instructions-middleware.js +6 -5
  217. package/dist/memory/instructions-middleware.js.map +1 -1
  218. package/dist/namespaces.d.ts +4 -21
  219. package/dist/namespaces.d.ts.map +1 -1
  220. package/dist/namespaces.js +0 -29
  221. package/dist/namespaces.js.map +1 -1
  222. package/dist/resilience/retry.d.ts +21 -0
  223. package/dist/resilience/retry.d.ts.map +1 -0
  224. package/dist/resilience/retry.js +40 -0
  225. package/dist/resilience/retry.js.map +1 -0
  226. package/dist/runtime/async-subagents.d.ts +27 -0
  227. package/dist/runtime/async-subagents.d.ts.map +1 -0
  228. package/dist/runtime/async-subagents.js +139 -0
  229. package/dist/runtime/async-subagents.js.map +1 -0
  230. package/dist/runtime/auth.d.ts +1 -2
  231. package/dist/runtime/auth.d.ts.map +1 -1
  232. package/dist/runtime/auth.js +138 -72
  233. package/dist/runtime/auth.js.map +1 -1
  234. package/dist/runtime/backend.d.ts +9 -1
  235. package/dist/runtime/backend.d.ts.map +1 -1
  236. package/dist/runtime/backend.js +36 -11
  237. package/dist/runtime/backend.js.map +1 -1
  238. package/dist/runtime/browser-facade.d.ts +10 -0
  239. package/dist/runtime/browser-facade.d.ts.map +1 -0
  240. package/dist/runtime/browser-facade.js +23 -0
  241. package/dist/runtime/browser-facade.js.map +1 -0
  242. package/dist/runtime/browser-langsmith.d.ts +143 -0
  243. package/dist/runtime/browser-langsmith.d.ts.map +1 -0
  244. package/dist/runtime/browser-langsmith.js +507 -0
  245. package/dist/runtime/browser-langsmith.js.map +1 -0
  246. package/dist/runtime/browser-recorder.py +831 -0
  247. package/dist/runtime/browser-selection.d.ts +10 -0
  248. package/dist/runtime/browser-selection.d.ts.map +1 -0
  249. package/dist/runtime/browser-selection.js +21 -0
  250. package/dist/runtime/browser-selection.js.map +1 -0
  251. package/dist/runtime/browser.d.ts +138 -0
  252. package/dist/runtime/browser.d.ts.map +1 -0
  253. package/dist/runtime/browser.js +802 -0
  254. package/dist/runtime/browser.js.map +1 -0
  255. package/dist/runtime/channel-icon.d.ts.map +1 -1
  256. package/dist/runtime/channel-icon.js +18 -7
  257. package/dist/runtime/channel-icon.js.map +1 -1
  258. package/dist/runtime/channel.d.ts +5 -0
  259. package/dist/runtime/channel.d.ts.map +1 -1
  260. package/dist/runtime/channel.js.map +1 -1
  261. package/dist/runtime/graph-build-timing.d.ts +30 -0
  262. package/dist/runtime/graph-build-timing.d.ts.map +1 -0
  263. package/dist/runtime/graph-build-timing.js +50 -0
  264. package/dist/runtime/graph-build-timing.js.map +1 -0
  265. package/dist/runtime/http.d.ts +15 -0
  266. package/dist/runtime/http.d.ts.map +1 -1
  267. package/dist/runtime/http.js +37 -0
  268. package/dist/runtime/http.js.map +1 -1
  269. package/dist/runtime/identity-http.d.ts.map +1 -1
  270. package/dist/runtime/identity-http.js +19 -7
  271. package/dist/runtime/identity-http.js.map +1 -1
  272. package/dist/runtime/identity-runtime.d.ts +4 -9
  273. package/dist/runtime/identity-runtime.d.ts.map +1 -1
  274. package/dist/runtime/identity-runtime.js +12 -25
  275. package/dist/runtime/identity-runtime.js.map +1 -1
  276. package/dist/runtime/index.d.ts +38 -1
  277. package/dist/runtime/index.d.ts.map +1 -1
  278. package/dist/runtime/index.js +104 -52
  279. package/dist/runtime/index.js.map +1 -1
  280. package/dist/runtime/langsmith-env.d.ts +19 -0
  281. package/dist/runtime/langsmith-env.d.ts.map +1 -0
  282. package/dist/runtime/langsmith-env.js +38 -0
  283. package/dist/runtime/langsmith-env.js.map +1 -0
  284. package/dist/runtime/log.d.ts +8 -14
  285. package/dist/runtime/log.d.ts.map +1 -1
  286. package/dist/runtime/log.js +16 -7
  287. package/dist/runtime/log.js.map +1 -1
  288. package/dist/runtime/managed-middleware.d.ts.map +1 -1
  289. package/dist/runtime/managed-middleware.js +1 -14
  290. package/dist/runtime/managed-middleware.js.map +1 -1
  291. package/dist/runtime/managed-thread.d.ts +61 -0
  292. package/dist/runtime/managed-thread.d.ts.map +1 -0
  293. package/dist/runtime/managed-thread.js +76 -0
  294. package/dist/runtime/managed-thread.js.map +1 -0
  295. package/dist/runtime/managed-tools.d.ts +18 -2
  296. package/dist/runtime/managed-tools.d.ts.map +1 -1
  297. package/dist/runtime/managed-tools.js +26 -22
  298. package/dist/runtime/managed-tools.js.map +1 -1
  299. package/dist/runtime/memory/mounts.d.ts +82 -11
  300. package/dist/runtime/memory/mounts.d.ts.map +1 -1
  301. package/dist/runtime/memory/mounts.js +173 -34
  302. package/dist/runtime/memory/mounts.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 +118 -7
  313. package/dist/runtime/run-input.js.map +1 -1
  314. package/dist/runtime/sandbox-manager.d.ts +31 -17
  315. package/dist/runtime/sandbox-manager.d.ts.map +1 -1
  316. package/dist/runtime/sandbox-manager.js +112 -70
  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/selected-skills-backend.d.ts +3 -3
  323. package/dist/runtime/selected-skills-backend.d.ts.map +1 -1
  324. package/dist/runtime/selected-skills-backend.js +5 -5
  325. package/dist/runtime/selected-skills-backend.js.map +1 -1
  326. package/dist/runtime/static-entry.d.ts.map +1 -1
  327. package/dist/runtime/static-entry.js +1 -0
  328. package/dist/runtime/static-entry.js.map +1 -1
  329. package/dist/runtime/thread-record.d.ts +88 -0
  330. package/dist/runtime/thread-record.d.ts.map +1 -0
  331. package/dist/runtime/thread-record.js +213 -0
  332. package/dist/runtime/thread-record.js.map +1 -0
  333. package/dist/runtime/types.d.ts +12 -1
  334. package/dist/runtime/types.d.ts.map +1 -1
  335. package/dist/runtime-schedules.d.ts +15 -0
  336. package/dist/runtime-schedules.d.ts.map +1 -1
  337. package/dist/runtime-schedules.js +85 -23
  338. package/dist/runtime-schedules.js.map +1 -1
  339. package/dist/sandbox.d.ts +0 -6
  340. package/dist/sandbox.d.ts.map +1 -1
  341. package/dist/sandbox.js +3 -7
  342. package/dist/sandbox.js.map +1 -1
  343. package/dist/schedule-channel.d.ts +5 -2
  344. package/dist/schedule-channel.d.ts.map +1 -1
  345. package/dist/schedule-channel.js +13 -12
  346. package/dist/schedule-channel.js.map +1 -1
  347. package/dist/telemetry/lifecycle.d.ts +26 -0
  348. package/dist/telemetry/lifecycle.d.ts.map +1 -0
  349. package/dist/telemetry/lifecycle.js +49 -0
  350. package/dist/telemetry/lifecycle.js.map +1 -0
  351. package/dist/telemetry/metadata.d.ts.map +1 -1
  352. package/dist/telemetry/metadata.js +4 -4
  353. package/dist/telemetry/metadata.js.map +1 -1
  354. package/dist/telemetry/otel/context.d.ts +57 -0
  355. package/dist/telemetry/otel/context.d.ts.map +1 -0
  356. package/dist/telemetry/otel/context.js +122 -0
  357. package/dist/telemetry/otel/context.js.map +1 -0
  358. package/dist/telemetry/otel/exporter.d.ts +53 -0
  359. package/dist/telemetry/otel/exporter.d.ts.map +1 -0
  360. package/dist/telemetry/otel/exporter.js +190 -0
  361. package/dist/telemetry/otel/exporter.js.map +1 -0
  362. package/dist/telemetry/otel/index.d.ts +6 -0
  363. package/dist/telemetry/otel/index.d.ts.map +1 -0
  364. package/dist/telemetry/otel/index.js +3 -0
  365. package/dist/telemetry/otel/index.js.map +1 -0
  366. package/dist/telemetry/otel/otlp.d.ts +44 -0
  367. package/dist/telemetry/otel/otlp.d.ts.map +1 -0
  368. package/dist/telemetry/otel/otlp.js +7 -0
  369. package/dist/telemetry/otel/otlp.js.map +1 -0
  370. package/dist/telemetry/otel/truncate.d.ts +10 -0
  371. package/dist/telemetry/otel/truncate.d.ts.map +1 -0
  372. package/dist/telemetry/otel/truncate.js +39 -0
  373. package/dist/telemetry/otel/truncate.js.map +1 -0
  374. package/dist/telemetry/run-listener.d.ts +1 -1
  375. package/dist/telemetry/run-listener.d.ts.map +1 -1
  376. package/dist/telemetry/run-listener.js +32 -2
  377. package/dist/telemetry/run-listener.js.map +1 -1
  378. package/dist/telemetry/transport/posthog.d.ts +13 -1
  379. package/dist/telemetry/transport/posthog.d.ts.map +1 -1
  380. package/dist/telemetry/transport/posthog.js +68 -30
  381. package/dist/telemetry/transport/posthog.js.map +1 -1
  382. package/dist/types.d.ts +19 -2
  383. package/dist/types.d.ts.map +1 -1
  384. package/dist/types.js.map +1 -1
  385. package/dist/values.d.ts +15 -0
  386. package/dist/values.d.ts.map +1 -0
  387. package/dist/values.js +31 -0
  388. package/dist/values.js.map +1 -0
  389. package/package.json +26 -12
  390. package/dist/channels/http/forward.d.ts +0 -13
  391. package/dist/channels/http/forward.d.ts.map +0 -1
  392. package/dist/channels/http/forward.js +0 -128
  393. package/dist/channels/http/forward.js.map +0 -1
  394. package/dist/channels/http/reply.d.ts +0 -20
  395. package/dist/channels/http/reply.d.ts.map +0 -1
  396. package/dist/channels/http/reply.js +0 -116
  397. package/dist/channels/http/reply.js.map +0 -1
@@ -3,6 +3,8 @@ import type { Interrupt } from "langchain";
3
3
  import type { ChannelBinding } from "../binding.js";
4
4
  import type { NormalizedChannelEvent } from "../../run-context.js";
5
5
  import { z } from "zod";
6
+ import type { triggerTargetSchema } from "../../runtime/thread-record.js";
7
+ import type { ChannelActor } from "../actor.js";
6
8
  export declare const TRIGGER_SERVICE_KEY_HEADER = "x-service-key";
7
9
  /** Preserve provider-owned fields without imposing a provider schema. */
8
10
  declare const opaqueObject: z.ZodRecord<z.ZodString, z.ZodUnknown>;
@@ -16,6 +18,7 @@ declare const messageEventSchema: z.ZodObject<{
16
18
  address: z.ZodRecord<z.ZodString, z.ZodUnknown>;
17
19
  raw_event: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
18
20
  identity_context: z.ZodOptional<z.ZodNullable<z.ZodString>>;
21
+ actor: z.ZodOptional<z.ZodUnknown>;
19
22
  type: z.ZodLiteral<"message">;
20
23
  input: z.ZodObject<{
21
24
  messages: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
@@ -31,6 +34,7 @@ declare const interruptResumeEventSchema: z.ZodObject<{
31
34
  address: z.ZodRecord<z.ZodString, z.ZodUnknown>;
32
35
  raw_event: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
33
36
  identity_context: z.ZodOptional<z.ZodNullable<z.ZodString>>;
37
+ actor: z.ZodOptional<z.ZodUnknown>;
34
38
  type: z.ZodLiteral<"interrupt_resume">;
35
39
  interaction: z.ZodObject<{
36
40
  type: z.ZodLiteral<"interrupt_resume">;
@@ -47,6 +51,7 @@ declare const slackUserPromptResponseEventSchema: z.ZodObject<{
47
51
  address: z.ZodRecord<z.ZodString, z.ZodUnknown>;
48
52
  raw_event: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
49
53
  identity_context: z.ZodOptional<z.ZodNullable<z.ZodString>>;
54
+ actor: z.ZodOptional<z.ZodUnknown>;
50
55
  type: z.ZodLiteral<"user_prompt_response">;
51
56
  provider: z.ZodLiteral<"slack">;
52
57
  interaction: z.ZodObject<{
@@ -65,6 +70,7 @@ declare const userPromptResponseEventSchema: z.ZodDiscriminatedUnion<[z.ZodObjec
65
70
  address: z.ZodRecord<z.ZodString, z.ZodUnknown>;
66
71
  raw_event: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
67
72
  identity_context: z.ZodOptional<z.ZodNullable<z.ZodString>>;
73
+ actor: z.ZodOptional<z.ZodUnknown>;
68
74
  type: z.ZodLiteral<"user_prompt_response">;
69
75
  provider: z.ZodLiteral<"slack">;
70
76
  interaction: z.ZodObject<{
@@ -73,6 +79,23 @@ declare const userPromptResponseEventSchema: z.ZodDiscriminatedUnion<[z.ZodObjec
73
79
  correlation_id: z.ZodOptional<z.ZodString>;
74
80
  }, z.core.$strip>;
75
81
  }, z.core.$strip>], "provider">;
82
+ /** A person in the source conversation asked to stop its runs (Slack Stop). */
83
+ declare const runCancelEventSchema: z.ZodObject<{
84
+ version: z.ZodLiteral<"1">;
85
+ event_id: z.ZodString;
86
+ delivery_id: z.ZodString;
87
+ created_at: z.ZodString;
88
+ channel_id: z.ZodString;
89
+ source_thread_key: z.ZodString;
90
+ address: z.ZodRecord<z.ZodString, z.ZodUnknown>;
91
+ raw_event: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
92
+ identity_context: z.ZodOptional<z.ZodNullable<z.ZodString>>;
93
+ actor: z.ZodOptional<z.ZodUnknown>;
94
+ type: z.ZodLiteral<"run_cancel">;
95
+ interaction: z.ZodObject<{
96
+ type: z.ZodLiteral<"run_cancel">;
97
+ }, z.core.$strip>;
98
+ }, z.core.$strip>;
76
99
  declare const eventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
77
100
  version: z.ZodLiteral<"1">;
78
101
  event_id: z.ZodString;
@@ -83,6 +106,7 @@ declare const eventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
83
106
  address: z.ZodRecord<z.ZodString, z.ZodUnknown>;
84
107
  raw_event: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
85
108
  identity_context: z.ZodOptional<z.ZodNullable<z.ZodString>>;
109
+ actor: z.ZodOptional<z.ZodUnknown>;
86
110
  type: z.ZodLiteral<"message">;
87
111
  input: z.ZodObject<{
88
112
  messages: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
@@ -97,6 +121,7 @@ declare const eventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
97
121
  address: z.ZodRecord<z.ZodString, z.ZodUnknown>;
98
122
  raw_event: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
99
123
  identity_context: z.ZodOptional<z.ZodNullable<z.ZodString>>;
124
+ actor: z.ZodOptional<z.ZodUnknown>;
100
125
  type: z.ZodLiteral<"interrupt_resume">;
101
126
  interaction: z.ZodObject<{
102
127
  type: z.ZodLiteral<"interrupt_resume">;
@@ -112,6 +137,7 @@ declare const eventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
112
137
  address: z.ZodRecord<z.ZodString, z.ZodUnknown>;
113
138
  raw_event: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
114
139
  identity_context: z.ZodOptional<z.ZodNullable<z.ZodString>>;
140
+ actor: z.ZodOptional<z.ZodUnknown>;
115
141
  type: z.ZodLiteral<"user_prompt_response">;
116
142
  provider: z.ZodLiteral<"slack">;
117
143
  interaction: z.ZodObject<{
@@ -119,7 +145,22 @@ declare const eventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
119
145
  value: z.ZodOptional<z.ZodUnknown>;
120
146
  correlation_id: z.ZodOptional<z.ZodString>;
121
147
  }, z.core.$strip>;
122
- }, z.core.$strip>], "provider">], "type">;
148
+ }, z.core.$strip>], "provider">, z.ZodObject<{
149
+ version: z.ZodLiteral<"1">;
150
+ event_id: z.ZodString;
151
+ delivery_id: z.ZodString;
152
+ created_at: z.ZodString;
153
+ channel_id: z.ZodString;
154
+ source_thread_key: z.ZodString;
155
+ address: z.ZodRecord<z.ZodString, z.ZodUnknown>;
156
+ raw_event: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
157
+ identity_context: z.ZodOptional<z.ZodNullable<z.ZodString>>;
158
+ actor: z.ZodOptional<z.ZodUnknown>;
159
+ type: z.ZodLiteral<"run_cancel">;
160
+ interaction: z.ZodObject<{
161
+ type: z.ZodLiteral<"run_cancel">;
162
+ }, z.core.$strip>;
163
+ }, z.core.$strip>], "type">;
123
164
  export type TriggerChannelAddress = z.infer<typeof opaqueObject>;
124
165
  export type TriggerChannelMessageInput = z.infer<typeof messageEventSchema.shape.input>;
125
166
  export type TriggerChannelMessageEvent = z.infer<typeof messageEventSchema>;
@@ -130,7 +171,10 @@ export type TriggerChannelSlackUserPromptResponseEvent = z.infer<typeof slackUse
130
171
  export type TriggerChannelUserPromptResponseEvent = z.infer<typeof userPromptResponseEventSchema>;
131
172
  export type TriggerChannelUserPromptResponseInteraction = TriggerChannelSlackUserPromptResponseEvent["interaction"];
132
173
  export type TriggerChannelRawEvent = z.infer<typeof opaqueObject>;
174
+ export type TriggerChannelRunCancelEvent = z.infer<typeof runCancelEventSchema>;
133
175
  export type TriggerChannelEvent = z.infer<typeof eventSchema>;
176
+ /** Events that start or resume a run on the source thread. */
177
+ export type TriggerChannelRunEvent = Exclude<TriggerChannelEvent, TriggerChannelRunCancelEvent>;
134
178
  interface TriggerChannelActionBase {
135
179
  action_id: string;
136
180
  address: TriggerChannelAddress;
@@ -142,6 +186,11 @@ export interface TriggerChannelPostAction extends TriggerChannelActionBase {
142
186
  message: {
143
187
  text: string;
144
188
  };
189
+ /**
190
+ * On a post that starts a thread, Trigger runs later replies in it, and
191
+ * their input starts after this post.
192
+ */
193
+ follow_thread?: boolean;
145
194
  }
146
195
  /**
147
196
  * React to the message that triggered the run.
@@ -159,10 +208,40 @@ export interface TriggerChannelReactAction extends TriggerChannelActionBase {
159
208
  };
160
209
  }
161
210
  export type TriggerChannelActionRequest = TriggerChannelPostAction | TriggerChannelReactAction;
211
+ /** The Trigger target of a thread a top-level post started. */
212
+ export type TriggerStartedThread = z.infer<typeof triggerTargetSchema>;
162
213
  export interface TriggerChannelActionResponse {
163
214
  id: string;
215
+ /** The thread the post started, when it was a top-level post. */
216
+ thread?: TriggerStartedThread;
217
+ }
218
+ export type TriggerChannelRuntimeEventType = "run.started" | "run.completed" | "run.interrupted" | "run.failed"
219
+ /** The run was cancelled (Slack Stop, Studio, or the API) before it finished. */
220
+ | "run.cancelled"
221
+ /** The run's status changed while it works; see {@link TriggerChannelRuntimeStatus}. */
222
+ | "run.thinking";
223
+ /** One step of a run's status, as Slack's plan shows it. */
224
+ export interface TriggerChannelStatusStep {
225
+ title: string;
226
+ status: "pending" | "in_progress" | "complete" | "error";
227
+ }
228
+ /**
229
+ * The status a channel set for a run, on `run.started` and `run.thinking`:
230
+ * a line (`message.text`), steps, or both. An older Trigger Server ignores
231
+ * `steps` and `display`.
232
+ */
233
+ export interface TriggerChannelRuntimeStatus {
234
+ message?: {
235
+ text: string;
236
+ };
237
+ /** At most 50, each title one line of at most 256 characters. */
238
+ steps?: TriggerChannelStatusStep[];
239
+ /**
240
+ * How Slack shows the run's progress, fixed by the event that opens it:
241
+ * `plan` groups it under the status line.
242
+ */
243
+ display?: "timeline" | "plan";
164
244
  }
165
- export type TriggerChannelRuntimeEventType = "run.started" | "run.completed" | "run.interrupted" | "run.failed";
166
245
  /**
167
246
  * One pending LangGraph interrupt, forwarded verbatim on `run.interrupted`.
168
247
  *
@@ -187,6 +266,8 @@ export interface TriggerChannelRuntimeEventRequest {
187
266
  message?: {
188
267
  text: string;
189
268
  };
269
+ steps?: TriggerChannelRuntimeStatus["steps"];
270
+ display?: TriggerChannelRuntimeStatus["display"];
190
271
  /**
191
272
  * Present on `run.interrupted`. The Trigger Server cannot read the
192
273
  * deployment's threads, so pending interrupts travel on the event itself.
@@ -205,8 +286,16 @@ export interface TriggerChannelRuntimeEventResponse {
205
286
  /** Validate the envelope while retaining all original opaque object identities. */
206
287
  export declare function parseTriggerChannelEvent(value: unknown): TriggerChannelEvent;
207
288
  /** The provider-neutral view of a prompt response, also used as its resume value. */
289
+ /**
290
+ * Who a delivery came from, as Trigger Server verified them from the
291
+ * provider's signed request: for Slack, the user (`subject`) and their own
292
+ * team (`issuer`). `undefined` when the delivery names no one, or someone
293
+ * malformed, or a provider Trigger Server doesn't serve: an older Trigger
294
+ * Server sends none, and a delivery never fails over it.
295
+ */
296
+ export declare function triggerEventActor(event: TriggerChannelEvent): ChannelActor | undefined;
208
297
  export declare function normalizedUserPromptResponse(event: TriggerChannelUserPromptResponseEvent): NormalizedChannelEvent;
209
298
  /** Current typed event and private route, without identity tokens. */
210
- export declare function triggerChannelBinding(event: TriggerChannelEvent, provider: string, name: string): ChannelBinding;
299
+ export declare function triggerChannelBinding(event: TriggerChannelRunEvent, provider: string, name: string): ChannelBinding;
211
300
  export {};
212
301
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/channels/trigger/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/channels/trigger/types.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { channelContextSchema } from "../../run-context.js";
2
2
  import { z } from "zod";
3
3
  import { normalizeUuid } from "./uuid.js";
4
+ import { isRecord, nonblankString as nonblank } from "../../values.js";
4
5
  export const TRIGGER_SERVICE_KEY_HEADER = "x-service-key";
5
6
  const nonblankString = z.string().refine((value) => value.trim().length > 0, {
6
7
  message: "must be nonblank",
@@ -26,6 +27,14 @@ const channelEventBase = z.object({
26
27
  * its principal UUID as `x-mda-user-id` instead of `mda:channel`.
27
28
  */
28
29
  identity_context: z.string().nullish(),
30
+ /**
31
+ * The provider user behind the delivery, `{ provider, issuer, subject }`,
32
+ * as Trigger Server names them; read with {@link triggerEventActor},
33
+ * which ignores a malformed one rather than refusing the delivery. Not
34
+ * signed, so MDA keeps it only when Agent Auth keys it on the
35
+ * `identity_context` principal.
36
+ */
37
+ actor: z.unknown().optional(),
29
38
  });
30
39
  const messageEventSchema = channelEventBase.extend({
31
40
  type: z.literal("message"),
@@ -54,10 +63,16 @@ const slackUserPromptResponseEventSchema = userPromptResponseEventBase.extend({
54
63
  const userPromptResponseEventSchema = z.discriminatedUnion("provider", [
55
64
  slackUserPromptResponseEventSchema,
56
65
  ]);
66
+ /** A person in the source conversation asked to stop its runs (Slack Stop). */
67
+ const runCancelEventSchema = channelEventBase.extend({
68
+ type: z.literal("run_cancel"),
69
+ interaction: z.object({ type: z.literal("run_cancel") }),
70
+ });
57
71
  const eventSchema = z.discriminatedUnion("type", [
58
72
  messageEventSchema,
59
73
  interruptResumeEventSchema,
60
74
  userPromptResponseEventSchema,
75
+ runCancelEventSchema,
61
76
  ]);
62
77
  /** Validate the envelope while retaining all original opaque object identities. */
63
78
  export function parseTriggerChannelEvent(value) {
@@ -65,6 +80,28 @@ export function parseTriggerChannelEvent(value) {
65
80
  return value;
66
81
  }
67
82
  /** The provider-neutral view of a prompt response, also used as its resume value. */
83
+ /**
84
+ * Who a delivery came from, as Trigger Server verified them from the
85
+ * provider's signed request: for Slack, the user (`subject`) and their own
86
+ * team (`issuer`). `undefined` when the delivery names no one, or someone
87
+ * malformed, or a provider Trigger Server doesn't serve: an older Trigger
88
+ * Server sends none, and a delivery never fails over it.
89
+ */
90
+ export function triggerEventActor(event) {
91
+ const actor = event.actor;
92
+ if (!isRecord(actor))
93
+ return undefined;
94
+ const id = nonblank(actor.subject);
95
+ const team = nonblank(actor.issuer);
96
+ if (!id || !team)
97
+ return undefined;
98
+ switch (actor.provider) {
99
+ case "slack":
100
+ return { provider: "slack", id, teamId: team };
101
+ default:
102
+ return undefined;
103
+ }
104
+ }
68
105
  export function normalizedUserPromptResponse(event) {
69
106
  return {
70
107
  provider: event.provider,
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/channels/trigger/types.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE5D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,MAAM,CAAC,MAAM,0BAA0B,GAAG,eAAe,CAAC;AAE1D,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;IAC3E,OAAO,EAAE,kBAAkB;CAC5B,CAAC,CAAC;AACH,yEAAyE;AACzE,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;AACvD,MAAM,SAAS,GAAG,CAAC;KAChB,MAAM,EAAE;KACR,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE;IACrD,OAAO,EAAE,cAAc;CACxB,CAAC,CAAC;AACL,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;IACvB,QAAQ,EAAE,cAAc;IACxB,WAAW,EAAE,cAAc;IAC3B,UAAU,EAAE,cAAc;IAC1B,UAAU,EAAE,SAAS;IACrB,iBAAiB,EAAE,cAAc;IACjC,OAAO,EAAE,YAAY;IACrB,SAAS,EAAE,YAAY,CAAC,OAAO,EAAE;IACjC;;;OAGG;IACH,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;CACvC,CAAC,CAAC;AACH,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,MAAM,CAAC;IACjD,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;IAC1B,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC;KAChC,CAAC;CACH,CAAC,CAAC;AACH,MAAM,0BAA0B,GAAG,gBAAgB,CAAC,MAAM,CAAC;IACzD,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC;IACnC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC;QACnC,MAAM,EAAE,YAAY;KACrB,CAAC;CACH,CAAC,CAAC;AACH,MAAM,2BAA2B,GAAG,gBAAgB,CAAC,MAAM,CAAC;IAC1D,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAAC;CACxC,CAAC,CAAC;AACH,MAAM,kCAAkC,GAAG,2BAA2B,CAAC,MAAM,CAAC;IAC5E,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IAC5B,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,MAAM,EAAE,cAAc;QACtB,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;QAC7B,cAAc,EAAE,cAAc,CAAC,QAAQ,EAAE;KAC1C,CAAC;CACH,CAAC,CAAC;AACH,MAAM,6BAA6B,GAAG,CAAC,CAAC,kBAAkB,CAAC,UAAU,EAAE;IACrE,kCAAkC;CACnC,CAAC,CAAC;AACH,MAAM,WAAW,GAAG,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IAC/C,kBAAkB;IAClB,0BAA0B;IAC1B,6BAA6B;CAC9B,CAAC,CAAC;AAwGH,mFAAmF;AACnF,MAAM,UAAU,wBAAwB,CAAC,KAAc;IACrD,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACzB,OAAO,KAA4B,CAAC;AACtC,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,4BAA4B,CAC1C,KAA4C;IAE5C,OAAO;QACL,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,MAAM;QAChC,GAAG,CAAC,OAAO,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3E,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,cAAc,IAAI,IAAI;YAC1C,CAAC,CAAC,EAAE,cAAc,EAAE,KAAK,CAAC,WAAW,CAAC,cAAc,EAAE;YACtD,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,qBAAqB,CACnC,KAA0B,EAC1B,QAAgB,EAChB,IAAY;IAEZ,IAAI,UAAwB,CAAC;IAC7B,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,SAAS;YACZ,UAAU,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YACjE,MAAM;QACR,KAAK,kBAAkB;YACrB,UAAU,GAAG;gBACX,IAAI,EAAE,kBAAkB;gBACxB,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,MAAM;aACjC,CAAC;YACF,MAAM;QACR,KAAK,sBAAsB;YACzB,UAAU,GAAG;gBACX,IAAI,EAAE,sBAAsB;gBAC5B,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,MAAM;gBAChC,GAAG,CAAC,OAAO,IAAI,KAAK,CAAC,WAAW;oBAC9B,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE;oBACpC,CAAC,CAAC,EAAE,CAAC;gBACP,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,cAAc,KAAK,SAAS;oBAChD,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC,EAAE,cAAc,EAAE,KAAK,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC;aAC1D,CAAC;YACF,MAAM;QACR;YACE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,oBAAoB,CAAC,KAAK,CAAC;QAChC,IAAI;QACJ,QAAQ;QACR,eAAe,EAAE,KAAK,CAAC,iBAAiB;QACxC,UAAU,EAAE,KAAK,CAAC,WAAW;QAC7B,SAAS,EAAE,gBAAgB;QAC3B,KAAK,EAAE,UAAU;QACjB,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,IAAI;YACzB,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,SAAsB,EAAE,CAAC;QAC/C,MAAM,EAAE;YACN,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,OAAO,EAAE,KAAK,CAAC,OAAoB;YACnC,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;SAC3C;KACF,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/channels/trigger/types.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@
4
4
  * Provider-specific fields belong in a validated `native` payload or the
5
5
  * managed adapter — never on these core types.
6
6
  */
7
+ import type { ChannelRunResult } from "./run-input.js";
7
8
  import type { z } from "zod";
8
9
  import type { channelContentMessageSchema, channelNativeMessageSchema } from "./message-schema.js";
9
10
  export type JsonValue = null | boolean | number | string | readonly JsonValue[] | {
@@ -35,6 +36,18 @@ export type ChannelContentMessage = Readonly<z.infer<typeof channelContentMessag
35
36
  export type ChannelNativeMessage = Readonly<z.infer<typeof channelNativeMessageSchema>>;
36
37
  export type ChannelMessage = ChannelContentMessage | ChannelNativeMessage;
37
38
  export type OutboundMessage = ChannelMessage;
39
+ /**
40
+ * Whether a channel posts the run's final answer to the conversation:
41
+ * `auto` (the default) posts the agent's last reply once the run succeeds,
42
+ * and `none` leaves replying to the agent, through `runtime.channel.post` or
43
+ * its own tools. Either way the channel keeps its other updates, such as
44
+ * Slack's status and reactions.
45
+ *
46
+ * @experimental This may change in a minor release.
47
+ */
48
+ export type ChannelReply = "auto" | "none";
49
+ /** Every {@link ChannelReply}, for channels that check one. */
50
+ export declare const CHANNEL_REPLIES: readonly ChannelReply[];
38
51
  export type ChannelEvent = {
39
52
  readonly type: "schedule";
40
53
  readonly new_thread: boolean;
@@ -53,7 +66,13 @@ export type ChannelEvent = {
53
66
  export interface ChannelInfo {
54
67
  readonly name: string;
55
68
  readonly provider: string;
56
- readonly event: ChannelEvent;
69
+ /**
70
+ * The event that started this run, or the schedule event in a scheduled
71
+ * run. `null` when the channel comes from the thread's record, such as in a
72
+ * run LangSmith Studio resumes.
73
+ */
74
+ readonly event: ChannelEvent | null;
75
+ /** The provider's payload, set only alongside the event that started the run. */
57
76
  readonly rawEvent?: JsonValue;
58
77
  }
59
78
  export interface PostedChannelMessage {
@@ -63,12 +82,42 @@ export interface PostedChannelMessage {
63
82
  url?: string;
64
83
  }
65
84
  /**
66
- * Provider-neutral reply surface injected on channel-originated runs only.
85
+ * Provider-neutral reply surface for the conversation a thread came from.
67
86
  *
68
- * Absent for ordinary HTTP and schedule runs.
87
+ * Absent on threads no channel started.
69
88
  */
70
89
  export interface RuntimeChannel extends ChannelInfo {
71
- readonly post?: (message: ChannelMessage) => Promise<PostedChannelMessage>;
90
+ readonly post?: {
91
+ (message: ChannelMessage): Promise<PostedChannelMessage>;
92
+ (message: ChannelMessage, options: ChannelPostOptions): Promise<PostedChannelThread>;
93
+ };
94
+ }
95
+ /**
96
+ * A post that starts a new provider thread in the same conversation.
97
+ *
98
+ * @experimental This may change in a minor release.
99
+ */
100
+ export interface ChannelPostOptions {
101
+ /**
102
+ * Post at top level, which starts a new provider thread. Replies in it
103
+ * continue a thread of its own, also without a mention in Slack's thread
104
+ * mode. Only Trigger channels that name the new thread support it.
105
+ */
106
+ newThread: true;
107
+ /**
108
+ * Start a run in the new thread with this input, as a channel handler's run
109
+ * input. Without it, the thread's first run starts with the first reply.
110
+ */
111
+ run?: ChannelRunResult;
112
+ }
113
+ /**
114
+ * A post that started a new provider thread.
115
+ *
116
+ * @experimental This may change in a minor release.
117
+ */
118
+ export interface PostedChannelThread extends PostedChannelMessage {
119
+ /** The LangGraph thread replies in the new provider thread run on. */
120
+ threadId: string;
72
121
  }
73
122
  /** Stable machine-readable channel error codes (npm / PyPI / traces). */
74
123
  export type ChannelErrorCode = "channel_invalid_signature" | "channel_replay_rejected" | "channel_installation_not_found" | "channel_event_filtered" | "channel_identity_unresolvable" | "channel_destination_forbidden" | "channel_invocation_rate_limited" | "channel_run_failed" | "channel_provider_rate_limited" | "channel_provider_rejected";
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/channels/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/channels/types.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,8 @@
4
4
  * Provider-specific fields belong in a validated `native` payload or the
5
5
  * managed adapter — never on these core types.
6
6
  */
7
+ /** Every {@link ChannelReply}, for channels that check one. */
8
+ export const CHANNEL_REPLIES = ["auto", "none"];
7
9
  /** Narrow a destination to its discriminant + required address fields. */
8
10
  export function normalizeChannelDestination(destination) {
9
11
  const type = destination.type;
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/channels/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAuGH,0EAA0E;AAC1E,MAAM,UAAU,2BAA2B,CACzC,WAA+B;IAK/B,MAAM,IAAI,GAAY,WAAW,CAAC,IAAI,CAAC;IACvC,IAAI,WAAW,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;QAC1C,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC;IACpC,CAAC;IACD,IAAI,WAAW,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;QAC3C,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,GAAG,WAAW,CAAC;QACjD,IAAI,OAAO,cAAc,KAAK,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACvE,MAAM,IAAI,KAAK,CACb,kEAAkE,CACnE,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC;IAC/D,CAAC;IACD,IAAI,WAAW,CAAC,IAAI,KAAK,uBAAuB,EAAE,CAAC;QACjD,MAAM,EAAE,cAAc,EAAE,GAAG,WAAW,CAAC;QACvC,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CACb,2DAA2D,CAC5D,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,uBAAuB,EAAE,cAAc,EAAE,CAAC;IAC3D,CAAC;IACD,MAAM,IAAI,KAAK,CACb,yCAAyC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAChE,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/channels/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA8DH,+DAA+D;AAC/D,MAAM,CAAC,MAAM,eAAe,GAA4B,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAgGzE,0EAA0E;AAC1E,MAAM,UAAU,2BAA2B,CACzC,WAA+B;IAK/B,MAAM,IAAI,GAAY,WAAW,CAAC,IAAI,CAAC;IACvC,IAAI,WAAW,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;QAC1C,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC;IACpC,CAAC;IACD,IAAI,WAAW,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;QAC3C,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,GAAG,WAAW,CAAC;QACjD,IAAI,OAAO,cAAc,KAAK,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACvE,MAAM,IAAI,KAAK,CACb,kEAAkE,CACnE,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC;IAC/D,CAAC;IACD,IAAI,WAAW,CAAC,IAAI,KAAK,uBAAuB,EAAE,CAAC;QACjD,MAAM,EAAE,cAAc,EAAE,GAAG,WAAW,CAAC;QACvC,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CACb,2DAA2D,CAC5D,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,uBAAuB,EAAE,cAAc,EAAE,CAAC;IAC3D,CAAC;IACD,MAAM,IAAI,KAAK,CACb,yCAAyC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAChE,CAAC;AACJ,CAAC"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Collects items pushed from anywhere in the process and hands them to
3
+ * `handle` in batches: when `maxBatchSize` items are waiting, or `maxWaitMs`
4
+ * after the first one arrived, or without the wait once `shutdown` starts. One batch is handled
5
+ * at a time; a rejected `handle` drops that batch. Compose `handle` (see
6
+ * `resilience/`) for retries, passing on its signal.
7
+ *
8
+ * The worker starts on the first push and stops when the queue is empty, and
9
+ * its timers never keep the process alive; only `shutdown` holds it open,
10
+ * until its deadline.
11
+ */
12
+ export interface BatchProcessorOptions<T> {
13
+ /** `signal` aborts at the `shutdown` deadline. */
14
+ handle: (batch: T[], signal: AbortSignal) => Promise<void>;
15
+ maxBatchSize: number;
16
+ maxWaitMs: number;
17
+ /** Items pushed while this many are waiting are dropped. */
18
+ maxQueued: number;
19
+ /**
20
+ * With `sizeOf`, a batch also stops before it would pass this many bytes.
21
+ * A single larger item still goes, alone.
22
+ */
23
+ maxBatchBytes?: number;
24
+ sizeOf?: (item: T) => number;
25
+ }
26
+ export declare class BatchProcessor<T> {
27
+ private readonly options;
28
+ private readonly queue;
29
+ /** The running worker; unset while the queue is empty. */
30
+ private worker;
31
+ private wake;
32
+ private closed;
33
+ private readonly deadline;
34
+ constructor(options: BatchProcessorOptions<T>);
35
+ /** Queue items without blocking or throwing. Returns how many were accepted. */
36
+ push(...items: T[]): number;
37
+ /** Resolves once everything pushed so far has been handled. */
38
+ idle(): Promise<void>;
39
+ /**
40
+ * Drain: refuse new items and send what is queued, a batch at a time as
41
+ * usual but without the batch wait, retrying as `handle` does. At
42
+ * `deadlineMs` the request in flight is aborted and the rest is dropped.
43
+ */
44
+ shutdown(deadlineMs: number): Promise<void>;
45
+ private run;
46
+ /** How many queued items fit the next batch. */
47
+ private nextBatchSize;
48
+ /** Resolves after `ms`, or as soon as a full batch is waiting. */
49
+ private waitUpTo;
50
+ }
51
+ //# sourceMappingURL=batch-processor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batch-processor.d.ts","sourceRoot":"","sources":["../../src/concurrency/batch-processor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,MAAM,WAAW,qBAAqB,CAAC,CAAC;IACtC,kDAAkD;IAClD,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,4DAA4D;IAC5D,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC;CAC9B;AAED,qBAAa,cAAc,CAAC,CAAC;IAQf,OAAO,CAAC,QAAQ,CAAC,OAAO;IAPpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAW;IACjC,0DAA0D;IAC1D,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,IAAI,CAA2B;IACvC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAyB;IAElD,YAA6B,OAAO,EAAE,qBAAqB,CAAC,CAAC,CAAC,EAAI;IAElE,gFAAgF;IAChF,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,GAAG,MAAM,CAQ1B;IAED,+DAA+D;IAC/D,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAEpB;IAED;;;;OAIG;IACG,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAchD;YAEa,GAAG;IAiBjB,gDAAgD;IAChD,OAAO,CAAC,aAAa;IAcrB,kEAAkE;IAClE,OAAO,CAAC,QAAQ;CAcjB"}
@@ -0,0 +1,99 @@
1
+ export class BatchProcessor {
2
+ options;
3
+ queue = [];
4
+ /** The running worker; unset while the queue is empty. */
5
+ worker;
6
+ wake;
7
+ closed = false;
8
+ deadline = new AbortController();
9
+ constructor(options) {
10
+ this.options = options;
11
+ }
12
+ /** Queue items without blocking or throwing. Returns how many were accepted. */
13
+ push(...items) {
14
+ if (this.closed)
15
+ return 0;
16
+ const room = Math.max(this.options.maxQueued - this.queue.length, 0);
17
+ const accepted = items.slice(0, room);
18
+ this.queue.push(...accepted);
19
+ if (this.queue.length >= this.options.maxBatchSize)
20
+ this.wake?.();
21
+ if (!this.worker && this.queue.length > 0)
22
+ this.worker = this.run();
23
+ return accepted.length;
24
+ }
25
+ /** Resolves once everything pushed so far has been handled. */
26
+ idle() {
27
+ return this.worker ?? Promise.resolve();
28
+ }
29
+ /**
30
+ * Drain: refuse new items and send what is queued, a batch at a time as
31
+ * usual but without the batch wait, retrying as `handle` does. At
32
+ * `deadlineMs` the request in flight is aborted and the rest is dropped.
33
+ */
34
+ async shutdown(deadlineMs) {
35
+ this.closed = true;
36
+ this.wake?.();
37
+ let timer;
38
+ const deadline = new Promise((resolve) => {
39
+ timer = setTimeout(resolve, deadlineMs);
40
+ });
41
+ try {
42
+ await Promise.race([this.idle(), deadline]);
43
+ }
44
+ finally {
45
+ clearTimeout(timer);
46
+ this.deadline.abort();
47
+ this.queue.length = 0;
48
+ }
49
+ }
50
+ async run() {
51
+ try {
52
+ while (this.queue.length > 0) {
53
+ if (this.queue.length < this.options.maxBatchSize && !this.closed) {
54
+ await this.waitUpTo(this.options.maxWaitMs);
55
+ }
56
+ const batch = this.queue.splice(0, this.nextBatchSize());
57
+ await this.options
58
+ .handle(batch, this.deadline.signal)
59
+ .catch(() => undefined);
60
+ }
61
+ }
62
+ finally {
63
+ // Same tick as the empty-queue check, so a later push starts a new worker.
64
+ this.worker = undefined;
65
+ }
66
+ }
67
+ /** How many queued items fit the next batch. */
68
+ nextBatchSize() {
69
+ const { maxBatchSize, maxBatchBytes, sizeOf } = this.options;
70
+ const limit = Math.min(maxBatchSize, this.queue.length);
71
+ if (maxBatchBytes === undefined || !sizeOf)
72
+ return limit;
73
+ let count = 0;
74
+ let bytes = 0;
75
+ while (count < limit) {
76
+ bytes += sizeOf(this.queue[count]);
77
+ if (count > 0 && bytes > maxBatchBytes)
78
+ break;
79
+ count++;
80
+ }
81
+ return count;
82
+ }
83
+ /** Resolves after `ms`, or as soon as a full batch is waiting. */
84
+ waitUpTo(ms) {
85
+ return new Promise((resolve) => {
86
+ const timer = setTimeout(() => {
87
+ this.wake = undefined;
88
+ resolve();
89
+ }, ms);
90
+ timer.unref?.();
91
+ this.wake = () => {
92
+ clearTimeout(timer);
93
+ this.wake = undefined;
94
+ resolve();
95
+ };
96
+ });
97
+ }
98
+ }
99
+ //# sourceMappingURL=batch-processor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batch-processor.js","sourceRoot":"","sources":["../../src/concurrency/batch-processor.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,7 @@
12
12
  * middleware.
13
13
  */
14
14
  import type { RuntimeIdentity } from "./identity/index.js";
15
- import { CredentialStoreError, type AgentAuthContext } from "./agent-auth.js";
15
+ import { CredentialStoreError, type AgentAuthContext, type ResolvePrincipalIdentity } from "./agent-auth.js";
16
16
  export { AGENT_AUTH_TIMEOUT_MS, AgentAuthUnknownProviderError, clearPrincipalResolveCacheForTests, CredentialAuthorizationRequiredError, CredentialStoreError, } from "./agent-auth.js";
17
17
  export type { AgentAuthContext, PendingAuthorization, ResolvePrincipalIdentity, } from "./agent-auth.js";
18
18
  export type AgentConnectionOwner = {
@@ -29,6 +29,7 @@ export interface ConnectionRequest {
29
29
  identity?: RuntimeIdentity;
30
30
  }
31
31
  declare const CONNECTION_REFERENCE: unique symbol;
32
+ export declare const TRUSTED_BACKEND_PROVIDER = "trusted_backend";
32
33
  export declare class ConnectionNotFoundError extends Error {
33
34
  readonly slug: string;
34
35
  readonly ownerType: ConnectionOwner["type"];
@@ -86,6 +87,8 @@ export declare function resolveOwnerId(owner: ConnectionOwner, identity: Runtime
86
87
  * Agent Auth env is configured; does not require `LANGSMITH_HOST_PROJECT_ID`.
87
88
  */
88
89
  export declare function resolveAgentAuthContext(identity: RuntimeIdentity | undefined, env?: NodeJS.ProcessEnv, fetchImpl?: typeof fetch, timeoutMs?: number): Promise<AgentAuthContext>;
90
+ /** Resolve an external identity to its Agent Auth principal with the deployment's key. */
91
+ export declare function resolveExternalPrincipalId(identity: ResolvePrincipalIdentity): Promise<string>;
89
92
  /**
90
93
  * Why a Studio resume of a channel's conversation gets no user connections:
91
94
  * the conversation holds content from outside the workspace, which must not
@@ -121,17 +124,7 @@ export declare function channelProvider(identity: RuntimeIdentity | undefined):
121
124
  */
122
125
  export declare function resolveCredentialPrincipalId(identity: RuntimeIdentity | undefined, config: AgentAuthConfig, fetchImpl?: typeof fetch, timeoutMs?: number): Promise<string>;
123
126
  /**
124
- * The LangSmith workspace Agent Auth calls are scoped to. Users set
125
- * `LANGSMITH_WORKSPACE_ID`, which wins. A hosted deployment always runs with
126
- * `LANGSMITH_TENANT_ID`, which the platform sets, so a deploy that never named
127
- * a workspace still has one.
128
- */
129
- export declare function resolveWorkspaceId(env?: NodeJS.ProcessEnv): string | undefined;
130
- /**
131
- * Origin for Agent Auth HTTP calls from `LANGSMITH_ENDPOINT`.
132
- *
133
- * Cloud SaaS revisions omit that reserved name and inject `LANGCHAIN_ENDPOINT`
134
- * instead; read it as the same setting so we do not default to production.
127
+ * Origin for Agent Auth HTTP calls from the LangSmith endpoint.
135
128
  */
136
129
  export declare function resolveAgentAuthBaseUrl(env?: NodeJS.ProcessEnv): string;
137
130
  export declare const connections: Connections;