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

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 (195) hide show
  1. package/README.md +508 -80
  2. package/dist/channels/actor.d.ts +43 -0
  3. package/dist/channels/actor.d.ts.map +1 -0
  4. package/dist/channels/actor.js +2 -0
  5. package/dist/channels/actor.js.map +1 -0
  6. package/dist/channels/assistant-text.d.ts +29 -0
  7. package/dist/channels/assistant-text.d.ts.map +1 -1
  8. package/dist/channels/assistant-text.js +72 -1
  9. package/dist/channels/assistant-text.js.map +1 -1
  10. package/dist/channels/binding.d.ts +20 -1
  11. package/dist/channels/binding.d.ts.map +1 -1
  12. package/dist/channels/binding.js +39 -10
  13. package/dist/channels/binding.js.map +1 -1
  14. package/dist/channels/delivery.d.ts +21 -0
  15. package/dist/channels/delivery.d.ts.map +1 -0
  16. package/dist/channels/delivery.js +196 -0
  17. package/dist/channels/delivery.js.map +1 -0
  18. package/dist/channels/github/index.d.ts.map +1 -1
  19. package/dist/channels/github/index.js +13 -11
  20. package/dist/channels/github/index.js.map +1 -1
  21. package/dist/channels/github/schema.d.ts +50 -1
  22. package/dist/channels/github/schema.d.ts.map +1 -1
  23. package/dist/channels/github/schema.js +12 -0
  24. package/dist/channels/github/schema.js.map +1 -1
  25. package/dist/channels/http/endpoint.d.ts +6 -4
  26. package/dist/channels/http/endpoint.d.ts.map +1 -1
  27. package/dist/channels/http/endpoint.js.map +1 -1
  28. package/dist/channels/http/http.d.ts.map +1 -1
  29. package/dist/channels/http/http.js +4 -10
  30. package/dist/channels/http/http.js.map +1 -1
  31. package/dist/channels/http/index.d.ts.map +1 -1
  32. package/dist/channels/http/index.js +10 -16
  33. package/dist/channels/http/index.js.map +1 -1
  34. package/dist/channels/http/ingress.d.ts +2 -2
  35. package/dist/channels/http/ingress.d.ts.map +1 -1
  36. package/dist/channels/http/ingress.js +9 -21
  37. package/dist/channels/http/ingress.js.map +1 -1
  38. package/dist/channels/http/provider.d.ts +10 -5
  39. package/dist/channels/http/provider.d.ts.map +1 -1
  40. package/dist/channels/http/provider.js +17 -10
  41. package/dist/channels/http/provider.js.map +1 -1
  42. package/dist/channels/http/studio.d.ts +5 -5
  43. package/dist/channels/http/studio.d.ts.map +1 -1
  44. package/dist/channels/http/studio.js +4 -6
  45. package/dist/channels/http/studio.js.map +1 -1
  46. package/dist/channels/http/types.d.ts +7 -1
  47. package/dist/channels/http/types.d.ts.map +1 -1
  48. package/dist/channels/linear/index.d.ts.map +1 -1
  49. package/dist/channels/linear/index.js +16 -11
  50. package/dist/channels/linear/index.js.map +1 -1
  51. package/dist/channels/linear/schema.d.ts +11 -25
  52. package/dist/channels/linear/schema.d.ts.map +1 -1
  53. package/dist/channels/linear/schema.js +6 -0
  54. package/dist/channels/linear/schema.js.map +1 -1
  55. package/dist/channels/linear/types.d.ts +9 -2
  56. package/dist/channels/linear/types.d.ts.map +1 -1
  57. package/dist/channels/messaging-registry.d.ts +16 -0
  58. package/dist/channels/messaging-registry.d.ts.map +1 -1
  59. package/dist/channels/messaging-registry.js +29 -0
  60. package/dist/channels/messaging-registry.js.map +1 -1
  61. package/dist/channels/reserved-connections.d.ts.map +1 -1
  62. package/dist/channels/reserved-connections.js +10 -0
  63. package/dist/channels/reserved-connections.js.map +1 -1
  64. package/dist/channels/run-input.d.ts +11 -0
  65. package/dist/channels/run-input.d.ts.map +1 -1
  66. package/dist/channels/run-input.js +18 -8
  67. package/dist/channels/run-input.js.map +1 -1
  68. package/dist/channels/runtime.d.ts +1 -1
  69. package/dist/channels/runtime.d.ts.map +1 -1
  70. package/dist/channels/runtime.js +1 -1
  71. package/dist/channels/runtime.js.map +1 -1
  72. package/dist/channels/schedule-delivery.d.ts +1 -1
  73. package/dist/channels/schedule-delivery.d.ts.map +1 -1
  74. package/dist/channels/schedule-delivery.js +9 -20
  75. package/dist/channels/schedule-delivery.js.map +1 -1
  76. package/dist/channels/slack/api.d.ts +2 -0
  77. package/dist/channels/slack/api.d.ts.map +1 -1
  78. package/dist/channels/slack/api.js +6 -0
  79. package/dist/channels/slack/api.js.map +1 -1
  80. package/dist/channels/slack/connections.d.ts +6 -0
  81. package/dist/channels/slack/connections.d.ts.map +1 -0
  82. package/dist/channels/slack/connections.js +6 -0
  83. package/dist/channels/slack/connections.js.map +1 -0
  84. package/dist/channels/slack/events.d.ts +272 -0
  85. package/dist/channels/slack/events.d.ts.map +1 -0
  86. package/dist/channels/slack/events.js +235 -0
  87. package/dist/channels/slack/events.js.map +1 -0
  88. package/dist/channels/slack/files.d.ts.map +1 -1
  89. package/dist/channels/slack/files.js +2 -3
  90. package/dist/channels/slack/files.js.map +1 -1
  91. package/dist/channels/slack/index.d.ts +44 -2
  92. package/dist/channels/slack/index.d.ts.map +1 -1
  93. package/dist/channels/slack/index.js +124 -3
  94. package/dist/channels/slack/index.js.map +1 -1
  95. package/dist/channels/slack/message-content.d.ts.map +1 -1
  96. package/dist/channels/slack/message-content.js +23 -28
  97. package/dist/channels/slack/message-content.js.map +1 -1
  98. package/dist/channels/slack/status.d.ts +76 -0
  99. package/dist/channels/slack/status.d.ts.map +1 -0
  100. package/dist/channels/slack/status.js +427 -0
  101. package/dist/channels/slack/status.js.map +1 -0
  102. package/dist/channels/trigger/client.d.ts.map +1 -1
  103. package/dist/channels/trigger/client.js +4 -9
  104. package/dist/channels/trigger/client.js.map +1 -1
  105. package/dist/channels/trigger/http.d.ts +114 -3
  106. package/dist/channels/trigger/http.d.ts.map +1 -1
  107. package/dist/channels/trigger/http.js +310 -71
  108. package/dist/channels/trigger/http.js.map +1 -1
  109. package/dist/channels/trigger/ingress.d.ts +38 -1
  110. package/dist/channels/trigger/ingress.d.ts.map +1 -1
  111. package/dist/channels/trigger/ingress.js +47 -1
  112. package/dist/channels/trigger/ingress.js.map +1 -1
  113. package/dist/channels/trigger/types.d.ts +82 -3
  114. package/dist/channels/trigger/types.d.ts.map +1 -1
  115. package/dist/channels/trigger/types.js +36 -0
  116. package/dist/channels/trigger/types.js.map +1 -1
  117. package/dist/channels/types.d.ts +19 -3
  118. package/dist/channels/types.d.ts.map +1 -1
  119. package/dist/channels/types.js +2 -0
  120. package/dist/channels/types.js.map +1 -1
  121. package/dist/index.d.ts +6 -3
  122. package/dist/index.d.ts.map +1 -1
  123. package/dist/index.js +1 -1
  124. package/dist/index.js.map +1 -1
  125. package/dist/ingress/runs.d.ts +22 -0
  126. package/dist/ingress/runs.d.ts.map +1 -1
  127. package/dist/ingress/runs.js +45 -1
  128. package/dist/ingress/runs.js.map +1 -1
  129. package/dist/managed-composition.d.ts.map +1 -1
  130. package/dist/managed-composition.js +8 -13
  131. package/dist/managed-composition.js.map +1 -1
  132. package/dist/namespaces.d.ts +0 -21
  133. package/dist/namespaces.d.ts.map +1 -1
  134. package/dist/namespaces.js +0 -29
  135. package/dist/namespaces.js.map +1 -1
  136. package/dist/runtime/auth.d.ts +1 -2
  137. package/dist/runtime/auth.d.ts.map +1 -1
  138. package/dist/runtime/auth.js +90 -63
  139. package/dist/runtime/auth.js.map +1 -1
  140. package/dist/runtime/identity-runtime.d.ts +4 -9
  141. package/dist/runtime/identity-runtime.d.ts.map +1 -1
  142. package/dist/runtime/identity-runtime.js +12 -25
  143. package/dist/runtime/identity-runtime.js.map +1 -1
  144. package/dist/runtime/index.d.ts.map +1 -1
  145. package/dist/runtime/index.js +32 -23
  146. package/dist/runtime/index.js.map +1 -1
  147. package/dist/runtime/managed-thread.d.ts +60 -0
  148. package/dist/runtime/managed-thread.d.ts.map +1 -0
  149. package/dist/runtime/managed-thread.js +76 -0
  150. package/dist/runtime/managed-thread.js.map +1 -0
  151. package/dist/runtime/managed-tools.d.ts +10 -2
  152. package/dist/runtime/managed-tools.d.ts.map +1 -1
  153. package/dist/runtime/managed-tools.js +10 -8
  154. package/dist/runtime/managed-tools.js.map +1 -1
  155. package/dist/runtime/memory/policy.d.ts.map +1 -1
  156. package/dist/runtime/memory/policy.js +1 -3
  157. package/dist/runtime/memory/policy.js.map +1 -1
  158. package/dist/runtime/run-input.d.ts +10 -0
  159. package/dist/runtime/run-input.d.ts.map +1 -1
  160. package/dist/runtime/run-input.js +48 -2
  161. package/dist/runtime/run-input.js.map +1 -1
  162. package/dist/runtime/sandbox-manager.d.ts.map +1 -1
  163. package/dist/runtime/sandbox-manager.js +1 -1
  164. package/dist/runtime/sandbox-manager.js.map +1 -1
  165. package/dist/runtime/schedule-auth.d.ts +17 -0
  166. package/dist/runtime/schedule-auth.d.ts.map +1 -1
  167. package/dist/runtime/schedule-auth.js +39 -1
  168. package/dist/runtime/schedule-auth.js.map +1 -1
  169. package/dist/runtime/thread-record.d.ts +81 -0
  170. package/dist/runtime/thread-record.d.ts.map +1 -0
  171. package/dist/runtime/thread-record.js +205 -0
  172. package/dist/runtime/thread-record.js.map +1 -0
  173. package/dist/runtime/types.d.ts +5 -1
  174. package/dist/runtime/types.d.ts.map +1 -1
  175. package/dist/runtime-schedules.d.ts +13 -0
  176. package/dist/runtime-schedules.d.ts.map +1 -1
  177. package/dist/runtime-schedules.js +83 -20
  178. package/dist/runtime-schedules.js.map +1 -1
  179. package/dist/sandbox.d.ts +0 -6
  180. package/dist/sandbox.d.ts.map +1 -1
  181. package/dist/sandbox.js +3 -7
  182. package/dist/sandbox.js.map +1 -1
  183. package/dist/schedule-channel.d.ts +5 -2
  184. package/dist/schedule-channel.d.ts.map +1 -1
  185. package/dist/schedule-channel.js +13 -12
  186. package/dist/schedule-channel.js.map +1 -1
  187. package/dist/values.d.ts +15 -0
  188. package/dist/values.d.ts.map +1 -0
  189. package/dist/values.js +31 -0
  190. package/dist/values.js.map +1 -0
  191. package/package.json +7 -7
  192. package/dist/channels/http/reply.d.ts +0 -20
  193. package/dist/channels/http/reply.d.ts.map +0 -1
  194. package/dist/channels/http/reply.js +0 -116
  195. package/dist/channels/http/reply.js.map +0 -1
