managed-deepagents 0.8.6-dev.3 → 0.9.0-dev.2

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 (150) hide show
  1. package/README.md +81 -1
  2. package/dist/channels/http/index.d.ts.map +1 -1
  3. package/dist/channels/http/index.js +5 -1
  4. package/dist/channels/http/index.js.map +1 -1
  5. package/dist/channels/http/types.d.ts +2 -0
  6. package/dist/channels/http/types.d.ts.map +1 -1
  7. package/dist/channels/reactions.d.ts +31 -0
  8. package/dist/channels/reactions.d.ts.map +1 -0
  9. package/dist/channels/reactions.js +52 -0
  10. package/dist/channels/reactions.js.map +1 -0
  11. package/dist/channels/runtime.d.ts +1 -0
  12. package/dist/channels/runtime.d.ts.map +1 -1
  13. package/dist/channels/runtime.js +7 -1
  14. package/dist/channels/runtime.js.map +1 -1
  15. package/dist/channels/schedule-delivery.d.ts +3 -25
  16. package/dist/channels/schedule-delivery.d.ts.map +1 -1
  17. package/dist/channels/schedule-delivery.js +28 -31
  18. package/dist/channels/schedule-delivery.js.map +1 -1
  19. package/dist/channels/slack/index.d.ts +8 -0
  20. package/dist/channels/slack/index.d.ts.map +1 -1
  21. package/dist/channels/slack/index.js +10 -0
  22. package/dist/channels/slack/index.js.map +1 -1
  23. package/dist/channels/slack/transport.d.ts.map +1 -1
  24. package/dist/channels/slack/transport.js +1 -1
  25. package/dist/channels/slack/transport.js.map +1 -1
  26. package/dist/channels/trigger/http.d.ts +3 -0
  27. package/dist/channels/trigger/http.d.ts.map +1 -1
  28. package/dist/channels/trigger/http.js +82 -37
  29. package/dist/channels/trigger/http.js.map +1 -1
  30. package/dist/channels/trigger/transport.d.ts.map +1 -1
  31. package/dist/channels/trigger/transport.js +6 -3
  32. package/dist/channels/trigger/transport.js.map +1 -1
  33. package/dist/channels/trigger/types.d.ts +21 -2
  34. package/dist/channels/trigger/types.d.ts.map +1 -1
  35. package/dist/channels/trigger/types.js.map +1 -1
  36. package/dist/channels/types.d.ts +3 -0
  37. package/dist/channels/types.d.ts.map +1 -1
  38. package/dist/channels/types.js.map +1 -1
  39. package/dist/connection-authorization.d.ts +7 -0
  40. package/dist/connection-authorization.d.ts.map +1 -1
  41. package/dist/connection-authorization.js +1 -1
  42. package/dist/connection-authorization.js.map +1 -1
  43. package/dist/connectors/mcp/index.d.ts +11 -11
  44. package/dist/connectors/mcp/index.d.ts.map +1 -1
  45. package/dist/connectors/mcp/index.js +74 -120
  46. package/dist/connectors/mcp/index.js.map +1 -1
  47. package/dist/connectors/mcp/langsmith-url.js +2 -2
  48. package/dist/connectors/mcp/langsmith-url.js.map +1 -1
  49. package/dist/connectors/mcp/schema.d.ts +4 -13
  50. package/dist/connectors/mcp/schema.d.ts.map +1 -1
  51. package/dist/connectors/mcp/schema.js +57 -96
  52. package/dist/connectors/mcp/schema.js.map +1 -1
  53. package/dist/connectors/mcp/types.d.ts +15 -49
  54. package/dist/connectors/mcp/types.d.ts.map +1 -1
  55. package/dist/credential-gate.d.ts.map +1 -1
  56. package/dist/credential-gate.js +2 -4
  57. package/dist/credential-gate.js.map +1 -1
  58. package/dist/define-deep-agent.d.ts +6 -5
  59. package/dist/define-deep-agent.d.ts.map +1 -1
  60. package/dist/define-deep-agent.js +13 -17
  61. package/dist/define-deep-agent.js.map +1 -1
  62. package/dist/dynamic-agent.d.ts +13 -0
  63. package/dist/dynamic-agent.d.ts.map +1 -0
  64. package/dist/dynamic-agent.js +12 -0
  65. package/dist/dynamic-agent.js.map +1 -0
  66. package/dist/index.d.ts +6 -2
  67. package/dist/index.d.ts.map +1 -1
  68. package/dist/index.js +2 -0
  69. package/dist/index.js.map +1 -1
  70. package/dist/managed-composition.d.ts +15 -0
  71. package/dist/managed-composition.d.ts.map +1 -0
  72. package/dist/managed-composition.js +181 -0
  73. package/dist/managed-composition.js.map +1 -0
  74. package/dist/run-context.d.ts +6 -0
  75. package/dist/run-context.d.ts.map +1 -1
  76. package/dist/run-context.js +1 -0
  77. package/dist/run-context.js.map +1 -1
  78. package/dist/runtime/agent-entry.d.ts +6 -0
  79. package/dist/runtime/agent-entry.d.ts.map +1 -0
  80. package/dist/runtime/agent-entry.js +42 -0
  81. package/dist/runtime/agent-entry.js.map +1 -0
  82. package/dist/runtime/auth.d.ts +1 -6
  83. package/dist/runtime/auth.d.ts.map +1 -1
  84. package/dist/runtime/auth.js +9 -7
  85. package/dist/runtime/auth.js.map +1 -1
  86. package/dist/runtime/backend.d.ts +1 -0
  87. package/dist/runtime/backend.d.ts.map +1 -1
  88. package/dist/runtime/backend.js +9 -6
  89. package/dist/runtime/backend.js.map +1 -1
  90. package/dist/runtime/eval-filesystem.d.ts +4 -2
  91. package/dist/runtime/eval-filesystem.d.ts.map +1 -1
  92. package/dist/runtime/eval-filesystem.js +134 -8
  93. package/dist/runtime/eval-filesystem.js.map +1 -1
  94. package/dist/runtime/index.d.ts +4 -3
  95. package/dist/runtime/index.d.ts.map +1 -1
  96. package/dist/runtime/index.js +118 -42
  97. package/dist/runtime/index.js.map +1 -1
  98. package/dist/runtime/memory/index.d.ts +1 -1
  99. package/dist/runtime/memory/index.d.ts.map +1 -1
  100. package/dist/runtime/memory/index.js +1 -1
  101. package/dist/runtime/memory/index.js.map +1 -1
  102. package/dist/runtime/memory/mounts.d.ts +3 -2
  103. package/dist/runtime/memory/mounts.d.ts.map +1 -1
  104. package/dist/runtime/memory/mounts.js +11 -15
  105. package/dist/runtime/memory/mounts.js.map +1 -1
  106. package/dist/runtime/memory/paths.d.ts +1 -0
  107. package/dist/runtime/memory/paths.d.ts.map +1 -1
  108. package/dist/runtime/memory/paths.js +10 -0
  109. package/dist/runtime/memory/paths.js.map +1 -1
  110. package/dist/runtime/run-input.d.ts +3 -0
  111. package/dist/runtime/run-input.d.ts.map +1 -1
  112. package/dist/runtime/sandbox-manager.d.ts +14 -2
  113. package/dist/runtime/sandbox-manager.d.ts.map +1 -1
  114. package/dist/runtime/sandbox-manager.js +90 -12
  115. package/dist/runtime/sandbox-manager.js.map +1 -1
  116. package/dist/runtime/schedule-auth.d.ts +49 -0
  117. package/dist/runtime/schedule-auth.d.ts.map +1 -0
  118. package/dist/runtime/schedule-auth.js +177 -0
  119. package/dist/runtime/schedule-auth.js.map +1 -0
  120. package/dist/runtime/selected-skills-backend.d.ts +22 -0
  121. package/dist/runtime/selected-skills-backend.d.ts.map +1 -0
  122. package/dist/runtime/selected-skills-backend.js +238 -0
  123. package/dist/runtime/selected-skills-backend.js.map +1 -0
  124. package/dist/runtime/selected-skills.d.ts +13 -0
  125. package/dist/runtime/selected-skills.d.ts.map +1 -0
  126. package/dist/runtime/selected-skills.js +257 -0
  127. package/dist/runtime/selected-skills.js.map +1 -0
  128. package/dist/runtime/static-entry.d.ts +4 -0
  129. package/dist/runtime/static-entry.d.ts.map +1 -0
  130. package/dist/runtime/static-entry.js +18 -0
  131. package/dist/runtime/static-entry.js.map +1 -0
  132. package/dist/runtime-schedules.d.ts +101 -0
  133. package/dist/runtime-schedules.d.ts.map +1 -0
  134. package/dist/runtime-schedules.js +454 -0
  135. package/dist/runtime-schedules.js.map +1 -0
  136. package/dist/sandbox.d.ts +2 -1
  137. package/dist/sandbox.d.ts.map +1 -1
  138. package/dist/sandbox.js.map +1 -1
  139. package/dist/schedule-channel.d.ts +3 -0
  140. package/dist/schedule-channel.d.ts.map +1 -0
  141. package/dist/schedule-channel.js +21 -0
  142. package/dist/schedule-channel.js.map +1 -0
  143. package/dist/schedule-time.d.ts +12 -0
  144. package/dist/schedule-time.d.ts.map +1 -0
  145. package/dist/schedule-time.js +101 -0
  146. package/dist/schedule-time.js.map +1 -0
  147. package/dist/types.d.ts +40 -15
  148. package/dist/types.d.ts.map +1 -1
  149. package/dist/types.js.map +1 -1
  150. package/package.json +8 -8
