managed-deepagents 0.10.0-dev.17 → 0.10.0-dev.19

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 (257) hide show
  1. package/README.md +530 -83
  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 +43 -0
  7. package/dist/channels/actor.d.ts.map +1 -0
  8. package/dist/channels/actor.js +2 -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 +72 -1
  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 +36 -0
  19. package/dist/channels/delivery.d.ts.map +1 -0
  20. package/dist/channels/delivery.js +359 -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.map +1 -1
  27. package/dist/channels/github/index.js +21 -33
  28. package/dist/channels/github/index.js.map +1 -1
  29. package/dist/channels/github/schema.d.ts +50 -1
  30. package/dist/channels/github/schema.d.ts.map +1 -1
  31. package/dist/channels/github/schema.js +12 -0
  32. package/dist/channels/github/schema.js.map +1 -1
  33. package/dist/channels/http/endpoint.d.ts +6 -4
  34. package/dist/channels/http/endpoint.d.ts.map +1 -1
  35. package/dist/channels/http/endpoint.js.map +1 -1
  36. package/dist/channels/http/http.d.ts.map +1 -1
  37. package/dist/channels/http/http.js +4 -10
  38. package/dist/channels/http/http.js.map +1 -1
  39. package/dist/channels/http/index.d.ts +6 -0
  40. package/dist/channels/http/index.d.ts.map +1 -1
  41. package/dist/channels/http/index.js +32 -23
  42. package/dist/channels/http/index.js.map +1 -1
  43. package/dist/channels/http/ingress.d.ts +2 -2
  44. package/dist/channels/http/ingress.d.ts.map +1 -1
  45. package/dist/channels/http/ingress.js +9 -21
  46. package/dist/channels/http/ingress.js.map +1 -1
  47. package/dist/channels/http/provider.d.ts +10 -5
  48. package/dist/channels/http/provider.d.ts.map +1 -1
  49. package/dist/channels/http/provider.js +17 -10
  50. package/dist/channels/http/provider.js.map +1 -1
  51. package/dist/channels/http/studio.d.ts +5 -5
  52. package/dist/channels/http/studio.d.ts.map +1 -1
  53. package/dist/channels/http/studio.js +4 -6
  54. package/dist/channels/http/studio.js.map +1 -1
  55. package/dist/channels/http/types.d.ts +7 -1
  56. package/dist/channels/http/types.d.ts.map +1 -1
  57. package/dist/channels/linear/app-setup.d.ts +29 -0
  58. package/dist/channels/linear/app-setup.d.ts.map +1 -0
  59. package/dist/channels/linear/app-setup.js +102 -0
  60. package/dist/channels/linear/app-setup.js.map +1 -0
  61. package/dist/channels/linear/index.d.ts.map +1 -1
  62. package/dist/channels/linear/index.js +26 -65
  63. package/dist/channels/linear/index.js.map +1 -1
  64. package/dist/channels/linear/schema.d.ts +11 -25
  65. package/dist/channels/linear/schema.d.ts.map +1 -1
  66. package/dist/channels/linear/schema.js +6 -0
  67. package/dist/channels/linear/schema.js.map +1 -1
  68. package/dist/channels/linear/types.d.ts +9 -2
  69. package/dist/channels/linear/types.d.ts.map +1 -1
  70. package/dist/channels/messaging-registry.d.ts +16 -0
  71. package/dist/channels/messaging-registry.d.ts.map +1 -1
  72. package/dist/channels/messaging-registry.js +29 -0
  73. package/dist/channels/messaging-registry.js.map +1 -1
  74. package/dist/channels/reserved-connections.d.ts.map +1 -1
  75. package/dist/channels/reserved-connections.js +10 -0
  76. package/dist/channels/reserved-connections.js.map +1 -1
  77. package/dist/channels/run-input.d.ts +11 -0
  78. package/dist/channels/run-input.d.ts.map +1 -1
  79. package/dist/channels/run-input.js +18 -8
  80. package/dist/channels/run-input.js.map +1 -1
  81. package/dist/channels/runtime.d.ts +5 -2
  82. package/dist/channels/runtime.d.ts.map +1 -1
  83. package/dist/channels/runtime.js +19 -10
  84. package/dist/channels/runtime.js.map +1 -1
  85. package/dist/channels/schedule-delivery.d.ts +2 -13
  86. package/dist/channels/schedule-delivery.d.ts.map +1 -1
  87. package/dist/channels/schedule-delivery.js +6 -73
  88. package/dist/channels/schedule-delivery.js.map +1 -1
  89. package/dist/channels/slack/api.d.ts +2 -0
  90. package/dist/channels/slack/api.d.ts.map +1 -1
  91. package/dist/channels/slack/api.js +6 -0
  92. package/dist/channels/slack/api.js.map +1 -1
  93. package/dist/channels/slack/connections.d.ts +6 -0
  94. package/dist/channels/slack/connections.d.ts.map +1 -0
  95. package/dist/channels/slack/connections.js +6 -0
  96. package/dist/channels/slack/connections.js.map +1 -0
  97. package/dist/channels/slack/events.d.ts +272 -0
  98. package/dist/channels/slack/events.d.ts.map +1 -0
  99. package/dist/channels/slack/events.js +235 -0
  100. package/dist/channels/slack/events.js.map +1 -0
  101. package/dist/channels/slack/files.d.ts.map +1 -1
  102. package/dist/channels/slack/files.js +2 -3
  103. package/dist/channels/slack/files.js.map +1 -1
  104. package/dist/channels/slack/index.d.ts +44 -2
  105. package/dist/channels/slack/index.d.ts.map +1 -1
  106. package/dist/channels/slack/index.js +127 -3
  107. package/dist/channels/slack/index.js.map +1 -1
  108. package/dist/channels/slack/message-content.d.ts.map +1 -1
  109. package/dist/channels/slack/message-content.js +23 -28
  110. package/dist/channels/slack/message-content.js.map +1 -1
  111. package/dist/channels/slack/status.d.ts +76 -0
  112. package/dist/channels/slack/status.d.ts.map +1 -0
  113. package/dist/channels/slack/status.js +427 -0
  114. package/dist/channels/slack/status.js.map +1 -0
  115. package/dist/channels/trigger/client.d.ts.map +1 -1
  116. package/dist/channels/trigger/client.js +6 -9
  117. package/dist/channels/trigger/client.js.map +1 -1
  118. package/dist/channels/trigger/conversation.d.ts +11 -0
  119. package/dist/channels/trigger/conversation.d.ts.map +1 -0
  120. package/dist/channels/trigger/conversation.js +72 -0
  121. package/dist/channels/trigger/conversation.js.map +1 -0
  122. package/dist/channels/trigger/http.d.ts +123 -4
  123. package/dist/channels/trigger/http.d.ts.map +1 -1
  124. package/dist/channels/trigger/http.js +331 -76
  125. package/dist/channels/trigger/http.js.map +1 -1
  126. package/dist/channels/trigger/ingress.d.ts +70 -1
  127. package/dist/channels/trigger/ingress.d.ts.map +1 -1
  128. package/dist/channels/trigger/ingress.js +136 -7
  129. package/dist/channels/trigger/ingress.js.map +1 -1
  130. package/dist/channels/trigger/transport.d.ts +10 -0
  131. package/dist/channels/trigger/transport.d.ts.map +1 -1
  132. package/dist/channels/trigger/transport.js +25 -9
  133. package/dist/channels/trigger/transport.js.map +1 -1
  134. package/dist/channels/trigger/types.d.ts +92 -3
  135. package/dist/channels/trigger/types.d.ts.map +1 -1
  136. package/dist/channels/trigger/types.js +36 -0
  137. package/dist/channels/trigger/types.js.map +1 -1
  138. package/dist/channels/types.d.ts +43 -4
  139. package/dist/channels/types.d.ts.map +1 -1
  140. package/dist/channels/types.js +2 -0
  141. package/dist/channels/types.js.map +1 -1
  142. package/dist/define-deep-agent.d.ts +2 -2
  143. package/dist/define-deep-agent.d.ts.map +1 -1
  144. package/dist/define-deep-agent.js +53 -8
  145. package/dist/define-deep-agent.js.map +1 -1
  146. package/dist/index.d.ts +9 -4
  147. package/dist/index.d.ts.map +1 -1
  148. package/dist/index.js +2 -1
  149. package/dist/index.js.map +1 -1
  150. package/dist/ingress/runs.d.ts +22 -0
  151. package/dist/ingress/runs.d.ts.map +1 -1
  152. package/dist/ingress/runs.js +45 -1
  153. package/dist/ingress/runs.js.map +1 -1
  154. package/dist/managed-composition.d.ts +3 -0
  155. package/dist/managed-composition.d.ts.map +1 -1
  156. package/dist/managed-composition.js +29 -13
  157. package/dist/managed-composition.js.map +1 -1
  158. package/dist/namespaces.d.ts +0 -21
  159. package/dist/namespaces.d.ts.map +1 -1
  160. package/dist/namespaces.js +0 -29
  161. package/dist/namespaces.js.map +1 -1
  162. package/dist/runtime/async-subagents.d.ts +27 -0
  163. package/dist/runtime/async-subagents.d.ts.map +1 -0
  164. package/dist/runtime/async-subagents.js +139 -0
  165. package/dist/runtime/async-subagents.js.map +1 -0
  166. package/dist/runtime/auth.d.ts +1 -2
  167. package/dist/runtime/auth.d.ts.map +1 -1
  168. package/dist/runtime/auth.js +125 -63
  169. package/dist/runtime/auth.js.map +1 -1
  170. package/dist/runtime/backend.d.ts +7 -0
  171. package/dist/runtime/backend.d.ts.map +1 -1
  172. package/dist/runtime/backend.js +32 -7
  173. package/dist/runtime/backend.js.map +1 -1
  174. package/dist/runtime/browser-facade.d.ts +10 -0
  175. package/dist/runtime/browser-facade.d.ts.map +1 -0
  176. package/dist/runtime/browser-facade.js +23 -0
  177. package/dist/runtime/browser-facade.js.map +1 -0
  178. package/dist/runtime/browser-langsmith.d.ts +108 -0
  179. package/dist/runtime/browser-langsmith.d.ts.map +1 -0
  180. package/dist/runtime/browser-langsmith.js +379 -0
  181. package/dist/runtime/browser-langsmith.js.map +1 -0
  182. package/dist/runtime/browser-selection.d.ts +10 -0
  183. package/dist/runtime/browser-selection.d.ts.map +1 -0
  184. package/dist/runtime/browser-selection.js +21 -0
  185. package/dist/runtime/browser-selection.js.map +1 -0
  186. package/dist/runtime/browser.d.ts +125 -0
  187. package/dist/runtime/browser.d.ts.map +1 -0
  188. package/dist/runtime/browser.js +606 -0
  189. package/dist/runtime/browser.js.map +1 -0
  190. package/dist/runtime/identity-runtime.d.ts +4 -9
  191. package/dist/runtime/identity-runtime.d.ts.map +1 -1
  192. package/dist/runtime/identity-runtime.js +12 -25
  193. package/dist/runtime/identity-runtime.js.map +1 -1
  194. package/dist/runtime/index.d.ts +38 -1
  195. package/dist/runtime/index.d.ts.map +1 -1
  196. package/dist/runtime/index.js +74 -34
  197. package/dist/runtime/index.js.map +1 -1
  198. package/dist/runtime/managed-thread.d.ts +61 -0
  199. package/dist/runtime/managed-thread.d.ts.map +1 -0
  200. package/dist/runtime/managed-thread.js +76 -0
  201. package/dist/runtime/managed-thread.js.map +1 -0
  202. package/dist/runtime/managed-tools.d.ts +10 -2
  203. package/dist/runtime/managed-tools.d.ts.map +1 -1
  204. package/dist/runtime/managed-tools.js +10 -8
  205. package/dist/runtime/managed-tools.js.map +1 -1
  206. package/dist/runtime/memory/policy.d.ts.map +1 -1
  207. package/dist/runtime/memory/policy.js +1 -3
  208. package/dist/runtime/memory/policy.js.map +1 -1
  209. package/dist/runtime/parent-run.d.ts +33 -0
  210. package/dist/runtime/parent-run.d.ts.map +1 -0
  211. package/dist/runtime/parent-run.js +114 -0
  212. package/dist/runtime/parent-run.js.map +1 -0
  213. package/dist/runtime/run-input.d.ts +14 -1
  214. package/dist/runtime/run-input.d.ts.map +1 -1
  215. package/dist/runtime/run-input.js +75 -6
  216. package/dist/runtime/run-input.js.map +1 -1
  217. package/dist/runtime/sandbox-manager.d.ts +14 -1
  218. package/dist/runtime/sandbox-manager.d.ts.map +1 -1
  219. package/dist/runtime/sandbox-manager.js +34 -9
  220. package/dist/runtime/sandbox-manager.js.map +1 -1
  221. package/dist/runtime/schedule-auth.d.ts +79 -0
  222. package/dist/runtime/schedule-auth.d.ts.map +1 -1
  223. package/dist/runtime/schedule-auth.js +163 -6
  224. package/dist/runtime/schedule-auth.js.map +1 -1
  225. package/dist/runtime/static-entry.d.ts.map +1 -1
  226. package/dist/runtime/static-entry.js +1 -0
  227. package/dist/runtime/static-entry.js.map +1 -1
  228. package/dist/runtime/thread-record.d.ts +88 -0
  229. package/dist/runtime/thread-record.d.ts.map +1 -0
  230. package/dist/runtime/thread-record.js +213 -0
  231. package/dist/runtime/thread-record.js.map +1 -0
  232. package/dist/runtime/types.d.ts +12 -1
  233. package/dist/runtime/types.d.ts.map +1 -1
  234. package/dist/runtime-schedules.d.ts +13 -0
  235. package/dist/runtime-schedules.d.ts.map +1 -1
  236. package/dist/runtime-schedules.js +83 -20
  237. package/dist/runtime-schedules.js.map +1 -1
  238. package/dist/sandbox.d.ts +0 -6
  239. package/dist/sandbox.d.ts.map +1 -1
  240. package/dist/sandbox.js +3 -7
  241. package/dist/sandbox.js.map +1 -1
  242. package/dist/schedule-channel.d.ts +5 -2
  243. package/dist/schedule-channel.d.ts.map +1 -1
  244. package/dist/schedule-channel.js +13 -12
  245. package/dist/schedule-channel.js.map +1 -1
  246. package/dist/types.d.ts +19 -2
  247. package/dist/types.d.ts.map +1 -1
  248. package/dist/types.js.map +1 -1
  249. package/dist/values.d.ts +15 -0
  250. package/dist/values.d.ts.map +1 -0
  251. package/dist/values.js +31 -0
  252. package/dist/values.js.map +1 -0
  253. package/package.json +22 -8
  254. package/dist/channels/http/reply.d.ts +0 -20
  255. package/dist/channels/http/reply.d.ts.map +0 -1
  256. package/dist/channels/http/reply.js +0 -116
  257. package/dist/channels/http/reply.js.map +0 -1
