managed-deepagents 0.10.0-dev.18 → 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 (144) hide show
  1. package/README.md +23 -4
  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/assistant-text.d.ts +1 -1
  7. package/dist/channels/assistant-text.js +1 -1
  8. package/dist/channels/binding.d.ts.map +1 -1
  9. package/dist/channels/binding.js +6 -2
  10. package/dist/channels/binding.js.map +1 -1
  11. package/dist/channels/delivery.d.ts +23 -8
  12. package/dist/channels/delivery.d.ts.map +1 -1
  13. package/dist/channels/delivery.js +181 -18
  14. package/dist/channels/delivery.js.map +1 -1
  15. package/dist/channels/github/app-setup.d.ts +32 -0
  16. package/dist/channels/github/app-setup.d.ts.map +1 -0
  17. package/dist/channels/github/app-setup.js +146 -0
  18. package/dist/channels/github/app-setup.js.map +1 -0
  19. package/dist/channels/github/index.d.ts.map +1 -1
  20. package/dist/channels/github/index.js +9 -23
  21. package/dist/channels/github/index.js.map +1 -1
  22. package/dist/channels/http/index.d.ts +6 -0
  23. package/dist/channels/http/index.d.ts.map +1 -1
  24. package/dist/channels/http/index.js +24 -9
  25. package/dist/channels/http/index.js.map +1 -1
  26. package/dist/channels/linear/app-setup.d.ts +29 -0
  27. package/dist/channels/linear/app-setup.d.ts.map +1 -0
  28. package/dist/channels/linear/app-setup.js +102 -0
  29. package/dist/channels/linear/app-setup.js.map +1 -0
  30. package/dist/channels/linear/index.d.ts.map +1 -1
  31. package/dist/channels/linear/index.js +11 -55
  32. package/dist/channels/linear/index.js.map +1 -1
  33. package/dist/channels/runtime.d.ts +4 -1
  34. package/dist/channels/runtime.d.ts.map +1 -1
  35. package/dist/channels/runtime.js +19 -10
  36. package/dist/channels/runtime.js.map +1 -1
  37. package/dist/channels/schedule-delivery.d.ts +1 -12
  38. package/dist/channels/schedule-delivery.d.ts.map +1 -1
  39. package/dist/channels/schedule-delivery.js +5 -61
  40. package/dist/channels/schedule-delivery.js.map +1 -1
  41. package/dist/channels/slack/index.d.ts.map +1 -1
  42. package/dist/channels/slack/index.js +3 -0
  43. package/dist/channels/slack/index.js.map +1 -1
  44. package/dist/channels/trigger/client.d.ts.map +1 -1
  45. package/dist/channels/trigger/client.js +3 -1
  46. package/dist/channels/trigger/client.js.map +1 -1
  47. package/dist/channels/trigger/conversation.d.ts +11 -0
  48. package/dist/channels/trigger/conversation.d.ts.map +1 -0
  49. package/dist/channels/trigger/conversation.js +72 -0
  50. package/dist/channels/trigger/conversation.js.map +1 -0
  51. package/dist/channels/trigger/http.d.ts +9 -1
  52. package/dist/channels/trigger/http.d.ts.map +1 -1
  53. package/dist/channels/trigger/http.js +28 -12
  54. package/dist/channels/trigger/http.js.map +1 -1
  55. package/dist/channels/trigger/ingress.d.ts +32 -0
  56. package/dist/channels/trigger/ingress.d.ts.map +1 -1
  57. package/dist/channels/trigger/ingress.js +89 -6
  58. package/dist/channels/trigger/ingress.js.map +1 -1
  59. package/dist/channels/trigger/transport.d.ts +10 -0
  60. package/dist/channels/trigger/transport.d.ts.map +1 -1
  61. package/dist/channels/trigger/transport.js +25 -9
  62. package/dist/channels/trigger/transport.js.map +1 -1
  63. package/dist/channels/trigger/types.d.ts +10 -0
  64. package/dist/channels/trigger/types.d.ts.map +1 -1
  65. package/dist/channels/trigger/types.js.map +1 -1
  66. package/dist/channels/types.d.ts +24 -1
  67. package/dist/channels/types.d.ts.map +1 -1
  68. package/dist/channels/types.js.map +1 -1
  69. package/dist/define-deep-agent.d.ts +2 -2
  70. package/dist/define-deep-agent.d.ts.map +1 -1
  71. package/dist/define-deep-agent.js +53 -8
  72. package/dist/define-deep-agent.js.map +1 -1
  73. package/dist/index.d.ts +3 -1
  74. package/dist/index.d.ts.map +1 -1
  75. package/dist/index.js +1 -0
  76. package/dist/index.js.map +1 -1
  77. package/dist/managed-composition.d.ts +3 -0
  78. package/dist/managed-composition.d.ts.map +1 -1
  79. package/dist/managed-composition.js +21 -0
  80. package/dist/managed-composition.js.map +1 -1
  81. package/dist/runtime/async-subagents.d.ts +27 -0
  82. package/dist/runtime/async-subagents.d.ts.map +1 -0
  83. package/dist/runtime/async-subagents.js +139 -0
  84. package/dist/runtime/async-subagents.js.map +1 -0
  85. package/dist/runtime/auth.d.ts.map +1 -1
  86. package/dist/runtime/auth.js +37 -2
  87. package/dist/runtime/auth.js.map +1 -1
  88. package/dist/runtime/backend.d.ts +7 -0
  89. package/dist/runtime/backend.d.ts.map +1 -1
  90. package/dist/runtime/backend.js +32 -7
  91. package/dist/runtime/backend.js.map +1 -1
  92. package/dist/runtime/browser-facade.d.ts +10 -0
  93. package/dist/runtime/browser-facade.d.ts.map +1 -0
  94. package/dist/runtime/browser-facade.js +23 -0
  95. package/dist/runtime/browser-facade.js.map +1 -0
  96. package/dist/runtime/browser-langsmith.d.ts +108 -0
  97. package/dist/runtime/browser-langsmith.d.ts.map +1 -0
  98. package/dist/runtime/browser-langsmith.js +379 -0
  99. package/dist/runtime/browser-langsmith.js.map +1 -0
  100. package/dist/runtime/browser-selection.d.ts +10 -0
  101. package/dist/runtime/browser-selection.d.ts.map +1 -0
  102. package/dist/runtime/browser-selection.js +21 -0
  103. package/dist/runtime/browser-selection.js.map +1 -0
  104. package/dist/runtime/browser.d.ts +125 -0
  105. package/dist/runtime/browser.d.ts.map +1 -0
  106. package/dist/runtime/browser.js +606 -0
  107. package/dist/runtime/browser.js.map +1 -0
  108. package/dist/runtime/index.d.ts +38 -1
  109. package/dist/runtime/index.d.ts.map +1 -1
  110. package/dist/runtime/index.js +47 -16
  111. package/dist/runtime/index.js.map +1 -1
  112. package/dist/runtime/managed-thread.d.ts +1 -0
  113. package/dist/runtime/managed-thread.d.ts.map +1 -1
  114. package/dist/runtime/managed-thread.js +1 -1
  115. package/dist/runtime/managed-thread.js.map +1 -1
  116. package/dist/runtime/parent-run.d.ts +33 -0
  117. package/dist/runtime/parent-run.d.ts.map +1 -0
  118. package/dist/runtime/parent-run.js +114 -0
  119. package/dist/runtime/parent-run.js.map +1 -0
  120. package/dist/runtime/run-input.d.ts +4 -1
  121. package/dist/runtime/run-input.d.ts.map +1 -1
  122. package/dist/runtime/run-input.js +30 -7
  123. package/dist/runtime/run-input.js.map +1 -1
  124. package/dist/runtime/sandbox-manager.d.ts +14 -1
  125. package/dist/runtime/sandbox-manager.d.ts.map +1 -1
  126. package/dist/runtime/sandbox-manager.js +33 -8
  127. package/dist/runtime/sandbox-manager.js.map +1 -1
  128. package/dist/runtime/schedule-auth.d.ts +62 -0
  129. package/dist/runtime/schedule-auth.d.ts.map +1 -1
  130. package/dist/runtime/schedule-auth.js +125 -6
  131. package/dist/runtime/schedule-auth.js.map +1 -1
  132. package/dist/runtime/static-entry.d.ts.map +1 -1
  133. package/dist/runtime/static-entry.js +1 -0
  134. package/dist/runtime/static-entry.js.map +1 -1
  135. package/dist/runtime/thread-record.d.ts +9 -2
  136. package/dist/runtime/thread-record.d.ts.map +1 -1
  137. package/dist/runtime/thread-record.js +13 -5
  138. package/dist/runtime/thread-record.js.map +1 -1
  139. package/dist/runtime/types.d.ts +7 -0
  140. package/dist/runtime/types.d.ts.map +1 -1
  141. package/dist/types.d.ts +19 -2
  142. package/dist/types.d.ts.map +1 -1
  143. package/dist/types.js.map +1 -1
  144. package/package.json +22 -8
