managed-deepagents 0.9.6-dev.3 → 0.9.6-dev.30

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 (359) hide show
  1. package/README.md +1075 -37
  2. package/dist/agent-auth.d.ts +1 -1
  3. package/dist/agent-auth.d.ts.map +1 -1
  4. package/dist/agent-auth.js +36 -12
  5. package/dist/agent-auth.js.map +1 -1
  6. package/dist/browser.d.ts +37 -0
  7. package/dist/browser.d.ts.map +1 -0
  8. package/dist/browser.js +31 -0
  9. package/dist/browser.js.map +1 -0
  10. package/dist/channels/actor.d.ts +57 -0
  11. package/dist/channels/actor.d.ts.map +1 -0
  12. package/dist/channels/actor.js +24 -0
  13. package/dist/channels/actor.js.map +1 -0
  14. package/dist/channels/assistant-text.d.ts +29 -0
  15. package/dist/channels/assistant-text.d.ts.map +1 -1
  16. package/dist/channels/assistant-text.js +81 -4
  17. package/dist/channels/assistant-text.js.map +1 -1
  18. package/dist/channels/binding.d.ts +20 -1
  19. package/dist/channels/binding.d.ts.map +1 -1
  20. package/dist/channels/binding.js +44 -11
  21. package/dist/channels/binding.js.map +1 -1
  22. package/dist/channels/delivery.d.ts +51 -0
  23. package/dist/channels/delivery.d.ts.map +1 -0
  24. package/dist/channels/delivery.js +424 -0
  25. package/dist/channels/delivery.js.map +1 -0
  26. package/dist/channels/github/app-setup.d.ts +32 -0
  27. package/dist/channels/github/app-setup.d.ts.map +1 -0
  28. package/dist/channels/github/app-setup.js +146 -0
  29. package/dist/channels/github/app-setup.js.map +1 -0
  30. package/dist/channels/github/connections.d.ts +11 -0
  31. package/dist/channels/github/connections.d.ts.map +1 -0
  32. package/dist/channels/github/connections.js +14 -0
  33. package/dist/channels/github/connections.js.map +1 -0
  34. package/dist/channels/github/index.d.ts +12 -0
  35. package/dist/channels/github/index.d.ts.map +1 -0
  36. package/dist/channels/github/index.js +266 -0
  37. package/dist/channels/github/index.js.map +1 -0
  38. package/dist/channels/github/mentions.d.ts +12 -0
  39. package/dist/channels/github/mentions.d.ts.map +1 -0
  40. package/dist/channels/github/mentions.js +185 -0
  41. package/dist/channels/github/mentions.js.map +1 -0
  42. package/dist/channels/github/schema.d.ts +4165 -0
  43. package/dist/channels/github/schema.d.ts.map +1 -0
  44. package/dist/channels/github/schema.js +221 -0
  45. package/dist/channels/github/schema.js.map +1 -0
  46. package/dist/channels/github/types.d.ts +170 -0
  47. package/dist/channels/github/types.d.ts.map +1 -0
  48. package/dist/channels/github/types.js +2 -0
  49. package/dist/channels/github/types.js.map +1 -0
  50. package/dist/channels/http/endpoint.d.ts +137 -0
  51. package/dist/channels/http/endpoint.d.ts.map +1 -0
  52. package/dist/channels/http/endpoint.js +286 -0
  53. package/dist/channels/http/endpoint.js.map +1 -0
  54. package/dist/channels/http/http.d.ts.map +1 -1
  55. package/dist/channels/http/http.js +439 -65
  56. package/dist/channels/http/http.js.map +1 -1
  57. package/dist/channels/http/index.d.ts +8 -1
  58. package/dist/channels/http/index.d.ts.map +1 -1
  59. package/dist/channels/http/index.js +35 -16
  60. package/dist/channels/http/index.js.map +1 -1
  61. package/dist/channels/http/ingress.d.ts +67 -5
  62. package/dist/channels/http/ingress.d.ts.map +1 -1
  63. package/dist/channels/http/ingress.js +155 -43
  64. package/dist/channels/http/ingress.js.map +1 -1
  65. package/dist/channels/http/provider.d.ts +125 -0
  66. package/dist/channels/http/provider.d.ts.map +1 -0
  67. package/dist/channels/http/provider.js +227 -0
  68. package/dist/channels/http/provider.js.map +1 -0
  69. package/dist/channels/http/studio.d.ts +24 -0
  70. package/dist/channels/http/studio.d.ts.map +1 -0
  71. package/dist/channels/http/studio.js +95 -0
  72. package/dist/channels/http/studio.js.map +1 -0
  73. package/dist/channels/http/threads.d.ts +7 -0
  74. package/dist/channels/http/threads.d.ts.map +1 -0
  75. package/dist/channels/http/threads.js +10 -0
  76. package/dist/channels/http/threads.js.map +1 -0
  77. package/dist/channels/http/types.d.ts +166 -2
  78. package/dist/channels/http/types.d.ts.map +1 -1
  79. package/dist/channels/linear/app-setup.d.ts +29 -0
  80. package/dist/channels/linear/app-setup.d.ts.map +1 -0
  81. package/dist/channels/linear/app-setup.js +102 -0
  82. package/dist/channels/linear/app-setup.js.map +1 -0
  83. package/dist/channels/linear/connections.d.ts +11 -0
  84. package/dist/channels/linear/connections.d.ts.map +1 -0
  85. package/dist/channels/linear/connections.js +14 -0
  86. package/dist/channels/linear/connections.js.map +1 -0
  87. package/dist/channels/linear/graphql.d.ts +57 -0
  88. package/dist/channels/linear/graphql.d.ts.map +1 -0
  89. package/dist/channels/linear/graphql.js +167 -0
  90. package/dist/channels/linear/graphql.js.map +1 -0
  91. package/dist/channels/linear/index.d.ts +13 -0
  92. package/dist/channels/linear/index.d.ts.map +1 -0
  93. package/dist/channels/linear/index.js +457 -0
  94. package/dist/channels/linear/index.js.map +1 -0
  95. package/dist/channels/linear/schema.d.ts +1050 -0
  96. package/dist/channels/linear/schema.d.ts.map +1 -0
  97. package/dist/channels/linear/schema.js +255 -0
  98. package/dist/channels/linear/schema.js.map +1 -0
  99. package/dist/channels/linear/types.d.ts +169 -0
  100. package/dist/channels/linear/types.d.ts.map +1 -0
  101. package/dist/channels/linear/types.js +2 -0
  102. package/dist/channels/linear/types.js.map +1 -0
  103. package/dist/channels/message-schema.d.ts +2 -0
  104. package/dist/channels/message-schema.d.ts.map +1 -1
  105. package/dist/channels/message-schema.js +4 -0
  106. package/dist/channels/message-schema.js.map +1 -1
  107. package/dist/channels/messaging-registry.d.ts +16 -0
  108. package/dist/channels/messaging-registry.d.ts.map +1 -1
  109. package/dist/channels/messaging-registry.js +29 -0
  110. package/dist/channels/messaging-registry.js.map +1 -1
  111. package/dist/channels/reserved-connections.d.ts +12 -0
  112. package/dist/channels/reserved-connections.d.ts.map +1 -0
  113. package/dist/channels/reserved-connections.js +55 -0
  114. package/dist/channels/reserved-connections.js.map +1 -0
  115. package/dist/channels/resolve-user-endpoint.d.ts +34 -0
  116. package/dist/channels/resolve-user-endpoint.d.ts.map +1 -0
  117. package/dist/channels/resolve-user-endpoint.js +51 -0
  118. package/dist/channels/resolve-user-endpoint.js.map +1 -0
  119. package/dist/channels/resolve-user.d.ts +95 -0
  120. package/dist/channels/resolve-user.d.ts.map +1 -0
  121. package/dist/channels/resolve-user.js +143 -0
  122. package/dist/channels/resolve-user.js.map +1 -0
  123. package/dist/channels/run-input.d.ts +88 -0
  124. package/dist/channels/run-input.d.ts.map +1 -0
  125. package/dist/channels/run-input.js +177 -0
  126. package/dist/channels/run-input.js.map +1 -0
  127. package/dist/channels/runtime.d.ts +5 -2
  128. package/dist/channels/runtime.d.ts.map +1 -1
  129. package/dist/channels/runtime.js +19 -10
  130. package/dist/channels/runtime.js.map +1 -1
  131. package/dist/channels/schedule-delivery.d.ts +2 -13
  132. package/dist/channels/schedule-delivery.d.ts.map +1 -1
  133. package/dist/channels/schedule-delivery.js +6 -73
  134. package/dist/channels/schedule-delivery.js.map +1 -1
  135. package/dist/channels/slack/api.d.ts +2 -0
  136. package/dist/channels/slack/api.d.ts.map +1 -1
  137. package/dist/channels/slack/api.js +6 -0
  138. package/dist/channels/slack/api.js.map +1 -1
  139. package/dist/channels/slack/connections.d.ts +6 -0
  140. package/dist/channels/slack/connections.d.ts.map +1 -0
  141. package/dist/channels/slack/connections.js +6 -0
  142. package/dist/channels/slack/connections.js.map +1 -0
  143. package/dist/channels/slack/events.d.ts +278 -0
  144. package/dist/channels/slack/events.d.ts.map +1 -0
  145. package/dist/channels/slack/events.js +235 -0
  146. package/dist/channels/slack/events.js.map +1 -0
  147. package/dist/channels/slack/files.d.ts.map +1 -1
  148. package/dist/channels/slack/files.js +2 -3
  149. package/dist/channels/slack/files.js.map +1 -1
  150. package/dist/channels/slack/index.d.ts +90 -2
  151. package/dist/channels/slack/index.d.ts.map +1 -1
  152. package/dist/channels/slack/index.js +188 -6
  153. package/dist/channels/slack/index.js.map +1 -1
  154. package/dist/channels/slack/message-content.d.ts.map +1 -1
  155. package/dist/channels/slack/message-content.js +23 -28
  156. package/dist/channels/slack/message-content.js.map +1 -1
  157. package/dist/channels/slack/status.d.ts +76 -0
  158. package/dist/channels/slack/status.d.ts.map +1 -0
  159. package/dist/channels/slack/status.js +427 -0
  160. package/dist/channels/slack/status.js.map +1 -0
  161. package/dist/channels/source-providers.js +1 -1
  162. package/dist/channels/source-providers.js.map +1 -1
  163. package/dist/channels/trigger/client.d.ts.map +1 -1
  164. package/dist/channels/trigger/client.js +9 -15
  165. package/dist/channels/trigger/client.js.map +1 -1
  166. package/dist/channels/trigger/conversation.d.ts +11 -0
  167. package/dist/channels/trigger/conversation.d.ts.map +1 -0
  168. package/dist/channels/trigger/conversation.js +72 -0
  169. package/dist/channels/trigger/conversation.js.map +1 -0
  170. package/dist/channels/trigger/http.d.ts +130 -4
  171. package/dist/channels/trigger/http.d.ts.map +1 -1
  172. package/dist/channels/trigger/http.js +408 -78
  173. package/dist/channels/trigger/http.js.map +1 -1
  174. package/dist/channels/trigger/identity-context.d.ts.map +1 -1
  175. package/dist/channels/trigger/identity-context.js +2 -5
  176. package/dist/channels/trigger/identity-context.js.map +1 -1
  177. package/dist/channels/trigger/ingress.d.ts +70 -1
  178. package/dist/channels/trigger/ingress.d.ts.map +1 -1
  179. package/dist/channels/trigger/ingress.js +135 -21
  180. package/dist/channels/trigger/ingress.js.map +1 -1
  181. package/dist/channels/trigger/transport.d.ts +10 -0
  182. package/dist/channels/trigger/transport.d.ts.map +1 -1
  183. package/dist/channels/trigger/transport.js +25 -9
  184. package/dist/channels/trigger/transport.js.map +1 -1
  185. package/dist/channels/trigger/types.d.ts +92 -3
  186. package/dist/channels/trigger/types.d.ts.map +1 -1
  187. package/dist/channels/trigger/types.js +37 -0
  188. package/dist/channels/trigger/types.js.map +1 -1
  189. package/dist/channels/types.d.ts +53 -4
  190. package/dist/channels/types.d.ts.map +1 -1
  191. package/dist/channels/types.js +2 -0
  192. package/dist/channels/types.js.map +1 -1
  193. package/dist/connections.d.ts +36 -12
  194. package/dist/connections.d.ts.map +1 -1
  195. package/dist/connections.js +125 -30
  196. package/dist/connections.js.map +1 -1
  197. package/dist/connectors/mcp/langsmith-url.d.ts.map +1 -1
  198. package/dist/connectors/mcp/langsmith-url.js +0 -1
  199. package/dist/connectors/mcp/langsmith-url.js.map +1 -1
  200. package/dist/credential-gate.d.ts +2 -0
  201. package/dist/credential-gate.d.ts.map +1 -1
  202. package/dist/credential-gate.js +37 -3
  203. package/dist/credential-gate.js.map +1 -1
  204. package/dist/define-deep-agent.d.ts +2 -2
  205. package/dist/define-deep-agent.d.ts.map +1 -1
  206. package/dist/define-deep-agent.js +53 -2
  207. package/dist/define-deep-agent.js.map +1 -1
  208. package/dist/identity/index.d.ts.map +1 -1
  209. package/dist/identity/index.js +3 -1
  210. package/dist/identity/index.js.map +1 -1
  211. package/dist/identity/loopback.d.ts +1 -1
  212. package/dist/identity/loopback.d.ts.map +1 -1
  213. package/dist/identity/loopback.js +3 -2
  214. package/dist/identity/loopback.js.map +1 -1
  215. package/dist/identity/options.d.ts +9 -0
  216. package/dist/identity/options.d.ts.map +1 -1
  217. package/dist/identity/options.js +1 -1
  218. package/dist/identity/options.js.map +1 -1
  219. package/dist/identity/slack/links.js +3 -2
  220. package/dist/identity/slack/links.js.map +1 -1
  221. package/dist/identity/types.d.ts +3 -0
  222. package/dist/identity/types.d.ts.map +1 -1
  223. package/dist/index.d.ts +19 -5
  224. package/dist/index.d.ts.map +1 -1
  225. package/dist/index.js +3 -1
  226. package/dist/index.js.map +1 -1
  227. package/dist/ingress/loopback.d.ts +1 -0
  228. package/dist/ingress/loopback.d.ts.map +1 -1
  229. package/dist/ingress/loopback.js +7 -3
  230. package/dist/ingress/loopback.js.map +1 -1
  231. package/dist/ingress/runs.d.ts +74 -1
  232. package/dist/ingress/runs.d.ts.map +1 -1
  233. package/dist/ingress/runs.js +184 -9
  234. package/dist/ingress/runs.js.map +1 -1
  235. package/dist/managed-composition.d.ts +3 -0
  236. package/dist/managed-composition.d.ts.map +1 -1
  237. package/dist/managed-composition.js +29 -13
  238. package/dist/managed-composition.js.map +1 -1
  239. package/dist/namespaces.d.ts +25 -21
  240. package/dist/namespaces.d.ts.map +1 -1
  241. package/dist/namespaces.js +4 -29
  242. package/dist/namespaces.js.map +1 -1
  243. package/dist/runtime/async-subagents.d.ts +27 -0
  244. package/dist/runtime/async-subagents.d.ts.map +1 -0
  245. package/dist/runtime/async-subagents.js +139 -0
  246. package/dist/runtime/async-subagents.js.map +1 -0
  247. package/dist/runtime/auth.d.ts.map +1 -1
  248. package/dist/runtime/auth.js +177 -8
  249. package/dist/runtime/auth.js.map +1 -1
  250. package/dist/runtime/backend.d.ts +7 -0
  251. package/dist/runtime/backend.d.ts.map +1 -1
  252. package/dist/runtime/backend.js +32 -7
  253. package/dist/runtime/backend.js.map +1 -1
  254. package/dist/runtime/browser-facade.d.ts +10 -0
  255. package/dist/runtime/browser-facade.d.ts.map +1 -0
  256. package/dist/runtime/browser-facade.js +23 -0
  257. package/dist/runtime/browser-facade.js.map +1 -0
  258. package/dist/runtime/browser-langsmith.d.ts +143 -0
  259. package/dist/runtime/browser-langsmith.d.ts.map +1 -0
  260. package/dist/runtime/browser-langsmith.js +508 -0
  261. package/dist/runtime/browser-langsmith.js.map +1 -0
  262. package/dist/runtime/browser-recorder.py +831 -0
  263. package/dist/runtime/browser-selection.d.ts +10 -0
  264. package/dist/runtime/browser-selection.d.ts.map +1 -0
  265. package/dist/runtime/browser-selection.js +21 -0
  266. package/dist/runtime/browser-selection.js.map +1 -0
  267. package/dist/runtime/browser.d.ts +138 -0
  268. package/dist/runtime/browser.d.ts.map +1 -0
  269. package/dist/runtime/browser.js +802 -0
  270. package/dist/runtime/browser.js.map +1 -0
  271. package/dist/runtime/channel-icon.d.ts +22 -0
  272. package/dist/runtime/channel-icon.d.ts.map +1 -0
  273. package/dist/runtime/channel-icon.js +81 -0
  274. package/dist/runtime/channel-icon.js.map +1 -0
  275. package/dist/runtime/channel.d.ts +11 -0
  276. package/dist/runtime/channel.d.ts.map +1 -1
  277. package/dist/runtime/channel.js.map +1 -1
  278. package/dist/runtime/graph-build-timing.d.ts +30 -0
  279. package/dist/runtime/graph-build-timing.d.ts.map +1 -0
  280. package/dist/runtime/graph-build-timing.js +50 -0
  281. package/dist/runtime/graph-build-timing.js.map +1 -0
  282. package/dist/runtime/identity-http.d.ts +2 -0
  283. package/dist/runtime/identity-http.d.ts.map +1 -1
  284. package/dist/runtime/identity-http.js +38 -2
  285. package/dist/runtime/identity-http.js.map +1 -1
  286. package/dist/runtime/identity-runtime.d.ts +10 -0
  287. package/dist/runtime/identity-runtime.d.ts.map +1 -1
  288. package/dist/runtime/identity-runtime.js +22 -0
  289. package/dist/runtime/identity-runtime.js.map +1 -1
  290. package/dist/runtime/index.d.ts +38 -1
  291. package/dist/runtime/index.d.ts.map +1 -1
  292. package/dist/runtime/index.js +97 -43
  293. package/dist/runtime/index.js.map +1 -1
  294. package/dist/runtime/langsmith-env.d.ts +19 -0
  295. package/dist/runtime/langsmith-env.d.ts.map +1 -0
  296. package/dist/runtime/langsmith-env.js +38 -0
  297. package/dist/runtime/langsmith-env.js.map +1 -0
  298. package/dist/runtime/managed-thread.d.ts +61 -0
  299. package/dist/runtime/managed-thread.d.ts.map +1 -0
  300. package/dist/runtime/managed-thread.js +76 -0
  301. package/dist/runtime/managed-thread.js.map +1 -0
  302. package/dist/runtime/managed-tools.d.ts +10 -2
  303. package/dist/runtime/managed-tools.d.ts.map +1 -1
  304. package/dist/runtime/managed-tools.js +10 -8
  305. package/dist/runtime/managed-tools.js.map +1 -1
  306. package/dist/runtime/memory/policy.d.ts.map +1 -1
  307. package/dist/runtime/memory/policy.js +1 -3
  308. package/dist/runtime/memory/policy.js.map +1 -1
  309. package/dist/runtime/parent-run.d.ts +33 -0
  310. package/dist/runtime/parent-run.d.ts.map +1 -0
  311. package/dist/runtime/parent-run.js +114 -0
  312. package/dist/runtime/parent-run.js.map +1 -0
  313. package/dist/runtime/run-input.d.ts +14 -1
  314. package/dist/runtime/run-input.d.ts.map +1 -1
  315. package/dist/runtime/run-input.js +100 -7
  316. package/dist/runtime/run-input.js.map +1 -1
  317. package/dist/runtime/sandbox-manager.d.ts +18 -4
  318. package/dist/runtime/sandbox-manager.d.ts.map +1 -1
  319. package/dist/runtime/sandbox-manager.js +57 -20
  320. package/dist/runtime/sandbox-manager.js.map +1 -1
  321. package/dist/runtime/schedule-auth.d.ts +79 -0
  322. package/dist/runtime/schedule-auth.d.ts.map +1 -1
  323. package/dist/runtime/schedule-auth.js +165 -7
  324. package/dist/runtime/schedule-auth.js.map +1 -1
  325. package/dist/runtime/static-entry.d.ts.map +1 -1
  326. package/dist/runtime/static-entry.js +1 -0
  327. package/dist/runtime/static-entry.js.map +1 -1
  328. package/dist/runtime/thread-record.d.ts +88 -0
  329. package/dist/runtime/thread-record.d.ts.map +1 -0
  330. package/dist/runtime/thread-record.js +213 -0
  331. package/dist/runtime/thread-record.js.map +1 -0
  332. package/dist/runtime/types.d.ts +12 -1
  333. package/dist/runtime/types.d.ts.map +1 -1
  334. package/dist/runtime-schedules.d.ts +15 -0
  335. package/dist/runtime-schedules.d.ts.map +1 -1
  336. package/dist/runtime-schedules.js +83 -20
  337. package/dist/runtime-schedules.js.map +1 -1
  338. package/dist/sandbox.d.ts +0 -6
  339. package/dist/sandbox.d.ts.map +1 -1
  340. package/dist/sandbox.js +3 -7
  341. package/dist/sandbox.js.map +1 -1
  342. package/dist/schedule-channel.d.ts +5 -2
  343. package/dist/schedule-channel.d.ts.map +1 -1
  344. package/dist/schedule-channel.js +13 -12
  345. package/dist/schedule-channel.js.map +1 -1
  346. package/dist/telemetry/metadata.d.ts.map +1 -1
  347. package/dist/telemetry/metadata.js +4 -4
  348. package/dist/telemetry/metadata.js.map +1 -1
  349. package/dist/telemetry/otel/exporter.d.ts.map +1 -1
  350. package/dist/telemetry/otel/exporter.js +3 -3
  351. package/dist/telemetry/otel/exporter.js.map +1 -1
  352. package/dist/types.d.ts +19 -2
  353. package/dist/types.d.ts.map +1 -1
  354. package/dist/types.js.map +1 -1
  355. package/dist/values.d.ts +15 -0
  356. package/dist/values.d.ts.map +1 -0
  357. package/dist/values.js +31 -0
  358. package/dist/values.js.map +1 -0
  359. package/package.json +26 -12