@@ -1,10 +1,10 @@
1
- /** Deliver trusted schedule results through captured or explicit channel targets. */
1
+ /** Deliver trusted schedule results to their explicit `deliverTo` channel targets. */
2
2
  import { randomUUID } from "node:crypto";
3
3
  import { getConfig } from "@langchain/langgraph";
4
4
  import { configurableFromRuntime, resolveAmbientConfigurable, } from "../runtime/identity-runtime.js";
5
5
  import { logger } from "../runtime/log.js";
6
- import { extractAssistantContent, extractAssistantText, } from "./assistant-text.js";
7
- import { SLACK_BOT_TOKEN_ENV, currentChannelBinding, resolveRuntimeChannel, } from "./binding.js";
6
+ import { extractAssistantText } from "./assistant-text.js";
7
+ import { SLACK_BOT_TOKEN_ENV, currentChannelBinding } from "./binding.js";
8
8
  import { createSlackWebApiTransport } from "./slack/transport.js";
9
9
  import { createTriggerClient } from "./trigger/client.js";
10
10
  let scheduleMetadataForTests;
@@ -186,24 +186,13 @@ export function createScheduleDeliveryMiddleware(options) {
186
186
  "messages" in state
187
187
  ? state.messages
188
188
  : undefined;
189
- const replyText = extractAssistantText({ messages });
190
- const routing = currentChannelBinding.getStore()?.routing ?? {};
191
- const savedChannel = routing.mda_channel;
192
- if (savedChannel != null) {
193
- const channel = resolveRuntimeChannel({ mda_channel: savedChannel }, configurable);
194
- if (!channel?.post)
195
- throw new Error("Scheduled channel delivery is unavailable");
196
- const binding = savedChannel;
197
- const content = binding.transport === "trigger_server"
198
- ? replyText || null
199
- : extractAssistantContent({ messages });
200
- if (content !== null)
201
- await channel.post({
202
- type: "content",
203
- content,
204
- });
189
+ const scope = currentChannelBinding.getStore();
190
+ // A schedule on a channel thread answers there in the run's delivery
191
+ // step; `deliverTo` covers the rest.
192
+ if (scope?.thread?.thread?.origin)
205
193
  return undefined;
206
- }
194
+ const replyText = extractAssistantText({ messages });
195
+ const routing = scope?.routing ?? {};
207
196
  const schedule = routing.mda_schedule;
208
197
  const deliverTo = readScheduleDeliverTo(schedule?.deliver_to);
209
198
  if (deliverTo) {
@@ -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,7 @@
1
1
  import { ChannelError } from "../errors.js";
2
2
  export declare const SLACK_API = "https://slack.com/api";
3
+ /** The Slack app's bot token, an agent connection `mda deploy` sets up. */
4
+ export declare function slackBotToken(): Promise<string>;
3
5
  /** A Slack error code, separate from HTTP and network failures. */
4
6
  export declare class SlackApiError extends ChannelError {
5
7
  readonly providerError: string;
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/channels/slack/api.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,eAAO,MAAM,SAAS,0BAA0B,CAAC;AAEjD,mEAAmE;AACnE,qBAAa,aAAc,SAAQ,YAAY;IAG3C,QAAQ,CAAC,aAAa,EAAE,MAAM;IAFhC,YACE,MAAM,EAAE,MAAM,EACL,aAAa,EAAE,MAAM,EAM/B;CACF;AAED,wBAAsB,QAAQ,CAC5B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,EACE,OAAmB,EACnB,KAAK,EAAE,OAAe,EACtB,UAAmB,GACpB,GAAE;IACD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB,UAAU,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;CACxB,GACL,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA4DlC"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/channels/slack/api.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAI5C,eAAO,MAAM,SAAS,0BAA0B,CAAC;AAEjD,2EAA2E;AAC3E,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CAErD;AAED,mEAAmE;AACnE,qBAAa,aAAc,SAAQ,YAAY;IAG3C,QAAQ,CAAC,aAAa,EAAE,MAAM;IAFhC,YACE,MAAM,EAAE,MAAM,EACL,aAAa,EAAE,MAAM,EAM/B;CACF;AAED,wBAAsB,QAAQ,CAC5B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,EACE,OAAmB,EACnB,KAAK,EAAE,OAAe,EACtB,UAAmB,GACpB,GAAE;IACD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB,UAAU,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;CACxB,GACL,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA4DlC"}
@@ -1,6 +1,12 @@
1
1
  import { fetchWithTimeout, PROVIDER_HTTP_TIMEOUT_MS, } from "../../runtime/http.js";
2
2
  import { ChannelError } from "../errors.js";
3
+ import { connections } from "../../connections.js";
4
+ import { SLACK_BOT_TOKEN_SLUG } from "./connections.js";
3
5
  export const SLACK_API = "https://slack.com/api";
6
+ /** The Slack app's bot token, an agent connection `mda deploy` sets up. */
7
+ export async function slackBotToken() {
8
+ return await connections.get(SLACK_BOT_TOKEN_SLUG, { type: "agent" });
9
+ }
4
10
  /** A Slack error code, separate from HTTP and network failures. */
5
11
  export class SlackApiError extends ChannelError {
6
12
  providerError;
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/channels/slack/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/channels/slack/api.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Reserved agent connection for the Slack channel's app: reading it returns
3
+ * the app's bot token, to call Slack's Web API as the app.
4
+ */
5
+ export declare const SLACK_BOT_TOKEN_SLUG = "mda/slack-bot-token";
6
+ //# sourceMappingURL=connections.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connections.d.ts","sourceRoot":"","sources":["../../../src/channels/slack/connections.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,oBAAoB,wBAAwB,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Reserved agent connection for the Slack channel's app: reading it returns
3
+ * the app's bot token, to call Slack's Web API as the app.
4
+ */
5
+ export const SLACK_BOT_TOKEN_SLUG = "mda/slack-bot-token";
6
+ //# sourceMappingURL=connections.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connections.js","sourceRoot":"","sources":["../../../src/channels/slack/connections.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,qBAAqB,CAAC"}
@@ -0,0 +1,272 @@
1
+ /**
2
+ * The Slack messages a channel's `onEvent` handlers see: which kind of
3
+ * message each is, and the message as a handler reads it.
4
+ */
5
+ import type { MultitaskStrategy } from "../../ingress/runs.js";
6
+ import type { JsonValue } from "../types.js";
7
+ import type { ChannelRunResult } from "../run-input.js";
8
+ import type { TriggerChannelMessageEvent, TriggerChannelUserPromptResponseEvent } from "../trigger/types.js";
9
+ import type { EndpointRequest, EventEndpoint } from "../http/endpoint.js";
10
+ import { type EventFinished, type EventThread } from "../http/provider.js";
11
+ import type { ChannelActor, SlackActor } from "../actor.js";
12
+ export declare const SLACK_MESSAGE_KEYS: readonly ["mention", "directMessage", "message"];
13
+ export declare const SLACK_EVENT_KEYS: readonly ["mention", "directMessage", "message", "interaction"];
14
+ /**
15
+ * Which kind of Slack message reached the agent:
16
+ * - `"mention"`: a channel message that @-mentions your agent.
17
+ * - `"directMessage"`: a direct message to your agent.
18
+ * - `"message"`: any other channel message, which only `triggerMode`
19
+ * `"thread"` or `"all"` delivers.
20
+ */
21
+ export type SlackMessageKey = (typeof SLACK_MESSAGE_KEYS)[number];
22
+ /**
23
+ * What reached the agent from Slack: a kind of message
24
+ * ({@link SlackMessageKey}), or `"interaction"`, a click on a button in a
25
+ * message your agent posted with its own blocks, or a submitted modal it
26
+ * opened, that answers no decision the thread waits on.
27
+ */
28
+ export type SlackEventKey = (typeof SLACK_EVENT_KEYS)[number];
29
+ /** A file attached to a Slack message, as Slack describes it. */
30
+ export interface SlackFile {
31
+ id: string;
32
+ name?: string;
33
+ mimetype?: string;
34
+ /** Size in bytes. */
35
+ size?: number;
36
+ }
37
+ /**
38
+ * A Slack message that reached the agent. The run it starts can read its
39
+ * files under `/workspace/attachments`, as without a handler.
40
+ */
41
+ export interface SlackMessageEvent<K extends SlackMessageKey = SlackMessageKey> {
42
+ key: K;
43
+ /** Trigger Server's ID for this delivery. */
44
+ deliveryId: string;
45
+ /** The message's text as Slack sent it, with mentions as `<@U123>`. */
46
+ text: string;
47
+ /** The Slack user who sent it; absent for some bot messages. */
48
+ userId?: string;
49
+ /** The Slack conversation: a channel's or a direct message's ID. */
50
+ channelId: string;
51
+ /** The message's timestamp, its ID in Slack. */
52
+ messageTs: string;
53
+ /** The timestamp of its thread's first message; `messageTs` when it starts one. */
54
+ threadTs: string;
55
+ files: SlackFile[];
56
+ /** The Slack event as Slack sent it, from the Events API. */
57
+ payload: {
58
+ readonly [key: string]: JsonValue;
59
+ };
60
+ /**
61
+ * The Slack user who sent the message, as Trigger Server verified it from
62
+ * Slack's signed request, in the shape every channel's `actor` has. Its
63
+ * `teamId` is their own workspace, which in a Slack Connect channel isn't
64
+ * your app's. Absent when Trigger Server names no one, such as an older
65
+ * Trigger Server or a message from a bot. It is personal data: MDA neither
66
+ * logs it nor adds it to the run's metadata.
67
+ */
68
+ actor?: SlackActor;
69
+ }
70
+ /**
71
+ * A click on a button in a message your agent posted with its own blocks, or
72
+ * a submitted modal it opened, as Trigger Server forwards it: one that
73
+ * answers no decision the thread waits on. A click on a decision's buttons
74
+ * resumes the run instead.
75
+ */
76
+ export interface SlackInteractionEvent {
77
+ key: "interaction";
78
+ /** Trigger Server's ID for this delivery. */
79
+ deliveryId: string;
80
+ /** The button's `action_id`, or the modal's `callback_id`. */
81
+ actionId: string;
82
+ /** The button's `value`, or the modal's `state.values`. */
83
+ value?: JsonValue;
84
+ /** The Slack user who clicked, as Slack's payload says. */
85
+ userId?: string;
86
+ /** The Slack conversation the message is in. */
87
+ channelId: string;
88
+ /** The timestamp of the message holding the button; absent for a modal. */
89
+ messageTs?: string;
90
+ /** The timestamp of its thread's first message. */
91
+ threadTs: string;
92
+ /**
93
+ * Slack's interaction payload, such as a `block_actions` one, with its
94
+ * `response_url` and `actions`, without its verification `token`.
95
+ */
96
+ payload: {
97
+ readonly [key: string]: JsonValue;
98
+ };
99
+ /**
100
+ * The Slack user who clicked, as Trigger Server verified it; see
101
+ * {@link SlackMessageEvent.actor}.
102
+ */
103
+ actor?: SlackActor;
104
+ }
105
+ type SlackEventUnion = {
106
+ [K in SlackMessageKey]: SlackMessageEvent<K>;
107
+ }[SlackMessageKey] | SlackInteractionEvent;
108
+ /** What reached the agent from Slack, typed by its key. */
109
+ export type SlackEvent<K extends SlackEventKey = SlackEventKey> = Extract<SlackEventUnion, {
110
+ key: K;
111
+ }>;
112
+ /**
113
+ * The conversation's thread a message belongs to. A handler runs before any
114
+ * run exists, so this is not a run's runtime.
115
+ */
116
+ export interface SlackChannelThread extends EventThread {
117
+ /**
118
+ * The thread the run the handler starts runs on, one per Slack thread.
119
+ * Useful for run context that names the thread, such as a token a backend
120
+ * signs for it.
121
+ */
122
+ id: string;
123
+ /** The key the thread is derived from, which names the Slack thread. */
124
+ sourceThreadKey: string;
125
+ }
126
+ /** The Slack thread of a Trigger message's thread, for a channel named `name`. */
127
+ export declare function slackThread(thread: {
128
+ id: string;
129
+ sourceThreadKey: string;
130
+ }, name: string): SlackChannelThread;
131
+ /**
132
+ * What an event handler returns: a run's input, as `agent.invoke` takes it —
133
+ * a string, a message such as `new HumanMessage(...)`, state such as
134
+ * `{ messages: [...] }`, or `[input, { context, metadata, webhook }]`.
135
+ * `null` or `undefined` starts nothing.
136
+ */
137
+ export type SlackEventResult = ChannelRunResult | null | undefined | void;
138
+ export type SlackEventCallback<K extends SlackEventKey = SlackEventKey> = (event: SlackEvent<K>, thread: SlackChannelThread) => SlackEventResult | Promise<SlackEventResult>;
139
+ /** The `channels.slack(...)` options that decide what each message starts. */
140
+ export interface SlackEventOptions {
141
+ /**
142
+ * Handlers that decide what each kind of message starts. Return a prompt
143
+ * (string, message, or state), optionally with run options as
144
+ * `[input, { context, metadata, webhook }]`, or nothing to start no run:
145
+ * then the agent doesn't react or reply. A message kind without a handler
146
+ * starts a run with the message, as without `onEvent`. The run's reply is
147
+ * posted in the message's thread.
148
+ *
149
+ * `interaction` decides what a click on a button your agent posted with
150
+ * its own blocks starts, such as the next prompt, or `null` after
151
+ * recording it. Without one, such a click starts a run with no new
152
+ * message, which reads the click from `runtime.channel.event`. A click
153
+ * that answers a decision the thread waits on resumes the run, and never
154
+ * reaches it.
155
+ *
156
+ * @example
157
+ * ```ts
158
+ * onEvent: {
159
+ * mention: (event) => [event.text, { metadata: { slack_channel: event.channelId } }],
160
+ * message: () => null,
161
+ * interaction: (event) =>
162
+ * event.actionId === "quick_reply" ? String(event.value) : null,
163
+ * }
164
+ * ```
165
+ *
166
+ * A handler may also be an endpoint, a URL or a `Request` carrying
167
+ * headers, to have a service of yours decide: MDA answers Trigger Server,
168
+ * then POSTs the endpoint the message and its thread, and starts the run it
169
+ * answers with. See the README's "Asking your service what to start".
170
+ */
171
+ onEvent?: {
172
+ [K in SlackEventKey]?: SlackEventCallback<K> | EventEndpoint;
173
+ };
174
+ /**
175
+ * What a message that starts a run does while its thread already runs:
176
+ * `enqueue` (the default) waits for the run and starts after it,
177
+ * `interrupt` cancels the run, keeping its progress, and starts at once,
178
+ * `rollback` cancels it and discards its progress, and `reject` starts
179
+ * nothing.
180
+ */
181
+ multitaskStrategy?: MultitaskStrategy;
182
+ /**
183
+ * Called once when a message or an `interaction` is done, with the event,
184
+ * its thread, and how it finished:
185
+ *
186
+ * - `run`: it started a run, which ended with `run.status`
187
+ * (`success`, `error`, `timeout` or `interrupted`). `interrupts` lists
188
+ * the decisions the thread waits on.
189
+ * - `skipped`: no run started. The handler returned nothing or failed
190
+ * (`ignored`), or the thread was busy under `multitaskStrategy:
191
+ * "reject"` (`rejected`).
192
+ * - `failed`: MDA couldn't start the run, or lost track of it.
193
+ *
194
+ * It runs in the background after the reply; errors are logged. Interrupt
195
+ * resumes don't call it, and neither does a message Trigger Server will
196
+ * send again because its run couldn't start. It runs in the deployment's process, so a restart
197
+ * loses it: use the run's `webhook` for anything you can't miss.
198
+ *
199
+ * @example
200
+ * ```ts
201
+ * onFinish: async (event, thread, finished) => {
202
+ * if (finished.type !== "run") return;
203
+ * if (finished.run.status === "success") {
204
+ * // e.g. record the answer in your service, or update memory
205
+ * } else {
206
+ * // e.g. alert someone that the run failed
207
+ * }
208
+ * }
209
+ * ```
210
+ */
211
+ onFinish?: EventFinished<SlackEvent, SlackChannelThread>;
212
+ }
213
+ /**
214
+ * A Slack event's fields its endpoints are sent beside its key, delivery ID
215
+ * and payload, those its kind has: the one list of them, so
216
+ * `SlackEndpointRequest` is typed by it.
217
+ */
218
+ export declare const SLACK_ENDPOINT_EVENT_FIELDS: readonly ["text", "userId", "channelId", "messageTs", "threadTs", "files", "actor", "actionId", "value"];
219
+ /** What a Slack channel POSTs an endpoint, for one event key or any. */
220
+ export type SlackEndpointRequest<K extends SlackEventKey = SlackEventKey> = EndpointRequest<SlackEvent<K>, (typeof SLACK_ENDPOINT_EVENT_FIELDS)[number]>;
221
+ /**
222
+ * Which kind of message a delivery is. Slack sends a mention as
223
+ * `app_mention` under `triggerMode` `"mention"`, and as a `message` that
224
+ * names the app's bot user under `"thread"` and `"all"`, so only a channel
225
+ * `message` asks who the bot is.
226
+ */
227
+ export declare function slackEventKey(rawEvent: Record<string, unknown>): Promise<SlackMessageKey>;
228
+ /**
229
+ * Whether a delivery is surely a plain channel message, neither a mention
230
+ * nor a direct message. One that names a user while the bot user is unknown
231
+ * may be a mention, so it isn't.
232
+ */
233
+ export declare function isPlainSlackMessage(rawEvent: Record<string, unknown>): Promise<boolean>;
234
+ /** Forget the bot user's ID; for tests. */
235
+ export declare function resetSlackBotUser(): void;
236
+ /**
237
+ * What a delivery carries: a message, of the kind Slack's event says, or an
238
+ * interaction; `undefined` when it has nothing to read one from.
239
+ */
240
+ export declare function readSlackEvent(event: TriggerChannelMessageEvent | TriggerChannelUserPromptResponseEvent, actor?: ChannelActor): Promise<SlackEvent | undefined>;
241
+ /**
242
+ * The `SlackEvent` a handler got for each delivery, so `onFinish` gets that
243
+ * same event rather than reading the delivery again, which could read it as
244
+ * another kind. A delivery that never finishes, such as one Trigger Server
245
+ * sends again, is dropped once there are many.
246
+ */
247
+ export declare class DecidedSlackEvents {
248
+ #private;
249
+ remember(deliveryId: string, event: SlackEvent): void;
250
+ /**
251
+ * What a finished delivery carried: as its handler got it, or read from the
252
+ * delivery, with its verified actor, when no handler did.
253
+ */
254
+ finished(rawEvent: JsonValue | undefined): Promise<SlackEvent | undefined>;
255
+ }
256
+ /**
257
+ * The Trigger delivery a finished message or interaction carries; see
258
+ * `TriggerFinishedEvent`.
259
+ */
260
+ export declare function finishedDelivery(rawEvent: JsonValue | undefined): TriggerChannelMessageEvent | TriggerChannelUserPromptResponseEvent | undefined;
261
+ /**
262
+ * The message a delivery carries, as a handler reads it, or `undefined` when
263
+ * the delivery has no Slack event to read it from.
264
+ */
265
+ export declare function slackEvent<K extends SlackMessageKey>(key: K, event: TriggerChannelMessageEvent, actor?: ChannelActor): SlackMessageEvent<K> | undefined;
266
+ /**
267
+ * The interaction a forwarded click or modal submission carries, as a
268
+ * handler reads it, or `undefined` without the conversation it happened in.
269
+ */
270
+ export declare function slackInteractionEvent(event: TriggerChannelUserPromptResponseEvent, actor?: ChannelActor): SlackInteractionEvent | undefined;
271
+ export type { SlackActor } from "../actor.js";
272
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/channels/slack/events.ts"],"names":[],"mappings":"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"}