package/README.md CHANGED
@@ -125,7 +125,45 @@ export const agent = defineDeepAgent({
125
125
  });
126
126
  ```
127
127
 
128
- `defineDeepAgent` requires a static `name` (LangGraph assistant id and default LangSmith deployment name) and otherwise accepts the [`createDeepAgent`](https://reference.langchain.com/javascript/deepagents/agent/createDeepAgent) configuration surface minus the managed keys: `backend`, `store`, `checkpointer`, `memory`, `skills`, and `systemPrompt`. Those are provided by the managed runtime when your agent is deployed. Write the system prompt in `instructions.md` next to `agent.ts`; the CLI embeds it at deploy time.
128
+ `defineDeepAgent` requires `name` and supports the [`createDeepAgent`](https://reference.langchain.com/javascript/deepagents/agent/createDeepAgent) options except the platform-owned `backend`, `store`, `checkpointer`, `systemPrompt`, and `memory` fields. Static agents use `instructions.md` and all discovered skills.
129
+
130
+ Use `dynamic(resolve)` when run context should select the agent configuration. The resolver may be synchronous or asynchronous and must return `defineDeepAgent(...)` with an inline string-literal `name`, which `mda build` uses as the graph key:
131
+
132
+ ```ts
133
+ import { join } from "node:path";
134
+ import { defineDeepAgent, dynamic } from "managed-deepagents";
135
+ import { customerLookup, inspectInternalCase } from "./tools/support";
136
+
137
+ const skill = (name: string) => join(import.meta.dirname, "skills", name);
138
+
139
+ export const agent = dynamic((ctx) => {
140
+ const internal = "role" in ctx && ctx.role === "internal";
141
+
142
+ return defineDeepAgent({
143
+ name: "support",
144
+ model: internal ? "openai:gpt-5.5" : "openai:gpt-5-mini",
145
+ tools: internal ? [inspectInternalCase] : [customerLookup],
146
+ instructions: internal ? "Help support staff." : "Help customers.",
147
+ skills: [skill(internal ? "internal-support" : "customer-support")],
148
+ });
149
+ });
150
+ ```
151
+
152
+ Dynamic agents can select `model`, `tools`, `subagents`, `middleware`, `instructions`, `skills`, `mcp`, and `sandbox`. Standard agent fields follow `createDeepAgent`. Managed fields follow these rules:
153
+
154
+ - Omitted `instructions`, `skills`, `mcp`, or `sandbox` use the discovered project resources.
155
+ - `instructions: ""` clears authored instructions; `skills: []` exposes no skills; `mcp: []` exposes no MCP tools.
156
+ - Skill entries are authored skill directory paths or generated skill definitions.
157
+ - `mcp` accepts definitions returned by `defineMcp(...)`. A non-empty list replaces discovered MCP definitions while keeping other connectors.
158
+ - `sandbox` accepts a definition returned by `defineSandbox(...)`; `sandbox: null` disables the sandbox for that run. Sandbox setup and image baking remain in `sandbox/`.
159
+
160
+ Declare durable memory in root `memory.ts`; its `allow(context)` policies already resolve per run. Dynamic definitions cannot set memory.
161
+
162
+ Clients pass application context in the Agent Server run request's `context` field. MDA may call the resolver again for retries and resumes, so keep it repeatable and free of side effects. Schema inspection calls it with `{}`. Use middleware for changes between model steps in one run.
163
+
164
+ Run context is application data, not verified identity. Derive security-sensitive roles from authenticated server state, and have tools check authorization when called.
165
+
166
+ `mda build` detects the dynamic entrypoint without calling it and uses the returned definition's inline string-literal `name` as the graph key and default deployment name. Add every possible model integration to `package.json`. `mda deploy --name <name>` changes the deployment name, not the graph key.
129
167
 
130
168
  To authenticate SDK and API requests with a LangSmith workspace key while
131
169
  retaining MDA's thread and store authorization, declare it explicitly:
@@ -414,6 +452,41 @@ live. Declarations must be statically serializable literals or top-level
414
452
  constants; prompt schedules become user-message input, and stateless runs clean
415
453
  up their temporary thread after completion.
416
454
 
455
+ ### Runtime schedules
456
+
457
+ Use `schedules` in a tool or middleware to create schedules while the agent runs.
458
+ Each schedule belongs to the current user or to the agent. You can list, get,
459
+ update, and delete the schedules of an owner.
460
+
461
+ ```ts
462
+ import { schedules } from "managed-deepagents";
463
+
464
+ const owner = { type: "user" } as const;
465
+ const item = await schedules.create({
466
+ owner,
467
+ cron: "0 9 * * 1-5",
468
+ timezone: "America/Los_Angeles",
469
+ prompt: "Review my tasks.",
470
+ });
471
+ const page = await schedules.list({ owner });
472
+ await schedules.update(item.id, { paused: true }, { owner });
473
+ await schedules.delete(item.id, { owner });
474
+ ```
475
+
476
+ To run a schedule once, give `at` in place of `cron`.
477
+
478
+ ```ts
479
+ await schedules.create({
480
+ owner,
481
+ at: new Date(Date.now() + 60 * 60_000),
482
+ prompt: "Remind me to check the deploy.",
483
+ });
484
+ ```
485
+
486
+ Set `newThread` to choose whether a run starts a new thread or continues the
487
+ current thread. When a schedule is created from a channel such as Slack,
488
+ each run posts its final answer to that channel. Runtime schedules stay when you deploy again.
489
+
417
490
  ## Sandbox
418
491
 
419
492
  `mda init` scaffolds `sandbox/index.ts` with a LangSmith sandbox. MDA only
@@ -528,6 +601,13 @@ Tool names are raw MCP tool names before the managed `{server}__` prefix is
528
601
  applied, so `includeTools: ["search"]` on server `langchainDocs` exposes
529
602
  `langchainDocs__search` when prefixing is enabled.
530
603
 
604
+ ### Migration from 0.8
605
+
606
+ - `mcpServers` → `servers`, and `type` → `transport`.
607
+ - Remove `useStandardContentBlocks`.
608
+ - `reconnect` and `automaticSSEFallback` now need `mode: "legacy"`.
609
+ - `HttpMcpServerConfig`, `SseMcpServerConfig`, and `RemoteMcpServerBaseConfig` → `RemoteMcpServerConfig`.
610
+
531
611
  ## Connections in the sandbox proxy
532
612
 
533
613
  Authenticate GitHub API requests and HTTPS git commands with the caller's
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/channels/http/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAEL,KAAK,OAAO,EAEb,MAAM,0BAA0B,CAAC;AAElC,YAAY,EACV,kBAAkB,EAClB,yBAAyB,EACzB,sBAAsB,EACtB,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAE9D,wBAAgB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,WAAW,CAyBpE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/channels/http/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAEL,KAAK,OAAO,EAEb,MAAM,0BAA0B,CAAC;AAElC,YAAY,EACV,kBAAkB,EAClB,yBAAyB,EACzB,sBAAsB,EACtB,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAE9D,wBAAgB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,WAAW,CA+BpE"}
@@ -9,7 +9,11 @@ export function httpChannel(adapter) {
9
9
  const post = adapter.post?.bind(adapter);
10
10
  if (post) {
11
11
  hide(channel, "messaging", () => ({
12
- post: ({ message, target }) => post(immutableCopy({ ...message, target })),
12
+ post: ({ message, target, newThread }) => post(immutableCopy({
13
+ ...message,
14
+ target,
15
+ ...(newThread === undefined ? {} : { newThread }),
16
+ })),
13
17
  }));
14
18
  }
15
19
  hide(channel, "requirements", (name) => ({
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/channels/http/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAgC,MAAM,eAAe,CAAC;AAE5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9C,OAAO,EACL,aAAa,GAGd,MAAM,0BAA0B,CAAC;AAalC,MAAM,UAAU,WAAW,CAAC,OAA2B;IACrD,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,wBAAwB,CAAC,CAAC;IACtE,MAAM,OAAO,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAiB,CAAC;IAElD,IAAI,CAAC,OAAO,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;IACnC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,GAAyB,EAAE,EAAE,CACpD,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,CAChC,CAAC;IACF,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACzC,IAAI,IAAI,EAAE,CAAC;QACT,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,GAA4B,EAAE,CAAC,CAAC;YACzD,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAC5B,IAAI,CAAC,aAAa,CAAC,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;SAC9C,CAAC,CAAC,CAAC;IACN,CAAC;IACD,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,CAAC,IAAY,EAAmB,EAAE,CAAC,CAAC;QAChE,IAAI;QACJ,QAAQ;QACR,UAAU,EAAE,aAAa,IAAI,SAAS;QACtC,SAAS,EAAE,IAAI,KAAK,SAAS;QAC7B,mBAAmB,EAAE,EAAE;QACvB,WAAW,EAAE,EAAE;QACf,cAAc,EAAE,EAAE;KACnB,CAAC,CAAC,CAAC;IACJ,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa,EAAE,KAAa;IAC5C,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAChC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,6BAA6B,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,IAAI,CAAC,MAAc,EAAE,GAAoB,EAAE,KAAc;IAChE,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;AACnE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/channels/http/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAgC,MAAM,eAAe,CAAC;AAE5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9C,OAAO,EACL,aAAa,GAGd,MAAM,0BAA0B,CAAC;AAalC,MAAM,UAAU,WAAW,CAAC,OAA2B;IACrD,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,wBAAwB,CAAC,CAAC;IACtE,MAAM,OAAO,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAiB,CAAC;IAElD,IAAI,CAAC,OAAO,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;IACnC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,GAAyB,EAAE,EAAE,CACpD,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,CAChC,CAAC;IACF,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACzC,IAAI,IAAI,EAAE,CAAC;QACT,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,GAA4B,EAAE,CAAC,CAAC;YACzD,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,CACvC,IAAI,CACF,aAAa,CAAC;gBACZ,GAAG,OAAO;gBACV,MAAM;gBACN,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC;aAClD,CAAC,CACH;SACJ,CAAC,CAAC,CAAC;IACN,CAAC;IACD,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,CAAC,IAAY,EAAmB,EAAE,CAAC,CAAC;QAChE,IAAI;QACJ,QAAQ;QACR,UAAU,EAAE,aAAa,IAAI,SAAS;QACtC,SAAS,EAAE,IAAI,KAAK,SAAS;QAC7B,mBAAmB,EAAE,EAAE;QACvB,WAAW,EAAE,EAAE;QACf,cAAc,EAAE,EAAE;KACnB,CAAC,CAAC,CAAC;IACJ,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa,EAAE,KAAa;IAC5C,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAChC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,6BAA6B,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,IAAI,CAAC,MAAc,EAAE,GAAoB,EAAE,KAAc;IAChE,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;AACnE,CAAC"}
@@ -19,6 +19,8 @@ export type HttpChannelParseResult = {
19
19
  /** MDA adds the verified reply target to the validated message. */
20
20
  export type HttpChannelPostInput = ChannelMessage & {
21
21
  target: JsonValue;
22
+ /** Scheduled posts: start a new thread when true; keep the target unchanged. */
23
+ newThread?: boolean;
22
24
  };
23
25
  export interface HttpPostedMessage {
24
26
  id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/channels/http/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7E,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,sEAAsE;IACtE,MAAM,EAAE,SAAS,CAAC;IAClB,OAAO,EAAE,cAAc,CAAC;CACzB;AAED,MAAM,MAAM,sBAAsB,GAC9B;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,yBAAyB,CAAC;IACnC,kEAAkE;IAClE,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB,GACD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,EAAE,QAAQ,CAAA;CAAE,CAAC;AAE5C,mEAAmE;AACnE,MAAM,MAAM,oBAAoB,GAAG,cAAc,GAAG;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,CAAC;AAE1E,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAChE,iEAAiE;IACjE,KAAK,CACH,OAAO,EAAE,kBAAkB,GAC1B,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAC5D,IAAI,CAAC,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC/D,OAAO,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5D;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,UAAU,CAAC;CACrB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/channels/http/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7E,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,sEAAsE;IACtE,MAAM,EAAE,SAAS,CAAC;IAClB,OAAO,EAAE,cAAc,CAAC;CACzB;AAED,MAAM,MAAM,sBAAsB,GAC9B;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,yBAAyB,CAAC;IACnC,kEAAkE;IAClE,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB,GACD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,EAAE,QAAQ,CAAA;CAAE,CAAC;AAE5C,mEAAmE;AACnE,MAAM,MAAM,oBAAoB,GAAG,cAAc,GAAG;IAClD,MAAM,EAAE,SAAS,CAAC;IAClB,gFAAgF;IAChF,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAChE,iEAAiE;IACjE,KAAK,CACH,OAAO,EAAE,kBAAkB,GAC1B,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAC5D,IAAI,CAAC,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC/D,OAAO,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5D;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,UAAU,CAAC;CACrB"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Resolve the emoji the agent reacts with when it picks up an inbound message.
3
+ *
4
+ * The reaction is a courtesy and must never fail a run or delay a reply, so a
5
+ * chooser that throws, hangs, or answers with something that is not an emoji
6
+ * short name yields {@link DEFAULT_REACTION_EMOJI} instead.
7
+ */
8
+ /** The default reaction, and the fallback whenever a chooser does not answer. */
9
+ export declare const DEFAULT_REACTION_EMOJI = "eyes";
10
+ /** What a chooser is told about the message it is reacting to. */
11
+ export interface ReactionContext {
12
+ /** The inbound message text. Attacker-controlled; treat it as data. */
13
+ readonly text: string;
14
+ }
15
+ /**
16
+ * Picks the emoji for one inbound message. May be sync or async.
17
+ *
18
+ * A sync chooser runs on the event loop, where the timeout cannot stop it, so
19
+ * do slow work in an async one.
20
+ */
21
+ export type ReactionChooser = (context: ReactionContext) => string | Promise<string>;
22
+ /**
23
+ * How a channel reacts: `true` with the default, `false` not at all, a short
24
+ * name always that emoji, or a function per message.
25
+ */
26
+ export type ReactionChoice = boolean | string | ReactionChooser;
27
+ /** Whether `value` is a usable emoji short name. */
28
+ export declare function isEmojiName(value: unknown): value is string;
29
+ /** Resolve the reaction for one message. Never throws. */
30
+ export declare function resolveReactionEmoji(choice: Exclude<ReactionChoice, false>, context: ReactionContext): Promise<string>;
31
+ //# sourceMappingURL=reactions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reactions.d.ts","sourceRoot":"","sources":["../../src/channels/reactions.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,iFAAiF;AACjF,eAAO,MAAM,sBAAsB,SAAS,CAAC;AAa7C,kEAAkE;AAClE,MAAM,WAAW,eAAe;IAC9B,uEAAuE;IACvE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED;;;;;GAKG;AACH,MAAM,MAAM,eAAe,GAAG,CAC5B,OAAO,EAAE,eAAe,KACrB,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAE9B;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,MAAM,GAAG,eAAe,CAAC;AAEhE,oDAAoD;AACpD,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAE3D;AAED,0DAA0D;AAC1D,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,OAAO,CAAC,cAAc,EAAE,KAAK,CAAC,EACtC,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,MAAM,CAAC,CA6BjB"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Resolve the emoji the agent reacts with when it picks up an inbound message.
3
+ *
4
+ * The reaction is a courtesy and must never fail a run or delay a reply, so a
5
+ * chooser that throws, hangs, or answers with something that is not an emoji
6
+ * short name yields {@link DEFAULT_REACTION_EMOJI} instead.
7
+ */
8
+ import { logger } from "../runtime/log.js";
9
+ /** The default reaction, and the fallback whenever a chooser does not answer. */
10
+ export const DEFAULT_REACTION_EMOJI = "eyes";
11
+ /**
12
+ * Slack emoji short name, without the surrounding colons.
13
+ *
14
+ * Well-formedness is all that can be checked here; whether Slack knows the
15
+ * name is Slack's to say, and it rejects an unknown one by doing nothing.
16
+ */
17
+ const EMOJI_NAME = /^[a-z0-9+-][a-z0-9_+-]{0,59}$/;
18
+ /** How long a chooser may take before the default is used instead. */
19
+ const CHOOSER_TIMEOUT_MS = 5_000;
20
+ /** Whether `value` is a usable emoji short name. */
21
+ export function isEmojiName(value) {
22
+ return typeof value === "string" && EMOJI_NAME.test(value);
23
+ }
24
+ /** Resolve the reaction for one message. Never throws. */
25
+ export async function resolveReactionEmoji(choice, context) {
26
+ if (typeof choice === "string") {
27
+ return isEmojiName(choice) ? choice : DEFAULT_REACTION_EMOJI;
28
+ }
29
+ if (typeof choice !== "function")
30
+ return DEFAULT_REACTION_EMOJI;
31
+ let timer;
32
+ try {
33
+ const chosen = await Promise.race([
34
+ Promise.resolve(choice(context)),
35
+ new Promise((_, reject) => {
36
+ timer = setTimeout(() => reject(new Error(`timed out after ${CHOOSER_TIMEOUT_MS}ms`)), CHOOSER_TIMEOUT_MS);
37
+ }),
38
+ ]);
39
+ if (isEmojiName(chosen))
40
+ return chosen;
41
+ logger.warn("Channel reaction chooser did not answer with an emoji short name; using the default.");
42
+ }
43
+ catch (error) {
44
+ logger.warn(`Channel reaction chooser failed (${logger.safeErrorLabel(error)}); using the default.`);
45
+ }
46
+ finally {
47
+ if (timer !== undefined)
48
+ clearTimeout(timer);
49
+ }
50
+ return DEFAULT_REACTION_EMOJI;
51
+ }
52
+ //# sourceMappingURL=reactions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reactions.js","sourceRoot":"","sources":["../../src/channels/reactions.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,iFAAiF;AACjF,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,CAAC;AAE7C;;;;;GAKG;AACH,MAAM,UAAU,GAAG,+BAA+B,CAAC;AAEnD,sEAAsE;AACtE,MAAM,kBAAkB,GAAG,KAAK,CAAC;AAwBjC,oDAAoD;AACpD,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC7D,CAAC;AAED,0DAA0D;AAC1D,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,MAAsC,EACtC,OAAwB;IAExB,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,sBAAsB,CAAC;IAC/D,CAAC;IACD,IAAI,OAAO,MAAM,KAAK,UAAU;QAAE,OAAO,sBAAsB,CAAC;IAEhE,IAAI,KAAgD,CAAC;IACrD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAChC,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;gBAC/B,KAAK,GAAG,UAAU,CAChB,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,kBAAkB,IAAI,CAAC,CAAC,EAClE,kBAAkB,CACnB,CAAC;YACJ,CAAC,CAAC;SACH,CAAC,CAAC;QACH,IAAI,WAAW,CAAC,MAAM,CAAC;YAAE,OAAO,MAAM,CAAC;QACvC,MAAM,CAAC,IAAI,CACT,sFAAsF,CACvF,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,IAAI,CACT,oCAAoC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,uBAAuB,CACxF,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,IAAI,KAAK,KAAK,SAAS;YAAE,YAAY,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,sBAAsB,CAAC;AAChC,CAAC"}
@@ -4,6 +4,7 @@ export interface ChannelMessagingAdapter {
4
4
  post(input: {
5
5
  message: ChannelMessage;
6
6
  target: JsonValue;
7
+ newThread?: boolean;
7
8
  }): Promise<PostedChannelMessage>;
8
9
  }
9
10
  export interface CreateRuntimeChannelOptions {
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/channels/runtime.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,YAAY,EACZ,WAAW,EACX,cAAc,EACd,SAAS,EACT,oBAAoB,EACpB,cAAc,EACf,MAAM,YAAY,CAAC;AAEpB,8DAA8D;AAC9D,MAAM,WAAW,uBAAuB;IACtC,IAAI,CAAC,KAAK,EAAE;QACV,OAAO,EAAE,cAAc,CAAC;QACxB,MAAM,EAAE,SAAS,CAAC;KACnB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;CACnC;AACD,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,YAAY,CAAC;IACpB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,SAAS,CAAC;IAClB,SAAS,CAAC,EAAE,uBAAuB,CAAC;CACrC;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAU5C;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,WAAW,CAO7D;AAED,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,2BAA2B,GACnC,cAAc,CAYhB;AAED,wBAAgB,eAAe,CAC7B,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,OAAO,IAAI,cAAc,CAEnC;AAED,qEAAqE;AACrE,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CAelE"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/channels/runtime.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,YAAY,EACZ,WAAW,EACX,cAAc,EACd,SAAS,EACT,oBAAoB,EACpB,cAAc,EACf,MAAM,YAAY,CAAC;AAEpB,8DAA8D;AAC9D,MAAM,WAAW,uBAAuB;IACtC,IAAI,CAAC,KAAK,EAAE;QACV,OAAO,EAAE,cAAc,CAAC;QACxB,MAAM,EAAE,SAAS,CAAC;QAClB,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;CACnC;AACD,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,YAAY,CAAC;IACpB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,SAAS,CAAC;IAClB,SAAS,CAAC,EAAE,uBAAuB,CAAC;CACrC;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAU5C;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,WAAW,CAO7D;AAED,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,2BAA2B,GACnC,cAAc,CAkBhB;AAED,wBAAgB,eAAe,CAC7B,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,OAAO,IAAI,cAAc,CAEnC;AAED,qEAAqE;AACrE,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CAelE"}
@@ -26,7 +26,13 @@ export function createRuntimeChannel(options) {
26
26
  ...facts,
27
27
  async post(message) {
28
28
  validateMessage(message);
29
- return transport.post({ message: immutableCopy(message), target });
29
+ return transport.post({
30
+ message: immutableCopy(message),
31
+ target,
32
+ ...(facts.event.type === "schedule"
33
+ ? { newThread: facts.event.new_thread }
34
+ : {}),
35
+ });
30
36
  },
31
37
  });
32
38
  }
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/channels/runtime.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AA0B3D,MAAM,UAAU,aAAa,CAAI,KAAQ;IACvC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAM,CAAC;IAC9E,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAChD,OAAO,MAAM,CAAC,MAAM,CAClB,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAC7D,CACG,CAAC;IACT,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,OAAoB;IAC9C,OAAO,aAAa,CAAC;QACnB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC;KAC1E,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,OAAoC;IAEpC,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IACnC,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IACpC,IAAI,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IAC7B,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7C,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,GAAG,KAAK;QACR,KAAK,CAAC,IAAI,CAAC,OAAuB;YAChC,eAAe,CAAC,OAAO,CAAC,CAAC;YACzB,OAAO,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QACrE,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,OAAgB;IAEhB,oBAAoB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AACtC,CAAC;AAED,qEAAqE;AACrE,MAAM,UAAU,kBAAkB,CAAC,OAAuB;IACxD,eAAe,CAAC,OAAO,CAAC,CAAC;IACzB,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ;QAC3B,MAAM,IAAI,KAAK,CACb,+EAA+E,CAChF,CAAC;IACJ,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAC,OAAO,CAAC;IAChE,IACE,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CACrB,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CACnE,EACD,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC7D,CAAC"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/channels/runtime.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,4 @@
1
- /**
2
- * Schedule `deliverTo` auto-post after a cron-triggered agent run.
3
- *
4
- * Reads `configurable.mda_schedule.deliver_to` (compiled from defineSchedule)
5
- * and posts the final assistant text to Slack when configured.
6
- *
7
- * Delivery only runs for managed cron invocations: compiled crons stamp both
8
- * `metadata.mda_managed` / `metadata.mda_schedule` and
9
- * `configurable.mda_schedule.name`. Ordinary HTTP invokes cannot forge that
10
- * pair (and `mda_schedule` is a reserved configurable key).
11
- */
1
+ /** Deliver trusted schedule results through captured or explicit channel targets. */
12
2
  import type { ManagedMiddleware } from "../runtime/managed-middleware.js";
13
3
  import type { ChannelAddress } from "./types.js";
14
4
  /** Override LangGraph run metadata resolution. @internal Test-only. */
@@ -50,25 +40,13 @@ export interface DeliverScheduleResultInput {
50
40
  }
51
41
  /** Return the deployment ID supplied by the managed runtime. */
52
42
  export declare function getDeploymentId(env?: NodeJS.ProcessEnv): string | undefined;
53
- /**
54
- * Post schedule result text to the configured channel. Soft-fails (logs) on
55
- * missing token / provider errors so cron runs are not marked failed.
56
- */
43
+ /** Post result text; the middleware fails the run when delivery returns "failed". */
57
44
  export declare function deliverScheduleResult(input: DeliverScheduleResultInput): Promise<"posted" | "skipped" | "failed">;
58
45
  /**
59
46
  * True when this run is a managed cron fire (not a caller-forged HTTP invoke).
60
47
  */
61
48
  export declare function isTrustedScheduleDeliveryRun(configurable: Record<string, unknown> | undefined): boolean;
62
- /**
63
- * Always-on middleware that auto-posts schedule results when `deliver_to` is set
64
- * on a trusted managed cron run.
65
- *
66
- * Prefer explicit `runtime.configurable`, then ambient — not
67
- * `resolveRuntimeConfigurable`, which can discard a present `mda_schedule` when
68
- * the bag lacks `langgraph_auth_user`.
69
- *
70
- * Production always calls this with no options; `options.deliver` is test-only.
71
- */
49
+ /** Post trusted schedule results and propagate delivery failures. */
72
50
  export declare function createScheduleDeliveryMiddleware(options?: {
73
51
  /** Override deliver implementation (tests). */
74
52
  _deliver?: typeof deliverScheduleResult;
@@ -1 +1 @@
1
- {"version":3,"file":"schedule-delivery.d.ts","sourceRoot":"","sources":["../../src/channels/schedule-delivery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAWH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAO1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAMjD,uEAAuE;AACvE,wBAAgB,2BAA2B,CACzC,MAAM,CAAC,EAAE,MAAM;IAAE,WAAW,CAAC,EAAE,OAAO,CAAC;IAAC,YAAY,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,SAAS,GAC3E,IAAI,CAEN;AAED,uDAAuD;AACvD,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EACE;QAAE,IAAI,EAAE,uBAAuB,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,GACzD;QAAE,IAAI,EAAE,iBAAiB,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1E,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAChD,2BAA2B,GAAG,SAAS,CAoDzC;AAED,kEAAkE;AAClE,wBAAgB,oBAAoB,CAClC,EAAE,EAAE,2BAA2B,CAAC,IAAI,CAAC,GACpC,cAAc,CAKhB;AAED,MAAM,WAAW,0BAA0B;IACzC,SAAS,EAAE,2BAA2B,CAAC;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,kCAAkC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4CAA4C;IAC5C,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE;QACb,IAAI,EAAE,MAAM,CAAC;QACb,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACxB;AAED,gEAAgE;AAChE,wBAAgB,eAAe,CAC7B,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,GAAG,SAAS,CAMpB;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,0BAA0B,GAChC,OAAO,CAAC,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC,CAmF1C;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAC1C,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAChD,OAAO,CAcT;AAmBD;;;;;;;;;GASG;AACH,wBAAgB,gCAAgC,CAAC,OAAO,CAAC,EAAE;IACzD,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,OAAO,qBAAqB,CAAC;CACzC,GAAG,iBAAiB,CAyBpB"}
1
+ {"version":3,"file":"schedule-delivery.d.ts","sourceRoot":"","sources":["../../src/channels/schedule-delivery.ts"],"names":[],"mappings":"AAAA,qFAAqF;AAWrF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAU1E,OAAO,KAAK,EAAE,cAAc,EAAkB,MAAM,YAAY,CAAC;AAMjE,uEAAuE;AACvE,wBAAgB,2BAA2B,CACzC,MAAM,CAAC,EAAE,MAAM;IAAE,WAAW,CAAC,EAAE,OAAO,CAAC;IAAC,YAAY,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,SAAS,GAC3E,IAAI,CAEN;AAED,uDAAuD;AACvD,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EACE;QAAE,IAAI,EAAE,uBAAuB,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,GACzD;QAAE,IAAI,EAAE,iBAAiB,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1E,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAChD,2BAA2B,GAAG,SAAS,CAoDzC;AAED,kEAAkE;AAClE,wBAAgB,oBAAoB,CAClC,EAAE,EAAE,2BAA2B,CAAC,IAAI,CAAC,GACpC,cAAc,CAKhB;AAED,MAAM,WAAW,0BAA0B;IACzC,SAAS,EAAE,2BAA2B,CAAC;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,kCAAkC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4CAA4C;IAC5C,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE;QACb,IAAI,EAAE,MAAM,CAAC;QACb,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACxB;AAED,gEAAgE;AAChE,wBAAgB,eAAe,CAC7B,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,GAAG,SAAS,CAMpB;AAED,qFAAqF;AACrF,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,0BAA0B,GAChC,OAAO,CAAC,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC,CAmF1C;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAC1C,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAChD,OAAO,CAcT;AAmBD,qEAAqE;AACrE,wBAAgB,gCAAgC,CAAC,OAAO,CAAC,EAAE;IACzD,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,OAAO,qBAAqB,CAAC;CACzC,GAAG,iBAAiB,CAiDpB"}
@@ -1,20 +1,10 @@
1
- /**
2
- * Schedule `deliverTo` auto-post after a cron-triggered agent run.
3
- *
4
- * Reads `configurable.mda_schedule.deliver_to` (compiled from defineSchedule)
5
- * and posts the final assistant text to Slack when configured.
6
- *
7
- * Delivery only runs for managed cron invocations: compiled crons stamp both
8
- * `metadata.mda_managed` / `metadata.mda_schedule` and
9
- * `configurable.mda_schedule.name`. Ordinary HTTP invokes cannot forge that
10
- * pair (and `mda_schedule` is a reserved configurable key).
11
- */
1
+ /** Deliver trusted schedule results through captured or explicit channel targets. */
12
2
  import { randomUUID } from "node:crypto";
13
3
  import { getConfig } from "@langchain/langgraph";
14
4
  import { configurableFromRuntime, resolveAmbientConfigurable, } from "../runtime/identity-runtime.js";
15
5
  import { logger } from "../runtime/log.js";
16
- import { extractAssistantText } from "./assistant-text.js";
17
- import { SLACK_BOT_TOKEN_ENV } from "./binding.js";
6
+ import { extractAssistantContent, extractAssistantText, } from "./assistant-text.js";
7
+ import { SLACK_BOT_TOKEN_ENV, resolveRuntimeChannel } from "./binding.js";
18
8
  import { createSlackWebApiTransport } from "./slack/transport.js";
19
9
  import { createTriggerClient } from "./trigger/client.js";
20
10
  let scheduleMetadataForTests;
@@ -90,10 +80,7 @@ export function getDeploymentId(env = process.env) {
90
80
  env.LANGGRAPH_CLOUD_ID?.trim() ||
91
81
  undefined);
92
82
  }
93
- /**
94
- * Post schedule result text to the configured channel. Soft-fails (logs) on
95
- * missing token / provider errors so cron runs are not marked failed.
96
- */
83
+ /** Post result text; the middleware fails the run when delivery returns "failed". */
97
84
  export async function deliverScheduleResult(input) {
98
85
  const text = input.replyText.trim();
99
86
  if (!text || !input.deliverTo.autoPost) {
@@ -194,28 +181,17 @@ function resolveScheduleMetadata() {
194
181
  }
195
182
  return undefined;
196
183
  }
197
- /**
198
- * Always-on middleware that auto-posts schedule results when `deliver_to` is set
199
- * on a trusted managed cron run.
200
- *
201
- * Prefer explicit `runtime.configurable`, then ambient — not
202
- * `resolveRuntimeConfigurable`, which can discard a present `mda_schedule` when
203
- * the bag lacks `langgraph_auth_user`.
204
- *
205
- * Production always calls this with no options; `options.deliver` is test-only.
206
- */
184
+ /** Post trusted schedule results and propagate delivery failures. */
207
185
  export function createScheduleDeliveryMiddleware(options) {
208
186
  const deliver = options?._deliver ?? deliverScheduleResult;
209
187
  return {
210
188
  name: "mda-schedule-delivery",
211
189
  async afterAgent(state, runtime) {
190
+ // Keep schedule config even when langgraph_auth_user is absent.
212
191
  const configurable = configurableFromRuntime(runtime) ?? resolveAmbientConfigurable();
213
192
  if (!isTrustedScheduleDeliveryRun(configurable)) {
214
193
  return undefined;
215
194
  }
216
- const deliverTo = readScheduleDeliverTo(configurable);
217
- if (!deliverTo)
218
- return undefined;
219
195
  const messages = state &&
220
196
  typeof state === "object" &&
221
197
  !Array.isArray(state) &&
@@ -223,7 +199,28 @@ export function createScheduleDeliveryMiddleware(options) {
223
199
  ? state.messages
224
200
  : undefined;
225
201
  const replyText = extractAssistantText({ messages });
226
- await deliver({ deliverTo, replyText });
202
+ const savedChannel = configurable?.channel;
203
+ if (savedChannel != null) {
204
+ const channel = resolveRuntimeChannel({ channel: savedChannel }, configurable);
205
+ if (!channel?.post)
206
+ throw new Error("Scheduled channel delivery is unavailable");
207
+ const binding = savedChannel;
208
+ const content = binding.transport === "trigger_server"
209
+ ? replyText || null
210
+ : extractAssistantContent({ messages });
211
+ if (content !== null)
212
+ await channel.post({
213
+ type: "content",
214
+ content: content,
215
+ });
216
+ return undefined;
217
+ }
218
+ const deliverTo = readScheduleDeliverTo(configurable);
219
+ if (deliverTo) {
220
+ const outcome = await deliver({ deliverTo, replyText });
221
+ if (outcome === "failed")
222
+ throw new Error("Scheduled channel delivery failed");
223
+ }
227
224
  return undefined;
228
225
  },
229
226
  };
@@ -1 +1 @@
1
- {"version":3,"file":"schedule-delivery.js","sourceRoot":"","sources":["../../src/channels/schedule-delivery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schedule-delivery.js","sourceRoot":"","sources":["../../src/channels/schedule-delivery.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  /** Trigger Server-backed Slack channel authoring surface. */
2
2
  import type { ChannelManifest } from "../manifest.js";
3
+ import { type ReactionChoice } from "../reactions.js";
3
4
  import { type Channel } from "../../runtime/channel.js";
4
5
  export type { ChannelManifest } from "../manifest.js";
5
6
  export interface SlackChannelConfig {
@@ -12,6 +13,12 @@ export interface SlackChannelConfig {
12
13
  backgroundColor?: string;
13
14
  triggerOnAllMessages?: boolean;
14
15
  allowBotTriggers?: boolean;
16
+ /**
17
+ * Emoji to react with when a message starts a run; `eyes` by default, and
18
+ * `true` keeps it. Pass `false` for none, another Slack emoji short name, or a
19
+ * function that picks one per message.
20
+ */
21
+ reactions?: ReactionChoice;
15
22
  }
16
23
  export interface TriggerSlackAppConfig {
17
24
  name?: string;
@@ -23,6 +30,7 @@ export interface RequiredTriggerSlackChannelConfig {
23
30
  app: TriggerSlackAppConfig;
24
31
  triggerOnAllMessages: boolean;
25
32
  allowBotTriggers: boolean;
33
+ reactions?: ReactionChoice;
26
34
  }
27
35
  /** Branded Trigger-backed Slack declaration. */
28
36
  export type SlackChannel = Channel & RequiredTriggerSlackChannelConfig & {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/channels/slack/index.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAI7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtD,OAAO,EAEL,KAAK,OAAO,EAEb,MAAM,0BAA0B,CAAC;AAElC,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtD,MAAM,WAAW,kBAAkB;IACjC,iEAAiE;IACjE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mDAAmD;IACnD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yDAAyD;IACzD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,iCAAiC;IAChD,GAAG,EAAE,qBAAqB,CAAC;IAC3B,oBAAoB,EAAE,OAAO,CAAC;IAC9B,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED,gDAAgD;AAChD,MAAM,MAAM,YAAY,GAAG,OAAO,GAChC,iCAAiC,GAAG;IAClC,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,gBAAgB,CAAC;CAC7B,CAAC;AA8CJ,8EAA8E;AAC9E,wBAAgB,YAAY,CAAC,MAAM,GAAE,kBAAuB,GAAG,YAAY,CAkC1E;AAED,6EAA6E;AAC7E,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,iCAAiC,GAAG,YAAY,GAC3D,eAAe,CA2BjB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/channels/slack/index.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAI7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAEL,KAAK,OAAO,EAEb,MAAM,0BAA0B,CAAC;AAElC,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtD,MAAM,WAAW,kBAAkB;IACjC,iEAAiE;IACjE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mDAAmD;IACnD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yDAAyD;IACzD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;;OAIG;IACH,SAAS,CAAC,EAAE,cAAc,CAAC;CAC5B;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,iCAAiC;IAChD,GAAG,EAAE,qBAAqB,CAAC;IAC3B,oBAAoB,EAAE,OAAO,CAAC;IAC9B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE,cAAc,CAAC;CAC5B;AAED,gDAAgD;AAChD,MAAM,MAAM,YAAY,GAAG,OAAO,GAChC,iCAAiC,GAAG;IAClC,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,gBAAgB,CAAC;CAC7B,CAAC;AA2DJ,8EAA8E;AAC9E,wBAAgB,YAAY,CAAC,MAAM,GAAE,kBAAuB,GAAG,YAAY,CAmC1E;AAED,6EAA6E;AAC7E,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,iCAAiC,GAAG,YAAY,GAC3D,eAAe,CA2BjB"}
@@ -1,5 +1,6 @@
1
1
  /** Trigger Server-backed Slack channel authoring surface. */
2
2
  import { z } from "zod";
3
+ import { DEFAULT_REACTION_EMOJI, isEmojiName, } from "../reactions.js";
3
4
  import { handleTriggerChannelEventRequest } from "../trigger/http.js";
4
5
  import { CHANNEL_BRAND, } from "../../runtime/channel.js";
5
6
  const slackChannelConfig = z
@@ -34,6 +35,14 @@ const slackChannelConfig = z
34
35
  .optional(),
35
36
  triggerOnAllMessages: z.boolean().default(false),
36
37
  allowBotTriggers: z.boolean().default(false),
38
+ reactions: z
39
+ .custom((value) => typeof value === "boolean" ||
40
+ typeof value === "function" ||
41
+ isEmojiName(value), {
42
+ message: "Must be a boolean, a Slack emoji short name, or a function returning one",
43
+ })
44
+ .transform((value) => (value === true ? DEFAULT_REACTION_EMOJI : value))
45
+ .default(DEFAULT_REACTION_EMOJI),
37
46
  })
38
47
  .strict();
39
48
  function hide(target, key, value) {
@@ -68,6 +77,7 @@ export function slackChannel(config = {}) {
68
77
  rawBody: ctx.rawBody,
69
78
  sourceProvider: "slack",
70
79
  channelName: ctx.name,
80
+ reactions: self.reactions,
71
81
  }));
72
82
  hide(self, "requirements", (name) => toSlackRequirements(name, self));
73
83
  return self;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/channels/slack/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/channels/slack/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../src/channels/slack/transport.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAGL,KAAK,uBAAuB,EAC7B,MAAM,eAAe,CAAC;AAGvB,0EAA0E;AAC1E,eAAO,MAAM,kBAAkB,mBAAmB,CAAC;AAEnD,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yCAAyC;IACzC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB;AAED,kDAAkD;AAClD,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,2BAA2B,GACnC,uBAAuB,CA+CzB"}
1
+ {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../src/channels/slack/transport.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAGL,KAAK,uBAAuB,EAC7B,MAAM,eAAe,CAAC;AAGvB,0EAA0E;AAC1E,eAAO,MAAM,kBAAkB,mBAAmB,CAAC;AAEnD,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yCAAyC;IACzC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB;AAED,kDAAkD;AAClD,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,2BAA2B,GACnC,uBAAuB,CAgDzB"}
@@ -35,7 +35,7 @@ export function createSlackWebApiTransport(options) {
35
35
  applyNative(body, native);
36
36
  }
37
37
  body.channel = target.conversationId;
38
- if (typeof target.threadId === "string")
38
+ if (!input.newThread && typeof target.threadId === "string")
39
39
  body.thread_ts = target.threadId;
40
40
  const result = await slackApi(token, "chat.postMessage", body, {
41
41
  apiBase,
@@ -1 +1 @@
1
- {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/channels/slack/transport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/channels/slack/transport.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import type { ChannelBinding } from "../binding.js";
2
+ import { type ReactionChoice } from "../reactions.js";
2
3
  import { type ObservedIngressRun, type PendingInterrupt } from "./ingress.js";
3
4
  import type { StartedIngressRun } from "../../ingress/runs.js";
4
5
  import { type TriggerClientLike } from "./client.js";
@@ -50,6 +51,8 @@ export interface TriggerChannelHttpOptions {
50
51
  threadInterrupts?: ThreadInterrupts;
51
52
  observeAgent?: ObserveAgent;
52
53
  triggerClient?: TriggerClientLike;
54
+ /** How to react to the message that starts a run. Defaults to `eyes`. */
55
+ reactions?: ReactionChoice;
53
56
  /** Override identity-context JWKS verify (unit tests). */
54
57
  identityContext?: IdentityContextVerifyOptions;
55
58
  }