@@ -1,11 +1,15 @@
1
1
  import { timingSafeEqual } from "node:crypto";
2
+ import { setTimeout as sleep } from "node:timers/promises";
2
3
  import { HTTPException } from "@langchain/langgraph-sdk/auth";
3
4
  import { z } from "zod";
4
5
  import { validate as isUuid, v5 as uuid5 } from "uuid";
5
6
  import { isStudioAuthUser } from "./identity-runtime.js";
6
7
  import { isLoopbackUrl, resolveLoopbackApiUrl } from "../identity/loopback.js";
8
+ import { resolveServerApiKey } from "./langsmith-env.js";
7
9
  import { readScheduleDeliverTo } from "../channels/schedule-delivery.js";
10
+ import { isTrustedSourceProvider } from "../channels/source-providers.js";
8
11
  import { channelContextSchema, isManagedKey } from "../run-context.js";
12
+ import { THREAD_CONVERSATION_METADATA, parseThreadRecord, stripThreadRecordKeys, } from "./thread-record.js";
9
13
  export const SCHEDULE_HANDOFF_HEADER = "x-mda-schedule-handoff";
10
14
  export const SCHEDULE_LIMIT_PREFIX = "Schedule limit reached";
11
15
  export const scheduleExecutionSchema = z.strictObject({
@@ -29,34 +33,66 @@ const scheduleContextSchema = z.looseObject({
29
33
  }),
30
34
  mda_channel: z.unknown().optional(),
31
35
  });