@@ -0,0 +1,76 @@
1
+ /** `runtime.thread`: the run's thread, the conversation it came from, and who takes part. */
2
+ import { getConfig } from "@langchain/langgraph";
3
+ import { currentChannelBinding, resolveChannelBinding, resolveOriginBinding, runtimeChannelFor, } from "../channels/binding.js";
4
+ import { parseThreadRecord } from "./thread-record.js";
5
+ /**
6
+ * Build a run's thread from its config. The origin is the event's own
7
+ * channel when ingress delivered one; otherwise the record's.
8
+ *
9
+ * The record comes from the run's metadata, which merges the thread's. The
10
+ * auth handler strips record keys from every write except managed ingress's,
11
+ * and in-process `/noauth` calls come from the agent's own trusted code.
12
+ */
13
+ export function resolveRunThread(input) {
14
+ const record = parseThreadRecord(input.metadata);
15
+ const participants = Object.freeze((record?.participants ?? []).map((participant) => Object.freeze({ ...participant })));
16
+ const stored = record?.origin && resolveOriginBinding(record.origin);
17
+ const origin = input.binding ??
18
+ (stored ? { ...stored, event: scheduleEvent(input) } : undefined);
19
+ const channel = origin && runtimeChannelFor(origin, origin.event);
20
+ const sender = participants.find(({ id }) => id === record?.origin?.sender) ?? null;
21
+ const threadOrigin = channel ? Object.freeze({ channel, sender }) : null;
22
+ const id = input.configurable?.thread_id;
23
+ const thread = typeof id === "string" && id
24
+ ? Object.freeze({ id, origin: threadOrigin, participants })
25
+ : undefined;
26
+ return {
27
+ ...(thread && { thread }),
28
+ ...(channel && { channel }),
29
+ ...(origin && { origin }),
30
+ };
31
+ }
32
+ /**
33
+ * The schedule event of a managed cron run, read from the schedule's spec,
34
+ * which the cron's metadata carries into the run.
35
+ */
36
+ function scheduleEvent(input) {
37
+ const user = input.configurable?.langgraph_auth_user;
38
+ const metadata = isRecord(input.metadata) ? input.metadata : {};
39
+ if (!isRecord(user) ||
40
+ user.mda_scheduled_run !== true ||
41
+ metadata.mda_managed !== true)
42
+ return null;
43
+ const spec = isRecord(metadata.mda_schedule_spec)
44
+ ? metadata.mda_schedule_spec
45
+ : {};
46
+ return { type: "schedule", new_thread: spec.new_thread === true };
47
+ }
48
+ /**
49
+ * The thread the run built when it started, else one built from a tool or
50
+ * middleware runtime and the running LangGraph node.
51
+ */
52
+ export function currentRunThread(runtime, configurable) {
53
+ const built = currentChannelBinding.getStore()?.thread;
54
+ if (built)
55
+ return built;
56
+ const config = isRecord(runtime?.config) ? runtime.config : undefined;
57
+ const ambient = ambientConfig();
58
+ return resolveRunThread({
59
+ configurable,
60
+ metadata: isRecord(config?.metadata) ? config.metadata : ambient?.metadata,
61
+ binding: resolveChannelBinding(runtime?.context ?? ambient?.context, configurable),
62
+ });
63
+ }
64
+ function ambientConfig() {
65
+ try {
66
+ return getConfig();
67
+ }
68
+ catch {
69
+ // Outside a runnable context.
70
+ return undefined;
71
+ }
72
+ }
73
+ export function isRecord(value) {
74
+ return typeof value === "object" && value !== null && !Array.isArray(value);
75
+ }
76
+ //# sourceMappingURL=managed-thread.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"managed-thread.js","sourceRoot":"","sources":["../../src/runtime/managed-thread.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import type { Runtime } from "langchain";
2
2
  import type { ClientTool, ServerTool, ToolRuntime } from "@langchain/core/tools";