package/README.md CHANGED
@@ -327,6 +327,19 @@ Supply only the matching payload. Native JSON has no extra provider or payload
327
327
  wrapper. The channel helper has no `address`, `update`, or destination override.
328
328
  A post sends an additional message; the normal final agent reply remains automatic.
329
329
 
330
+ On Slack, `post(message, { newThread: true })` posts at top level in the same
331
+ conversation instead, which starts a new Slack thread. Replies in it continue a
332
+ thread of their own, also without a mention in thread mode. Add `run` to start a
333
+ run there at once, with a channel handler's run input, as the current run's
334
+ person. The result also has `threadId` and, on Slack, the message `url`:
335
+
336
+ ```ts
337
+ const posted = await runtime.thread?.origin?.channel.post?.(
338
+ { type: "content", content: "Haiku about mango" },
339
+ { newThread: true, run: { messages: [...history, new HumanMessage("Go on.")] } }
340
+ );
341
+ ```
342
+
330
343
  Managed Slack channels save incoming files under `/workspace/attachments/` and
331
344
  add `upload_files(paths)` so the agent can attach completed workspace files
332
345
  to its reply. This requires a managed sandbox.
@@ -1016,9 +1029,10 @@ it installs the app.
1016
1029
  [Setting up the Linear app](#setting-up-the-linear-app).
1017
1030
 
1018
1031
  The channel reads the webhook signing secret from Agent Auth, or from
1019
- `LINEAR_WEBHOOK_SECRET` when set. It acts as the app through the agent OAuth
1020
- connection `mda/linear-app/<deployment-id>`, installed with `actor=app`; read
1021
- its token with `await connections.get("mda/linear-token", { type: "agent" })` to call Linear's API from tools.
1032
+ `LINEAR_WEBHOOK_SECRET` when set. It acts as the app through the deployment's
1033
+ Agent Auth app, whose OAuth connection is `mda/linear-app/<deployment-id>`,
1034
+ installed with `actor=app`; read its token with
1035
+ `await connections.get("mda/linear-token", { type: "agent" })` to call Linear's API from tools.
1022
1036
 
1023
1037
  `reply: "none"` leaves the run's answer to the agent: the channel doesn't post
1024
1038
  it as a comment or in the session. Session acknowledgements, Stop and error
@@ -1076,6 +1090,8 @@ or to continue without the Linear channel. Without a terminal the failure ends
1076
1090
  the deploy, once the other channels are set up. An agent with a Linear channel
1077
1091
  can't be deployed with `--no-wait`, because setup needs the live deployment.
1078
1092
  `mda delete` removes the credentials; delete the app itself in Linear.
1093
+ Deployments set up by an earlier `mda` keep the app as workspace connections,
1094
+ which only a LangSmith workspace admin can delete.
1079
1095
 
1080
1096
  ## HTTP channels
1081
1097
 
@@ -1399,7 +1415,10 @@ current thread. When a schedule is created on a channel's thread, such as a
1399
1415
  Slack thread, each run posts its final answer to that channel. A same-thread
1400
1416
  schedule posts wherever the thread's origin points when it runs, so its record
1401
1417
  has `channel: null` and `target: null`. A new-thread schedule keeps the
1402
- conversation it was created in. Runtime schedules stay when you deploy again.
1418
+ conversation it was created in. On Slack, each run starts a new Slack thread
1419
+ there, with its answer or, when it waits on a decision, with a notice. Replies
1420
+ and decisions in that Slack thread continue the run's thread. Runtime schedules
1421
+ stay when you deploy again.
1403
1422
 
1404
1423
  A user schedule can run as another person on the thread. Pass one of
1405
1424
  `runtime.thread.participants` as `runAs`; the caller still owns the schedule
@@ -0,0 +1,37 @@
1
+ /**
2
+ * The managed `browser.ts` declaration primitive.
3
+ *
4
+ * The CLI discovers a root `browser` export in `browser.ts`; MDA then gives the
5
+ * agent a LangSmith browser and Stagehand's tools, as `browser_run`,
6
+ * `browser_snapshot` and `browser_screenshot`.
7
+ *
8
+ * @example
9
+ * ```ts
10
+ * // browser.ts
11
+ * import { defineBrowser } from "managed-deepagents";
12
+ *
13
+ * export const browser = defineBrowser({ scope: "user" });
14
+ * ```
15
+ */
16
+ export type BrowserScope = "thread" | "user";
17
+ /** Developer-provided options for the managed browser. */
18
+ export interface BrowserOptions {
19
+ /**
20
+ * `"thread"` gives each thread its own browser; `"user"` shares one per
21
+ * signed-in user across their threads, logins included, with a window per
22
+ * thread. Runs with no person behind them, such as scheduled runs, get their
23
+ * thread's browser. Defaults to `"thread"`.
24
+ */
25
+ scope?: BrowserScope;
26
+ /** Stop a browser after this long idle (60 to 86,400). Defaults to 600. */
27
+ idleTtlSeconds?: number;
28
+ }
29
+ /** The object exported from `browser.ts`. */
30
+ export interface BrowserDefinition {
31
+ readonly kind: "browser";
32
+ readonly scope: BrowserScope;
33
+ readonly idleTtlSeconds: number;
34
+ }
35
+ /** Give the agent a LangSmith browser. */
36
+ export declare function defineBrowser(options?: BrowserOptions): BrowserDefinition;
37
+ //# sourceMappingURL=browser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE7C,0DAA0D;AAC1D,MAAM,WAAW,cAAc;IAC7B;;;;;OAKG;IACH,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,2EAA2E;IAC3E,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,6CAA6C;AAC7C,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAED,0CAA0C;AAC1C,wBAAgB,aAAa,CAAC,OAAO,GAAE,cAAmB,GAAG,iBAAiB,CAiB7E"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * The managed `browser.ts` declaration primitive.
3
+ *
4
+ * The CLI discovers a root `browser` export in `browser.ts`; MDA then gives the
5
+ * agent a LangSmith browser and Stagehand's tools, as `browser_run`,
6
+ * `browser_snapshot` and `browser_screenshot`.
7
+ *
8
+ * @example
9
+ * ```ts
10
+ * // browser.ts
11
+ * import { defineBrowser } from "managed-deepagents";
12
+ *
13
+ * export const browser = defineBrowser({ scope: "user" });
14
+ * ```
15
+ */
16
+ const MIN_IDLE_TTL_S = 60;
17
+ const MAX_IDLE_TTL_S = 86_400;
18
+ /** Give the agent a LangSmith browser. */
19
+ export function defineBrowser(options = {}) {
20
+ const { scope = "thread", idleTtlSeconds = 600 } = options;
21
+ if (scope !== "thread" && scope !== "user") {
22
+ throw new TypeError(`browser scope must be "thread" or "user", not ${JSON.stringify(scope)}`);
23
+ }
24
+ if (!Number.isInteger(idleTtlSeconds) ||
25
+ idleTtlSeconds < MIN_IDLE_TTL_S ||
26
+ idleTtlSeconds > MAX_IDLE_TTL_S) {
27
+ throw new TypeError(`idleTtlSeconds must be an integer between ${MIN_IDLE_TTL_S} and ${MAX_IDLE_TTL_S}`);
28
+ }
29
+ return Object.freeze({ kind: "browser", scope, idleTtlSeconds });
30
+ }
31
+ //# sourceMappingURL=browser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,MAAM,cAAc,GAAG,EAAE,CAAC;AAC1B,MAAM,cAAc,GAAG,MAAM,CAAC;AAwB9B,0CAA0C;AAC1C,MAAM,UAAU,aAAa,CAAC,OAAO,GAAmB,EAAE;IACxD,MAAM,EAAE,KAAK,GAAG,QAAQ,EAAE,cAAc,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC;IAC3D,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QAC3C,MAAM,IAAI,SAAS,CACjB,iDAAiD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CACzE,CAAC;IACJ,CAAC;IACD,IACE,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;QACjC,cAAc,GAAG,cAAc;QAC/B,cAAc,GAAG,cAAc,EAC/B,CAAC;QACD,MAAM,IAAI,SAAS,CACjB,6CAA6C,cAAc,QAAQ,cAAc,EAAE,CACpF,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC;AACnE,CAAC"}
@@ -34,7 +34,7 @@ export declare function extractReplyContent(input: {
34
34
  export declare const NOTIFICATION_KEY = "deepagents_notification";
35
35
  /**
36
36
  * `additional_kwargs` key MDA marks its own notifications with, such as a browser
37
- * handoff ending (Python only for now), the same way.
37
+ * handoff ending, the same way.
38
38
  */
39
39
  export declare const MDA_NOTIFICATION_KEY = "mda_notification";
40
40
  //# sourceMappingURL=assistant-text.d.ts.map
@@ -100,7 +100,7 @@ function runStart(messages, afterId) {
100
100
  export const NOTIFICATION_KEY = "deepagents_notification";
101
101
  /**
102
102
  * `additional_kwargs` key MDA marks its own notifications with, such as a browser
103
- * handoff ending (Python only for now), the same way.
103
+ * handoff ending, the same way.
104
104
  */
105
105
  export const MDA_NOTIFICATION_KEY = "mda_notification";
106
106
  /** A user-role message deepagents or MDA sent with news, not the user's. */
@@ -1 +1 @@
1
- {"version":3,"file":"binding.d.ts","sourceRoot":"","sources":["../../src/channels/binding.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAGrD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAO5D,OAAO,KAAK,EACV,YAAY,EACZ,WAAW,EACX,SAAS,EACT,cAAc,EACf,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAwB,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,YAAY,EAClB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAE9D,eAAO,MAAM,mBAAmB,oBAAoB,CAAC;AACrD,6DAA6D;AAC7D,MAAM,MAAM,cAAc,GAAG,cAAc,CAAC;AAE5C;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,EAAE,GACvD,cAAc,CAWhB;AAED,eAAO,MAAM,qBAAqB;cACtB,cAAc;gBACZ,OAAO;IACnB,2EAA2E;cACjE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;cACvB,OAAO;IACjB,wDAAwD;aAC/C,SAAS;EAChB,CAAC;AAiBL,uFAAuF;AACvF,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAChD,cAAc,GAAG,SAAS,CAe5B;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,YAAY,GACnB,aAAa,GAAG,SAAS,CAG3B;AAYD,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAChD,WAAW,GAAG,SAAS,CAGzB;AAED,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EACjD,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,uBAAuB,GAAG,SAAS,GAC3E,cAAc,GAAG,SAAS,CAI5B;AAED,0DAA0D;AAC1D,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,aAAa,GAAG;IAAE,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE,EACjD,KAAK,EAAE,YAAY,GAAG,IAAI,EAC1B,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,uBAAuB,GAAG,SAAS,GAC3E,cAAc,CAWhB;AAED,uFAAuF;AACvF,wBAAgB,sBAAsB,CACpC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAChD,MAAM,GAAG,SAAS,CAYpB"}
1
+ {"version":3,"file":"binding.d.ts","sourceRoot":"","sources":["../../src/channels/binding.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAGrD,OAAO,KAAK,EACV,uBAAuB,EAExB,MAAM,cAAc,CAAC;AAQtB,OAAO,KAAK,EACV,YAAY,EACZ,WAAW,EACX,SAAS,EACT,cAAc,EACf,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAwB,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,YAAY,EAClB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAE9D,eAAO,MAAM,mBAAmB,oBAAoB,CAAC;AACrD,6DAA6D;AAC7D,MAAM,MAAM,cAAc,GAAG,cAAc,CAAC;AAE5C;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,EAAE,GACvD,cAAc,CAWhB;AAED,eAAO,MAAM,qBAAqB;cACtB,cAAc;gBACZ,OAAO;IACnB,2EAA2E;cACjE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;cACvB,OAAO;IACjB,wDAAwD;aAC/C,SAAS;EAChB,CAAC;AAiBL,uFAAuF;AACvF,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAChD,cAAc,GAAG,SAAS,CAe5B;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,YAAY,GACnB,aAAa,GAAG,SAAS,CAG3B;AAYD,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAChD,WAAW,GAAG,SAAS,CAGzB;AAED,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EACjD,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,uBAAuB,GAAG,SAAS,GAC3E,cAAc,GAAG,SAAS,CAI5B;AAED,0DAA0D;AAC1D,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,aAAa,GAAG;IAAE,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE,EACjD,KAAK,EAAE,YAAY,GAAG,IAAI,EAC1B,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,uBAAuB,GAAG,SAAS,GAC3E,cAAc,CAgBhB;AAED,uFAAuF;AACvF,wBAAgB,sBAAsB,CACpC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAChD,MAAM,GAAG,SAAS,CAYpB"}
@@ -5,6 +5,7 @@ import { channelInfo, createRuntimeChannel } from "./runtime.js";
5
5
  import { isJsonValue } from "./message-schema.js";
6
6
  import { channelProviderForName, messagingTransportForName, } from "./messaging-registry.js";
7
7
  import { createTriggerClient } from "./trigger/client.js";
8
+ import { startTriggerConversation } from "./trigger/conversation.js";
8
9
  import { createTriggerTransport } from "./trigger/transport.js";
9
10
  import { channelContextSchema } from "../run-context.js";
10
11
  import { bindingFromOrigin, } from "../runtime/thread-record.js";
@@ -79,17 +80,20 @@ export function resolveRuntimeChannel(context, configurable, transportFactory) {
79
80
  /** A runtime channel that posts to a binding's target. */
80
81
  export function runtimeChannelFor(binding, event, transportFactory) {
81
82
  let transport;
83
+ let startThread;
82
84
  if (binding.transport === "trigger_server") {
83
85
  const client = createTriggerClient();
84
- if (client)
86
+ if (client) {
85
87
  transport = createTriggerTransport(client);
88
+ startThread = (message, run) => startTriggerConversation(client, binding, message, run);
89
+ }
86
90
  }
87
91
  else {
88
92
  transport =
89
93
  messagingTransportForName(binding.name) ??
90
94
  transportFactory?.(binding.provider);
91
95
  }
92
- return createRuntimeChannel({ ...binding, event, transport });
96
+ return createRuntimeChannel({ ...binding, event, transport, startThread });
93
97
  }
94
98
  /** Trusted ingress source for telemetry; direct HTTP callers have no channel stamp. */
95
99
  export function resolveChannelProvider(configurable) {
@@ -1 +1 @@
1
- {"version":3,"file":"binding.js","sourceRoot":"","sources":["../../src/channels/binding.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"binding.js","sourceRoot":"","sources":["../../src/channels/binding.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAKlD,OAAO,EACL,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAQhE,OAAO,EAAE,oBAAoB,EAAuB,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EACL,iBAAiB,GAGlB,MAAM,6BAA6B,CAAC;AAGrC,MAAM,CAAC,MAAM,mBAAmB,GAAG,iBAAiB,CAAC;AAIrD;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CACjC,OAAuB,EACvB,QAAwD;IAExD,OAAO;QACL,GAAG,OAAO;QACV,KAAK,EAAE;YACL,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,QAGG;SACd;KACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,iBAAiB,EAQtD,CAAC;AAEL,SAAS,MAAM,CAAC,KAAc;IAC5B,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC7E,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAC/B,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,KAAK,CAAC,EAC9C,uBAAuB,CACxB,CAAC;AACF,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,UAAU,EAAE,cAAc;IAC1B,OAAO,EAAE,gBAAgB;IACzB,iBAAiB,EAAE,cAAc;CAClC,CAAC,CAAC;AAEH,uFAAuF;AACvF,MAAM,UAAU,qBAAqB,CACnC,OAAgB,EAChB,YAAiD;IAEjD,MAAM,GAAG,GACP,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;QACnD,qBAAqB,CAAC,QAAQ,EAAE,EAAE,OAAO,CAAC;IAC5C,MAAM,MAAM,GAAG,oBAAoB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACnD,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IACtC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC;IAC5B,MAAM,IAAI,GAAG,YAAY,EAAE,mBAAmB,CAAC;IAC/C,IACE,CAAC,MAAM,CAAC,IAAI,CAAC;QACb,IAAI,CAAC,mBAAmB,KAAK,OAAO,CAAC,QAAQ;QAC7C,IAAI,CAAC,oBAAoB,KAAK,OAAO,CAAC,eAAe;QAErD,OAAO,SAAS,CAAC;IACnB,OAAO,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AAC1D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAClC,MAAoB;IAEpB,MAAM,OAAO,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC1C,OAAO,OAAO,IAAI,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AACrE,CAAC;AAED,iFAAiF;AACjF,SAAS,iBAAiB,CAAC,OAAsB;IAC/C,IAAI,sBAAsB,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5E,IAAI,OAAO,CAAC,SAAS,KAAK,gBAAgB;QAAE,OAAO,IAAI,CAAC;IACxD,MAAM,MAAM,GAAG,mBAAmB,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7D,OAAO,CACL,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,iBAAiB,KAAK,OAAO,CAAC,eAAe,CAC5E,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,OAAgB,EAChB,YAAiD;IAEjD,MAAM,OAAO,GAAG,qBAAqB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAC7D,OAAO,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,OAAgB,EAChB,YAAiD,EACjD,gBAA4E;IAE5E,MAAM,OAAO,GAAG,qBAAqB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAC7D,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAC/B,OAAO,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;AACrE,CAAC;AAED,0DAA0D;AAC1D,MAAM,UAAU,iBAAiB,CAC/B,OAAiD,EACjD,KAA0B,EAC1B,gBAA4E;IAE5E,IAAI,SAA8C,CAAC;IACnD,IAAI,WAAuD,CAAC;IAC5D,IAAI,OAAO,CAAC,SAAS,KAAK,gBAAgB,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,mBAAmB,EAAE,CAAC;QACrC,IAAI,MAAM,EAAE,CAAC;YACX,SAAS,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;YAC3C,WAAW,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,CAC7B,wBAAwB,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;SAAM,CAAC;QACN,SAAS;YACP,yBAAyB,CAAC,OAAO,CAAC,IAAI,CAAC;gBACvC,gBAAgB,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,oBAAoB,CAAC,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC;AAC7E,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,sBAAsB,CACpC,YAAiD;IAEjD,MAAM,IAAI,GAAG,YAAY,EAAE,mBAAmB,CAAC;IAC/C,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7D,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,QAAQ,GAAI,IAA0C;SACzD,mBAAmB,CAAC;IACvB,OAAO,QAAQ,KAAK,SAAS;QAC3B,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,OAAO,QAAQ,KAAK,QAAQ;YAC5B,CAAC,CAAC,QAAQ;YACV,CAAC,CAAC,SAAS,CAAC;AAClB,CAAC"}
@@ -1,20 +1,35 @@
1
1
  import type { CompiledStateGraph } from "@langchain/langgraph";
2
2
  import type { RunThread } from "../runtime/managed-thread.js";
3
3
  type Graph = Pick<CompiledStateGraph<unknown, unknown>, "getState" | "getStateHistory">;
4
+ /** What a new Trigger thread posted when a scheduled run pauses says. */
5
+ export declare const PAUSED_NOTICE = "This scheduled run is waiting for a decision.";
6
+ /** The run a delivery step belongs to. */
7
+ export interface DeliveredRun {
8
+ /** The Agent Server run, for idempotent posts, notices and their links. */
9
+ runId?: string;
10
+ assistantId?: string;
11
+ /** The run's configurable, with the principal the server stamped. */
12
+ configurable?: Record<string, unknown>;
13
+ /** The run's metadata, which marks a managed cron fire. */
14
+ metadata?: unknown;
15
+ /** Cron routing split out of the run's context. */
16
+ routing?: Record<string, unknown>;
17
+ /** The run's own thread; an async subagent's differs from `run.thread`'s. */
18
+ runThreadId?: string;
19
+ /** An async subagent's run: report its pause, never post its answer. */
20
+ subagent?: boolean;
21
+ }
4
22
  /**
5
- * Deliver a finished top-level run's result to its thread's origin. A thread
6
- * without an origin gets nothing.
23
+ * Deliver a finished top-level run's result to its thread's origin, or to a
24
+ * scheduled run's `deliverTo`. A thread with neither gets nothing. The Agent
25
+ * Server runs every TypeScript graph run on a thread with a checkpointer, a
26
+ * cron fire without a `thread_id` included, so its state can always be read.
7
27
  *
8
28
  * Failures follow what each channel did before: a Trigger post and any
9
29
  * scheduled delivery fail the run; a direct channel's post is logged and the
10
30
  * run still succeeds.
11
31
  */
12
- export declare function deliverRunResult(graph: Graph, run: RunThread,
13
- /** The Agent Server run and its assistant, for notices and their links. */
14
- { runId, assistantId }?: {
15
- runId?: string;
16
- assistantId?: string;
17
- }): Promise<void>;
32
+ export declare function deliverRunResult(graph: Graph, run: RunThread, delivered?: DeliveredRun): Promise<void>;
18
33
  /** The Trigger post id for a run's answer, stable across retries. */
19
34
  export declare function replyActionId(runId: string): string;
20
35
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"delivery.d.ts","sourceRoot":"","sources":["../../src/channels/delivery.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,kBAAkB,EAAiB,MAAM,sBAAsB,CAAC;AAI9E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAmB9D,KAAK,KAAK,GAAG,IAAI,CACf,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,EACpC,UAAU,GAAG,iBAAiB,CAC/B,CAAC;AAGF;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,SAAS;AACd,2EAA2E;AAC3E,EAAE,KAAK,EAAE,WAAW,EAAE,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAO,GACpE,OAAO,CAAC,IAAI,CAAC,CAgCf;AA+BD,qEAAqE;AACrE,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEnD"}
1
+ {"version":3,"file":"delivery.d.ts","sourceRoot":"","sources":["../../src/channels/delivery.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,kBAAkB,EAAiB,MAAM,sBAAsB,CAAC;AAI9E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AA2C9D,KAAK,KAAK,GAAG,IAAI,CACf,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,EACpC,UAAU,GAAG,iBAAiB,CAC/B,CAAC;AAGF,yEAAyE;AACzE,eAAO,MAAM,aAAa,kDAAkD,CAAC;AAE7E,0CAA0C;AAC1C,MAAM,WAAW,YAAY;IAC3B,2EAA2E;IAC3E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qEAAqE;IACrE,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mDAAmD;IACnD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,6EAA6E;IAC7E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wEAAwE;IACxE,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAOD;;;;;;;;;GASG;AACH,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,SAAS,EACd,SAAS,GAAE,YAAiB,GAC3B,OAAO,CAAC,IAAI,CAAC,CA0Df;AAuLD,qEAAqE;AACrE,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEnD"}
@@ -5,53 +5,90 @@
5
5
  * The run does it, not the process that received the event, so a restart of
6
6
  * that process loses nothing, and a run LangSmith Studio resumes answers the
7
7
  * conversation the paused run came from.
8
+ *
9
+ * A scheduled run that starts a new Trigger thread, with its answer or with a
10
+ * notice that it waits on a decision, hands its own thread to that thread's
11
+ * conversation, so replies and decisions there continue the run.
8
12
  */
9
13
  import { randomUUID } from "node:crypto";
10
14
  import { v5 as uuidv5 } from "uuid";
11
15
  import { z } from "zod";
12
- import { triggerTargetSchema } from "../runtime/thread-record.js";
16
+ import { THREAD_CONVERSATION_METADATA, originFromBinding, threadRecordMetadata, triggerTargetSchema, } from "../runtime/thread-record.js";
17
+ import { handOffScheduledThread, scheduleExecution, } from "../runtime/schedule-auth.js";
13
18
  import { logger } from "../runtime/log.js";
14
19
  import { QUIET_REPLY, extractReplyContent, extractReplyText, } from "./assistant-text.js";
15
- import { channelAutoRepliesForName, messagingTransportForName, pausedNoticeForName, } from "./messaging-registry.js";
20
+ import { channelAutoRepliesForName, channelProviderForName, messagingTransportForName, pausedNoticeForName, } from "./messaging-registry.js";
21
+ import { deliverScheduleResult, getDeploymentId, isTrustedScheduleDeliveryRun, readScheduleDeliverTo, } from "./schedule-delivery.js";
16
22
  import { createTriggerClient } from "./trigger/client.js";
17
23
  import { resolveTracerSessionId } from "./trigger/tracing-project.js";
18
- import { createTriggerTransport } from "./trigger/transport.js";
24
+ import { createTriggerTransport, startTriggerThread, } from "./trigger/transport.js";
25
+ /** What a new Trigger thread posted when a scheduled run pauses says. */
26
+ export const PAUSED_NOTICE = "This scheduled run is waiting for a decision.";
19
27
  /**
20
- * Deliver a finished top-level run's result to its thread's origin. A thread
21
- * without an origin gets nothing.
28
+ * Deliver a finished top-level run's result to its thread's origin, or to a
29
+ * scheduled run's `deliverTo`. A thread with neither gets nothing. The Agent
30
+ * Server runs every TypeScript graph run on a thread with a checkpointer, a
31
+ * cron fire without a `thread_id` included, so its state can always be read.
22
32
  *
23
33
  * Failures follow what each channel did before: a Trigger post and any
24
34
  * scheduled delivery fail the run; a direct channel's post is logged and the
25
35
  * run still succeeds.
26
36
  */
27
- export async function deliverRunResult(graph, run,
28
- /** The Agent Server run and its assistant, for notices and their links. */
29
- { runId, assistantId } = {}) {
37
+ export async function deliverRunResult(graph, run, delivered = {}) {
30
38
  const { thread, origin } = run;
31
- if (!thread || !origin)
39
+ if (!thread)
40
+ return;
41
+ const delivery = origin ? undefined : scheduledDelivery(delivered);
42
+ if (!origin && !delivery)
32
43
  return;
33
- const config = { configurable: { thread_id: thread.id } };
44
+ const deliverTo = delivery?.deliverTo;
45
+ const opening = openingOf(origin, delivery, delivered);
46
+ const { runId, subagent } = delivered;
47
+ const threadId = delivered.runThreadId ?? thread.id;
48
+ const config = { configurable: { thread_id: threadId } };
34
49
  const state = await graph.getState(config);
35
50
  const interrupts = pendingInterrupts(state);
36
51
  if (interrupts.length) {
37
- if (origin.transport === "trigger_server")
38
- await reportInterrupted(origin, thread.id, runId, interrupts);
39
- else
40
- await noticePaused(origin, thread.id, assistantId);
52
+ if (opening) {
53
+ const opened = await openThread(opening, run, delivered, {
54
+ text: PAUSED_NOTICE,
55
+ actionId: runId ? pausedActionId(runId) : randomUUID(),
56
+ });
57
+ if (opened)
58
+ await reportInterrupted(opened, threadId, runId, interrupts);
59
+ }
60
+ else if (origin?.transport === "trigger_server")
61
+ await reportInterrupted(origin, threadId, runId, interrupts);
62
+ else if (origin)
63
+ await noticePaused(origin, threadId, delivered.assistantId);
41
64
  return;
42
65
  }
43
66
  // A static breakpoint stopped the run before it finished: no answer yet.
44
- if (state.next.length > 0)
67
+ if (state.next.length > 0 || subagent)
45
68
  return;
46
69
  // A channel declared with `reply: "none"` leaves replying to the agent.
47
- if (!channelAutoRepliesForName(origin.name))
70
+ if (origin && !channelAutoRepliesForName(origin.name))
48
71
  return;
49
72
  const values = { messages: messagesOf(state.values) };
50
73
  const boundary = await replyBoundary(graph, config, values.messages);
51
- if (extractReplyText(values, boundary).trim() === QUIET_REPLY)
74
+ const text = extractReplyText(values, boundary);
75
+ if (text.trim() === QUIET_REPLY)
76
+ return;
77
+ if (opening) {
78
+ if (text)
79
+ await openThread(opening, run, delivered, {
80
+ text,
81
+ actionId: runId ? replyActionId(runId) : randomUUID(),
82
+ });
52
83
  return;
84
+ }
85
+ if (!origin) {
86
+ if (deliverTo && text)
87
+ await deliverToTarget(deliverTo, text);
88
+ return;
89
+ }
53
90
  const content = origin.transport === "trigger_server"
54
- ? extractReplyText(values, boundary) || null
91
+ ? text || null
55
92
  : extractReplyContent(values, boundary);
56
93
  if (content === null)
57
94
  return;
@@ -66,6 +103,128 @@ export async function deliverRunResult(graph, run,
66
103
  logger.error(`channel reply failed (${logger.safeErrorLabel(error)})`);
67
104
  }
68
105
  }
106
+ /** A compiled schedule's routing: where it delivers, and whether each fire has its own thread. */
107
+ const scheduleRoutingSchema = z.object({
108
+ deliver_to: z.unknown().optional(),
109
+ new_thread: z.boolean().optional(),
110
+ });
111
+ /** A trusted cron fire's schedule routing, when it posts its result to `deliverTo`. */
112
+ function scheduledDelivery(delivered) {
113
+ if (!isTrustedScheduleDeliveryRun(delivered.configurable, delivered.metadata))
114
+ return undefined;
115
+ const schedule = scheduleRoutingSchema.safeParse(delivered.routing?.mda_schedule);
116
+ if (!schedule.success)
117
+ return undefined;
118
+ const deliverTo = readScheduleDeliverTo(schedule.data.deliver_to);
119
+ return deliverTo?.autoPost
120
+ ? { deliverTo, newThread: schedule.data.new_thread === true }
121
+ : undefined;
122
+ }
123
+ /**
124
+ * Where a scheduled run starts a new Trigger thread: a new-thread schedule on
125
+ * a Trigger channel, or a new-thread `deliverTo` conversation Trigger delivers
126
+ * to. A schedule with a fixed thread keeps it.
127
+ */
128
+ function openingOf(origin, delivery, delivered) {
129
+ if (scheduleExecution(delivered.configurable) === undefined)
130
+ return undefined;
131
+ if (origin)
132
+ return origin.transport === "trigger_server" &&
133
+ origin.event?.type === "schedule" &&
134
+ origin.event.new_thread
135
+ ? { via: "channel", origin }
136
+ : undefined;
137
+ return delivery?.newThread === true &&
138
+ delivery.deliverTo.to.type === "provider_conversation" &&
139
+ getDeploymentId() !== undefined &&
140
+ hasTriggerClient()
141
+ ? { via: "deployment", deliverTo: delivery.deliverTo }
142
+ : undefined;
143
+ }
144
+ /** Whether Trigger is configured; a malformed setting leaves `deliverTo` its own fallback. */
145
+ function hasTriggerClient() {
146
+ try {
147
+ return createTriggerClient() !== undefined;
148
+ }
149
+ catch {
150
+ return false;
151
+ }
152
+ }
153
+ /**
154
+ * Post the first message of a new Trigger thread, then hand the run's thread
155
+ * to that thread's conversation. Returns the conversation, unless Trigger
156
+ * could not name the thread it started.
157
+ */
158
+ async function openThread(opening, run, delivered, { text, actionId }) {
159
+ const client = createTriggerClient();
160
+ if (!client)
161
+ throw new Error("channel delivery is not configured");
162
+ let started;
163
+ let name;
164
+ if (opening.via === "channel") {
165
+ name = opening.origin.name;
166
+ started = await startTriggerThread(client, {
167
+ target: opening.origin.target,
168
+ text,
169
+ actionId,
170
+ });
171
+ }
172
+ else {
173
+ name = opening.deliverTo.channel;
174
+ const deploymentId = getDeploymentId();
175
+ if (!deploymentId)
176
+ throw new Error("channel delivery is not configured");
177
+ const result = await client.postDeploymentAction(deploymentId, name, {
178
+ type: "post",
179
+ action_id: actionId,
180
+ address: { conversation_id: opening.deliverTo.to.conversationId },
181
+ follow_thread: true,
182
+ message: { text },
183
+ });
184
+ started = result.thread;
185
+ }
186
+ if (!started) {
187
+ logger.warn("scheduled post started a thread Trigger did not name");
188
+ return undefined;
189
+ }
190
+ const provider = opening.via === "channel"
191
+ ? opening.origin.provider
192
+ : (channelProviderForName(name) ?? name);
193
+ const conversation = {
194
+ name,
195
+ provider,
196
+ transport: "trigger_server",
197
+ sourceThreadKey: started.source_thread_key,
198
+ deliveryId: actionId,
199
+ target: started,
200
+ };
201
+ await handOff(run, delivered, conversation);
202
+ return { ...conversation, event: null };
203
+ }
204
+ /** Make the run's thread the conversation's, keeping its participants. */
205
+ async function handOff(run, delivered, conversation) {
206
+ const execution = scheduleExecution(delivered.configurable);
207
+ if (!execution || !run.thread)
208
+ throw new Error("scheduled thread handoff is unavailable");
209
+ const record = threadRecordMetadata({
210
+ origin: originFromBinding(conversation, null),
211
+ participants: run.thread.participants.map(({ id, role }) => ({ id, role })),
212
+ });
213
+ await handOffScheduledThread({
214
+ thread: run.thread.id,
215
+ execution,
216
+ conversation: {
217
+ provider: conversation.provider,
218
+ source_thread_key: conversation.sourceThreadKey,
219
+ },
220
+ }, { ...record, [THREAD_CONVERSATION_METADATA]: conversation.sourceThreadKey });
221
+ }
222
+ /** Post a `deliverTo` result into an existing conversation; a failure fails the run. */
223
+ async function deliverToTarget(deliverTo, text) {
224
+ const outcome = await deliverScheduleResult({ deliverTo, replyText: text });
225
+ if (outcome === "failed")
226
+ throw new Error("Scheduled channel delivery failed");
227
+ }
69
228
  async function post(origin, content, runId) {
70
229
  const newThread = origin.event?.type === "schedule" ? origin.event.new_thread : undefined;
71
230
  const message = { type: "content", content };
@@ -88,6 +247,10 @@ async function post(origin, content, runId) {
88
247
  ...(newThread !== undefined && { newThread }),
89
248
  });
90
249
  }
250
+ /** The Trigger post id of a paused run's notice, stable across retries. */
251
+ function pausedActionId(runId) {
252
+ return uuidv5(`mda-paused:${runId}`, uuidv5.URL);
253
+ }
91
254
  /** The Trigger post id for a run's answer, stable across retries. */
92
255
  export function replyActionId(runId) {
93
256
  return uuidv5(`mda-reply:${runId}`, uuidv5.URL);
@@ -1 +1 @@
1
- {"version":3,"file":"delivery.js","sourceRoot":"","sources":["../../src/channels/delivery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"delivery.js","sourceRoot":"","sources":["../../src/channels/delivery.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import type { GitHubAppOptions } from "./types.js";
2
+ type PermissionLevel = "read" | "write";
3
+ /** A permission the App asks for, with the handled events that need it. */
4
+ export type AppPermission = {
5
+ name: string;
6
+ level: PermissionLevel;
7
+ /** Empty when the level comes from `app.permissions` or is `metadata`. */
8
+ events: string[];
9
+ };
10
+ /** What `mda deploy` needs to set up the GitHub App. */
11
+ export type GitHubAppSetup = {
12
+ /** The handled event keys, such as `issues.opened`. */
13
+ events: string[];
14
+ /** The webhook events the App subscribes to, such as `issues`. */
15
+ webhookEvents: string[];
16
+ permissions: AppPermission[];
17
+ /** `owner/name`, lowercased and sorted; absent for every repository. */
18
+ repositories?: string[];
19
+ };
20
+ /**
21
+ * The App the channel's handlers and `app` options need. The CLI reads it
22
+ * from the channel's manifest instead of working it out; the Python runtime
23
+ * mirrors these rules in `github_app_setup.py`.
24
+ */
25
+ export declare function githubAppSetup(handlers: object, app: GitHubAppOptions | undefined): GitHubAppSetup;
26
+ /**
27
+ * The repositories the channel is limited to, lowercased since GitHub names
28
+ * are case-insensitive. One installation covers them, so they share an owner.
29
+ */
30
+ export declare function repositoryAllowlist(repositories: readonly string[] | undefined): string[] | undefined;
31
+ export {};
32
+ //# sourceMappingURL=app-setup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-setup.d.ts","sourceRoot":"","sources":["../../../src/channels/github/app-setup.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAqB,MAAM,YAAY,CAAC;AAEtE,KAAK,eAAe,GAAG,MAAM,GAAG,OAAO,CAAC;AAgExC,2EAA2E;AAC3E,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,eAAe,CAAC;IACvB,0EAA0E;IAC1E,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,CAAC;AAEF,wDAAwD;AACxD,MAAM,MAAM,cAAc,GAAG;IAC3B,uDAAuD;IACvD,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,kEAAkE;IAClE,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,WAAW,EAAE,aAAa,EAAE,CAAC;IAC7B,wEAAwE;IACxE,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,gBAAgB,GAAG,SAAS,GAChC,cAAc,CAiBhB;AAoDD;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,GAC1C,MAAM,EAAE,GAAG,SAAS,CAiCtB"}