36
+ /** The thread participant a user schedule runs as, instead of its owner. */
37
+ export const runAsSchema = z.strictObject({
38
+ id: z.string().min(1),
39
+ role: z.enum(["owner", "member"]),
40
+ });
32
41
  const accessSchema = z.strictObject({
33
42
  owner: z.string().min(1),
34
43
  assistant: z.string().uuid(),
35
44
  execution: scheduleExecutionSchema,
36
45
  thread: z.string().uuid().optional(),
46
+ run_as: runAsSchema.optional(),
47
+ });
48
+ const threadHandoffSchema = z.strictObject({
49
+ thread: z.string().uuid(),
50
+ execution: scheduleExecutionSchema,
51
+ conversation: z.strictObject({
52
+ provider: z.string().min(1),
53
+ source_thread_key: z.string().min(1),
54
+ }),
55
+ });
56
+ const handoffGrantSchema = z.strictObject({
57
+ thread: z.string().uuid(),
58
+ execution: scheduleExecutionSchema,
59
+ });
60
+ export const THREAD_HANDOFF_HEADER = "x-mda-thread-handoff";
61
+ const handedOffThreadSchema = z.object({
62
+ metadata: z.record(z.string(), z.unknown()),
37
63
  });
38
64
  /** Use the deployed API URL and server key, or the local dev API. */