3
3
  import type { BackendProtocolV2 } from "deepagents";
4
4
  import type { RuntimeChannel } from "../channels/types.js";
5
+ import { type ManagedThread } from "./managed-thread.js";
5
6
  import { type RuntimeSchedules } from "../runtime-schedules.js";
6
7
  import type { ManagedServerInfo, RuntimeConfigLike } from "./identity-runtime.js";
7
8
  export type { ManagedServerInfo, RuntimeConfigLike, } from "./identity-runtime.js";
@@ -22,8 +23,15 @@ export interface ManagedRuntimeExtras {
22
23
  */
23
24
  serverInfo?: ManagedServerInfo;
24
25
  /**
25
- * Present only for channel-originated runs. Ordinary HTTP and schedule runs
26
- * leave this undefined.
26
+ * The run's thread: its id, the channel conversation it came from, and the
27
+ * people on it. Set in every run.
28
+ */
29
+ thread?: ManagedThread;
30
+ /**
31
+ * @deprecated Use `runtime.thread.origin.channel`. Removed in 0.11.
32
+ *
33
+ * The same value: the thread's channel, absent on threads no channel
34
+ * started.
27
35
  */
28
36
  channel?: RuntimeChannel;
29
37
  /** Present only when the project declares a managed sandbox. */
@@ -1 +1 @@
1
- {"version":3,"file":"managed-tools.d.ts","sourceRoot":"","sources":["../../src/runtime/managed-tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EACV,WAAW,EACZ,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAGpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,yBAAyB,CAAC;AAMjC,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,uBAAuB,CAAC;AAE/B,YAAY,EACV,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAE/B,4EAA4E;AAC5E,MAAM,MAAM,qBAAqB,GAAG,CAClC,OAAO,EAAE,OAAO,KACb,iBAAiB,GAAG,SAAS,CAAC;AAEnC;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC;AAOvC,+DAA+D;AAC/D,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B;;;OAGG;IACH,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,gEAAgE;IAChE,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B;;;;OAIG;IACH,SAAS,CAAC,EAAE,gBAAgB,CAAC;CAC9B;AAED,iDAAiD;AACjD,MAAM,MAAM,cAAc,CAAC,QAAQ,GAAG,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC,GAChE,oBAAoB,CAAC;AAEvB,uEAAuE;AACvE,MAAM,WAAW,kBAAkB,CAAC,MAAM,GAAG,OAAO,EAAE,QAAQ,GAAG,OAAO,CACtE,SAAQ,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,oBAAoB;CAAG;AAEhE,uDAAuD;AACvD,MAAM,MAAM,uBAAuB,CACjC,MAAM,GAAG,OAAO,EAChB,QAAQ,GAAG,OAAO,IAChB,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAEzC;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,iBAAiB,GAAG,SAAS,EACtC,cAAc,CAAC,EAAE,qBAAqB,GACrC,oBAAoB,GAAG;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACxC,CAmCA;AA0BD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,aAAa,EACxD,WAAW,EAAE,CAAC,EACd,cAAc,CAAC,EAAE,qBAAqB,GACrC,CAAC,CAuCH;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,EAC3E,KAAK,EAAE,SAAS,CAAC,EAAE,EACnB,cAAc,CAAC,EAAE,qBAAqB,GACrC,CAAC,EAAE,CAML"}
1
+ {"version":3,"file":"managed-tools.d.ts","sourceRoot":"","sources":["../../src/runtime/managed-tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EACV,WAAW,EACZ,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAoB,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,yBAAyB,CAAC;AAMjC,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,uBAAuB,CAAC;AAE/B,YAAY,EACV,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAE/B,4EAA4E;AAC5E,MAAM,MAAM,qBAAqB,GAAG,CAClC,OAAO,EAAE,OAAO,KACb,iBAAiB,GAAG,SAAS,CAAC;AAEnC;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC;AAOvC,+DAA+D;AAC/D,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B;;;OAGG;IACH,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,gEAAgE;IAChE,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B;;;;OAIG;IACH,SAAS,CAAC,EAAE,gBAAgB,CAAC;CAC9B;AAED,iDAAiD;AACjD,MAAM,MAAM,cAAc,CAAC,QAAQ,GAAG,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC,GAChE,oBAAoB,CAAC;AAEvB,uEAAuE;AACvE,MAAM,WAAW,kBAAkB,CAAC,MAAM,GAAG,OAAO,EAAE,QAAQ,GAAG,OAAO,CACtE,SAAQ,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,oBAAoB;CAAG;AAEhE,uDAAuD;AACvD,MAAM,MAAM,uBAAuB,CACjC,MAAM,GAAG,OAAO,EAChB,QAAQ,GAAG,OAAO,IAChB,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAEzC;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,iBAAiB,GAAG,SAAS,EACtC,cAAc,CAAC,EAAE,qBAAqB,GACrC,oBAAoB,GAAG;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACxC,CAuCA;AA0BD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,aAAa,EACxD,WAAW,EAAE,CAAC,EACd,cAAc,CAAC,EAAE,qBAAqB,GACrC,CAAC,CAuCH;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,EAC3E,KAAK,EAAE,SAAS,CAAC,EAAE,EACnB,cAAc,CAAC,EAAE,qBAAqB,GACrC,CAAC,EAAE,CAML"}
@@ -1,4 +1,4 @@
1
- import { resolveRuntimeChannel } from "../channels/binding.js";
1
+ import { currentRunThread } from "./managed-thread.js";
2
2
  import { createRuntimeSchedules, } from "../runtime-schedules.js";
3
3
  import { buildManagedServerInfo, resolveRuntimeConfigurable, sanitizeConfigurable, } from "./identity-runtime.js";
4
4
  /** True for tools the seam can wrap; provider-native tool dicts are skipped. */
@@ -24,14 +24,16 @@ export function managedRuntimeOverrides(runtime, backendFactory) {
24
24
  if (serverInfo) {
25
25
  overrides.serverInfo = serverInfo;
26
26
  }
27
- if (runtime?.channel) {
28
- overrides.channel = runtime.channel;
27
+ const run = runtime?.thread === undefined
28
+ ? currentRunThread(runtime, configurable)
29
+ : {};
30
+ const thread = runtime?.thread ?? run.thread;
31
+ if (thread) {
32
+ overrides.thread = thread;
29
33
  }
30
- else {
31
- const fromBinding = resolveRuntimeChannel(runtime?.context, configurable);
32
- if (fromBinding) {
33
- overrides.channel = fromBinding;
34
- }
34
+ const channel = runtime?.channel ?? run.channel;
35
+ if (channel) {
36
+ overrides.channel = channel;
35
37
  }
36
38
  if (configurable) {
37
39
  const sanitized = sanitizeConfigurable(configurable);
@@ -1 +1 @@
1
- {"version":3,"file":"managed-tools.js","sourceRoot":"","sources":["../../src/runtime/managed-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"managed-tools.js","sourceRoot":"","sources":["../../src/runtime/managed-tools.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../../src/runtime/memory/policy.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,gBAAgB,EAEhB,eAAe,EAChB,MAAM,uBAAuB,CAAC;AAO/B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAGpD,wBAAgB,0BAA0B,CACxC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAChD;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,OAAO,CAAA;CAAE,GAAG,SAAS,CAenD;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,sBAAsB,GAAG,IAAI,CAAC;CAC7C;AAWD,sEAAsE;AACtE,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,eAAe,CAAC,KAAK,CAAC,EAC7B,MAAM,CAAC,EAAE,gBAAgB,EACzB,aAAa,CAAC,EAAE,OAAO,EACvB,yBAAyB,UAAQ,GAChC,OAAO,CAAC,gBAAgB,CAAC,CA2B3B;AAED,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,GAAG,SAAS,EAC1C,MAAM,CAAC,EAAE,gBAAgB,EACzB,aAAa,CAAC,EAAE,OAAO,EACvB,KAAK,UAAyB,GAC7B,OAAO,CAAC,OAAO,CAAC,CAKlB"}
1
+ {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../../src/runtime/memory/policy.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,gBAAgB,EAEhB,eAAe,EAChB,MAAM,uBAAuB,CAAC;AAO/B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAIpD,wBAAgB,0BAA0B,CACxC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAChD;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,OAAO,CAAA;CAAE,GAAG,SAAS,CAenD;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,sBAAsB,GAAG,IAAI,CAAC;CAC7C;AAWD,sEAAsE;AACtE,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,eAAe,CAAC,KAAK,CAAC,EAC7B,MAAM,CAAC,EAAE,gBAAgB,EACzB,aAAa,CAAC,EAAE,OAAO,EACvB,yBAAyB,UAAQ,GAChC,OAAO,CAAC,gBAAgB,CAAC,CA2B3B;AAED,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,GAAG,SAAS,EAC1C,MAAM,CAAC,EAAE,gBAAgB,EACzB,aAAa,CAAC,EAAE,OAAO,EACvB,KAAK,UAAyB,GAC7B,OAAO,CAAC,OAAO,CAAC,CAKlB"}
@@ -2,6 +2,7 @@ import { interopParse, isZodSchemaV3, isZodSchemaV4, } from "@langchain/core/uti
2
2
  import { resolveChannelInfo } from "../../channels/binding.js";
3
3
  import { buildRuntimeIdentity, isStudioAuthUser, resolveRuntimeConfigurable, } from "../identity-runtime.js";
4
4
  import { isRunExecution } from "../run-input.js";
5
+ import { isRecord } from "../../values.js";
5
6
  export function resolveUserMemoryPrincipal(configurable) {
6
7
  const identity = buildRuntimeIdentity(configurable);
7
8
  if (!identity)
@@ -86,7 +87,4 @@ async function evaluatePolicy(layer, config, contextSchema) {
86
87
  }
87
88
  return allowed;
88
89
  }
89
- function isRecord(value) {
90
- return typeof value === "object" && value !== null && !Array.isArray(value);
91
- }
92
90
  //# sourceMappingURL=policy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"policy.js","sourceRoot":"","sources":["../../../src/runtime/memory/policy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"policy.js","sourceRoot":"","sources":["../../../src/runtime/memory/policy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import { RunTree } from "langsmith";
2
+ import type { ManagedRunConfig } from "./types.js";
3
+ /** The lead thread a run's caller owns, with the metadata its thread record lives in. */
4
+ export interface LeadThread {
5
+ id: string;
6
+ metadata: Record<string, unknown>;
7
+ }
8
+ /**
9
+ * The thread of the agent that launched this run, if deepagents sent it.
10
+ *
11
+ * Read from deepagents' parent reference, or else from the task thread's
12
+ * `parent_thread_id` metadata, which the Agent Server copies into every run on
13
+ * the thread, including runs deepagents didn't start (such as a resume).
14
+ */
15
+ export declare function leadThreadId(config: ManagedRunConfig | undefined): string | undefined;
16
+ /**
17
+ * The lead's thread when this run's caller owns it, else `undefined`.
18
+ *
19
+ * Reads the thread through the SDK's default client, which the Agent Server and
20
+ * `mda dev` point at their own API (as the run's caller), then requires its `owner` to be the
21
+ * caller's owner key, MDA's rule for changing a thread. Being able to read it isn't
22
+ * enough: Studio callers can read every thread. A thread without an owner (no
23
+ * managed identity) only needs to be readable.
24
+ */
25
+ export declare function verifiedLeadThread(config: ManagedRunConfig | undefined): Promise<LeadThread | undefined>;
26
+ /** The thread a run's record is read from: its lead's, when given. */
27
+ export declare function threadSource(config: ManagedRunConfig | undefined, leadThread: LeadThread | undefined): {
28
+ configurable: Record<string, unknown> | undefined;
29
+ metadata: unknown;
30
+ };
31
+ /** Rebuild the span that launched this run from the trace headers the Agent Server kept. */
32
+ export declare function launchingParent(config: ManagedRunConfig | undefined): RunTree | undefined;
33
+ //# sourceMappingURL=parent-run.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parent-run.d.ts","sourceRoot":"","sources":["../../src/runtime/parent-run.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAanD,yFAAyF;AACzF,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,gBAAgB,GAAG,SAAS,GACnC,MAAM,GAAG,SAAS,CAUpB;AAED;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,gBAAgB,GAAG,SAAS,GACnC,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAqBjC;AAYD,sEAAsE;AACtE,wBAAgB,YAAY,CAC1B,MAAM,EAAE,gBAAgB,GAAG,SAAS,EACpC,UAAU,EAAE,UAAU,GAAG,SAAS,GACjC;IAAE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,CAO1E;AAgBD,4FAA4F;AAC5F,wBAAgB,eAAe,CAC7B,MAAM,EAAE,gBAAgB,GAAG,SAAS,GACnC,OAAO,GAAG,SAAS,CAmBrB"}
@@ -0,0 +1,114 @@
1
+ /**
2
+ * Runs that deepagents launched from another agent's run (async subagents):
3
+ * verify the lead's thread, so the run can share its sandbox and thread
4
+ * record, and nest the run under the lead's trace.
5
+ */
6
+ import { Client } from "@langchain/langgraph-sdk";
7
+ import { RunTree } from "langsmith";
8
+ import { threadOwnerKey } from "./auth.js";
9
+ import { resolveRuntimeConfigurable } from "./identity-runtime.js";
10
+ import { logger } from "./log.js";
11
+ import { isRecord } from "./managed-thread.js";
12
+ /** `configurable` key where deepagents puts an async subagent run's parent reference. */
13
+ const PARENT_REFERENCE_KEY = "deepagents_parent";
14
+ /** Run metadata key (copied from the task thread) naming an async subagent's lead thread. */
15
+ const PARENT_THREAD_METADATA_KEY = "parent_thread_id";
16
+ /** Baggage key deepagents sets to mark trace headers as a parent. */
17
+ const NEST_UNDER_PARENT = "ls_nest_under_parent";
18
+ const UUID = "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}";
19
+ const SEGMENT = `\\d{8}T\\d{6,}Z${UUID}`;
20
+ /** A `langsmith-trace` dotted order: `<timestamp>Z<run id>` segments joined by dots. */
21
+ const DOTTED_ORDER = new RegExp(`^${SEGMENT}(\\.${SEGMENT})*$`, "i");
22
+ /**
23
+ * The thread of the agent that launched this run, if deepagents sent it.
24
+ *
25
+ * Read from deepagents' parent reference, or else from the task thread's
26
+ * `parent_thread_id` metadata, which the Agent Server copies into every run on
27
+ * the thread, including runs deepagents didn't start (such as a resume).
28
+ */
29
+ export function leadThreadId(config) {
30
+ const reference = config?.configurable?.[PARENT_REFERENCE_KEY];
31
+ const metadata = config?.metadata;
32
+ const id = (isRecord(reference) ? reference.thread_id : undefined) ??
33
+ (isRecord(metadata) ? metadata[PARENT_THREAD_METADATA_KEY] : undefined);
34
+ // A run on the lead's own thread is the lead's, not a subagent's.
35
+ return typeof id === "string" && id && id !== config?.configurable?.thread_id
36
+ ? id
37
+ : undefined;
38
+ }
39
+ /**
40
+ * The lead's thread when this run's caller owns it, else `undefined`.
41
+ *
42
+ * Reads the thread through the SDK's default client, which the Agent Server and
43
+ * `mda dev` point at their own API (as the run's caller), then requires its `owner` to be the
44
+ * caller's owner key, MDA's rule for changing a thread. Being able to read it isn't
45
+ * enough: Studio callers can read every thread. A thread without an owner (no
46
+ * managed identity) only needs to be readable.
47
+ */
48
+ export async function verifiedLeadThread(config) {
49
+ const id = leadThreadId(config);
50
+ if (!id)
51
+ return undefined;
52
+ let metadata;
53
+ try {
54
+ const thread = await new Client().threads.get(id);
55
+ metadata = isRecord(thread.metadata) ? thread.metadata : {};
56
+ }
57
+ catch {
58
+ logger.warn("lead thread not accessible to this run; using its own sandbox");
59
+ return undefined;
60
+ }
61
+ const owner = metadata.owner;
62
+ if (owner !== undefined && owner !== callerOwnerKey(config)) {
63
+ logger.warn("lead thread belongs to another caller; using this run's own sandbox");
64
+ return undefined;
65
+ }
66
+ return { id, metadata };
67
+ }
68
+ /** The thread owner key MDA stamps for this run's caller, if it's authenticated. */
69
+ function callerOwnerKey(config) {
70
+ const user = resolveRuntimeConfigurable(config)?.langgraph_auth_user;
71
+ return user ? threadOwnerKey(user) : undefined;
72
+ }
73
+ /** The thread a run's record is read from: its lead's, when given. */
74
+ export function threadSource(config, leadThread) {
75
+ return leadThread
76
+ ? {
77
+ configurable: { ...config?.configurable, thread_id: leadThread.id },
78
+ metadata: leadThread.metadata,
79
+ }
80
+ : { configurable: config?.configurable, metadata: config?.metadata };
81
+ }
82
+ /** The `langsmith-trace` header, when deepagents marked it as a parent to nest under. */
83
+ function nestingTrace(configurable) {
84
+ const trace = configurable["langsmith-trace"];
85
+ const metadata = configurable["langsmith-metadata"];
86
+ return typeof trace === "string" &&
87
+ trace &&
88
+ isRecord(metadata) &&
89
+ metadata[NEST_UNDER_PARENT] === true
90
+ ? trace
91
+ : undefined;
92
+ }
93
+ /** Rebuild the span that launched this run from the trace headers the Agent Server kept. */
94
+ export function launchingParent(config) {
95
+ const configurable = config?.configurable ?? {};
96
+ const trace = nestingTrace(configurable);
97
+ if (!trace)
98
+ return undefined;
99
+ const project = configurable["langsmith-project"];
100
+ const baggage = typeof project === "string"
101
+ ? `langsmith-project=${encodeURIComponent(project)}`
102
+ : "";
103
+ try {
104
+ // `fromHeaders` accepts any string and invents a run id.
105
+ if (!DOTTED_ORDER.test(trace))
106
+ throw new Error("malformed");
107
+ return RunTree.fromHeaders({ "langsmith-trace": trace, baggage });
108
+ }
109
+ catch {
110
+ logger.warn("ignoring a malformed langsmith-trace; the run keeps its own trace");
111
+ return undefined;
112
+ }
113
+ }
114
+ //# sourceMappingURL=parent-run.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parent-run.js","sourceRoot":"","sources":["../../src/runtime/parent-run.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { type LeadThread } from "./parent-run.js";
1
2
  import type { ManagedRunConfig } from "./types.js";
2
3
  import type { createDeepAgent } from "deepagents";
3
4
  export declare function isRunExecution(config?: ManagedRunConfig): config is ManagedRunConfig;
@@ -43,6 +44,18 @@ export declare function executionContext(config?: ManagedRunConfig): {
43
44
  channelRun: boolean;
44
45
  };
45
46
  type Agent = ReturnType<typeof createDeepAgent>;
46
- export declare function adaptChannelExecution(agent: Agent): Agent;
47
+ /** The run's own thread id. */
48
+ export declare function threadIdOf(config?: ManagedRunConfig): string | undefined;
49
+ /**
50
+ * The Agent Server run a config belongs to. The JS bridge passes it as the
51
+ * top-level `runId`; other hosts stamp `metadata.run_id` or
52
+ * `configurable.run_id`.
53
+ */
54
+ export declare function resolveRunId(config?: {
55
+ runId?: unknown;
56
+ metadata?: Record<string, unknown>;
57
+ configurable?: Record<string, unknown>;
58
+ }): string | undefined;
59
+ export declare function adaptChannelExecution(agent: Agent, leadThread?: LeadThread): Agent;
47
60
  export {};
48
61
  //# sourceMappingURL=run-input.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"run-input.d.ts","sourceRoot":"","sources":["../../src/runtime/run-input.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,wBAAgB,cAAc,CAC5B,MAAM,CAAC,EAAE,gBAAgB,GACxB,MAAM,IAAI,gBAAgB,CAE5B;AAED,wBAAgB,kBAAkB,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAYrE;AAED,wBAAgB,oBAAoB,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAOvE;AAED,2FAA2F;AAC3F,wBAAgB,gBAAgB,CAAC,MAAM,CAAC,EAAE,gBAAgB;;aAMxB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuDpE;AAED,KAAK,KAAK,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;AAyDhD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,CAQzD"}
1
+ {"version":3,"file":"run-input.d.ts","sourceRoot":"","sources":["../../src/runtime/run-input.ts"],"names":[],"mappings":"AASA,OAAO,EAIL,KAAK,UAAU,EAChB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,wBAAgB,cAAc,CAC5B,MAAM,CAAC,EAAE,gBAAgB,GACxB,MAAM,IAAI,gBAAgB,CAE5B;AAED,wBAAgB,kBAAkB,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAYrE;AAED,wBAAgB,oBAAoB,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAOvE;AAED,2FAA2F;AAC3F,wBAAgB,gBAAgB,CAAC,MAAM,CAAC,EAAE,gBAAgB;;aAMxB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuDpE;AAED,KAAK,KAAK,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;AA6FhD,+BAA+B;AAC/B,wBAAgB,UAAU,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG,MAAM,GAAG,SAAS,CAGxE;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,MAAM,CAAC,EAAE;IACpC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACxC,GAAG,MAAM,GAAG,SAAS,CASrB;AAuBD,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,KAAK,EACZ,UAAU,CAAC,EAAE,UAAU,GACtB,KAAK,CASP"}
@@ -1,7 +1,11 @@
1
1
  import { isDeepStrictEqual } from "node:util";
2
2
  import { CompiledStateGraph, getConfig } from "@langchain/langgraph";
3
+ import { withRunTree } from "langsmith/traceable";
3
4
  import { currentChannelBinding, resolveChannelBinding, } from "../channels/binding.js";
4
5
  import { isManagedKey } from "../run-context.js";
6
+ import { resolveRunThread } from "./managed-thread.js";
7
+ import { launchingParent, leadThreadId, threadSource, } from "./parent-run.js";
8
+ import { deliverRunResult } from "../channels/delivery.js";
5
9
  export function isRunExecution(config) {
6
10
  return !!config && Object.hasOwn(config, "context");
7
11
  }
@@ -70,8 +74,11 @@ export function executionContext(config) {
70
74
  channelRun,
71
75
  };
72
76
  }
77
+ /** Graph property holding the lead thread a verified async subagent run shares. */
78
+ const LEAD_THREAD = Symbol("mda.leadThread");
73
79
  /** Keep the adapter on native graph copies without binding an old instance. */
74
80
  class ManagedCompiledGraph extends CompiledStateGraph {
81
+ [LEAD_THREAD];
75
82
  async *_streamIterator(input, options) {
76
83
  const ambient = getConfig();
77
84
  const config = {
@@ -84,7 +91,22 @@ class ManagedCompiledGraph extends CompiledStateGraph {
84
91
  ...options?.configurable,
85
92
  },
86
93
  };
87
- const scope = executionContext(config);
94
+ const routed = executionContext(config);
95
+ // A channel caller's async subagent run never answers, and reads its lead's
96
+ // thread record once its caller is verified to own it.
97
+ const subagent = routed.channelRun && !!leadThreadId(config);
98
+ const scope = {
99
+ ...routed,
100
+ thread: resolveRunThread({
101
+ ...threadSource(config, routed.channelRun ? this[LEAD_THREAD] : undefined),
102
+ binding: routed.binding,
103
+ }),
104
+ };
105
+ // Nest this run under the async subagent call that launched it.
106
+ const parent = launchingParent(config);
107
+ const inScope = (step) => parent
108
+ ? withRunTree(parent, () => currentChannelBinding.run(scope, step))
109
+ : currentChannelBinding.run(scope, step);
88
110
  const managed = scope.routing !== undefined;
89
111
  const execution = managed && this.config?.context !== undefined
90
112
  ? this.withConfig({})
@@ -94,14 +116,25 @@ class ManagedCompiledGraph extends CompiledStateGraph {
94
116
  const iterator = super._streamIterator.call(execution, input, managed ? { ...options, context: scope.context } : options);
95
117
  try {
96
118
  while (true) {
97
- const item = await currentChannelBinding.run(scope, () => iterator.next());
98
- if (item.done)
119
+ const item = await inScope(() => iterator.next());
120
+ if (item.done) {
121
+ if (isTopLevelRun(config, this))
122
+ await inScope(() => deliverRunResult(this, scope.thread, {
123
+ runId: resolveRunId(config),
124
+ assistantId: assistantIdOf(config),
125
+ configurable: config.configurable,
126
+ metadata: config.metadata,
127
+ routing: scope.routing,
128
+ runThreadId: threadIdOf(config),
129
+ subagent,
130
+ }));
99
131
  return;
132
+ }
100
133
  yield item.value;
101
134
  }
102
135
  }
103
136
  finally {
104
- await currentChannelBinding.run(scope, () => iterator.return(undefined));
137
+ await inScope(() => iterator.return(undefined));
105
138
  }
106
139
  }
107
140
  async _validateContext(context) {
@@ -113,13 +146,49 @@ class ManagedCompiledGraph extends CompiledStateGraph {
113
146
  : super._validateContext(context);
114
147
  }
115
148
  }
116
- export function adaptChannelExecution(agent) {
149
+ /** The run's own thread id. */
150
+ export function threadIdOf(config) {
151
+ const value = config?.configurable?.thread_id;
152
+ return typeof value === "string" && value.trim() ? value.trim() : undefined;
153
+ }
154
+ /**
155
+ * The Agent Server run a config belongs to. The JS bridge passes it as the
156
+ * top-level `runId`; other hosts stamp `metadata.run_id` or
157
+ * `configurable.run_id`.
158
+ */
159
+ export function resolveRunId(config) {
160
+ for (const value of [
161
+ config?.runId,
162
+ config?.metadata?.run_id,
163
+ config?.configurable?.run_id,
164
+ ]) {
165
+ if (typeof value === "string" && value.trim())
166
+ return value.trim();
167
+ }
168
+ return undefined;
169
+ }
170
+ function assistantIdOf(config) {
171
+ for (const id of [
172
+ config.configurable?.assistant_id,
173
+ config.metadata?.assistant_id,
174
+ ]) {
175
+ if (typeof id === "string" && id.trim())
176
+ return id.trim();
177
+ }
178
+ return undefined;
179
+ }
180
+ /** The run's own graph with state to read, not a graph a node calls. */
181
+ function isTopLevelRun(config, graph) {
182
+ return !config.configurable?.checkpoint_ns && !!graph.checkpointer;
183
+ }
184
+ export function adaptChannelExecution(agent, leadThread) {
117
185
  if (!(agent.graph instanceof CompiledStateGraph))
118
186
  return agent;
119
187
  Object.setPrototypeOf(agent.graph, ManagedCompiledGraph.prototype);
188
+ agent.graph[LEAD_THREAD] = leadThread;
120
189
  const configure = agent.withConfig;
121
190
  agent.withConfig = function (config) {
122
- return adaptChannelExecution(configure.call(this, config));
191
+ return adaptChannelExecution(configure.call(this, config), leadThread);
123
192
  };
124
193
  return agent;
125
194
  }
@@ -1 +1 @@
1
- {"version":3,"file":"run-input.js","sourceRoot":"","sources":["../../src/runtime/run-input.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-input.js","sourceRoot":"","sources":["../../src/runtime/run-input.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,8 @@ export declare const SANDBOX_API_ENDPOINT_ENV = "MDA_SANDBOX_API_ENDPOINT";
17
17
  * resolves `snapshotName` in the wrong workspace and 404s on the recipe.
18
18
  */
19
19
  export declare const WORKSPACE_ID_ENV = "LANGSMITH_WORKSPACE_ID";
20
+ /** Run `fn` with sandbox scope keys resolving to `leadThread`'s sandbox, if set. */
21
+ export declare function withLeadSandbox<T>(leadThread: string | undefined, fn: () => T): T;
20
22
  /** Optional runtime inputs that drive connector sandbox provisioning. */
21
23
  export interface ResolveManagedSandboxOptions {
22
24
  connectors?: Connector[];
@@ -34,9 +36,20 @@ export interface ResolveManagedSandboxOptions {
34
36
  * messages in an already-synced thread (mode `"credentials"`).
35
37
  */
36
38
  export declare function resolveManagedSandbox(sandbox: SandboxDefinition, config: ManagedRunConfig | undefined, options?: ResolveManagedSandboxOptions): Promise<SandboxBackendProtocolV2>;
39
+ /**
40
+ * The thread's sandbox if this process has opened it, by any caller; never
41
+ * opens one. A sandbox being recreated reads as unopened until its
42
+ * replacement is ready. Like resolving, it needs `configurable.thread_id`.
43
+ */
44
+ export declare function openedManagedSandbox(config: ManagedRunConfig | undefined, selectionFingerprint?: string): SandboxBackendProtocolV2 | undefined;
37
45
  export declare function isSandboxNotFoundError(error: unknown): boolean;
38
46
  export declare function recoverManagedSandbox(sandbox: SandboxDefinition, config: ManagedRunConfig | undefined, failedBackend: SandboxBackendProtocolV2, options?: ResolveManagedSandboxOptions): Promise<SandboxBackendProtocolV2>;
39
- /** Derive the process-level reuse key for a thread and optional selection. */
47
+ /**
48
+ * Derive the process-level reuse key for a thread and optional selection.
49
+ *
50
+ * An async subagent sharing its lead's sandbox uses the lead's thread, so both
51
+ * resolve, sync, and name the same sandbox.
52
+ */
40
53
  export declare function sandboxScopeKey(config: ManagedRunConfig | undefined, selectionFingerprint?: string): string;
41
54
  /**
42
55
  * Stable, non-plaintext identity for an explicit dynamic sandbox selection.
@@ -1 +1 @@
1
- {"version":3,"file":"sandbox-manager.d.ts","sourceRoot":"","sources":["../../src/runtime/sandbox-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sandbox-manager.d.ts","sourceRoot":"","sources":["../../src/runtime/sandbox-manager.ts"],"names":[],"mappings":"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"}