39
65
  export function scheduleRequestConfig(access) {
66
+ return handoffRequestConfig(SCHEDULE_HANDOFF_HEADER, access);
67
+ }
68
+ function handoffRequestConfig(header, value) {
40
69
  const hosted = process.env.LANGSMITH_HOST_API_URL?.trim().replace(/\/+$/, "");
41
70
  const base = hosted || resolveLoopbackApiUrl();
42
71
  const secret = process.env.MDA_HANDOFF_SECRET;
43
- const apiKey = process.env.LANGSMITH_API_KEY?.trim();
72
+ const apiKey = resolveServerApiKey();
44
73
  if (!secret ||
45
74
  (!isLoopbackUrl(base) && !(hosted?.startsWith("https://") && apiKey)))
46
75
  throw new Error("Schedules require an authenticated Agent Server");
47
76
  const headers = {
48
77
  "content-type": "application/json",
49
78
  "x-mda-handoff-secret": secret,
50
- [SCHEDULE_HANDOFF_HEADER]: JSON.stringify(access),
79
+ [header]: JSON.stringify(value),
51
80
  };
52
81
  if (hosted && apiKey)
53
82
  headers["x-api-key"] = apiKey;
54
83
  return { base, headers };
55
84
  }
56
- export function scheduleHandoffUser(request) {
57
- const raw = request.headers.get(SCHEDULE_HANDOFF_HEADER);
58
- if (raw === null)
59
- return undefined;
85
+ /** The principal a managed cron fire runs as, from the run's configurable. */
86
+ export function scheduleExecution(configurable) {
87
+ const parsed = z
88
+ .object(scheduleExecutionSchema.shape)
89
+ .safeParse(configurable?.langgraph_auth_user);
90
+ return parsed.success && parsed.data.mda_scheduled_run === true
91
+ ? parsed.data
92
+ : undefined;
93
+ }
94
+ /** Reject a handoff header unless the request carries the handoff secret. */
95
+ function verifyHandoffSecret(request, raw) {
60
96
  const expected = process.env.MDA_HANDOFF_SECRET;
61
97
  const supplied = request.headers.get("x-mda-handoff-secret");
62
98
  if (!expected ||
@@ -65,6 +101,97 @@ export function scheduleHandoffUser(request) {
65
101
  !timingSafeEqual(Buffer.from(expected), Buffer.from(supplied)) ||
66
102
  raw.length > 8192)
67
103
  deny();
104
+ }
105
+ /** The waits before each retry of a handoff that failed for a reason a retry can fix. */
106
+ const HANDOFF_RETRY_DELAYS_MS = [500, 2_000];
107
+ /**
108
+ * Move a scheduled run's thread to the conversation its post started, with
109
+ * that conversation's record and key in `metadata`. The handoff can only follow
110
+ * the post, which names the conversation, so a failed request or an Agent
111
+ * Server error is retried. A retried run finds the thread already moved.
112
+ */
113
+ export async function handOffScheduledThread(handoff, metadata) {
114
+ const { base, headers } = handoffRequestConfig(THREAD_HANDOFF_HEADER, handoff);
115
+ const url = `${base}/threads/${handoff.thread}`;
116
+ for (const delay of [...HANDOFF_RETRY_DELAYS_MS, undefined]) {
117
+ const status = await moveThread(url, headers, metadata, handoff).catch(() => undefined);
118
+ if (status === "moved")
119
+ return;
120
+ if (delay === undefined || (status !== undefined && status < 500))
121
+ throw new Error(`Thread handoff failed${status === undefined ? "" : ` with status ${status}`}`);
122
+ await sleep(delay);
123
+ }
124
+ }
125
+ /** One handoff attempt: `"moved"`, or the status that refused it. */
126
+ async function moveThread(url, headers, metadata, handoff) {
127
+ const request = { redirect: "error", headers };
128
+ const moved = await fetch(url, {
129
+ ...request,
130
+ method: "PATCH",
131
+ body: JSON.stringify({ metadata }),
132
+ signal: AbortSignal.timeout(15_000),
133
+ });
134
+ await moved.body?.cancel();
135
+ if (moved.ok)
136
+ return "moved";
137
+ if (moved.status !== 404)
138
+ return moved.status;
139
+ const current = await fetch(url, {
140
+ ...request,
141
+ signal: AbortSignal.timeout(15_000),
142
+ });
143
+ if (!current.ok) {
144
+ await current.body?.cancel();
145
+ return moved.status;
146
+ }
147
+ const thread = handedOffThreadSchema.safeParse(await current.json());
148
+ return thread.success &&
149
+ thread.data.metadata[THREAD_CONVERSATION_METADATA] ===
150
+ handoff.conversation.source_thread_key
151
+ ? "moved"
152
+ : moved.status;
153
+ }
154
+ /**
155
+ * The conversation a thread handoff names, as a channel caller, for one
156
+ * update of the scheduled run's own thread, or a read that checks it.
157
+ */
158
+ export function threadHandoffUser(request) {
159
+ const raw = request.headers.get(THREAD_HANDOFF_HEADER);
160
+ if (raw === null)
161
+ return undefined;
162
+ verifyHandoffSecret(request, raw);
163
+ let handoff;
164
+ try {
165
+ handoff = threadHandoffSchema.parse(JSON.parse(raw));
166
+ }
167
+ catch {
168
+ return deny();
169
+ }
170
+ const { thread, execution, conversation } = handoff;
171
+ if ((request.method !== "PATCH" && request.method !== "GET") ||
172
+ new URL(request.url).pathname !== `/threads/${thread}` ||
173
+ execution.mda_scheduled_run !== true ||
174
+ !isTrustedSourceProvider(conversation.provider))
175
+ deny();
176
+ return {
177
+ ...execution,
178
+ mda_source_provider: conversation.provider,
179
+ mda_source_thread_id: conversation.source_thread_key,
180
+ mda_thread_handoff: { thread, execution },
181
+ };
182
+ }
183
+ /** The thread and scheduled run a handoff caller may move, if it is one. */
184
+ export function threadHandoffGrant(user) {
185
+ if (!user || typeof user !== "object" || !("mda_thread_handoff" in user))
186
+ return undefined;
187
+ const parsed = handoffGrantSchema.safeParse(user.mda_thread_handoff);
188
+ return parsed.success ? parsed.data : undefined;
189
+ }
190
+ export function scheduleHandoffUser(request) {
191
+ const raw = request.headers.get(SCHEDULE_HANDOFF_HEADER);
192
+ if (raw === null)
193
+ return undefined;
194
+ verifyHandoffSecret(request, raw);
68
195
  let access;
69
196
  try {
70
197
  access = accessSchema.parse(JSON.parse(raw));
@@ -84,7 +211,9 @@ export function scheduleHandoffUser(request) {
84
211
  access.execution.mda_agent_auth_principal_id)
85
212
  deny();
86
213
  }
87
- else if (access.owner !== `user:${access.execution.mda_user_id}` ||
214
+ else if (!access.owner.startsWith("user:") ||
215
+ (access.owner !== `user:${access.execution.mda_user_id}` &&
216
+ access.run_as?.id !== access.execution.mda_user_id) ||
88
217
  access.execution.mda_user_kind === "service" ||
89
218
  !access.execution.mda_agent_auth_principal_id)
90
219
  deny();
@@ -120,6 +249,7 @@ export async function authorizeSchedule(user, action, value) {
120
249
  const access = scheduleAccess(user);
121
250
  // Upstream types `payload` as an open record; this is the subset read here.
122
251
  const data = value;
252
+ guardCronThreadRecord(action, data, access);
123
253
  if (!access) {
124
254
  if (!isStudioAuthUser(user) && !isLocalDevOperator(user))
125
255
  return deny();
@@ -192,6 +322,34 @@ export async function authorizeSchedule(user, action, value) {
192
322
  await checkScheduleLimit(access, data.cron_id);
193
323
  return filters;
194
324
  }
325
+ /**
326
+ * Strip the thread record from a cron unless the runtime creates a new-thread
327
+ * schedule whose record is the execution's own conversation. Cron metadata
328
+ * merges over the thread's, so a same-thread cron never carries one.
329
+ */
330
+ function guardCronThreadRecord(action, data, access) {
331
+ const keepRecord = action === "create" &&
332
+ !!access &&
333
+ !data.thread_id &&
334
+ isScheduleThreadRecord(data.metadata, access.execution);
335
+ // The payload can be the request body, which holds the same metadata.
336
+ stripThreadRecordKeys(data.metadata, { keepRecord });
337
+ stripThreadRecordKeys(data.payload?.metadata, { keepRecord });
338
+ stripThreadRecordKeys(data.payload?.config?.metadata);
339
+ }
340
+ /** Whether a record names the execution's conversation and only it as owner. */
341
+ export function isScheduleThreadRecord(metadata, execution) {
342
+ const record = parseThreadRecord(metadata, { exact: true });
343
+ const [owner, ...others] = record?.participants ?? [];
344
+ return (!!record?.origin &&
345
+ record.origin.channel.provider === execution.mda_source_provider &&
346
+ record.origin.channel.source_thread_key ===
347
+ execution.mda_source_thread_id &&
348
+ (owner === undefined ||
349
+ (owner.id === execution.mda_user_id &&
350
+ owner.role === "owner" &&
351
+ !others.length)));
352
+ }
195
353
  /** Cron routing lives in the run context; the principal is the only configurable entry. */
196
354
  function stampExecution(payload, execution) {
197
355
  const configurable = ((payload.config ??= {}).configurable ??= {});
@@ -1 +1 @@
1
- {"version":3,"file":"schedule-auth.js","sourceRoot":"","sources":["../../src/runtime/schedule-auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schedule-auth.js","sourceRoot":"","sources":["../../src/runtime/schedule-auth.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"static-entry.d.ts","sourceRoot":"","sources":["../../src/runtime/static-entry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAUvD,wEAAwE;AACxE,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,mBAAmB,GAC9B,IAAI,CAMN"}
1
+ {"version":3,"file":"static-entry.d.ts","sourceRoot":"","sources":["../../src/runtime/static-entry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAWvD,wEAAwE;AACxE,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,mBAAmB,GAC9B,IAAI,CAMN"}
@@ -4,6 +4,7 @@ const DYNAMIC_ONLY_FIELDS = [
4
4
  "mcp",
5
5
  "sandbox",
6
6
  "skills",
7
+ "browser",
7
8
  ];
8
9
  /** Reject run-selected fields on a static exported agent definition. */
9
10
  export function assertStaticAgentDefinition(definition) {
@@ -1 +1 @@
1
- {"version":3,"file":"static-entry.js","sourceRoot":"","sources":["../../src/runtime/static-entry.ts"],"names":[],"mappings":"AAEA,MAAM,mBAAmB,GAAG;IAC1B,cAAc;IACd,QAAQ;IACR,KAAK;IACL,SAAS;IACT,QAAQ;CACA,CAAC;AAEX,wEAAwE;AACxE,MAAM,UAAU,2BAA2B,CACzC,UAA+B;IAE/B,KAAK,MAAM,KAAK,IAAI,mBAAmB,EAAE,CAAC;QACxC,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CAAC,KAAK,KAAK,kCAAkC,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"static-entry.js","sourceRoot":"","sources":["../../src/runtime/static-entry.ts"],"names":[],"mappings":"AAEA,MAAM,mBAAmB,GAAG;IAC1B,cAAc;IACd,QAAQ;IACR,KAAK;IACL,SAAS;IACT,QAAQ;IACR,SAAS;CACD,CAAC;AAEX,wEAAwE;AACxE,MAAM,UAAU,2BAA2B,CACzC,UAA+B;IAE/B,KAAK,MAAM,KAAK,IAAI,mBAAmB,EAAE,CAAC;QACxC,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CAAC,KAAK,KAAK,kCAAkC,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,88 @@
1
+ import { z } from "zod";
2
+ import type { ChannelBinding } from "../channels/binding.js";
3
+ export declare const THREAD_RECORD_METADATA = "ls_mda_thread";
4
+ export declare const THREAD_PARTICIPANTS_METADATA = "ls_mda_participants";
5
+ /**
6
+ * The source thread key of a conversation a scheduled run started, on the
7
+ * run's own thread. Ingress runs the conversation's events there.
8
+ */
9
+ export declare const THREAD_CONVERSATION_METADATA = "ls_mda_conversation";
10
+ /** Every thread-record key; only managed ingress may write one. */
11
+ export declare const THREAD_RECORD_METADATA_PREFIX = "ls_mda_";
12
+ export type ThreadRole = "owner" | "member";
13
+ /** A person on the thread, by `principal.id`. */
14
+ export interface ThreadRecordParticipant {
15
+ id: string;
16
+ role: ThreadRole;
17
+ }
18
+ declare const storedOriginSchema: z.ZodObject<{
19
+ channel: z.ZodObject<{
20
+ name: z.ZodString;
21
+ provider: z.ZodString;
22
+ transport: z.ZodEnum<{
23
+ direct: "direct";
24
+ trigger_server: "trigger_server";
25
+ }>;
26
+ source_thread_key: z.ZodString;
27
+ address: z.ZodJSONSchema;
28
+ delivery_id: z.ZodString;
29
+ }, z.core.$strict>;
30
+ sender: z.ZodDefault<z.ZodNullable<z.ZodString>>;
31
+ }, z.core.$strict>;
32
+ /** A Trigger binding's target: the channel, its opaque address and its thread. */
33
+ export declare const triggerTargetSchema: z.ZodObject<{
34
+ channel_id: z.ZodString;
35
+ address: z.ZodRecord<z.ZodString, z.ZodJSONSchema>;
36
+ source_thread_key: z.ZodString;
37
+ }, z.core.$strip>;
38
+ export type StoredOrigin = z.infer<typeof storedOriginSchema>;
39
+ export interface ThreadRecord {
40
+ origin: StoredOrigin | null;
41
+ /** In the order they joined the thread. */
42
+ participants: ThreadRecordParticipant[];
43
+ }
44
+ /** A binding rebuilt from a stored origin: it has no event. */
45
+ export type OriginBinding = Omit<ChannelBinding, "event" | "rawEvent">;
46
+ /**
47
+ * A person is a non-blank principal id outside the `mda:` service namespace
48
+ * (`mda:channel`, `mda:slack`, `mda:schedule:*`).
49
+ */
50
+ export declare function isPersonPrincipal(id: unknown): id is string;
51
+ /** The stored form of a binding: no event, and its target as `address`. */
52
+ export declare function originFromBinding(binding: OriginBinding, sender: string | null): StoredOrigin;
53
+ /** The binding a stored origin was made from, without its event. */
54
+ export declare function bindingFromOrigin(origin: StoredOrigin): OriginBinding | undefined;
55
+ /**
56
+ * The record in a thread's or run's metadata, or `null` when there is none or
57
+ * it is malformed. A malformed origin keeps the participants. With `exact`,
58
+ * as a write must be, a malformed origin or a participant list that does not
59
+ * name exactly the participants rejects the whole record.
60
+ */
61
+ export declare function parseThreadRecord(metadata: unknown, { exact }?: {
62
+ exact?: boolean;
63
+ }): ThreadRecord | null;
64
+ /**
65
+ * The record after a channel event: the event's channel is the origin, and a
66
+ * person who sends it joins, as owner when they are the first.
67
+ */
68
+ export declare function nextThreadRecord(current: ThreadRecord | null, binding: OriginBinding, senderId: string): ThreadRecord;
69
+ /** The metadata keys that store a record. */
70
+ export declare function threadRecordMetadata(record: ThreadRecord): {
71
+ [THREAD_RECORD_METADATA]: Record<string, unknown>;
72
+ [THREAD_PARTICIPANTS_METADATA]: string[];
73
+ };
74
+ /** Whether metadata already stores exactly this record. */
75
+ export declare function storesThreadRecord(metadata: unknown, record: ThreadRecord): boolean;
76
+ /**
77
+ * Remove every thread-record key from a metadata object, in place. With
78
+ * `keepRecord`, the two keys a record is stored in stay; with
79
+ * `keepConversation`, the conversation key stays too.
80
+ */
81
+ export declare function stripThreadRecordKeys(metadata: unknown, { keepRecord, keepConversation, }?: {
82
+ keepRecord?: boolean;
83
+ keepConversation?: boolean;
84
+ }): void;
85
+ /** Whether metadata names any thread-record key. */
86
+ export declare function hasThreadRecordKeys(metadata: unknown): boolean;
87
+ export {};
88
+ //# sourceMappingURL=thread-record.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thread-record.d.ts","sourceRoot":"","sources":["../../src/runtime/thread-record.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAG7D,eAAO,MAAM,sBAAsB,kBAAkB,CAAC;AACtD,eAAO,MAAM,4BAA4B,wBAAwB,CAAC;AAClE;;;GAGG;AACH,eAAO,MAAM,4BAA4B,wBAAwB,CAAC;AAClE,mEAAmE;AACnE,eAAO,MAAM,6BAA6B,YAAY,CAAC;AAEvD,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE5C,iDAAiD;AACjD,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,UAAU,CAAC;CAClB;AAWD,QAAA,MAAM,kBAAkB;;;;;;;;;;;;;kBAGtB,CAAC;AASH,kFAAkF;AAClF,eAAO,MAAM,mBAAmB;;;;iBAI9B,CAAC;AAMH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;IAC5B,2CAA2C;IAC3C,YAAY,EAAE,uBAAuB,EAAE,CAAC;CACzC;AAED,+DAA+D;AAC/D,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,EAAE,OAAO,GAAG,UAAU,CAAC,CAAC;AAWvE;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,OAAO,GAAG,EAAE,IAAI,MAAM,CAE3D;AAED,2EAA2E;AAC3E,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,MAAM,GAAG,IAAI,GACpB,YAAY,CAqBd;AAED,oEAAoE;AACpE,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,YAAY,GACnB,aAAa,GAAG,SAAS,CAqB3B;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,OAAO,EACjB,EAAE,KAAa,EAAE,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GAC1C,YAAY,GAAG,IAAI,CAgCrB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,YAAY,GAAG,IAAI,EAC5B,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,MAAM,GACf,YAAY,CASd;AAED,6CAA6C;AAC7C,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,YAAY,GAAG;IAC1D,CAAC,sBAAsB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC,4BAA4B,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1C,CAYA;AAED,2DAA2D;AAC3D,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,OAAO,EACjB,MAAM,EAAE,YAAY,GACnB,OAAO,CAaT;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,OAAO,EACjB,EACE,UAAkB,EAClB,gBAAwB,GACzB,GAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAC;IAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAAO,GAC3D,IAAI,CAWN;AAED,oDAAoD;AACpD,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAO9D"}
@@ -0,0 +1,213 @@
1
+ /**
2
+ * The thread record: where a thread's conversation lives and who takes part.
3
+ *
4
+ * Managed ingress keeps it in thread metadata, so every run on the thread
5
+ * (Studio resumes and schedules included) reads it from its own config. Thread
6
+ * metadata reaches traces, so the record never holds message text, the event
7
+ * or the provider's raw payload. Keys inside it are snake_case wire data,
8
+ * shared with the Python runtime.
9
+ */
10
+ import { isDeepStrictEqual } from "node:util";
11
+ import { z } from "zod";
12
+ import { logger } from "./log.js";
13
+ export const THREAD_RECORD_METADATA = "ls_mda_thread";
14
+ export const THREAD_PARTICIPANTS_METADATA = "ls_mda_participants";
15
+ /**
16
+ * The source thread key of a conversation a scheduled run started, on the
17
+ * run's own thread. Ingress runs the conversation's events there.
18
+ */
19
+ export const THREAD_CONVERSATION_METADATA = "ls_mda_conversation";
20
+ /** Every thread-record key; only managed ingress may write one. */
21
+ export const THREAD_RECORD_METADATA_PREFIX = "ls_mda_";
22
+ const nonblankString = z.string().refine((value) => value.trim().length > 0);
23
+ const storedChannelSchema = z.strictObject({
24
+ name: nonblankString,
25
+ provider: nonblankString,
26
+ transport: z.enum(["trigger_server", "direct"]),
27
+ source_thread_key: nonblankString,
28
+ address: z.json(),
29
+ delivery_id: nonblankString,
30
+ });
31
+ const storedOriginSchema = z.strictObject({
32
+ channel: storedChannelSchema,
33
+ sender: z.string().nullable().default(null),
34
+ });
35
+ const recordSchema = z.strictObject({
36
+ v: z.literal(1),
37
+ origin: z.unknown().optional(),
38
+ participants: z
39
+ .record(z.string(), z.strictObject({ role: z.enum(["owner", "member"]) }))
40
+ .default({}),
41
+ });
42
+ /** A Trigger binding's target: the channel, its opaque address and its thread. */
43
+ export const triggerTargetSchema = z.object({
44
+ channel_id: nonblankString,
45
+ address: z.record(z.string(), z.json()),
46
+ source_thread_key: nonblankString,
47
+ });
48
+ /** A stored Trigger address: the target's address with its channel id. */
49
+ const triggerAddressSchema = z
50
+ .object({ channel_id: nonblankString })
51
+ .catchall(z.json());
52
+ let reportedMalformed = false;
53
+ /** Say once that a record was ignored, without any of its values. */
54
+ function reportMalformed(part) {
55
+ if (reportedMalformed)
56
+ return;
57
+ reportedMalformed = true;
58
+ logger.warn(`thread ${part} metadata is malformed and was ignored`);
59
+ }
60
+ /**
61
+ * A person is a non-blank principal id outside the `mda:` service namespace
62
+ * (`mda:channel`, `mda:slack`, `mda:schedule:*`).
63
+ */
64
+ export function isPersonPrincipal(id) {
65
+ return typeof id === "string" && !!id.trim() && !id.startsWith("mda:");
66
+ }
67
+ /** The stored form of a binding: no event, and its target as `address`. */
68
+ export function originFromBinding(binding, sender) {
69
+ const trigger = binding.transport === "trigger_server"
70
+ ? triggerTargetSchema.safeParse(binding.target)
71
+ : undefined;
72
+ // A Trigger target that doesn't parse is stored as is, and no run can
73
+ // rebuild it.
74
+ const address = trigger?.success
75
+ ? { channel_id: trigger.data.channel_id, ...trigger.data.address }
76
+ : binding.target;
77
+ return {
78
+ channel: {
79
+ name: binding.name,
80
+ provider: binding.provider,
81
+ transport: binding.transport,
82
+ source_thread_key: binding.sourceThreadKey,
83
+ address,
84
+ delivery_id: binding.deliveryId,
85
+ },
86
+ sender,
87
+ };
88
+ }
89
+ /** The binding a stored origin was made from, without its event. */
90
+ export function bindingFromOrigin(origin) {
91
+ const { channel } = origin;
92
+ let target = channel.address;
93
+ if (channel.transport === "trigger_server") {
94
+ const address = triggerAddressSchema.safeParse(channel.address);
95
+ if (!address.success)
96
+ return undefined;
97
+ const { channel_id, ...rest } = address.data;
98
+ target = {
99
+ channel_id,
100
+ address: rest,
101
+ source_thread_key: channel.source_thread_key,
102
+ };
103
+ }
104
+ return {
105
+ name: channel.name,
106
+ provider: channel.provider,
107
+ transport: channel.transport,
108
+ sourceThreadKey: channel.source_thread_key,
109
+ deliveryId: channel.delivery_id,
110
+ target,
111
+ };
112
+ }
113
+ /**
114
+ * The record in a thread's or run's metadata, or `null` when there is none or
115
+ * it is malformed. A malformed origin keeps the participants. With `exact`,
116
+ * as a write must be, a malformed origin or a participant list that does not
117
+ * name exactly the participants rejects the whole record.
118
+ */
119
+ export function parseThreadRecord(metadata, { exact = false } = {}) {
120
+ if (!isRecord(metadata) || metadata[THREAD_RECORD_METADATA] == null)
121
+ return null;
122
+ const parsed = recordSchema.safeParse(metadata[THREAD_RECORD_METADATA]);
123
+ if (!parsed.success) {
124
+ reportMalformed("record");
125
+ return null;
126
+ }
127
+ const roles = parsed.data.participants;
128
+ const origin = parsed.data.origin == null
129
+ ? undefined
130
+ : storedOriginSchema.safeParse(parsed.data.origin);
131
+ if (origin?.success === false)
132
+ reportMalformed("origin");
133
+ // JSON object keys that look like integers lose their order, so the list
134
+ // carries who joined first.
135
+ const listed = metadata[THREAD_PARTICIPANTS_METADATA];
136
+ const ids = isStringList(listed) &&
137
+ listed.length === Object.keys(roles).length &&
138
+ new Set(listed).size === listed.length &&
139
+ listed.every((id) => Object.hasOwn(roles, id))
140
+ ? listed
141
+ : undefined;
142
+ if (exact && (origin?.success === false || !ids))
143
+ return null;
144
+ return {
145
+ origin: origin?.success ? origin.data : null,
146
+ participants: (ids ?? Object.keys(roles)).map((id) => ({
147
+ id,
148
+ role: roles[id].role,
149
+ })),
150
+ };
151
+ }
152
+ /**
153
+ * The record after a channel event: the event's channel is the origin, and a
154
+ * person who sends it joins, as owner when they are the first.
155
+ */
156
+ export function nextThreadRecord(current, binding, senderId) {
157
+ const sender = isPersonPrincipal(senderId) ? senderId : null;
158
+ const participants = [...(current?.participants ?? [])];
159
+ if (sender !== null && !participants.some(({ id }) => id === sender))
160
+ participants.push({
161
+ id: sender,
162
+ role: participants.length ? "member" : "owner",
163
+ });
164
+ return { origin: originFromBinding(binding, sender), participants };
165
+ }
166
+ /** The metadata keys that store a record. */
167
+ export function threadRecordMetadata(record) {
168
+ return {
169
+ [THREAD_RECORD_METADATA]: {
170
+ v: 1,
171
+ // Absent rather than `null`: a SQLite metadata patch deletes nulls.
172
+ ...(record.origin !== null && { origin: record.origin }),
173
+ participants: Object.fromEntries(record.participants.map(({ id, role }) => [id, { role }])),
174
+ },
175
+ [THREAD_PARTICIPANTS_METADATA]: record.participants.map(({ id }) => id),
176
+ };
177
+ }
178
+ /** Whether metadata already stores exactly this record. */
179
+ export function storesThreadRecord(metadata, record) {
180
+ const stored = threadRecordMetadata(record);
181
+ return (isRecord(metadata) &&
182
+ isDeepStrictEqual(metadata[THREAD_RECORD_METADATA], stored[THREAD_RECORD_METADATA]) &&
183
+ isDeepStrictEqual(metadata[THREAD_PARTICIPANTS_METADATA], stored[THREAD_PARTICIPANTS_METADATA]));
184
+ }
185
+ /**
186
+ * Remove every thread-record key from a metadata object, in place. With
187
+ * `keepRecord`, the two keys a record is stored in stay; with
188
+ * `keepConversation`, the conversation key stays too.
189
+ */
190
+ export function stripThreadRecordKeys(metadata, { keepRecord = false, keepConversation = false, } = {}) {
191
+ if (!isRecord(metadata))
192
+ return;
193
+ for (const key of Object.keys(metadata)) {
194
+ const kept = (keepRecord &&
195
+ (key === THREAD_RECORD_METADATA ||
196
+ key === THREAD_PARTICIPANTS_METADATA)) ||
197
+ (keepConversation && key === THREAD_CONVERSATION_METADATA);
198
+ if (key.startsWith(THREAD_RECORD_METADATA_PREFIX) && !kept)
199
+ delete metadata[key];
200
+ }
201
+ }
202
+ /** Whether metadata names any thread-record key. */
203
+ export function hasThreadRecordKeys(metadata) {
204
+ return (isRecord(metadata) &&
205
+ Object.keys(metadata).some((key) => key.startsWith(THREAD_RECORD_METADATA_PREFIX)));
206
+ }
207
+ function isStringList(value) {
208
+ return (Array.isArray(value) && value.every((item) => typeof item === "string"));
209
+ }
210
+ function isRecord(value) {
211
+ return typeof value === "object" && value !== null && !Array.isArray(value);
212
+ }
213
+ //# sourceMappingURL=thread-record.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thread-record.js","sourceRoot":"","sources":["../../src/runtime/thread-record.ts"],"names":[],"mappings":"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"}